Workflow flexível S/4HANA - Guia para aprovadores


Desta vez vamos falar um pouco sobre o que há de novo e o que há de "velho" nas migrações de ECC para S/4HANA On-Premise, com foco na área de Workflow (e seleção de Aprovadores).


Como você sabe, a SAP criou Fluxos de Trabalho Flexíveis para trazer uma “nova era” para o Workflow Engine nas soluções SAP, mas os Fluxos de Trabalho “Clássicos” ainda estão em alta. De forma acelerada, a SAP está trazendo aos clientes cada vez mais cenários padrão para quem deseja migrar para o Fluxo de Trabalho Flexível e seus benefícios, mas com essas mudanças podem surgir novos desafios também.

Por exemplo, monitorando a Fiori Apps Library podemos ver uma evolução nos cenários padrão de Fluxos de Trabalho Flexíveis disponíveis:


 

Desta vez estou focando nos Fluxos de Trabalho Flexíveis padrão, mas o que discutiremos aqui também servirá para os personalizados.

Para resumir uma longa história, os Fluxos de Trabalho Flexíveis dão ao cliente mais "poder" para criar seu próprio processo e etapas no cenário de aprovação necessário... é como se fossem feitos para serem configurados, não como os Fluxos de Trabalho Clássicos onde projetamos o processo e pisa lá. A “mudança” tecnicamente não é difícil, mas vem com essa abordagem diferente na hora de definir e trabalhar com o cliente.

Um dos primeiros Workflows Flexíveis criados, e um “ator principal” em todos os Clientes SAP que utilizam Workflows, foi o cenário Aprovação de Pedido de Compra . Vamos utilizar esse cenário para explicar um desses “desafios” na migração para a Abordagem Flexível, a seleção de Aprovadores . Dito isso, um dos objetivos deste blog é servir de referência e guia para a seleção de Aprovadores em todos os Workflows Flexíveis, ok?

Então vamos lá...

Em 2019 escrevi um blog sobre como obter os detalhes da estratégia de liberação (aprovadores) em um cenário de fluxo de trabalho clássico padrão de pedido de compra, como este:


Usando o BAPI padrão: BAPI_PO_GETRELINFO  para fazer isso.

Mas como você sabe (encontre todos os detalhes sobre Fluxo de Trabalho Flexível em Pedidos de Compra aqui ) o Fluxo de Trabalho Flexível não usa mais Estratégia de Liberação em Pedidos de Compra, cabe ao cliente decidir quantas etapas, aprovadores, etc. na configuração do fluxo de trabalho.

Então, como fica a tela acima em um pedido de compra de fluxo de trabalho flexível?


Ele cria uma nova subtela chamada Fluxo de Trabalho Flexível, e dentro você encontrará todos os detalhes atuais/finais relativos ao processo de aprovação. No exemplo acima, uma etapa foi configurada e desenhada para obter os aprovadores pelo BADI . Se você clicar duas vezes nele, verá todos os aprovadores (2) e outros detalhes:


Então o "antigo" BAPI ainda trará os dados dos aprovadores desejados? Não...pois é baseado na estratégia de lançamento (não usado no Fluxo de Trabalho Flexível):


E o link Workflow funcionará no ME23n?


Não na versão S/4 2021 a partir de agora... (talvez eles consertem isso no futuro).

Então, onde ir se quiser saber detalhes sobre o Workflow relacionado ao pedido de compra? Vamos!

A chave aqui são 2 tabelas padrão SAP: SWWFLEXPROC e SWW_WI2OBJ,  pois ambas terão o link entre a chave do objeto (Purchase Order ID é este exemplo) e o WF ID ( Workitems como chamamos, para o Workflow principal).

O primeiro foi criado junto com os Fluxos de Trabalho Flexíveis, mas o segundo ainda existe para o ECC.

Então agora, se selecionarmos os dados usando a chave PO:


Obteremos IDs de Workitem (podem ser mais de um, pois cada um deles representa um processo de aprovação do qual o documento fez parte), neste exemplo temos 2... então precisamos obter o mais novo :


Da mesma forma que uma das classes padrão SAP (para Fluxo de Trabalho Flexível):


E é aqui que ele filtra o mais novo:


