Compartilhar via


Como os fluxos da nuvem são desenvolvidos e usados

O Microsoft Power Platform se integra ao SAP por meio de um portfólio de fluxos de nuvem pré-configurados que orquestram uma série de transformações e usam o conector SAP ERP.

Todo objeto SAP gerenciado de um aplicativo de tela é mapeado para uma série de fluxos de pesquisa, criação, leitura e atualização. Por exemplo, existem quatro fluxos de nuvem para o objeto de fornecedor:

  • ReadVendor: Lê um único fornecedor com base no número do fornecedor e nas principais informações relacionadas.
  • ReadVendorList: Pesquisa uma lista de fornecedores com base nos critérios de pesquisa informados.
  • CreateVendor: Cria um novo objeto de fornecedor com informações relacionadas à chave.
  • UpdateVendor: Atualiza um objeto de fornecedor existente e informações relacionadas à chave.

Estender os fluxos de nuvem

Você pode estender os fluxos da nuvem de acordo com os requisitos comerciais locais. Com a ajuda de seu analista de negócios do SAP, você pode adicionar e mapear novos campos para o conector de ERP do SAP e alternar entre os aplicativos por meio de conteúdos JSON.

A criação de uma nova requisição de compra oferece um cenário de transação típico entre aplicativos de tela, fluxos de nuvem e SAP:

  1. O aplicativo SAP Requisition Management prepara JSON usando dados dos controles de entrada e coleções de itens armazenados, substituindo qualquer valor nulo por strings vazias.

         Set(
            varRequisitionJSON,//Build the requisition JSON
            "{Header: " & JSON(//Build the requisition header JSON
                {
                    PurchaseRequisitionNumber: varRequisition,
                    Vendor: Trim(txtRequisitionDetailsVendor.Text),
                    PurchasingOrganization: cmbRequisitionDetailsPurchasingOrg.Selected.'Value Code',
                    PurchasingGroup: cmbRequisitionDetailsPurchasingGroup.Selected.'Value Code',
                    Currency: cmbRequisitionDetailsCurrency.Selected.'Value Code'
                },
                JSONFormat.IndentFour
            ) & ", items: " & JSON(//Build the requisition items JSON from cached collection
                colRequisitionItems,
                JSONFormat.IndentFour
            ) & "}"
        );    
        Set(
            varRequisitionJSON,
            Substitute(
                varRequisitionJSON,
                "null",
                """"""
            )
        );
    
  2. O aplicativo chama o fluxo incorporado CreateRequisition usando a função Executar e passando a string JSON construída anteriormente.

            Set(
                varRequisitionReturn,
                CreateRequisition.Run(varRequisitionJSON)
            );
    
  3. O fluxo CreateRequisition recebe a string JSON do aplicativo por meio do gatilho PowerApps (V2) e usa uma ação Analisar JSON para decompô-la.

  4. As variáveis são definidas usando as informações JSON para permitir chamadas mais fáceis de mapeamento no conector SAP ERP.

  5. Uma sessão SAP é criada usando o conector SAP ERP, e as chamadas à interface de programação de aplicativo de negócios (BAPI) são feitas usando as informações JSON de requisição analisada armazenadas em variáveis.

  6. Os erros gerados por SAP são avaliados, e uma Resposta HTTP com êxito ou erro é retornada para o aplicativo de tela usando um conteúdo JSON.

  7. O aplicativo de tela usa as informações de resposta, especificamente o campo Status para notificar o usuário final do êxito ou falha e para determinar as próximas etapas de processamento.

    Switch(
        varRequisitionReturn.Status,
        "Error",//Raise error messages leaving variables in existing state for user to try again
        Notify(
            Concat(
                varRequisitionReturn.Messages,
                Message,
                " "
            ),
            NotificationType.Error
        ),
        "Success",//Raise success message
        Notify(
            Concat(
                varRequisitionReturn.Messages,
                Message,
                " "
            ),
            NotificationType.Success
    );

Mais informações:

Suporte a implantações em vários idiomas

Por padrão, o Conector ERP do SAP chama o idioma do navegador do usuário para interagir com o SAP, por isso, o pacote de idiomas do SAP correspondente deve ser instalado.

No entanto, se for necessário oferecer suporte a implantações globais e em vários idiomas, você poderá substituir o idioma do navegador do usuário e usar como padrão um determinado idioma. Por exemplo, um usuário do Power Apps na Espanha com o idioma do navegador definido como espanhol pode precisar interagir com um sistema SAP que tenha apenas o pacote de idiomas em inglês (EN) instalado. Nesse caso, passe o código de duas letras ENISO 639-1 como parte da propriedade Idioma na cadeia de conexão do SAP para evitar erros.

Dica

Configure variáveis de ambiente como parte da sua estratégia de geranciamento de soluções e extensão fluxo da nuvem para armazenar centralmente um valor de idioma para passar para várias ações do conector SAP ERP.

Mais informações: Diretriz de propriedades do sistema SAP

Tratamento de erros

Cada fluxo é projetado com um par Try/Catch de operações de escopo. Dentro da operação Try estão as principais chamadas de conector SAP. Após cada chamada, os fluxos verificam se a etapa do conector ERP do SAP teve uma falha catastrófica ou o que também é chamado de core dump de programação avançada de aplicativo de negócios (ABAP). Nesse caso, os fluxos capturam a mensagem de erro gerada.

Essa mensagem de erro é exibida na etapa ErrorTable da operação Catch, juntamente com todos os erros gerados durante essa execução do fluxo.

Todos os fluxos incorretos são registrados na tabela erro do modelo de solução SAP. Cada erro de fluxo mostra a primeira mensagem de erro gerada pelo fluxo com outras informações.

Vá até o aplicativo SAP Administrator conforme descrito no artigo Monitorar erros para consultar os erros exibidos.

Próxima etapa

Amplie os aplicativos baseados em modelos e Dataverse

Ver também

Comece a usar o modelo SAP Procurement