我已经创建了一个实体,我想要一个选项以创建形式显示所有实体,我该怎么做? 在流程表单中设置选项之类的东西:
答案 0 :(得分:3)
这里有一些JavaScript代码可检索所有实体
以下是有关代码的一些关键点
_
)在top
框架上可用,但在其他情况下可能不可用$select
和EntityTypeCode
个属性代码:
DisplayName
此代码返回一个var underscore = top["_"];
var entityMetadata = (function(_) {
return { retrieve: queryMetadata };
function buildEntityList(data)
{
var entities = _.chain(data.entities)
.map(function(entity) {
return {
"Name": entity.DisplayName.UserLocalizedLabel.Label,
"ETC": entity.ObjectTypeCode
};
})
.sortBy("Name")
.value();
return entities;
}
function queryMetadata()
{
var select = "$select=DisplayName,ObjectTypeCode";
var filter = "$filter="
filter += "IsBPFEntity eq false";
filter += " and IsIntersect eq false";
filter += " and IsActivity eq false";
filter += " and IsActivityParty eq false";
filter += " and CanTriggerWorkflow eq true";
filter += " and IsValidForAdvancedFind eq true";
var p = Xrm.WebApi.retrieveMultipleRecords("EntityDefinitions", "?" + select + "&" + filter).then(buildEntityList);
return p;
}
})(underscore);
,其中所有实体均符合上述条件。调用方法如下,并将结果写入浏览器控制台:
promise
这会将所有显示名称和实体类型代码输出到控制台,如下所示:
StackOverflow上的其他答案显示了如何使用entityMetadata.retrieve().then(console.log);
构建select
控件,因此在此不再赘述。
答案 1 :(得分:0)
您可以创建包含所有实体的静态选项集,也可以使用动态填充onLoad的选项集创建自定义Web资源,然后在用户选择选项后,将实体名称存储在表单上的字段中。第二种选择通常是我要做的。
答案 2 :(得分:0)
您可以使用WebApi查询元数据。在这里,您可以检索实体及其包含的每个字段的列表。 https://msdn.microsoft.com/en-us/library/mt607522.aspx