调用补货引擎概述

本部分描述了使用宏调用补货引擎的过程,以便从指定的起始周期和到指定范围生成货品和库位组合的计划订单。

先决条件:

用户必须具有宏以及为当前循环定义的补货引擎的访问权限。否则,在执行宏时显示此错误:

“用户 {1} 无法访问补货引擎 {0}。”

当确定要传递到补货引擎以便进行计算的货品和库位元素时,数据安全规则适用于执行宏的当前用户。例如:

  • CallReplenishmentEngine ("Brand A", "US", "", "")
  • 如果当前用户的数据安全不允许用户查看货品分级结构中的“品牌 A”或链接到“品牌 A”的基础货品,则所选项不会传递到引擎。
  • 如果用户可以访问链接到“品牌 A”的基本元素子集,则仅计算这些货品的排程。
  • 如果用户的数据安全不允许用户查看库位层次结构中的“US”或链接到“US”的基础库位,则所选数据不会传递到引擎。
  • 如果用户可以访问库位层次结构中链接到“US”的基本库位子集,则仅计算这些库位的排程。

调用补货引擎

使用 CallReplenishmentEngine 宏命令调用补货引擎的基本序列如下:

  • 确定为当前循环定义的补货引擎。
  • 确定排程的货品和库位。
  • 处理任何其他宏参数

若要调用补货引擎,请进行下列操作:

  1. 选择配置>循环>。此时将显示页面。
  2. 创建新的宏命令 CallReplenishmentEngine。请参阅创建宏
  3. 派生引擎配置的供应分配映射度量和属性。
    注意:所有供应分配映射都是必填项,必须经过验证以确保已选择正确的属性。
  4. 检索要使用补货引擎的货品和库位度量映射排程所有货品和库位组合的排程规则。补货引擎处理显示排程规则的宏调用中所有货品和库位组合。
  5. 检索用于排程的所有货品和库位组合的顺序 ID。按顺序 ID 升序对货品和库位组合进行排序并传递到引擎。此流程可确保处理所有货品和库位组合,从而通过供应网络传递最新需求。例如,由引擎生成的仓库计划订单将作为需求传递到生产设施。
    注意:
    • 根据顺序 ID,准备对个别货品、库位至补货引擎的调用并排定顺序。
    • 如果未定义顺序 ID,则会相应地对货品和库位组合进行排序。如果连接的货品和库位组合没有按顺序排序,则可能获得意外结果。
  6. 验证当前货品和库位的默认源方法:
    • 如果映射的默认源方法值不是 1、2 或 3,则不考虑货品和库位组合。此错误消息将写入到引擎放弃日志:
      源方法 {1} 无效。值必须为 1、2 或 3。
  7. 验证当前货品和库位的增量:
    • 此参数映射到链接到相应“供应分配”或“默认源方法”的度量映射:
      • 1(转移)= 转移出度量映射
      • 2(采购)= 采购度量映射
      • 3(生产、制造)= 处理度量映射
      注意:如果映射的增量为空或 </= 0,则不考虑货品和库位组合,并且会将此错误消息写入到引擎放弃日志:
      增量 {1} 无效。值必须大于 0。
  8. 验证当前货品和库位的接收日历 ID。可能的情况:
    • 如果没有为当前引擎的引擎日历映射定义映射 ID,则不考虑货品和库位组合,并且会将此错误消息写入到引擎放弃日志:
      无法找到收货日历 ID {1}。
    • 如果没有映射到接收日历 ID 度量的值,则使用当前引擎的引擎日历映射中的默认日历。
    • 如果未定义默认日历,则不考虑货品和库位组合,并且会将此错误消息写入到引擎处理放弃日志:
      无法找到收货日历 ID {1}。
  9. 验证当前货品和库位的排程规则。对于规则 1 或 2:
    1. 获取生产流程:
      1. 创建生产流程数组,其中货品为“流出因子”,且具有“工艺流程”或“流程 ID”:
        • 检查映射的流出因子和 Formula_measure 是否为非零值,其中 Formula_item = 当前货品和 Formula_location = 当前库位。
        • 如果在数组中找到每个流出流程的分配,则检查 Process_measure 的 TUPLE 非零值,其中 Process_location = 当前库位, Process_routing = 当前流出工艺流程。
        • 如果未找到分配,则从数组中删除流出流程。
      2. 创建生产流程数组,其中货品为“流入因子”,且具有“工艺流程”或“流程 ID”:
        • 检查映射的流入因子和 Formula_measure 是否为非零值,其中 Formula_item = 当前货品和 Formula_location = 当前库位。
        • 如果在数组中找到每个流入流程的分配,则检查 Process_measure 的 TUPLE 非零值,其中 Process_location = 当前库位,Process_routing = 当前流入工艺流程。
        • 如果未找到分配,则从数组中删除流入流程。
    2. 删除现有计划订单:
      • 删除映射到“已计划”类型引擎订单映射的定义的订单数据记录:
        • 删除计划的转移订单,其中 TransferIn_Item = 当前货品并且 TransferIn_Destination = 当前流入工艺流程。
        • 删除计划的采购订单,其中 Purchases_item = 当前货品并且 Purchases_location = 当前库位。
      • 检查当前货品和库位是否存在流出流程。请参阅步骤 9.a。
      • 对于流出流程计数中的每个流程:
        • 删除计划的生产订单,其中 Process_location = 当前库位并且 Process_routing = 当前 Outflow_process 工艺流程。
        • 如果订单开始偏移大于 0,则删除交货日期大于等于当前计划周期的起始日期加上订单开始偏移(以日计)的数据记录。否则删除所有日期的已映射订单。
    3. 获取给定默认源方法的默认订单元素。方案:
      • 源方法 = 1(转移):
        • 检查 TransferIn_measure 的 TUPLE 非零值,其中 TransferIn_Item = 当前货品、TransferIn_Destination = 当前库位和 Transfer_Source = TransferIn_Source 值。
        • 检查 TransferOut_measure 的 TUPLE 非零值,其中 TransferOut_Item = 当前货品、TransferOut_Destination = 当前库位和 TranferOut_Source = 转移源。
        • 订单货品 = Transfer In_TUPLE 货品元素、Order_destination = Transfers In_TUPLE 库位元素、Order_source = Transfers Out_TUPLE 库位元素。
      • 源方法 = 2(采购):
        • 检查 Purchase_measure 的元组非零值,其中 Purchase_item = 当前货品、Purchase_location = 当前库位、Order_item = Purchases_TUPLE 货品元素、Order Destination = Purchases_TUPLE 库位元素、Order_source = Purchases_TUPLE 库位元素。
      • 源方法 = 3(生产):
        • 其中流出流程计数大于 0,Order_Item = ICONST、Order_destination = 第一个流出流程的库位元素、Order_Source = 第一个流出流程的库位元素。请参阅步骤 9.c。
        • 如果未定义给定源方法的 TUPLE,则不考虑货品和库位组合,并且会将此错误写入到引擎处理放弃日志:
          无法找到源方法 {1} 的源库位。
    注意:
    • 对于“规则”为 1,请基于货品和库位组合的标准排程逻辑调用引擎。
    • 对于“规则”为 2,请基于 ROP 排程逻辑货品和库位组合调用引擎。
    • 如果规则不是 0、1 或 2,则将跳过货品和库位组合,并在引擎处理放弃日志中登记此错误:
      排程规则 {1} 无效。值必须为 0、1 或 2。 
  10. 根据补货引擎结果映射从补货引擎结果集中检索所需结果,并将结果应用于订单(业务数据)值:
    • 针对计划订单映射同步相应的方案值。
    • 引擎结果,根据订单数据写入到循环周期未来范围的周期(基于相应的订单日期)。
    • 如果用户访问的引擎在周期维度上有任何数据安全规则限制了对整个未来范围的访问,则仅保存允许订单的结果。
  11. 根据补货引擎度量映射数据,从补货引擎结果集中检索所需结果,并(对于其他映射的货品库位输出结果)将结果应用于方案值。基于映射度量的引擎结果将作为静态值写入到 PCONST。
  12. 调用补货引擎的结果会输出到作业管理器和审查日志,其中:
    • 如果补货引擎调用出错,则将放弃日志附加到审查日志消息中。
    • 单个货品库位错误不会阻止对有效组合的处理。
    • 排程准备中的无效货品位置组合,或者已返回带有错误代码的引擎规则逻辑将会写入到放弃日志中,并附有详细说明错误的消息。