繁体   English   中英

如何从CRM 2011 javascript odata函数返回数据?

[英]How to return data from CRM 2011 javascript odata function?

我还没做到这一点,这似乎很愚蠢。 我正在使用网上常见的代码来进行odata查询。 问题是结果保留在getFieldData(retrieveReq)例程中。 我不想立即在当前表单上设置一个字段。 如何从中获取价值,以便可以在其他javascript函数中使用数据? 全局变量会很好,但是我尝试过的任何方法都没有用。 下面的代码显示“ x”。

var var1 = "x"; odataquery(); alert(var1);

此处给出的示例有两个显示数据的警报。 Id和Name如何才能超出该功能的范围?

Edit1:下面是调用getFieldData(this)的例程的主要部分。 我想在其他JavaScript函数中使用OwnerBUID和OwnerBUName。

    var retrieveReq = new XMLHttpRequest();
    retrieveReq.open("GET", odataSelect, false);
    retrieveReq.setRequestHeader("Accept", "application/json");
    retrieveReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    retrieveReq.onreadystatechange = function () {
        getFieldData(this);
    };
    retrieveReq.send();

function getFieldData(retrieveReq) {
    if (retrieveReq.readyState == 4 && retrieveReq.status == 200) {  
        // 4=request complete, 200=OK
        var retrieved = this.parent.JSON.parse(retrieveReq.responseText).d;
        var retrievedValue = retrieved.results[0].BusinessUnitId;
        OwnerBUID = retrievedValue.Id;
        OwnerBUName = retrievedValue.Name;
    }
}

我猜您想将数据作为javascript函数的返回值。 您可以执行以下操作:var returnData = function getFieldData(retrieveReq){...返回数据; }

顺便说一句,您可以考虑在客户端应用程序中使用JayData,Breeze和Datajs源代码包。 他们使用JavaScript使用低级API来使用odata服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM