Você está na página 1de 19

Captulo 1

Arquivos Sequenciais

Viso Geral
R/3
Programa ABAP

TRANSFER

READ DATASET

Arquivo Sequencial

Importao e Exportao de Dados Sistema do Cliente


Programas do Cliente
Arquivo Sequencial

Sistema SAP

Programa SAP

Processam ento de Arquivos


Abrir Arquivo

Processar Arquivo

Fechar Arquivo

Abrir Arquivos
OPEN DATASET <filename>

FOR

OUTPUT INPUT APPENDING

IF SY-SUBRC NE 0. . . .

Abrir Arquivos
OPEN DATASET <filename> FOR OUTPUT INPUT APPENDING default

IN

BINARY MODE TEXT MODE

IF SY-SUBRC NE 0. . . .

Modo Binrio Programa ABAP ABC AB A B CD TRANSFER

Modo Binrio e Modo Texto


Modo Texto Programa ABAP ABC AB ABCD TRANSFER

A BCAB ABCD READ DATASET Programa ABAP A BC ABA BCD

ABC

AB

ABCD

READ DATASET Programa ABAP ABC AB ABC

Transferir Registros de Dados


TRANSFER <string de campos> TO <filename>.

Arquivo Sequencial

Dados

Ler Registros de Dados


READ DATASET <filename> INTO <string de campos>.

Arquivo Sequencial

Dados

Fechar e Apagar Arquivos


CLOSE DATASET <filename>.

DELETE DATASET <filename>.

OPEN DATASET <filename> FOR INPUT [in binary/text mode]. <... comandos ...> READ DATASET <filename> INTO <string de campos>. <... comandos ...>

Abrir e Fechar Arquivos

CLOSE DATASET <filename>.

OPEN DATASET <filename> FOR OUTPUT [in binary/text mode]. <... comandos ...> TRANSFER <string de campos> TO <filename>. <... comandos ...> CLOSE DATASET <filename>.

Estruturas de dados: DATA: DATA:

Preencher as vrias Estruturas de Dados

Campos Strings de campos

TABLES:

Tabelas

Atribuies:
MOVE <campo1> TO <campo2>. COMPUTE <campo1> = <campo2> + . . . . MOVE-CORRESPONDING <estrutura1> TO <estrutura2>.

MOVE < estrutura1> TO < estrutura2>. WRITE <campo1> TO <campo2>.

Exemplo: Criar um Arquivo


REPORT ZB420F00. 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. Utilizando BDL Fornecedores

N Fornecedor Nome Morada (Endereo) Cidade

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 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.

Exemplo: Estruturas do Dicionrio de Dados


DDIC
Table structure RBC180A --------------------------------------------Name Type Length Description --------------------------------------------RBC180A-LIFNR CHAR 10 Supplier no. RBC180A-NAME1 CHAR 35 Name RBC180A-STRAS CHAR 35 Street RBC180A-ORT01 CHAR 35 City

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.

Uma outra maneira de definir estruturas Ateno sintaxe!!!

Exempl o: Ler um Arquivo


REPORT ZB420F03. TABLES LFA1. DATA: BEGIN OF REC, LIFNR LIKE NAME1 LIKE STRAS LIKE ORT01 LIKE END OF REC. LFA1-LIFNR, LFA1-NAME1, LFA1-STRAS, LFA1-ORT01, 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.

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.

Exemplo: Criar um Arquivo em modo Binrio


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.

Exemplo: Ler um Arquivo em modo Binrio


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.

Res umo
Escrita

Definir estruturas

OPEN DATASET

Leitura

Preencher estrutura

Ler registros arquivo

Transferir estrutura

Processar registros arquivo

Sim

Mais registros?

Fim do arquivo?

No

No
Fechar arquivo

Sim

Você também pode gostar