Está en la página 1de 13

Dicas ABAP – Variáveis de Sistema

Publicado em

29/06

Uma dúvida comum para desenvolvedores ABAP Juniores é: quais variáveis de sistema podemos utilizar e quais são suas funcionalidades. Segue abaixo uma relação das principais variáveis e descrição das mesmas:

• SY-SUBRC – Retorna 0 se foi bem sucedido ou diferente de 0 se falhou, usada após uma pesquisa, condição.

• SY-UNAME – Retorna o nome do usuário

• SY-DATUM – Retorna a data do sistema • SY-UZEIT – Retorna a hora, minuto, segundo do sistema • SY-TCODE – Retorna código da transação atual • SY-TABIX – Retorna o numero da linha da tabela atual (Normalmente usando dentro de loop.) • SY-LANGU – Retorna o idioma de logon do usuário

• SY-DYNNR – Retorna o numero da tela atual • SY-UCOMM – Retorna o nome de um botão pressionado (OKCODE) • SY-REPID – Retorna o nome do programa • SY-CPROG – Nome do programa principal • SY-FDPOS – Utilizado na comparação de Strings, ver comparação strings acima.

• SY-BATCH – Indica a execução de um programa em background • SY-LINNO – Retorna a linha corrente de um relatório • SY-LISEL – Retorna a linha selecionada em relatórios interativos • SY-MANDT – Retorna o mandante do sistema

Por esta razão. abaixo. Realizar um loop numa internal table. nenhuma tabela interna declarada em um desenvolvimento deve conter header line. Utilizar uma tabela lógica usando o comando “get”. Executar uma cláusula “select” numa view ao invés de utilizarmos várias tabelas.0 ou superior) não é recomendo criar tabelas internas com header line. Executar uma cláusula “select” numa tabela 4. 3. SY-TVAR9 – Retorna elementos de textos ou títulos de relatórios • SY-VLINE – Efetua a fechamento de bordas em um relatório • SY-ULINE(n) – Imprime uma linha com n posições • SY-TCODE – Código da transação • SY-DBCNT – Dentro de SELECT. principalmente se tratando de programas que devam ser executados periodicamente. . exemplo de como declarar uma tabela interna sem header line. a maior parte do tempo computacional é despendido no acesso ao banco de dados. tais como interfaces. abaixo.. O acesso à tabelas muito grandes pode se transformar num fator de risco ao bom desempenho de um programa. os métodos de extração de dados (do mais eficiente para o menos).• SY-PAGNO – Retorna a pagina atual de um relatório • SY-TVAR0 . Veja. seguindo as normas de comentários já definidas: DATA: gw_mara type standard table of mara_type Dentro de um programa. Segue. 2. contém o contador de interação Dicas ABAP: uso de Tabelas Internas Publicado em 29/06 Nas versões mais recentes do SAP (ECC 5. a fim de minimizar o tempo gasto no acesso ao banco de dados: 1.

clique no matchcode ou tecle <F4> . Necessário executar o commit BAPI_TRANSACTION_COMMIT (caminho de menu Módulo de função > Testar > Seqüencias de testes – inserir a bapi e depois o commit) para gerar o Pedido de Compras. Abaixo. BAPI_ACC_DOCUMENT_POST . 2011 Algumas funções. a movimentação de materiais no MES será registrada no SAP utilizando-se essa função. No caso de uma interface. conhecidas também como BAPI. ON JANEIRO 19TH. BAPI_ACC_ACTIVITY_ALLOC_POST – Função que executa a KB21N. Veja como efetuar uma pesquisa: Na tela inicial da SE37.Funções (BAPI) mais utilizadas em programas abap BY CONTEÚDO SAP. A transação SE37 – Function Builder – permite a pesquisa de BAPIs de acordo com a necessidade. contido em algum documento SAP. BAPI_PO_CREATE1 – Cria o Pedido de Compras no SAP. BAPI_ALM_ORDER_MAINTAIN – Cria Ordem de PM ou CS. BAPI_GOODSMVT_CREATE – Esta função é particularmente importante para registrar movimentações de materiais no SAP. É necessário fazer um include na estrutura BAPI2017_GM_ITEM_CREATE para gerar os itens do documento de material. BAPI_ALM_NOTIF_DATA_MODIFY – Modifica a Nota de PM. campo “Definição do projeto”. CONVERSION_EXIT_ABPRJ_OUTPUT – Função utilizada para converter o PRONR (nas tabelas SAP. de um sistema MES com o SAP. BAPI_PO_GETDETAIL – Obtem detalhes de um Pedido de Compra. BAPI_MATERIAL_SAVEDATA – Cadastra o material no SAP. são freqüentemente encontradas no código de programas abap para executar determinadas ações. para BAPIs relacionadas com o Pedido de Compra. Por exemplo. por exemplo. seria o object ID do projeto de PS ) no código do projeto. BBP_PMORDER_COMP_CREATE – Insere material na Ordem PM e gera Reserva ou Requisição de Compras para o material. Função muito utilizada para trazer o conteúdo do texto longo. BAPI_REQUISITION_CHANGE – Modifica a Requisição de Compra. para um relatório ou formulário de impressão desenvolvido em abap. utilize como termo de busca algum termo relacionado a Purchase Order como *purc*order* ou termos similares. É importante ter o conhecimento de algumas funções para que possam ser citadas na elaboração de uma especificação funcional. A pesquisa de funções deve ser realizada com o termo de busca em inglês. BAPI_ACC_PRIMARY_COSTS_POST – Função que executa a KB11N. Esta lista será constantemente atualizada com novas BAPIs.Função que executa a FB01. algumas funções e sua aplicação: READ_TEXT – Lê o texto. SAVE_TEXT – Salva os textos lidos pela READ_TEXT.

por exemplo. *purc*order* (termo de busca em inglês) .Na janela que se abre. digite o termo de busca. em Módulo de função.

Tecle ou clique em <Enter> .

Na tela de resultados. selecione a BAPI desejada com duplo clique .

A BAPI fica disponível para teste .

Se não desejar informar o conteúdo de um campo. *& Incluir função para marcar/desmarcar linhas do TableControl Publicado em 19 agosto. PERFORM f_lupa USING „Processamento material…‟ space. Chamada: PERFORM f_lupa USING „Processamento material…‟ ti_movto-matnr. 2010 por Blogador AbapBrasil Num tablecontrol. normalmente é interessante a inclusão de 2 botões para marcar e desmarcar todos. antes de um SELECT. isto é interessante para informar ao usuário em que status está a execução do programa. 2010 por Blogador AbapBrasil Esta rotina pode ser chamada por exemplo.Informação útil e relevante? Doações Relógio na barra de execução Publicado em 20 agosto. pode informar simplesmente espaço. . ou dentro de um LOOP para indicar a execução de uma determinada parte do programa.

Para isso é necessário alguns passos: 1) Incluir os botões na tela 2) Criar chamada no module da tela (MODULE user_command_0100) 3) Criar o campo na estrutura da tabela interna associada ao table control 4) Configurar o campo no table control. . "Campo para agrupamento mark TYPE c. 5) Criar rotina (form). tratando os botôes MODULE user_command_0100 INPUT. WHEN „UNSELE_ALL‟. 3) Criar o campo na estrutura da tabela interna associada ao table control BEGIN OF ty_movto. CASE sy-ucomm . PERFORM f_select_grid USING c_x. WHEN „SELECT_ALL‟. count TYPE p DECIMALS 0. para executar a marcação propriamente dita. 1) Incluir os botões na tela 2) Criar chamada no module da tela (MODULE user_command_0100). "Seleção na tela 4) Configurar o campo no table control.

