Created
May 7, 2023 22:18
-
-
Save kr4uzi/164e7cf6521df77fa1693ce95f9da654 to your computer and use it in GitHub Desktop.
Generate XML and send to Mid Server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var doc = new XMLDocument2(); | |
| var importNode = doc.createElement('Import'); | |
| createPers(doc, importNode, '12345', 'update', 'Disabled', [{ id: '1', operation: 'delete' }, { id: '2', operation: 'delete' }, { id: '2', operation: 'delete' }]); | |
| createPers(doc, importNode, '23456', 'update', 'Disabled', [{ id: '1', operation: 'delete' }, { id: '2', operation: 'delete' }, { id: '2', operation: 'delete' }]); | |
| createPers(doc, importNode, '34567', 'update', 'Disabled', [{ id: '1', operation: 'delete' }, { id: '2', operation: 'delete' }, { id: '2', operation: 'delete' }]); | |
| sendToMid('helloWorld.xml', doc.toString()); | |
| function sendToMid(fileName, fileContent) { | |
| var saveScript = '(function () {' | |
| + ' try {' | |
| + ' var fileName = probe.getParameter("file_name");' | |
| + ' var file = new Packages.java.io.File(fileName);' | |
| + ' if (!file.canWrite()) {' | |
| + ' return "Cannot write " + fileName;' | |
| + ' }' | |
| + ' var os = new Packages.java.io.FileOutputStream(file);' | |
| + ' try {' | |
| + ' var buffer = new Packages.java.lang.String(probe.getParameter("file_content") || "").getBytes();' | |
| + ' os.write(buffer);' | |
| + ' } catch (e) {' | |
| + ' return e.message;' | |
| + ' } finally {' | |
| + ' os.close();' | |
| + ' }' | |
| + ' } catch (e) { return e.message; }' | |
| + '})();'; | |
| var params = { 'skip_sensor': true, 'file_name': fileName, 'file_content': fileContent, 'script': saveScript }; | |
| var payload = new XMLDocument2(); | |
| payload.createElement("parameters"); | |
| for (var param in params) { | |
| var el = payload.createElement("parameter"); | |
| el.setAttribute("name", param); | |
| el.setAttribute("value", params[param]); | |
| } | |
| var eccGr = new GlideRecord("ecc_queue"); | |
| eccGr.newRecord(); | |
| eccGr.topic = "JavascriptProbe"; | |
| eccGr.queue = "output"; | |
| eccGr.state = "ready"; | |
| eccGr.name = "SaveXMLOnMID"; | |
| eccGr.source = ""; | |
| eccGr.agent = "mid.server.Ubuntu"; | |
| eccGr.payload = payload.toString(); | |
| return eccGr.insert(); | |
| } | |
| function createPers(doc, root, id, operation, status, cards) { | |
| doc.setCurrentElement(root); | |
| var pers = doc.createElement('Pers'); | |
| pers.setAttribute('id', id); | |
| pers.setAttribute('operation', operation); | |
| doc.setCurrentElement(pers); | |
| doc.createElementWithTextValue('Status', status); | |
| cards.forEach(function (card) { | |
| createCard(doc, pers, card.id, card.operation); | |
| }); | |
| } | |
| function createCard(doc, pers, id, op) { | |
| doc.setCurrentElement(pers); | |
| var node = doc.createElement('Card'); | |
| node.setAttribute('id', id); | |
| node.setAttribute('operation', op); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment