Creazione Batch Input
Il Batch Input è uno strumento di
immissione o modifica massiva di dati su SAP. Esso consiste nella registrazione
dei comandi di una transazione in modo tale da simulare l’attività di
inserimento dati manuale dell’utente. Questa registrazione sarà poi automaticamente
tradotta in codice abap ed utilizzata per effettuare inserimento o modifica di
nostri dati in maniera massiva (ad esempio leggendo i dati da un file di
input).
Supponiamo di voler creare un
batch input relativo alla transazione ABMA
(Ammortamento Manuale – Modulo FI-AA Cespiti), per fare ciò si usa usare la transazione SHDB.
Premere il pulsante “Nuova registrazione”
Inserire il nome della
registrazione ad esempio ZAMBA, il codice transazione da registrare, in questo caso ABMA e premere il pulsante “Avvia Registrazione”
Vengono registrate tutte le schermate
della transazione AMBA, anche quelle in cui viene richiesta un’operazione da
parte dell’utente. Al termine della registrazione, viene visualizzata la
seguente schermata:
Nelle colonne indicate dal Nr. 1 sono riportati il nome del programma e la dynpro(schermata)
richiamata.
Nella colonna indicata dal Nr. 2 sono riportati i nomi tecnici
dei campi presenti nella dynpro richiamata.
Nella colonna indicata dal Nr. 3 sono riportati i valori presenti nei campi al momento della
registrazione oppure il codice identificativo del comando eseguito.
A questo punto salvare la registrazione premendo il
pulsante “SALVARE”, e verrà visualizzato il messaggio “Registrazione salvata”.
Poi cliccare il pulsante “Indietro” per terminare.
Nella schermata successiva, comparirà la nostra
registrazione:
Per convertire la registrazione effettuata in un programma
, selezionare la riga e premere il pulsante “Programma” , inserire il nome del programma da creare, e
clicchiamo su pulsante verde (ok).
Salvare ed attivare il programma.
Trasportare la registrazione in un altro ambiente SAP
ESPORTARE
Nell’ambiente in cui si è creata la registrazione del
Batch Input richiamare la transazione:
SE38: RSBDCDAT.
Selezionare l’opzione “Esportare”
Inserire il nome della registrazione effettuare
Ed inserire il percorso ed il nome del file dove copiare
la registrazione:
e premere F8.
IMPORTARE
Nell’ambiente in cui si deve copiare la registrazione del
Batch Input richiamare la transazione:
SE38: RSBDCDAT.
Selezionare l’opzione “Importare”
Inserire il nome della registrazione effettuare
Ed inserire il percorso ed il nome del file dove copiare
la registrazione:
e premere F8.
Andando nella transazione SHDB ritroviamo
il batch input importato.
Generazione di una sessione di Batch Input
Per generare una sessione di Batch
Input, con il flag “Mantieni sessione di batch” impostato, bisogna aggiungere
il seguente codice prima del richiamo di tutte le dynpro che simulano il batch
input:
PERFORM: open_group. “Questa perform apre la sessione di batch input.
PERFORM: fill_bdcdata. “Questa perform contiene tutte le dynpro da chiamare
perform bdc_insert using 'FB01'.
PERFORM: close_group. “Questa perform chiude la sessione di batch input.
*&---------------------------------------------------------------------*
*& Form OPEN_GROUP
*&---------------------------------------------------------------------*
PERFORM: fill_bdcdata. “Questa perform contiene tutte le dynpro da chiamare
perform bdc_insert using 'FB01'.
PERFORM: close_group. “Questa perform chiude la sessione di batch input.
*&---------------------------------------------------------------------*
*& Form OPEN_GROUP
*&---------------------------------------------------------------------*
FORM open_group .
DATA: lv_usr TYPE apqi-userid,
ss_name TYPE apqi-groupid,
lv_usr = sy-uname.
ss_name = ‘Z_FB01’
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
group = ss_name
keep = 'X'
user = lv_usr
EXCEPTIONS
client_invalid = 1
destination_invalid = 2
group_invalid = 3
group_is_locked = 4
holddate_invalid = 5
internal_error = 6
queue_error = 7
running = 8
system_lock_error = 9
user_invalid = 10
OTHERS = 11.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR gv_group.
gv_group = ss_name.
ENDFORM. " OPEN_GROUP
DATA: lv_usr TYPE apqi-userid,
ss_name TYPE apqi-groupid,
lv_usr = sy-uname.
ss_name = ‘Z_FB01’
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
group = ss_name
keep = 'X'
user = lv_usr
EXCEPTIONS
client_invalid = 1
destination_invalid = 2
group_invalid = 3
group_is_locked = 4
holddate_invalid = 5
internal_error = 6
queue_error = 7
running = 8
system_lock_error = 9
user_invalid = 10
OTHERS = 11.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR gv_group.
gv_group = ss_name.
ENDFORM. " OPEN_GROUP
*&---------------------------------------------------------------------*
*& Form FILL_BCDDATA
*&---------------------------------------------------------------------*
FORM
fill_bdcdata.*& Form FILL_BCDDATA
*&---------------------------------------------------------------------*
************************************************************************
*& E’ un esempio, non si riferisce proprio alla transazione FB01
************************************************************************
REFRESH bdcdata.
PERFORM bdc_dynpro USING 'SAPMF05R' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05R-AUGBL'.
PERFORM bdc_field USING 'BDC_OKCODE' '=RAGL'.
PERFORM bdc_field USING 'RF05R-AUGBL' wa_datatab-ndoc.
PERFORM bdc_field USING 'RF05R-BUKRS' 'XXX'.
PERFORM bdc_field USING 'RF05R-GJAHR' wa_datatab-eser.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DBC_INSERT
*&---------------------------------------------------------------------*
FORM
DBC_INSERT USING TCODE.*& Form DBC_INSERT
*&---------------------------------------------------------------------*
CALL
FUNCTION 'BDC_INSERT'
EXPORTING TCODE = TCODE
TABLES DYNPROTAB = BDCDATA.
If
sy-subrc = 0.EXPORTING TCODE = TCODE
TABLES DYNPROTAB = BDCDATA.
WRITE: / 'BDC_INSERT'(I03), TCODE,
'returncode:'(I05), SY-SUBRC,
'RECORD:', SY-INDEX.
Endif.
REFRESH BDCDATA.ENDFORM.
*&---------------------------------------------------------------------*
*& Form CLOSE_GROUP
*&---------------------------------------------------------------------*
FORM close_group .
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE 'UNABLE TO CLOSE BDC SESSION !' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM.
*& Form CLOSE_GROUP
*&---------------------------------------------------------------------*
FORM close_group .
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE 'UNABLE TO CLOSE BDC SESSION !' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM.
Eseguire la sessione di Batch Input
Per poter eseguire la sessione di batch input creata in precedenza richiamare la transazione SM35, e selezionare la nostra sessione da eseguire che in questo caso è Z_FB01.EBOOK: le mie guide sono visualizzabili cliccando sui link:
1. SAP EWM (Extended Warehouse Management)
3. SAP VIM (Vendor Invoice Management)
1. SAP EWM (Extended Warehouse Management)
3. SAP VIM (Vendor Invoice Management)
SE MI CONTATTATE IN PRIVATO, PAGATE LA META' DEL PREZZO DI AMAZON, E POTETE SCEGLIERE IL FORMATO WORD o PDF.
>>> RECENSIONI DEI LIBRI su Amazon Kindle <<<
Ebook: SAP CDS: https://www.amazon.it/dp/B0B9BD1RN3#customerReviews
Ebook: SAP MM: https://www.amazon.it/dp/B0C3MKD9BR#customerReviews
Ebook: SAP MII: https://www.amazon.it/dp/B0C4392MY9#customerReviews
Ebook: SAP VIM: https://www.amazon.it/dp/B0C6FBK8QN#customerReviews
Ebook: SAP MM: https://www.amazon.it/dp/B0C3MKD9BR#customerReviews
Ebook: SAP MII: https://www.amazon.it/dp/B0C4392MY9#customerReviews
Ebook: SAP VIM: https://www.amazon.it/dp/B0C6FBK8QN#customerReviews
Ebook: SAP EWM: https://www.amazon.it/dp/B0CL6TXP1V#customerReviews
Grazie! Mi è stato molto utile.
RispondiElimina