wiki
Benvenuto
Guest
, sei in:
<root>
Manual
Manuale IT
Tech
•
Login
• Welcome
Guest
, you are in:
<root>
Manual
Manuale IT
Tech
•
Login
ScrewTurn Wiki
Navigazione (Tech)
¶
Pagina Principale
Pagina Principale (root)
Pagina Casuale
Nuova Pagina
Tutte le Pagine
Categorie
Percorsi di Navigazione
Amministrazione
Gestione File
Registrati
Ricerca wiki
»
Navigation (Tech)
¶
Main Page
Main Page (root)
Random Page
Create a new Page
All Pages
Categories
Navigation Paths
Administration
File Management
Create Account
Search the wiki
»
Back
Interagire con i Business Objects
Modified on 2012/04/26 14:27
by
stefano
Categorized as
Uncategorized
I Business Objects di Tustena CRM presentano 8 eventi che permettono di integrare una dll esterna alle logiche di business del CRM. Attraverso questi eventi, si può interagire direttamente con il '''Logic-Tier''' e accedere ai dati nelle varie ''fasi di lavorazione''. Ogni qualvolta un'entità (azienda, contatto, lead, attività, ecc.) viene caricato o salvato, agganciando uno o più di questi eventi, uno sviluppatore può realizzare delle personalizzazioni che agiscono sui dati senza disporre dei sorgenti dell'applicazione. Elenco eventi: * {{OnPreLoad}} - Viene invocato prima del caricamento dell'entità, restituisce l'id dell'oggetto * {{OnLoadComplete}} - Viene invocato quando l'entità è in memoria, restituisce la classe [CrmBusinessObjects] * {{OnPreRuleEngine}} - Viene invocato prima dell'esecuzione delle [Business Rules] sull'entità caricata, restituisce la classe [CrmBusinessObjects] e permette di abortire il salvataggio attraverso il [CrmBusinessObjects] portando '''Abort''' a '''false'''. * {{OnPostRuleEngine}} - Viene invocato dopo l'esecuzione delle [Business Rules] sull'entità caricata, restituisce la classe ''CrmBusinessObjects'' * {{OnPreSave}} - Viene invocato prima di salvare l'oggetto, restituisce la classe [CrmBusinessObjects] e permette di abortire il salvataggio attraverso il ''BusinessObjectEventArgs'' portando '''Abort''' a '''false'''. * {{OnSaveComplete}} - Viene invocato quando l'entità è stata salvata, restituisce la classe [CrmBusinessObjects] * {{OnDelete}} - Viene invocato in caso di cancellazione dell'entità, restituisce un array con gli id degli oggetti cancellati * {{OnError}} - Viene invocato quando si verifica un errore, restituisce la classe [CrmBusinessObjects] Per attivare questi eventi è necessario quindi creare una dll con NomeDllQualuque.dll ed inserirla all'interno della cartella bin di Tustena. Successivamente per attivare l'esecuzione di questi eventi bisogna andare nella cartella ''App_Data\Custom\XML\plugins.custom.xml'' e modificare la riga xml relativa al BusinessObject al quale si vuole agganciare l'evento. @@ <?xml version="1.0" encoding="utf-8"?> <businessObjectsEvents> <businessObject ID="Company" dllName="EventPlugins.dll" Active="false"> </businessObject> <businessObject ID="Contact" dllName="EventPlugins.dll" Active="false"> </businessObject> <businessObject ID="Lead" dllName="EventPlugins.dll" Active="false"> </businessObject> <businessObject ID="Activity" codeFile="plugin.cs" Active="true"> </businessObject> <businessObject ID="Quote" dllName="EventPlugins.dll" Active="false"> </businessObject> <businessObject ID="Order" dllName="EventPlugins.dll" Active="false"> </businessObject> <businessObject ID="DDT" dllName="EventPlugins.dll" Active="false"> </businessObject> <businessObject ID="Invoice" dllName="EventPlugins.dll" Active="false"> </businessObject> <businessObject ID="Catalog" dllName="EventPlugins.dll" Active="false"> </businessObject> <businessObject ID="CatalogMovements" dllName="EventPlugins.dll" Active="false"> </businessObject> </businessObjectsEvents> @@ E' anche possibile rinomiare il file plugins.custom.xml in events.'''*'''.xml, così non verrà sovrascritto con gli aggiornamenti. qui sotto un esempio di come potrebbe essere scritta la nostra dll di eventi @@ using System; using System.Collections.Generic; using System.Text; using Digita.Tustena.Base; using Digita.Tustena.Core; using Digita.Tustena.BusinessObjects; namespace NomeDllQualuque { public class NomeDllQualuque: IPlugin { #region IPlugin Membri di public void Init(CrmBusinessObjects bo) { bo.OnPreSave += new OnPreSave(bo_OnPreSave); bo.OnDelete += new OnDelete(bo_OnDelete); bo.OnLoadComplete += new OnLoadComplete(bo_OnLoadComplete); } void bo_OnPreSave(CrmBusinessObjects crmBO, BusinessObjectEventArgs e) { switch (crmBO.BusinessObject) { case Digita.Tustena.BusinessObjectType.Activity: throw new NotImplementedException(); break; } } void bo_OnLoadComplete(CrmBusinessObjects crmBO) { throw new NotImplementedException(); } void bo_OnDelete(CrmBusinessObjects crmBO, long[] al, BusinessObjectEventArgs e) { throw new NotImplementedException(); } #endregion } } @@ In caso si usi la dichiarazione codeFile, non è necesssario compilare la dll ma basta semplicemente copiare il file '''.cs''' in ''App_Data\Custom\Code''
Meta Keywords:
Meta Description:
Change Comment: