Pourquoi ABAP a besoin de l'instruction SET UPDATE TASK LOCAL

Et que faire si, après avoir appelé le BAPI standard, l'instruction COMMIT WORK AND WAIT n'attend pas l'exécution de tous les modules de mise à jour V1.



Problème de synchronisation du programme de mise à jour



Le système SAP R / 3 utilise des modules de mise à jour pour stocker de manière transactionnelle des données supplémentaires associées aux données de base. Vous pouvez en savoir plus à ce sujet, par exemple, ici .



Pour la cohérence des données après sauvegarde, il faut attendre l'exécution des modules de type V1. En général, cela est réalisé en exécutant la commande COMMIT WORK AND WAIT.

Certains modules fonction BAPI standard appellent COMMIT WORK dans le texte . Après avoir effectué un tel FM, vous ne pourrez pas vérifier que le processus de sauvegarde est terminé avec des commandes simples. Pour résoudre ce problème, certains programmeurs écrivent des requêtes complexes dans la table VB ou attendent n secondes déraisonnables. Tout est beaucoup plus simple.



SET UPDATE TASK LOCAL vient à la rescousse



En bref, il lance le mode d'exécution local pour les modules de mise à jour V1. Le mode est activé pour les modules de mise à jour V1 enregistrés à partir du moment où l'opérateur est appelé jusqu'à la fin du DB actuel du LUW. Dans ce cas, les modules V1:



  • enregistré dans la mémoire ABAP, pas dans la table de mise à jour VB;
  • sont exécutés dans le processus actuel, pas en parallèle;
  • synchronisé par l'instruction COMMIT WORK.


Autrement dit, lorsque COMMIT WORK est appelé, le programme attendra que les modules de mise à jour V1 enregistrés localement soient exécutés. La différence est illustrée dans la figure:







Total SET UPDATE TASK LOCAL est utile si vous ne pouvez pas contrôler l'instruction COMMIT WORK et que vous voulez attendre que tous les modules V1 se terminent.



All Articles