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

Dernière mise à jour : 2022-11-15

Description

Environnement
Adobe Campaign Adobe Campaign Classic

Problème
Retours d’appel d’interaction 0 propositions lorsque maxCount est défini sur 0008 ou plus que dans la payload SOAP.

Cause
Dans la charge utile ci-dessous, la variable urn:maxCount00008/urn:maxCount prend une valeur numérique.
Si vous utilisez une balise de fin 0, fonctionne normalement jusqu’à ce que 0007 (signification 0000,0001,0002,…0007 travailler normalement)

Mais si vous utilisez 0008 et au-dessus, elle renvoie 0 propositions.

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:targetIdrandom/urn:targetId--
!-Account Id-
urn:targetIdrandom/urn:targetId
!--Contact Id
urn:targetIdrandom/urn:targetId--
urn:maxCount00008/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

Cause

Lorsque vous cochez la variable Interaction.js , la bibliothèque parseInt() sert à analyser la fonction maxCount valeur à Entier.

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

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

Cette fonction JS hérite d’une propriété de C et C++ qui, si vous transmettez une valeur dans parseInt() qui commence par 0, il utilise base-8 pour renvoyer la valeur.
Puisque base-8 n’accepte pas les nombres supérieurs à 7, lorsque vous transmettez 0008 ou plus, il le convertit en 0 ou NaN par conséquent, aucune proposition n’est renvoyée.

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

Résolution

Solution
Modifiez le Interaction.js et utilisez :

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

pour que ça marche pour tous les nombres.

Sur cette page