Você está na página 1de 14

Varivel

SY-INDEX SY-PAGNO SY-TABIX SY-TFILL SY-TLOPC SY-TMAXL SY-TOCCU SY-TTABC SY-TSTIS SY-TTABI SY-DBCNT SY-FDPOS SY-COLNO SY-LINCT SY-LINNO SY-LINSZ SY-PAGCT SY-MACOL SY-MAROW SY-TLENG SY-SFOFF SY-WILLI SY-LILLI SY-SUBRC SY-FLENG SY-CUCOL SY-CUROW SY-LSIND SY-LISTI SY-STEPL SY-TPAGI SY-WINX1 SY-WINY1 SY-WINX2 SY-WINY2 SY-WINCO SY-WINRO SY-WINDI SY-SROWS SY-SCOLS SY-LOOPC SY-FOLEN

Descrio
Contador de loops Nmero de linhas de tabelas internas Campo do sistema interno Largura da linha da lista Campo do sistema obsoleto Sada imediata (parmetro de impresso) Nome do spool file Departamento no falso-rosto (parmetro de impresso) Campo do sistema interno Contedo de uma linha da lista selecionada Nmero de expresses (parmetro de impresso) Falso-rosto da seleo (parmetro de impresso) ndice da lista exibida Campo do sistema obsoleto Nome do servidor de aplicao atual Campo do sistema interno Campo do sistema obsoleto Telas, nmero de colunas Campo do sistema obsoleto Programa ABAP, modo de chamada do programa ABAP Campo do sistema obsoleto Campo do sistema obsoleto Campo do sistema interno Programa de banco de dados de um banco de dados lgico Posio do cursor vertical no PAI Marcao para entrada em um campo de tela Campo do sistema obsoleto Campo do sistema interno Telas, nmero de linhas Campo do sistema interno Campo do sistema obsoleto N de colunas na margem esquerda de uma lista de impresso Campo do sistema interno Nova ordem spool (parmetro de impresso) Cdigo de idioma do ambiente de texto atual Nome do sistema SAP Campo do sistema obsoleto Campo do sistema obsoleto Campo do sistema obsoleto Campo do sistema interno Campo do sistema obsoleto Cdigo de retorno de instrues ABAP

SY-FODEC SY-TZONE SY-DAYST SY-FTYPE SY-APPLI SY-FDAYW SY-CCURS SY-CCURT SY-DEBUG SY-CTYPE SY-INPUT SY-LANGU SY-MODNO SY-BATCH SY-BINPT SY-CALLD SY-DYNNR SY-DYNGR SY-NEWPA SY-PRI40 SY-RSTRT SY-WTITL SY-CPAGE SY-DBNAM SY-MANDT SY-PREFX SY-FMKEY SY-PEXPI SY-PRINI SY-PRIMM SY-PRREL SY-PLAYO SY-PRBIG SY-PLAYP SY-PRNEW SY-PRLOG SY-PDEST SY-PLIST SY-PAUTH SY-PRDSN SY-PNWPA SY-CALLR SY-REPI2

Posio do cursor horizontal em PAI N de colunas na margem superior de uma lista de impresso Campo do sistema interno Campo do sistema interno Campo do sistema interno Campo do sistema interno Campo do sistema obsoleto Linha da lista selecionada Comprimento das pginas da lista Varivel txt.p/caractere preenchimento em ttulos da lista Campo do sistema obsoleto Local de incio de impresso da lista Campo do sistema obsoleto Campo do sistema obsoleto Campo do sistema obsoleto Data atual do servidor de aplicao Marcao para cabealho da pgina standard Campo do sistema interno Ocorrncia em cadeia de bytes ou caracteres Campo do sistema interno Data local do usurio atual Campo do sistema obsoleto Destinatrio (parmetro de impresso) Campo do sistema interno Identificao do mandante do usurio atual Hora local do usurio atual Campo do sistema interno Linha atual na lista Trao horizontal Campo do sistema interno Hora atual do servidor de aplicao Nome do usurio Trao vertical Campo do sistema obsoleto Campo do sistema obsoleto Campo do sistema obsoleto Linhas visveis de um step loop Campo do sistema interno Campo do sistema obsoleto Texto para falso-rosto (parmetro de impresso) Nome da ordem spool (parmetro de impresso) Campo do sistema obsoleto Alfabeto latino

SY-RTITL SY-PRREC SY-PRTXT SY-PRABT SY-LPASS SY-NRPAG SY-PAART SY-PRCOP SY-BATZS SY-BSPLD SY-BREP4 SY-BATZO SY-BATZD SY-BATZW SY-BATZM SY-CTABL SY-DBSYS SY-DCSYS SY-MACDB SY-SYSID SY-OPSYS SY-PFKEY SY-SAPRL SY-TCODE SY-UCOMM SY-CFWAE SY-CHWAE SY-SPONO SY-SPONR SY-WAERS SY-CDATE SY-DATUM SY-SLSET SY-SUBTY SY-SUBCS SY-GROUP SY-FFILE SY-UZEIT SY-DSNAM SY-TABID SY-TFDSN SY-UNAME SY-LSTAT

Campo do sistema interno Campo do sistema interno ndice do modo externo Campo do sistema interno Tipo de mensagem Varivel mensagens Campo do sistema interno Preparao para impresso (parmetro de impresso) Status GUI atual Varivel mensagens Campo do sistema interno Sistema operacional do servidor de aplicao Campo do sistema obsoleto Campo do sistema interno Campo do sistema obsoleto Classe de mensagem Varivel mensagens Varivel mensagens Dispositivo de sada (parmetro de impresso) N mensagem Perodo de reteno spool (parmetro de impresso) Pgina da lista atual ndice da lista de ramificao Campo do sistema interno Campo do sistema interno Calendrio de fbrica-dia da semana Contedo da linha de ttulo N da pgina atual de uma lista Primeira coluna de listas exibida Campo do sistema interno Variante utilizada Campo do sistema interno Campo do sistema obsoleto Campo do sistema obsoleto Flag de horrio de vero ndice da linha step loop atual Campo do sistema obsoleto Linha superior exibida Eliminar aps sada (parmetro de impresso) Campo do sistema interno Campo do sistema obsoleto Ttulo do progr.a imprimir (parmetro de impresso) ndice de tabelas internas

SY-ABCDE SY-MARKY SY-SFNAM SY-TNAME SY-MSGLI SY-TITLE SY-ENTRY SY-LISEL SY-ULINE SY-XCODE SY-CPROG SY-XPROG SY-XFORM SY-LDBPG SY-TVAR0 SY-TVAR1 SY-TVAR2 SY-TVAR3 SY-TVAR4 SY-TVAR5 SY-TVAR6 SY-TVAR7 SY-TVAR8 SY-TVAR9 SY-MSGID SY-MSGTY SY-MSGNO SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 SY-ONCOM SY-VLINE SY-WINSL SY-STACO SY-STARO SY-DATAR SY-HOST SY-LOCDB SY-LOCOP SY-DATLO SY-TIMLO SY-ZONLO

Programa corre em background Campo do sistema interno Campo do sistema obsoleto Coluna atual na lista Campo do sistema obsoleto Campo do sistema obsoleto Comprimento das linhas de uma tabela interna Campo do sistema obsoleto Entradas de tabela de banco de dados processadas Campo do sistema obsoleto Campo do sistema obsoleto O programa corre em batch input Varivel txt.p/caractere preenchimento em ttulos da lista Varivel txt.p/caractere preenchimento em ttulos da lista Varivel txt.p/caractere preenchimento em ttulos da lista Varivel txt.p/caractere preenchimento em ttulos da lista Varivel txt.p/caractere preenchimento em ttulos da lista Varivel txt.p/caractere preenchimento em ttulos da lista Varivel txt.p/caractere preenchimento em ttulos da lista Varivel txt.p/caractere preenchimento em ttulos da lista Data e hora, diferena de horas para hora de referncia UTC Cdigo de funo que acionou o PAI Campo do sistema obsoleto Release do sistema da SAP Campo do sistema obsoleto Cdigo de transao atual Campo do sistema interno Campo do sistema obsoleto N spool na sada de listagem Programa de chamada Campo do sistema interno N da tela atual Grupo de telas da tela atual Campo do sistema obsoleto Banco de dados lgico de um programa executvel Campo do sistema obsoleto Sistema de banco de dados central Campo do sistema interno Campo do sistema obsoleto Campo do sistema interno Varivel txt.p/caractere preenchimento em ttulos da lista Campo do sistema obsoleto Fuso horrio do usurio atual

nomenclatura

V_ varivel P_ Parmetros F_ Formulrios TY_ Types TI_ Tabela Interna WA_ Work Area

Descrio do exemplo: Cadastra a marca e cor de 3 carros e salva em uma tabela interna. Exemplo utiliza:

TYPES SELECTION-SCREEN PARAMETERS PERFORM FORM APPEND CLEAR

Exemplo: 1 (Comentado)

**--------------------------------------------------------** ** DECLARANDO 2 TYPES(MARCA E COR) DO TYPE C(CHARACTER) ** ** COM 10 CARACTERES CADA PARA A TYPES TY_CARROS. ** **--------------------------------------------------------** TYPES: BEGIN OF TY_CARROS, MARCA(10) TYPE C, COR(10) TYPE C,

END OF TY_CARROS. **--------------------------------------------------------** ** DECLARANDO A WORK AREA(WA_CARROS) DO TYPE TY_CARROS. ** ** DECLARANDO A TABELA INTERNA DO TYPE TY_CARROS. ** **--------------------------------------------------------** DATA: WA_CARROS TYPE TY_CARROS, TI_CARROS TYPE TABLE OF TY_CARROS. **--------------------------------------------------------** ** SELECTIONSCREEN PARA CRIAR UMA BOX(BLOCK B1) NA JANELA ** ** A BOX B1 USA O TEXTO 001 COMO TITULO(TITLE TEXT001). ** ** ** ** DECLARANDO OS PARMETROS(PARAMETERS) P_MARCA1 E P_COR1 ** ** DO TYPE C(CHARACTER) COM 30 CARACTERES CADA. ** **--------------------------------------------------------** SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT001. PARAMETERS: P_MARCA1(30) TYPE C, P_COR1(30) TYPE C. SELECTION-SCREEN END OF BLOCK B1. **--------------------------------------------------------** ** SELECTIONSCREEN PARA CRIAR UMA BOX(BLOCK B2) NA JANELA ** ** A BOX B2 USA O TEXTO 002 COMO TITULO(TITLE TEXT002). ** ** ** ** DECLARANDO OS PARMETROS(PARAMETERS) P_MARCA2 E P_COR2 ** ** DO TYPE C(CHARACTER) COM 30 CARACTERES CADA. ** **--------------------------------------------------------** SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT002.

PARAMETERS: P_MARCA2(30) TYPE C, P_COR2(30) TYPE C. SELECTION-SCREEN END OF BLOCK B2. **--------------------------------------------------------** ** SELECTIONSCREEN PARA CRIAR UMA BOX(BLOCK B3) NA JANELA ** ** A BOX B3 USA O TEXTO 003 COMO TITULO(TITLE TEXT003). ** ** ** ** DECLARANDO OS PARMETROS(PARAMETERS) P_MARCA3 E P_COR3 ** ** DO TYPE C(CHARACTER) COM 30 CARACTERES CADA. ** **--------------------------------------------------------** SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT003. PARAMETERS: P_MARCA3(30) TYPE C, P_COR3(30) TYPE C. SELECTION-SCREEN END OF BLOCK B3. START-OF-SELECTION. **--------------------------------------------------------** ** CHAMANDO O FORM DE NOME F_INSERMC E USANDO ** ** OS PARMETROS(PARAMETERS) P_MARCA1 E P_COR1. ** ** ** ** QUANDO O PERFORM FOR EXECUTADO ELE IRA SELECIONAR ** ** O I_MARCA E O I_COR DO FORM E SUBSTITUIR PELOS ** ** PARMETROS P_MARCA1 E P_COR1 ** **--------------------------------------------------------** PERFORM F_INSERMC USING P_MARCA1 P_COR1. **--------------------------------------------------------**

