<< Fare clic per visualizzazione il sommario >> Percorso: Il linguaggio OEL > Funzioni > MergeDataSet |
Restituisce l'oggetto specificato come DataSet di destinazione, dopo aver aggiunto gli elementi dell'oggetto specificato come DataSet sorgente. E' possibile definire se aggiornare gli elementi esistenti nell'oggetto di destinazione.
Funzione
MergeDataSet( IDataSet destinationDataSet, IDataSet sourceDataSet)
La funzione può essere utilizzata nelle seguenti modalità:
1) MergeDataSet( IDataSet destinationDataSet, IDataSet sourceDataSet)
2) MergeDataSet( IDataSet destinationDataSet, IDataSet sourceDataSet, bool allowUpdate)
Output |
||
Nome |
Descrizione |
Tipo |
returnValue |
Oggetto di destinazione modificato e/o aggiornato. |
Modalità 1)
MergeDataSet( IDataSet destinationDataSet, IDataSet sourceDataSet)
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
destinationDataSet |
Oggetto a cui devono essere aggiunti degli elementi. |
|
|
sourceDataSet |
Oggetto che contiene gli elementi da aggiungere a quello indicato nel parametro destinationDataSet. |
|
|
Output |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
returnValue |
Oggetto di destinazione a cui sono stati aggiunti gli elementi dell'oggetto sorgente. |
|
Commenti
La funzione restituisce errore per chiave duplicata se vi è sovrapposizione tra alcuni campi dei due oggetti passati in input.
Se sourceDataSet contiene un Dataset vuoto, la funzione restituisce il DataSet contenuto nel parametro destinationDataSet.
Esempio
Esigenza: A partire da una struttura dati disponibile nella soluzione, è necessario creare in essa nuovi elementi chiave-valore.
Descrizione: In una soluzione Jamio openwork è definita una struttura dati denominata 'Anagrafica' in cui sono contenuti i dati anagrafici di alcune identità (Nome, Cognome, Data di nascita) e un'altra denominata 'Contatti' che contiene i dati di contatto delle stesse identità (Email, Numero di telefono): si desidera ottenere una struttura dati che contenga tutte le informazioni sia anagrafiche che di contatto relative alle identità. Si definisce un processo nel quale un'attività di tipo regola di business, a cui si assegnano in input le due strutture dati, 'Anagrafica' e 'Contatti', restituisca in output la stessa 'Anagrafica' a cui siano aggiunti i valori contenuti in 'Contatti'. La parte sinistra della regola di business sarà avvalorata con la struttura dati da restituire in output, il predicato sarà assume il valore e la parte destra, inserita con la modalità espressione, riporterà la funzione MergeDataSet come di seguito specificato:
MergeDataSet(#activityInput.Fields['Anagrafica'], #activityInput.Fields['Contatti']) |
MergeDataSet( IDataSet destinationDataSet, IDataSet sourceDataSet, bool allowUpdate)
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
destinationDataSet |
Oggetto a cui devono essere aggiunti degli elementi. |
|
|
sourceDataSet |
Oggetto che contiene gli elementi da aggiungere a quello passato al parametro destinationDataSet. |
|
|
allowUpdate |
True se gli elementi esistenti devono essere aggiornati con i valori di quelli presenti nell'oggetto contenuto nel parametro sourceDataSet. |
Boolean |
|
Output |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
returnValue |
Oggetto di destinazione a cui sono stati aggiunti gli elementi dell'oggetto sorgente ed eventualmente aggiornati gli elementi preesistenti. |
|
Commenti
In questa modalità, quando il parametro allowUpdate è false, se vi è sovrapposizione tra alcuni campi dei due oggetti passati in input, la funzione non restituisce errore, ma li ignora.
Se sourceDataSet contiene un DataSet vuoto, la funzione restituisce inalterato il DataSet contenuto nel parametro destinationDataSet.
Se allowUpdate è true, sourceDataSet e destinationDataSet contengono le stesse chiavi, ma differenti nella definizione dei tipi (ad esempio sourceDataSet è Dataset('Nome', 'Francesco', 'Cognome',10) e destinationDataSet è Dataset('Nome', 'Francesco', 'Cognome', 'Rossi')) il metodo restituisce errore, invece se in sourceDataSet c'è un elemento con valore null, il corrispondente campo in destinationDataSet viene sovrascritto indipendentemente dal tipo di campo: il metodo non effettua controlli sul tipo in caso di valori nulli, tale funzionalità è utile se si desidera fare operazioni di correzione e/o rimozione dei dati.