SAP Esercitazione ABAP BDC (comunicazione dati batch).

Introduzione all'input batch

L'input batch viene generalmente utilizzato per trasferire dati da sistemi non R/3 a sistemi R/3 o per trasferire dati tra sistemi R/3.

Si tratta di una tecnica di trasferimento dati che consente di trasferire automaticamente i set di dati alle schermate appartenenti alle transazioni, e quindi ad un SAP sistema. L'input batch è controllato da una sessione di input batch.

Sessione di input batch

Raggruppa una serie di chiamate di transazione insieme a dati di input e azioni dell'utente. Una sessione batch input può essere utilizzata per eseguire una transazione di dialogo in batch input, in cui alcuni o tutti gli schermi vengono elaborati dalla sessione. Le sessioni di batch input vengono archiviate nel database come tabelle di database e possono essere utilizzate all'interno di un programma come tabelle interne quando si accede alle transazioni.

Punti da notare

  • BDI funziona eseguendo normali SAP transazioni proprio come farebbe un utente, ma esegue la transazione automaticamente.Tutte le convalide dello schermo e la convalida della logica aziendale verranno eseguite durante l'utilizzo di Batch Data Input.
  • È adatto per inserire grandi quantità di dati.
  • Non è richiesta alcuna interazione manuale

Metodi di batch input

SAP forniscono due metodi di base per trasferire i dati legacy nel sistema R/3.

  1. Metodo Batch Input classico.
  2. Metodo di transazione della chiamata.

Metodo Batch Input classico

In questo metodo un programma ABAP/4 legge i dati esterni sul SAP Sistema e archivi in ​​una sessione di batch input.

Dopo aver creato la sessione, è possibile eseguire la sessione per eseguire il file SAP transazione in esso.

Questo metodo utilizza i moduli funzionali BDC_ OPEN, BDC_INSERT e BDC_CLOSE

La sessione Batch Input può essere elaborata in 3 modi

  1. in primo piano
  2. sullo sfondo
  3. Durante l'elaborazione, con visualizzazione dell'errore

È necessario elaborare le sessioni batch input in primo piano o utilizzare la visualizzazione degli errori se si desidera testare il trasferimento dei dati.

Se desideri eseguire il trasferimento dei dati o testarne le prestazioni, dovresti elaborare le sessioni in background.

Punti da notare sul metodo Batch Input classico

  • Syncelaborazione cronica
  • Trasferisci dati per più transazioni.
  • Syncaggiornamento cronico del database.
  • Per ogni sessione viene generato un registro del processo di input batch.
  • La sessione non può essere generata in parallelo.

Metodo di transazione della chiamata.

In questo metodo ABAP/4 il programma utilizza l'istruzione CALL TRANSACTION USING per eseguire un'istruzione SAP transazione.

L'intero processo di input batch avviene online nel programma

Metodo di transazione della chiamata

Punti da notare:

  • Elaborazione più rapida dei dati
  • Elaborazione asincrona
  • Trasferisci i dati per una singola transazione.
  • Non viene generato alcun registro di elaborazione batch input.

Procedure di input batch

Procedure di input batch

In genere, per sviluppare Batch Input per la tua organizzazione, osserverai la seguente sequenza di passaggi

  1. Analisi dei dati legacy. Determinare come mappare i dati da trasferire nel file SAP Struttura. Prendere nota anche delle conversioni necessarie del tipo di dati o della lunghezza dei dati.
  2. Generare SAP strutture dati da utilizzare nei programmi di esportazione.
  3. Esportare i dati in un file sequenziale. Tieni presente che il formato dei caratteri è richiesto da quello predefinito SAP programmi di input batch.
  4. Se l' SAP i programmi BDC forniti non vengono utilizzati, codificare il proprio programma di input batch. Scegliere un metodo di input batch appropriato in base alla situazione.
  5. Elabora i dati e aggiungili al file SAP Sistema.
  6. Analizzare il registro del processo. Per il metodo CALL TRANSACTION, in cui non viene creato un registro adeguato, utilizzare i messaggi raccolti dal programma.
  7. Sulla base dei risultati dell'analisi del processo, correggere e rielaborare i dati errati.

Scrittura del programma BDC

È possibile osservare il seguente processo per scrivere il programma BDC

  1. Analizzare le transazioni per elaborare i dati di input batch.
  2. Decidere il metodo di input batch da utilizzare.
  3. Leggere i dati da un file sequenziale
  4. Eseguire la conversione dei dati o il controllo degli errori.
  5. Memorizzazione dei dati nella struttura di input batch, BDCDATA.
  6. Genera una sessione di batch input per il batch input classico oppure elabora i dati direttamente con l'istruzione CALL TRANSACTION USING.

Struttura dei dati di input batch

Dichiarazione della struttura dei dati di input batch

DATA : BEGIN OF < bdc table>

OCCURS <occurs parameters>.

INCLUDE STRUCTURE BDCDATA.

DATA:END OF <bdc table>.
nome campo Tipo Lunghezza Descrizione
PROGRAMMA CHAR 8 Piscina di moduli
DINPRO NUM 4 Numero Dynpro
DYNBEGIN CHAR 1 Avvio di una dinamica
FNAM CHAR 35 nome campo
FVAL CHAR 80 Valore del campo

L'ordine dei campi all'interno dei dati per una determinata schermata non ha alcun significato

Punti da notare

  • Durante la compilazione dei dati BDC assicurati di prendere in considerazione le impostazioni dell'utente. Ciò è particolarmente rilevante per la compilazione di campi che coinvolgono numeri (come quantità, importo). È l'impostazione dell'utente che decide quale sia il carattere di raggruppamento dei numeri. Ad esempio: un numero cinquantamila può essere scritto come 50,000.00 o 50.000,00 in base all'impostazione dell'utente.
  • Condensa il campo FVAL per i campi importo e quantità in modo che siano allineati a sinistra.
  • Tieni presente che tutti i campi che stai compilando tramite BDC devono essere trattati come campi di tipo carattere durante la compilazione della tabella Dati BDC.
  • In alcune schermate, quando si popolano valori in un controllo tabella utilizzando BDC, è necessario annotare il numero di righe presenti su una dimensione predefinita dello schermo e codice per altrettante righe. Se devi compilare più righe, devi codificare la funzionalità "Pagina giù" come faresti quando inserisci manualmente il controllo della tabella.
  • Il numero di righe che apparirebbero nello scenario precedente varierà in base alle dimensioni dello schermo utilizzato dall'utente. Quindi codifica sempre per le dimensioni dello schermo standard e fai in modo che il tuo BDC funzioni sempre con le dimensioni dello schermo standard, indipendentemente da come l'utente mantiene le dimensioni dello schermo.

Creazione di una sessione di input batch

  1. Aprire la sessione della sessione batch input utilizzando il modulo funzionale BDC_OPEN_GROUP.
  2. Per ogni transazione nella sessione:
  3. Compila BDCDATA con i valori per tutte le schermate e i campi elaborati nella transazione.
  4. Trasferisci la transazione alla sessione con BDC_INSERT.
  5. Chiudere la sessione di batch input con BDC_CLOSE_GROUP

Registratore di input batch

Il registratore di input batch (Sistema > Servizi > Input batch > Registratore) registra le transazioni immesse manualmente e crea una sessione di input batch che può essere eseguita in seguito utilizzando SM35.

Registratore di input batch

  • Avviare il registratore batch input selezionando il pulsante Registrazione dalla schermata iniziale batch input.
  • Il nome della registrazione è un nome definito dall'utente e può corrispondere al nome della sessione batch input che può essere creata dalla registrazione.
  • Entrare in un SAP transazione e iniziare a registrare la transazione.
  • Dopo aver completato la pubblicazione di a SAP transazione, puoi scegliere Ottieni transazione e salva per terminare la registrazione o Transazione successiva e registrare un'altra transazione.
  • Una volta salvata la registrazione è possibile creare una sessione batch input dalla registrazione e/o generare un programma batch input dalla registrazione.
  • La sessione batch input creata ora può essere analizzata come qualsiasi altra sessione batch input.
  • Il programma generato dalla funzione del registratore batch input è un potente strumento per il programmatore dell'interfaccia dati. Fornisce una base solida che può poi essere modificata in base alle esigenze del cliente.