** CHAMANDO O FORM DE NOME F_INSERMC E USANDO ** ** OS PARMETROS(PARAMETERS) P_MARCA2 E P_COR2. ** ** ** ** QUANDO O PERFORM FOR EXECUTADO ELE IRA SELECIONAR ** ** O I_MARCA E O I_COR DO FORM E SUBSTITUIR PELOS ** ** PARMETROS P_MARCA2 E P_COR2. ** **--------------------------------------------------------** PERFORM F_INSERMC USING P_MARCA2 P_COR2. **--------------------------------------------------------** ** CHAMANDO O FORM DE NOME F_INSERMC E USANDO ** ** OS PARMETROS(PARAMETERS) P_MARCA3 E P_COR3. ** ** ** ** QUANDO O PERFORM FOR EXECUTADO ELE IRA SELECIONAR ** ** O I_MARCA E O I_COR DO FORM E SUBSTITUIR PELOS ** ** PARMETROS P_MARCA3 E P_COR3 ** **--------------------------------------------------------** PERFORM F_INSERMC USING P_MARCA3 P_COR3. END-OF-SELECTION. **--------------------------------------------------------** ** NO FORM DE NOME F_INSERMC FORAM DECLARADOS 2 ** ** USING DE NOME I_MARCA E I_COR DO TYPE C(CHARACTER). ** **--------------------------------------------------------** FORM F_INSERMC USING I_MARCA TYPE C I_COR TYPE C. **--------------------------------------------------------** ** ATRIBUINDO O DADOS DO USING I_MARCA NO CAMPO COR

** ** DA WORK AREA DE NOME WA_CARROS. ** ** ** ** WA_TABELACAMPO ** **--------------------------------------------------------** WA_CARROS-MARCA = I_MARCA. **--------------------------------------------------------** ** ATRIBUINDO O DADOS DO USING I_COR NO CAMPO COR ** ** DA WORK AREA DE NOME WA_CARROS. ** ** ** ** WA_TABELACAMPO ** **--------------------------------------------------------** WA_CARROS-COR = I_COR. **--------------------------------------------------------** ** ATRIBUINDO O DADOS OS DADOS DA WORK AREA DE ** ** NOME WA_CARROSPARA A TABELA INTERNA DE NOME TI_CARROS. ** **--------------------------------------------------------** APPEND WA_CARROS TO TI_CARROS. **--------------------------------------------------------** ** LIMPA A WORK AREA DE NOME WA_CARRO. ** **--------------------------------------------------------** CLEAR WA_CARROS. ENDFORM.

Precisa arredondar um valor em um programa ABAP? Ento conhea Os Operadores Aritmticos ABAP: Instruo FLOOR() CEIL() FRAC() Sintaxe: DATA:
v_valor_01(4) v_valor_02(4) v_valor_03(4) v_valor_04(4) v_valor_05(4) v_valor_06(4) v_floor1(4) v_floor2(4) v_ceil1(4) v_ceil2(4) v_frac1(4) v_frac2(4)

Descrio Arredonda para baixo. Arredonda para cima. Retorna decimais de um valor.

TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE

p p p p p p p p p p p p

DECIMALS DECIMALS DECIMALS DECIMALS DECIMALS DECIMALS DECIMALS DECIMALS DECIMALS DECIMALS DECIMALS DECIMALS

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.

* Valores usandos para o FLOOR(Arredondamento para baixo) v_valor_01 = '10.03'. v_valor_02 = '10.06'. * Valores usandos para o CEIL(Arredondamento para cima) v_valor_03 = '10.03'. v_valor_04 = '10.06'. * Valores usandos para o FRAC(Retorna os decimais do valor) v_valor_05 = '10.03'. v_valor_06 = '10.06'. *Logica do FLOOR(Arredondamento para baixo) v_floor1 = floor( v_valor_01 ). v_floor2 = floor( v_valor_02 ). *Logica do CEIL(Arredondamento para cima) v_ceil1 = ceil( v_valor_03 ). v_ceil2 = ceil( v_valor_04 ). *Logica do FRAC(Retorna os decimais do valor) v_frac1 = frac( v_valor_05 ). v_frac2 = frac( v_valor_06 ). * Arredondamento para baixo com o FRAC.
v_frac1 = v_valor_05 - v_frac1.

* Arredondamento para cima com o FRAC. v_frac2 = v_valor_06 - v_frac2 + 1. WRITE: 'Floor:',
/ / / / / / / / v_floor1, v_floor2, 'CEIL:', v_ceil1, v_ceil2, 'FRAC:', v_frac1, v_frac2,

' (Arredondamento para baixo)', ' (Arredondamento para baixo)', ' (Arredondamento para cima)', ' (Arredondamento para cima)', ' (Arredondamento para baixo)', ' (Arredondamento para cima)'.

Resultado:

O resultado mostra que no importa que os decimais so maiores ou menos que 0.5, o valor sempre ser arredondado. =D

Descrio do exemplo: 2 Relatorio com BATCH INPUT. Exemplo:

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24 26 28 30 32 34 36

TYPE-POOLS:

SLIS.

TY_TABELA_01, COD_CLIENTE TYPE ZTABELA_01-COD_CLIENTE, NOME TYPE ZTABELA_01-NOME, ENDERECO TYPE ZTABELA_01-ENDERECO, END OF TY_TABELA_01.
TYPES: BEGIN OF DATA:

11 13 15 17 19 21 23 25 27 29 31 33 35 37

WA_TABELA TYPE BDCDATA, TI_TABELA TYPE TABLE OF BDCDATA, TI_01 TYPE TABLE OF TY_TABELA_01, WA_01 TYPE TY_TABELA_01. TI_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV, WA_FIELDCATALOG TYPE SLIS_FIELDCAT_ALV. P_COD TYPE ZTABELA_01-COD_CLIENTE, P_NOME TYPE ZTABELA_01-NOME, P_ENDE TYPE ZTABELA_01-ENDERECO.

DATA:

PARAMETERS:

PERFORM PERFORM PERFORM

F_CAMPOS USING 'SAPMSVMA' '0100' 'X' '' ''. F_CAMPOS USING '' '' '' 'BDC_CURSOR' 'VIEWNAME'. F_CAMPOS USING '' '' '' 'BDC_OKCODE' '=UPD'.

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119

PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING NOME(01)'. PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING ENDERECO(01)'. PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING COD_CLIENTE(01)' P_COD. PERFORM F_CAMPOS USING NOME(01)' P_NOME. PERFORM F_CAMPOS USING ENDERECO(01)' P_ENDE. PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING COD_CLIENTE(02)'. PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING COD_CLIENTE(02)'. PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING PERFORM F_CAMPOS USING CALL IF

