La chiamata di interazione restituisce 0 proposte quando maxCount è impostato su 0008

Descrizione description

Ambiente
Adobe Campaign Adobe Campaign Classic

Problema
Restituzioni chiamate di interazione 0 proposizioni quando maxCount attributo impostato su 0008 o più di quello presente nel payload SOAP.

Causa
Nel payload seguente, il urn:maxCount00008/urn:maxCount il tag accetta un valore numerico.
Se si utilizza una 0, funziona normalmente fino al 0007 (ovvero 0000,0001,0002,…0007 normalmente)

Ma se usa 0008 e superiore, restituisce 0 proposte.

Payload della chiamata di interazione:

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

Endpoint:
https://Server URL/interaction/liveRcp/offer

Causa

Al momento della verifica Interaction.js libreria, parseInt() viene utilizzata per analizzare maxCount valore per Intero.

Questo parseInt() La funzione restituisce un valore decimale per impostazione predefinita.

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

Questa funzione JS eredita una proprietà da C e C++ che se si passa un valore in parseInt() che inizia con 0, utilizza base-8 per restituire il valore.
Poiché base-8 non accetta valori numerici maggiori di 7, quando si passa 0008 o più, lo converte in 0 o NaN pertanto non viene restituita alcuna proposta.

Se in maxCount, si passa 8 invece di 0008, genera una proposta nella risposta alla chiamata SOAP.

Risoluzione resolution

Soluzione
Modifica il Interaction.js libreria e utilizzo:

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

in modo che funzioni per tutti i numeri.

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