19
Capítulo 1 Arquivos Sequenciais

Cap[1][1].1ArquivosSequenciais.ppt

Embed Size (px)

Citation preview

Page 1: Cap[1][1].1ArquivosSequenciais.ppt

Capítulo 1 Arquivos Sequenciais

Page 2: Cap[1][1].1ArquivosSequenciais.ppt

1-2 Arquivos Sequenciais

Visão Geral

R/3R/3

Programa ABAP

TRANSFER READ DATASET

Arquivo Sequencial

Page 3: Cap[1][1].1ArquivosSequenciais.ppt

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

Page 4: Cap[1][1].1ArquivosSequenciais.ppt

1-4 Arquivos Sequenciais

Processamento de Arquivos

Abrir ArquivoAbrir Arquivo

Processar ArquivoProcessar Arquivo

Fechar ArquivoFechar Arquivo

Page 5: Cap[1][1].1ArquivosSequenciais.ppt

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

Page 6: Cap[1][1].1ArquivosSequenciais.ppt

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

Page 7: Cap[1][1].1ArquivosSequenciais.ppt

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

Page 8: Cap[1][1].1ArquivosSequenciais.ppt

1-8 Arquivos Sequenciais

Transferir Registros de Dados

Arquivo Arquivo SequencialSequencial

DadosDados

TRANSFER <string de campos> TO <filename>.TRANSFER <string de campos> TO <filename>.

Page 9: Cap[1][1].1ArquivosSequenciais.ppt

1-9 Arquivos Sequenciais

Ler Registros de Dados

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

ArquivoArquivoSequencialSequencial

DadosDados

Page 10: Cap[1][1].1ArquivosSequenciais.ppt

1-10 Arquivos Sequenciais

Fechar e Apagar Arquivos

CLOSE DATASET <filename>.CLOSE DATASET <filename>.

DELETE DATASET <filename>.DELETE DATASET <filename>.

Page 11: Cap[1][1].1ArquivosSequenciais.ppt

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

Page 12: Cap[1][1].1ArquivosSequenciais.ppt

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:

Page 13: Cap[1][1].1ArquivosSequenciais.ppt

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.

Page 14: Cap[1][1].1ArquivosSequenciais.ppt

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

Page 15: Cap[1][1].1ArquivosSequenciais.ppt

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.

Page 16: Cap[1][1].1ArquivosSequenciais.ppt

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.

Page 17: Cap[1][1].1ArquivosSequenciais.ppt

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.

Page 18: Cap[1][1].1ArquivosSequenciais.ppt

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.

Page 19: Cap[1][1].1ArquivosSequenciais.ppt

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