Dashboard de Tenis en Tiempo Real con WebSocket y JavaScript

Imagen
¿Por qué utilizar WebSocket en lugar de una API REST? El caso de Tennis API Cuando trabajamos con APIs, normalmente pensamos en solicitudes HTTP tradicionales donde una aplicación consulta información cada cierto tiempo. Sin embargo, para aplicaciones que requieren datos en tiempo real, existe una alternativa mucho más eficiente: WebSocket. Mientras exploraba las capacidades de Tennis API encontré su integración mediante Socket.IO, una tecnología que permite recibir actualizaciones en tiempo real sin necesidad de realizar consultas constantes al servidor. ¿Cómo funciona una API REST tradicional? Con una API REST, la aplicación debe preguntar periódicamente si existen nuevos datos. Por ejemplo: setInterval(async () => { const response = await fetch("/live-scores"); const data = await response.json(); console.log(data); }, 5000); En este caso la aplicación realiza una consulta cada 5 segundos. El problema es que muchas veces no existe información nue...

🔧 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

👉 Cómo obtener el tipo de cambio en Excel con API de Banxico (paso a paso)

Macro en Word para automatizar documentos: genera diplomas en segundos (con código VBA)