Transactions API paramétrables
Il existe plusieurs façons de créer des transactions API paramétrables dans M3 Business Engine avec des avantages propres à chacune d'entre elles. Les caractéristiques de chaque programme répertoriées ci-dessous permettent de convenir de la meilleure approche :
- CRS990MI
Ancienne structure, ne doit plus être utilisée.
- MDBREADMI
Ces transactions sont créées dans le programme MRS010-MRS012 et vous permettent de créer des transactions API basées sur un index de table existant. La transaction étant fondée sur un index de table existant, les performances sont correctes. Seuls les champs de sortie définis sont lus dans l'API, ce qui a également un impact positif sur les performances car un nombre moindre de champs de sortie (de préférence, moins de 10 champs) se traduit par de meilleures performances. Cette configuration est recommandée quand il n'existe aucune API existante et que vous souhaitez répertorier les données d'une seule table.
- CMS100MICes transactions sont créées sur la catégorie de navigateur d'informations et définies dans 'Liste personnalisée MI. Ouvrir' (CMS015). Ces transactions offrent donc une grande flexibilité puisque vous pouvez inclure des tables liées, des champs virtuels, des possibilités de sélection, etc. Toutefois, cette flexibilité implique un coût en termes de performance. L'usage de ces transactions API est donc recommandé lorsque la flexibilité est un élément clé et que le volume de données est plus faible. Maintenez un nombre minimum de tables liées et de champs virtuels et évitez d'utiliser des champs virtuels qui appellent une fonction M3, sauf si vous prévoyez un petit nombre d'enregistrements dans le résultat. Il est recommandé d'utiliser des filtres correspondant à l'index sélectionné (ordre de tri utilisé).Remarque
Si aucun index de table existant ne prend en charge vos champs de sélection, il est recommandé de créer un index paramétrable afin de réduire la charge dans la base de données et accroître les performances.
La transaction CMS100MI peut renvoyer un maximum de 10 000 enregistrements.
- EXPORTMI
Cette transaction API permet de répertorier les données d'une seule table et repose sur une requête de recherche de type SQL. Les performances dépendent de la manière dont la requête de recherche est construite, à savoir s'il existe un index de support qui améliore les performances.
Il est toujours recommandé de :- Spécifier l'index de table à utiliser ainsi que les filtres associés à cet index. Si aucun index n'est spécifié, l'index 00 par défaut est utilisé. Si les filtres utilisés ne correspondent pas à un index, les performances sont grandement affectées.
- Renseignez uniquement les champs de sortie exactes à renvoyer car un nombre moindre de champs (de préférence, moins de 10 champs) améliore les performances. Utilisez cette API si vous souhaitez que la sortie apparaisse sous la forme d'un fichier CSV ou d'un fichier plat.
La transaction EXPORTMI peut renvoyer un maximum de 10 000 enregistrements. Une exception est prévue si vous spécifiez un index et des valeurs de filtre supplémentaires qui renvoient plus de 10 000 enregistrements.
Les API décrites ci-avant prennent également en charge des tables créées dans XtendM3.
Autorisation
Les interfaces API de boîte à outils respectent les normes de sécurité de M3 pour les divisions et les sociétés M3 et pour les établissements et les dépôts, quand ces composants existent sous la forme d'un champ dans la table extraite.
L'utilisateur doit également être autorisé à accéder aux informations à récupérer et à accéder aux tables fondées sur les fonctions qu'il est autorisé à utiliser. Le mappage entre les fonctions et les tables a lieu dans le programme 'Table. Ouvrir' (MNS120).