'' '' '' 'VIEWNAME' 'ZTABELA_01'. '' '' '' 'VIMDYNFLDS-LTD_DTA_NO' 'X'. 'SAPLZRE12AL10_T005T' '0002' 'X' '' ''. '' '' '' 'BDC_CURSOR' 'ZTABELA_01'' '' '' 'BDC_OKCODE' '=NEWL'. 'SAPLZRE12AL10_T005T' '0002' 'X' '' ''. '' '' '' 'BDC_CURSOR' 'ZTABELA_01'' '' '' 'BDC_OKCODE' '/00'. '' '' '' 'ZTABELA_01'' '' '' 'ZTABELA_01'' '' '' 'ZTABELA_01'SAPLZRE12AL10_T005T' '0002' 'X' '' ''. '' '' '' 'BDC_CURSOR' 'ZTABELA_01'' '' '' 'BDC_OKCODE' '=BACK'. 'SAPLZRE12AL10_T005T' '0002' 'X' '' ''. '' '' '' 'BDC_CURSOR' 'ZTABELA_01'' '' '' 'BDC_OKCODE' 'SAPLSPO1' '0100' 'X' '' '' '' 'BDC_OKCODE' 'SAPMSVMA' '0100' 'X' '' '' '' 'BDC_OKCODE' '' '' '' 'BDC_CURSOR' '=BACK'. '' ''. '=YES'. '' ''. '/EBACK'. 'VIEWNAME'.

TRANSACTION 'SM30' USING

TI_TABELA MODE 'N'.

SY-SUBRC IS INITIAL. COD_CLIENTE NOME ENDERECO FROM ZTABELA_01 INTO TABLE TI_01.
SELECT PERFORM PERFORM PERFORM PERFORM

F_FIELD USING 'COD_CLIENTE'. F_FIELD USING 'NOME'. F_FIELD USING 'ENDERECO'. F_GRID.

ENDIF. FORM

F_GRID.

WA_LAYOUT TYPE SLIS_LAYOUT_ALV. WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. WA_LAYOUT-ZEBRA = 'X'.


DATA:

120 121 122 123 124 125 126 127

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING IS_LAYOUT = WA_LAYOUT IT_FIELDCAT = TI_FIELDCATALOG[] TABLES T_OUTTAB = TI_01 EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. IF SY-SUBRC <> 0. * IMPLEMENT SUITABLE ERROR HANDLING HERE ENDIF. ENDFORM.

FORM

F_CAMPOS USING P_PROGRAM P_DYNPRO P_DYNBEGIN P_FNAM P_FVAL.

WA_TABELA-PROGRAM = P_PROGRAM. WA_TABELA-DYNPRO = P_DYNPRO. WA_TABELA-DYNBEGIN = P_DYNBEGIN. WA_TABELA-FNAM = P_FNAM. WA_TABELA-FVAL = P_FVAL.
APPEND WA_TABELA TO CLEAR WA_TABELA.

TI_TABELA.

ENDFORM. FORM

F_FIELD USING P_CAMPO.

= 'ZTABELA_01'. = P_CAMPO. * WA_FIELDCATALOG-REF_FIELDNAME = P_CAMPO. * WA_FIELDCATALOG-REF_TABNAME = 'TI_TABELA'. WA_FIELDCATALOG-SELTEXT_M = P_CAMPO. APPEND WA_FIELDCATALOG TO TI_FIELDCATALOG. CLEAR WA_FIELDCATALOG.

WA_FIELDCATALOG-TABNAME WA_FIELDCATALOG-FIELDNAME

ENDFORM.

Comando: PERFORM Descrio: Usado para chamar um formulrio (subprograma). Exemplo:

PERFORM FORM

F_ESCREVE.

F_ESCREVE.

WRITE 'TEXTO'. ENDFORM. PARAMETERS PARAMETERS PARAMETERS IF

P_AZUL AS CHECKBOX. P_VERM AS CHECKBOX. P_AMAR AS CHECKBOX.

PERFORM

P_AZUL = 'X'. F_ESCREVE USING 4.

ELSEIF P_VERM = 'X'. PERFORM F_ESCREVE USING 6. ELSE. PERFORM ENDIF. FORM

F_ESCREVE USING 3.

F_ESCREVE USING P_COR TYPE I. P_COR.

WRITE 'TEXTO COLORIDO' COLOR = ENDFORM.