Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ServiceNow用户界面页面_Javascript_Servicenow_Clientscript - Fatal编程技术网

Javascript ServiceNow用户界面页面

Javascript ServiceNow用户界面页面,javascript,servicenow,clientscript,Javascript,Servicenow,Clientscript,我使用UI页面创建了一个表单,并尝试在更改时自动填充一些字段。我有一个在大部分情况下都能工作的客户端脚本,但是当某些字段需要进行点遍历才能自动填充时,问题就出现了。我已经读到,点行走在作用域应用程序的客户端脚本中不起作用,需要使用Ajax代码。我不熟悉GlideAjax和脚本,有人能帮我转换代码吗 我当前的客户端脚本如下所示: function beneficiary_1(){ var usr = g_user.userID; var related = $('family_member

我使用UI页面创建了一个表单,并尝试在更改时自动填充一些字段。我有一个在大部分情况下都能工作的客户端脚本,但是当某些字段需要进行点遍历才能自动填充时,问题就出现了。我已经读到,点行走在作用域应用程序的客户端脚本中不起作用,需要使用Ajax代码。我不熟悉GlideAjax和脚本,有人能帮我转换代码吗

我当前的客户端脚本如下所示:

function beneficiary_1(){
  var usr = g_user.userID;
  var related = $('family_member_1').value;
  var rec = new GlideRecord('hr_beneficiary');
  rec.addQuery('employee',usr);
  rec.addQuery('sys_id',related);
  rec.query(dataReturned);
}
function dataReturned(rec){
  //autopopulate the beneficiary fields pending on the user selection
  if(rec.next()) {
  $('fm1_ssn').value = rec.ssn;
  $('fm1_address').value = rec.beneficiary_contact.address; 
  $('fm1_email').value = rec.beneficiary_contact.email;
  $('fm1_phone').value = rec.beneficiary_contact.mobile_phone;
  var dob = rec.date_of_birth;
  var arr = dob.split("-");
  var date = arr[1] + "/"+ arr[2] + "/" + arr[0] ;
  $('fm1_date_of_birth').value = date;
  }
}
fm1_地址、fm1_电子邮件和fm1_电话不会自动填充,因为该值是从HR_受益人表到HR_紧急联系人表的点移动


如何将上述代码转换为AJAX格式?

我尚未测试此代码,因此您可能需要对其进行调试,但希望能让您走上正轨。然而,这有几个步骤

  • 创建一个
    脚本include
    ,用于提取数据并发送对ajax调用的响应
  • 使用
    GlideAjax
    客户端脚本调用此脚本include
  • 处理AJAX响应并填充表单。
    • 这是#2
  • 有几个很好的网站可以看看


    1。脚本Include-在这里,您将创建提取数据并响应ajax调用的方法

    此脚本包含对象具有以下详细信息

    • 名称:受益人联系人
    • 参数:
      • sysparm_my_userid-员工的用户ID
      • sysparm\u my\u relativeid-相对系统id
    确保选中脚本include options中的“Client callable”



    2。客户端脚本-在这里,您将使用
    客户端脚本

    function onChange(control, oldValue, newValue, isLoading, isTemplate) {
        if (isLoading || newValue === '') {
            return;
        }
        var usr = g_user.userID;
        var related = $('family_member_1').value;
    
        var ga = new GlideAjax('BeneficiaryContact'); // call the object
        ga.addParam('sysparm_name', 'getContact'); // call the function
        ga.addParam('sysparm_my_userid', usr); // pass in userID
        ga.addParam('sysparm_my_relativeid', related); // pass in relative sys_id
        ga.getXML(populateBeneficiary); 
    }
    

    3。处理AJAX响应-处理来自#2的响应

    这是客户端脚本的一部分

    在这里,我以
    答案.has_value
    检查为例,但您可能希望删除它,直到它起作用并完成调试

    function populateBeneficiary(response) {      
        var answer = response.responseXML.documentElement.getAttribute("answer");          
    
        answer = answer.evalJSON(); // convert json in to an object   
    
        // check if a value was found
        if (answer.has_value) {
            var dob = answer.date_of_birth;
            var arr = dob.split("-");
            var date = arr[1] + "/"+ arr[2] + "/" + arr[0];
    
            $('fm1_ssn').value = answer.ssn;
            $('fm1_address').value = answer.address; 
            $('fm1_email').value = answer.email;
            $('fm1_phone').value = answer.mobile_phone;
            $('fm1_date_of_birth').value = date;
        }
        else {
            g_form.addErrorMessage('A beneficiary was not found.');
        }
    }
    
    function populateBeneficiary(response) {      
        var answer = response.responseXML.documentElement.getAttribute("answer");          
    
        answer = answer.evalJSON(); // convert json in to an object   
    
        // check if a value was found
        if (answer.has_value) {
            var dob = answer.date_of_birth;
            var arr = dob.split("-");
            var date = arr[1] + "/"+ arr[2] + "/" + arr[0];
    
            $('fm1_ssn').value = answer.ssn;
            $('fm1_address').value = answer.address; 
            $('fm1_email').value = answer.email;
            $('fm1_phone').value = answer.mobile_phone;
            $('fm1_date_of_birth').value = date;
        }
        else {
            g_form.addErrorMessage('A beneficiary was not found.');
        }
    }