. caso não tenha. MOVE p_mark TO wa_movto-mark. para executar a marcação propriamente dita FORM f_select_grid USING p_mark. 2010 por Blogador AbapBrasil Para procurar o nome de uma Ajuda de Pesquisa/Match Code/Search Help de um determinado campo de uma tabela. após isso pesquisar o nome da ajuda de pesquisa. DATA: wa_movto LIKE ti_movto. ENDLOOP. descubra uma tabela que possua o campo. naturalmente você já terá este nome. CHECK NOT wa_movto-matnr IS INITIAL. ENDFORM. "Work area pra loop LOOP AT ti_movto INTO wa_movto.5) Criar rotina (form). Objetivo: procurar uma tabela que possua o campo MATNR ( Material). MODIFY ti_movto FROM wa_movto. " F_SELECT_GRID Procurando uma Ajuda de Pesquisa/Match Code/Search Help de um campo Publicado em 18 agosto. utilize a pesquisa por utilização na transação SE11.

após isso vamos entrar na SE11. digite o nome do elemento de dados.Entre na transação SE11. clique na opção de pesquisar lista de utilização. selecionar apenas “Campos tabelas” image0021 image0021 No resultado abaixo. selecionamos a tabela MARA como exemplo. mas para ficar mais rápido. na tabela MARA para visualizar a estrutura de campos: . Selecione todas as opções.

pois pode haver alguma condição impeditiva à exibição de todos os materiais. e verifique o nome da ajuda de pesquisa do campo. entretanto. . Você pode encontrar várias ajudas de pesquisa. é necessário verificar a ajuda de pesquisa que será utilizada para realmente constatar se traz todos os matérias. asteriscos. vá na ABA indicada.Após isso. Esta pesquisa também pode ser realizada diretamente pela busca de ajuda de pesquisa na própria SE11. não esqueça de colocar os “ * ”.