Article
· Avr 10 3m de lecture

<METHOD DOES NOT EXIST> erreurs pour les objets de la carte d'enregistrement

Le mappeur d'enregistrements complexes peut vous aider à transformer des données de fichiers texte composées de différents types d'enregistrements en messages persistants dans IRIS. Pour comprendre les bases du mappeur d'enregistrements complexes et découvrir un exemple de mise en œuvre en production, visionnez la vidéo des services d'apprentissage.

Cet article vous aidera à résoudre les problèmes liés à l'affichage du message <Method DOES NOT EXIST> lors de la gestion des objets d'enregistrement. Par exemple, lors de la purge des messages en production, des erreurs peuvent apparaître, indiquant des problèmes lors de la suppression de certains enregistrements :

<METHOD DOES NOT EXIST>zDeleteRecords+17^User.Test.Batch.1 *%ParentRemove,User.Test.Record

Le message suivant peut également s'afficher dans le journal des événements lors du traitement de fichiers utilisant une table d'enregistrements complexe :
<METHOD DOES NOT EXIST>updateArrayReferences+40^EnsLib.RecordMap.ComplexParent.1 *%ParentAdd,User.Test.Record

En vérifiant la classe spécifiée dans le message, vous constatez que la méthode indiquée après l'astérisque n'est pas incluse dans la classe d'enregistrement. Pourquoi ces méthodes sont-elles absentes de la classe ?

Si vous rencontrez cette erreur, dans le portail de gestion, accédez à Interoperability>List>Record Maps, puis à la page de la table d'enregistrements concernée (« User.Test.Record » dans ce cas). Vérifiez si les options « Allow Complex Record Mapping » ou « Allow Complex Batching » sont cochées dans les paramètres.

Si vous utilisez un type d'enregistrement dans une table d'enregistrements complexes, vous devez configurer la table d'enregistrements simple pour pouvoir l'utiliser dans la table d'enregistrements complexes. La documentation précise que « Allow Complex Batching » est une option qui spécifie si la table d'enregistrements peut être utilisée dans une table d'enregistrements complexes.

Lorsque vous cochez l'option « Allow Complex Batching », la classe d'enregistrement étend EnsLib.RecordMap.ComplexChild ; sinon, elle étend uniquement %Persistent. Vous devez cocher cette option pour tous les enregistrements que vous utilisez dans la table d'enregistrements complexes.

Dans l'exemple ci-dessus, vous constatez que la méthode *%ParentRemove n'est pas définie, car elle est définie par la classe EnsLib.RecordMap.ComplexChild. Si la classe d'enregistrement n'étend pas EnsLib.RecordMap.ComplexChild, elle ne contient pas la méthode %ParentRemove. Nous avons donc rencontré l'erreur lors de la tentative de purge.

Pour y remédier, cochez la case « Allow Complex Record Mapping » pour l'enregistrement et régénérez la classe. Si vous cochez la classe régénérée, vous constaterez qu'elle étend désormais la classe EnsLib.RecordMap.ComplexChild. La purge devrait maintenant fonctionner correctement.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer