Champs définis par le client (CDC) M3

Ce document décrit l'utilisation de champs définis par le client (appelés champs CDC) dans M3. Les champs CDC permettent d'ajouter des informations clients uniques à la base de données M3 sans que des modifications soient nécessaires. Ces champs peuvent également être employés directement dans des listes configurables, des états ad hoc, des sorties XML, etc.

Contexte

M3 Business Engine propose divers champs paramétrables pour des types précis d'information. En revanche, ils offrent un nombre limité de types et sont souvent en nombre insuffisant pour couvrir tous les besoins. Des fonctions de champ défini par le client (CDC) viennent compléter ces champs pour réduire au minimum les modifications nécessaires pour apporter des informations supplémentaires à la base de données M3.

Définition du champ défini par le client (CDC)

Les métadonnées qui définissent le champ CDC sont ajoutées au moyen du programme Champs définis par le client. Ouvrir (CMS080). Ces métadonnées inclut une sélection de la table M3 à étendre (voir ci-dessous), le type d'information (chaîne, données numériques, etc.), ainsi que la longueur utilisée, le nombre de décimales, etc. L'utilisateur définit également la description du champ CDC servant d'en-têtes de colonne dans les listes, les états, etc.

La sélection initiale de ces informations est assurée par l'utilisateur. Il choisit dans la liste déroulante un champ aussi proche que possible de la définition finale. L'utilisateur peut choisir parmi divers types, tels que des cases à cocher, des dates, des champs numériques et diverses longueurs de champs alphanumériques.

Notez que les métadonnées du champ CDC doivent être définies pour que des informations soient ajoutées à un champ dans les tables CDC ou que les informations CDC soient exploitées dans les listes M3, les états, etc.

Ajout de champs CDC pour étendre les informations M3 standard

L'utilisateur indique le nom de la table M3 à étendre, puis sélectionne le type de champ à utiliser.

Ajout de champs CDC non liés aux informations M3 standard

Ce type de champ CDC est utilisé pour le stockage d'informations n'ayant aucun lien, ou ayant un lien direct, avec des informations M3 standard. Il sert également à stocker des informations associées nécessitant un nombre de clés supplémentaire ou moindre que les informations M3 standard.

Pour ajouter ce type de CDC, l'utilisateur choisit une table (CUGEX2 or CUGEX3) où les informations doivent être stockées. Il définit ensuite l'ID des informations sous la forme d'une référence d'extension client, avant de sélectionner le type de champ à utiliser. La référence d'extension client sert par la suite de clé permettant de distinguer les différentes informations stockées dans la même table. Le nom à définir doit faciliter l'identification du type des informations stockées.

Définition des valeurs valides

La définition des champs CDC peut également intégrer des règles pour la validation des valeurs saisies. Il peut s'agir d'une plage valide et d'un multiple pour des valeurs numériques (par exemple, les valeurs valides vont de 4 à 12 mais chaque valeur doit être un multiple de 4 ; seuls 4, 8 et 12 sont alors valides), ou bien d'une liste de valeurs numériques et alphanumériques à la fois. Cette dernière est gérée au moyen d'un programme distinct : Mappage valeur de champs déf clt. Ouvrir (CMS081). Notez que la valeur que vous saisissez pour une date de type CDC doit également correspondre à une date active dans le calendrier système M3.

Gestion des champs CDC

Les informations stockées en tant que CDC sont gérées par le biais de l'API consacrée aux CDC (CUSEXTMI). L'API procède à la validation conformément aux règles définies dans les métadonnées CDC. Les informations sont également conformes au cadre établi pour leur stockage dans la base de données M3.

Utilisation des champs définis par le client (CDC)

