开发业务规则的调试方法

  • 始终在小型数据集上对业务规则进行单元测试,对于小型数据集,您知道源数据和预期结果,并且可以手动跟踪计算。
  • Calculation Manager 中运行业务规则并检查日志消息。规则运行完成后,日志消息将显示在新选项卡中,可以将其导出或保存。分析日志文件可帮助您确定在哪里花费了计算时间。
  • Calculation Manager 中分别运行规则集中的每个规则并检查日志消息。
  • 在调试模式下使用 Calculation Manager 在开发过程中调试规则。
  • 如果业务规则使用 CALCPARALLELFIXPARALLEL,特别是在使用其中一个分配函数(@ALLOCATE@MDALLOCATE)时,通过删除并行计算进行测试,以查看规则是否运行以及性能是否提高。
  • 确保所有必需的数据(例如,分配的合计)都存在,并且在执行计算之前根据需要进行了预先计算。
  • 对于长脚本,自上而下进行调试。脚本开头出现的问题可能会进一步对下面的脚本造成问题。逐个部分进行调试以确保正确创建了所有数据。确认脚本的后面部分不会覆盖前面的部分。

    调试脚本时,请考虑每遍计算过程中的语法长度。如果不确定计算的哪个部分失败,请从底部逐个注释掉部分,然后重新运行计算,直到它运行并产生正确的结果。此时,从计算顶部删除各部分中的注释,一次删除一个,并在进行过程中测试每个更改。

  • 使用调试模式确保脚本的每个部分在需要时都是按顺序进行计算的。
  • 为确保成功创建所有块,请手动清除数据并重新加载。不要使用清除脚本,因为这样无法充分测试块创建。
  • 始终通过重新运行脚本进行测试,以确保语法为输入和填充数据创建正确的结果。
  • 始终使用多个数据集测试所有数据结果。在开发过程中,始终通过将输入数据从一个值更改为另一个值,然后更改为 #missing,再从 #missing 更改为一个值,然后更改为另一个值来进行测试。对每次更改重新运行规则并验证结果。
  • 如果用户输入可能会改变数据集(例如,对于分配),则通过将数据从 #missing 更改为一个值,再从一个值更改为 #missing 来测试数据。这可以确保在重新运行过程中根据需要删除先前计算的结果。例如,如果在第一次运行中为产品 A、B 和 C 输入数据,在第二次运行中为产品 B、C 和 D(但不是 A)输入数据,则在第二次运行之前将值更改为 #missing 可以确保在第二次运行中正确删除产品 A 的分配结果。