Create Element Error - Any Help?!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-27-2016 02:22 AM
I have written a script to iterate on members list and generating XML content for automation processing. However, below script logic is failing! Can somebody help me on this please?
Script Details [ This logic will collect members lists & collect few necessary fields as mentioned below! ]
var members = current.variables.mailbox_members_access.toString();
var array = members.split(",");
if(members != ''){
var members = soap.createElement(members, "ns5:members");
var user = new GlideRecord('sys_user');
user.addQuery('sys_id',"IN",members);
user.query();
user.setLimit(array.length);
while(user.next())
{
var memberUserName = '';
var memberUserID = '';
var memberManager = '';
if(user.last_name)
memberUserName += user.last_name+", "+ user.first_name;
if(user.u_nt_domain)
memberUserID += user.u_nt_domain +"\\"+user.u_nt_id;
if(user.cost_center.manager.last_name)
memberManager += user.cost_center.manager.last_name+', '+ user.cost_center.manager.first_name;
var readUser= soap.createElement(gfsReadUsers, "ns13:dlMember");
var userAttri1= soap.createElement(members, "membersdlMemberuserName",memberUserName);
var userAttri1= soap.createElement(members, "membersdlMemberuserId",memberUserID);
var userAttri1= soap.createElement(members, "membersdlMembercostcenter",user.cost_center.account_number);
var userAttri1= soap.createElement(members, "membersdlMembercountryCode",user.country);
var userAttri1= soap.createElement(members, "membersdlMemberbusinessUnit",user.u_business_unit);
var userAttri1= soap.createElement(members, "membersdlMemberccApproverName",memberManager);
}
}
Error Noticed:
Evaluator: org.mozilla.javascript.EcmaError: "soap" is not defined.
Caused by error in script at line 101
98: var array = members.split(",");
99:
100: if(members != ''){
==> 101: var members = soap.createElement(members, "ns5:members");
102:
103: var user = new GlideRecord('sys_user');
104: user.addQuery('sys_id',"IN",members);
Any help on this will be highly helpful for me!
Thanks,
Raghavendra Guttur
EMC Data Storage Systems
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-27-2016 10:51 PM
Hi Raghavendra,
Before calling createElement an xmlDoucument needs to be instantiated
along the lines of
var xmlDoc = new XMLDocument2();
Scoped XMLDocument2 API Reference - ServiceNow Wiki
..
4.6 createElement(String name)
Creates and adds an element node to the current node. The element name is the string passed in as a parameter. The new element has no text child nodes.
Parameters:
- name - (String) the element name.
Returns:
- void
Example:
var xmlString = "<test>" +
" <one>" +
" <two att=\"xxx\">abcd1234</two>" +
" <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
" <two>another</two>" +
" </one>" +
" <number>1234</number>" +
"</test>";
var xmlDoc = new XMLDocument2();
xmlDoc.parseXML(xmlString);
xmlDoc.createElement("new2");
Best Regards
Tony

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-27-2016 10:54 PM
Thanks Tony!
Let me review this one and will provide you an update.