SAP Business Workflow - Classes Abap

Dans SAP ABAP workbench, le générateur de classes est un outil d'ABAP qui vous permet de définir, modifier et tester des classes et des interfaces ABAP globales. Class Builder a deux modes -

  • Mode basé sur le formulaire
  • Mode basé sur le code source

Avec l'utilisation de l'interface IF_WORKFLOW, vous pouvez utiliser des classes ABAP dans SAP WebFlow Engine. Dans le système SAP, un WebFlow Engine (SAP Business Workflow) est utilisé pour définir et mapper les processus métier, qui ne sont pas mappés. Il comprend les processus de validation ou d'approbation ainsi que des processus complexes tels que la création d'un bon de commande, etc. et différentes actions des services impliqués. SAP WebFlow Engine est principalement utilisé pour les processus, qui sont répétés dans la nature ou impliquent des actions d'un grand nombre d'agents dans un ordre prédéfini.

Un moteur WebFlow peut également être utilisé pour gérer les erreurs dans les processus et workflows existants. À l'aide de WebFlow Engine, vous pouvez également démarrer un flux de travail lorsque des événements prédéfinis se produisent.

Pour utiliser les classes ABAP sur les workflows, il est nécessaire d'implémenter l'interface IF_WORKFLOW dans la classe ABAP. Cette interface inclut une méthode qui crée des conditions préalables spécifiques pour que l'objet puisse être utilisé dans SAP WebFlow Engine.

L'interface IF_WORKFLOW contient les méthodes suivantes -

  • BI_PERSISTENT~FIND_BY_LPOR
  • BI_PERSISTENT~REFRESH
  • BI_OBJECT~EXECUTE_DEFAULT_METHOD
  • BI_PERSISTENT~LPOR
  • BI_OBJECT~DEFAULT_ATTRIBUTE_VALUE
  • BI_OBJECT~RELEASE

Comment ajouter un IF_WORKFLOW dans une classe ABAP?

Pour ajouter une interface IF_WORKFLOW à une classe, vous devez ouvrir le T-Code de Class Builder: SE24.

Allez dans l'onglet Interface, ajoutez l'interface IF_WORKFLOW. Une fois que vous ajoutez cette interface, elle ajoute également deux sous-interfaces: BI_OBJECT et BI_PERSISTENT. Lorsque vous passez à l'onglet Méthodes et que vous verrez que certaines méthodes de ces interfaces ont été automatiquement héritées de la classe ABAP.

Pour qu'une classe Utility implémente l'interface IF_WORKFLOW, vous devez ouvrir chacune des méthodes héritées de l'interface IF_WORKFLOW, puis activer le code source vide → activer la classe ABAP.

Note- Lorsque vous implémentez l'interface IF_WORKFLOW dans une classe, elle peut être utilisée dans n'importe lequel des flux de travail. Une classe ABAP est automatiquement libérée pour être utilisée avec l'implémentation de cette interface. Vous ne devez apporter des modifications de compatibilité qu'après l'implémentation de l'interface et ne devez pas supprimer les attributs, les modifications de type ou les méthodes. Dans le système SAP, il ne définit pas de liste dans laquelle il mentionne que la classe est utilisée dans ces flux de travail.

Notez également que l'interface IF_WORKFLOW ne doit pas être implémentée dans les classes internes d'une application, car cela signifierait que chaque méthode de la classe ABAP peut être utilisée dans les workflows.