SAP Fiori Elements y floorplans

Gestión de draft

La gestión de draft es un mecanismo de las apps SAP Fiori, RAP y CAP que almacena los cambios no guardados de un business object como un draft en el servidor, separado de los datos activos. Permite retomar el trabajo interrumpido, ejecutar validaciones durante la edición y ver cuándo otra persona modifica el mismo objeto, hasta que Save convierte el draft en la versión activa.

Datos clave

Tipo
Patrón transaccional (versión provisional de un business object)
Capa
Lógica de negocio y modelo de datos, visible en Aplicaciones de UI
Se habilita en
Behavior definition de RAP (with draft), modelo de servicio de CAP
Variantes
Draft exclusivo, draft colaborativo
Soporte en la UI
SAP Fiori elements para OData V2 y V4
Quién trabaja con ello
Desarrolladores ABAP y CAP, desarrolladores SAP Fiori
Se aplica a
SAP S/4HANA (todas las opciones de implementación), SAP BTP
Capa: Lógica de negocio y modelo de datosDónde se ubica ▾
Dónde se ubica: L5 · Lógica de negocio y modelo de datosCapa: Lógica de negocio y modelo de datos. También abarca: Aplicaciones de UI.L1L2L3L4L5L6BTP

Capa: Lógica de negocio y modelo de datos

También abarca: Aplicaciones de UI

Abrir el mapa de arquitectura →

¿Cómo funciona la gestión de draft?

En una app con draft habilitado, la edición sigue cuatro pasos:

  1. Un usuario elige Edit en un objeto existente o empieza a crear uno nuevo. El back-end crea una instancia de draft en una tabla de draft separada.
  2. Cada cambio se escribe en el draft en segundo plano, de modo que no se pierde nada si se cierra el navegador.
  3. Las validaciones, el control de campos y los valores por defecto se ejecutan sobre el draft mientras el usuario trabaja, y los mensajes aparecen antes de guardar.
  4. Save activa el draft: su contenido pasa a ser la versión activa y el draft se elimina. Discard, en cambio, borra el draft.

Los datos activos no se modifican hasta la activación: una solicitud de pedido para Cedar Office Supply en Alder Manufacturing puede empezarse el viernes y terminarse el lunes. Así, la gestión de draft separa el trabajo en curso de los datos de negocio en el nivel de persistencia, no solo en el navegador.

¿Cuál es la diferencia entre drafts exclusivos y colaborativos?

  • Draft exclusivo: un único usuario es propietario del draft. Solo el propietario puede modificarlo, activarlo o descartarlo, y los demás usuarios no ven los cambios hasta que se guardan.
  • Draft colaborativo: varios usuarios autorizados pueden trabajar en el mismo draft a la vez. En SAP Fiori elements para OData V4, la object page muestra quién está en el draft y bloquea un campo mientras alguien escribe en él.

En RAP, la elección es una sola palabra clave en la cabecera de la behavior definition: with draft para drafts exclusivos o with collaborative draft para drafts colaborativos. Antes de planificar un draft colaborativo, consulte la ABAP keyword documentation de su release para esa palabra clave. El draft exclusivo sigue siendo el caso habitual, y el draft colaborativo encaja en objetos que varias personas completan juntas.

¿Cómo funcionan los bloqueos y la vigencia de un draft?

Los drafts cambian el comportamiento de los bloqueos. En RAP:

  1. Cuando se crea un draft para un objeto existente, la instancia activa recibe un bloqueo exclusivo que dura un tiempo determinado, aunque la sesión del usuario termine.
  2. Pasado ese periodo, el draft entra en una fase de bloqueo optimista. Si el propietario retoma el trabajo, el framework intenta bloquear de nuevo el objeto.
  3. Si entretanto alguien modifica directamente el objeto activo, el draft deja de ser válido.
  4. Los drafts que nadie toca se descartan automáticamente mediante un servicio de ciclo de vida de drafts, por defecto al cabo de 28 días según la documentación de RAP de SAP.

Un campo total ETag, obligatorio en los business objects de RAP con draft habilitado, detecta si la versión activa cambió mientras existía el draft. Así, la gestión de draft sustituye un bloqueo de sesión breve por una reserva más larga que acaba caducando.

