Sharepoint Site Setup

Nella configurazione del Sito SharePoint (DCS) è necessario connettere Dynamics 365 CE con SharePoint utilizzando una AppRegistration.

Le informazioni richieste sono:

CampoDescrizione
Application (client) IDID client dell’applicazione Azure.
Client SecretSecret dell’applicazione Azure.
Tenant IdID tenant di Azure a cui connettere il client (dove è presente il sito SharePoint)

Prerequisiti:

Importante per la comunicazione degli errori:

DocSolutions notificherà errori nella creazione delle cartelle SharePoint o messaggi di licenza tramite notifiche in-app; questa funzionalità deve essere abilitata in tutte le app in cui i messaggi devono essere mostrati. Dal portale Power Apps: apri l’app (tutte le app utilizzate dal cliente con DocSolutions), clicca su Impostazioni, seleziona la scheda Funzionalità e abilita il flag In-app notifications.

Configurazione del Sito SharePoint

  1. Aprire l’app DocSolutions e andare su SharePoint Sites
  2. Aprire il sito in cui DocSolutions deve essere configurato (può essere più di uno)
  3. Aprire la scheda DocSolutions e configurare i seguenti campi:
    • Client ID
    • Client Secret
    • Tenant ID

Una volta salvato il record, il client secret sarà criptato e l’ID del sito SharePoint sarà popolato. Message Status indica il risultato del test di connessione; se viene mostrato un messaggio di errore, correggere la configurazione di conseguenza.


DocSolutions Library Setup

Ogni entità in Dynamics 365 CE può essere configurata per utilizzare DocSolutions per CE; se l’entità non è configurata nella Gestione Documenti, verrà aggiunta.

DocSolutions per CE può creare cartelle e sottocartelle nel sito SharePoint, ma le Document Libraries devono essere create con la funzionalità standard o manualmente nel sito.

Configurazione Libreria

  1. Aprire il link DocSolution Libraries
  2. Aggiungere un nuovo record (di tipo DocSolutions Library)
  3. Compilare i seguenti campi:
Nome/CodiceCodice o Nome della libreria DocSolutions
Entity/Table nameNome logico dell’entità/tabella
SharePoint SiteSito SharePoint dall’elenco dei siti esistenti
Folder PatternStringa composta da un mix di valori di campi e testo fisso; i campi (nome logico) devono essere specificati tra parentesi graffe; es. {fieldname}; questi campi devono essere impostati come obbligatori per avere il nome corretto della cartella alla creazione
Parent TypePuò essere:
Library: la cartella è creata sotto la Document Library specificata
Parent Record: la cartella è creata sotto la cartella di un record padre (in una sottocartella fissa – es. account//quotes/ oppure direttamente sotto la cartella del record – es. account// in caso di quote)
Se Parent Type = LibrarySharePoint Document Library Name: deve esistere in SharePoint; è il nome della libreria dove vengono create le cartelle
Se Parent Type = Parent RecordParent DocSolutions Library: libreria DocSolutions padre che crea la cartella padre (obbligatorio)
Parent Folder: nome cartella fisso (opzionale)
Parent Field: nome logico del campo che collega il record dell’entità con il record padre
Integration KeyCampo opzionale che indica il campo di integrazione usato per BC-CE
Integration Path FieldObbligatorio se le cartelle devono essere condivise tra CE e BC; nelle tabelle account e product sono presenti i campi eosapp_dcspath pronti per questo scopo; i valori di questo campo devono essere sincronizzati tra i due sistemi
Message Status (DCS)Si compilerà automaticamente con il risultato della configurazione (OK o errore)
  1. Inoltre, è possibile creare sottocartelle fisse nella sottogriglia sottostante.



Esempio per DCS Library con Parent Type = Library



Esempio per DCS Library con Parent Type = Parent Record

Rule Validator

La scheda Rule Validator consente di applicare regole di validazione al record prima del completamento della configurazione DocSolutions. Impostare Use Rule Validator su Yes e inserire la definizione della regola nel campo Rule Validator Json.

Il JSON viene elaborato in due fasi:

  1. Il gruppo di condizioni when determina quando applicare le validazioni. Se è omesso o non contiene condizioni, il risultato è true. Le condizioni utilizzano and per impostazione predefinita; impostare logic su or per richiedere che almeno una condizione sia vera.
  2. Se when è false, otherwise determina il risultato. Il valore predefinito è success, quindi la configurazione continua e le validations non vengono valutate. Impostarlo su error per interrompere la configurazione e, facoltativamente, specificare otherwiseMessage.
  3. Se when è true, vengono valutate le regole contenute in validations. Tutti gli errori di validazione vengono restituiti insieme; se almeno una validazione fallisce, la configurazione viene saltata.



Esempio per DCS Library - Rule Validator

Come funzionano when e validations

La sezione when è il filtro che attiva le regole di validazione. Descrive la situazione nella quale devono essere applicati i controlli contenuti in validations; da sola non valida il record. Ad esempio, una regola può indicare: “solo quando l’origine del Case è Email, rendere obbligatorio un Contact”.

La sezione validations contiene i controlli da eseguire quando when è true. Una validazione required è utile per i lookup: il campo deve essere presente e deve contenere un valore. Nell’esempio seguente, caseorigincode è l’option set standard dell’origine del Case e primarycontactid è il lookup Contact del Case. Sostituire 2 con il valore dell’opzione Email se nell’ambiente di destinazione è diverso.

{
	"when": {
		"conditions": [
			{
				"field": "caseorigincode",
				"operator": "eq",
				"value": 2
			}
		]
	},
	"otherwise": "success",
	"validations": [
		{
			"type": "required",
			"field": "primarycontactid",
			"message": "È obbligatorio indicare un Contact quando l'origine del Case è Email."
		}
	]
}

In questo esempio, un Case con origine Email esegue le validations; se non è indicato alcun Contact, la validazione fallisce e la configurazione DocSolutions viene saltata. Un Case con un’origine diversa non esegue le validations e la configurazione continua perché otherwise è impostato a success.

Proprietà di configurazione

ProprietàDescrizione
when.logicOperatore logico delle condizioni: and oppure or. Il valore predefinito è and.
when.conditions[].fieldNome logico del campo Dataverse da leggere nel record corrente.
when.conditions[].operatorOperatore di confronto: eq, neq, null oppure notnull.
when.conditions[].valueValore usato da eq o neq; può rappresentare testo, numeri, date, valori Boolean, opzioni, importi o il GUID di un riferimento a un’entità.
otherwiseRisultato quando when è false: success (predefinito) oppure error.
otherwiseMessageMessaggio di errore opzionale restituito quando otherwise è error.
validations[].typeTipo di validazione: required oppure regex.
validations[].fieldNome logico del campo da validare.
validations[].messageMessaggio opzionale restituito quando la validazione fallisce.
validations[].parameters.patternEspressione regolare usata da una validazione regex.
validations[].parameters.ignoreCaseValore Boolean opzionale per una validazione regex. Il valore predefinito è true.

Con una validazione required, il campo deve essere presente e non può essere null o vuoto. Una validazione regex viene ignorata quando il campo non è presente, è null o è vuoto; quando è valorizzato, il parametro pattern è obbligatorio e deve corrispondere al valore secondo l’espressione regolare.

Il JSON può essere lasciato vuoto quando non è richiesta alcuna validazione. Un JSON non valido o parametri non validi per l’espressione regolare restituiscono un errore. Un operatore di condizione non supportato viene valutato come false e restituisce il risultato configurato in otherwise.


EOS Labs -