Algumas vezes, precisamos de uma informação onde ela já não esta mais disponível.
Neste caso o ASSIGN do ABAP pode ser aplicado com ótimo resultado.
Para que o ASSIGN funcione, você só precisa saber o programa e o campo-tabela
a ser utilizado, desde que este parâmetro esteja em memória ou seja carregado.
Este recurso ABAP é muito útil nos desenvolvimentos que envolvem exits e/ou BADIs, porque evita e re-leitura desnecessária de tabelas para obter dados.
Este recurso simples pode ser testado na sua exit e/ou badi sem grandes problemas.
Vejamos o exemplo abaixo:
Colocamos um break-point em uma exit de SD, da gravação da ordem de vendas.
Após o break, vamos consultar uma informação em uma tela de SD, para saber o programa de tela e o campo-tabela para simularmos o ASSIGN no momento do Debug.
Observe que estamos verificando a seguinte informação:
Após o F1 no campo incoterm, obtemos os seguintes dados:
Área de tela VBKD-INCO1
Nome do programa SAPMV45A
Após execução da VA01, o SAP vai parar o break-point definido.
Neste caso, foi colocado o código do programa entre chaves...
(SAPMV45A)
E em seguida a tabela e o campo que deve ser feito o ASSIGN.
VBKD-INCO1
No exemplo acima, o conteúdo do campo é “CIF”...que pode ser assimilado por uma
Variável e utilizado em um desenvolvimento.
Muito útil, poderia ser qualquer campo de qualquer tela de uma transação...
Complementando:
O exemplo acima é de um campo de tela, o exemplo abaixo é de uma informação que é processada sem as telas.
Para fazer o ASSIGN, você precisa debugar o programa e pegar seu nome de processamento no SAP, exemplo:
Função j_1b_process_tkomv
Todo programa em memória começa como SAPL, exemplo: SAPLJ1BCONDTAX abaixo
Preciso capturar o conteúdo do campo m_caller que está dentro da função
J1BCONDTAX(m_caller)
DATA lt_gt_taxdata TYPE j_1btxdata.
FIELD-SYMBOLS: . “Caso for tabela colocar o tipo exemplo:
FIELD-SYMBOLS: type table.
UNASSIGN: .
ASSIGN (' SAPLJ1BCONDTAX(m_caller)') TO .
IF IS ASSIGNED.* Tabela recebe ponteiro
lt_gt_taxdata = .ENDIF.
Fonte: Ricardo Borges
P Antes de imprimir pense em seu compromisso com o Meio ambiente.