CRM Javascript使用特定字段自动填充查找值

CRM Javascript Automatically Populated a Look-up Value with a specific field

本文关键字:填充 查找 字段 Javascript CRM      更新时间:2023-09-26

我正试图在CRM电话呼叫页面上编写一个javascript。我们有一个名为new_department的自定义查找字段,我们希望在打开表单时自动填充值为"IT"的字段(应该有一个)。

问题是我们有一个单独的开发和生产CRM链接,因此我不能只在这个字段中分配一个硬编码的GUID值。因此,首先我写了一个Rest Retrieve Multiple来获得正确的部门。

然后我的问题是,我不确定从这个检索多个返回的结果。如何仅从Rest获取GUID?我看到这是一种{Object}。最后,在检索{Object}之后,如何设置查找值?非常感谢您的帮助。

这是我的密码。

function phonecall() {
var formType = Xrm.Page.ui.getFormType();
if (formType == 1) //create
{
    //RetrieveMultiple function
    var DepartmentId = getITDepartment();
    //set the lookup value
    var ID = DepartmentId.id;
    var departmentValue = new Array();
    departmentValue[0] = new Object();
    departmentValue[0].id = DepartmentId;
    departmentValue[0].name = 'IT';
    userValue[0].entityType = "new_department";        
    Xrm.Page.getAttribute("new_department").setValue(departmentValue);
}
}
function getITDepartment()
{
XrmServiceToolkit.Rest.RetrieveMultiple("new_departmentSet", "$select=new_departmentId&$filter=new_name eq 'IT'",
   function (results) {
       if (results.length > 0)
           resultList = results;
   }, function (error) { alert(error); }, function onComplete() { }, false);
return resultList;
}

非常感谢。

我不熟悉XrmServiceToolkit,但这里的代码如何正常工作-我只替换了分配部分:

var DepartmentId = getITDepartment();
if (DepartmentId != null && DepartmentId.length > 0){
    Xrm.Page.getAttribute("new_department").setValue([{
    id: DepartmentId[0].new_departmentId,
    name: "IT",
    entityType: "new_department"
    }]);
}

您正确设置了查找值,只需要正确获取Id即可。results变量是一个new_department记录数组,所以可以尝试以下操作:

var resultId = null;
XrmServiceToolkit.Rest.RetrieveMultiple("new_departmentSet", "$select=new_departmentId&$filter=new_name eq 'IT'",
   function (results) {
       if (results.length > 0)
           resultId = results[0].new_departmentId; //gets the first record's Id
   }, function (error) { alert(error); }, function onComplete() { }, false);
return resultId;