Como você pode ver, ele procura a mesa nova, mas também a mesa "antiga (mas dourada)"... que poderíamos usar assim:


E obtenha os mesmos dados:


Observação: se você consultar a documentação sobre Fluxo de trabalho flexível ( aqui ) para PO, notará que o ID do fluxo de trabalho é WS00800238 e o ID da tarefa é TS00800531 :


O ID do fluxo de trabalho é a "tarefa" principal do fluxo de trabalho (como um ID pai), e o ID da tarefa acima é a etapa de aprovação (1 ou mais) do mesmo. O Workitem ID é gerado em tempo de execução quando os Workflows são executados...

Junto com as mudanças e a criação do Workflow Flexível, a SAP criou muitas classes ABAP que podem ajudá-lo a realizar todos os tipos de cenários, classes como:

CL_SWF_FLEX_WEBGUI_WORKFLOW

CL_SWF_FLEX_IFS_FACTORY

CL_SWF_FLEX_BADI_UTILS

CL_SWF_FLEX_IFS_INST_WORKFLOW

Alguns deles permanecem "ocultos", como se você os procurasse no código, não obteria nenhum resultado de uso:


E há muitos deles:


Nem encontrado (também a tabela SWWFLEXPROC ) na documentação oficial do SAP :


Voltando ao cenário, se você usar este Workitem ID (WI_ID) em transações como SWI1/SWIA, você obterá todos os detalhes do processo de Workflow (use o botão Detalhes técnicos para ver a visualização abaixo):


Como pudemos ver no ME23n, ele teve 2 etapas de aprovação e agora está concluído (totalmente aprovado), observe também os Workites "filhos".

Mas onde poderíamos obter TODOS os detalhes, tal como mostrado no ME23n? Assim como fizemos no passado usando o BAPI mencionado acima...

A chave aqui são as classes descritas acima, onde em locais como este (classe->método):


Poderíamos encontrar detalhes como comentários, atualização, processadores, etc:


Aqui para última atualização e comentários :


E se você depurar e estudar um pouco a seleção de dados , descobrirá que pode obter aqui a mesma saída exibida no ME23n para a primeira tela:


E quando você clica duas vezes para os aprovadores, aqui:


Os mesmos valores:


Depois de dar uma olhada no código você pode concluir que essas classes atenderão todas as necessidades do cenário de fluxo de trabalho flexível... não apenas para um cenário específico (como era antes, tínhamos um BAPI para PO, PR, etc), então desta vez a SAP também criou algo realmente útil. A chave principal aqui é a reutilização , portanto, qualquer tela de qualquer objeto que use Fluxo de Trabalho Flexível pode obter detalhes do Fluxo de Trabalho da mesma maneira.

Além disso, a classe CL_SWF_FLEX_WEBGUI_WORKFLOW  vai até criar o ALV/GRID para as telas, como mágica. :levemente_smiling_face:

Outra coisa que você vai descobrir lá mas posso entregar mais rápido aqui para você, com o Workitem ID principal (no exemplo aqui 33104) você pode obter o Etapas de aprovação aqui:


WI_TYPE 'W' = Tarefa de decisão do usuário


E no campo WI_AAGENT obtenha o aprovador final para a etapa (observe também o campo WI_STAT para Status).

Quer outro exemplo? Como fica quando o pedido ainda está pendente de aprovação:


Assim... e também olhando o código da classe, podemos ver que você pode obter os aprovadores atuais (após a execução das ações ela não será exibida aqui, mas no WI_AAGENT acima) para a etapa como esta:


E pronto:


Fluxos de trabalho flexíveis vieram para ficar! Com o aprendizado acima você poderá criar suas próprias funções, CDS Views, etc... para recuperar aprovadores e muitas outras coisas legais que podem ser encontradas nas classes CL_SWF_FLEX*! O que mais poderíamos criar? Deixe um comentário abaixo e vamos trabalhar juntos!

Espero que tenham gostado e que possa ser de alguma ajuda para você.

PS: Esperamos que este blog seja exibido em help.sap ao procurar por qualquer um dos itens acima :smiling_face_with_sunglasses:.

Se você tiver alguma dúvida, deixe-a abaixo.

Comentários

Postagens mais visitadas deste blog

Desenvolvendo Carreira em SAP: SAP Hana e SAP SAP S/4Hana