Criar business objects personalizados

Objectives

After completing this lesson, you will be able to:
  • Criar objetos de negócios personalizados
  • Criar uma IU para um business object personalizado
  • Adicionar lógica personalizada a um business object personalizado

Business objects personalizados

Business objects personalizados é uma ferramenta utilizada para criar seus próprios business objects para utilização como tabelas de banco de dados ou como base para aplicações personalizadas.

Entre outras coisas, você pode:

  • Criar seus próprios objetos de negócios e as tabelas de banco de dados correspondentes
  • Adicionar campos a objetos de negócios
  • Gerar serviços OData para business objects personalizados para trabalhar com e para modificar business objects personalizados externamente
  • Publicar objetos de negócios
  • Editar objetos de negócios que já foram publicados
  • Criar subnós múltiplos para um objeto de negócios
  • Criar associações entre objetos de negócios personalizados para reutilização
  • Implementar lógica personalizada no nível do nó
  • Restaurar objetos de negócios para sua última versão publicada
temp

Para criar um business object personalizado, proceda da seguinte forma:

  1. Abra o app Business objects personalizados.
  2. Selecione Novo.

Não se esqueça de publicar seu business object personalizado. Opcionalmente, você pode decidir mais tarde se quer adicionar lógica personalizada ao seu business object personalizado. Você pode adicionar lógica personalizada depois de publicar seu business object personalizado.

temp

Na seção Campos do app Business objects personalizados, adicione campos ao seu business object personalizado e, assim, defina o que as colunas da sua tabela de banco de dados são chamadas.

temp

Na seção Informações gerais, você pode ativar o campo de seleção Geração de serviço. Ative este campo de seleção se você quiser utilizar um serviço OData para modificar seu business object personalizado externamente.

Opcionalmente, você também pode ativar o campo de seleção Dados administrativos do sistema. Isso gera e preenche automaticamente campos que são utilizados para armazenar dados administrativos relevantes para os business objects personalizados. São criados os seguintes campos:

  • Criado em
  • Criado por
  • Última modificação em
  • Último modificador

Utilizando o campo de seleção Pode ser associado, você permite que seu business object personalizado seja associado a outro business object personalizado para referência e para utilização como entradas possíveis.

Como criar um business object personalizado

Para as etapas e dados desta demonstração, consulte exerseCreate a Custom Business Object.

Criar um business object personalizado

Cenário empresarial

Neste exercício, você criará um business object personalizado. Este business object será ampliado em exercícios posteriores. Você irá gerar uma IU SAP Fiori e adicionar lógica personalizada.

Nota

Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.

Etapas

  1. Abra o app Business objects personalizados.

    1. Para iniciar o launchpad do SAP Fiori do sistema S4D, selecione o caminho 10 Developments4dhost10 S4D Fiori Launchpad na barra de marcadores do navegador.

    2. No launchpad do SAP Fiori, selecione o bloco Business objects personalizados.

  2. No app Business objects personalizados, crie um novo business object com os seguintes valores:

    NomeIdentificadorNome no pluralCenário
    Fatura de cliente ##ZZ1_CUSTOMERINVOICE##Faturas do cliente ##Ordem
    1. Na guia Business objects personalizados no app Business objects personalizados, selecione Novo na barra de ferramentas da tabela exibida.

    2. No diálogo Novo business object personalizado que é exibido, preencha o formulário com os valores da tabela acima e selecione Criar.

  3. Ative o campo de seleção Geração de serviço para o novo business object.

    Nota

    O campo de seleção Geração de serviço ativado garante que um serviço OData seja criado para seu business object. Este serviço OData é necessário pela IU SAP Fiori para acessar os dados do business object. Você gerará essa IU do SAP Fiori para o business object no próximo exercício.
    1. Na visão detalhada para processar o novo business object personalizado, certifique-se de que a ficha de registro Informações gerais é exibida.

    2. Marque o campo de seleção Serviço back-end.

  4. Adicione os seguintes campos ao nó CUSTOMERINVOICE## de seu business object:

    RótuloIdentificadorTipoKeyPropriedades
    IDIDIdentificador numéricoXComprimento: 10
    ID do clienteCustomerIDIdentificador numérico Comprimento: 8
    Nome do clienteCustomerNameTexto Comprimento: 25, somente leitura: X
    MontanteMontanteMontante com moeda  
    Desconto (%)DescontoNúmero Comprimento: 5, decimais: 2, somente leitura: X
    Valor do descontoDiscountAmountMontante com moeda Protegido contra gravação: X
    PagoÉ pagoCampo de seleção  

    Nota

    Certifique-se de que os campos Nome do cliente, Desconto (%) e Montante de desconto são somente leitura. O respectivo valor será definido em um exercício posterior por meio da lógica personalizada.
    1. Mude para a ficha de registro Campos.

    2. Selecione Novo na barra de ferramentas da tabela exibida para criar os novos campos. Defina as propriedades Etiqueta, Identificador, Tipo e Chave, bem como as Propriedades adicionais dos campos adicionados, conforme indicado na tabela acima.

  5. Adicione os campos padronizados Criado em, Criado por, Última modificação em e Último modificador ao seu business object.

    1. Mude para a guia Informações gerais.

    2. Marque o campo de seleção Dados administrativos do sistema.

      Nota

      O editor agora adiciona automaticamente os campos Criado em, Criado por, Última modificação em e Último modificador ao seu business object. Você pode ver esses campos na lista de campos quando voltar para a guia Campos.
  6. Gravar um esboço do seu business object personalizado.

    1. Selecione Gravar esboço no rodapé da página.

  7. Publique seu business object personalizado.

    1. Selecione Publicar no rodapé da página.

Geração de IU

Para trabalhar com um business object, um usuário precisa de uma interface do usuário (IU). Utilizando a IU, as entidades de business object personalizadas podem ser exibidas, criadas, atualizadas e eliminadas.

Como expor uma aplicação com base em um business object personalizado:

Procedimento para expor uma aplicação

SAP S/4HANA Cloud:SAP S/4HANA, edição on-premise:
1. Ative os campos de seleção para Geração de IU e Geração de serviço no app Business objects personalizados:1.Registrar o serviço OData que foi gerado para o business object personalizado no SAP Gateway2.Criar e implementar uma aplicação SAP Fiori com base no serviço OData ativado utilizando o SAP Business Application Studio
2.Criar e implementar um aplicativo SAP Fiori com base no serviço OData ativado usando o SAP Business Application Studio
2.Crie uma ampliação de catálogo personalizado no app Ampliações de catálogo personalizadas.3.No SAP Fiori Launchpad Designer, crie um mapeamento de destino e um bloco para a aplicação implementada em um catálogo empresarial apropriado.

No SAP S/4HANA Cloud, a geração de IU é uma funcionalidade de extensibilidade no app, efetuada completamente dentro do sistema SAP S/4HANA. É uma funcionalidade de usuário-chave, com possibilidades limitadas. Como alternativa, a extensibilidade lado a lado mais poderosa, por meio do SAP Business Technology Platform, pode ser usada para desenvolver uma IU personalizada para o SAP S/4HANA Cloud com todas as opções do SAPUI5.

Para gerar uma aplicação a partir de um business object personalizado no SAP S/4HANA Cloud, ative os dois campos de seleção para Geração de IU e Geração de serviço no app Business objects personalizados. Em seguida, publique o business object para acionar a geração da IU (mestre e detalhada) e do serviço OData.

Para dar aos usuários autorização para acessar a IU gerada, você deve disponibilizá-la como uma aplicação do launchpad do SAP Fiori, atribuindo-a a um catálogo empresarial usando o app Ampliações de catálogo personalizadas.

Nota

Seu usuário deve ter uma função empresarial, contendo o catálogo empresarial correspondente, para visualizar a aplicação criada.

Na versão on-premise do SAP S/4HANA, não há campo de seleção para gerar a IU. Para obter uma IU, você deve executar as etapas listadas na figura. Para criar um aplicativo SAP Fiori no SAP Business Application Studio, você pode utilizar a planta baixa, por exemplo, Página de relatório de lista.

Nota

Você ainda deve atribuir o catálogo empresarial com o mapeamento de destino criado e o bloco aos seus usuários mediante uma função na empresa, de modo que eles possam acessar a aplicação criada. Você também deve adicionar a autorização de execução para o serviço OData que foi gerado para o business object personalizado à função empresarial na transação Atualização de funções (PFCG).

Como criar uma IU para o business object personalizado

Para as etapas e dados desta demonstração, consulte o exercício Criar uma IU para o business object personalizado.

Criar uma IU para o business object personalizado

Cenário empresarial

Neste exercício, você fornecerá uma IU para o objeto de negócios personalizado criado no exercício anterior. Para isso:

  1. Registre o serviço OData que foi gerado para seu business object personalizado no SAP Gateway.
  2. Crie uma aplicação SAP Fiori com base neste serviço OData utilizando o SAP Business Application Studio.
  3. Implemente-o no servidor ABAP.
  4. Disponibilize a nova aplicação ao seu usuário por meio de um bloco no launchpad do SAP Fiori.

Nota

Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.

Etapas

  1. Registre o serviço OData ZZ1_CUSTOMERINVOICE##_CDS que foi gerado para seu business object personalizado no SAP Gateway utilizando seu pacote ZS4D425_##.

    1. Se você ainda não estiver conectado ao sistema S4D, selecione a entrada do sistema S4D SAP GUI SNC [PAS] no SAP Logon.

    2. Selecione Log On.

    3. Insira /n/IWFND/MAINT_SERVICE no campo de comandos da janela do SAP GUI e pressione Enter.

      Resultado

      A transação Ativar e atualizar serviços é aberta.
    4. Selecione Adicionar serviço.

    5. Na tela Adicionar serviços selecionados, marque o campo de seleção Implementado em conjunto.

    6. No campo Nome do serviço técnico, insira *##*.

    7. Selecione Chamar serviços.

    8. Na tabela exibida, selecione a linha que pertence ao serviço OData ZZ1_CUSTOMERINVOICE##_CDS.

    9. Selecione Adicionar serviços selecionados.

    10. No diálogo que é exibido, insira seu pacote ZS4D425_## no campo Atribuição de pacote.

    11. Selecione Continue.

    12. Certifique-se de que a ordem de transporte pertencente ao curso de treinamento esteja selecionada nos dois pop-ups seguintes e confirme esses pop-ups com Continuar.

    13. Feche a caixa de diálogo Informações exibida clicando em Continuar.

  2. Abra seu espaço de desenvolvimento S4D425_## no SAP Business Application Studio.

    1. Abra o SAP Business Application Studio utilizando o URL que você recebeu de seu instrutor.

    2. Se você não tiver efetuado logon automaticamente, clique no link <xxxxxxxxx>.accounts.ondemand.com exibido na página do navegador exibida. Se solicitado, insira seu endereço de e-mail seguido pela senha nos campos de entrada relevantes no browser. Você receberá o endereço de e-mail e a senha necessários do instrutor. Por fim, selecione o botão Logon para efetuar o logon no SAP Business Application Studio.

      Resultado

      O Dev Space Manager é exibido no navegador.
    3. Certifique-se de que seu espaço de desenvolvimento esteja no estado EM EXECUÇÃO. Se não estiver, inicie-o.

    4. Clique no nome S4D425_## de seu espaço de desenvolvimento assim que ele estiver no estado EM EXECUÇÃO.

      Resultado

      O SAP Business Application Studio é aberto em seu espaço de desenvolvimento SAP FioriS4D425_##.
  3. Agora, crie uma aplicação de elementos do SAP Fiori utilizando a planta baixa List Report Page no SAP Business Application Studio. A aplicação deve ser baseada no seu serviço OData de fatura de cliente que você acabou de registrar no SAP Gateway. Para isso, use os seguintes valores nas respectivas etapas do assistente:

    Selecionar modelo e localização de destino

    CampoValor
    ModeloAplicativo SAP Fiori

    Seleção de modelo

    CampoValor
    ModeloPágina de relatório de lista

    Fonte de dados e seleção de serviços

    CampoValor
    Fonte de dadosConectar a um sistema
    SistemaS4D_100
    ServiçoZZ1_CUSTOMERINVOICE##_CDS (1) – OData V2

    Seleção de entidade

    CampoValor
    Entidade principalZZ1_CUSTOMERINVOICE##
    Entidade de navegaçãoNenhum

    Atributos do projeto

    CampoValor
    Nome do módulos4d425_cust_invoice_##
    Título da aplicaçãoFaturas de cliente
    Espaço de nomes de aplicação
    DescriçãoAdministrar faturas
    Caminho da pasta do projeto/home/usuário/projetos
    Adicionar configuração de implementaçãoSim
    Adicionar configuração FLPNão
    Configurar opções avançadas
    • Versão UI5
    • Tema UI5
    • Adicione a configuração Eslint ao projeto.
    • Adicione bibliotecas de assistência de código javascript ao seu projeto.
    • Ativar dados de telemetria...
    Sim
    • <use o valor proposto>
    • <use o valor proposto>
    • Não
    • Não
    • Não

    Configuração de implementação

    CampoValor
    Escolha o destinoABAP
    DestinoS4D_100 - http://s4d.virtual:443
    Repositório ABAP SAP UI5 (comprimento máximo: 15 caracteres)Z_CUST_INV_##
    PacoteZS4D425_##
    Ordem de transporte<ordem de transporte pertencente ao curso de treinamento>
    Descrição da implementaçãoEstudante ##

    Nota

    A configuração de implementação pode ser editada após a criação do projeto por meio do arquivo ui5-deploy.yaml no diretório do projeto.
    1. Selecione ArquivoNovo projeto do modelo no menu SAP Business Application Studio.

    2. No assistente Projeto a partir do modelo que é exibido, selecione o bloco da aplicação SAP Fiori e selecione Iniciar.

    3. Na etapa Selecionar modelo e localização de destino, selecione Aplicativo SAP Fiori como modelo. Pressione Seguinte.

    4. Na etapa Seleção de modelo, selecione o bloco Página de relatório de lista e pressione Seguinte.

    5. Na etapa Fonte de dados e seleção de serviços, insira os valores da tabela correspondente acima e selecione Seguinte.

    6. Na etapa Seleção de entidade, insira os valores da tabela correspondente acima e selecione Seguinte.

    7. Na etapa Atributos do projeto, insira os valores da tabela correspondente acima e selecione Seguinte.

    8. Na etapa Configuração de implementação, insira os valores da tabela correspondente acima e selecione Concluir.

      Resultado

      Seu projeto de elementos do SAP Fiori é gerado e salvo para uso futuro.
  4. Abra o projeto s4d425_cust_invoice_## que você acabou de criar em uma área de trabalho.

    Cuidado

    Execute esta etapa somente depois de ver a mensagem no SAP Business Application Studio de que o novo projeto de elementos do SAP Fiori foi gerado e salvo para utilização futura.
    1. Selecionar arquivoAbrir área de trabalho...no menu do SAP Business Application Studio.

    2. Na caixa de diálogo Abrir workspace exibida, selecione a pasta s4d425_cust_invoice_## e selecione Abrir.

      Resultado

      O projeto s4d425_cust_invoice_## é aberto no SAP Business Application Studio.
  5. Teste sua aplicação iniciando-a a partir do SAP Business Application Studio.

    1. Clique com o botão direito do mouse na pasta do app da Web em seu projeto s4d425_cust_invoice_## e selecione Visualizar aplicativo no menu de contexto que é exibido.

    2. Selecione o script npm chamado start na caixa de diálogo exibida.

      Resultado

      A aplicação será agora exibida em uma nova ficha de registro.
    3. Selecione Criar na barra de ferramentas da tabela exibida para criar uma nova fatura de cliente.

    4. Na página exibida, preencha os campos do formulário com valores significativos.

      Nota

      Considere que existe uma entrada possível para o campo de moeda.
    5. Para gravar suas entradas, selecione o botão Criar.

    6. Navegue de volta para a página Report de lista.

    7. Na página Relatório de lista, selecione Ir.

    8. Selecione sua fatura recém-criada na tabela exibida para navegar para a página de objeto correspondente. Considere que os campos Criado em, Criado por, Última modificação em e Último modificador foram preenchidos automaticamente.

      Nota

      Observe que os campos Criado por e Último modificador não mostram seu usuário TRAIN-##. Isso se deve ao fato de o destino utilizado para a conexão ao sistema S4D utilizar a autenticação básica. Ou seja, por uma questão de simplicidade, o usuário e a senha associada para autenticação no sistema S4D têm programação incondicional no destino. Exatamente este usuário é agora exibido nos campos Criado por e Último modificador.
  6. Agora implemente seu projeto s4d425_cust_invoice_## do SAP Business Application Studio para o sistema SAP S/4HANA. Para fazer isso, use o comando npm run deploy no terminal.

    1. Selecione TerminalNovo terminal no menu SAP Business Application Studio.

    2. No prompt de comando no terminal, insira o comando npm run deploy e pressione ENTER:

      Code Snippet
      1
      user: $

      Nota

      Certifique-se de que o terminal está aberto no diretório de projetos. O caractere $ deve ser precedido pelo usuário:s4d425_cust_invoice_##.

      Nota

      Se ocorrer um erro durante a implementação com a mensagem fiori: not found, digite npm install no prompt de comando no terminal e pressione ENTER:
      Code Snippet
      1
      user: $
      Em seguida, insira npm run deploy novamente.
    3. Quando solicitado, confirme a configuração de implementação exibida e pressione y.

      Resultado

      A implementação para o sistema SAP S/4HANA é agora executada. No final do processo de implementação, você deve ver a mensagem Implementação com êxito no terminal.
  7. Disponibilize a aplicação implementada ao seu usuário por meio do launchpad do SAP Fiori. Para isso, crie um mapeamento de destino apropriado no catálogo S4D425 Aluno de catálogo ## (Z_S4D425_BC_STUDENT_##) no SAP Fiori Launchpad Designer. Este catálogo foi criado em um exercício anterior e já está atribuído ao seu usuário por meio de uma função. Utilize os seguintes valores para o mapeamento de destino:

    CampoValor
    Objeto semânticoFatura
    Açãogerenciar##
    Tipo de aplicaçãoApp Fiori SAPUI5
    TítuloAdministrar faturas de cliente
    URL/sap/bc/ui5_ui5/sap/z_cust_inv_##
    IDs4d425_cust_invoice_##
    1. Abra o SAP Fiori Launchpad Designer, selecionando o caminho 10 Developments4dhost10 S4D Fiori Launchpad Designer Configuration na barra de marcadores do navegador.

    2. No SAP Fiori Launchpad Designer, selecione Catálogos.

    3. No campo Procurar catálogos, insira S4D425 e pressione Enter.

    4. Selecione seu catálogo S4D425 Catalog Student ## (Z_S4D425_BC_STUDENT_##) na lista de ocorrências.

    5. Selecione Mapeamentos de destino na parte superior da página.

    6. Selecione Criar atribuição de destino.

    7. Insira os valores da tabela no formulário exibido e selecione Gravar.

  8. Para a intenção Invoice-manage## utilizada no mapeamento de destino recém-criado, crie agora um bloco estático Administrar faturas de cliente com o subtítulo Estudante ## no catálogo S4D425 Aluno de catálogo ## (Z_S4D425_BC_STUDENT_##) no SAP Fiori Launchpad Designer.

    1. No SAP Fiori Launchpad Designer, selecione Blocos ao lado de Mapeamentos de destino.

    2. Selecione Criar bloco.

    3. Selecione Iniciador de aplicativos - Estático.

    4. No painel Geral, insira os seguintes valores:

      CampoValor
      TítuloAdministrar faturas de cliente
      SubtítuloEstudante ##
    5. Selecione um ícone à sua escolha, utilizando as entradas possíveis para o campo Ícone.

    6. No painel Navegação, insira os seguintes valores:

      CampoValor
      Objeto semânticoFatura
      Açãogerenciar##
    7. Selecione Gravar.

  9. Agora, adicione a autorização de execução para o serviço OData que foi gerado para seu business object personalizado à sua função empresarial. Para isso, processe sua função Z_S4D425_BR_STUDENT_## na transação Atualização de funções no sistema S4D. Adicione a autorização de início OData para o serviço OData ativado ZZ1_CUSTOMERINVOICE##_CDS a esta função. Em seguida, gere novamente o perfil de autorização para a função.

    1. Se você ainda não estiver conectado ao sistema S4D, selecione a entrada do sistema S4D SAP GUI SNC [PAS] no SAP Logon.

    2. Selecione Log On.

    3. Insira /nPFCG no campo de comandos da janela do SAP GUI e pressione Enter.

    4. No campo Função, insira Z_S4D425_BR_STUDENT_## e selecione Modificar.

    5. Mude para a guia Menu e selecione a opção Padrão de autorização para o botão Inserir nó, por meio do pequeno triângulo na borda direita.

    6. Na janela Serviço exibida, selecione SAP Gateway: Metadados de grupos de serviços no menu para o Padrão de autorização.

    7. Na tabela exibida, insira o nome do serviço OData ativado ZZ1_CUSTOMERINVOICE##_CDS_0001 na coluna Serviço TADIR e selecione Copiar.

    8. Selecione Gravar para gravar suas modificações.

    9. Agora, mude para a guia Autorização e selecione Modificar dados de autorização.

    10. Na tela exibida, selecione Gerar.

  10. Adicione o app de faturas ao grupo S4D425 (criado em um exercício anterior) da Página inicial do launchpad do SAP Fiori.

    1. Para abrir o launchpad do SAP Fiori do sistema S4D, selecione o seguinte caminho na barra de marcadores do navegador: 10 Desenvolvimentos4dhost10 S4D Fiori Launchpad

    2. Abra o Menu de ações do usuário no canto superior direito do launchpad do SAP Fiori e selecione App Finder.

    3. No App Finder, selecione o catálogo S4D425 Aluno de catálogo ## no lado esquerdo e selecione o ícone Adicionar bloco abaixo do app Administrar faturas de cliente (estudante ##) no lado direito.

    4. No popup que aparece, adicione o app ao grupo S4D425, marcando o campo de seleção correspondente e selecionando Fechar.

    5. Navegue de volta para a Página inicial do launchpad do SAP Fiori.

  11. Teste o app Administrar faturas de cliente no launchpad do SAP Fiori do sistema S4D.

    1. Selecione o bloco Administrar faturas de cliente no grupo S4D425 do launchpad do SAP Fiori.

    2. Selecione Criar na barra de ferramentas da tabela exibida para criar uma nova fatura de cliente.

    3. Na página exibida, preencha os campos do formulário com valores significativos.

    4. Para gravar suas entradas, selecione o botão Criar.

