2009-10-28 23 views
5

Primero tengo que aclarar que soy no haciendo referencia a la empresa Business Objects adquirida recientemente por SAP. En cambio, me refiero a los objetos comerciales tal como se definen en SAP Business Object Repository (BOR), p. SalesOrder (BUS2032).¿Cómo serializar SAP Business Objects?

Entonces, ¿cuál sería el enfoque preferido para serializar un objeto comercial en el sistema SAP para que un sistema de terceros pueda deserializar el objeto comercial incluyendo todos los atributos que componen una instancia específica de objeto comercial?

Respuesta

0

No conozco una forma sencilla de serializar objetos BOR. Sin embargo, en muchos casos SAP han proporcionado BAPI de que estén activadas a distancia módulos de función que se pueden llamar a través de los diferentes conectores de SAP o jabón, etc.

Tomando BUS2032 como ejemplo:

  • transacción Run SWO1
  • Enter BUS2032
  • clic en el botón Programa
  • Buscar en call function 'BAPI

Encontrará varios BAPI; en este caso, todos pertenecen al grupo de funciones 2032 al que se puede acceder a través de la transacción SE80

Tenga en cuenta que SAP no siempre es así de acomodadizo en sus estándares de nombres, pero cuanto más maduro sea el módulo, mejor será el posibilidad de que ya hayan hecho algún tipo de RFC o servicio web disponible para el módulo.

Por supuesto, también puede escribir su propio RFC o servicio web, pero luego debe entender el modelo de negocio y qué atributos son necesarios.

+0

esto permitiría a la llamador para obtener t Los datos del sistema R/3, pero estarían en un formato estructurado definido por SAP y no en un formato "serializado". – Thorsten

+0

Es cierto: no conozco una forma sencilla de que SAP serialice los objetos BOR por usted. – Esti

+0

Los BAPI son los métodos expuestos por SAP que permiten alterar un objeto comercial. Otra característica de los objetos comerciales son los eventos que permiten notificar a un receptor sobre los cambios en un objeto comercial. Lo último sería de mayor interés en este contexto, pero por lo general solo notifica al receptor acerca de los cambios de estado solamente e incluye solo los campos clave de objetos comerciales. Cuando el receptor es un sistema remoto, esto es insuficiente para recrear el objeto comercial, incluidos todos sus atributos. – Tom

1

SAP Business Connector utiliza documentos XML para intercambiar objetos SAP (entre sistemas SAP y no SAP). Tal vez pueda encontrar ayuda en this article.

+0

El adaptador SAP webMethods (también conocido como SAP Business Connector) funciona en la capa ALE, BAPI, RFC. Es compatible con los formatos patentados EDI y RPC de SAP. No * admite la serialización de objetos de negocio listos para usar. – Tom

3

De acuerdo con this article, necesita utilizar la interfaz IF_SERIALIZABLE_OBJECT. Supongo que su objeto comercial aún no implementa esa interfaz, por lo que es posible que deba extenderla a un objeto comercial personalizado e implementar allí la interfaz IF_SERIALIZABLE_OBJECT.

2

Yo diría IDocs, pero veo que no quiere usar las representaciones generadas por SAP. Lo que significa que tendrá que escribir su propia implementación usando ABAP. En pocas palabras:

  1. recuperar los datos que necesita el uso de BAPIs y/o consultas
  2. palillo de todos los datos en una o más clases personalizadas (zcl_sales_order, zcl_sales_order_position, etc.), que se diseña de acuerdo a sus necesidades
  3. Serialice la instancia en una representación XML utilizando la instrucción call transformation (aunque esto todavía contendrá algún formato específico de SAP), o escribir su propio método de serialización (esto es probablemente lo que necesita)