Informations d'objets métier spécifiques à l'application

Les informations spécifiques à l'application dans les définitions d'objets métier fournissent au connecteur les instructions dépendantes de l'application concernant le traitement des objets métier. Ces métadonnées sont utilisées avec la structure et les propriétés d'attributs d'un objet métier. Lorsque vous créez des objets métier spécifiques à l'application Portal Infranet, vous devez veiller à ce que les informations propres à l'application contenues dans la définition d'objet métier correspondent à la syntaxe attendue par le connecteur.

Cette section traite du format des informations d'objets, d'attributs et d'instructions spécifiques à l'application, pour les objets métier associés à Portal.

Informations d'objets métier spécifiques à l'application

Au niveau de l'objet métier, les informations spécifiques à l'application décrivent l'entité Infranet comme suit :

Par exemple, l'objet métier Portal_Account spécifie la classe stockable CN=/account pour les informations spécifiques à l'application de niveau objet, tandis que l'objet métier enfant Portal_BillInfo spécifie la zone FN=PIN_FLD_BILLINFO pour ce même type d'information.

Informations spécifiques à l'application de niveau attribut

Au niveau attribut, les informations spécifiques à l'application sont utilisées pour préparer la structure flist permettant d'exécuter un code opération particulier. Ces informations correspondent à une liste de paires nom-valeur. Cette structure vous permet de supprimer des contraintes précédemment imposées par l'emploi des objets métier utilitaires, qui ne sont plus nécessaires pour définir la structure d'une flist pour un code opération. Le format des informations spécifiques à l'application d'un attribut est le suivant :

FN=FIN_FLD_POID;Create=true;Update=false;Delete=true; Retrieve=true;CreateT=;UpdateT=PIN_FL_NAMEINFO; DeleteT=;RetrieveT=;O=false;CreateO=false;UpdateO=true; DeleteO=false;RetrieveO=false;ParentAtt=;Alone=false

Conversion d'anciens objets métier en nouveaux objets

Le format ci-dessus des informations spécifiques à l'application de niveau attribut est pris en charge pour la compatibilité amont dans la version 4.0.x du connecteur. Toutefois, dans les versions ultérieures, la compatibilité amont ne sera pas supportée et vous devrez utiliser PortalODA pour convertir d'anciennes définitions d'objets métier en nouvelles définitions.

Pour convertir au moyen de PortalODA d'anciennes définitions d'objets métier en nouvelles définitions, procédez comme suit :

  1. Marquez les zones de clés étrangères dans les objets métier enfants qui associent l'objet métier enfant à l'objet métier parent. Les informations spécifiques à l'application contiennent un indicateur appelé ParentAtt. Définissez la valeur de cet indicateur sur le nom de l'attribut de l'objet métier parent devant être utilisé pour la clé étrangère.
  2. Si nécessaire, marquez les attributs de type "object" avec un indicateur d'instruction spécifique. Reportez-vous au tableau 3 qui décrit les zones CreatT , UpdateT, DeleteT et RetrieveT.

Le tableau 3 décrit le format des informations spécifiques à l'application qui concernent un attribut :

Tableau 6. Informations spécifiques à l'application concernant un attribut
Nom Description Valeur possible Valeur par défaut
FN Nom représentant le nom de zone dans Infranet
Create Détermine si l'attribut fait partie de la flist associée à l'instruction Create. true ou false false
Update Détermine si l'attribut fait partie de la flist associée à l'instruction Update. true ou false false
Delete Détermine si l'attribut fait partie de la flist associée à l'instruction Delete. true ou false false
Retrieve Détermine si l'attribut fait partie de la flist associée à l'instruction Retrieve. true ou false false
CreateT Nom de zone Infranet jouant le rôle de conteneur pour l'attribut lors de la préparation de la flist associée à l'instruction Create null
UpdateT Nom de zone Infranet jouant le rôle de conteneur pour l'attribut lors de la préparation de la flist associée à l'instruction Update null
DeleteT Nom de zone Infranet jouant le rôle de conteneur pour l'attribut lors de la préparation de la flist associée à l'instruction Delete null
RetrieveT Nom de zone Infranet jouant le rôle de conteneur pour l'attribut lors de la préparation de la flist associée à l'instruction Retrieve null
O Détermine si l'attribut doit être mis à jour dans l'objet métier de réponse. true ou false false
CreateO Identifie le nom de la zone Infranet qui représente la valeur de l'attribut utilisé pour mettre à jour l'objet métier de réponse associé au traitement de l'instruction Create. Par exemple, si FN=PIN_FLD_POID et CreateO=PIN_FLD_NAMEINFO, le connecteur recherche la zone PIN_FLD_POID et la valeur de cette zone est entrée dans l'objet métier de réponse associé à cet attribut.
UpdateO Identifie le nom de la zone Infranet qui représente la valeur de l'attribut utilisé pour mettre à jour l'objet métier de réponse associé au traitement de l'instruction Update.
DeleteO Identifie le nom de la zone Infranet qui représente la valeur de l'attribut utilisé pour supprimer l'objet métier de réponse associé au traitement de l'instruction Delete.
RetrieveO Identifie le nom de la zone Infranet qui représente la valeur de l'attribut utilisé pour extraire l'objet métier de réponse associé au traitement de l'instruction Retrieve.
ParentAtt Cette zone est utilisée par un objet métier enfant pour définir l'attribut de l'objet métier parent utilisé pour compléter les zones de clés. Ces zones doivent être marquées comme étant des zones de clés étrangères dans l'objet métier enfant. NULL
Alone Cette zone est utilisée par un objet métier enfant pour indiquer que l'objet métier enfant doit être exécuté séparément, et non pas dans le cadre de l'objet métier parent. true ou false false

La figure 10 illustre l'objet métier Portal_Account et les informations spécifiques à l'application concernant les objets métier et les attributs.

Informations spécifiques à l'application concernant les objets métier et les attributs
Figure 10. Informations spécifiques à l'application concernant les objets métier et les attributs

Format des informations d'instructions spécifiques à l'application

Les informations d'instructions spécifiques à l'application relatives aux objets métier pour Portal Infranet doivent indiquer un code opération Infranet unique pour l'action que l'objet métier et l'instruction effectueront.

Le code opération transmet des données entre l'application Infranet et sa base de données ; il effectue des opérations sur les objets stockables. Chaque action sur un objet Infranet a un code spécifique.

Les codes opération transmettent des objets stockables Infranet sous la forme de flists, qui sont des listes de paires de noms et de valeurs de zones. Chaque code opération a une flist d'entrée et de sortie spécifique. Le connecteur doit convertir une demande d'objet métier dans la flist d'entrée requise par le code opération. Lors d'une demande d'objet métier, le connecteur suit ces étapes de base :

  1. Il crée une flist d'entrée en utilisant les valeurs de l'instance d'objet métier et les informations de la définition d'objet métier.
  2. Il exécute le code opération Portal Infranet avec la flist d'entrée en tant qu'argument.
  3. Le code opération renvoie une flist de sortie et le connecteur met à jour l'objet métier avec les informations de la flist de sortie.

Les informations d'instructions spécifiques à l'application et dans certains cas, les objets métier utilitaires permettent au connecteur de générer les flists appropriées pour chaque code opération. Un objet métier utilitaire permet au connecteur de créer la flist d'entrée correcte ou de mettre à jour correctement l'objet métier avec la flist de sortie. Les objets métier utilitaires sont fournis dans le cadre de la définition d'objet métier de niveau supérieur. La nouvelle définition des informations d'attributs spécifiques à l'application entraîne la redondance des objets métier utilitaires. La fonction correspondant aux objets métier utilitaires est prise en charge dans la version 4.0.x du connecteur pour la compatibilité amont, mais sera retirée des éditions futures.

Syntaxe des informations d'instructions spécifiques à l'application

La syntaxe requise pour les informations d'instructions spécifiques à l'application est la suivante :

<codeop>['#'<indicateur>][';'transaction enabled][';'<modèle_flist_entrée>][';'<modèle_flist_sortie>]

où :

codeop Tout code opération Infranet sans PCM_OP_au début de son nom ; codeop peut aussi être le mot clé ERROR . Le mot clé ERROR indique une contrainte Infranet. Le connecteur génère une erreur si l'opération se produit. Cela peut indiquer qu'une opération ne peut pas se produire au niveau enfant. Par exemple, un objet métier Portal_BillInfo ne peut pas être supprimé seul ; il doit être supprimé avec son objet parent.
indicateur Argument facultatif d'un code opération. Pour plus d'informations sur les indicateurs des codes opération, voir la documentation de Portal Infranet.
transaction activée Certains des codes opération de Portal Infranet gèrent leurs transactions en raison de la nature critique de leur fonctionnalité. Cet indicateur est utilisé pour fournir ces informations au connecteur Portal Infranet. La valeur "true" indique que le code opération gère sa propre transaction. La valeur par défaut utilisée par le connecteur Portal Infranet pour cette propriété est "false."
modèle_flist_entrée Nom d'un objet métier utilitaire pour la flist d'entrée et facultativement, des paramètres ou un mot clé. La syntaxe est :<modèle_flist_entrée>[#<paramètre>]Les mots clés possibles sont NotNull , NORMAL ou OnlyPoid . Ces mots clés sont explicités ci-dessous :
  • NORMAL indique que l'objet métier en cours est le modèle ; en d'autres termes, le connecteur peut effectuer une conversion directe depuis l'objet métier en cours vers la flist d'entrée.
  • OnlyPoid indique que le code opération en cours requiert uniquement le POID de l'objet métier. Le connecteur peut alors simplifier son traitement.
  • NotNull indique que cet objet ne doit pas être supprimé en attribuant la valeur Null au tableau.

Voir Objets métier utilitaires du connecteur pour plus d'informations sur les objets métier utilitaires.

modèle_flist_sortie Nom d'un objet métier utilitaire pour la flist de sortie et facultativement, des paramètres ou un mot clé. La syntaxe est :<modèle_flist_sortie>[#<paramètre>]Les mots clés possibles sont NoRewrite et Flat. Ces mots clés sont explicités ci-dessous :
  • NoRewrite indique que la flist de sortie renvoyée par le code opération ne doit pas être utilisée pour écraser l'objet métier.
  • Flat indique que le connecteur doit obtenir les attributs pour un objet métier enfant depuis l'objet métier de niveau supérieur.

Voir Objets métier utilitaires du connecteur pour plus d'informations sur les objets métier utilitaires.

Règles de l'application des codes opération

Un ou plusieurs codes opération peuvent exister au niveau de la classe stockable pour les opérations Create, Update et Delete. Cependant, le connecteur ne prend en charge qu'un seul code opération pour chaque instruction. Par conséquent, pour chaque instruction, vous devez choisir le code opération le plus adéquat pour l'objet métier et l'opération d'instruction.

Des codes opération différents peuvent être requis aux niveaux parent et enfant. Lorsqu'un code opération existe pour un objet enfant, Portal Infranet conseille de l'utiliser plutôt que le code opération parent. Si un code opération spécifique est requis pour mettre à jour un sous-composant dans Infranet, vous devez créer un objet métier spécifique à l'application pour cet enfant et indiquer le code opération dans les informations d'instructions spécifiques à l'application.

Lorsque le connecteur crée une flist d'entrée pour un objet métier hiérarchique, si une instruction d'objet métier enfant a le même code opération que le parent, le connecteur place l'enfant dans la même flist que le parent. Sinon, le connecteur crée un flist distincte pour l'enfant. Infranet utilise des niveaux dans les flists pour indiquer des tableaux et des sous-structures. Lorsque le connecteur commence à créer une flist d'entrée, il définit le niveau sur 0. Si l'objet métier a des enfants, le niveau est incrémenté de 1 lors du traitement d'un objet enfant. Si un objet métier requiert un code opération différent lorsqu'il est exécuté seul plutôt quand dans une hiérarchie, un objet métier différent doit être utilisé avec une structure différente.

Pour les opérations de création, les codes opération parent sont exécutés avant les codes opération enfant. Pour les opérations de suppression, les codes opération enfant sont exécutés avant les codes opération parent. Il n'existe pas d'ordre obligatoire d'exécution pour les opérations de mise à jour et d'extraction.

Toutes les classes stockables peuvent être extraites via le code opération READ_OBJ et le POID de l'objet racine.

Objets métier utilitaires du connecteur

Chaque code opération Infranet requiert une flist d'entrée spécifique et renvoie une flist de sortie spécifique. Pour que le connecteur soit piloté par des métadonnées, l'objet métier doit fournir au connecteur les zones sont il a besoin pour convertir une instance d'objet métier et une instruction vers la flist appropriée. Les flists de codes opération étant différentes, vous ne pourrez peut être pas créer un objet métier pour Portal Infranet qui fournit toutes les informations requises par le connecteur pour chaque flist d'entrée et de sortie. Vous pouvez avoir besoin de définir des définitions d'objets métier utilitaires complémentant la définition d'objet métier spécifique à l'application.

Remarque :
La définition des informations d'attributs spécifiques à l'application pour la version 4.0.x du connecteur ne nécessite pas d'objets métier utilitaires. La version 4.0.x du connecteur prend aussi en charge la compatibilité amont pour les informations d'attributs spécifiques à l'application, mais dans les éditions à venir, vous devrez utiliser PortalODA pour convertir d'anciennes définitions d'objets métier en de nouvelles définitions. Voir Conversion d'anciens objets métier en nouveaux objetspour obtenir des instructions.

Les définitions d'objets métier utilitaires ne deviennent pas des instances d'objets métier envoyées au courtier d'intégration. Le connecteur les utilise simplement pour construire des flists d'entrée et de sortie requises pour des codes opérations spécifiques. Vous devez concevoir et créer des définitions d'objets métier au cours de la conception de l'objet métier spécifique à l'application et vous devez définir le connecteur afin qu'il prenne en charge tous les objets métier utilitaires, ainsi que les objets métier spécifiques à l'application. Pour obtenir une exemple d'objet métier utilitaire, voir Exemple d'objet métier utilitaire : instruction Create.

Pour déterminer si vous avez besoin d'objets métier utilitaires, examinez la classe stockable Infranet, ainsi que les flists d'entrée et de sortie des codes opération utilisés pour effectuer les opérations d'instructions.

Les objets métier utilitaires de Portal Infranet utilisent des informations spécifiques à l'application qui diffèrent, en terme de format, de celles des objets métier pour Portal. Ce format est décrit dans la section suivante.

Informations spécifiques à l'application pour les objets métier utilitaires

Les informations d'attributs spécifiques à l'application dans les objets métier utilitaires indiquent les zones à ajouter à une flist et contiennent les valeurs à utiliser dans les zones de la flist. Dans les objets métier utilitaires, vous devez définir des informations d'attributs spécifiques à l'application pour les attributs simples et pour les attributs de conteneur comme suit.

La description de l'instruction n'est pas utilisée pour les objets utilitaires.

Les sections ci-après fournissent des exemples d'informations spécifiques à l'application pour les instructions Create, Update, Retrieve et Delete. Les exemples utilisent l'objet métier hiérarchique Portal_Account pour illustrer des aspects des informations d'instructions spécifiques à l'application.

Exemple d'objet métier utilitaire : instruction Create

Par exemple, utilisons les informations d'instructions spécifiques à l'application pour l'instruction Create dans l'objet métier de niveau supérieur Portal_Account.

 Informations d'instructions spécifiques à l'application pour l'instruction Create dans l'objet métier de niveau supérieur Portal_Account

CUST_COMMIT_CUSTOMER est le code opération utilisé par le connecteur pour créer un compte client (un objet stockable /account). Le code opération a sa propre transaction, par conséquent, "Transaction activée" a la valeur "true." Le mot clé NORMAL dans la zone modèle_flist_entrée indique que le connecteur va établir une correspondance directe depuis l'objet métier vers la flist d'entrée. En d'autres termes, l'objet métier fournit toutes les zones requises par la flist d'entrée et le connecteur n'a pas besoin d'informations supplémentaires pour créer une flist d'entrée.

Le code opération CUST_COMMIT_CUSTOMER pour l'opération Create Account renvoie une flist de sortie contenant l'ID pour le nouveau client dans la zone PIN_FLD_ACCOUNT_OBJ. La valeur de cet ID doit être renvoyée au système WebSphere Business Integration Adapter. Pour que le connecteur puisse obtenir le nouvel ID, le concepteur d'objet métier a créé la définition d'objet métier utilitaire Portal_C[reate]A[ccount]Output_Model. La zone modèle_flist_sortie dans les informations spécifiques à l'application indique Portal_CAOutput_Model en tant qu'objet métier utilitaire que le connecteur va utiliser pour lire la flist de sortie renvoyée par le code opération.

L'objet utilitaire Portal_CAOutput_Model contient un attribut, Poid, dont les informations spécifiques à l'application indiquent au connecteur d'extraire la valeur de PIN_FLD_ACCOUNT_OBJ de la flist renvoyée pour obtenir l'ID d'objet Portal Infranet du nouveau client. Le connecteur insère cette valeur dans l'objet métier qu'il renvoie au courtier d'intégration. L'objet métier utilitaire figure dans figure 11.

Figure 11. Définition d'objet métier utilitaire Portal_CAOutput_Model
Définition d'objet métier utilitaire Portal_CAOutput_Model
Création de flists pour les opérations Create

L'objet métier Portal_Account est un objet métier hiérarchique semblable à celui présenté dans la figure 12.

Figure 12. Diagramme de l'objet métier hiérarchique Portal_Account
Diagramme de l'objet métier hiérarchique Portal_Account

Lors d'une opération Create, le connecteur examine les informations d'instructions spécifiques à l'application pour les objets métier enfants de façon à déterminer si le code opération est identique à celui utilisé par l'objet métier parent. Concernant un objet métier Portal_Account, le code opération est identique pour les objets métier parents et enfants et le connecteur peut créer une seule flist pour l'opération de création d'objet métier globale. La figure 13 illustre le code opération et la flist uniques que le connecteur utilise pour générer l'appel Create vers Infranet.

Figure 13. Flist associée à l'opération de création d'objet métier hiérarchique Portal_Account
Flist associée à l'opération de création d'objet métier hiérarchique Portal_Account

Notez toutefois que le connecteur doit créer la flist avec des tableaux pour les objets métier enfants. Par conséquent , les informations d'instructions spécifiques à l'application doivent inclure des zones indiquant le niveau auquel le tableau doit se trouver dans la flist. Par exemple, les informations d'instruction Create spécifiques à l'application concernant l'objet métier enfant Portal_Contact sont les suivantes :

CUST_COMMIT_CUSTOMER

Les informations d'instruction Create spécifiques à l'application concernant l'objet métier enfant Portal_Phone sont les suivantes :

CUST_COMMIT_CUSTOMER

Exemple d'objet métier utilitaire : instruction Update

Cet exemple présente les informations d'instruction Update spécifiques à l'application qui sont contenues dans l'objet métier de niveau supérieur Portal_Account :

CUST_SET_STATUS;false;Portal_Array_Model#PIN_FLD_STATUSES;NoRewrite

CUST_SET_STATUS est le code opération requis pour la mise à jour d'un objet compte. Le code opération n'est pas associé à sa propre transaction ; par conséquent, le paramètre "Transaction Enabled" a été défini sur "false." Pour cette opération d'instruction, le connecteur ne peut pas faire correspondre directement l'instance d'objet métier avec la flist car l'objet métier Portal_Account ne fournit pas toutes les informations requises par la flist d'entrée. Etant donné que le connecteur a besoin d'informations complémentaires pour créer la flist, la zone modèle_flist_entrée spécifie la définition d'objet métier utilitaire que le connecteur utilise pour construire la flist d'entrée. Cet objet utilitaire est appelé Portal_Array_Model.

La zone modèle_flist_sortie contient le mot clé renvoyerNoRewrite indiquant que la flist de sortie renvoyée par le code opération ne doit pas être utilisée pour écraser l'objet métier.

Objet métier utilitaire Portal_Array_Model

Portal_Array_Model est une définition d'objet métier hiérarchique illustrée dans la figure 14. Elle contient les informations dont le connecteur a besoin pour créer la flist d'entrée pour le code de l'opération Update. Tout particulièrement, la flist d'entrée requiert un tableau que la définition d'objet métier Portal_Account ne contient pas. L'objet utilitaire Portal_Array_Model permet au connecteur de créer le tableau.

Figure 14. Définition d'objet métier utilitaire Portal_Array_Model
Définition d'objet métier utilitaire Portal_Array_Model

Notez que le texte suivant est associé à la zone modèle_flist_entrée dans les informations d'instructions Update spécifiques à l'application qui concernent Portal_Account :

Portal_Array_Model#PIN_FLD_STATUSES

Ce texte identifie l'objet métier utilitaire permettant de créer la flist et indique le nom du tableau que le connecteur doit placer dans la flist d'entrée. Lors de l'exécution, le connecteur utilise la définition d'objet métier utilitaire et la définition d'objet métier Portal_Account spécifique à l'application pour créer la flist d'entrée.

Le connecteur crée la flist d'entrée comme suit :

  1. Il commence à construire la flist avec une zone PIN_FLD_POID et extrait la valeur du POID de l'instance d'objet métier.
  2. Il ajoute une zone pour PIN_FLD_PROGRAM_NAME à la flist. Etant donné que la définition d'objet métier Portal_Account ne contient pas cet attribut, aucune valeur ne lui est associée dans l'instance d'objet métier. Par conséquent, la valeur est définie dans les informations spécifiques à l'application sous la forme de la chaîne CrossWorlds.
  3. Il ajoute le tableau PIN_FLD_STATUSES à la flist. Etant donné que la flist associée au code opération PCM_OP_CUST_SET_STATUS requiert un tableau pour PIN_FLD_STATUSES, l'objet Portal_Array_Model doit inclure un attribut de conteneur pour que le connecteur crée un tableau dans la flist. Le connecteur nomme le tableau comme indiqué dans les informations spécifiques à l'application concernant l'instruction Update.

    Le connecteur utilise l'objet métier en cours, Portal_Account, comme modèle de tableau. En d'autres termes, le connecteur va insérer dans le tableau de flist les zones spécifiées dans l'objet métier en cours. Etant donné que certaines zones ne sont peut-être pas nécessaires, les informations spécifiques à l'application concernant l'attribut de conteneur qui sont contenues dans l'objet métier utilitaire indiquent les attributs à ignorer. L'attribut de conteneur Portal_Object_Model spécifie les attributs suivants :

    Poid:AccountNumber:AccountObj

    Par conséquent, pour construire le tableau, le connecteur examine la définition d'objet métier associée à Portal_Account, ignore les attributs POID, AccountNumber et AccountObj, et crée le tableau en utilisant uniquement les autres attributs de la définition d'objet métier, PIN_FLD_STATUS et PIN_FLD_STATUS_FLAGS.

La flist d'entrée associée à l'instruction Update se présente donc comme suit :

PIN_FLD_POID              POID    <valeur de l'instance d'objet métier>
 PIN_FLD_PROGRAM_NAME      STR     "CrossWorlds"
 PIN_FLD_STATUSES          ARRAY    
    PIN_FLD_STATUS         ENUM    <valeur de l'instance d'objet métier>
    PIN_FLD_STATUS_FLAGS     INT      <valeur de l'instance d'objet métier>

Cette flist contient les zones obligatoires associées à la flist d'entrée pour le code opération PCM_OP_CUST_SET_STATUS.

Traitement des objets métier enfants

Pour une opération Update, les codes opération Infranet requis sont différents selon qu'il s'agit de mettre à jour un objet stockable de compte, les informations sur le contact client contenues dans l'objet stockable de compte ou les informations de facturation de l'objet stockable de compte.

Par conséquent, même si les informations sur le contact client et les informations de facturation client font partie de la même classe stockable, le connecteur doit utiliser des codes opération différents pour mettre à jour l'objet métier de niveau supérieur Portal_Account et les objets métier enfants Portal_Contact et Portal_BillInfo. En outre, le connecteur doit générer des flists d'entrée séparées pour chaque code opération. La figure 15 illustre l'ensemble de flists requis pour mettre à jour l'objet métier hiérarchique Portal_Account.

Figure 15. Flists associées à l'opération de mise à jour de l'objet métier hiérarchique Portal_Account
Flists associées à l'opération de mise à jour de l'objet métier hiérarchique Portal_Account

Exemple d'objet métier utilitaire : instruction Retrieve

Cet exemple illustre les informations d'instruction Retrieve spécifiques à l'application qui sont contenues dans l'objet métier de niveau supérieur Portal_Account :

READ_OBJ;false;Only_Poid;Flat#Portal_BillInfo

Le connecteur utilise le code opération READ_OBJ pour lire un objet stockable de la base de données. Ce code opération n'étant pas associé à une transaction, le paramètre "Transaction Enabled" a été défini sur "false." En général, il peut être utilisé pour toutes les opérations Retrieve.

La zone modèle_flist_entrée spécifie que le code opération en cours requiert uniquement le POID de l'objet métier. Aucune autre zone n'est nécessaire pour la flist d'entrée.

Le code opération renvoie le POID de l'objet. Toutes les autres zones de l'objet, y compris l'ensemble des éléments de tableau, sont ajoutées à la flist renvoyée, à la suite du POID. La zone modèle_flist_sortie contient le mot clé Flat associé au paramètre Portal_BillInfo. Cela indique que les informations dont le connecteur a besoin pour créer l'objet métier enfant Portal_BillInfo sont contenues dans la flist Flat plutôt que dans un tableau.

Exemple d'objet métier utilitaire : instruction Delete

Le dernier exemple illustre les informations d'instruction Delete spécifiques à l'application qui sont contenues dans l'objet métier de niveau supérieur Portal_Account :

CUST_DELETE_ACCT;false;Only_Poid;NoRewrite

Le connecteur utilise le code opération CUST_DELETE_ACCT pour supprimer l'objet stockable de la base de données. Ce code opération n'étant pas associé à une transaction, le paramètre "Transaction Enabled" a été défini sur "false." La zone modèle_flist_entrée spécifie que le code opération en cours requiert uniquement le POID de l'objet métier. Aucune autre zone n'est nécessaire pour la flist d'entrée. La zone modèle_flist_sortie contient le mot clé NoRewrite indiquant que la flist de sortie renvoyée par le code opération ne doit pas être utilisée pour écraser l'objet métier.

Notez qu'Infranet est une application de suppression logique. Pour certains objets, une opération de suppression est un changement d'état. Par exemple, pour l'objet métier Portal_Service, les informations d'instruction Delete spécifiques à l'application sont les suivantes :

CUST_SET_STATUS;Portal_DSInput_Model#PIN_FLD_STATUSES#NotNull

Ce texte spécifie CUST_SET_STATUS en tant que code de l'opération Delete logique et indique que modèle_flist_entrée correspond au paramètre Portal_D[elete]S[ervice]Input_Model de l'objet utilitaire, qui définit une flist associée à un tableau PIN_FLD_STATUSES non défini sur Null.

Fonctionnement d'une instruction dépendant du contexte

Etant donné que le connecteur doit pouvoir traiter un objet métier hiérarchique et un objet métier enfant unique (par exemple, un objet métier Portal_Contact peut être envoyé sans l'objet parent correspondant), certaines décisions commandées par les métadonnées dépendent du contexte de l'objet métier et de l'instruction. Selon l'instruction, vous devez spécifier un code opération unique pour toute la hiérarchie d'objets métier ou un code opération pour chaque objet métier. Pour cette raison, il convient d'indiquer le code opération utilisé par chaque niveau de chaque objet métier.

Pour une instruction, le code opération global (code opération parent) est appliqué si les codes opération du niveau enfant et du niveau parent sont similaires. Dans le cas contraire, le code opération du parent est appliqué en premier, suivi du code opération de chaque enfant.

Par exemple, lorsque vous devez créer un contact, si Portal_Contact est envoyé en tant qu'objet métier individuel, utilisez le code opération CUST_SET_NAMEINFO pour les informations d'instruction Create spécifiques à l'application. Toutefois, si le contact doit être créé avec l'objet métier de compte, utilisez le code opération parent CUST_COMMIT_CUSTOMER. Ce code opération doit être spécifié dans les informations spécifiques à l'application. Pour prendre en charge la fonctionnalité ci-dessus, deux copies de l'objet métier Portal_Contact doivent être créées et utilisées pour deux codes opération différents. Pour un objet métier, l'instruction ASI sera définie sur CUST_SET_NAMEINFO, tandis que pour l'autre, elle sera définie sur CUST_COMMIT_CUSTOMER.

Exemple de définition complète d'objet métier Portal Infranet

La structure ci-dessous décrit les propriétés et informations spécifiques à l'application qui concernent l'objet métier Sample Account dans l'adaptateur Portal Infranet.

[BusinessObjectDefinition]
 Name = Portal_Account
 Version = 1.0.0
 AppSpecificInfo = CN=/account
 [Attribute]
 Name = Poid
 Type = String
 Cardinality = 1
 MaxLength = 255
 IsKey = true
 IsForeignKey = false
 IsRequired = true
 AppSpecificInfo = eu
 IsRequiredServerBound = false
 [End]
 [Attribute]
 Name = AccountNumber
 Type = String
 Cardinality = 1
 MaxLength = 255
 IsKey = false
 IsForeignKey = false
 IsRequired = false
 AppSpecificInfo = 
    UpdateO=;FN=PIN_FLD_ACCOUNT_NO;Create=true;O=true;DeleteT=;
    Update=falTse;RetrieveT=;Alone=false;CreateT=;Retrieve=false;
    DeleteO=;ParentAtt=;UpdateT=;RetrieveO=Main;Delete=false;CreateO=
 IsRequiredServerBound = false
 [End]
 
 [Attribute]
 Name = AccountObj
 Type = String
 Cardinality = 1
 MaxLength = 255
 IsKey = false
 IsForeignKey = false
 IsRequired = false
 AppSpecificInfo = 
    UpdateO=;FN=PIN_FLD_ACCOUNT_OBJ;Create=true;O=true;DeleteT=;Update=false;
    RetrieveT=;Alone=false;CreateT=;Retrieve=false;DeleteO=;ParentAtt=;
    UpdateT=;RetrieveO=Main;Delete=false;CreateO=
 IsRequiredServerBound = false
 [End]
 
 [Attribute]
 Name = Status
 Type = String
 Cardinality = 1
 MaxLength = 255
 IsKey = false
 IsForeignKey = false
 IsRequired = false
 AppSpecificInfo =
    UpdateO=;FN=PIN_FLD_STATUS;Create=true;O=true;DeleteT=;Update=true;
    RetrieveT=;Alone=false;CreateT=;DeleteO=;Retrieve=false;ParentAtt=;
    RetrieveO=Main;UpdateT=PIN_FLD_STATUSES;CreateO=;Delete=false
 IsRequiredServerBound = false
 [End]
 
 [Attribute]
 Name = StatusReason
 Type = String
 Cardinality = 1
 MaxLength = 255
 IsKey = false
 IsForeignKey = false
 IsRequired = false
 AppSpecificInfo =
    UpdateO=;FN=PIN_FLD_STATUS_FLAGS;Create=true;O=true;DeleteT=;
    Update=true;RetrieveT=;Alone=false;CreateT=;DeleteO=;Retrieve=false;
    ParentAtt=;RetrieveO=Main;UpdateT=PIN_FLD_STATUSES;CreateO=;Delete=false
 IsRequiredServerBound = false
 [End]
 
 [Attribute]
 Name = Portal_Contact
 Type = Portal_Contact
 ContainedObjectVersion = 1.0.0
 Relationship = Containment
 Cardinality = n
 MaxLength = 0
 IsKey = false
 IsForeignKey = false
 IsRequired = false
 AppSpecificInfo =
    UpdateO=Main;FN=PIN_FLD_NAMEINFO;Create=true;O=true;Update=true;
    Alone=false;Retrieve=false;DeleteO=Main;ParentAtt=;RetrieveO=Main;
    CreateO=Main;Delete=false
 IsRequiredServerBound = false
 [End]
 
 [Attribute]
 Name = PlaceHolder
 Type = String
 Cardinality = 1
 MaxLength = 255
 IsKey = false
 IsForeignKey = false
 IsRequired = false
 IsRequiredServerBound = false
 [End]
 
 [Attribute]
 Name = Portal_BillInfo
 Type = Portal_BillInfo
 ContainedObjectVersion = 1.0.0
 Relationship = Containment
 Cardinality = n
 MaxLength = 0
 IsKey = false
 IsForeignKey = false
 IsRequired = false
 AppSpecificInfo =
    UpdateO=Main;FN=PIN_FLD_BILLINFO;Create=true;O=true;Update=true;
    Alone=false;Retrieve=false;DeleteO=Main;ParentAtt=;RetrieveO=Main;
    CreateO=Main;Delete=false
 IsRequiredServerBound = false
 [End]
 
 [Attribute]
 Name = ProgramName
 Type = String
 Cardinality = 1
 MaxLength = 1
 IsKey = false
 IsForeignKey = false
 IsRequired = false
 AppSpecificInfo =
    UpdateO=Main;FN=PIN_FLD_PROGRAM_NAME;Create=false;O=true;DeleteT=;
    Update=true;RetrieveT=;Alone=false;CreateT=;DeleteO=Main;Retrieve=false;
    ParentAtt=;PAttName=;RetrieveO=Main;UpdateT=;CreateO=;Delete=true
 DefaultValue = CrossWorlds
 IsRequiredServerBound = false
 [End]
 
 [Attribute]
 Name = ObjectEventId
 Type = String
 Cardinality = 1
 MaxLength = 255
 IsKey = false
 IsForeignKey = false
 IsRequired = false
 IsRequiredServerBound = false
 [End]
 
 [Verb]
 Name = Create
 AppSpecificInfo =
    IFM=;OpCode=CUST_COMMIT_CUSTOMER;OFP=;TFlag=true;
    IFP=;IF=NORMAL;Flag=0;OF=NORMAL
 [End]
 
 [Verb]
 Name = Delete
 AppSpecificInfo =
    IFM=;OpCode=CUST_DELETE_ACCT;OFP=;TFlag=false;IFP=;
    IF=NORMAL;Flag=0;OF=NORMAL
 [End]
 
 [Verb]
 Name = Retrieve
 AppSpecificInfo =
    IFM=;OpCode=READ_OBJ;OFP=Portal_BillInfo;TFlag=false;IFP=;
    IF=NORMAL;Flag=0;OF=NORMAL
 [End]
 
 [Verb]
 Name = Update
 AppSpecificInfo =
    IFM=;OpCode=CUST_SET_STATUS;OFP=;TFlag=false;
    IFP=;IF=NORMAL;Flag=0;OF=NORMAL
 [End]
 
 [End]

Copyright IBM Corp. 2003, 2005