0% encontró este documento útil (0 votos)
17 vistas22 páginas

TB1300 04 DI API Business Objects

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1/ 22

TB1300:

API de interfaz de datos del SDK de SAP Business


One: objetos comerciales
julio, 2019

PUBLIC
Objetos de negocio: objetivos del tema

Después de completar este tema, podrá:


 Describir qué son los objetos de negocio
 Enumere los métodos más importantes de objetos comerciales.
 Explicar cómo leer o escribir un objeto comercial desde o hacia un archivo XML.
 Diseñar una transacción que involucre más de un objeto comercial.
 Explicar cómo recibir notificaciones sobre cambios en los objetos comerciales.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 2


Objetos comerciales: descripción general

Objetos de negocio:
 Representa la funcionalidad de la aplicación SAP Business One.
 Siga la lógica empresarial adecuada y no comprometerá la integridad de los
datos.
 Cualquier acceso a datos mediante objetos comerciales es independiente de la
plataforma y la versión.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 3


Objetos de Negocio: Arquitectura

Objeto:
<Objeto comercial>

Métodos :
Agregar un nuevo objeto
+Agregar
+ Obtener por clave Obtener el objeto por clave
+Eliminar Retire el objeto (si es posible)
+ Guardar XML Guarde el objeto como archivo XML
+Actualizar Actualizar el objeto
Propiedades:
+ Código de tarjeta Establece o devuelve el nombre del cliente o proveedor
Objetos secundarios:
+ Navegador Permite la navegación / navegación encima registros
+ Campos de usuario Una colección de objetos de campos, que son campos definidos por el usuario.
+ Líneas_documento Representa las entradas de línea de un documento.
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 4
Objetos de negocio: Arquitectura – Objetos secundarios

Objeto:
< Objeto hijo >

