在Dynamics 365和JavaScript中显示相关实体

时间:2019-02-05 21:27:54

标签: javascript dynamics-crm microsoft-dynamics dynamics-365 dynamics-crm-365

我创建了具有3个字段的实体:

  • 文本字段
  • 数字字段
  • 与帐户的关系

我创建了JS代码以显示或编辑这些字段,但是有没有办法使用我实际实体中的formContext显示来自Account实体的数据?

function test(executionContext) {
    var formContext = executionContext.getFormContext();    

    //text
    var text = formContext.data.entity.attributes.getByName('new_text').getValue();
    text.setValue("new text");

    //number
    var number = formContext.data.entity.attributes.getByName('new_number').getValue();
    number.setValue(5);

    //id field for another entity
    var number = formContext.data.entity.attributes.getByName('new_accountid').getValue();

    //my ideal solution would've look like this, but it doesn't working
    number.getParent().attributes.getByName('account_name').getValue();

}

1 个答案:

答案 0 :(得分:3)

与帐户的关系是一个查找字段。 How to get/set the lookup attribute value?

您可以通过以下方式获得其价值:

var lookup = new Array();
lookup = formContext.getAttribute("Lookup Field Name").getValue();
if (lookup != null) {
    var name = lookup[0].name;
    var id = lookup[0].id;
    var entityType = lookup[0].entityType;
}

您可以通过以下方式设置其值:

formContext.getAttribute("Lookup Field Name").setValue([{ id: recordid, name: recordname, entityType: entityname}]);

如果您只想以当前实体形式显示该查找记录中的其他属性,则可以使用当前实体中该查找实体的快速查看表单

如果要从“帐户查找记录”中检索不同的属性并将其设置为当前实体表单字段,请使用Xrm.Webapi来获取它并设置值。