2009-10-28 23 views
5

Innanzitutto devo chiarire che sono non riferito alla società Business Objects recentemente acquisita da SAP. Invece mi riferisco agli oggetti business come definiti nel SAP Business Object Repository (BOR), ad es. SalesOrder (BUS2032).Come serializzare SAP Business Objects?

Quindi quale sarebbe l'approccio preferito per serializzare un tale oggetto di business nel sistema SAP in modo che un sistema di terze parti possa deserializzare l'oggetto business, inclusi tutti gli attributi che costituiscono un'istanza di un oggetto business specifico?

risposta

0

Non conosco un modo semplice per serializzare gli oggetti BOR. Tuttavia, in molti casi, SAP hanno fornito BAPI di che sono a distanza attivato Unità funzionali che possono essere chiamate tramite i vari connettori di SAP o sapone ecc

Prendendo BUS2032 come esempio:

  • transazione Run SWO1
  • Inserisci BUS2032
  • Fare clic sul pulsante Programma
  • Ricerca sulla call function 'BAPI

Troverete vari BAPI - in questo caso appartengono tutti al gruppo di funzioni 2032 a cui è possibile accedere tramite transazione SE80

Si noti che SAP non è sempre così accomodante nei loro standard di denominazione, ma più il modulo è maturo meglio è il possibilità che abbiano già reso disponibile una forma di RFC o di servizio Web per il modulo.

Naturalmente puoi anche scrivere il tuo RFC o il tuo servizio web, ma poi devi capire il modello di business e quali attributi sono necessari.

+0

Ciò consentirebbe la chiamante per ottenere t i dati fuori dal sistema R/3, ma sarebbero in un formato strutturato definito da SAP e non in un formato "serializzato". – Thorsten

+0

Vero: non conosco un modo semplice in cui SAP serializzerà gli oggetti BOR per te. – Esti

+0

I BAPI sono i metodi esposti da SAP che consentono di modificare un oggetto business. Un'altra caratteristica degli oggetti business sono gli eventi che consentono di notificare a un destinatario le modifiche a un oggetto business. Quest'ultimo sarebbe di maggiore interesse in questo contesto, ma per impostazione predefinita di solito notifica al destinatario solo le modifiche di stato e include solo i campi chiave degli oggetti business. Quando il ricevitore è un sistema remoto, questo non è sufficiente per ricreare l'oggetto business inclusi tutti i suoi attributi. – Tom

1

SAP Business Connector utilizza documenti XML per lo scambio di oggetti SAP (tra sistemi SAP e non SAP). Forse puoi trovare aiuto in this article.

+0

L'adattatore SAP WebMethods (noto anche come SAP Business Connector) funziona con il livello ALE, BAPI, RFC. Supporta i formati EDI e RPC proprietari di SAP. Supporta la serializzazione degli oggetti di business senza supporto. – Tom

3

Secondo this article devi utilizzare l'interfaccia IF_SERIALIZABLE_OBJECT. Immagino che il tuo oggetto business non abbia già implementato quell'interfaccia, quindi potresti doverlo estendere a un oggetto business personalizzato e implementare l'interfaccia IF_SERIALIZABLE_OBJECT.

2

Direi IDoc, ma vedo che non si desidera utilizzare le rappresentazioni generate SAP. Il che significa che dovrai scrivere la tua implementazione utilizzando ABAP. In poche parole:

  1. Recuperare i dati necessari utilizzando BAPIs e/o domande
  2. Stick tutti i dati su una o più classi personalizzate (zcl_sales_order, zcl_sales_order_position, etc.), che si progetta in base alle proprie esigenze
  3. serializzare l'istanza in una rappresentazione XML utilizzando l'istruzione call transformation (anche se questo conterrà ancora un po 'di formattazione specifica-SAP), o scrivere il proprio metodo di serializzazione (questo è probabilmente quello che ti serve)