Advertisement
Savelyev_Vyacheslav

server_script.js madalWindow

Jun 26th, 2023 (edited)
465
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (() => {
  2.     if (!Object.keys(input).length) {
  3.         return;
  4.     }
  5.  
  6.     if (input.action === 'INIT') {
  7.         data.translations = getTranslations();
  8.     }
  9.  
  10.     if (input.action === 'CREATE') {
  11.         const selectedTemplate = new SimpleRecord('itsm_change_request_template');
  12.         selectedTemplate.get(input.template.database_value);
  13.  
  14.         const changeRequest = createRecordByTemplate(
  15.             input.template.display_value,
  16.             'itsm_change_request',
  17.             input.inquiryAttributes
  18.         );
  19.         if (!changeRequest.sys_id) {
  20.             return ss.addErrorMessage(`Change request not created. Errors ${changeRequest.getErrors().join()}`);
  21.         }
  22.  
  23.         const changeTaskTemplate = new SimpleRecord('itsm_change_request_template');
  24.         changeTaskTemplate.addQuery('table_id.name', 'itsm_change_task');
  25.         changeTaskTemplate.addQuery('created_from_change_request', selectedTemplate.created_from_change_request);
  26.         changeTaskTemplate.query();
  27.  
  28.         const errors = [];
  29.         while (changeTaskTemplate.next()) {
  30.             const changeTask = createRecordByTemplate(
  31.                 changeTaskTemplate.name,
  32.                 'itsm_change_task',
  33.                 input.inquiryAttributes,
  34.                 changeRequest.sys_id
  35.             );
  36.             if (!changeTask.sys_id) {
  37.                 errors.push(changeTask.getErrors().join(', '));
  38.             }
  39.         }
  40.         if (!errors.length) {
  41.             ss.addErrorMessage(errors.join(''));
  42.         }
  43.         ss.setRedirect(`/record/itsm_change_request/${changeRequest.sys_id}`);
  44.     }
  45. })();
  46.  
  47. function getTranslations() {
  48.     const sm = new SimpleMessage();
  49.  
  50.     return {
  51.         template: sm.getMessage('Template'),
  52.         create: sm.getMessage('Create'),
  53.         annotation: sm.getMessage('Create Change Request'),
  54.         skip: sm.getMessage('Skip'),
  55.         errorMessage: sm.getMessage('Select template to use it!'),
  56.     };
  57. }
  58.  
  59. function createRecordByTemplate(templateName, taskTableName, inquiryAttributes, taskParentId = null) {
  60.     const template = new SimpleTemplate(templateName);
  61.     const record = new SimpleRecord(taskTableName);
  62.     template.applyTo(record);
  63.     const recordAttributes = Object.keys(record.getAttributes());
  64.  
  65.     for (const fieldName in inquiryAttributes) {
  66.         if (
  67.             inquiryAttributes[fieldName] ||
  68.             recordAttributes.includes(fieldName) ||
  69.             fieldName !== 'subject' ||
  70.             fieldName !== 'description'
  71.         ) {
  72.             record[fieldName === 'sys_id' ? 'related_inquiry' : fieldName] = inquiryAttributes[fieldName];
  73.         }
  74.     }
  75.  
  76.     if (!taskParentId) {
  77.         record.work_notes = `From User Query
  78.         Subject: ${inquiryAttributes.subject}
  79.         Description: ${inquiryAttributes.description}`;
  80.     }
  81.  
  82.     if (!record.contact_type) {
  83.         record.contact_type = '10';
  84.     }
  85.  
  86.     if (!record.caller) {
  87.         record.caller = ss.getUserID();
  88.     }
  89.  
  90.     if (!!taskParentId) {
  91.         record.parent_id = taskParentId;
  92.     }
  93.     record.insert();
  94.  
  95.     return record;
  96. }
  97.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement