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.
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.
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
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 :
Le tableau 3 décrit le format des informations spécifiques à l'application qui concernent 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.
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 :
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.
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 :
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 :
Voir Objets métier utilitaires du connecteur pour plus d'informations sur les objets métier utilitaires. |
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.
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.
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.
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.
<nomzone_flist>[:[<nomattribut_objet_métier>]:<valeur_défaut>]
[< nomattribut_objet_métier>]([:< nomattribut_objet_métier>])*
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.
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.
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.
L'objet métier Portal_Account est un objet métier hiérarchique semblable à celui présenté dans la figure 12.
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.
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
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.
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.
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 :
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.
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.
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.
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.
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.
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]