正如问题所暗示的那样,我需要了解如何访问通过查找传递给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);
}}
从下面的代码行可以看到,使用name操作符,我可以访问Type实体的Type字段。
// create the weighting variable
var weighting = type[0].name.substring(4) + "-" + region;我现在正在寻找一种方法来访问存储在我的类型对象中的值。它有以下字段new_type、new_description、new_value和new_kind。
我想我要找的东西是这样的:
// use value of entity to assign to our form field
Xrm.Page.data.entity.attributes.get(Potential).setValue(type[0].getAttribute("new_value"));提前感谢您的帮助。
致以敬意,
漫画
发布于 2013-07-19 20:08:25
在这种情况下,REST OData调用绝对是最佳选择。您已经有了id,您只需要检索一些附加值。Here is a sample帮助您入门。使用Odata IMHO最难的部分是创建请求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"用您的odata rest端点替换OdataRestURL,您应该已经准备好了。
发布于 2013-07-19 18:53:14
是的,Guido Preite是对的。您需要通过id检索实体,该id来自Rest同步或异步查找。然后获取Json对象。然而,为了使返回的对象变得轻巧,您可以提到哪些字段将作为Json的一部分进行支持。现在,您可以访问所需的那些字段。
https://stackoverflow.com/questions/17732524
复制相似问题