function serviceCatalogOnChange(attrCode) {
var new_2nd_id, new_1st_id, new_capability_id, new_type_id;
var new_2nd = Xrm.Page.getAttribute("new_service_catalog_2nd").getValue();
var new_1st = Xrm.Page.getAttribute("new_service_catalog_1st").getValue();
var new_capability = Xrm.Page.getAttribute("new_industry_and_service_capability").getValue();
var new_type = Xrm.Page.getAttribute("new_service_type").getValue();
if (new_2nd != null && new_2nd != undefined && new_2nd != "") {
new_2nd_id = new_2nd[0].id.toString().replace('{', '').replace('}', '');
}
if (new_1st != null && new_1st != undefined && new_1st != "") {
new_1st_id = new_1st[0].id.toString().replace('{', '').replace('}', '');
}
if (new_capability != null && new_capability != undefined && new_capability != "") {
new_capability_id = new_capability[0].id.toString().replace('{', '').replace('}', '');
}
if (new_type != null && new_type != undefined && new_type != "") {
new_type_id = new_type[0].id.toString().replace('{', '').replace('}', '');
}
switch (attrCode) {
case 0: //服务类别
if (new_type_id == null || new_type_id == undefined || new_type_id == "") {
Xrm.Page.getAttribute("new_industry_and_service_capability").setValue(null);
Xrm.Page.getAttribute("new_service_catalog_1st").setValue(null);
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
return;
}
if (new_capability_id != null && new_capability_id != undefined && new_capability_id != "") {
var Entity = "new_industry_and_service_capability";
var Id = new_capability_id;
var Select = "?$select=_new_service_type_value";
//查询行业/能力的记录
Xrm.WebApi.retrieveRecord(Entity, Id, Select).then(
function success(result) {
if (new_type_id.toLowerCase() !== result["_new_service_type_value"]) {
Xrm.Page.getAttribute("new_industry_and_service_capability").setValue(null);
Xrm.Page.getAttribute("new_service_catalog_1st").setValue(null);
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
else {
if (new_1st_id != null && new_1st_id != undefined && new_1st_id != "") {
var Entity = "new_service_catalog_1st";
var Id = new_1st_id;
var Select = "?$select=_new_industry_and_service_capability_value";
//查找一级服务目录的记录
Xrm.WebApi.retrieveRecord(Entity, Id, Select).then(
function success(result) {
if (new_capability_id.toLowerCase() !== result["_new_industry_and_service_capability_value"]) {
Xrm.Page.getAttribute("new_service_catalog_1st").setValue(null);
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
else if (new_2nd_id != null && new_2nd_id != undefined && new_2nd_id != "") {
var Entity = "new_service_catalog_2nd";
var Id = new_2nd_id;
var Select = "?$select=_new_service_catalog_1st_value";
//查找二级服务目录的记录
Xrm.WebApi.retrieveRecord(Entity, Id, Select).then(
function success(result) {
if (new_1st_id.toLowerCase() !== result["_new_service_catalog_1st_value"]) {
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
},
function (error) {
console.log(error.message);
}
);
}
},
function (error) {
console.log(error.message);
}
);
}
else {
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
}
},
function (error) {
console.log(error.message);
}
);
}
else {
Xrm.Page.getAttribute("new_industry_and_service_capability").setValue(null);
Xrm.Page.getAttribute("new_service_catalog_1st").setValue(null);
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
break;
case 1: //行业/能力
if (new_capability_id != null && new_capability_id != undefined && new_capability_id != "") {
var Entity = "new_industry_and_service_capability";
var Id = new_capability_id;
var Select = "?$select=_new_service_type_value";
//查询行业/能力的记录
Xrm.WebApi.retrieveRecord(Entity, Id, Select).then(
function success(result) {
setRelatedAttribute(result, "new_service_type", new_type_id);
},
function (error) {
console.log(error.message);
}
);
if (new_1st_id != null && new_1st_id != undefined && new_1st_id != "") {
var Entity = "new_service_catalog_1st";
var Id = new_1st_id;
var Select = "?$select=_new_industry_and_service_capability_value";
//查找一级服务目录的记录
Xrm.WebApi.retrieveRecord(Entity, Id, Select).then(
function success(result) {
if (new_capability_id.toLowerCase() !== result["_new_industry_and_service_capability_value"]) {
Xrm.Page.getAttribute("new_service_catalog_1st").setValue(null);
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
else if (new_2nd_id != null && new_2nd_id != undefined && new_2nd_id != "") {
var Entity = "new_service_catalog_2nd";
var Id = new_2nd_id;
var Select = "?$select=_new_service_catalog_1st_value";
//查找二级服务目录的记录
Xrm.WebApi.retrieveRecord(Entity, Id, Select).then(
function success(result) {
if (new_1st_id.toLowerCase() !== result["_new_service_catalog_1st_value"]) {
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
},
function (error) {
console.log(error.message);
}
);
}
},
function (error) {
console.log(error.message);
}
);
}
else {
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
}
else {
Xrm.Page.getAttribute("new_service_catalog_1st").setValue(null);
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
break;
case 2: //一级服务目录
if (new_1st_id != null && new_1st_id != undefined && new_1st_id != "") {
var Entity = "new_service_catalog_1st";
var Id = new_1st_id;
var Select = "?$select=_new_industry_and_service_capability_value,_new_service_type_value";
//查找一级服务目录的记录
Xrm.WebApi.retrieveRecord(Entity, Id, Select).then(
function success(result) {
setRelatedAttribute(result, "new_industry_and_service_capability", new_capability_id);
setRelatedAttribute(result, "new_service_type", new_type_id);
},
function (error) {
console.log(error.message);
}
);
if (new_2nd_id != null && new_2nd_id != undefined && new_2nd_id != "") {
var Entity = "new_service_catalog_2nd";
var Id = new_2nd_id;
var Select = "?$select=_new_service_catalog_1st_value";
//查找二级服务目录的记录
Xrm.WebApi.retrieveRecord(Entity, Id, Select).then(
function success(result) {
if (new_1st_id.toLowerCase() !== result["_new_service_catalog_1st_value"]) {
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
},
function (error) {
console.log(error.message);
}
);
}
}
else {
Xrm.Page.getAttribute("new_service_catalog_2nd").setValue(null);
}
break;
case 3: //二级服务目录
if (new_2nd_id != null && new_2nd_id != undefined && new_2nd_id != "") {
var Entity = "new_service_catalog_2nd";
var Id = new_2nd_id;
var Select = "?$select=_new_service_catalog_1st_value,_new_industry_and_service_capability_value,_new_service_type_value";
//查找二级服务目录的记录
Xrm.WebApi.retrieveRecord(Entity, Id, Select).then(
function success(result) {
setRelatedAttribute(result, "new_service_catalog_1st", new_1st_id);
setRelatedAttribute(result, "new_industry_and_service_capability", new_capability_id);
setRelatedAttribute(result, "new_service_type", new_type_id);
},
function (error) {
console.log(error.message);
}
);
}
}
}
function setRelatedAttribute(result, attributeName, currentId) {
if (currentId != undefined && currentId != null && currentId != "" && currentId.toLowerCase() === result["_" + attributeName + "_value"]) {
return;
}
var arr = new Array();
arr[0] = new Object();
arr[0].id = result["_" + attributeName + "_value"];
arr[0].name = result["_" + attributeName + "_value@OData.Community.Display.V1.FormattedValue"];
arr[0].entityType = result["_" + attributeName + "_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
Xrm.Page.getAttribute(attributeName).setValue(arr);
}
Dynamics crm js实现级联查询处理(正向级联和反向级联)
最新推荐文章于 2022-12-12 11:44:17 发布