Les informations stockées sous forme de champs CDC peuvent être utilisées dans le contexte de M3 sans qu'un codage spécial ou des modifications particulières soient nécessaires. Seule exception : si le champ CDC doit être ajouté à un écran M3 Business Engine détaillé ou être utilisé dans le cadre d'une logique métier nouvelle ou existante.

  • Utilisation de champs CDC dans des listes configurables, des listes personnalisées, des structures XML configurables et des états ad hoc

    Il existe deux cas distincts décrits ci-dessous :

    1. Des champs CDC existent déjà au moment de la création d'une liste ou d'un état

      Lors de la création d'une liste configurable ou d'un état, les CDC déjà définis pour la table principale de la liste ou de l'état sont automatiquement ajoutés à la liste ou à l'état en question sous la forme de champs disponibles. Ils sont directement mis à la disposition de l'utilisateur au moment de définir les colonnes de la liste ou de l'état. Si un nouveau CDC est ajouté par la suite à la table principale, il doit être manuellement ajouté en tant que champ disponible (opération réalisée à partir de la définition des tables liées).

    2. Champs CDC ajoutés après la création d'une liste ou d'un état

      Lorsque des CDC sont ajoutés à la table principale d'une liste ou d'un état existant, ils doivent être manuellement ajoutés en tant que table liée à chaque liste et chaque état où ils seront utilisés. L'utilisateur ajoute la table CDC (CUGEX1) et vérifie les valeurs obtenues par défaut. La même procédure doit être adoptée pour l'ajout de CDC sans lien avec la table principale. La seule différence est que l'utilisateur doit savoir si la table CUGEX2 ou CUGEX3 doit être utilisée. L'utilisateur doit également sélectionner la référence d'extension à utiliser pour extraire les informations pertinentes.

  • Utilisation de champs CDC dans des API et l'invite de recherche

    Le mode de gestion des champs CDC est le même que celui énoncé ci-avant pour les transactions API (CMS100MI) et l'invite de recherche. Ces deux éléments dépendent du programme de liste personnalisée Catégorie navigateur information. Ouvrir (CMS010).

  • Utilisation de champs CDC dans des anciennes listes non configurables

    Cette option n'est actuellement pas prise en charge et, pour des raisons de performance, il est déconseillé d'utiliser un script d'interface utilisateur pour y apporter une solution. Une autre solution est de créer une nouvelle liste pour la table utilisée au moyen d'une liste personnalisée dans (CMS010).

  • Utilisation de champs CDC dans des écrans détaillés M3

    Cette option n'est actuellement pas prise en charge. La solution recommandée est l'utilisation d'un script d'interface utilisateur chargé d'extraire/mettre à jour des informations pertinentes via CMS080MI et CUSEXTMI.

  • Utilisation de champs CDC dans la technologie Mashup de M3

    La solution préconisée est de recourir systématiquement à l'API CDC (CUSEXTMI) pour gérer les informations et effectuer tout travail de maintenance lié aux informations stockées.

  • Utilisation de champs CDC dans le cadre de la logique métier de M3

    Cette option exige une modification du code. Une solution consiste à coder les fonctions en dehors du cadre standard de M3 via d'autres systèmes de codage, tels que Mongoose, etc. Toutes les informations de mise à jour des champs CDC M3 sont ajoutées au moyen de l'API réservée aux CDC.

  • Utilisation de champs CDC avec Enterprise Search

    Les informations CDC sont intégrées dans l'ensemble standard des données indexées dans IES et peuvent servir au filtrage sans critères spécifiques. Remarque : les tables indexées contiennent des informations pour un grand nombre de tables étendues ou différents types de données non associées. Pour éliminer tout résultat erroné, la requête de recherche doit toujours inclure le nom du fichier ou la référence d'extension. Le programme Recherche clé. Ouvrir' (CMS030) doit également être utilisé pour une recherche de champs CDC. Une recherche de clé spécifique doit être créée pour chaque extension de table et doit incorporer le nom de la table utilisée de la requête prédéfinie dans la recherche de clé. Des références complémentaires doivent également être créées dans le programme 'Réf complémentaire de champ. Ouvrir' (CMS031) pour servir de valeur de conversion entre les clés de la table standard et celles de la table d'extension. Les références complémentaires doivent être limitées à la recherche de clé pour les champs CDC d'une table particulière.

Stockage technique des champs définis par le client (CDC) dans la base de données M3

Les informations stockées sous forme de champs définis par le client (CDC) sont gérées par trois tables CDC spéciales dans la base de données M3. Les informations CDC ne sont donc pas stockées dans la table d'origine si celle-ci a pour but d'étendre une table standard ; elles sont extraites via un accès séparé à la base de données. Voici les noms des tables :

  • CUGEX1: utilisée pour étendre des tables standard M3 avec des champs définis par le client (CDC).
  • CUGEX2: utilisée pour stocker des données numériques liées à M3.
  • CUGEX3: Utilisée pour stocker des données alphanumériques liées à M3.

Les informations stockées sous forme de champs CDC sont conservées dans la base de données M3 : dans la table CUGEX1 pour les tables étendues ou dans les tables CUGEX2/CUGEX3 pour les informations non associées. Les informations CDC sont conservées dans les champs sélectionnés dans la définition des champs CDC. Les informations étendues dans la table CUGEX1 sont stockées avec le nom de la table étendue en guise de première clé (dans le champ FICHIER). Les clés restantes sont définies à l'identique d'après la clé primaire de la table étendue. Les informations non associées sont stockés dans la table CUGEX2 ou la table CUGEX3 selon la sélection effectuée lors de la définition du champ CDC. La deuxième clé correspond à la référence d'extension client également sélectionnée au moment de la définition. Les autres clés sont contrôlées par la mise à jour et ne sont pas validées.

Restriction

Les champs CDC peuvent utiliser huit clés au maximum pour distinguer les informations. Cela signifie que les tables M3 de plus de huit clés primaires ne peuvent pas être étendues.

Les champs définis par le client (CDC) imposent une restriction qui limite exclusivement leur utilisation aux tables de données principales. Des messages d'erreur et d'avertissement s'affichent lors de la création ou de la mise à jour des champs CDC à destination des tables de données transactionnelles.

Initialement, cette restriction concerne les tables suivantes :
  • CINACC
  • CRACTR
  • FPLEDG
  • FSLEDG
  • FGLEDG
  • MDOPLP
  • MGLINE
  • MGHEAD
  • MITPLO
  • MITTRA
  • MHDISH
  • MHDISL
  • MHPICH
  • MHPICL
  • MMOPLP
  • MMOHED
  • MMOMAT
  • MMOOPE
  • MPHEAD
  • MPLINE
  • MPOPLP
  • ODHEAD
  • ODLINE
  • OINACC
  • OINVOH
  • OINVOL
  • OOCHRG
  • OOHEAD
  • OOLINE
  • OOLICH
  • OPROMT
  • OPROML
  • OSASTD
  • OSBSTD

L'importation et le remplacement d'un enregistrement existant dans (CMS080) par une définition différente peut entraîner une non-concordance des données dans la table du fichier d'extension client (CUGEXn).