Condividi tramite


Utilizzo di BaseFunctoid

Tutti i functoid personalizzati devono derivare dalla classe BaseFunctoid . È innanzitutto necessario eseguire l'override del costruttore e una serie di chiamate che forniscono a BizTalk Mapper informazioni sul functoid personalizzato. Quindi occorre scrivere la logica del functoid.

Override del costruttore

È necessario eseguire un certo numero di attività nel metodo di override del costruttore della classe per caratterizzare il functoid, attività aggiuntive rispetto al codice specifico per il functoid richiesto nella soluzione. Nella tabella seguente vengono descritte le attività principali.

Attività Usare questi metodi o proprietà Commenti
Assegnare un ID univoco al functoid ID Usare un valore maggiore di 6000 non ancora usato. I valori inferiori a 6000 sono riservati per i functoid interni.
Indicare se il functoid presenta effetti collaterali HasSideEffects Usato da BizTalk Mapper per ottimizzare il codice XSLT generato. Questa proprietà è impostata su true automaticamente.
Fare riferimento all'assembly delle risorse SetupResourceAssembly Includere un file di risorse nel progetto. Se si compila con Visual Studio, l'assembly di risorse deve essere ProjectName.ResourceName.
Attivare la visualizzazione del functoid personalizzato nella tavolozza di BizTalk Mapper SetName

SetTooltip

SetDescription

SetBitmap
Usare un ID di risorsa che fa riferimento a una stringa per il nome, la descrizione comando e la descrizione generica. Usare un'immagine bitmap da 16x16 pixel.
Assegnare il functoid a una o più categorie Categoria Classificare il functoid usando uno o più valori Microsoft.BizTalk.BaseFunctoids.FunctoidCategory .
Specificare il numero di parametri accettato SetMinParams

SetMaxParams

HasVariableInputs
Usare il metodo SetMinParams per impostare il numero di parametri obbligatori e il metodo SetMaxParams per impostare il numero di parametri facoltativi. Per eseguire tale operazione, attenersi alle seguenti linee guida:

- Se non sono presenti parametri facoltativi, impostare min = max.
- Se si dispone di alcuni parametri facoltativi, impostare max = (numero di parametri facoltativi - numero minimo di parametri).
- Se si desidera consentire parametri facoltativi illimitati, non impostare max.
- Se si dispone di un numero variabile di input, non impostare min o max e impostare HasVariableInputs = true.
Dichiarare ciò che può essere collegato al functoid AddInputConnectionType Chiamare una volta AddInputConnectionType per ogni Microsoft.BizTalk.BaseFunctoids.ConnectionType supportato dal functoid.
Dichiarare ciò a cui il functoid può essere collegato OutputConnectionType Usare i valori provenienti da Microsoft.BizTalk.BaseFunctoids.ConnectionType per indicare a BizTalk Mapper i tipi di oggetti che possono ricevere output dal functoid. Usare OR per specificare più tipi di connessione.
Specificare in BizTalk Server i metodi da richiamare per il functoid SetExternalFunctionName

SetExternalFunctionName2

SetExternalFunctionName3
Per functoid cumulativi usare SetExternalFunctionName per impostare la funzione di inizializzazione, SetExternalFunctionName2 per impostare la funzione di accumulo e SetExternalFunctionName3 per specificare la funzione che restituisce il valore accumulato. Per functoid non cumulativi usare SetExternalFunctionName per impostare il metodo del functoid.
Fare in modo che in BizTalk Server venga utilizzato codice inline per richiamare il functoid AddScriptTypeSupport SetScriptBuffer Chiamare AddScriptTypeSupport con Microsoft.BizTalk.BaseFunctoids.ScriptType per abilitare il codice inline. Chiamare SetScriptBuffer per passare il codice per il functoid. Questo codice verrà copiato nella mappa.
Dichiarare variabili globali per un functoid inline SetScriptGlobalBuffer Qualsiasi dichiarazione effettuata sarà visibile ad altri script inline inclusi nella mappa.
Indicare le funzioni di supporto necessarie per il functoid inline RequiredGlobalHelperFunctions Usare i valori provenienti dall'enumerazione InlineGlobalHelperFunction per specificare quali funzioni di supporto sono necessarie. Usare OR per specificare più funzioni di supporto.
Convalidare i parametri passati al functoid IsDate

IsNumeric
Queste funzioni forniscono una risposta vero/falso senza generare un'eccezione.

Implementazione della logica del functoid

Per rendere effettiva l'utilità del functoid, è necessario implementare uno o più metodi a seconda della categoria del functoid. Se il functoid è cumulativo, sono necessari tre metodi: uno per l'inizializzazione, uno per l'accumulo e uno per la restituzione del valore accumulato. Se il functoid non è cumulativo, è necessario fornire un metodo che restituisca un valore.

È inoltre necessario decidere se il codice di implementazione del functoid debba essere copiato inline nella mappa oppure contenuto in un assembly .NET compilato e usato mediante un riferimento.

Prendere in considerazione l'utilizzo di un functoid inline nei casi seguenti:

  • È accettabile che altri leggano e possano modificare la regola business.

  • Il functoid dipende solo dagli spazi dei nomi .NET Framework supportati dalla mappa. Per gli spazi dei nomi disponibili, vedere Scripting using Inline C#, JScript .NET e Visual Basic .NET(Scripting using Inline C#, JScript .NET e Visual Basic .NET).

  • Non si desidera distribuire e gestire un altro assembly nella soluzione BizTalk.

  • Si scrive una serie di functoid che condividono variabili.

    Prendere in considerazione l'utilizzo di un functoid a cui si fa riferimento nei casi seguenti:

  • Non si desidera copiare la regola business nella mappa dove potrebbe essere vista o modificata da altri.

  • Il functoid dipende da classi .NET Framework non supportate dalla mappa.

  • La funzionalità aggiuntiva disponibile in .NET Framework giustifica la distribuzione e la gestione di un altro assembly con la soluzione BizTalk.

Vedere anche

Sviluppo di un functoid personalizzato a cui si fa riferimento
Sviluppo di un functoid inline personalizzato
Sviluppo di un functoid cumulativo personalizzato
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid