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

REALIZZAZIONE DI UN PROGRAMMA BATCH INPUT

La realizzazione di un programma di BATCH-INPUT richiede una fase iniziale durante la quale il programmatore deve effettuare manualmente le attività che l’utente dovrebbe fare per operare i medesimi aggiornamenti tramite le videate di SAP.

Ad esempio:

Nel caso di dover realizzare un BATCH-INPUT per l’inserimento di nuovi fornitori (e che quindi dispone di un archivio sequenziale di input con un record per fornitore); in questo caso il programmatore deve verificare quali transazioni, quali programmi, quali dynpro e quali campi sono necessari per l’inserimento manuale di un fornitore, provando lui stesso a richiamare (tramite i menu a tendina di SAP) la transazione adibita alla creazione di un nuovo fornitore e registrare passo dopo passo tutte le attività necessarie a completare la creazione. Per facilitare tale attività forniamo nella pagina seguente uno schema adatto a memorizzare tali dati coerente con il tracciato previsto per la tabella BDC (struttura BDCDATA).

Codice TRANSAZIONE

Nome del programma

Dynpro

Begin

Nome del campo

Contenuto del campo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Simulando l’attività dell’utente, occorre verificare di volta in volta il nome della transazione corrispondente alla creazione di un fornitore tramite la scelta: Menu Sistema à Stato tramite la quale si deduce che la transazione è FK01, il programma è SAP… e la dynpro è ….

Si può così memorizzare la prima riga della tabella sopra descritta che rappresenterà un record di testata della tabella SAP BDC. Successivamente si verificano quali campi della mappa devono essere riempiti dall’Utente e dedurne il nome tramite l’help sul campo (tastoF1) e le relative informazioni tecniche, riempiendo così un secondo record di tipo dettaglio della tabella BDC e così di seguito per tutti i campi della dynpro che devono essere riempiti.

Una volta che sono stati compilati tutti i campi della mappa per l’inserimento del fornitore occorre premere l’invio che introduce nella successiva dynpro per la memorizzazione dei dati anagrafici (Ragione sociale, indirizzo, …). La pressione dell’invio è simulata tramite l’inserimento del valore /00 nel campo di sistema BDC_OKCODE e la corrispondente creazione di un record di dettaglio, l’attivazione della nuova dynpro è simulata tramite un nuovo record di testata. Successivamente occorre creare il record di dettaglio per tutti i  campi della dynpro ai quali si intende assegnare un valore (Nome, Indirizzo,… ovviamente presenti sull’archivio sequenziale di input) cercando il relativo nome tramite le informazioni tecniche fornite dall’help sul campo. Al termine l’utente effettuerebbe il salvataggio del record premendo clic nell’icona apposita (cartella) oppure premendo il tasto funzionale F11; questa operazione è simulata con un record di dettaglio per il quale si imposta il valore /11nel campo BDC_OKCODE. A questo punto tutta la fase di inserimento di un singolo fornitore è stata completata e dovrà essere ripetuta per tutti i fornitori nuovi che sono presenti nell’archivio sequenziale di input. Pertanto la simulazione dell’inserimento di un fornitore, almeno fino a questo punto del processo deve dare luogo alla seguente sequenza di records nella tabella appositamente creata come immagine della tabella SAP BDC.

Codice TRANSAZIONE

Nome del programma

Dynpro

Begin

Nome del campo

Contenuto del campo

FK01

SAPMF02K

104

X

 

 

 

 

 

 

RF02K-KTOKK

Categ. Conto da input

 

 

 

 

BDC_OKCODE

‘/00’

 

SAPMF02K

110

X

 

 

 

 

 

 

LFA1-NAME1

Nome fornitore da input

Una volta identificata con estrema precisione la sequenza operativa necessaria all’inserimento di un fornitore e avendola registrata secondo lo schema indicato, il programmatore dovrà passare alla fase di realizzazione del programma il cui scopo sarà quello di creare i record relativi in tabella BDC. Normalmente si definisce una tabella interna avente struttura BDCDATA, si inseriscono in essa i records di testata e di dettaglio relativi ad un intero inserimento (cioè fino al record che simula il comando di salvataggio record), e si trasferisce in blocco il contenuto della tabella interna nella tabella BDC delle sessioni di BATCH-INPUT. Successivamente si ripulisce la tabella interna e si ripetono le medesime operazioni per tutti gli inserimenti che devono essere effettuati. Molto sinteticamente, nel caso di inserimento fornitori, il programma potrebbe avere uno schema analogo a quanto segue:

Per l’apertura della tabella BDC, lo spostamento dei dati dalla tabella interna alla tabella BDC e per la chiusura della BDC esistono delle funzioni (FUNCTION) già sviluppate da SAP che il programma dovrà richiamare secondo il formalismo previsto. In particolare si utilizzano le seguenti FUNCTION:

Uno schema analogo al precedente è valido nel caso in cui ogni record dell’archivio sequenziale in input contenga tutti i dati necessari a completare un processo di inserimento (cioè fino al salvataggio), il ciclo logico ovviamente cambia qualora risultasse necessaria la lettura di più records di input per completare la fase di aggiornamento (se ad esempio esistessero due diversi record consecutivi per uno stesso fornitore, caratterizzati da un differente tipo record e da diverso tracciato).

In fase di scrittura del programma di BATCH-INPUT si consiglia di effettuare sempre tutti i controlli possibili relativamente alle informazioni registrate nel file di input al fine di evitare interruzioni nella successiva esecuzione della sessione. Nel caso utilizzato come esempio, si potrebbe verificare che la categoria conto del fornitore sia uno dei valori compresi nella apposita tabella, che la nazione del fornitore sia prevista nella tabella nazioni,… Si consiglia inoltre di effettuare una lista dei record che sono inseriti nella tabella BDC, almeno per i primi programmi di BATCH-INPUT e fino a quando non si dispone di una adeguata dimestichezza con questo tipo di programmi.

Quando il programmatore ritiene (verificando la correttezza dei record caricati nella tabella BDC) di poter passare alla fase di esecuzione della sessione, allora deve passare alla transazione SM35 utilizzata per la gestione delle sessioni. In tale videata (raggiungibile anche tramite il percorso Sistema à Servizi à Batch input à Elaborare) occorre indicare il nome della sessione attribuita all’esecuzione del proprio programma di BATCH-INPUT e premere il tasto di invio.

Comparirà l’elenco di tutte le sessioni caricate nella tabella BDC con il nome indicato; il programmatore dovrà cancellare quelle più vecchie, lasciando solo l’ultima e richiederne l’esecuzione cliccando due volte nella corrispondente riga. Apparirà una successiva finestra che permetterà al programmatore di scegliere tra l’esecuzione in background o in foreground e tra altre opzioni. Scegliendo l’esecuzione in foreground, il sistema passerà alla simulazione delle attività associate ai records della tabella BDC caratteristici di quella sessione. Nell’esempio del caricamento fornitori illustrato nelle pagine precedenti, otterremo la simulazione della transazione FK01 con la comparsa della Dynpro 104 caratteristica del programma SAPMF02K di creazione fornitore e l’automatico riempimento del campo GRUPPO CONTI, tramite il relativo valore presente nel primo record dell’archivio sequenziale del file di input del BATCH-INPUT e successivamente trasferito nel campo FVAL della struttura BDCDATA caratteristica della tabella BDC. La pressione dell’invio o di un qualsiasi tasto funzionale (campo BDC_OKCODE) è simulata tramite il riempimento del riquadro bianco che compare nella parte superiore sinistra di tutte le videate di SAP.

L’esecuzione della sessione in foreground consiste semplicemente della successione di tutte le videate (con relativi riempimenti campi e pressione tasti funzionali vari) relative alla fase di caricamento fornitori, ripetuta per tutti i nuovi fornitori presenti in input. Se durante l’esecuzione si verifica un errore (ad esempio un gruppo conti valorizzato in maniera errata), la sessione non può procedere oltre e il programmatore deve interromperla inserendo nel riquadro dell’OKCODE uno dei valori indicati nell’help, che servono ad interrompere l’esecuzione della sessione, tenendo conto che gli aggiornamenti effettuati fino a quel momento sono ormai completati e non è possibile ritornare alla situazione precedente all’esecuzione della sessione.

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


indietro  
indice
  avanti