Olá,
Às vezes você busca uma solução no Google (ou mesmo aqui) e é muito difícil de encontrar, ou busca melhores maneiras de alcançar um cenário que o SAP padrão já faz (como BAPIs, etc.) mas sem muito sucesso.
Estou aqui para te dizer que, se você tem o OnPremise FIORI instalado (ou outros produtos), pode estudar como fazer no "novo enfoque" que vem com as aplicações padrão, principalmente com classes/métodos "API" que podem ser ou conter exatamente o que você precisa.
Vamos ver a Aplicação FIORI padrão
Approve Purchase Order
como exemplo:
Ao observar a página de detalhes do item, podemos ver que lista todos os detalhes importantes sobre ele:
Mas se não quiser selecionar manualmente todas as tabelas relevantes para obter esses dados, o que pode fazer para alcançar uma solução "completa" e simples? Vamos estudar como o FIORI faz!
Primeiro, ativando um rastreamento para o seu usuário em:
/IWFND/TRACES.
Após a atualização, percebemos qual serviço/entidade executa exatamente essa tela para obter os dados:
Ao observar o retorno, podemos ver todos os dados apresentados na tela.
Agora que sabemos qual serviço é executado (também pode descobrir consultando a Biblioteca de Aplicações FIORI ?):
Vá para a implementação do serviço para encontrar a classe provedora de dados (DPC):
Esta:
Agora procure por esta classe, coloque um ponto de interrupção no método GET_ENTITY (procurando a entidade WorkflowTask, como vimos no RASTREAMENTO):
Descobrimos que o local exato onde o código padrão busca os dados relevantes para esta PO é no método GET_PO_WORKFLOW_FOR_LIST:
¡Voilà! Agora você descobriu que há uma classe (CL_GBAPP_APV_PO_API) que contém muitos métodos relacionados com o processo de aprovação de uma PO, então você pode ver o que todos os métodos fazem e copiá-los conforme suas necessidades ou até mesmo usar também esses métodos da classe.
Aproveite! ??????
Saudações.