Appel d'interaction renvoyant 0 proposition lorsque maxCount est défini sur 0008

Cet article traite du problème où un appel d’interaction renvoie 0 proposition lorsqu’un attribut maxCount est défini sur 0008 ou plus, modifiez la bibliothèque Interaction.js.

Description description

Environnement

Adobe Campaign Classic

Problème/Symptômes

L’appel d’interaction renvoie des propositions 0 lorsque l’attribut maxCount est défini sur 0008 ou plus que dans la charge utile SOAP.

Dans la charge utile ci-dessous, la balise <urn:maxCount>00008</urn:maxCount> prend une valeur numérique.

Si vous utilisez un 0 de fin, il fonctionne normalement jusqu'à 0007 (ce qui signifie 0000,0001,0002,…007 fonctionne normalement).

Mais si vous utilisez 0008 et plus, il renvoie des propositions 0.

Charge utile de l’appel d’interaction :

<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>

Point d’entrée :

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

Résolution resolution

Modifiez la bibliothèque Interaction.js et utilisez :

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

pour qu'il fonctionne pour tous les nombres.

Cause

Lors de la vérification de la bibliothèque Interaction.js, la fonction parseInt() est utilisée pour analyser la valeur maxCount sur Entier.

Cette fonction parseInt() renvoie une valeur décimale par défaut.

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

Cette fonction JS hérite d’une propriété C et C++ qui, si vous transmettez une valeur dans parseInt() qui commence par 0, utilise base-8 pour renvoyer la valeur.

Étant donné que base-8 n’accepte pas les nombres supérieurs à 7, lorsque vous transmettez 0008 ou plus, il les convertit en 0 ou NaN, d’où l’absence de proposition.

Si, dans maxCount, vous transmettez 8 au lieu de 0008, cela donne une proposition dans la réponse à l’appel SOAP.

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