Lógica e ações personalizadas

temp

Para adicionar lógica personalizada a um business object personalizado, você deve ativar a implementação de lógica da seguinte forma:

  1. Na aplicação Business objects personalizados, mude para a seção Informações gerais.
  2. Marque a caixa para Determinação e validação.
  3. Publique o business object.

Você pode selecionar entre os modelos Após modificação e Antes de salvar para sua lógica personalizada.

temp

O modelo Após modificação é utilizado para recalcular dados imediatamente após as instâncias de nó terem sido criadas ou processadas e, em seguida, gravadas. A lógica desse padrão sobregrava valores de campo, como strings de texto ou datas. Se as instâncias de nó forem eliminadas, este modelo é utilizado para informar nós dependentes da eliminação e acionar o respectivo recálculo.

No exemplo exibido, o ID do campo-chave do nó do business object personalizado CUSTOMERINVOICE10 é definido se ainda for inicial. Para isso, o maior ID já atribuído é selecionado do banco de dados e aumentado em 1. O parâmetro de modificação CUSTOMERINVOICE10 é usado para ler e modificar dados de nó atuais. Os dados da fatura de cliente existentes são lidos por meio da visão CDS que é nomeada como o identificador do business object ZZ1_CUSTOMERINVOICE10.

temp

O modelo Antes de gravar é usado para validar a consistência de instâncias de nó na fase de gravação. A lógica deste modelo verifica se os valores do campo estão corretos e exibe mensagens de erro se os valores do campo estiverem incorretos. Após esta verificação, os campos podem ser processados manualmente. Se os valores de campo não cumprirem os requisitos de verificação, o business object personalizado não pode ser gravado. Os valores do campo precisam ser corrigidos antes de o business object personalizado poder ser salvo.

No exemplo mostrado, verificamos se o montante da fatura está definido. A fatura é impedida de ser gravada se o campo do montante da fatura não estiver preenchido com um valor. Neste caso, é retornada uma mensagem de erro. O parâmetro de importação CUSTOMERINVOICE10 é utilizado para ler dados de nó atuais. O parâmetro de exportação VALID está definido como verdadeiro para salvar e como falso para salvar rejeição. O parâmetro de exportação MESSAGE é usado para fornecer a mensagem de validação.

temp

As ações são utilizadas para executar uma lógica específica nos dados acionados pela IU, criada para o business object personalizado.

A lógica de ação é implementada para um nó. Isso significa que a ação tem acesso de leitura a todas as partes do business object (parâmetro de entrada), mas acesso de escrita somente ao nó no qual a lógica de ação é implementada (parâmetro de modificação). Você também pode definir uma mensagem de erro, advertência e êxito que é exibida após a ação ter sido executada (parâmetro de exportação).

A ação no exemplo mostrado é utilizada para calcular o valor do desconto com base no desconto concedido ao cliente. Para isso, o desconto concedido ao cliente é selecionado a partir da visão CDS D425_I_CUST10 e aplicado ao montante da fatura para calcular o montante de desconto. O desconto a cliente selecionado e o montante de desconto calculado são atribuídos aos campos correspondentes do business object. Além disso, o campo de moeda para o montante de desconto é atribuído à mesma moeda utilizada para o montante da fatura. É retornada uma mensagem de erro se não tiver sido possível encontrar um desconto a cliente no banco de dados. O parâmetro de modificação CUSTOMERINVOICE10 é usado para ler e modificar dados de nó atuais. O parâmetro de exportação MESSAGE é usado para fornecer a mensagem de erro.

Como implementar a lógica personalizada para um business object personalizado

Para as etapas e dados desta demonstração, consulte o exercício Implementar lógica personalizada para seu business object personalizado.

Implementar lógica personalizada para seu business object personalizado

Cenário empresarial

Neste exercício, você adiciona lógica personalizada ao seu business object. Você irá implementar a lógica Após modificação para definir valores de campo e a lógica Antes de gravar para verificar se os campos obrigatórios estão preenchidos com valores. Além disso, você adicionará uma Ação ao objeto de negócio que é utilizado para calcular o valor do desconto com base no desconto concedido ao cliente.

Nota

Neste exercício, quando os valores incluírem ##, substitua ## por seu número de grupo.

Etapas

  1. Ative a implementação da lógica para seu business object personalizado ZZ1_CUSTOMERINVOICE## na aplicação Business objects personalizados. Gravar um esboço de suas modificações e publicá-lo.

    1. Para iniciar o launchpad do SAP Fiori do sistema S4D, selecione o caminho 10 Developments4dhost10 S4D Fiori Launchpad na barra de marcadores do navegador.

    2. No launchpad do SAP Fiori, selecione o bloco Business objects personalizados.

    3. Abra seu business object personalizado ZZ1_CUSTOMERINVOICE## selecionando-o na tabela Business objects personalizados exibida.

    4. Inicie o modo de processamento selecionando Processar esboço.

    5. Certifique-se de que a guia Informações gerais seja exibida e marque o campo de seleção Determinação e validação.

    6. Selecione Gravar esboço.

    7. Selecione Publicar para publicar o business object.

  2. Após a publicação, crie uma versão de rascunho para a lógica Após modificação e implemente a mesma da seguinte forma:

    • Defina o ID do campo-chave da fatura, se ainda for inicial. Para isso, selecione o maior ID já atribuído do banco de dados e aumente o mesmo em 1.
    • Determine e defina o nome do cliente a partir do ID do cliente. Utilize a visão CDS D425_I_CUST## para selecionar o nome do cliente a partir do banco de dados.

    Nota

    • O parâmetro de modificação CUSTOMERINVOICE## permite que você leia e modifique os dados do nó atual.
    • Você pode ler dados da fatura de cliente existentes por meio da visão CDS nomeada como o identificador de business object ZZ1_CUSTOMERINVOICE##.
    • Com a combinação de teclas CTRL + Espaço, você pode acessar o preenchimento de código muito útil.
    • Com a combinação de teclas Shift + F1, você pode formatar seu código.
    1. Mude para a ficha de registro Lógica.

    2. Selecione o link Após a modificação.

    3. Selecione Processar.

    4. Insira a seguinte codificação no editor Código de rascunho:

      Code Snippet
      123456789101112
      * set Invoice ID IF customerinvoice##-id IS INITIAL. SELECT MAX( id ) FROM zz1_customerinvoice## INTO @DATA(current_max_id). customerinvoice##-id = current_max_id + 1. ENDIF. * set Customer Name IF customerinvoice##-customerid IS NOT INITIAL. SELECT SINGLE FROM d425_i_cust## FIELDS name WHERE id = @customerinvoice##-customerid INTO @customerinvoice##-customername. ENDIF.
    5. Selecione Gravar para gravar o esboço.

  3. Teste o esboço da sua lógica Após modificação na aplicação Business objects personalizados.

    Nota

    Na ficha de registro Editor de teste, você pode atualizar dados de tempo de execução para a estrutura de nó atual, que representa os dados antes de executar a lógica Após modificação. Estes dados também podem ser gravados como variante para utilizações posteriores.
    1. Selecione as entradas possíveis para o campo CUSTOMERINVOICE## na ficha de registro Teste (Visualizar parâmetros de importação) e insira os dados apropriados.

      Nota

      Você deve testar pelo menos os seguintes casos:

      • Teste a lógica se o campo ID não contiver um Valor.
      • Teste a lógica se o campo ID contiver um Valor.
      • Teste a lógica se o campo CUSTOMERID contiver um número de cliente válido.
    2. Selecione o botão Testar para efetuar a execução de teste.

    3. Verifique os dados do nó após a execução da sua lógica. Ele é exibido na visão Parâmetros de modificação.

  4. Publique a lógica Após modificação após o teste com êxito.

    1. Selecione Publicar.

  5. Depois de publicar, teste a lógica Após modificação por meio do seu app Administrar faturas de cliente.

    1. No launchpad do SAP Fiori, selecione seu bloco Administrar faturas de cliente no grupo S4D425.

    2. Selecione Criar na barra de ferramentas da tabela exibida para criar uma nova fatura de cliente.

    3. Na página exibida, insira um número de cliente válido no campo ID do cliente e selecione Criar.

    4. Verifique se o campo ID e o campo Nome do cliente foram definidos para esta fatura pela lógica Após modificação.

  6. Agora, crie uma versão de esboço para a lógica Antes de gravar do seu business object e verifique a exatidão dos dados da fatura na sua implementação. Certifique-se do seguinte:

    • O valor da fatura deve ser definido.
    • A moeda do valor da fatura deve ser definida.
    • O ID do cliente deve ser definido.

    Impedir que a fatura seja salva se os dados da fatura estiverem incorretos. Neste caso, retorne uma mensagem de erro adequada.

    Nota

    • O parâmetro de importação CUSTOMERINVOICE## permite que você leia os dados do nó atual.
    • O parâmetro de exportação VALID deve ser definido como verdadeiro para salvar e como falso para salvar a rejeição.
    • Use o parâmetro de exportação MESSAGE para fornecer mensagens de validação correspondentes.
    • Com a combinação de teclas CTRL + Espaço, você pode acessar o preenchimento de código muito útil.
    • Com a combinação de teclas Shift + F1, você pode formatar seu código.
    1. Abra seu business object personalizado ZZ1_CUSTOMERINVOICE## na aplicação Business objects personalizados.

    2. Mude para a ficha de registro Lógica.

    3. Selecione o link Antes de salvar.

    4. Selecione Processar.

    5. Insira a seguinte codificação no editor Código de rascunho:

      Code Snippet
      12345678910111213141516171819202122
      valid = abap_true. * decide about save rejection * Validation Messages IF customerinvoice##-amount_v IS INITIAL. valid = abap_false. message = 'Invoice amount must be greater than 0'. RETURN. ENDIF. IF customerinvoice##-amount_c IS INITIAL. valid = abap_false. message = 'Invoice amount currency must be set'. RETURN. ENDIF. IF customerinvoice##-customerid IS INITIAL. valid = abap_false. message = 'Customer ID must be set'. RETURN. ENDIF.
    6. Selecione Gravar para gravar o esboço.

  7. Teste o esboço da sua lógica Antes de gravar na aplicação Business objects personalizados.

    1. Selecione as entradas possíveis para o campo CUSTOMERINVOICE##.

      Nota

      Certifique-se de que você cria casos de teste para as seguintes situações:

      • Teste a lógica se o campo AMOUNT_V contiver um Valor.
      • Teste a lógica se o campo AMOUNT_V não contiver um valor.
      • Teste a lógica se o campo AMOUNT_C contiver um Valor.
      • Teste a lógica se o campo AMOUNT_C não contiver um valor.
      • Teste a lógica se o campo CUSTOMERID contiver um Valor.
      • Teste a lógica se o campo CUSTOMERID não contiver um valor.
    2. Selecione Teste para efetuar a execução de teste.

    3. Verifique os parâmetros de exportação após a execução da sua lógica. Eles são exibidos no painel Resultados de teste: lógica de esboço abaixo do editor ABAP.

  8. Publique a lógica Antes de salvar após o teste com êxito.

    1. Selecione Publicar no rodapé da página.

  9. Depois de publicar, teste a lógica Antes de salvar por meio do app Administrar faturas de cliente.

    1. No launchpad do SAP Fiori, selecione seu bloco Administrar faturas de cliente no grupo S4D425.

    2. Selecione Criar na barra de ferramentas da tabela exibida para criar uma nova fatura de cliente.

    3. Na página exibida, não deve ser possível salvar com êxito enquanto não tiverem sido inseridos valores para os campos ID do cliente, Montante e Moeda do montante. Enquanto esses valores estiverem em falta, as mensagens de erro correspondentes da sua implementação Antes de salvar devem ser exibidas.

  10. Agora, crie uma ação com o rótuloAplicar desconto a cliente e identificadorApplyCustomerDiscount para seu objeto de negócio. Publique suas alterações.

    1. Abra seu business object personalizado ZZ1_CUSTOMERINVOICE## na aplicação Business objects personalizados.

    2. Mude para a ficha de registro Lógica.

    3. Selecione Processar esboço.

    4. Selecione Novo na barra de ferramentas da tabela Ações de CUSTOMERINVOICE##.

    5. Insira a etiquetaAplicar desconto a cliente e o identificadorApplyCustomerDiscount para a nova ação e selecione Publicar.

  11. Após a publicação, implemente o seguinte rascunho para a ação recém-criada:

    • Selecione o desconto concedido a um cliente a partir do banco de dados.
    • Aplique o desconto selecionado ao valor da fatura para calcular o valor do desconto.
    • Certifique-se de que o desconto ao cliente selecionado e o montante de desconto calculado estão atribuídos aos campos correspondentes do business object. Além disso, atribua ao campo de moeda para o montante de desconto a mesma moeda utilizada para o montante da fatura.
    • Retorne uma mensagem de erro apropriada se não tiver sido possível encontrar um desconto a cliente no banco de dados.

    Nota

    • Utilize a visão CDS D425_I_CUST## para selecionar o desconto a cliente a partir do banco de dados. Ele é fornecido por meio do campo personalizado ZZ1_DISCOUNT_##_G##, que você criou em um exercício anterior.
    • O parâmetro de modificação CUSTOMERINVOICE## permite que você leia e modifique os dados do nó atual.
    • Use o parâmetro de exportação MESSAGE para fornecer uma mensagem de erro adequada.
    • Com a combinação de teclas CTRL + Espaço, você pode acessar o preenchimento de código muito útil.
    • Com a combinação de teclas Shift + F1, você pode formatar seu código.
    1. Na aplicação Business objects personalizados, certifique-se de que a ficha de registro Lógica é exibida.

    2. Clique no link Aplicar desconto a cliente.

    3. Selecione Processar.

    4. Insira a seguinte codificação no editor Código de rascunho:

      Code Snippet
      12345678910111213
      SELECT SINGLE FROM d425_i_cust## FIELDS zz1_discount_##_g## WHERE id = @customerinvoice##-customerid INTO @customerinvoice##-discount. IF sy-subrc = 0. customerinvoice##-discountamount_v = ( customerinvoice##-amount_v * customerinvoice##-discount ) / 100. customerinvoice##-discountamount_c = customerinvoice##-amount_c. ELSE. message = VALUE #( severity = co_severity-error text = 'Discount could not be determined' ). ENDIF.
    5. Selecione Gravar para gravar o esboço.

  12. Teste o esboço da sua lógica de ação na aplicação Business objects personalizados.

    1. Selecione as entradas possíveis para o campo CUSTOMERINVOICE## na ficha de registro Teste (visão Parâmetros de importação) e insira os dados apropriados.

      Nota

      Você deve testar pelo menos o seguinte caso:

      • Insira no campo CUSTOMERID o número de um cliente para o qual você atualizou um desconto no app Administrar clientes por meio do seu campo personalizado correspondente.
      • Além disso, insira um montante da fatura e uma moeda correspondente nos campos AMOUNT_V e AMOUNT_C.
    2. Selecione o botão Testar para efetuar a execução de teste.

    3. Verifique os valores retornados após a execução de sua lógica. Eles são exibidos na visão Parâmetros de modificação. No caso de teste acima descrito, os campos DISCOUNT, DISCOUNTAMOUNT_V e DISCOUNTAMOUNT_C devem ter sido preenchidos com valores adequados.

  13. Publique a lógica de ação após o teste bem-sucedido.

    1. Selecione Publicar no rodapé da página.

      Nota

      Se for exibido um popup informando que uma verificação de consistência só pode ser executada em business objects publicados, confirme com Fechar. A publicação da sua lógica de ação ainda funcionará.
  14. Depois de publicar, teste a lógica de ação por meio do seu app Administrar faturas de cliente.

    1. No launchpad do SAP Fiori, selecione seu bloco Administrar faturas de cliente no grupo S4D425.

    2. Na tabela exibida, selecione uma fatura para um cliente para o qual você atualizou um desconto no app Administrar clientes.

      Nota

      Se a tabela não contiver uma fatura desse tipo, crie uma primeiro selecionando Criar na barra de ferramentas da tabela.
    3. Na página do objeto exibida, selecione Aplicar desconto a cliente.

    4. Verifique se os campos Desconto (%) e Montante de desconto estão preenchidos de modo correspondente.