dicas e truques abap

4
Dicas e truques BC Conversões 1) A correspondência entre CATEGORIA DE DADOS e TIPO DE DADOS se encontra no help da cláusula INTO do comando SELECT. 2) Para converter uma data no formato interno (AAAAMMDD) para o formato que o usuário está trabalhando utilizar: WRITE SY-DATUM TO V_DATA. Onde o SY-DATUM pode ser qualquer variável tipo data e a V_DATA deve ser uma variável caractere de 10 posições. Ou utilizar a função: Call Function 'PERIOD_AND_DATE_CONVERT_OUTPUT' Exporting Internal_Date = variável like sy-datum Internal_Period = ‘1’ Importing External_Date = variável char(10) . 3) Para converter um campo numérico para um alfa retirando pontos e vírgulas, alinhando à direita, arredondando, desconsiderando o sinal e preenchendo com zeros à esquerda usar: WRITE: <campo_num> TO <campo_char> DECIMALS 3 USING EDIT MASK ‘RR______’ (a quantidade de traços deve ser igual a quantidade de casas do campo_char) TRANSLATE <campo_char> USING ‘0’ Para considerar o sinal é necessário acrescer um V na última casa excluindo um dos traços 'RR_____V'. Porém quando o sinal for positivo a posição ficará em branco. 4) Para converter uma quantidade em outra unidade de medida utilizar a função UNIT_CONVERSION_SIMPLE 5) Para converter o mês por extenso utilizar a tabela transparente T247 Tabelas internas e dicionário 1) Para eliminar entradas repetidas de uma tabela interna usar: SORT <ITAB> BY F1 F2 F3... DELETE ADJACENT DUPLICATES FROM <ITAB> COMPARING F1 F2 F3... 2) Alguns campos de tabela possuem formatos diferentes de exibição (OUTPUT) e gravação (INPUT). Para converter esses valores, ou para

Upload: fjaimesilva

Post on 18-Dec-2015

108 views

Category:

Documents


1 download

DESCRIPTION

Dicas ABAP

TRANSCRIPT

Dicas e truques BC

Converses

1) A correspondncia entre CATEGORIA DE DADOS e TIPO DE DADOS se encontra no help da clusula INTO do comando SELECT.

2) Para converter uma data no formato interno (AAAAMMDD) para o formato que o usurio est trabalhando utilizar: WRITE SY-DATUM TO V_DATA. Onde o SY-DATUM pode ser qualquer varivel tipo data e a V_DATA deve ser uma varivel caractere de 10 posies.

Ou utilizar a funo:

Call Function 'PERIOD_AND_DATE_CONVERT_OUTPUT'

Exporting

Internal_Date = varivel like sy-datum

Internal_Period = 1

Importing

External_Date = varivel char(10) . 3) Para converter um campo numrico para um alfa retirando pontos e vrgulas, alinhando direita, arredondando, desconsiderando o sinal e preenchendo com zeros esquerda usar:

WRITE: TO DECIMALS 3 USING EDIT MASK RR______

(a quantidade de traos deve ser igual a quantidade de casas do campo_char)

TRANSLATE USING 0

Para considerar o sinal necessrio acrescer um V na ltima casa excluindo um dos traos 'RR_____V'. Porm quando o sinal for positivo a posio ficar em branco.

4) Para converter uma quantidade em outra unidade de medida utilizar a funo UNIT_CONVERSION_SIMPLE

5) Para converter o ms por extenso utilizar a tabela transparente T247

Tabelas internas e dicionrio

1) Para eliminar entradas repetidas de uma tabela interna usar:

SORT BY F1 F2 F3...

DELETE ADJACENT DUPLICATES FROM COMPARING F1 F2 F3...

2) Alguns campos de tabela possuem formatos diferentes de exibio (OUTPUT) e gravao (INPUT). Para converter esses valores, ou para saber se o campo possui essa caracterstica, verificar se o domnio do campo possui um valor no campo Conversion exit.

Por exemplo, o campo LIKP-VBELN possui em seu domnio o Conversion exit ALPHA.

Isso indica que existem duas funes standard para converter o valor desse campo:

CONVERSION_EXIT_ALPHA_INPUT converte o campo para o formato de gravao, neste caso, alinhado direita e preenchido com zeros esquerda.

CONVERSION_EXIT_ALPHA_OUTPUT converte o campo para o formato de exibio, neste caso, alinhado esquerda sem zeros direita.

