Argentis Api es una solución creada para facilitar la integración de distintas aplicaciones externas con SAP B1, habilitando mediante Servicios provisto por el DIServer, encapsulados en Argentis Api para un más amigable consumo.
· Bussines Partners
· Inventory Transfer Request
· Inventory Transfer
· Invoice
· Purchase Order
· Purchase Quotation
· Purchase Request
· Purchase Invoice
· Sales Order
· Sales Quotation
· Incomming Payment
· Outgoing Payment
En todos estos servicios expuestos, se pueden realizar solamente las acciones de Alta y Modificaciones.
El usuario del tipo Api es el usuario con el cual se generar el token de acceso, sin este token no es posible utilizar los servicios provistos. La forma de generar este usuario es mediante el WebPortal, una vez ingresado al mismo se tiene que realizar los siguientes pasos.
a) Ir a General Setting -> Users
b) Luego ir a “Add User”
c) Ingrese el Nombre de Usuario con su Password, seleccione el tipo de Usuarios -> Api, y presione Ok
d) Al volver a la lista busque el usuario creado y asócielo con la compañía con la que usted desde que ese usuario y la Api trabaje.
e) Una vez ingresado a “Companies”, ingrese el password del usuario SAP con que se registraran las acciones de la Api y oprima “Add to List”:
Siguiendo estos sencillos pasos ya estaría habilitado el usuario para poder usar la Api.
Para las pruebas que se realizaran a continuación, se puede utilizar cualquier programa con el cual se pueda realizar peticiones Http, en este caso, se está utilizando Advanced Rest Client (es una extensión de Chrome).
Como ya mencionamos anteriormente sin este Token, no se puede acceder a los distintos servicios de la Api, la duración del mismo es de 60 minutos, pasado este en necesario volver a Generarlo.
Llamada al Servicio:
A – Url del servicio, esta es de acuerdo como cada uno instale y configure el servicio en su IIS, en este caso es “integrationapi.com.ar”.
B – Usuario y Password generados en los pasos anteriores.
Respuesta de llamada:
A – Token Generado, el cual enviaremos a los demás servicio para poder consumirlos.
B – Session generada en DiServer
C – Fecha de expiración del token
Url para llamar al servicio de Altas de “Bussines Partners”:
El parámetro en la url “pId”, relacionara el nuevo “BP” en SAPB1 con el de la aplicación externa con la que se quiera integrar.
A – Token generado en el paso anterior
B – Objeto en formato Json para Agregar (ver).
Repuesta del Servicio:
Cabe aclarar que en caso de no poder realizar la inserción del BP en SAPB1, nos devolverá el motivo por el cual no lo ha podido hacer, este mensaje es nativo de la DIServer.
Url para llamar al servicio de Actualizacion de “Bussines Partners”:
La única diferencia al paso anterior, es solamente en la estructura del Json que se le envía, hay que enviarle la estructura sin el "CardCode".
Json utilizado para el ejemplo (ver)
La generación de los documentos es la misma para todos los tipos de documentos provisto en la Api, solo es necesario especificar el tipo de documento que deseemos agregar y/o modificar. A continuación se explicar uno de los documentos y para los demás se proveerá del formato de la url como así también el Json necesario para poder utilizarlo.
Url para la creación:
El parámetro pDocuments es el que especifica el tipo de documento con el cual estamos interactuando, en este caso es “SalesOrder”
A - En “DocEntry” se debe ingresar el Id con el cual se vinculara la SO generada en SAPB1 con la Aplicación externa.
B – Id del BP de la aplicación externa ya generado y vinculado en SAPB1.
El resultado en caso que este todo correctamente es “Ok”, en el caso de suceder algun tipo problema, devolverá el error con su descripción.
Url para la Actualización:
El Json enviado, posee el mismo formato y especificaciones que en el caso de la creación(ver).
Como se mención anteriormente, la utilización de los servicios de los documentos es la misma para todos, son basta con cambiar al tipo de documento que queremos utilizar, a continuación se proveerá las distintas Url y su Json para ser consumidos.
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=SalesQuotation
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=SalesQuotation
Json -> ver
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=InventoryTransfer
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=InventoryTransfer
Json -> ver
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=InventoryTransferRequest
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=InventoryTransferRequ
Json -> ver
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=Invoice
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=Invoice
Json -> ver
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=PurchaseOrder
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=PurchaseOrder
Json -> ver
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=PurchaseQuotation
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=PurchaseQuotation
Json -> ver
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=PurchaseRequest
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=PurchaseRequest
Json -> ver
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=PurchaseInvoice
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=PurchaseInvoice
Json -> ver
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=IncommingPayment
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=IncommingPayment
Json -> ver
Alta:
http://integrationapi.com.ar/ArgentisApi/AddDocument?pDocuments=OutgoingPayment
Modificación:
http://integrationapi.com.ar/ArgentisApi/UpdateDocument?pDocuments=OutgoingPayment
Json -> ver
Par los casos de Incomming y Outgoing payment en cada una de las líneas el campo “DocEntry”, hay que indicar la invoice a la cual el documento se hace referencia (es el id de la provista por la aplicación externa y la cuanl ya se encuentra vinculada a una en SAPB1).