Condividi tramite


Uso di BaseFunctoid

Tutti i functoid personalizzati devono derivare dalla classe BaseFunctoid. È prima necessario eseguire l'override del costruttore ed effettuare una serie di chiamate che indicano a BizTalk Mapper il functoid personalizzato. È quindi necessario scrivere la logica del functoid.

Sovrascrittura del costruttore

È necessario eseguire una serie di attività nel metodo di override del costruttore della classe per caratterizzare il functoid. Queste attività si aggiungono a qualsiasi codice specifico del functoid richiesto dalla soluzione. Nella tabella seguente vengono descritte le attività primarie.

Attività Usare questi metodi o proprietà Commenti
Assegnare un ID univoco al functoid ID Usa un valore maggiore di 6000 che non è stato ancora utilizzato. I valori minori di 6000 sono riservati per l'uso da parte di functoid interni.
Indicare se il functoid ha effetti collaterali HasSideEffects Usato dal mapper per ottimizzare il codice XSLT generato. Questa proprietà è vera per impostazione predefinita.
Puntare all'assemblaggio di risorse SetupResourceAssembly Includere un file di risorse con il progetto. Se si compila con Visual Studio, l'assembly di risorse deve essere ProjectName.ResourceName.
Abilitare la visualizzazione del functoid personalizzato nella tavolozza BizTalk Mapper SetName

SetTooltip

ImpostaDescrizione

SetBitmap
Usare un ID risorsa che punti a una stringa per il nome, il tooltip e la descrizione; usare una 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 accettati SetMinParams

SetMaxParams

HasVariableInputs
Utilizzare il metodo SetMinParams per impostare il numero di parametri obbligatori e il metodo SetMaxParams per impostare il numero di parametri facoltativi. Usare le linee guida seguenti per impostare questi valori:

- 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.
Indica cosa può connettersi al functoid AggiungiTipoConnessioneDiInput Chiamare AddInputConnectionType una volta per ogni Microsoft.BizTalk.BaseFunctoids.ConnectionType supportato dal functoid.
Dichiara a cosa il functoid può connettersi OutputConnectionType Usare i valori di 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.
Indica a BizTalk Server quali metodi invocare nel tuo functoid SetExternalFunctionName

SetExternalFunctionName2

SetExternalFunctionName3
Per i 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 i functoid non cumulativi, usare SetExternalFunctionName per impostare il metodo del functoid.
Chiedere a BizTalk Server di usare il codice inline per richiamare il functoid AddScriptTypeSupport SetScriptBuffer Chiamare AddScriptTypeSupport con Microsoft.BizTalk.BaseFunctoids.ScriptType per abilitare il codice inline. Richiamare SetScriptBuffer per passare il codice per il functoid. Questo codice verrà copiato nella mappa.
Dichiarare le variabili globali per un functoid inline SetScriptGlobalBuffer Tutte le dichiarazioni effettuate saranno visibili ad altri script inline inclusi nella mappa.
Indicare le funzioni helper necessarie per il functoid inline RequiredGlobalHelperFunctions Usare i valori dell'enumerazione InlineGlobalHelperFunction per specificare le funzioni helper necessarie. Usare OR per specificare più funzioni helper.
Convalida i parametri passati al functoid IsDate

IsNumeric
Queste funzioni forniscono una risposta true/false senza generare un'eccezione.

Implementazione della logica funzioide

Per rendere utile il functoid, è necessario implementare uno o più metodi a seconda della categoria del functoid. Se il functoid è cumulativo, è necessario specificare tre metodi, uno per l'inizializzazione, uno per l'accumulo e uno per restituire il valore accumulato. Se il functoid non è cumulativo, è necessario specificare un metodo che restituisce un valore.

È anche necessario decidere se il codice di implementazione del functoid deve essere copiato inline nella mappa o mantenuto all'interno di un assembly .NET compilato e usato tramite un riferimento.

È consigliabile usare un functoid inline quando:

  • È possibile che altri utenti leggano e modifichino potenzialmente la logica di business.

  • Il functoid dipende solo dai namespace di .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 vuole distribuire e gestire un altro assembly con la soluzione BizTalk.

  • State scrivendo una serie di functoid che condividono le variabili.

    Considerare di utilizzare un functoid a cui si fa riferimento quando:

  • Non si vuole copiare la logica di business nella mappa in cui potrebbe essere visualizzata o modificata da altri utenti.

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

  • La funzionalità aggiunta fornita da .NET Framework giustifica la distribuzione e la gestione di un altro assembly con la soluzione BizTalk.

Vedere anche

Sviluppo di un functoid di riferimento personalizzato
Sviluppo di un functoid inline personalizzato
Sviluppo di un functoid cumulativo personalizzato
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid