Header orange

Creare e configurare un idoc in outbound con change pointers

Guida publicata da: Anonymous
Parole chiave: SAP, IDOC, outbound, change pointers, transazione, WE30, WE31, WE81, WE82, BD50, BD52, BD59, BD60, BD53, BD64, WE20.

Ecco una guida step-by-step semplice e descrittiva per creare da zero un idoc di outbound, che viene valorizzato quando in una certa anagrafica viene introdotta una modifica su un certo campo (change pointer).
Per ulteriori info consultare questo link.

-Sei uno sviluppatore ABAP? Salva il tuo codice (o la tua guida) su You-Specialist, lo troverai sempre disponibile su internet! Usa questo link, inserisci il codice nel form e noi lo pubblicheremo. Ricorda di dare una breve descrizione sull'utilizzo del codice o sulla sua funzione-


Step 1: introduzione

Supponiamo di voler sfruttare un certo idoc standard per inviare ad un sistema periferico gli aggiornamenti delle anagrafiche materiali (ma potrebbe trattarsi di clienti, fornitori, ecc...). In questa guida prenderemo come esempio l'idoc standard avente basic type "OILMAT05". Questo idoc contiene tutti i segmenti standard necessari a trasferire informazioni riguardanti un certo materiale. Inoltre a questo basic type può essere associato un Function Module standard che, nel momento in cui viene effettuata una modifica ad un certo materiale (transazione MM02), inserisce nella tabella bdcp2 un record "promemoria": il campo modificato, relativo allo specifico materiale, è da inviare mediante idoc non appena richiesto (vedremo poi come). Il FM standard in questione, si chiama MASTERIDOC_CREATE_SMD_MATMAS (ed è specifico per i materiali). Nell'esempio che faremo, supponiamo di aver necessità di trasferire ad un certo sistema esterno determinate informazioni per le quali però non esiste un segmento/campo adatto nell'idoc standard. Sarà quindi necessario creare un'estensione dell'idoc standard mediante segmenti aggiuntivi custom.

Step 2: gestione dell'idoc
Creiamo per prima cosa i segmenti custom mediante la transazione WE31 (si può fare riferimento alla guida "Creare configurare e inviare un IDOC di outbound in SAP R/3").
A questo punto creiamo l'estensione dell'idoc, mediante la transazione WE30. Occorrerà specificare il nome da dare all'estensione (ad esempio OILMAT05_2), il basic type di partenza (OILMAT05) ed i vari segmenti custom che si desidera aggiungere nell'idoc (creati al punto precedente).
Mediante la transazione WE81 creiamo un message type da associare al nostro idoc (per esempio ZOILMAT). L'associazione viene effettuata tramite la transazione WE82 (message type + basic type + extension).

Step 3: gestione dei change pointers
Andiamo in BD50 ("attivazione change pointers relativamente ad un message type", vedi tabella TBDA2) ed inseriamo in tabella il nostro message type, flaggandolo per renderlo attivo.
In BD52 (vedi tabella TBD62) inseriamo tutti i campi "sensibili" ovvero i campi, la modifica dei quali in MM02, porterà alla creazione dei change pointers. N.B.Il campo "KEY" è un campo speciale, che viene usato per far scattare la creazione dei change pointers nel momento in cui una nuova anagrafica viene creata (ad esempio quando viene creato un nuovo materiale).
Nella BD60 occorre inserire:
Message type = ZOILMAT
Reference Message Type = OILMAT
Format Function Module = MASTERIDOC_CREATE_SMD_MATMAS
Classifiable Object = MARA
ALE Object Type = MATNR
Nella BD53 possono essere specificate le "riduzioni": ovvero, se non vogliamo inviare determinati segmenti, o determinati campi all'interno di certi segmenti, basta disattivarli in questa transazione. ATTENZIONE: Una modifica in BD53 può portare alla automatica modifica della BD59, quindi salvarne il contenuto prima di introdurre nuove riduzioni in BD53.
Nella BD59 (vedi tabella TBD10) viene fatta l'assegnazione degli object types al message type.

Step 4: gestione del receiver
Dalla WE20 definiamo il partner (vedi tabella EDP21 per inbound parameters e tabella EDP13 per outbound parameters) e nella BD64 specifichiamo eventuali filtri.

Per inviare l'idoc, occorrerà lanciare il programma RBDMIDOC, specificando il message type usato.
Fatto!

-Questo contenuto ti sembra utile? Clicca il pulsante "Mi Piace" qui sotto!-



ADS LINK LARGO 2