CRM2011如何在Javascript中按实体名称获取对象类型代码?

nix*_*ojo 4 dynamics-crm-2011

我在表单中有一个查找字段,在选择相关实体进行查找之前,我检查一些条件,如果没有通过,我会覆盖查找onclick事件来提醒用户; 否则,我需要覆盖onclick事件以显示查找窗口以允许用户选择实体.

所以我需要这个查找的对象类型代码,但在select之前没有值,那么我无法通过使用以下代码获取对象类型代码:var objecttypecode = Xrm.Page.getAttribute("field id").getValue( )[0] .TYPE;

如何按实体名称获取对象类型代码?

nix*_*ojo 5

我找到了方法:

function GetObjectTypeCode(entityName) {
    try {
        var lookupService = new RemoteCommand("LookupService", "RetrieveTypeCode");
        lookupService.SetParameter("entityName", entityName);
        var result = lookupService.Execute();

        if (result.Success && typeof result.ReturnValue == "number") {
            return result.ReturnValue;
        }
        else {
            return null;
        }
    }
    catch (ex) {
        throw ex;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然这可能现在可行,但据我所知,在自定义代码中使用RemoteCommand始终不受支持,并且不能保证始终有效. (2认同)
  • @Arsenal:使用不受支持和未记录的API的理由值得商榷.如果简单性超过让自己(和潜在客户)冒着将来的CRM更新破坏您的代码的风险,那么这可能会为个人"证明".如果您关心质量和可靠性,我非常怀疑它可以被称为良好实践. (2认同)