SAP Fiori Elements e floorplans

Tratamento de draft

Tratamento de draft (draft handling) é um mecanismo de apps SAP Fiori, do RAP e do CAP que armazena alterações não salvas de um business object como um draft no servidor, separado dos dados ativos. O tratamento de draft permite que os usuários retomem trabalhos interrompidos, executem validações durante a edição e vejam quando outra pessoa está alterando o mesmo objeto, até que o Save transforme o draft na versão ativa.

Resumo

Tipo
Padrão transacional (versão provisória de um business object)
Camada
Lógica de negócio e modelo de dados, refletido em Aplicações de UI
Habilitado em
Behavior definition do RAP (with draft), modelo de serviço do CAP
Variantes
Draft exclusivo, draft colaborativo
Suporte na UI
SAP Fiori elements para OData V2 e V4
Quem trabalha com ele
Desenvolvedores ABAP e CAP, desenvolvedores SAP Fiori
Aplica-se a
SAP S/4HANA (todas as opções de implantação), SAP BTP
Camada: Lógica de negócio e modelo de dadosOnde se encaixa ▾
Onde se encaixa: L5 · Lógica de negócio e modelo de dadosCamada: Lógica de negócio e modelo de dados. Também envolve: Aplicações de UI.L1L2L3L4L5L6BTP

Camada: Lógica de negócio e modelo de dados

Também envolve: Aplicações de UI

Abrir o mapa de arquitetura →

Como funciona o tratamento de draft?

Em um app habilitado para draft, a edição segue quatro etapas:

  1. Um usuário escolhe Edit em um objeto existente ou começa a criar um novo. O back-end cria uma instância de draft em uma tabela de draft separada.
  2. Cada alteração é gravada no draft em segundo plano, de modo que nada se perde se o navegador for fechado.
  3. Validações, controle de campos e valores padrão são executados sobre o draft enquanto o usuário trabalha, e as mensagens aparecem antes de salvar.
  4. Save ativa o draft: seu conteúdo se torna a versão ativa e o draft é removido. Discard, por sua vez, exclui o draft.

Os dados ativos permanecem intocados até a ativação: uma requisição de compra para a Cedar Office Supply na Alder Manufacturing pode ser iniciada na sexta-feira e concluída na segunda. O tratamento de draft, portanto, separa o trabalho em andamento dos dados de negócio no nível da persistência, e não apenas no navegador.

Qual é a diferença entre draft exclusivo e draft colaborativo?

  • Draft exclusivo: um único usuário é dono do draft. Somente o dono pode alterá-lo, ativá-lo ou descartá-lo, e os outros usuários não veem as alterações antes que sejam salvas.
  • Draft colaborativo: vários usuários autorizados podem trabalhar no mesmo draft ao mesmo tempo. No SAP Fiori elements para OData V4, a object page mostra quem está no draft e bloqueia um campo enquanto alguém digita nele.

No RAP, a escolha é uma única palavra-chave no cabeçalho da behavior definition: with draft para exclusivo ou with collaborative draft para drafts colaborativos. Antes de planejar o draft colaborativo, verifique a palavra-chave na documentação de palavras-chave ABAP (ABAP keyword documentation) da sua release. O draft exclusivo continua sendo o caso mais comum, e o draft colaborativo é adequado para objetos que várias pessoas completam juntas.

Como funcionam os bloqueios e a vida útil do draft?

Os drafts mudam o comportamento dos bloqueios. No RAP:

  1. Quando um draft é criado para um objeto existente, a instância ativa recebe um bloqueio exclusivo que dura um período definido, mesmo que a sessão do usuário termine.
  2. Após esse período, o draft entra em uma fase de bloqueio otimista. Se o dono retomar o trabalho, o framework tenta bloquear o objeto novamente.
  3. Se alguém alterar o objeto ativo diretamente nesse meio-tempo, o draft se torna inválido.
  4. Drafts que permanecem intocados são descartados automaticamente por um serviço de ciclo de vida de drafts, por padrão após 28 dias, segundo a documentação do RAP da SAP.

Um campo de total ETag, obrigatório para business objects do RAP habilitados para draft, detecta se a versão ativa mudou enquanto o draft existia. O tratamento de draft, assim, substitui um bloqueio curto de sessão por uma reserva mais longa que acaba expirando.

