1CRM解决方案备份
通过导航菜单:系统管理→自定义→解决方案,右侧内容区域加载解决主要内容,如下图所示:
图表1-1解决方案导航
选中某个解决方案,点击“导出”按钮,如下图所示:
点击“下一步”按钮,如下图所示:
图表1-4导出系统设计界面点击“下一步”按钮,如下图所示:
图表1-5导出设置包类型界面点击“导出”按钮,如下图所示:
图表1-6保存解决方案界面
点击“保存”按钮进行保存。
2CRM脚本代码
2.1CRM窗体类型
var FORM_TYPE_CREATE = 1;
var FORM_TYPE_UPDATE = 2;
var FORM_TYPE_READ_ONLY = 3;
var FORM_TYPE_DISABLED = 4;
var FORM_TYPE_QUICK_CREATE = 5;
var FORM_TYPE_BULK_EDIT = 6;
2.2CRM页面读取实体
function GetEntityById(id, restFunctionName) { var constants = new PubConstant();
var ODataPath = https://www.wendangku.net/doc/e37616091.html,anizationUrl;
var queryRead = ODataPath + "/" + restFunctionName + "(guid' " + id + " ')";
var Helper = new RESTHelper();
var dataRead = Helper.Read(queryRead);
//var createAccountName = dataRead.FullName;
return dataRead;
}
function GetEntityData(){
var customerID =
Xrm.Page.data.entity.attributes.get("ifs_enterprisename") .getValue()[0].id;
if (customerID == null || customerID == undefined) return;
var data = GetEntityById(customerID, "ifs_CustomerInfoSet"); }
2.3CRM页面更新实体
SDK.JQuery.updateRecord()
示例代码:
var creditLevelProject = new Object();
creditLevelProject.ifs_state = { Value: parseInt(4) } //更新评级状态
SDK.JQuery.updateRecord(contractCode, creditLevelProject, "ifs_CreditLevelProject",
function (data) {
var tempDocumentCheckResult = GetEntityByfilter("ifs_DocumentCheckResult",
"?$filter=ifs_creditlevelproject/Id eq guid'"+ contractCode + "'")
//资料核对结果
var documentCheckResult = new Object();
documentCheckResult.ifs_Status = { Value:
parseInt(225260000) }; //状态
//更新资料核对结果状态
SDK.JQuery.updateRecord(tempDocumentCheckResult.results[0 ].ifs_DocumentCheckResultId, documentCheckResult,
"ifs_DocumentCheckResult",
function (data) {
alert("提交成功|");
//关闭
Xrm.Page.ui.close();
}, function (data) { alert("提交失败!");
}
);
}, function (data) {
alert("提交失败!");
}
);
2.4CRM页面控件赋值
function GetEstimateConsultProjectInfo() {
var estimateConsultProjectID =
Xrm.Page.data.entity.attributes.get("ifs_estimateconsult" ).getValue()[0].id;
if (estimateConsultProjectID == null || estimateConsultProjectID == undefined)
return;
var data = GetEntityById(estimateConsultProjectID,
"ifs_estimateconsultSet");
//项目名称
if (data.ifs_https://www.wendangku.net/doc/e37616091.html, != null &&
data.ifs_https://www.wendangku.net/doc/e37616091.html, != undefined)
Xrm.Page.data.entity.attributes.get("ifs_projectname").se tValue(data.ifs_https://www.wendangku.net/doc/e37616091.html,);
else
Xrm.Page.data.entity.attributes.get("ifs_projectname").se
tValue(null);
//项目本金
if (data.ifs_projectbasefund.Value != null &&
data.ifs_projectbasefund.Value != undefined)
Xrm.Page.data.entity.attributes.get("ifs_projectbasefund" ).setValue(parseInt(data.ifs_projectbasefund.Value));
else
Xrm.Page.data.entity.attributes.get("ifs_projectbasefund" ).setValue(null);
//评估咨询方式
if (data.ifs_estimatetype.Value != null &&
data.ifs_estimatetype.Value != undefined)
Xrm.Page.data.entity.attributes.get("ifs_estimatetype").s etValue(parseInt(data.ifs_estimatetype.Value));
else
Xrm.Page.data.entity.attributes.get("ifs_estimatetype").s etValue(null);
}
2.5CRM页面设置LookUp
function SetCreditLevelProjectCustomerLookup() { var viewId = "{4DBA9D90-79B5-4019-A1F7-2CA5F82B1B9D}";
var ifs_enterprise_Control =
Xrm.Page.getControl("ifs_enterprisename"); //客户选择lookup
var entityName = "ifs_customerinfo";
var viewDisplayName = "可¨|用??的ì?企¨?业°|ì客¨a户?ì";
var fetchXml = " output-format='xml-platform' mapping='logical' distinct='false'>" + " " name='ifs_customerinfoid' />" + " name='ifs_customername' />" + " attribute='ifs_customername'/>" + " " attribute='ifs_customerstype' operator='eq' value='1' />"+ "" + "" + "
var layoutXml = "
" id='ifs_customerinfoid'>" + " " "
"";
ifs_enterprise_Control.addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, true); }
2.6CRM启动审批流程
function TaskBusinessContract() {
alert("启动信用评级任务单流程......");
var userid = Xrm.Page.context.getUserId();
var adid = RequestWebService(userid);
var workflowTypeInvokeMark = "CreditRating_Task";
//业务编号
var contractCode = Xrm.Page.data.entity.getId();
//业务名称
var contractName =
Xrm.Page.getControl("ifs_name").getAttribute().getValue() ;
//节点ID
var ProcessID = "";
if (crmForm.all.ifs_nodeid.DataValue != null && crmForm.all.ifs_nodeid.DataValue != "" &&
crmForm.all.ifs_nodeid.DataValue != undefined) {
ProcessID =
Xrm.Page.getControl("ifs_nodeid").getAttribute().getValue ();
}
var constants = new PubConstant();
var url = constants.WorkFlowUrl;
var pageUrl = constants.pageUrl;
if (ProcessID != "" && ProcessID != null) {
var flag = ReturnServiceflag(adid, ProcessID, contractCode);
if (flag == "True") {
crmForm.Save();
Xrm.Page.ui.close();
ProccessWorkFlow(contractCode,
encodeURI(contractName), encodeURI(contractName), ProcessID, userid, workflowTypeInvokeMark);
} else {
alert("当前用户不是该流程节点的负责人!");
}
} else {
crmForm.Save();
Xrm.Page.ui.close();
ProccessWorkFlow(contractCode,
encodeURI(contractName), encodeURI(contractName), ProcessID, userid, workflowTypeInvokeMark);
}
}
3CRM站点地图
3.1加载站点地图
打开站点地图编辑器,点击“Load SiteMap”按钮,弹出选择组织服务信息,如下图所示:
图表3-1站点地图选择服务器界面
选中一个组织服务,点击“OK”按钮,在弹出的输入密码窗体中输入用户访问信息。如下图所示:
图表3-2站点地图输入用户信息界面
点击“OK”按钮,站点地图加载成功。如下图所示:
图表3-3站点地图加载完成界面
3.2创建导航菜单
选中一个组,鼠标右键单击,选择“Add SubArea”,如下图所示:
图表3-4添加导航菜单界面
窗体右侧显示新建导航菜单的属性,在ID中输入对应的ID,Entity
中选择对应的实体,Title中输入导航菜单的显示内容。如下图所示:
图表3-5设置导航菜单属性界面
导航菜单的属性输入完成之后,点击“Save”按钮进行保存,保存之后点击“Update SiteMap”更新至CRM系统中。
3.3更新导航菜单
选中要修改的导航菜单,在右侧区域中重新输入要修改的内容,点击“Save”按钮进行保存,保存之后点击“Update SiteMap”更新至
CRM系统中。如下图所示:
图表3-6更新导航菜单属性界面
3.4删除导航菜单
选中要删除的导航菜单,点击“删除”按钮,然后点击“Update SiteMap”更新至CRM系统中。
4CRM的Ribbon可视化设计
4.1加载实体可视化按钮
双击应用程序,在弹出窗口中输入用户访问信息,点击“OK”按钮,
如下图所示:
连接CRM服务器成功,如下图所示:
图表4-2Ribbon可视化登录成功界面
点击“Open”按钮,弹出实体选择窗口,在该窗口中选择相关实体,
如下图所示:
加载实体成功,如下图所示:
图表4-4Ribbon可视化加载实体成功界面
4.2调整实体可视化按钮
在界面上选择相关的按钮,点击“Hide”按钮将其设置为隐藏,
如下图所示:
图表4-5按钮隐藏设置页面
点击“Un-Hide”按钮,将已经设置为隐藏的按钮,设置为显示,如
下图所示:
图表4-6按钮显示设置页面
点击“OK”按钮,保存成功。
4.3自定义可视化按钮
点击功能区域的“New Button”,在弹出窗口中输入相关命名属性,
点击“OK”按钮,如下图所示: