Aserei S.r.l.

home

AZIENDA
sede

ERP
Introduzione agli ERP
Corso SAP

GESTIONE delle RETI
CISCO
VPN

LINUX
Installare Vmware su Suse Linux

VBA Excel-Powerpoint
Macro crea grafico "Walk"

< 10 11 12 13 14 15 16 17 18 19 > indice
CORSO SAP R/3 - PROGRAMMAZIONE ABAP/4

Tipologia di Programmi in SAP

REPORT – TRATTAMENTO DI ARCHIVI SEQUENZIALI ESTERNI

Tutti i reports visti fino a questo momento trattano esclusivamente archivi SAP (TABLES), tuttavia risulta spesso necessario elaborare anche archivi tradizionali di tipo sequenziale, sia in lettura e sia in scrittura. Non è previsto invece il trattamento degli archivi a indice. L’esigenza di accedere ad archivi sequenziali è molto frequente perché un qualunque sistema informativo deve spesso comunicare con altri sistemi tramite supporti magnetici che normalmente contengono archivi di questo tipo. Esempi di utilizzo di archivi sequenziali esterni possono essere i seguenti:

  1. Trasmissione su supporto magnetico di elenchi di tipo fiscale per l’amministrazione finanziaria statale (Elenco Clienti/Fornitori, Modello 770,…);
  2. Trasmissione/Ricezione listini prezzi a clienti/d fornitori;
  3. Trasmissione documenti contabili a istituti di credito (ricevute bancarie,…);
  4. Colloquio tra SAP e altri settori del sistema informativo aziendale non ancora meccanizzato tramite SAP.

Le istruzioni messe a disposizione del linguaggio ABAP/4 per il trattamento di questi tipi di archivi sono poche e molto semplici, come risulta dal seguente elenco:

  1. OPEN DATASET nomearchivio FOR INUT

Che effettua l’apertura dell’archivio sequenziale il cui nome fisico è contenuto nella variabile nomearchivio. Prima di accedere ad un archivio è necessario effettuarne la OPEN definendo il tipo di accesso che si intende operare (in lettura oppure in scrittura). Nel caso indicato è aperto in lettura (FOR INPUT) pertanto il programma potrà esclusivamente leggere tale archivio. Ovviamente per effettuare l’apertura in scrittura occorrerà sostituire la clausola FOR INPUT con FOR OUTPUT; in questo caso il programma potrà esclusivamente scrivere dei record sul nostro archivio il cui nome è memorizzato nella variabile nomearchivio. L’istruzione OPEN DATASET restituisce nel campo di sistema SY-SUBRC il valore 0 se l’operazione è andata a buon fine e il valore 8 se invece l’istruzione ha avuto esito negativo (ad esempio l’apertura in input di un archivio inesistente, o in output di un archivio già utilizzato da un altro utente).

  1. CLOSE DATASET nomearchivio

Che chiude l’accesso all’archivio esterno il cui nome è memorizzato nella variabile nomearchivio. L’istruzione CLOSE DATASET deve essere eseguita al termine del trattamento dell’archivio. Dopo tale istruzione non è più possibile effettuare operazioni di I/O sull’archivio indicato.

  1. READ DATASET nomearchivio INTO nomearea

Questa istruzione produce la lettura sequenziale di un record dell’archivio il cui nome è memorizzato nella variabile nomearchivio, il contenuto del record è trasferito nella struttura (o variabile) avente nome nomearea e che, ovviamente, deve rispecchiare fedelmente il tracciato record dell’archivio di input. Anche questa istruzione imposta il campo di sistema SY-SUBRC al valore 0, se l’operazione è andata a buon fine e al valore 4 se la lettura non è andata a buon fine (l’archivio è terminato).

  1. TRANSFER nomearea TO nomearchivio

Questa istruzione effettua la scrittura di un record che sarà accodato a quelli già presenti nell’archivio il cui nome si trova nella variabile nomearchivio. Il record è riempito con il contenuto della struttura (o variabile) nomarea che deve essere definita rispecchiando il tracciato record dell’archivio.

Ad esempio:

Come si può osservare, dopo ogni operazione di lettura è testato il campo SY-SUBRC; il ciclo è interrotto non appena tale campo segnala la fine dell’archivio. Dimenticando tale test si otterrebbe un ciclo ripetitivo infinito.

Il trattamento di archivi esterni sequenziali è la base per lo sviluppo dei programmi di BATCH-INPUT cioè adibiti al caricamento in massa delle TABLES SAP da parte di sistemi informativi di altro tipo.

Per ulteriori approfondimenti si rimanda all’uso dell’help in linea fornito da SAP.


indietro  
indice
  avanti