quinta-feira, 12 de setembro de 2013

ASSIGN do ABAP

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.

 

Nenhum comentário:

Postar um comentário