Chamada de interação que retorna 0 propostas quando maxCount é definido como 0008
Para resolver o problema de Campaign Classic em que uma chamada de interação retorna 0 propostas quando o atributo maxCount é definido como 0008 ou mais, modifique a biblioteca Interaction.js
conforme descrito neste artigo.
Descrição description
Ambiente
Adobe Campaign Classic
Problema
A chamada de interação retorna propostas 0 quando o atributo maxCount
está definido como 0008 ou mais do que isso na carga SOAP.
Na carga abaixo, a marca <urn:maxCount>00008</urn:maxCount>
assume um valor numérico.
Se você usar um 0 à direita, ele funcionará normalmente até 0007 (ou seja, 0000,0001,0002,…0007 funcionará normalmente).
Mas se você usar 0008 e posterior, ele retornará 0 propostas.
Carga de chamada de interação:
<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>
Ponto de extremidade:
https://<Server URL>/interaction/liveRcp/<offer>
Causa
Ao verificar a biblioteca Interaction.js
, a função parseInt()
é usada para analisar o valor maxCount
como Integer.
Esta função parseInt()
retorna um valor decimal por padrão.
var iAskedPropositionCount = parseInt(soapMethod.::maxCount.toString());*
Esta função JS herda uma propriedade de C e C++ que, se você passar um valor em parseInt()
, que começa com 0, ela usará base-8 para retornar o valor.
Como base 8 não aceita números maiores que 7, quando você passa 0008 ou mais, ele o converte em 0 ou NaN, portanto, nenhuma proposta é retornada.
Se em maxCount
, você passar 8 em vez de 0008, o resultado será uma apresentação na resposta à chamada SOAP.
Resolução resolution
Modifique a biblioteca Interaction.js
e use:
var iAskedPropositionCount = parseInt(soapMethod.::maxCount.toString(),10);*
para que funcione para todos os números.