Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

How to replace special characters that are blocked by XML in business rule ?

Naina3
Kilo Contributor

Hi,

I am sending fields value to another SNOW instance using SOAP message. I have used Business rule to insert and update the values of fields. I am sending values of few fields in work notes. It is not working for the values containing either & or white space. I tried to replace these as mentioned below but it is not working. Can anyone help me with this?

current.work_notes.toString().replace(/[&]/g, '&');
current.work_notes.toString().replace(/[ ]/g, ' ');

 

Thanks in advance!

 

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

Hi Naina,

I believe you are saying about these 5 special characters which needs to be escaped before sending in xml or else xml string will break

"   "
'   '
<   &lt;
>   &gt;
&   &amp;

var data = current.work_notes.toString();
if(data.indexOf("'") > 0){
data = data.replaceAll("'","&apos;");
}
else if(data.indexOf("\"") > 0){
data = data.replaceAll("\"","&quot;");
}
else if(data.indexOf("<") > 0){
data = data.replaceAll("<","&lt;");
}
else if(data.indexOf(">") > 0){
data = data.replaceAll(">","&gt;");
}
else if(data.indexOf("&") > 0){
data = data.replaceAll("&","&amp;");
}

Mark Correct if this solves your issue and also mark Helpful if you find my response worthy based on the impact.
Thanks
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

1 REPLY 1

Ankur Bawiskar
Tera Patron
Tera Patron

Hi Naina,

I believe you are saying about these 5 special characters which needs to be escaped before sending in xml or else xml string will break

"   &quot;
'   &apos;
<   &lt;
>   &gt;
&   &amp;

var data = current.work_notes.toString();
if(data.indexOf("'") > 0){
data = data.replaceAll("'","&apos;");
}
else if(data.indexOf("\"") > 0){
data = data.replaceAll("\"","&quot;");
}
else if(data.indexOf("<") > 0){
data = data.replaceAll("<","&lt;");
}
else if(data.indexOf(">") > 0){
data = data.replaceAll(">","&gt;");
}
else if(data.indexOf("&") > 0){
data = data.replaceAll("&","&amp;");
}

Mark Correct if this solves your issue and also mark Helpful if you find my response worthy based on the impact.
Thanks
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader