none
webapiで検索フィールドの値の取得方法 RRS feed

  • 質問

  • お世話になります。

    webapiで、検索フィールドの値を取得したいと考えておりますが、

    GUIDが取得されますが、値を取得する方法をご教授お願いします。

    下記コードで、検索フィールド(new_lk_place)の値を取得したいです。

    /* *** エンティティ名 *** */
    const ENTITY_JOB  = "new_job";
    // new_date    :作業日時(日付フィールド)
    // new_lk_place:作業場所(検索フィールド)
    // new_comment :作業内容(テキストフィールド)
    
    /* *** データ取得処理 *** */
    // ①アクセスURL取得
    // ②データ取得及び表示
    function main(){
        var entityList = [ENTITY_JOB];
        for(var i = 0; i < entityList.length; i++){
            // ①アクセスURL取得
            var accessURL = getURL(entityList[i]);
            
            // ②データ取得及び表示
            if(accessURL != null && accessURL != "") {
                getEntityData(entityList[i],accessURL);
            }
        }
    }
    
    /* *** アドレス取得処理 *** */
    function getURL(entityName){
        // エンティティURL
        var entityUrl = Xrm.Page.context.getClientUrl();
        entityUrl += '/api/data/v';
        var version = Xrm.Page.context.getVersion().split(".");
        entityUrl += version[0] + "." + version[1] + "/";
        entityUrl += entityName;
    
        // 抽出フィールド及びフィルター条件
        var options = "";
        switch(entityName){
            // 作業活動
            case ENTITY_JOB:
                options  = '$select=new_date';
                options += ',new_lk_place';
                options += ',new_comment';
                options += "&$filter=";
                options += "new_comment" + " ne " + null;
                break;
        }
        return (entityUrl + '?' + options);
    }
    
    /* *** データ取得処理 *** */
    function getEntityData(entityName,accessUrl){
        var xhr = new XMLHttpRequest();
        xhr.open("GET", encodeURI(accessUrl), false);
        xhr.setRequestHeader('Accept', 'application/json');
        xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
        xhr.setRequestHeader('OData-MaxVersion', '4.0');
        xhr.setRequestHeader('OData-Version', '4.0');
        xhr.setRequestHeader('Prefer', 'odata.include-annotations="*"');
    
        // ハンドラ登録
        xhr.onreadystatechange = function () {
            if(this.readyState == 4) {
                if(this.status == 200) {
                    var entityData = JSON.parse(this.response);
                    if(entityData["value"].length <= 0){
                        return;
                    }
                    else{
                        // 表示処理
                        viewEntityData(entityName,entityData);
                    }
                }
                else {
                    var error = JSON.parse(this.response).error;
                    Xrm.Utility.alertDialog(error.message, function () { });
                }
            }
        };
        xhr.send();
        xhr.abort(); 
    }
    
    /* *** 表示処理 *** */
    function viewEntityData(entityName,entityData){
        var viewData = "";
        for(var i = 0; i < entityData["value"].length; i++){
            switch(entityName){
                // 作業活動
                case ENTITY_JOB:
                    viewData += entityData["value"][i].new_date + ":";
                    viewData += entityData["value"][i].new_lk_place + ":";
                    viewData += entityData["value"][i].new_comment + "\n";
                    break;
            }
        }
        alert(entityName + ":" + viewData);
    }


    • 編集済み rias.crm 2019年4月22日 7:08
    2019年4月22日 7:04