🔧 Actualización de DFF a nivel Site en Oracle usando SOAP API y Postman

En algunos escenarios es necesario actualizar información para múltiples registros y hacerlo uno por uno desde la interfaz no siempre es viable.
Para estos casos, Oracle pone a disposición herramientas como SOAP Web Services y REST API Services, que permiten automatizar y controlar este tipo de procesos.

En esta publicación veremos un ejemplo real y probado para actualizar el valor de un Descriptive Flex Field (DFF) a nivel detalle de sitio del cliente, lo que a nivel técnico impacta directamente la tabla HZ_PARTY_SITES.

📚 Documentación oficial

Antes de comenzar, es importante revisar la documentación oficial del servicio:

👉 Oracle Trading Community Organization Service vamos a la liga de documentacion https://docs.oracle.com/en/cloud/saas/sales/oesws/tradingcommunityorganization-d41e160191.html


Oracle Trading Community Organization Service DFF


🌐 Servicio SOAP utilizado

Desde la documentación tomamos el servicio:

Service WSDL

https://servername/crmService/FoundationPartiesOrganizationService

⚠️ Recuerda reemplazar servername por el nombre de tu entorno.

🧪 Preparación del request en Postman


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/crmService/FoundationPartiesOrganizationService


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/cdm/foundation/parties/organizationService/applicationModule/types/"
  xmlns:org="http://xmlns.oracle.com/apps/cdm/foundation/parties/organizationService/"
  xmlns:pty="http://xmlns.oracle.com/apps/cdm/foundation/parties/partyService/"
  xmlns:psd="http://xmlns.oracle.com/apps/cdm/foundation/parties/flex/partySite/">
  <soapenv:Header/>
  <soapenv:Body>
    <typ:mergeOrganization>
      <typ:organizationParty>
        <!-- 1) El Party dueño del Site -->
        <org:PartyId>TEST14235</org:PartyId>

        <!-- 2) El Party Site que quieres actualizar -->
        <org:PartySite>
          <pty:PartySiteId>TEST6789</pty:PartySiteId>

          <!-- 3) BLOQUE DE DFF (PartySiteInformation) -->
          <pty:PartySiteInformation xsi:type="psd:Nombre_contexto_API"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <!-- El contexto de tu DFF -->
            <psd:__FLEX_Context>Contexto_Name</psd:__FLEX_Context>
            <!-- Segmentos de tu DFF -->
            <psd:nombre_API_DFF>VALOR_ACTUALIZAR</psd:nombre_API_DFF>

          </pty:PartySiteInformation>

        </org:PartySite>
      </typ:organizationParty>
    </typ:mergeOrganization>
  </soapenv:Body>
</soapenv:Envelope>

Los campos en negrita son los valores que deben cambiar
  • TEST14235 , este del party id de la tabla hz_parties
  • TEST6789,este del site de la tabla HZ_PARTY_SITES
  • Nombre_contexto_API,este valor es muy importante lo vas a obtener de la pantalla donde defines el DFF
  • Contexto_Name, este valor es muy importante lo vas a obtener de la pantalla de
donde se define el DFF
  • nombre_API_DFF este valor es muy importante lo vas a obtener de la pantalla de
donde se define el DFF
Te comparto un query que te puede servir para obtener los ID, puedes ajustarlo con los filtros como lo requieras

🔍 Query de apoyo para obtener IDs


SELECT hp.party_id , hp.PARTY_NUMBER , hca.account_number , hca.cust_account_id , hps.party_site_id , hps.location_id , hcsu.site_use_code , hps.party_site_name , hps.party_site_number , hps.START_DATE_ACTIVE ,hcsa.set_id ,hp.ORIG_SYSTEM_REFERENCE FROM hz_parties hp , hz_party_sites hps , hz_locations hl , hz_cust_accounts hca , hz_cust_acct_sites_all hcsa , hz_cust_site_uses_all hcsu WHERE hp.party_id = hps.party_id AND hps.location_id = hl.location_id AND hp.party_id = hca.party_id AND hcsa.party_site_id = hps.party_site_id AND hcsu.cust_acct_site_id = hcsa.cust_acct_site_id AND hca.cust_account_id = hcsa.cust_account_id --AND hps.party_site_number = numero de site del cliente --AND hca.account_number =numero de cuenta del cliente --AND hps.location_id = valor que busques


✅ Conclusión

Este ejemplo demuestra que, aunque SOAP sigue siendo percibido como complejo, con una buena estructura

y las herramientas correctas es posible actualizar DFFs de forma segura y controlada.

Si trabajas con Oracle Trading Community, este enfoque puede ahorrarte mucho tiempo operativo y

reducir errores manuales.

Comentarios

🚀 Mantener este blog funcionando requiere tiempo y café. ¡Puedes contribuir con uno aquí!

Entradas más populares de este blog

Guía Práctica: Ejemplo Completo de ASPX para Desarrolladores Web

📊 Automatiza tu trabajo: Convierte tablas de Word a Excel con una macro

Ejemplo de Macro en Word para Automatizar Documentos