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.