CRM Javascript 使用特定字段自动填充查找值
CRM Javascript Automatically Populated a Look-up Value with a specific field
我正在尝试在 CRM Phone 呼叫页面上编写 javascript。我们有一个名为 new_department 的自定义查找字段,我们希望在打开表单时使用值 "IT"(应该有一个)自动填充该字段。
问题是我们有一个单独的开发和生产 CRM link 因此我不能只将硬编码的 GUID 值分配到该字段中。所以首先我写了一个 Rest Retrieve Multiple 来获取正确的部门。
那么我的问题是我不确定从这个 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。结果变量是 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;
我正在尝试在 CRM Phone 呼叫页面上编写 javascript。我们有一个名为 new_department 的自定义查找字段,我们希望在打开表单时使用值 "IT"(应该有一个)自动填充该字段。
问题是我们有一个单独的开发和生产 CRM link 因此我不能只将硬编码的 GUID 值分配到该字段中。所以首先我写了一个 Rest Retrieve Multiple 来获取正确的部门。
那么我的问题是我不确定从这个 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。结果变量是 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;