故障排除提示

已完成

当组织刚开始使用 Resource Scheduling Optimization (RSO) 时,在运行优化作业时,它可能无法感知预期的结果。 无法看到预期结果的原因各不相同,例如在运行优化作业时项目被编辑了,或者没有找到要优化的适当记录。

在大多数情况下,原因通常与配置问题有关。 这些问题可能表示配置不当的资源,导致资源未包含在范围中或无法用于优化。 或者,此问题可能是要求和预订没有反映正确的状态或日期,而这些状态或日期可以确保资源包含在优化作业中。

虽然每个场景都不同,但以下各节介绍了使用 RSO 时可能遇到的一些最常见的问题。

取消长时间运行的计划或受阻止的计划

如果一个计划已经运行了很长时间,并且似乎卡住了或受到阻止,您可以使用重置 Resource Scheduling Optimization 按钮清除受阻止的作业,并将计划重置到一个良好的状态。

优化请求失败,并提示消息“系统修改某些预订失败。”

出现此消息的原因有几种, 但是,您最可能在以下场景中看到此消息:

  • 如果一个预订正在手动更新,而 RSO 作业正在同一预订上运行,则 RSO 不会覆盖更改,并会使请求失败。

  • 如果您有一个工作流或插件在 RSO 运行期间正在更新相同的预订,RSO 将不会覆盖您的其他系统逻辑所做的更改,并会使请求失败。

  • 如果您有多个共享相同资源并同时运行的 RSO 计划,RSO 可能会显示此消息。 为了更好地理解这种情况并进一步排除故障,请考虑以下建议:

    • 滚动查看优化请求预约网格,并检查每个单独的要求和预约的操作明细列。

    • 确定您是否有多个计划,它们共享同一时间运行的相同资源、要求和预约。  

    • 如果您只有一个计划,请检查是否有其他用户或工作流在运行期间试图更新预约。

优化请求失败,并提示消息“时间窗口的开始时间必须小于或等于结束时间”。

本消息表明优化范围中包含了一些无效的预约数据。 例如,用户可以查询预约实体,并查看任何预约记录是否有无效的预计旅行持续时间。

您可以为正在使用的视图定义以下表达式:

  • Estimated travel duration > Booking.EndTime - Booking.StartTime

  • Estimated travel duration > Booking.Duration

未安排要求项目

没有预订要求的原因各不相同。 首先,查看日程安排板的优化结果和相应的优化请求 > 预约视图,然后查找项目没有被安排的原因。

一个快速验证的方法是,选择其中一个不会安排的资源要求,然后使用日程安排助手,看看它能否找到结果。 尽管日程安排助手和 RSO 有所不同,但其评估标准是相似的。 如果日程安排助手发现结果,RSO 通常也会发现。 如果日程安排助手找不到任何结果,则 RSO 很可能也找不到。 但是,在某些场景中,日程安排助手可能会找到结果,而 RSO 却不会:

  • 如果您作为潜在匹配的资源没有将优化计划设置为(这意味着 RSO 不会考虑他们)

  • 如果要求上的日期窗口超出了 RSO 运行的范围

  • 如果您用于要求的区域与资源的区域不匹配

以下详细信息可以帮助您进一步分析问题:

  • 计划方法 - 检查要求的计划方法是否设置为优化。 此字段默认设置为不优化。 您需要手动设置它,或者配置工作订单元数据优化设置。

  • 区域 - RSO 的作用域并不一定依赖于区域,但是 RSO 的运行仍然在要求和资源之间进行区域匹配:

    • 如果一个要求被分配到一个区域,那么资源也必须被分配到此区域,以便计划要求。

    • 如果一个要求没有分配给某个区域,那么只有不属于任何区域的资源才有资格满足此要求。

  • 特征 - 确定您的要求是否需要您的资源具有的特征,然后问自己以下问题:

    • 这些资源在运行范围内是否有可用的工作时间?

    • 基于这些资源,根据您的运行目标,是否有其他作业被/应该被首先安排?

  • 受限资源 - 确定是否因为资源被标记为受限而不将要求分配给该资源。 本检查仅适用于启用了受限资源约束的情况。

  • 日期/时间参数 - 问问自己以下问题来帮助确定问题:

    • 您的要求是否有一个从开始日期结束日期的窗口,且该窗口是在优化运行的作用域内?

    • 您的要求是否有一个从承诺开始时间承诺结束时间的窗口,且该窗口是在范围内?

    • 您的任何日期字段是否创造了一个不可能的应用场景? 例如:

      • 您的开始日期在您的承诺结束时间之后。

      • 您的结束日期在您的承诺开始时间之前。

  • 产能 - 验证您有足够的产能来领取范围内的所有工作。

    • 如果没有,请检查是否有合理的理由,根据您的目标,在其他可能的要求中,这个要求可能没有被选中。

    • 根据运行作用域内所需的特征和资源首选项(以及所有其他因素)确定您是否有足够的容量。

  • 地理位置 - 如果要求的工作位置设置为现场,则资源要求需要有一个有效的纬度和经度。

    此外,检查资源是否有时间往返于作业。

  • 持续时间 - 检查资源要求的持续时间是否大于零 (0),以及已完成的持续时间是否等于零 (0)。

    此外,验证要求是否有适合资源转移的持续时间。 RSO 目前不支持将要求分解为多个预订。

  • 状态 - 验证资源要求的状态是否为可用

  • 相关预约 - 确定要求是否已经有了相关的预约记录。 如果有,确认相关的预约记录是否有一个相关的预约状态,带有计划方法字段,且其值不是忽略

  • 优化引擎努力级别 - 较大的优化请求可能需要更多的时间来优化。 考虑增加引擎的努力级别,让它有更多时间找到合适的任务。

一些过去的预约将被移除

如果过去的预订状态表明应该进行优化,并且此预订包含在优化范围的预订视图中,则可以移动此预订。 因此,如果没有人将预订更改为保留记录不被移动的预订状态,则可能会出现(特别是在没有人实际完成工作的测试场景中)过去的所有预订都被重新安排的情况。

有几种方法可以阻止 RSO 移动过去的预约:

  • 选取不移动的预订状态。

  • 从预约视图中移除预约。

  • 将预约锁定到过去的时间或时间范围内。

  • 在启用时间窗口约束的同时,设置一个承诺开始/结束日期或开始/结束日期。

一些预约处于模拟状态

如果优化计划仍在运行时发生任何异常或错误,您可能会在日程安排板上看到一些重叠, 因为一些预订是从最近一次运行创建或更新的,而来自上一次运行的其他预订由于异常而无法删除。 为了避免这种情况,引入模拟状态,使优化流程实现自动化和事务性。

在优化流程中,现在可以看到创建、更新和删除操作。 所有新的、更新的和要删除的预约都位于模拟暂存区域。 如果完整且正确地完成了整个优化请求,这些模拟预订将转化为实际预订。 在优化请求完成之前,您可以看到一些模拟状态(透明的)预订在日程安排板上移动,直到运行完成。 然后,所有模拟预订将转化为实际预订(纯蓝色)。 如果出现异常且优化请求失败,为了进行故障排除,这些模拟预订将保持模拟状态,除非手动删除它们。 否则,系统作业将每两周自动删除一次。

模拟暂存区域的屏幕截图。

您可以通过更改日程安排板设置来隐藏模拟预约。 选择右上角的齿轮图标,然后选择隐藏已取消内容选项。