API para actualizar DFF de recibos en Oracle Fusion Cloud

En ocasiones necesitamos actualizar datos para muchos registros y para evitar hacer esto uno por uno, Oracle tiene disponibles herramientas como SOAP Web Services y REST API Services.

En esta publicación vamos hacer una actualización de Flex Field para recibos de AR (pagos de clientes en Cuentas por Cobrar) .

Primero vamos a la liga de documentacion https://docs.oracle.com/en/ y ahí buscamos en este caso la sección de finanzas

Luego seleccionamos Integrate

Seleccionamos Review  SOAP Web Services

Dentro buscamos la sección de Descriptive FlexField



Vamos a utilizar la URL que viene en esa pantalla


Service WSDL URL: https://servername/fscmService/ErpObjectDFFUpdateService?WSDL


Vamos a entrar a Postman y desde ahí vamos armar el xml , primero vamos agregar un request


Luego vamos a poner el tipo Post y vamos a poner la URL que vimos dos pasos atrás, solo tengan cuidado de cambiar el nombre de su servidor URL: https://servername/fscmService/ErpObjectDFFUpdateService?WSDL


Después vamos agregar nuestras credenciales de acceso a Oracle , en la sección de authorization , en la parte de Body vamos a marcar raw y XML.



Y en Body vamos a colocar el siguiente código de XML


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/" xmlns:erp="http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/">
   <soapenv:Header/>
   <soapenv:Body>
      <typ:updateDffEntityDetailsAsync>
         <!--Optional:-->
         <typ:operationMode>single</typ:operationMode>
         <!--Optional:-->
         <typ:object>
            <!--Optional:-->
            <erp:EntityName>Receivables Invoice Cash Receipt</erp:EntityName>
            <!--Optional:-->
            <erp:ContextValue>Frutas</erp:ContextValue>
            <!--Trx Number:-->
          <erp:UserKeyA>{{NumeroPago}}</erp:UserKeyA>
            <erp:UserKeyB>{{IDPago}}</erp:UserKeyB>
            <!--Optional:-->
            <erp:DFFAttributes>{"ATTRIBUTE8":"Manzana","ATTRIBUTE3":"Melon","ATTRIBUTE2":"Sandia"}</erp:DFFAttributes>
         </typ:object>
         <!--<typ:callbackURL></typ:callbackURL>-->
      </typ:updateDffEntityDetailsAsync>
   </soapenv:Body>
</soapenv:Envelope>

Aquí lo importante es el campo de Contexto, en este caso dice Frutas, ustedes deben cambiarlo por el contexto que necesiten.

Luego en la parte de DFFAttributes, hay que colocar el nombre del campo que queremos actualizar luego : y el valor que queremos colocar.

En este caso estamos colocando 2 variables NumeroPago y IDPago esto es para poder armar un archivo CSV y poder ejecutar nuestro request de manera masiva.

Primero les recomiendo hagan la prueba con un solo registro

El archivo CSV lo tienen que armar con 2 columnas colocando como encabezado los valores del Numero de Pago y el ID del pago, esos valores los pueden obtener con el siguiente query

Select RECEIPT_NUMBER,CASH_RECEIPT_ID
FROM AR_CASH_RECEIPTS_ALL
WHERE la condición que requieran



Ejemplo de como ser ve el CSV



Ahora para ejecutarlo en POSTMAN seleccionan su colección y seleccionan Run Collection


Ahora van a seleccionar su archivo CSV e indicar cual es el request que quieren utilizar


Una vez ya lo carguen seleccionan el botón Run donde verán una consola con el resultado de cada ejecución. 

Espero les sea de utilidad esta publicación y nos compartan.



Comentarios

Publicar un comentario

Entradas más populares de este blog

Ejemplo Macro en Word

Macro de Excel para abrir archivo csv

Como ejecutar SQL desde Tareas Programadas de Windows