如何在客户端动态填充查找字段

时间:2018-05-17 14:37:45

标签: javascript dynamics-crm lookup dynamics-crm-2016 xrm

我使用动态crm 2016,我的任务是复制客户端的记录(没有插件)所以使用onload事件我调用一个函数来获取具有我所有属性的对象(是复制到..),我可以填写我的表单中的所有字段,除了查找字段。我在我的fetch 3值的数据中使用: name:字段中显示的数据' value:实体引用的guid和多个类型.. 要填充查找字段,我需要id和类型的实体名称。 ***代码必须是通用的 两个问题出现了:

1 。如果是,那么类型值是否可用于填充实体类型字段?如何?
2 。我可以在旧字段中填充新字段中的name属性吗?

我得到的数据示例:

Attributes
:
name
:
"this is the name"
type
:
"10026"  -- Can I get the entity name (Account,Contact etc...) according to this val?
__proto__
:
Object
Value
:
"{6BddfDC-8B10-47F4-BC49-A537d2E43E}"

2 个答案:

答案 0 :(得分:0)

  1. 不确定从哪里获得实体类型代码objecttypecode(10026),您可能需要将源更改为存储实体类型名称(逻辑名称)。由于用于存储查找值的对象数组需要 guid,因此显示名称&类似[{ id: recordid, name: recordName, entityType: entityName }]。否则,就像您评论的那样,您需要从元数据中提取或将一些键:值对存储为枚举。

  2. 您可以从旧字段获取所有需要的属性。设置为如下所示的新字段。

  3. -

    var lookupObjValue = Xrm.Page.getAttribute(old_lookupSchemaName).getValue();
    
    var lookupEntityType = lookupObjValue[0].entityType, //To get EntityName
    lookupRecordGuid = lookupObjValue[0].id, // To get record GUID
    lookupRecordName = lookupObjValue[0].name; //To get record Name 
    
    Xrm.Page.getAttribute(new_lookupSchemaName).setValue([{ id: lookupRecordGuid, name: lookupRecordName, entityType: lookupEntityType }]);
    

答案 1 :(得分:0)

如果您的要求对我来说没有代码(插件),那么使用JavaScript来实现同样的做法似乎有点作弊。

您应该调查使用CRM工作流程可以完成多少工作,制定一个可由功能支持人员而不是技术人员支持的解决方案。

然后,您可以选择使用JavaScript

触发工作流程