3) Para transportar somente o contedo de uma tabela transparente, criar uma change request, e no EDITOR inserir a entrada: PgmID = R3TR , Obj = TABU e no campo Obj.name colocar o nome da tabela transparente. Depois de inserido a linha dar um duplo clique para preenchimento da chave. Para transportar todos os registros inserir apenas um asterisco no primeiro campo genrico.

4) Para encontrar os textos descritivos de uma informao geralmente h uma tabela de nome semelhante terminada em T. Como por exemplo, a tabela TVKGR - Grupo de Vendedores possui o nome dos vendedores na tabela TVGRT. Ao fazer um trace SQL na transao SE16 na tabela TVKGR por exemplo, possivel achar o relacionamento.

5) O limite de uma tabela interna so 4.394.608 registros.

6) Cardinalidade das chaves externas do dicionrio

Lado Esquerdo:

1 = Para cada registro da ChvExt, existe exatamente um registro na Check Table

C = No precisa existir o registro, Pode ser Branco

Lado Direito:

1 = Existe somente um registro para cada valor da Check Table

C = No mximo um registro dependente para cada registro da Check Table

N = Tem pelo menos um registro dependente para cada registro da Check Table.

CN = Qualquer nmero de registros para cada registro da Check Table

Funes standard

1) Para trabalhar com Notas Fiscais:

J_1B_NF_NUMBER_SEPARATE - Nota Fiscal System - Number Separate (NF number + Series)

J_1B_NF_NUMBER_CONDENSE - Nota Fiscal System - Number Condense (NF number + Series)

J_1B_NF_NUMBER_GET_NEXT - Nota Fiscal System - Get next Nota Fiscal number

J_1B_NF_DOCUMENT_READ - Carrega o header da nota fiscal em uma estrutura

J_1B_NF_VALUE_DETERMINATION - Carrega os itens, seus impostos e o total lquido do item da nota fiscal

Por questes de performance, os itens podem ser passados para a funo J_1B_NF_VALUE_DETERMINATION para que ela efetue somente os clculos

2) Para se obter a BOM de um material usar a funo CS_BOM_EXPL_MAT_V2

3) Para testar o status de uma ordem usar a funo STATUS_CHECK_BY_SELSCHEM e verificar o retorno FULLFILL se inicial porque a ordem no se encontra no esquema de status indicado

4) Para criar jobs dentro de um programa abap utilizar as funes: JOB_OPEN, JOB_SUBMIT e JOB_CLOSE

As tabelas que armazenam as informaes de JOBS so:

TBTCOJob status overview table

TBTCPBatch job step overview

5) READ_TEXT

O nome do texto simplesmente a chave completa da tabela em questo, existe uma dificuldade de descobrir o ID e o Objeto a serem passados. Para acess-los facilmente, bastar clicar (2x) sobre o texto na transao em que ele aparece, (o modo editor ser acionado) em seguida ir no menu: Saltar -> Cabealho e pronto, os campos necessrios esto nesta tela.

Comandos

1) Para mandar um relatrio direto para a impressora

new-page

print on

no dialog

keep in spool X

immediately X

destination ZP05

copies quantidade de cpias

2) Comandos CONTINUE posicionados antes de eventos AT NEW dentro de um loop fazem os eventos perderem a seqncia correta

3) Para concatenar variveis em um nico parmetro utilizar o &:

Perform f_teste using LIXO1 & LIXO3.

Form f_teste using char.

char possui LIXO1 LIXO3.

Endform.

Enhancements1) Para que um field-exit funcione necessrio que o profile parameter abap/fieldexit esteja com o valor YES.

Para modificar os valores de um profile parameter utiliza-se a transao RZ11.

2) Enhancements para pedido de vendas userexit

SPRO - Vendas e distribuio

Adaptao do sistema

User exits

Diversos

1) Quando o frontend sair do ar, para recuperar o que estava fazendo, entrar no logon do SAP, digitar o user e a senha, no teclar enter, opo de menu Usurio / Aceitar sesso. Caso o mesmo usurio estiver mais de uma vez na mesma instncia isto no funciona.

2) Ativar o screen painter grfico:

Para que o screen painter grfico funcione na estao so necessrios os arquivos: GNEUX.exe / GNETX.exe / EUMFCDLL.dll

3) Transporte de textos standard (texto sapscript)

Para transportar textos standard devemos criar uma request manual e no editor inserir as entradas:

R3TR TEXT ,,ST (ID),S (Idioma)

Exemplo:

PgmIDObj Obj.nameR3TR TEXT TEXT,WHIRPOOL-2,ST,E

R3TR TEXT TEXT,LOGO_57_MM ,ST,E

R3TR TEXT TEXT,LOGO_57_MM ,ST,P