Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (() => {
- if (!Object.keys(input).length) {
- return;
- }
- if (input.action === 'INIT') {
- data.translations = getTranslations();
- }
- if (input.action === 'CREATE') {
- const selectedTemplate = new SimpleRecord('itsm_change_request_template');
- selectedTemplate.get(input.template.database_value);
- const changeRequest = createRecordByTemplate(
- input.template.display_value,
- 'itsm_change_request',
- input.inquiryAttributes
- );
- if (!changeRequest.sys_id) {
- return ss.addErrorMessage(`Change request not created. Errors ${changeRequest.getErrors().join()}`);
- }
- const changeTaskTemplate = new SimpleRecord('itsm_change_request_template');
- changeTaskTemplate.addQuery('table_id.name', 'itsm_change_task');
- changeTaskTemplate.addQuery('created_from_change_request', selectedTemplate.created_from_change_request);
- changeTaskTemplate.query();
- const errors = [];
- while (changeTaskTemplate.next()) {
- const changeTask = createRecordByTemplate(
- changeTaskTemplate.name,
- 'itsm_change_task',
- input.inquiryAttributes,
- changeRequest.sys_id
- );
- if (!changeTask.sys_id) {
- errors.push(changeTask.getErrors().join(', '));
- }
- }
- if (!errors.length) {
- ss.addErrorMessage(errors.join(''));
- }
- ss.setRedirect(`/record/itsm_change_request/${changeRequest.sys_id}`);
- }
- })();
- function getTranslations() {
- const sm = new SimpleMessage();
- return {
- template: sm.getMessage('Template'),
- create: sm.getMessage('Create'),
- annotation: sm.getMessage('Create Change Request'),
- skip: sm.getMessage('Skip'),
- errorMessage: sm.getMessage('Select template to use it!'),
- };
- }
- function createRecordByTemplate(templateName, taskTableName, inquiryAttributes, taskParentId = null) {
- const template = new SimpleTemplate(templateName);
- const record = new SimpleRecord(taskTableName);
- template.applyTo(record);
- const recordAttributes = Object.keys(record.getAttributes());
- for (const fieldName in inquiryAttributes) {
- if (
- inquiryAttributes[fieldName] ||
- recordAttributes.includes(fieldName) ||
- fieldName !== 'subject' ||
- fieldName !== 'description'
- ) {
- record[fieldName === 'sys_id' ? 'related_inquiry' : fieldName] = inquiryAttributes[fieldName];
- }
- }
- if (!taskParentId) {
- record.work_notes = `From User Query
- Subject: ${inquiryAttributes.subject}
- Description: ${inquiryAttributes.description}`;
- }
- if (!record.contact_type) {
- record.contact_type = '10';
- }
- if (!record.caller) {
- record.caller = ss.getUserID();
- }
- if (!!taskParentId) {
- record.parent_id = taskParentId;
- }
- record.insert();
- return record;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement