Chiamata di interazione che restituisce 0 proposte quando maxCount è impostato su 0008

Ultimo aggiornamento: 2022-11-15

Descrizione

Ambiente
Adobe Campaign Adobe Campaign Classic

Problema
Restituisce la chiamata di interazione 0 proposizioni quando maxCount attributo impostato su 0008 o più di quello nel payload SOAP.

Causa
Nel payload seguente, la urn:maxCount00008/urn:maxCount Il tag prende un valore numerico.
Se utilizzi una coda 0 funziona normalmente fino a 0007 (significato 000,0001,00020007 lavorare normalmente)

Ma se utilizzi 0008 e sopra, 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 del controllo Interaction.js la libreria parseInt() viene utilizzata per analizzare maxCount valore a Intero.

Questo parseInt() 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 trasmetti un valore in parseInt() che inizia con 0, utilizza base-8 per restituire il valore.
Poiché base-8 non accetta numeri maggiori di 7, quando si passa 0008 o più, lo converte in 0 o NaN pertanto non viene restituita alcuna proposta.

Se maxCount, passa 8 anziché 0008, restituisce la proposta nella risposta alla chiamata SOAP .

Risoluzione

Soluzione
Modifica la Interaction.js e utilizza:

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

così che funzioni per tutti i numeri.

In questa pagina