- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-21-2017 11:50 PM
Hi All,
From my wsdl I have fetched the item with the help of getNodes("//items/item/*") function which provide me details of Item like number, status, errorcode, and errorMessage.
Now I want to update these fields into the table. I am not understanding how to get the value of these fields from getNodes in below code.details is given below,
XML.:-
<items>
<item>
<Number>5</Number>
<Status>OK|ERROR</Status>
<ErrorCode>SAP Error Code</ErrorCode>
<ErrorMessage>The error1 message from SAP</ErrorMessage>
</item>
<item>
<Number>6</Number>
<Status>OK|ERROR</Status>
<ErrorCode>SAP1 Error Code</ErrorCode>
<ErrorMessage>The error1 message from SAP</ErrorMessage>
</item>
</items>
CODE
var req = new XMLDocument(soapRequestXML);
10
if (status == 'success') {
var nodes = req.getNodes("//items/item/*");
13
for (var i = 0; i < nodes.length; i++) {
var nodeName = nodes.item(i).getNodeName();
var nodeValue = nodes.item(i).getTextContent();
gs.log("gtq48ee Details:"+nodeName+' '+nodeValue);
}
22
Received Logs,
2017-11-22 07:24:48 | Information | gtq48ee Details:Status OK|ERROR | *** Script | admin_gtq48ee | |||
Preview | 2017-11-22 07:24:48 | Information | gtq48ee Details:Status OK|ERROR | *** Script | admin_gtq48ee | ||
Preview | 2017-11-22 07:24:48 | Information | gtq48ee Details:Number 4654 | *** Script | admin_gtq48ee | ||
Preview | 2017-11-22 07:24:48 | Information | gtq48ee Details:Number 97987 | *** Script | admin_gtq48ee | ||
Preview | 2017-11-22 07:24:48 | Information | gtq48ee Details:ErrorMessage The error1 message from SAP | *** Script | admin_gtq48ee | ||
Preview | 2017-11-22 07:24:48 | Information | gtq48ee Details:ErrorMessage The error1 message from SAP | *** Script | admin_gtq48ee | ||
Preview | 2017-11-22 07:24:48 | Information | gtq48ee Details:ErrorCode SAP1 Error Code | *** Script | admin_gtq48ee | ||
Preview | 2017-11-22 07:24:48 | Information | gtq48ee Details:ErrorCode SAP Error Code | *** Script | admin_gtq48ee |
Solved! Go to Solution.
- Labels:
-
Integrations
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-22-2017 01:30 AM
Hi Anshul,
For example purpose I have changed values for the tags so that you can run and check whether all values are coming or not.
<items>
<item>
<Number>5</Number>
<Status>OK|ERROR1</Status>
<ErrorCode>SAP Error Code1</ErrorCode>
<ErrorMessage>The error1 message from SAP</ErrorMessage>
</item>
<item>
<Number>6</Number>
<Status>OK|ERROR2</Status>
<ErrorCode>SAP1 Error Code2</ErrorCode>
<ErrorMessage>The error2 message from SAP</ErrorMessage>
</item>
</items>
var xmlString = '<items><item><Number>5</Number><Status>OK|ERROR1</Status><ErrorCode>SAP Error Code1</ErrorCode><ErrorMessage>The error1 message from SAP</ErrorMessage></item><item><Number>6</Number><Status>OK|ERROR2</Status><ErrorCode>SAP1 Error Code2</ErrorCode><ErrorMessage>The error2 message from SAP</ErrorMessage></item></items>';
var xmldoc = new XMLDocument(xmlString );
var noParamNode = xmldoc.getNodes("//items/*").getLength();
var numberArray = [];
var statusArray = [];
var errorCode = [];
var errorMessageArray = [];
for(var k=1; k<noParamNode+1; k++){
var number = xmldoc.getNodeText("//items/item[" + k + "]" + "/Number");
numberArray.push(number.toString());
var status = xmldoc.getNodeText("//items/item[" + k + "]" + "/Status");
statusArray.push(status.toString());
var error = xmldoc.getNodeText("//items/item[" + k + "]" + "/ErrorCode");
errorCode.push(error.toString());
var ErrorMessage = xmldoc.getNodeText("//items/item[" + k + "]" + "/ErrorMessage");
errorMessageArray.push(ErrorMessage.toString());
}
gs.print('Number array is: '+numberArray); // prints 5,6
gs.print('Status array is: '+statusArray); // prints OK|ERROR1,OK|ERROR2
gs.print('Errorarray is: '+errorCode); // prints SAP Error Code1,SAP1 Error Code2
gs.print('ErrorMessage array is: '+errorMessageArray); // prints The error1 message from SAP,The error2 message from SAP
Try running this in background script and you should see the correct values:
Mark Correct if this solves your issue and also hit Like and Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-22-2017 01:16 AM
Hi Anshul,
do you want all the values from the Number, Status, ErrorCode, ErrorMessage tags?
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-22-2017 01:30 AM
Hi Anshul,
For example purpose I have changed values for the tags so that you can run and check whether all values are coming or not.
<items>
<item>
<Number>5</Number>
<Status>OK|ERROR1</Status>
<ErrorCode>SAP Error Code1</ErrorCode>
<ErrorMessage>The error1 message from SAP</ErrorMessage>
</item>
<item>
<Number>6</Number>
<Status>OK|ERROR2</Status>
<ErrorCode>SAP1 Error Code2</ErrorCode>
<ErrorMessage>The error2 message from SAP</ErrorMessage>
</item>
</items>
var xmlString = '<items><item><Number>5</Number><Status>OK|ERROR1</Status><ErrorCode>SAP Error Code1</ErrorCode><ErrorMessage>The error1 message from SAP</ErrorMessage></item><item><Number>6</Number><Status>OK|ERROR2</Status><ErrorCode>SAP1 Error Code2</ErrorCode><ErrorMessage>The error2 message from SAP</ErrorMessage></item></items>';
var xmldoc = new XMLDocument(xmlString );
var noParamNode = xmldoc.getNodes("//items/*").getLength();
var numberArray = [];
var statusArray = [];
var errorCode = [];
var errorMessageArray = [];
for(var k=1; k<noParamNode+1; k++){
var number = xmldoc.getNodeText("//items/item[" + k + "]" + "/Number");
numberArray.push(number.toString());
var status = xmldoc.getNodeText("//items/item[" + k + "]" + "/Status");
statusArray.push(status.toString());
var error = xmldoc.getNodeText("//items/item[" + k + "]" + "/ErrorCode");
errorCode.push(error.toString());
var ErrorMessage = xmldoc.getNodeText("//items/item[" + k + "]" + "/ErrorMessage");
errorMessageArray.push(ErrorMessage.toString());
}
gs.print('Number array is: '+numberArray); // prints 5,6
gs.print('Status array is: '+statusArray); // prints OK|ERROR1,OK|ERROR2
gs.print('Errorarray is: '+errorCode); // prints SAP Error Code1,SAP1 Error Code2
gs.print('ErrorMessage array is: '+errorMessageArray); // prints The error1 message from SAP,The error2 message from SAP
Try running this in background script and you should see the correct values:
Mark Correct if this solves your issue and also hit Like and Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-22-2017 02:49 AM
Thank you Ankur. It is wokring fine.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-22-2017 02:59 AM
Hi Anshul,
Can you mark it as correct since this was solved.
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader