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.
馃寪 Servicio SOAP utilizado
Desde la documentaci贸n tomamos el servicio:
Service WSDL
⚠️ 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 DFFTe 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
Publicar un comentario
Dejanos tus dudas y comentarios