Upload
lvaldeir
View
5
Download
0
Embed Size (px)
Citation preview
Capítulo 1 Arquivos Sequenciais
1-2 Arquivos Sequenciais
Visão Geral
R/3R/3
Programa ABAP
TRANSFER READ DATASET
Arquivo Sequencial
1-3 Arquivos Sequenciais
Importação e Exportação de Dados
Sistema do ClienteSistema do Cliente
Sistema SAPSistema SAPArquivo Sequencial
Arquivo Sequencial
ProgramaSAPProgramaSAP
Programasdo ClienteProgramasdo Cliente
1-4 Arquivos Sequenciais
Processamento de Arquivos
Abrir ArquivoAbrir Arquivo
Processar ArquivoProcessar Arquivo
Fechar ArquivoFechar Arquivo
1-5 Arquivos Sequenciais
Abrir Arquivos
OPEN DATASET <filename>OPEN DATASET <filename>
OUTPUTFOR INPUT
APPENDING
OUTPUTFOR INPUT
APPENDING
IF SY-SUBRC NE 0. . . .
IF SY-SUBRC NE 0. . . .
1-6 Arquivos Sequenciais
Abrir Arquivos
IF SY-SUBRC NE 0. . . .
IF SY-SUBRC NE 0. . . .
OPEN DATASET <filename>OPEN DATASET <filename>
OUTPUTFOR INPUT
APPENDING
IN BINARY MODETEXT MODE
OUTPUTFOR INPUT
APPENDING
IN BINARY MODETEXT MODE
default
1-7 Arquivos Sequenciais
Modo Binário e Modo Texto
ProgramaABAPProgramaABAP A B C
A B
A B C D
ProgramaABAPProgramaABAP A B C
A B
A B C
TRANSFER
READ DATASET
ProgramaABAPProgramaABAP A B C
A B
A B C D
TRANSFER
ProgramaABAPProgramaABAP A B C
A B A
B C D
READ DATASET
A B C A B A B C D
Modo Binário Modo Texto
A B C A B A B C D
1-8 Arquivos Sequenciais
Transferir Registros de Dados
Arquivo Arquivo SequencialSequencial
DadosDados
TRANSFER <string de campos> TO <filename>.TRANSFER <string de campos> TO <filename>.
1-9 Arquivos Sequenciais
Ler Registros de Dados
READ DATASET <filename> INTO <string de campos>.READ DATASET <filename> INTO <string de campos>.
ArquivoArquivoSequencialSequencial
DadosDados
1-10 Arquivos Sequenciais
Fechar e Apagar Arquivos
CLOSE DATASET <filename>.CLOSE DATASET <filename>.
DELETE DATASET <filename>.DELETE DATASET <filename>.
1-11 Arquivos Sequenciais
Abrir e Fechar Arquivos
OPEN DATASET <filename> FOR INPUT [in binary/text mode].
<... comandos ...>
READ DATASET <filename> INTO <string de campos>.
<... comandos ...>
CLOSE DATASET <filename>.
OPEN DATASET <filename> FOR INPUT [in binary/text mode].
<... comandos ...>
READ DATASET <filename> INTO <string de campos>.
<... comandos ...>
CLOSE DATASET <filename>.
OPEN DATASET <filename> FOR OUTPUT [in binary/text mode].
<... comandos ...>
TRANSFER <string de campos> TO <filename>.
<... comandos ...>
CLOSE DATASET <filename>.
OPEN DATASET <filename> FOR OUTPUT [in binary/text mode].
<... comandos ...>
TRANSFER <string de campos> TO <filename>.
<... comandos ...>
CLOSE DATASET <filename>.
1-12 Arquivos Sequenciais
Como Preencher as várias Estruturas de Dados
MOVE <campo1> TO <campo2>.COMPUTE <campo1> = <campo2> + . . . .MOVE-CORRESPONDING <estrutura1> TO <estrutura2>.
MOVE < estrutura1> TO < estrutura2>.WRITE <campo1> TO <campo2>.
MOVE <campo1> TO <campo2>.COMPUTE <campo1> = <campo2> + . . . .MOVE-CORRESPONDING <estrutura1> TO <estrutura2>.
MOVE < estrutura1> TO < estrutura2>.WRITE <campo1> TO <campo2>.
Atribuições:
DATA: Campos
DATA: Strings de campos
TABLES:
Tabelas
DATA: Campos
DATA: Strings de campos
TABLES:
Tabelas
Estruturas de dados:
1-13 Arquivos Sequenciais
Exemplo: Criar um Arquivo
REPORT ZB420F00. “ Utilizando BDLTABLES LFA1. “ FornecedoresDATA: BEGIN OF REC, LIFNR LIKE LFA1-LIFNR, “ Nº Fornecedor NAME1 LIKE LFA1-NAME1, “ Nome STRAS LIKE LFA1-STRAS, “ Morada (Endereço) ORT01 LIKE LFA1-ORT01, “ Cidade END OF REC.
PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000‘ LOWER CASE.
START-OF-SELECTION. OPEN DATASET FILE FOR OUTPUT IN TEXT MODE.
GET LFA1. MOVE-CORRESPONDING LFA1 TO REC. TRANSFER REC TO FILE.
WRITE: / REC-LIFNR, REC-NAME1, REC-STRAS, / REC-ORT01 UNDER REC-STRAS.
END-OF-SELECTION. CLEAR REC. CLOSE DATASET FILE.
REPORT ZB420F00. “ Utilizando BDLTABLES LFA1. “ FornecedoresDATA: BEGIN OF REC, LIFNR LIKE LFA1-LIFNR, “ Nº Fornecedor NAME1 LIKE LFA1-NAME1, “ Nome STRAS LIKE LFA1-STRAS, “ Morada (Endereço) ORT01 LIKE LFA1-ORT01, “ Cidade END OF REC.
PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000‘ LOWER CASE.
START-OF-SELECTION. OPEN DATASET FILE FOR OUTPUT IN TEXT MODE.
GET LFA1. MOVE-CORRESPONDING LFA1 TO REC. TRANSFER REC TO FILE.
WRITE: / REC-LIFNR, REC-NAME1, REC-STRAS, / REC-ORT01 UNDER REC-STRAS.
END-OF-SELECTION. CLEAR REC. CLOSE DATASET FILE.
1-14 Arquivos Sequenciais
Exemplo: Estruturas do Dicionário de Dados
REPORT ZB420F01.TABLES: LFA1, RBC180A.
PARAMETERS FILE(20) DEFAULT '/usr/formacao/B420F000‘ LOWER CASE....GET LFA1. MOVE-CORRESPONDING LFA1 TO RBC180A. TRANSFER RBC180A TO FILE. WRITE: / RBC180A-LIFNR, RBC180A-NAME1, / RBC180A-STRAS UNDER RBC180A-NAME1, / RBC180A-ORT01 UNDER RBC180A-NAME1.
REPORT ZB420F01.TABLES: LFA1, RBC180A.
PARAMETERS FILE(20) DEFAULT '/usr/formacao/B420F000‘ LOWER CASE....GET LFA1. MOVE-CORRESPONDING LFA1 TO RBC180A. TRANSFER RBC180A TO FILE. WRITE: / RBC180A-LIFNR, RBC180A-NAME1, / RBC180A-STRAS UNDER RBC180A-NAME1, / RBC180A-ORT01 UNDER RBC180A-NAME1.
REPORT ZB420F02.TABLES: LFA1, RBC180A.DATA: BEGIN OF REC. INCLUDE STRUCTURE RBC180A.DATA: END OF REC.PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000' LOWER CASE....GET LFA1. MOVE-CORRESPONDING LFA1 TO REC. TRANSFER REC TO FILE. WRITE: / REC-LIFNR, REC-NAME1, / REC-STRAS UNDER REC-NAME1, / REC-ORT01 UNDER REC-NAME1.
REPORT ZB420F02.TABLES: LFA1, RBC180A.DATA: BEGIN OF REC. INCLUDE STRUCTURE RBC180A.DATA: END OF REC.PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000' LOWER CASE....GET LFA1. MOVE-CORRESPONDING LFA1 TO REC. TRANSFER REC TO FILE. WRITE: / REC-LIFNR, REC-NAME1, / REC-STRAS UNDER REC-NAME1, / REC-ORT01 UNDER REC-NAME1.
Table structure RBC180A---------------------------------------------Name Type Length Description---------------------------------------------RBC180A-LIFNR CHAR 10 Supplier no. RBC180A-NAME1 CHAR 35 NameRBC180A-STRAS CHAR 35 StreetRBC180A-ORT01 CHAR 35 City
Table structure RBC180A---------------------------------------------Name Type Length Description---------------------------------------------RBC180A-LIFNR CHAR 10 Supplier no. RBC180A-NAME1 CHAR 35 NameRBC180A-STRAS CHAR 35 StreetRBC180A-ORT01 CHAR 35 City
DDICDDIC
Uma outra maneira de definir estruturas
Atenção à sintaxe!!!
1-15 Arquivos Sequenciais
Exemplo: Ler um Arquivo
REPORT ZB420F03.TABLES LFA1.DATA: BEGIN OF REC, LIFNR LIKE LFA1-LIFNR, NAME1 LIKE LFA1-NAME1, STRAS LIKE LFA1-STRAS, ORT01 LIKE LFA1-ORT01, END OF REC.
PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000‘ LOWER CASE.
START-OF-SELECTION. OPEN DATASET FILE FOR INPUT IN TEXT MODE. DO. READ DATASET FILE INTO REC. IF SY-SUBRC NE 0. EXIT. ENDIF. WRITE: / REC-LIFNR, REC-NAME1, / REC-STRAS UNDER REC-NAME1, / REC-ORT01 UNDER REC-NAME1.
ENDDO.
END-OF-SELECTION. CLOSE DATASET FILE.
REPORT ZB420F03.TABLES LFA1.DATA: BEGIN OF REC, LIFNR LIKE LFA1-LIFNR, NAME1 LIKE LFA1-NAME1, STRAS LIKE LFA1-STRAS, ORT01 LIKE LFA1-ORT01, END OF REC.
PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000‘ LOWER CASE.
START-OF-SELECTION. OPEN DATASET FILE FOR INPUT IN TEXT MODE. DO. READ DATASET FILE INTO REC. IF SY-SUBRC NE 0. EXIT. ENDIF. WRITE: / REC-LIFNR, REC-NAME1, / REC-STRAS UNDER REC-NAME1, / REC-ORT01 UNDER REC-NAME1.
ENDDO.
END-OF-SELECTION. CLOSE DATASET FILE.
1-16 Arquivos Sequenciais
Exemplo: Acrescentar Linhas a um Arquivo
REPORT ZB420F04.TABLES: LFA1, RBC180A.
PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000' LOWER CASE.
START-OF-SELECTION. OPEN DATASET FILE FOR APPENDING IN TEXT MODE.
GET LFA1. MOVE-CORRESPONDING LFA1 TO RBC180A. TRANSFER RBC180A TO FILE. WRITE: / RBC180A-LIFNR, RBC180A-NAME1.
END-OF-SELECTION. CLOSE DATASET FILE.
REPORT ZB420F04.TABLES: LFA1, RBC180A.
PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000' LOWER CASE.
START-OF-SELECTION. OPEN DATASET FILE FOR APPENDING IN TEXT MODE.
GET LFA1. MOVE-CORRESPONDING LFA1 TO RBC180A. TRANSFER RBC180A TO FILE. WRITE: / RBC180A-LIFNR, RBC180A-NAME1.
END-OF-SELECTION. CLOSE DATASET FILE.
1-17 Arquivos Sequenciais
Exemplo: Criar um Arquivo em modo Binário
REPORT ZB420F05.TABLES: LFA1,LFBK.INCLUDE ZB420F1I.PARAMETERS: FILE(30) DEFAULT '/usr/formacao/B420F000' LOWER CASE.START-OF-SELECTION. OPEN DATASET FILE FOR OUTPUT IN BINARY MODE.
GET LFA1. MOVE-CORRESPONDING LFA1 TO REC1. MOVE 'A' TO REC1-FLAG. TRANSFER REC1 TO FILE. GET LFBK. MOVE-CORRESPONDING LFBK TO REC2. MOVE 'B' TO REC2-FLAG. TRANSFER REC2 TO FILE.
END-OF-SELECTION. CLOSE DATASET FILE.
REPORT ZB420F05.TABLES: LFA1,LFBK.INCLUDE ZB420F1I.PARAMETERS: FILE(30) DEFAULT '/usr/formacao/B420F000' LOWER CASE.START-OF-SELECTION. OPEN DATASET FILE FOR OUTPUT IN BINARY MODE.
GET LFA1. MOVE-CORRESPONDING LFA1 TO REC1. MOVE 'A' TO REC1-FLAG. TRANSFER REC1 TO FILE. GET LFBK. MOVE-CORRESPONDING LFBK TO REC2. MOVE 'B' TO REC2-FLAG. TRANSFER REC2 TO FILE.
END-OF-SELECTION. CLOSE DATASET FILE.
REPORT ZB420F1I.DATA: BEGIN OF REC1, FLAG. INCLUDE STRUCTURE LFA1.DATA: END OF REC1.
DATA: BEGIN OF REC2, FLAG. INCLUDE STRUCTURE LFBK.DATA: END OF REC2.
REPORT ZB420F1I.DATA: BEGIN OF REC1, FLAG. INCLUDE STRUCTURE LFA1.DATA: END OF REC1.
DATA: BEGIN OF REC2, FLAG. INCLUDE STRUCTURE LFBK.DATA: END OF REC2.
1-18 Arquivos Sequenciais
Exemplo: Ler um Arquivo em modo Binário
REPORT ZB420F06.TABLES: LFA1, LFBK.DATA: FLAG.
PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000‘ LOWER CASE.
START-OF-SELECTION. OPEN DATASET FILE FOR INPUT IN BINARY MODE.DO. READ DATASET FILE INTO FLAG. IF SY-SUBRC NE 0. EXIT. ENDIF. CASE FLAG. WHEN 'A'. READ DATASET FILE INTO LFA1. WRITE: / LFA1-LIFNR, LFA1-NAME1, / LFA1-ORT01 UNDER LFA1-NAME1. WHEN 'B'. READ DATASET FILE INTO LFBK. WRITE: / LFBK-BANKS UNDER LFA1-NAME1, LFBK-BANKL, LFBK-BANKN. ENDCASE.ENDDO.
END-OF-SELECTION. CLOSE DATASET FILE.
REPORT ZB420F06.TABLES: LFA1, LFBK.DATA: FLAG.
PARAMETERS FILE(30) DEFAULT '/usr/formacao/B420F000‘ LOWER CASE.
START-OF-SELECTION. OPEN DATASET FILE FOR INPUT IN BINARY MODE.DO. READ DATASET FILE INTO FLAG. IF SY-SUBRC NE 0. EXIT. ENDIF. CASE FLAG. WHEN 'A'. READ DATASET FILE INTO LFA1. WRITE: / LFA1-LIFNR, LFA1-NAME1, / LFA1-ORT01 UNDER LFA1-NAME1. WHEN 'B'. READ DATASET FILE INTO LFBK. WRITE: / LFBK-BANKS UNDER LFA1-NAME1, LFBK-BANKL, LFBK-BANKN. ENDCASE.ENDDO.
END-OF-SELECTION. CLOSE DATASET FILE.
1-19 Arquivos Sequenciais
Resumo
Definir estruturasDefinir estruturas
OPEN DATASETOPEN DATASET
EscritaEscrita LeituraLeitura
Preencher estruturaPreencher estrutura Ler registros arquivoLer registros arquivo
Transferir estrutura Transferir estrutura Processar registros arquivoProcessar registros arquivo
Fechar arquivoFechar arquivo
Mais registros?
Mais registros?
Fim do arquivo?
Fim do arquivo?
Não Sim
NãoSim