¿Cómo se habilita la gestión de draft?

  • RAP: añada la palabra clave de draft a la cabecera de la behavior definition, además de una tabla de draft por entidad y un total ETag. El draft se aplica a todo el business object, nunca a entidades sueltas. RAP admite draft desde ABAP 7.55, que corresponde a SAP S/4HANA 2020.
  • CAP: la anotación @odata.draft.enabled en la entidad del servicio habilita el draft, y el runtime lo gestiona de forma genérica.
  • Apps más antiguas de SAP S/4HANA: los drafts implementados con BOPF en el ABAP Programming Model for SAP Fiori siguen existiendo y pueden trasladarse a business objects de RAP basados en BOPF.
  • SAP Fiori elements: la UI obtiene el draft de los metadatos del servicio. SAP indica que el soporte completo de SAP Fiori elements sobre servicios OData V4 solo se garantiza para escenarios con draft habilitado. En OData V2, el draft no está disponible en SAP NetWeaver AS for ABAP 7.50.

La gestión de draft es una decisión del servicio; la UI solo refleja lo que declara el back-end.

¿Cuáles son los errores habituales con la gestión de draft?

  1. Tratar "bloqueado por otro usuario" como un error del sistema. El mensaje suele significar que un compañero tiene un draft abierto. Pida al propietario que lo guarde o lo descarte, o espere a que termine la fase de bloqueo.
  2. Leer directamente la tabla de draft. SAP advierte que solo se debe acceder a las tablas de draft a través del framework RAP, por ejemplo con la acción Discard.
  3. Olvidar el total ETag. Un business object de RAP con draft habilitado lo requiere.
  4. Construir una app OData V4 editable sin draft. Los usuarios pierden la posibilidad de retomar el trabajo y la información de bloqueo, y SAP Fiori elements solo ofrece un soporte limitado.

La mayoría de los problemas de gestión de draft se deben a una mala comprensión de las reglas de bloqueo y de vigencia, no al framework.

Draft exclusivo vs. draft colaborativo vs. edición sin draft: ¿cuál es la diferencia?

Edición sin draftDraft exclusivoDraft colaborativo
Cuándo llegan los datos al back-endSolo al guardar (Save)Continuamente, al draftContinuamente, al draft compartido
Retomar tras una interrupciónNoSí, el propietarioSí, todos los usuarios invitados
Edición concurrenteImpedida por un bloqueo de sesión breveBloqueada mientras dura el bloqueo exclusivoPermitida, con bloqueos a nivel de campo
Uso típicoFlujos sencillos con pocos camposLa mayoría de las apps SAP Fiori transaccionalesObjetos que varias personas completan juntas

Preguntas frecuentes

¿Dónde se almacenan los drafts de SAP Fiori?

Los drafts se almacenan en el servidor, en tablas de draft que pertenecen al business object, separadas de las tablas activas. En RAP, cada entidad de un business object con draft habilitado necesita su propia tabla de draft, y el framework RAP escribe y elimina los datos del draft.

¿Cuánto dura un draft de SAP Fiori?

En RAP, los drafts que nadie toca se descartan automáticamente mediante el servicio de ciclo de vida de drafts, por defecto al cabo de 28 días. El bloqueo exclusivo sobre el objeto activo termina antes; a partir de ese momento, una modificación directa de otro usuario puede invalidar el draft.

¿Por qué una app SAP Fiori indica que el objeto está bloqueado por otro usuario?

Lo más probable es que otro usuario tenga un draft abierto para el mismo objeto y que la fase de bloqueo exclusivo de ese draft no haya terminado. El propietario puede guardar o descartar el draft; si no, el bloqueo caduca y el draft pasa a una fase optimista.

¿Todas las apps SAP Fiori usan drafts?

No. La gestión de draft es una decisión del back-end para cada business object. Muchas apps transaccionales actuales de SAP Fiori elements tienen el draft habilitado, pero existen apps sin draft, normalmente para flujos de edición sencillos en los que los cambios solo se envían cuando el usuario guarda.

Fuentes

Se aplica a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
Última revisión

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP y los demás productos y servicios de SAP mencionados son marcas comerciales o marcas registradas de SAP SE (o de una empresa afiliada de SAP) en Alemania y otros países. Esta guía es independiente y no está afiliada, patrocinada ni respaldada por SAP SE.