quarta-feira, 28 de janeiro de 2026

BPA - Trabalhando com BAPI ( Action Group )


*  Eae galerinha, vamos voltar a conversar sobre um assunto muito interessante,
* BPA é uma das ferramentas que o pessoal da SAP mais fala, juntamente com
* Inteligencia artificial e DataSphere. Automatização de processos usando
* uma ferramenta low / no code pode ser usados para equipes não técnicas também
* e isso entregaria valor em um tempo mais curto para o negocio, sendo que
* o próprio analista pode desenvolver algo e entregar algo, que as vezes
* pode representar uma boa porcentagem do tempo do time, assim sobrando
* tempo para fazer outras coisas, não só a SAP como o mercado espera isso.

*  Já tínhamos conversado sobre BPA anteriormente fazendo um projeto simples
* em dois passos.

https://abapjuniores.blogspot.com/2023/11/bpa-criando-o-primeiro-projeto-do-zero.html
https://abapjuniores.blogspot.com/2023/11/bpa-criando-o-primeiro-projeto-do-zero_01276228367.html

*  Hoje vou mostrar a aplicabilidade do BPA para processos massivos, acredito
* que saibam que SHDB não é mais suportado pela SAP e durante a migração de
* dados de um ambiente ECC para S/4 Hana tivemos que fazer vários projetos
* migrando todos os SHDB ( O business usava pra varias coisas ) para
* projetos em BPA, migramos todos para o processo que eu passei aqui, igual
* aos dos links acima, fazendo mapping de telas, cliques, ações, com o SAP
* aberto e reservando a maquina para processar a massa.
*  Resolvemos a migração e centralizamos todos os processos em massa no BPA,
* mas acabou gerando outros problemas, erros não previstos nas telas de load,
* reposicionamento de certos campos conforme telas anteriores, timeout,
* sem contar os problemas procedurais pois o usuário tinha que reservar a
* sua própria maquina para executar as massas, e não conseguiam trabalhar em
* assunto pois a maquina estava rdando o BPA, execuções que acabaram depois
* de um tempo ficando bem maiores conforme a confiabilidade na ferramenta
* ia crescendo.

*  Percebendo esses problemas foi considerado o inicio de uma nova versão do
* do produto, além de usar a tela aberta, migramos para a execução de BAPI's
* da massa de dados.

*  Nesse post vamos aprender a criar a conexão do nosso projeto do BPA com
* o ambiente SAP que vocês querem acessar, vamos criar nosso primeiro
* 'Action Group', relacionar uma BAPI. Depois faremos mais post sobre como
* testar e relacionar ele no seu projeto em massa.

* Então bora lá, primeiramente vamos criar um projeto novo.






*  Depois de ter criado o projeto já vamos direto criar um 'Action Group'
* isso permitirá criar uma conexão com o ambiente que vai rodar a BAPI




*  Para alimentar os parâmetros listados abaixo é necessário entrar no
* SAPGui e clicar em 'Variable Logon' selecionar o ambiente que você
* gostaria de acessar e replicar os dados nos parâmetros do Pop-up do
* 'Action Group' usando o 'Next' do Logon do SAPgui para ver todos os
* valores necessários.




*  Ficando dessa forma, se tiver com algum problema sobre isso chama o
* pessoal de Basis pra ajudar vocês.

terça-feira, 20 de janeiro de 2026

ABAP juniores Voltou !!!!!


*  Eae galera, quanto tempo heimmm!?? Nesse meio tempo aconteceu muita coisa,
* virei Pai, mudei de emprego, mudei de cidade, novas rotinas e no meio
* dessa mudança toda eu não estava conseguindo conciliar o Blog, mas os temas
* de posts ainda continuavam sendo listados, sem muito tempo pra fazer algo
* ainda, mas agora estamos passando por reformulações e uma equipe 
* qualificada estará nos ajudando, não vou apresentar eles aqui pois eles
* mesmos irão fazer isso nos respectivos posts futuros.

*  Esse post é mais para informar que voltamos com tudo, muitos planos,
* ideia e vontade de mostrar as coisas novas que estão acontecendo sem 
* esquecer o ABAP Raiz que somos rsrs.

*  Além dos time ter aumentado agora também estamos com novos parceiros
* para entrega de currículo e indicação, portanto estão querendo trocar de
* emprego ou estão procurando algo, nosso time irá ajudar vocês nesse processo
* também.
*  Continuamos usando o mesmo E-mail para receber esses Currículos mas em um
* futuro próximo estaremos centralizando essas informações em outro e-mail 
* para facilitar a todos.

*  Contamos com a colaboração e engajamento nas conversas do post e 
* pontos a serem conversados que possivelmente podem virar um Post.

*  Como eu disse antes, estamos voltando com tudo mas a equipe tem muita 
* coisa pra alinhar, mas o mais importante, estamos preparando e alinhando
* muitas novidades para o Blog.

*  Voltamos e contamos com todos, iremos criar posts periódicos igual 
* fazíamos anteriormente.

*  Valeo Pessoal e bora aprender, juntos.

quinta-feira, 23 de novembro de 2023

BPA - Criando o primeiro Projeto do zero - Passo 2

 

Fala pessoal, agora que você já mexeu nessa nova ferramenta ( se não mexeu segue o link de como fazer o primeiro projeto aqui à https://abapjuniores.blogspot.com/2023/11/bpa-criando-o-primeiro-projeto-do-zero.html.

Agora vamos melhorar um pouco mais esse projeto, acredito que vocês tenham percebido que se outro Usuário tentar executar o seu projeto ele não vai funcionar por falta de configurações no aplicativo pois os ‘Critérios de reconhecimento’ não deixam outra pessoa acesso, para mudar isso entre no aplicativo e selecione a tela inicial do SAP.




 


E nos critérios de reconhecimento mude para a imagem abaixo, Aplique e agora você generalizou o acesso.



terça-feira, 14 de novembro de 2023

BPA - Criando o primeiro Projeto do zero

 

Fala pessoal, espero que vocês já tenham os acessos necessarios para começar a brincar de BPA com a gente, se tem bora fazer nosso primeiro projeto e executar ele via Cloud vendo o projeto acontecer no modo ‘Aberto’, no proximo post vou monstrar como atribuir o projeto criado num trigger e executar esse projeto usando o APP Desktop Agent como se fossemos um usuário e depois vamos conversar sobre possibilidades de processamento que a ferramenta possui.

Primeiramente vamos entrar no serviço.

Essa vai ser a carinho dele. Lembrando que estamos conversando agora e que muito possivelmente o layout disso mude também pois tem sempre uma novidade a cada duas semanas e porisso decidi iniciar logo esses posts pra que toda vez que tivermos uma atualização consideravel vou fazer um post pra conversarmos sobre.

Vamos clicar em ‘Criar’ e inicialmente vamos trabalhar com ‘Processo automatizado’, não sei se vocês fazem isso mas quando eu não conheço a ferramenta eu sempre clico nos icones de ‘Help’ ou ‘Saiba Mais’, sobre ferramentas SAP sempre tem o Help.sap.com ( https://help.sap.com/docs/build-process-automation/sap-build-process-automation/what-is-sap-build-process-automation ), esse link acima vai mostrar tudo sobre BPA, acho que vale a pena dar uma olhada.


quinta-feira, 2 de novembro de 2023

BPA - Build Process Automation - pra que serve ?

 O que é BPA? Vamos fazer uma serie de posts sobre esse assunto e espero que consigamos entender melhor esse assunto que promete muito pela SAP e responder a essa pergunta de forma mais rápida.

BPA, “Build process Automation”, acho que o pessoal da SAP tem metas pra criação de siglas pois pouco tempo antes o nome era RPA, “Robotic Process Automation” e depois iRPA, Inteligence Robotic Process Automation, mas no iremos chamar de BPA.

Essa ferramenta vem com um proposito inovador, com um conceito de facilitar o desenvolvimento de automações de processos que podem ser considerados repetitivos dentro do SAP, uma das grandes vantagens seria que essa ferramenta é Low Code possibilitando a criação e desenvolvimento por um usuário ou analista, não necessariamente por um técnico, engenheiro de Software ou arquiteto de soluções, otimizando o tempo de entrega de uma solução já que o próprio analista desenharia e faria o RPA, sem necessidade de transferencia de conhecimento sobre o problema.

Quero ressaltar que de essa ferramenta é bem nova no mundo SAP e estou dando minha opnião conforme minha experiencia ao desenvolver e solucionar casos, deixo aberto a comentarios nesse post e tomara que consigamos tirar proveito dessa ferramenta juntos.

A ideia desse post é fazer uma introdução sobre o que é, e quando podemos usar, com o tempo vou lançando novos posts com caso e depois que entendermos mais sobre tentativas de novos projetos usando novidades do BPA como desafio mesmo.

O Objetivo dessa ferramenta é facilitar o desenvolvimento de projetos que resolvam problemas sistemáticos de forma automática

Sabe quando temos um processo que mensalmente temos que entrar em alguma transação e pedir pra executar um programa pra atualizar algo, ou coisa robóticas como todo o dia as 8 da manhã o usuário precisa verificar quantos documentos foram criados em um intervalo e mandar um e-mail pra alguém ou usar essa informação para atualizar algo, isso as vezes toma um tempo desnecessário e tem a possibilidade ainda de algum esquecimento por parte do usuário e se esse processo for importante  pode ter alguma consequência não muito positiva.

A grande vantagem de usar essa ferramenta é automatizar passos de algum processo ou até mesmo o processo inteiro, economizando tempo e diminuindo a possibilidade de erros ou esquecimentos por parte do usuário, acredito que se você nunca trabalhou com BPA a melhor forma de começar é criando um projeto para automatizar algo simples como mandar uma Mensagem pra alguém num horário especifico ou atualizar alguma coisa pessoal com alguma informação de outra fonte. Uma grande vantagem que essa ferramenta SAP nos permite é automatizar e deixar pré-definido o momento de iniciar, podemos criar não somente uma criação para SAP mas também Non-SAP como mandar uma Mensagem no Teams, enviar um e-mail para alguém, ou entrar num Excel e executar alguma macro, todo o desenvolvimento e teste disso pode ser feito via BTP ( Cloud Plataform ), mas uma desvantagem seria que para a execução do projeto de BPA para o usuário final seria necessário a instalação de um App ( link abaixo ) para executar o projeto.



Se vocês, depois de lerem consideram que possa usar essa ferramenta SAP pra automatizar algum processo da sua empresa ou até mesmo algum processo seu, recomendo conversar com o pessoal que gerencia seu acesso na Cloud e acessar esse serviço.

App link à https://tools.hana.ondemand.com/#cloud

Procure por Desktop Agent e pronto.



No próximo post já com tudo instalado e funcionando iremos fazer uma automação simples, passo a passo e aprender juntos a criar, fazer o trigger, atribuir e executar no app.

Espero que esse post tenha pelomenos acendido a curiosidade de vocês sobre essa ferramenta que promete muito e como é low-code acredito que geral vai estar usando.

Vlw e qualquer coisa tamo junto. Fuii.


segunda-feira, 25 de outubro de 2021

Roubando alv's Standard para o nosso programa

*  Fala pessoal, hoje vou mostrar uma dica que pode facilitar muito seu
* desenvolvimento ou no minimo diminir o tempo para entregar....
*  Sabe quando o funcional te chama falando que está afim de fazer um relatorio
* muito parecido com o um relatorio standard mas cheio de 'Fru Fru',
* neste momento você já começa a pensar que terá que 'debugar' o standard
* pra saber como chegar nos dados principais do relatorio antes mesmo de
* incluir as 'Melhorias', pois seus problemas acabaram.... rs ( Sempre quis
* falar isso). Com esse post podemos processar o relatorio standard e pegar
* os dados que seriam exibidos na tela, e depois disso, com todos os dados
* base, podemos fazer os adicionais sem problema nenhum. Bora pro codigo.

*  Abaixo temos um exemplo, aonde o funcional me pediu para trazer os dados
* referente a documentos financeiros usando apenas o 'Conta Razão', 'Empresa'
* e 'Data de lançamento'... Conversamos sobre os acessos na tabela e
* mostrei que não tinhamos esse Indice na tabela e que talvez sofreriamos
* com a performance do programa, teriamos que ter mais parametros para
* conseguir acessar as tabelas com as chaves e assim entregar conforme
* esperado, o funcional insastifeito depois de ter feito uma documentação
* da demanda tudo baseada nessa seleção sem chaves faz o seguinte comentario,
* - Ahhhhh, mas no standard funciona rápido quando eu coloco somente essas
* informações !!!
* Eu em choque, sem entender, pergunto. - Rápido ?!! Standard ?!!
* Depois disso o funcional complementa. - Sim, quando rodo a FBL3N
* ( Relatorio de partidas individuais - Contas do razão ) me mostra um
* relatorio no final que aparece relativamente rapido.
*  Com essas informações lembrei que conversando com um amigo do trabalho,
* o mesmo me falou sobre uma classe que deixa o retorno do processo em
* memoria e assim podemos buscar essa informação e depois tratar como
* quiser.
* Segue codigo comentado abaixo como exemplo.

REPORT  zrtts.
*--------------------------------------------------------------------*

TABLES :
  bkpfbseg.

TYPES :
  BEGIN OF ty_bkpf,
    bukrs TYPE bkpf-bukrs,
    belnr TYPE bkpf-belnr,
    gjahr TYPE bkpf-gjahr,
    budat TYPE bkpf-budat,
  END OF ty_bkpf.

DATA :
  t_bkpf TYPE TABLE OF ty_bkpf,
  s_bkpf TYPE ty_bkpf.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS :
  r_saknr FOR bseg-saknr,
  r_bukrs FOR bseg-bukrs,
  r_budat FOR bkpf-budat.

SELECTION-SCREEN END OF BLOCK   b1.

* Definir para não mostrar ALV, Metadata
cl_salv_bs_runtime_info=>set(
  EXPORTING display  abap_false
            metadata abap_false
            data     abap_true ).

* Chamado do programa do FBL3N e passando os parametros de tela.
SUBMIT rfitemgl
  WITH sd_saknr IN r_saknr
  WITH sd_bukrs IN r_bukrs
  WITH so_budat IN r_budat

  WITH x_opsel  EQ abap_false
  WITH x_clsel  EQ abap_false
  WITH x_aisel  EQ abap_true

  WITH x_norm   EQ abap_true
*  WITH pa_vari  EQ '/OES_EXT'
  AND RETURN.


TRY.
    DATA ol_pay_data TYPE REF TO data.
    FIELD-SYMBOLS<fs_pay_data> TYPE ANY TABLE,
                   <pay_data> TYPE ANY.

* Busca tabela do ALV em processamento do Submit
    cl_salv_bs_runtime_info=>get_data_ref(
      IMPORTING r_data ol_pay_data ).

* Atribui para tabela dinâmica
    ASSIGN ol_pay_data->TO <fs_pay_data>.

  CATCH cx_salv_bs_sc_runtime_info.
*        #ec no_handler
ENDTRY.

* Limpa runtime
cl_salv_bs_runtime_info=>clear_all).

*--------------------------------------------------------------------*
* No ambiente atual que estou não consigo usar comando 'Inline' mas
* segue abaixo eu pegando o retorno e colocando na minha tabela interna.

FIELD-SYMBOLS :
  <bukrs> TYPE bkpf-bukrs,
  <belnr> TYPE bkpf-belnr,
  <gjahr> TYPE bkpf-gjahr,
  <budat> TYPE bkpf-budat.


LOOP AT <fs_pay_data> ASSIGNING <pay_data>.
  ASSIGN COMPONENT 'BUKRS' OF STRUCTURE <pay_data> TO <bukrs>.
  ASSIGN COMPONENT 'BELNR' OF STRUCTURE <pay_data> TO <belnr>.
  ASSIGN COMPONENT 'GJAHR' OF STRUCTURE <pay_data> TO <gjahr>.
  ASSIGN COMPONENT 'BUDAT' OF STRUCTURE <pay_data> TO <budat>.

  s_bkpf-bukrs <bukrs>.
  s_bkpf-belnr <belnr>.
  s_bkpf-gjahr <gjahr>.
  s_bkpf-budat <budat>.

  APPEND s_bkpf TO t_bkpf.
  CLEAR s_bkpf.
ENDLOOP.

*--------------------------------------------------------------------*
* Gostaria que vocês percebecem que mesmo colocando layout no relatorio
* standard quando darmos o 'Get' dos dados, ele vira toda a tabela de
* saida que seria usada no ALV da transação Standard.
*  Espero ter ajudado e qualquer coisa tamo aeeeee. Vlw.