销售内部联络单

  1. 内部联络单号
    • 设置 > 自动编号 > new_sal_contactform
  2. 根据销售信息单自动带出 √
    • 销售信息 new_opportunity_id(内联单)
    • 客户名称 new_account_id(内联单) new_account_id(销售信息)
    • 主要联系人 new_pkcontact(内联单) new_contactname(销售信息-联系人姓名)
    • 联系电话 new_telephone(内联单) new_contacttel(销售信息-联系人电话)
    • 联系地址 new_address(内联单) new_address(销售信息-详细地址)
    • 提报单位 new_dept_id(内联单) new_dept_id(销售信息-提报单位)
    • 跟踪人 new_sales_id(内联单) new_trackor(销售信息-跟踪人)
    • 所属组织 new_organisation_id new_organisation_id(销售信息)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

function opportunityOnchange() {
///<summary>销售信息Onchange事件</summary>

//销售信息id
var new_opportunity_id = rtcrm.getLookupId("new_opportunity_id");
//查询销售信息字段(客户名称、主要联系人、联系电话、联系地址、提报单位、跟踪人)
var opportunity = rtcrm.getFieldValue(new_opportunity_id, "opportunities",
"_new_account_id_value,new_contactname,new_contacttel,new_address,_new_dept_id_value,_new_trackor_value", true);
//客户名称赋值
if (opportunity["_new_account_id_value"]) {
var new_account_id = opportunity["_new_account_id_value"];
var new_account_id_name = opportunity["_new_account_id_value@OData.Community.Display.V1.FormattedValue"];
var lookupValue = rtcrm.buildLookup(new_account_id,
new_account_id_name, "account");
rtcrm('#new_account_id').val(lookupValue);
} else {
console.log("客户名称为空");
}
//主要联系人赋值
if (opportunity["new_contactname"]) {
var new_contactname = opportunity["new_contactname"];
rtcrm("#new_pkcontact").val(new_contactname);
} else {
console.log("主要联系人为空");
}
//联系电话赋值
if (opportunity["new_contacttel"]) {
var new_contacttel = opportunity["new_contacttel"];
rtcrm("#new_telephone").val(new_contacttel);
} else {
console.log("联系电话为空");
}
//联系地址赋值
if (opportunity["new_address"]) {
var new_address = opportunity["new_address"];
rtcrm("#new_address").val(new_address);
} else {
console.log("联系地址为空");
}
//提报单位赋值
if (opportunity["_new_dept_id_value"]) {
var new_dept_id = opportunity["_new_dept_id_value"];
var new_dept_id_name = opportunity["_new_dept_id_value@OData.Community.Display.V1.FormattedValue"];
var lookupValue = rtcrm.buildLookup(new_dept_id,
new_dept_id_name, "businessunit");
rtcrm('#new_dept_id').val(lookupValue);
} else {
console.log("提报单位为空");
}
//跟踪人赋值
if (opportunity["_new_trackor_value"]) {
var new_trackor_id = opportunity["_new_trackor_value"];
var new_trackor_id_name = opportunity["_new_trackor_value@OData.Community.Display.V1.FormattedValue"];
var lookupValue = rtcrm.buildLookup(new_trackor_id,
new_trackor_id_name, "new_ord_sales");
rtcrm('#new_sales_id').val(lookupValue);
} else {
console.log("跟踪人为空");
}
}
  1. 处理状态
    • picklist字段;分为:制单、处理中、已处理、已完成;
    • 1.处理状态初始值默认为’制单‘;
    • 2.点击处理后,更新处理状态为’已处理‘;
    • new_dealstatus
  2. 审核状态
    • picklist字段:分为:制单、审核中、已审核、已驳回、已否决
    • 1.审核状态初始值为制单;
    • 2.点击提交后,更新审核状态为审核中;
    • 3.审核后,更新审核状态为已审核或者已驳回;
    • new_approvalstatus
  3. 处理按钮
    • 点击处理后,更新处理状态为’已处理‘
    • 处理中已审核时,责任人和当前账户一致时显示
    • 注册按钮
      • 显示隐藏控制 enable rules
        • customRule

  1. 完成按钮

    • 点击完成按钮,更新处理状态为‘已完成’
    • 已处理已审核时,单据负责人和当前账户一致时显示
  2. 场景动作

    • 1.点击提交
      • 1.1 更新处理状态为‘处理中’
      • 1.2 更新审核状态为‘审核中’
      • 电商运营部负责人审核
    • 2.同意
      • 2.1更新审核状态为‘已审核’
    • 3.驳回
      • 3.1更新处理状态为‘制单’
      • 3.2更新审核状态为‘已驳回’
  3. 签核流程自动化

    • 新建解决方案
    • 添加现有实体
    • 添加必须组件 > 否
    • 设置 > 签核流程自动化
    • 输入解决方案名称 > 无审核驳回等字段点添加字段(标准签核流不建议自己建) > 无提交撤回等按钮选择添加按钮
  4. 销售内联单产品明细

    • new_contactformproduct 销售内联单产品明细
    • test 销售信息 4CBB33BE-B2A7-4873-8246-E855F762D60B
    • new_name 名称
    • new_productgroup_id 产品组
    • new_tonlevel_id 吨级
    • new_productmodel_id 产品型号
    • new_number 需求数量
    • new_plandealmoney 预计成交单价
    • new_actualdealmoney 实际成交单价
    • new_plandealtime 预计成交年月
    • new_actualamount 实际成交金额
    • 配置窗体时选择子网格属性即可将明细与主档根据字段关联

  1. js打开视图表单
1
2
3
4
5
6
7
8
openEntityForm: function (name, id, parameters, windowOptions) {
/// <summary>对openEntityForm函数的封装,打开CRM页面</summary>
/// <param name="name" type="String">实体名称</param>
/// <param name="id" type="String">实体ID,若为空,则打开新建页面</param>
/// <param name="parameters" type="Object">将参数带入窗体中</param>
/// <param name="windowOptions" type="Object">若 openInNewWindow 属性设置为 true,则将在新窗体中打开一个窗口。此参数在 Dynamics 365 移动客户端(电话和平板)中被忽略。</param>
Xrm.Utility.openEntityForm(name, id, parameters, windowOptions);
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function OpenNewContact() {
var parameters = {};
//Set the Parent Customer field value to "Contoso".
parameters["parentcustomerid"] = "2878282E-94D6-E111-9B1D-00155D9D700B";
parameters["parentcustomeridname"] = "Contoso";
parameters["parentcustomeridtype"] = "account";
//Set the Address Type to "Primary".
parameters["address1_addresstypecode"] = "3";
//Set text in the Description field.
parameters["description"] = "Default values for this record were set programmatically.";
//Set Do not allow E-mails to "Do Not Allow".
parameters["donotemail"] = "1";

// Open the window.
Xrm.Utility.openEntityForm("contact", null, parameters);
}
  1. 小细节
    • pickList赋值用OptionSetValue(int)
    • js文件无法上传至正式环境web资源时,先在测试环境上传,并新建解决方案,将web资源添加至解决方案后导出再导入正式环境
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2020 李明华
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信