2017-10-23 52 views
1

私はServiceNowの新機能です 私は2つのテーブル会社と場所を持っています。ServiceNowの参考値での問題

ロケーションテーブルには列名があります。 会社のテーブルには、列の名前と場所があります。ここで、場所のタイプは参照です。

会社とロケーションテーブルのデータは以下のとおりです。

場所
名前
チェンナイ HYD

会社
名前     場所
ABC        チェンナイ
CDE         HYD

私の仕事は、会社のテーブルから名前と場所を問い合わせることです。以下のようなクエリ。常にここ

var company = new GlideRecord('u_company'); 
subCat.query(); 

while (company.next()) { 
    alert("Location: " + company.location);   

}

値はヘキサデシマル値です。実際の場所のテキスト値を取得するにはどうすればよいですか?

+0

_Client Script_または_Business Rule_などのサーバースクリプトでこれを実行していますか?私は、あなたの例がクライアント側にある「警告」を持っているので推測しています。 – Kirk

答えて

1

あなたが見ているのはlocation参照フィールドのsys_idです。

ビジネスルールでこれを実行している場合は、getRefRecord()メソッドを使用してこれを簡単に引き出すことができます。

var company = new GlideRecord('u_company'); 
company.query(); 

while (company.next()) { 
    var loc = company.location.getRefRecord() 

    gs.log("Company Name: " + company.getValue('name')); 
    gs.log("Location Name: " + loc.getValue('name')); 
} 

あなたはクライアントスクリプトとしてこれをやっている場合は、それは少しより複雑ですが、あなたはGlideAjaxを使用することができます。そこの例を見てくださいが、ここには簡単な例があります。

新しいスクリプトを作成します。クライアントには、というクライアント呼び出し可能文字列が含まれています。

var MyCompanyUtils = Class.create(); 
MyCompanyUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, { 

    getLocationName : function() { 
     // parameters 
     var company = this.getParameter('sysparm_my_company'); 

     // query 
     var rec = new GlideRecord('u_company'); 
     rec.addQuery('sys_id', company); 
     rec.query(); 

     data = "Company not found." 
     while (rec.next()) { 
      var loc = rec.location.getRefRecord(); 
      data = loc.name; 
     } 

     return data; 
    }, 

    type : "MyCompanyUtils" 
}); 

このスクリプトを呼び出すクライアントスクリプトを作成します。

function onChange(control, oldValue, newValue, isLoading, isTemplate) { 
    if (isLoading || newValue === '') { 
     return; 
    } 
    // get the company referece value 
    var company = g_form.getValue('company'); 

    var ga = new GlideAjax('MyCompanyUtils'); // call the object 
    ga.addParam('sysparm_name', 'getLocationName'); // call the function 
    ga.addParam('sysparm_my_company', company); // pass in company 
    ga.getXML(showLocation); 
} 

function showLocation(response) { 
    var answer = response.responseXML.documentElement.getAttribute("answer"); 

    alert("Location: " + answer); 
}