我通过名为lookupToB
的查找字段Entity A
和Entity B
N:1 Relationship
。 在Entity A
和Entity B
中,我有一个名为grouping
的选项集字段,使用相同的全局选项集值。 我需要做的是,我想为实体 A 中的字段grouping
设置值,与字段分组 B 相同 如果关系存在。
我知道我们可以为此使用工作流,但我更喜欢使用 javascript。
我可以使用此代码获取实体 B 的name
、id
和entityType
,并填充在实体 A 中的一个自定义字段中。
//get value in lookup(Entity B)
var LookuptoB = Xrm.Page.data.entity.attributes.get("lookuptob").getValue()[0].name;
var LookuptoBID = Xrm.Page.data.entity.attributes.get("lookuptob").getValue()[0].id;
var LookuptoBType = Xrm.Page.data.entity.attributes.get("lookuptob").getValue()[0].entityType;
//Set value into custom field A of Entity A
Xrm.Page.getAttribute("custom_fielda").setValue(LookuptoB + LookuptoBID + LookuptoBType);
Xrm.Page.getAttribute("custom_fielda").setSubmitMode("always");
但是,我无法获得实体 B 的任何其他属性。例如:
//Get option set value in Entity B
var optionSetB = Xrm.Page.data.entity.attributes.get("lookuptob").getValue()[0].new_grouping;
//Set option set Value in Entity A
Xrm.Page.getAttribute("new_grouping").setValue(optionSetB);
Xrm.Page.getAttribute("new_grouping").setSubmitMode("always");
我认为这不是获取和设置选项集字段布尔值和选项集属性方法的值的正确方法。但是当我尝试获取实体 B 的name
、id
和entityType
之外的其他属性并填充在实体 A 的一个自定义字段中时,该值显示在undefined
中的该自定义字段中。
几个事实:
- 查找字段是一种关系,将具有父实体名称,外键guid和该父记录的显示名称
- 要提取该父实体的额外属性(例如分组选项列表),您必须进行 sdk 调用以检索和设置子实体
- 如果您有查找(n:1 关系),则不需要自定义属性来存储串联值
- 还有其他方法可以实现这一点