0

正如问题所暗示的,我需要了解如何通过查找访问已传递给 JavaScript 函数的实体数据。

JavaScript 代码如下:

// function to generate the correct Weighting Value when these parameters change
function TypeAffectedOrRegionAffected_OnChanged(ExecutionContext, Type, Region, Weighting, Potential) {

var type = Xrm.Page.data.entity.attributes.get(Type).getValue();
var region = Xrm.Page.data.entity.attributes.get(Region).getValue();

// if we have values for both fields
if (type != null && region != null) {

    // create the weighting variable
    var weighting = type[0].name.substring(4) + "-" + region;

    // recreate the Weighting Value
    Xrm.Page.data.entity.attributes.get(Weighting).setValue(weighting);
}

}

正如您在使用名称运算符的以下行中看到的那样,我可以访问我的 Type 实体的 Type 字段。

// create the weighting variable
var weighting = type[0].name.substring(4) + "-" + region;

我现在正在寻找一种方法来访问存储在我的类型对象中的值。它具有以下字段new_typenew_description和。new_valuenew_kind

我想我正在寻找这样的东西:

// use value of entity to assign to our form field
Xrm.Page.data.entity.attributes.get(Potential).setValue(type[0].getAttribute("new_value"));

提前感谢您的帮助。

问候,

漫画

4

2 回答 2

1

在这种情况下,REST OData 调用绝对是要走的路。您已经有了 id,您只需要检索一些附加值。 这是一个让您入门的示例。使用 Odata 恕我直言最困难的部分是创建请求 URL。您可以在 codeplex 上找到一些工具,但我最喜欢的实际上是使用 LinqPad。只需连接到您的 Org Odata URL,它就会检索您的所有实体并允许您编写一个 LINQ 语句来为您生成 URL,您可以直接在浏览器中进行测试。

对于您的实例,它看起来像这样(它区分大小写,因此请仔细检查它是否不起作用):

"OdataRestURL/TypeSet(guid'" + type[0].Id.replace(/{/gi, "").replace(/}/gi, "") + "'select=new_type,new_description,new_value,new_kind"

将 OdataRestURL 替换为您的 odata 休息端点,您应该已准备就绪。

于 2013-07-19T12:08:24.700 回答
1

是的,Guido Preite 是对的。您需要通过 id 检索实体,该 id 来自 Rest Sync 或 Async 的查找。然后获取 Json 对象。但是,为了使返回的对象变亮,您可以提及要支持的字段作为 Json 的一部分。现在您可以访问您想要的那些字段。

于 2013-07-19T10:53:13.783 回答