SAP Fiori Elements et floorplans

Gestion des drafts

La gestion des drafts est un mécanisme des applications SAP Fiori, de RAP et de CAP qui stocke les modifications non sauvegardées d'un business object sous forme de draft côté serveur, séparé des données actives. Elle permet aux utilisateurs de reprendre un travail interrompu, d'exécuter des validations pendant la saisie et de voir quand quelqu'un d'autre modifie le même objet, jusqu'à ce que Save transforme le draft en version active.

L'essentiel

Type
Modèle transactionnel (version intermédiaire d'un business object)
Couche
Logique métier et modèle de données, visible dans les Applications d'interface
Activé dans
Behavior definition RAP (with draft), modèle de service CAP
Variantes
Draft exclusif, draft collaboratif
Prise en charge UI
SAP Fiori elements pour OData V2 et V4
Qui l'utilise
Développeurs ABAP et CAP, développeurs SAP Fiori
S'applique à
SAP S/4HANA (toutes les options de déploiement), SAP BTP
Couche : Logique métier et modèle de donnéesOù se situe-t-il ? ▾
Où se situe-t-il ?: L5 · Logique métier et modèle de donnéesCouche : Logique métier et modèle de données. Concerne aussi : Applications d'interface.L1L2L3L4L5L6BTP

Couche : Logique métier et modèle de données

Concerne aussi : Applications d'interface

Ouvrir la carte d'architecture →

Comment fonctionne la gestion des drafts ?

Dans une application compatible draft, la modification suit quatre étapes :

  1. Un utilisateur choisit Edit sur un objet existant, ou commence à en créer un nouveau. Le back-end crée une instance de draft dans une table de draft distincte.
  2. Chaque modification est écrite dans le draft en arrière-plan, si bien que rien n'est perdu si le navigateur se ferme.
  3. Les validations, le contrôle des champs et les valeurs par défaut s'exécutent sur le draft pendant que l'utilisateur travaille, et les messages apparaissent avant la sauvegarde.
  4. Save active le draft : son contenu devient la version active et le draft est supprimé. Discard supprime le draft à la place.

Les données actives restent inchangées jusqu'à l'activation : une demande d'achat pour Cedar Office Supply chez Alder Manufacturing peut être commencée le vendredi et terminée le lundi. La gestion des drafts sépare donc le travail en cours des données métier au niveau de la persistance, et pas seulement dans le navigateur.

Quelle différence entre draft exclusif et draft collaboratif ?

  • Draft exclusif : un seul utilisateur possède le draft. Seul le propriétaire peut le modifier, l'activer ou le rejeter, et les autres utilisateurs ne voient pas les modifications avant leur sauvegarde.
  • Draft collaboratif : plusieurs utilisateurs autorisés peuvent travailler simultanément sur le même draft. Dans SAP Fiori elements pour OData V4, l'object page indique qui participe au draft et verrouille un champ pendant que quelqu'un le saisit.

En RAP, le choix tient en un seul mot-clé dans l'en-tête de la behavior definition : with draft pour un draft exclusif ou with collaborative draft pour des drafts collaboratifs. Avant de prévoir un draft collaboratif, vérifiez ce mot-clé dans la documentation des mots-clés ABAP de votre release. Le draft exclusif reste le cas courant, et le draft collaboratif convient aux objets que plusieurs personnes complètent ensemble.

Comment fonctionnent les verrous et la durée de vie des drafts ?

Les drafts modifient le comportement du verrouillage. En RAP :

  1. Lorsqu'un draft est créé pour un objet existant, l'instance active reçoit un verrou exclusif qui dure un temps défini, même si la session de l'utilisateur se termine.
  2. Après cette période, le draft entre dans une phase de verrouillage optimiste. Si le propriétaire reprend son travail, le framework tente de verrouiller à nouveau l'objet.
  3. Si quelqu'un modifie directement l'objet actif entre-temps, le draft devient invalide.
  4. Les drafts laissés sans modification sont supprimés automatiquement par un service de cycle de vie des drafts, par défaut après 28 jours selon la documentation RAP de SAP.

Un champ total ETag, obligatoire pour les business objects RAP compatibles draft, détecte si la version active a changé pendant que le draft existait. La gestion des drafts remplace ainsi un verrou de session court par une réservation plus longue qui finit par expirer.

Comment activer la gestion des drafts ?

  • RAP : ajoutez le mot-clé draft à l'en-tête de la behavior definition, ainsi qu'une table de draft par entité et un total ETag. Le draft s'applique à l'ensemble du business object, jamais à des entités isolées. RAP prend en charge le draft à partir d'ABAP 7.55, ce qui correspond à SAP S/4HANA 2020.
  • CAP : l'annotation @odata.draft.enabled sur l'entité du service active le draft, et le runtime le gère de façon générique.
  • Applications SAP S/4HANA plus anciennes : des drafts implémentés avec BOPF dans l'ABAP Programming Model for SAP Fiori existent encore et peuvent être repris dans des business objects RAP basés sur BOPF.
  • SAP Fiori elements : l'interface détecte le draft à partir des métadonnées du service. SAP indique que la prise en charge complète de SAP Fiori elements sur les services OData V4 n'est garantie que pour les scénarios compatibles draft. Pour OData V2, le draft n'est pas disponible sur SAP NetWeaver AS for ABAP 7.50.

La gestion des drafts est une décision de service ; l'interface ne fait que refléter ce que le back-end déclare.

Quelles sont les erreurs courantes avec la gestion des drafts ?

  1. Traiter « locked by another user » comme un bug. Le message signifie généralement qu'un collègue a un draft ouvert. Demandez au propriétaire de le sauvegarder ou de le rejeter, ou attendez la fin de la phase de verrouillage.
  2. Lire directement la table de draft. SAP avertit que les tables de draft ne doivent être accédées que via le framework RAP, par exemple l'action Discard.
  3. Oublier le total ETag. Un business object RAP compatible draft en exige un.
  4. Construire une application OData V4 modifiable sans draft. Les utilisateurs perdent la reprise et les informations de verrouillage, et SAP Fiori elements n'offre qu'une prise en charge limitée.

La plupart des problèmes de gestion des drafts viennent d'une mauvaise compréhension des règles de verrouillage et de durée de vie, et non du framework.

Draft exclusif, draft collaboratif ou modification sans draft : quelle différence ?

Modification sans draftDraft exclusifDraft collaboratif
Quand les données atteignent le back-endUniquement au SaveEn continu, dans le draftEn continu, dans le draft partagé
Reprise après interruptionNonOui, par le propriétaireOui, par tous les utilisateurs invités
Modification simultanéeEmpêchée par un verrou de session courtBloquée tant que le verrou exclusif est actifAutorisée, avec des verrous au niveau du champ
Usage typeFlux simples avec peu de champsLa plupart des applications SAP Fiori transactionnellesObjets complétés ensemble par plusieurs personnes

Questions fréquentes

Où les drafts SAP Fiori sont-ils stockés ?

Les drafts sont stockés sur le serveur dans des tables de draft qui appartiennent au business object, séparées des tables actives. En RAP, chaque entité d'un business object compatible draft a besoin de sa propre table de draft, et le framework RAP écrit et supprime les données de draft.

Combien de temps dure un draft SAP Fiori ?

En RAP, les drafts auxquels personne ne touche sont supprimés automatiquement par le service de cycle de vie des drafts, par défaut après 28 jours. Le verrou exclusif sur l'objet actif prend fin plus tôt ; ensuite, une modification directe par un autre utilisateur peut invalider le draft.

Pourquoi une application SAP Fiori indique-t-elle que l'objet est verrouillé par un autre utilisateur ?

Un autre utilisateur a très probablement un draft ouvert pour le même objet, et la phase de verrouillage exclusif de ce draft n'est pas terminée. Le propriétaire peut sauvegarder ou rejeter le draft ; sinon, le verrou expire et le draft passe en phase optimiste.

Toutes les applications SAP Fiori utilisent-elles des drafts ?

Non. La gestion des drafts est une décision back-end prise par business object. De nombreuses applications SAP Fiori elements transactionnelles actuelles sont compatibles draft, mais des applications sans draft existent, généralement pour des flux de modification simples où les modifications ne sont envoyées qu'au moment où l'utilisateur sauvegarde.

Sources

S'applique à
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
Dernière relecture

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP et les autres produits et services SAP mentionnés sont des marques commerciales ou des marques déposées de SAP SE (ou d'une société affiliée à SAP) en Allemagne et dans d'autres pays. Ce guide est indépendant ; il n'est ni affilié à SAP SE, ni sponsorisé, ni approuvé par SAP SE.