From fd7e7da9f1345112bde7533308e98e93671a1631 Mon Sep 17 00:00:00 2001 From: Alexander Sabino <32822107+asabino2@users.noreply.github.com> Date: Thu, 23 Jan 2025 16:45:59 +0000 Subject: [PATCH] Update README.md --- README.md | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1b1685c..e092cf5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,109 @@ -# ABAP-ZBACKGROUND_DEBUGGER -Background debugger auxiliary +# ZCL_BGD_DEBUGGER + +A classe `ZCL_BGD_DEBUGGER` é uma ferramenta para facilitar a depuração em segundo plano (background debugging) no SAP. Ela permite criar pontos de controle em processos executados em background e enviar notificações configuráveis aos responsáveis. + +--- + +## Definição da Classe + +```abap +CLASS ZCL_BGD_DEBUGGER DEFINITION + PUBLIC + FINAL + CREATE PUBLIC. + +PUBLIC SECTION. + + CLASS-METHODS DEBUG + IMPORTING + !DESCRIPTION TYPE CLIKE OPTIONAL + !NOTIFIER TYPE SY-UNAME DEFAULT SY-UNAME + !TIMEOUT TYPE I DEFAULT 300. +PROTECTED SECTION. +PRIVATE SECTION. +ENDCLASS. +``` + +--- + +## Métodos Públicos + +### DEBUG + +O método `DEBUG` é o principal método da classe e realiza as seguintes tarefas: + +- Obtém o call stack atual e identifica o ponto de execução. +- Verifica e registra informações em tabelas customizadas (`ZTBC_BGDEBUG_SP` e `ZTBC_BGDEBUG_SPT`). +- Envia notificações utilizando o sistema de correio interno do SAP (`SO_EXPRESS_FLAG_SET`). +- Implementa lógica de timeout para limitar a duração da execução. + +#### Parâmetros de Entrada + +| Parâmetro | Tipo | Padrão | Descrição | +|---------------|------------|------------|---------------------------------------------------------------------------------------------| +| `DESCRIPTION` | `CLIKE` | Opcional | Texto descritivo associado ao ponto de depuração. | +| `NOTIFIER` | `SY-UNAME` | `SY-UNAME` | Usuário que receberá a notificação. | +| `TIMEOUT` | `I` | `300` | Tempo máximo, em segundos, para execução da lógica de depuração. | + +--- + +## Lógica Interna + +### Fluxo de Execução + +1. Obtém informações do call stack com a função `SYSTEM_CALLSTACK`. +2. Determina a linha atual de execução. +3. Registra informações nas tabelas customizadas: + - `ZTBC_BGDEBUG_SP`: programa principal, include e linha de execução. + - `ZTBC_BGDEBUG_SPT`: descrição, se fornecida. +4. Envia notificações: + - Utiliza `SO_EXPRESS_FLAG_SET` para criar uma mensagem expressa. +5. Realiza verificações contínuas até que: + - O timeout seja atingido, ou + - Uma condição de saída seja satisfeita. + +--- + +## Dependências Externas + +- **Funções de sistema SAP:** + - `SYSTEM_CALLSTACK` + - `TH_GET_OWN_WP_NO` + - `SO_EXPRESS_FLAG_SET` + - `CCU_TIMESTAMP_DIFFERENCE` +- **Tabelas customizadas:** + - `ZTBC_BGDEBUG_SP` + - `ZTBC_BGDEBUG_SPT` + +--- + +## Como Usar + +1. Utilize o método estático `DEBUG` da classe `ZCL_BGD_DEBUGGER`. +2. Configure os parâmetros desejados: + - `DESCRIPTION`: Adicione um texto descritivo. + - `NOTIFIER`: Defina o destinatário da notificação. + - `TIMEOUT`: Especifique o tempo máximo de execução. +3. Execute o programa em modo background para capturar o ponto de depuração. + +### Exemplo de Uso + +```abap +zcl_bgd_debugger=>debug( + description = 'Ponto de depuração crítico' + notifier = 'USUARIO_RESPONSAVEL' + timeout = 600 ). +``` + +--- + +## Considerações + +- **Manutenção das Tabelas:** Certifique-se de que as tabelas customizadas `ZTBC_BGDEBUG_SP` e `ZTBC_BGDEBUG_SPT` estão configuradas corretamente com os campos necessários. + +--- + +## Licença + +Este código foi desenvolvido para uso interno no SAP e pode ser adaptado conforme necessário. Certifique-se de revisar as políticas de licença aplicáveis antes de utilizá-lo em outros contextos. +```