Métodos :
+Agregar Agregar un nuevo registro
+Establecer línea actual Establecer la línea actual
+Eliminar Eliminar un registro (disponible para la mayor parte de los objeto

Propiedades:

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 5


Objetos comerciales: socios comerciales

 Representa el registro de socios comerciales en


SAP Business One.

 Utilice este objeto para agregar, buscar o


actualizar socios comerciales

 También puede usarlo para manejar campos


adicionales definidos por el usuario.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 6


Objetos comerciales: ejemplo: agregar socio comercial

'Primero conéctese a la base de datos (consulte el ejemplo de inicio de sesión)



'Algunas variables:
Dim oBP como SAPbobsCOM.BusinessPartners
Dim lRetCode , lErrCode como entero
Oscuro serrMsg como cadena

' Preparar objeto oBP vacío:


oBP = oCompany.GetBusinessObject ( SAPbobsCOM.BoObjectTypes.oBusinessPartners )

oBP.CardCode = "C08154711"
oBP.CardName = "James Tiberius Kirk"
oBP.CardType = SAPbobsCOM.BoCardTypes.cCustomer
'…

' Agregamos el nuevo BP a la base de datos


lRetCode = oBP.Agregar ()

Si lRetCode <> 0 Entonces


oCompany.GetLastError ( lErrCode , serrMsg )
MessageBox.Show ("Error: " sErrMsg + “ ; Código: “ + lErrCode )
Terminara si

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 7


Objetos comerciales: ejemplo: objeto secundario

'Primero conéctese a la base de datos (consulte el ejemplo de inicio de sesión)


'...
' Variables:
Atenuar oBP como SAPbobsCOM.BusinessPartners = _
oCompany.GetBusinessObject ( SAPbobsCOM.BoObjectTypes.oBusinessPartners )
Atenuar lRetCode como número entero

Si oBP.GetByKey ( " C08154711 " ) = True entonces ' aquí usamos un registro existente...
' Primera linea es siempre preparado (en cualquier negocio objeto eso tiene líneas …)
oBP.ContactEmployees.Name = "Juan Cash “

' Preparar / declarar la segunda línea ... ( se posiciona automáticamente en una nueva línea)
oBP.ContactEmployees.Add () ' No en la base de datos aquí; por lo tanto, funcionará siempre ...
oBP.ContactEmployees.Nombre = " John Walker "

' Tenga en cuenta: En caso de que necesite posicionarse en una línea particular...
' oBP.ContactEmployees.SetCurrentLine (<número de línea basado en 0>)

' ¡ Escribe los cambios en la base de datos ahora…!


lRetCode = oBP.Actualización ()
Si lRetCode <> 0 Entonces

Terminara si
Demás
MessageBox.Show (“Socio comercial C08154711 no encontrado ! ” )
Terminara si

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 8


Objetos comerciales: artículos

 Representa el registro de artículos del inventario


maestro.

 Le permite agregar, actualizar o buscar registros


de artículos

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 9


Objetos comerciales: documentos

 El objeto Documentos representa el


encabezado de los documentos de
compras y ventas de SAP Business One.

 Contiene los datos del encabezado


maestro del documento, como CardCode ,
dirección, fecha del documento, total del
documento, etc.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 10


Documentos: Ejemplo: crear un pedido

Atenuar oOrderDoc como SAPbobsCOM.Documents 'Añadiendo el nuevo documento de pedido


oOrderDoc = oCompañía.GetBusinessObject _ Atenuar RetVal mientras sea largo
(SAPbobsCOM.BoObjectTypes.oOrders)

' establece el código de socio comercial


'Añadir pedido a la base de datos
oOrderDoc.CardCode = "C20000" RetVal = oOrderDoc.Add()
' establece la fecha de vencimiento de los documentos - obligatorio
oOrderDoc.DocDueDate = Fecha ' Comprobar si el método Agregar tuvo éxito
Si RetVal <> 0 entonces
' Primera línea (no es necesario agregar línea) oCompañía.GetLastError(lErrCode, ErrMsg)
oOrderDoc.Lines.ItemCode = "A00001"
MessageBox.Show(lErrCode & " " & sErrMsg)
oOrderDoc.Lines.Cantidad = 1
Terminara si

' Segunda linea


'primero prepara una línea vacía para la segunda línea
oOrderDoc.Lines.Add()

oOrderDoc.Lines.ItemCode = "A00002"
oOrderDoc.Lines.Cantidad = 1

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 11


Documentos: Ejemplo: crear una factura (según el pedido)

' Crear factura ' Segunda linea; primero: preparar la línea


Sub CrearDocumentoFactura () oInvoiceDoc.Lines.Add ()
' Obtenga el DocNum para el nuevo pedido agregado en la diapositiva
antes... oInvoiceDoc.Lines.BaseType = _
Dim OrdCodeStr como cadena SAPbobsCOM.BoObjectTypes.oOrders
oCompany.GetNewObjectCode ( OrdCodeStr ) oInvoiceDoc.Lines.BaseEntry = CInt ( OrdCodeStr )
'Obtiene el objeto de negocio requerido oInvoiceDoc.Lines.BaseLine = 1
Dim oInvoiceDoc como SAPbobsCOM.Documents oInvoiceDoc.Lines.TaxCode = "LA"
oInvoiceDoc = oCompañía.GetBusinessObject
( SAPbobsCOM.BoObjectTypes.oFacturas )
'Agregar factura a la base de datos
' establece el código de socio comercial
RetVal = oInvoiceDoc.Agregar
oInvoiceDoc.CardCode = "C20000"
' establece la fecha de vencimiento del documento - obligatorio
' Comprobar si el método Agregar tuvo éxito
oInvoiceDoc.DocDueDate = Fecha
Si RetVal <> 0 Entonces
' Primera línea (siempre ahí...)
oCompany.GetLastError ( lErrCode , serrMsg )
oInvoiceDoc.Lines.BaseType = SAPbobsCOM.BoObjectTypes.oOrders
MessageBox.Show ( lErrCode & " " & sErrMsg )
oInvoiceDoc.Lines.BaseEntry = CInt ( OrdCodeStr )
Terminara si
oInvoiceDoc.Lines.BaseLine = 0
Subtítulo final
oInvoiceDoc.Lines.TaxCode = "LA"
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 12
Otros objetos comerciales: usuarios y registro de acceso

Objeto de usuario Objeto secundario UserActionRecord


 Representa el registro de usuario  Detalles de acceso del usuario
 Le permite agregar, actualizar o buscar registros de
usuarios
 Gestionar la autorización y asignación de sucursales.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 13


Trabajar con XML: motivación

Una técnica para guardar y cargar datos.

Ventajas de XML:
 Habilite el intercambio de datos a gran escala entre la base de datos de la empresa SAP
Business One y sistemas externos.
 Estándar
 Barato
 Conveniente
 Simple

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 14


Trabajar con XML: métodos y propiedades relevantes

Objeto social
■ oCompany.GetBusinessObjectFromXML ( FilePath_OR_XMLString , Índice)
■ oCompañía.GetXMLelementCount ( FilePath_OR_XMLString )
■ oCompany.GetXMLobjectType ( FilePath_OR_XMLString , Índice)
■ oCompany.GetBusinessObjectXmlSchema ( Tipo de objeto )

Objetos de negocio
■ oBusinessObject.SaveXML ( FilePath_OR_XMLString )
■ oBusinessObject.Browser.ReadXML ( FilePath_OR_XMLString )
Utilice ReadXML para actualizar un archivo existente objeto

Tipo de exportación XML : especifica los tipos para exportar datos, por ejemplo, para
exportar datos de solo lectura.
■ oCompany.XmlExportType = SAPbobsCOM.BoXMLExportTypes.xet_ExportImportMode

Trabajar con XML como una cadena XML (no como un archivo XML)
■ oCompany.XMLAsString = Verdadero

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 15


Trabajando con XML: Eliminar línea/subobjeto por XML

Método ActualizaciónDesdeXML

• Recibe y procesa el contenido XML.

• Puede eliminar líneas de subobjetos del objeto a través del archivo XML.

Disponible para
 Objeto de artículos
 Objeto BusinessPartners
 Objeto de documentos
 Objeto ProductTrees

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 16


Trabajar con XML: Ejemplo – SaveXML

'Primero conéctese a la base de datos...

Atenuar oBP como SAPbobsCOM.BusinessPartners = _


oCompañía.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners)

oCompany.XmlExportType = SAPbobsCOM.BoXmlExportTypes.xet_ExportImportMode

If ( oBP.GetByKey("C20000 “ ) = False ) Then


MessageBox.Show("Error al encontrar el socio comercial")
De lo contrario
oBP.SaveXml ("c:\temp\BP_" + oBP.CardCode + ".xml")
Terminara si

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 17


Trabajar con XML: ejemplo: obtener un socio comercial de XML

Dim sFileName As String = "c:\temp\BPs.xml “


Dim lEcount , ii As Long

'Obtiene el número de objeto comercial en el archivo...


l Ecount = oCompany.GetXMLelementCount ( sFileName )

'Recorre los objetos; al encontrar el primer BusinessPartner


'objeto: cárgalo, agrégalo a la base de datos.
Para ii = 0 Para lEcount –1
Si oCompany.GetXMLobjectType ( sFileName , ii) = _
SAPbobsCOM.BoObjectTypes.oBusinessPartners Entonces

'” Leer ” los datos del objeto comercial en el objeto...


' Tenga en cuenta:
' ¡ Si el formato no es correcto, es posible que se produzca una excepción!
oBP = oCompany.GetBusinessObjectFromXML ( sFileName , ii)

iRetVal = oBP.Agregar ()
' ...manejar el error...
Finalizar si es
siguiente ii

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 18


Manejo de transacciones: descripción general

La API de la interfaz de datos admite dos tipos diferentes de transacciones:

Transacción única (predeterminada)


 Cada operación de datos realizada en un objeto comercial inicia una transacción.
 Dependiendo del resultado (éxito o fracaso), el sistema emite automáticamente una confirmación o una
reversión.

Transacción global
 Permite realizar varias operaciones de datos y luego una confirmación o reversión completa según criterios
específicos.
 Si alguna de las operaciones de datos falla, la transacción global se revertirá por completo
 El inicio y el final de una transacción global se pueden gestionar utilizando el objeto Empresa:

oCompany.StartTransaction ()
booleano oCompany.InTransaction
oCompany.EndTransaction ([ wf_RollBack / wf_Commit ])

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 19


Manejo de transacciones: diagrama de flujo de transacciones globales

Iniciar transacción

Ejecutar una lista de


operaciones en la
base de datos.

¡NO! ¿TODAS ¿Sí? …


las operaciones entonces aún
Al menos una operación falló tuvieron éxito? puedes elegir:

La reversión automática ya
ocurrió, la transacción ha sido
¿Retrocede ¿Comprom
cancelada
r? eterse?
Detener error de
procesamiento y manejo !
Finalizar transacción
Tenga en cuenta : la
propiedad " InTransaction " del
objeto Compañía contiene
información sobre si la
transacción global aún está
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC activa. 20
Cómo recibir notificaciones sobre cambios en objetos comerciales

Desafío
■ No hay notificaciones basadas en datos de DI API (solo eventos FormData en la API de UI; consulte la presentación de la API
de UI)
■ ¡No se permite agregar activadores SQL en el nivel de la base de datos!

Solución
■ Habilite la notificación de transacciones en SAP Business One (Administración > Inicialización del sistema > Configuración
general > Servicio).
Esto se puede lograr estableciendo la propiedad EnableTransactionNotification en el objeto CompanyInfo .
■ Inserte el objeto requerido en la tabla <companyDB> .CTNS .
Nota
Consumir los eventos de SBOCOMMON.SEVT SAP
13 2

■ Después de manejar los eventos, limpie la entrada de SBOCOMMON.SEVT 04 84

Observaciones importantes:
■ El marco de integración para SAP Business One también puede utilizar la tabla
SBOCOMMON.SEVT . El servicio EventSender limpia la tabla automáticamente .
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 21
Objetos comerciales: ejercicio

Ahora deberías:
 Trabajar con Business Objects en general
 Utilice las capacidades XML
 Practique el manejo de transacciones junto con los ejercicios al final de esta unidad.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 22

También podría gustarte