制造业 · 与工业 ERP 的集成
SellioCRM 不是 ERP:它不开票,也不排产。它做的是把订单安全地交给您的 ERP:发送前先校验,发送时不会重复,收到确认后记录 ERP 的单号,并且一旦两边出现不一致就把它指出来,而不是假装一切都对得上。与 SAP 和 NetSuite 的连接使用您自己 ERP 的凭证,在设置 → 集成中配置。
在制造业里,CRM 和 ERP 共同承担同一笔销售,而几乎所有集成问题都源自三件事之一:订单带着缺失信息就被发出去、同一个订单被发送了两次,或者两个系统对同一个订单说着不同的话却没人察觉。制造业行业模块正面处理这三件事。
各自负责什么
SellioCRM 负责商务前端:客户与工厂、产品配置、价格已冻结的报价、例外情况的审批,以及可以投产的订单。ERP 负责其余部分:开票、排产、会计口径的库存和物流。CRM 不开票,不出具税务单据,也不做库存过账。当它显示可用量时,那是 ERP 所报数据的镜像,这个区别在关于可用量与 ATP 的文章里有详细说明。
从报价到订单
订单由报价生成。基于报价创建订单时,CRM 会把各行连同已冻结的金额一起复制过来,继承币种、贸易术语和总额,并把订单与来源商机和客户绑定。订单初始状态为草稿,其 ERP 状态标记为待处理。
发送前的校验
在离开 CRM 之前,订单要通过一项检查,检查会返回一份阻断项清单。只要还有任何一项阻断项没解决,发送就会被拒绝,而这次拒绝会连同原因一起记录下来。可能出现的阻断项包括:
- 没有行项目:订单里没有任何条目。
- 总额为零:订单金额不是正数。
- 信用额度:客户没有足够的可用额度来承接这笔订单。
- 配置无效:某个已配置的行没有通过产品规则。
- 地址:缺少交付所需的地址。
- 文件:缺少必需的文件。
- 出口合规:筛查结果为拦截,且没有登记放行。
在发送前就拒绝是有意为之。一个不完整的订单进了 ERP,会变成两边的返工,而且往往变成一张谁也取消不掉的幽灵订单。
发送不会重复
发送是幂等的。CRM 会根据订单内容(含总额与各行)算出一个稳定的指纹,并与已经发送过的内容比对。如果同样的载荷之前已经送达,这次新的发送什么也不做,并会记录下它什么也没做:ERP 不会因为重复点击或自动重试而收到一张孪生订单。如果订单已被 ERP 接受,任何新的发送同样什么也不做。
发送之后,订单转为已发送至 ERP,尝试次数加一。这并不等于被接受:只有在 ERP 回应之后,订单才算被接受。
确认与不一致
ERP 回应时,确认信息会带着结论(接受或拒绝)以及对方生成的单据编号进入 CRM。只有到这一步订单才变为已接受,而 ERP 的单号会显示给之后要服务这位客户的人。
接下来是大多数集成不会做的一步:对账。CRM 会定期把自己保存的状态与 ERP 报回的状态做比较。当两者不一致时,该订单被标记为存在差异并进入一条待纠正队列,两侧的取值并排记录。差异会变成告警,绝不会被沉默处理。
记录链
每一次发送、每一次拒绝、每一次确认和每一次对账,都会在一份只增不改的历史里生成一行,包含方向(从 CRM 出去还是从 ERP 进来)、动作、状态、外部单号和消息内容。当有人问起某个订单为什么会是现在这个样子时,答案完整地按时间顺序摆在那里。
连接 SAP 或 NetSuite
与大型 ERP 的连接在设置 → 集成的 ERP 分类下完成,使用的是您自己环境的凭证:ERP 是您的,许可证是您的,SellioCRM 只是与它对话。这个连接是双向的:CRM 发送客户、联系人、商机、订单和发票,并通过一个由共享密钥保护的入站地址接收来自 ERP 的事件,例如一张发票已付款或一个订单被更新。重复到达的事件会通过外部标识符被识别出来,不会被处理两次。
在完成配置并启用之前,这个集成处于静止状态:没有凭证时,SellioCRM 不会与任何 ERP 通信。除 SAP 和 NetSuite 之外,集成目录里还有其他经营管理系统;如果您的 ERP 不在列表中,还可以使用通用发送,把数据推送到您指定的地址。
前提条件与边界
- 必须先在设置 → 行业模块中启用制造业行业模块,订单和记录链才会存在。
- 配置 ERP 集成需要账户管理权限;凭证以加密方式保存,并且不会再次显示出来。
- 工业订单目前在制造业页面里没有专属标签页:它由集成层和审批来操作。
- CRM 不开具税务发票,不排产,也不做会计口径的库存过账。
- 对账只指出差异,不替您选边:如何纠正是人来决定的,而且是拿着记录链来决定。