Como habilitar o tratamento de draft?

  • RAP: adicione a palavra-chave de draft ao cabeçalho da behavior definition, além de uma tabela de draft por entidade e um total ETag. O draft se aplica ao business object inteiro, nunca a entidades isoladas. O RAP suporta draft a partir do ABAP 7.55, que corresponde ao SAP S/4HANA 2020.
  • CAP: a anotação @odata.draft.enabled na entidade do serviço habilita o draft, e o runtime o trata de forma genérica.
  • Apps SAP S/4HANA mais antigos: drafts implementados com BOPF no ABAP Programming Model for SAP Fiori ainda existem e podem ser levados para business objects do RAP baseados em BOPF.
  • SAP Fiori elements: a UI identifica o draft a partir dos metadados do serviço. A SAP afirma que o suporte completo do SAP Fiori elements a serviços OData V4 é garantido apenas para cenários habilitados para draft. Para OData V2, o draft não está disponível no SAP NetWeaver AS for ABAP 7.50.

O tratamento de draft é uma decisão do serviço; a UI apenas reflete o que o back-end declara.

Quais são os erros comuns com o tratamento de draft?

  1. Tratar "locked by another user" como bug. A mensagem geralmente significa que um colega tem um draft aberto. Peça ao dono que o salve ou descarte, ou aguarde o fim da fase de bloqueio.
  2. Ler a tabela de draft diretamente. A SAP alerta que as tabelas de draft só devem ser acessadas pelo framework RAP, por exemplo pela ação Discard.
  3. Esquecer o total ETag. Um business object do RAP habilitado para draft exige um.
  4. Construir um app OData V4 editável sem draft. Os usuários perdem a retomada e as informações de bloqueio, e o SAP Fiori elements oferece apenas suporte limitado.

A maioria dos problemas de tratamento de draft vem de entender mal as regras de bloqueio e de vida útil, e não do framework.

Draft exclusivo vs. draft colaborativo vs. edição sem draft: qual é a diferença?

Edição sem draftDraft exclusivoDraft colaborativo
Quando os dados chegam ao back-endSomente no SaveContinuamente, no draftContinuamente, no draft compartilhado
Retomada após interrupçãoNãoSim, pelo donoSim, por todos os usuários convidados
Edição simultâneaImpedida por um bloqueio curto de sessãoBloqueada enquanto o bloqueio exclusivo vigoraPermitida, com bloqueios por campo
Uso típicoFluxos simples com poucos camposA maioria dos apps transacionais SAP FioriObjetos completados por várias pessoas juntas

Perguntas frequentes

Onde ficam armazenados os drafts do SAP Fiori?

Os drafts ficam armazenados no servidor, em tabelas de draft que pertencem ao business object, separadas das tabelas ativas. No RAP, cada entidade de um business object habilitado para draft precisa de sua própria tabela de draft, e o framework RAP grava e exclui os dados do draft.

Quanto tempo dura um draft do SAP Fiori?

No RAP, drafts que ninguém toca são descartados automaticamente pelo serviço de ciclo de vida de drafts, por padrão após 28 dias. O bloqueio exclusivo sobre o objeto ativo termina antes; a partir daí, uma alteração direta de outro usuário pode invalidar o draft.

Por que um app SAP Fiori diz que o objeto está bloqueado por outro usuário?

Muito provavelmente outro usuário tem um draft aberto para o mesmo objeto, e a fase de bloqueio exclusivo desse draft ainda não terminou. O dono pode salvar ou descartar o draft; caso contrário, o bloqueio expira e o draft passa para uma fase otimista.

Todos os apps SAP Fiori usam drafts?

Não. O tratamento de draft é uma decisão de back-end por business object. Muitos apps transacionais atuais do SAP Fiori elements são habilitados para draft, mas existem apps sem draft, normalmente para fluxos de edição simples em que as alterações são enviadas apenas quando o usuário salva.

Fontes

Aplica-se a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
Última revisão

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP e os demais produtos e serviços SAP mencionados são marcas comerciais ou marcas registradas da SAP SE (ou de uma empresa afiliada da SAP) na Alemanha e em outros países. Este guia é independente e não é afiliado, patrocinado nem endossado pela SAP SE.