{"id":28130232,"url":"https://github.com/edmilson-nascimento/application-log-sap-abap","last_synced_at":"2025-05-14T12:25:19.393Z","repository":{"id":43762951,"uuid":"68828138","full_name":"edmilson-nascimento/Application-log-SAP-ABAP","owner":"edmilson-nascimento","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-22T16:21:18.000Z","size":138,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-05-22T17:33:41.771Z","etag":null,"topics":["como-mostrado","exemplo","objetos","processo","scn"],"latest_commit_sha":null,"homepage":null,"language":"ABAP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edmilson-nascimento.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-21T14:58:11.000Z","updated_at":"2023-05-22T17:33:41.771Z","dependencies_parsed_at":"2023-01-21T23:00:55.719Z","dependency_job_id":null,"html_url":"https://github.com/edmilson-nascimento/Application-log-SAP-ABAP","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmilson-nascimento%2FApplication-log-SAP-ABAP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmilson-nascimento%2FApplication-log-SAP-ABAP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmilson-nascimento%2FApplication-log-SAP-ABAP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edmilson-nascimento%2FApplication-log-SAP-ABAP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edmilson-nascimento","download_url":"https://codeload.github.com/edmilson-nascimento/Application-log-SAP-ABAP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140959,"owners_count":22021256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["como-mostrado","exemplo","objetos","processo","scn"],"created_at":"2025-05-14T12:24:46.381Z","updated_at":"2025-05-14T12:25:19.387Z","avatar_url":"https://github.com/edmilson-nascimento.png","language":"ABAP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Application Log\n\n[![N|Solid](https://wiki.scn.sap.com/wiki/download/attachments/1710/ABAP%20Development.png?version=1\u0026modificationDate=1446673897000\u0026api=v2)](https://www.sap.com/brazil/developer.html)\nDepois de alguns anos ~~e muita chatice~~ tenho ficado cada vez mais resistente quando alguem me pede para fazer uma _Tabela de Log_ para um _processo X_. Minha resposta sempre é: **você sabia que o SAP tem seu proprio controle de Log sem a necessidade de criar tabelas novas?**\nResolvi fazer minha implementação do [Maravilhos mundo do Application log](https://abapinho.com/2009/09/application-log/). Existem varias utilizações do Application Log (ou mais conhecido como Bal Log), ate mesmo no [wiki scn](https://wiki.scn.sap.com/wiki/display/Snippets/Using+Application+Log) tem alguns exemplos bem exemplicaficados de como utilizar. Para mais exemplos implementados, pode acessar ate na Transação `SE38` com o filtro `SBAL_DEMO_*` que tem uma grande quantidade de aplicações para a solução.\n\nFiz uma implementação para que pudesse usar a solução das duas formas possiveis:\n* [1- Salvando log de forma que fique acessivel pela transação `SLG1`](#1--salvando-log-de-forma-a-visualizar-pela-slg1);\n* [2- Armazenando o log e exbindo ao final do processo sem a necessidade de salvar](#2--armazenando-em-tempo-de-execu%C3%A7%C3%A3o-e-exibindo-ao-final-do-processo)\n\nA diferença de implementação é bem simples, então, resolvi fazer de forma a deixar dinamico. Fiz um a classe [zcl_bal_log](https://github.com/edmilson-nascimento/Application-log-SAP-ABAP/blob/master/zcl_bal_log.abap) para melhorar a utilização das funções que contemplam o log. Sendo assim, as utilizações diferente ficam a cargo apenas de usar de forma diferente o método `constructor`, como mostrado nos exemplos abaixo.\n\n## 1- Salvando Log de forma a visualizar pela SLG1 ##\nAntes de qualquer coisa, para que os log's sejam salvos, é necessários criar um objeto (caso ainda não tenha sido criado) e um sub-objeto na transação `SLG0`. Esses mesmos objeto e sub-objeto são utilizados para consultor os log's na transação `SLG1`. Não tem nesse exemplo, mas a implementação segue abaixo.\n```abap\ndata:\n  app_log type ref to zcl_bal_log.\n\n  create object app_log\n    exporting\n      title     = 'Titulo do Log'\n      object    = 'Z_OBJECT'\n      subobject = 'Z_SUBOBJECT'\n      alprog    = sy-cprog.\n```\n## 2- Armazenando em tempo de execução e exibindo ao final do processo ##\nEu uso, em grande parte das vezes, a utilização sem salvar o log. Um dos pontos mais interessantes para a utilização é a forma variada de exibir essa mensagem. Como é mostrado no [post do scn](), tem varias forma que as proprias funções do `Application Log` podem mostrar as mensagens de acordo com a melhor opção para solução. \nPara criação de objeto, deve ser feita da mesma forma que esta no exemplo, conforme modelo abaixo. Ao deixar de informar os valores, a solução ja entende a finalidade de suas mensagens.\n```abap\ndata:\n  app_log type ref to zcl_bal_log.\n\n  create object app_log\n    exporting\n      title     = 'Titulo do Log'\n*     object    = \n*     subobject = \n      alprog    = sy-cprog.\n```\nSimples, objetivo e sem necessidade de ficar criando novas tabelas. :+1:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedmilson-nascimento%2Fapplication-log-sap-abap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedmilson-nascimento%2Fapplication-log-sap-abap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedmilson-nascimento%2Fapplication-log-sap-abap/lists"}