Llamada de interacción que devuelve 0 propuestas cuando maxCount está establecido en 0008

Este artículo aborda el problema en el que una llamada de interacción devuelve 0 propuestas cuando el atributo maxCount está establecido en 0008 o más, y modifica la biblioteca Interaction.js.

Descripción description

Entorno

Adobe Campaign Classic

Problema/Síntomas

SOAP La llamada de interacción devuelve 0 propuestas cuando el atributo maxCount está establecido en 0008 o más que en la carga útil de la.

En la siguiente carga útil, la etiqueta <urn:maxCount>00008</urn:maxCount> toma un valor numérico.

Si usa un 0 final, funcionará normalmente hasta el 0007 (es decir, 0000,0001,0002,…0007 funcionará normalmente).

Sin embargo, si usa 0008 y versiones posteriores, devolverá 0 propuestas.

Carga útil de llamada de interacción:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:nms:interaction">
<soapenv:Header/>
<soapenv:Body>
<urn:Propose>
<urn:sessiontoken/>
<!--Recipient Id
<urn:targetId>random</urn:targetId>-->
<!-Account Id->
<urn:targetId>random</urn:targetId>
<!--Contact Id
<urn:targetId>random</urn:targetId>-->
<urn:maxCount>00008</urn:maxCount>
<urn:uuid/>
<urn:nlid/>
<urn:noProp/>
<urn:categories></urn:categories>
<urn:themes/>
<urn:context>
<!-You may enter ANY elements at this point->
<context>
<interaction onCallOfferFlg="Y" orgName="to be filled"/>
</context>
</urn:context>
</urn:Propose>
</soapenv:Body>
</soapenv:Envelope>

Punto final:

https://<Server URL>/interaction/liveRcp/<offer>

Resolución resolution

Modifique la biblioteca Interaction.js y utilice:

var iAskedPropositionCount = parseInt(soapMethod.::maxCount.toString(),10);*

para que funcione para todos los números.

Causa

Al comprobar la biblioteca Interaction.js, se usa la función parseInt() para analizar el valor maxCount en Integer.

Esta función parseInt() devuelve un valor decimal de forma predeterminada.

var iAskedPropositionCount = parseInt(soapMethod.::maxCount.toString());*

Esta función JS hereda una propiedad de C y C++ que si pasa un valor en parseInt() que empieza por 0, usa base-8 para devolver el valor.

Dado que base-8 no acepta números mayores que 7, cuando pasa 0008 o más, lo convierte en 0 o NaN, por lo que no se devuelve ninguna propuesta.

SOAP Si pasa maxCount, pasa 8 en lugar de 0008, el resultado es una propuesta en la respuesta a la llamada de la.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f