29.12.09

ADAM for External Collaboration Toolkit for SharePoint (ECTS)

These notes are in addition to http://technet.microsoft.com/en-us/library/cc296362.aspx

These are the notes I generated that I used in overlay with the installation instructions. 

  1. Make sure Cert Server is installed and available
  2. Configure a certificate for ADAM
  3. Run ADAM setup from internet
    · Add/Remove only works if you have the OS disk
  4. Create DNS entries
    · For example: collab and collab.external
  5. Create Collab web app
  6. Reset IIS
  7. Create email address (e.g. SharePoint@yourdomain.com)
  8. Extend to an SSL external (e.g. collab.external)
  9. Create a site collection on the web application
  10. Run ADAM script that comes with kit
  11. Change the ADAM Service account
  12. Run database script
  13. Run SPScript
    Note: ADAM ports are typically 389, 636 or 50000, 50001
  14. Request IIS Cert

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=9688f8b9-1034-4ef6-a3e5-2a2a57b5c8e4

http://cks.codeplex.com/wikipage?title=External%20Collaboration%20Toolkit%20for%20SharePoint%20%28Community%20Edition%29

30.11.09

Filtrare una lista per gruppo

Modificando una vista di SharePoint tramite SharePoint Design è possibile filtrare gli Item della lista, permettendo di visualizzare:

  • tutti gli item associati all’utente connesso e
  • tutti gli item associati ad un gruppo di SharePoint a cui l’utente appartiene.

In seguito i passi da seguire per effettuare la modifica:

  1. Creare la lista su Sharepoint
  2. Creare una vista filtrata temporaneamente per una qualsiasi campo
  3. Aprire la vista con Sharepoint Designer e cercare il campo where
  4. Cercare il tag “<ListViewXml”
  5. Cercare l’attributo Where
  6. Sostituire tutta le string compresa tra “&lt;Where” e “Where&gt;” con la stringa:

    &lt;Where&gt;&lt;Or&gt;&lt;Membership Type="CurrentUserGroups"&gt;&lt;FieldRef Name="UserAndGroup"/&gt;&lt;/Membership&gt;&lt;Eq&gt;&lt;FieldRef Name=&quot;UserAndGroup&quot;/&gt;&lt;Value Type=&quot;Integer&quot;&gt;&lt;UserID Type=&quot;Integer&quot;/&gt;&lt;/Value&gt;&lt;/Eq&gt;&lt;/Or&gt;&lt;/Where&gt;
  7. Sostituire “UserAndGroup” con il nome del campo della lista in cui è contenuto il nome utente/nome gruppo in cui filtrare (UserAndGroup deve essere un campo di tipo “User And Group”)

Esempio:

  1. Inserisco nella lista un item con campo UserAndGroup contenente come valore “DOMINIO\GRUPPETTO”
  2. Mi collego alla lista con un utente membro del gruppo “DOMINIO\GRUPPETTO”, vedrò tutti gli item con campo UserAndGroup contenente come valore “DOMINIO\GRUPPETTO”

23.10.09

Requested registry access is not allowed

Codice generato da utilizzo di un EventLog.WriteEntry( da un utente non abilitato a creare eventi personalizzati sul registro degli eventi di windows.

http://support.microsoft.com/?scid=kb%3Ben-us%3B842795&x=7&y=12

An unhandled exception of type 'System.Security.SecurityException' occurred in mscorlib.dll Additional information: Requested registry access is not allowed.

Soluzione:

  • Accedere al computer come amministratore.
  • Fare clic su Start , scegliere Esegui , digitare regedit nella casella Apri e quindi fare clic su OK . Verrà visualizzata la finestra Editor del Registro di sistema.
  • Individuare la seguente sottochiave del Registro di sistema:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog

  • Click destro Eventlog, click Permissions. è visualizzato Permissions for Eventlog.
  • Click Advanced. Advanced Security Settings for Eventlog è visualizzato.
  • Per il gruppo Users Autenticated. Modificare le permission.
  • Selezionare Set Value check box e Create Subkey check box, e poi OK.
  • Selezionare la casella di controllo Imposta valore , selezionare la casella di controllo Creazione sottochiave e quindi fare clic su OK .
  • Web Part: Lookup Cascading With Linked Field

    Custom Field Control per creare delle lookup collegate tra loro e con campi collegati auto compilati.

    Code: Source

    Esempio di liste da collegare tra loro.

    Lista Aziende:

    aziende

    Lista Contatti:contattiLista Sedi:sediConfigurazione controllo per lookup su lista Aziende:_azienda Configurazione controllo per lookup su lista Sedi:_sedeConfigurazione controllo per lookup su lista Contatti:_contattoAggiornamento valori al cambio valore della lookup Aziendaibm AziendaAggiornamento valori al cambio valore della lookup AziendaibmAggiornamento valori al cambio valore della lookup Sedemicrosoft Dettaglio a Runtime delle proprieta del controlliscreenProperty

    Parser Error Message: Could not load assembly. Make sure that is compiled before accessing the page

    Controllare se assembly è presente in GAC, se presente controllare che i riferimenti all’ assembly nelle pagine aspx e ascx abbiamo oltre al nome corretto anche

    • Version=1.0.0.0,
    • Culture=neutral,
    • PublicKeyToken=08ab32daad6ea03a

    Nota:

    PublicKeyToken può essere recuperato delle proprietà del assembly installato in GAC

    publicToken

    Error Unknown Error

    Per avere maggiori dettagli cercate tra i log di sharepoint:

    ErrorLog

    Already exists under the parent Microsoft.SharePoint.Administration.SPFarm named "SharePoint_Config"

    solutionManagement Disinstallare manualmente soluzione da Solution Management

    Retract Solution

    e ripetere l’installazione completa della soluzione avendo cura di aver eliminato i vari files associati nelle cartelle

    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\

    This solution contains two assemblies with the same name, or the SharePoint server already has an assembly with the specified name

    In caso si presenti questo errore è sufficente disinstallare assembly già presenti in GAC (c:\windows\assembly)

    Associare SP Workflow

    Associare da codice un workflow in modo dinamico ad una lista di sharepoint, ecco il codice:

     

    internal static void AssociateWorkflowToDocLb(SPList doclib)
          {
              Guid wfId = Guid.Empty;

               foreach (SPWorkflowTemplate wft in doclib.ParentWeb.WorkflowTemplates)
              {

                if (wft.Name == Constants.__workflowNome)
                {
                 wfId = wft.Id;

                      doclib.ParentWeb.AllowUnsafeUpdates = true;

                      if (doclib.ParentWeb.Lists["Tasks"] == null)
                              doclib.ParentWeb.Lists.Add("Tasks", "", SPListTemplateType.Tasks);                 

                      SPList taskList = doclib.ParentWeb.Lists["Tasks"];

                      if (doclib.ParentWeb.Lists["Workflow History"] == null)
                              doclib.ParentWeb.Lists.Add("Workflow History", "", SPListTemplateType.WorkflowHistory);
                    SPList histList = doclib.ParentWeb.Lists["Workflow History"];             

                 SPWorkflowTemplate wfTemplate = wft;

                      wfTemplate.AutoStartCreate = true;
                      wfTemplate.AutoStartChange = true;

                      SPWorkflowAssociation wfAssociation = SPWorkflowAssociation.

                      CreateListAssociation(wfTemplate, Constants.__workflowNomeDisplay, taskList, histList);

                      doclib.ParentWeb.Site.AllowUnsafeUpdates = true;

                      doclib.ParentWeb.AllowUnsafeUpdates = true;       

                      doclib.ParentWeb.Update();    

                      //doclib.ParentWeb.Site.WebApplication.FormDigestSettings.Enabled = false;

                                    doclib.AddWorkflowAssociation(wfAssociation);

                      foreach (SPContentType ctp in doclib.ContentTypes)
                      {
                          try
                          {
                              ctp.AddWorkflowAssociation(wfAssociation);
                              ctp.Update();
                          }
                          catch (Exception ex)
                          {
                                              }
                      }

                      break;
                  }
              }
          }

    Request for the permission of type 'Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security

    sharepointPermission

    http://msdn.microsoft.com/en-us/library/dd583158%28office.11%29.aspx#sharepoint_wsscodeaccesssecurity_topic1

    SPWorkflowAssociationed.update()

    Access Denied

    doclib.ParentWeb.Site.WebApplication.FormDigestSettings.Enabled = false;

    è possibile eseguire la seguente istruzione solo da utente system admin eseguito da un qualsiasi altro utente darà sempre erroe di accesso negato.

    Requisiti e Tool

    d