Name

sn_cd.cd_EsignMobileUtils

Description

No description available

Script

var cd_EsignMobileUtils = Class.create();
cd_EsignMobileUtils.prototype = {
  
  initialize: function() {
  },
  
  /* function completes the E-Signature content todo task
  * @param todoSysId String The ID of To Do content task
  * @return String Success/Error message to be displayed
  *                on native mobile
  */		
  completeEsignTask: function(todoSysId) {
      var result = {};

      var taskGr = new GlideRecord("sn_cd_task");
      if (!taskGr.get(todoSysId)) {
          result.status = "error";
          result.message = gs.getMessage("Task not found");
          return result;
      }

      var eSignTaskUtil = new sn_esign.esign_taskUtils();
      var user_id = gs.getUserID();
      var sys_id = taskGr.getUniqueValue();
      var table_name = taskGr.getTableName();
      var acknowledgement_text = taskGr.sn_esign_esignature_configuration.acknowledgement_text;
      var esign_type = taskGr.sn_esign_esignature_configuration.signature_type;
      var document_type = taskGr.sn_esign_esignature_configuration.document_type;
      var document_revision = this._getDocumentRevision(taskGr);
      var kb_article = taskGr.sn_esign_esignature_configuration.kb_article;
      var signature = null;
      if (esign_type === 'signature')
          signature = eSignTaskUtil.getSignatureImage(table_name, sys_id);
      var signatureSysId = null;
      if (signature)
  		signatureSysId = signature.sys_id;
      var domain = taskGr.sn_esign_esignature_configuration.sys_domain;

          // Save document acknowledgment in the sn_esign_acknowledgement table
      eSignTaskUtil.saveDocumentAcknowledgement(acknowledgement_text, 
  											esign_type, 
  											sys_id, 
  											document_revision, 
  											kb_article, 
  											signatureSysId, 
  											domain, 
  											table_name, 
  											user_id);

      if (document_type == 'managed_document') {
          eSignTaskUtil.attachAcknowledgeDocument(sys_id, table_name, document_revision);
          return this._setTaskFinished(taskGr);
      } else if (document_type == 'knowledge_article'){
  		eSignTaskUtil.attachAcknowledgeDocument(sys_id, table_name, null,kb_article);
  		return this._setTaskFinished(taskGr);
  	}
  },
  
  _setTaskFinished: function(taskGr) {
      var result = {};
      taskGr.setValue("state", "3");
      if (taskGr.update()) {
          result.status = "success";
          result.message = gs.getMessage('The to-do "{0}" has been completed ', taskGr.getValue('short_description'));
          return result;
      } else {
          result.status = "error";
          result.message = gs.getMessage("Error completing the task");
          return result;
      }
  },	
  
  _getDocumentRevision: function(taskGr) {
      var managedDocument = new GlideRecord("dms_document_revision");
      managedDocument.addQuery("document", taskGr.sn_esign_esignature_configuration.managed_document);
      managedDocument.addQuery("stage", "published");
      managedDocument.query();
      if (managedDocument.next())
          return managedDocument.getUniqueValue();
      return null;
  },	
  type: 'cd_EsignMobileUtils'
};

Sys ID

48655b66b7e63300a251e556ee11a9fa

Offical Documentation

Official Docs: