2020-09-13 01:09发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我在终止情况下使用了uSleep函数。 在终止用户之前,系统等待5分钟以完成其他一些活动。
该功能在大多数情况下都可以正常工作。 但是,当调度程序出现任何问题时,uSleep会永远休眠,并且永远不会再次醒来。 除非您强制重新启动任务,否则分派器重新启动将无法解决问题。
有什么办法可以避免uSleep问题?
谢谢
沉阳
您不能只使用等待任务吗? IDM v7.2和v8都遵循这些原则。 我假设您正在谈论的任务已绑定到MX_FS_EMPLOYMENT_STATUS或MX_FS_EMPLOYMENT_STATUS_ID属性的Modify Task中。 如果修改了属性,则在任务中评估新值,如果现在终止标识,则执行终止过程。
在终止过程中,您可能正在调用另一个外部过程,该过程必须在主要任务中的其余操作完成之前完成其操作。 在脚本中具有uProvision或链接到该外部任务的任务之后,立即在IDM v7.2中插入一个有序任务组,然后在"结果处理"选项卡中,选择顶部的"等待事件任务"框 。 在IDM v8中,可以将特定的"等待任务"插入工作流程图表(Eclipse中的新事物,看起来像Visio图表)。 这两个都将完成同一件事,等待与该AuditID相关联的所有任务完成,然后再继续执行主事件任务工作流中的下一项。
这比使用uSleep函数可靠得多,因为它对时间不敏感。 在IDM正在遍历大量数据并且该子过程花费超过5分钟的时间才能完成的特别繁重的一天中会发生什么? 可能只在蔚蓝的天空中发生一次,但是您是否真的希望您的流程具有这种脆弱性? 使用等待任务会更清洁,并且每次都能正常工作。 哎呀,甚至可能更快,因为在大多数情况下,您的子任务可能不需要5分钟即可完成,因此现在您的主要流程可以更快地进行。
您好Chenyang,
首先,我认为您需要打开一张票。 调度程序启动工作时,JavaScript库不应受到影响。 我认为,如果调度程序中断了重新运行的传递执行,则应该对其进行修复。
作为uSleep的一种解决方法,您可以对启动前有5分钟延迟的任务执行uProvision,只需加载不执行任何操作的通行证即可。 (或很少)。 或者,如果您可以分解任务中的操作以便执行一些操作,然后坚持5分钟的延迟,然后再执行其余操作。
Matt
同时,您可以编写自己的睡眠函数,然后使用它。
嗨,Matt,
感谢您的建议。 在终止任务之前,我有一个动作任务,除了睡觉5分钟外什么都不做。 由于这是一个零星的问题。 如果再次发生,我将向SAP报告。
嘿,那真是个很棒的沉阳! 请喜欢这个答案,并接受是否有帮助!
也许最好的选择是从SuccessFactors中读取两次属性更新。 让您当前的同步作业正常运行并读取所有员工资料更新,但禁用对MX_FS_EMPLOYMENT_STATUS_ID的更新。 然后,一旦该任务完成并更新了IDM中的所有属性,请执行第二个任务,该任务从SuccessFactors中读取相同内容,但仅更新用户记录上的MX_FS_EMPLOYMENT_STATUS_ID属性。 现在,当任何人的记录都处于终止状态时,终止过程就会开始。 也许会行得通吗?
取决于我猜的情况。
我读它就像IdM本身就存在"重新激活"其uFunction的问题,而不是内部的问题。 因此,避免使用uSleep并添加脚本可以解决此问题。 我认为SAP第2层或第3层的支持可以发现这一点,因此票证确实是最好的。
但是,我会尝试一下。 甚至可能有一个带有while循环和在审核表上进行选择的脚本(e,现在又有了一个uFunction)。 而且不要忘了10分钟之类的中断语句之类的。 还取决于该过程的调用频率。 可以终止。
更好的主意:设置一个批处理作业,该作业可以在满足条件时执行类似调用任务的工作。 然后,该作业可以每分钟或每五分钟运行一次。
最多设置5个标签!
您不能只使用等待任务吗? IDM v7.2和v8都遵循这些原则。 我假设您正在谈论的任务已绑定到MX_FS_EMPLOYMENT_STATUS或MX_FS_EMPLOYMENT_STATUS_ID属性的Modify Task中。 如果修改了属性,则在任务中评估新值,如果现在终止标识,则执行终止过程。
在终止过程中,您可能正在调用另一个外部过程,该过程必须在主要任务中的其余操作完成之前完成其操作。 在脚本中具有uProvision或链接到该外部任务的任务之后,立即在IDM v7.2中插入一个有序任务组,然后在"结果处理"选项卡中,选择顶部的"等待事件任务"框 。 在IDM v8中,可以将特定的"等待任务"插入工作流程图表(Eclipse中的新事物,看起来像Visio图表)。 这两个都将完成同一件事,等待与该AuditID相关联的所有任务完成,然后再继续执行主事件任务工作流中的下一项。
这比使用uSleep函数可靠得多,因为它对时间不敏感。 在IDM正在遍历大量数据并且该子过程花费超过5分钟的时间才能完成的特别繁重的一天中会发生什么? 可能只在蔚蓝的天空中发生一次,但是您是否真的希望您的流程具有这种脆弱性? 使用等待任务会更清洁,并且每次都能正常工作。 哎呀,甚至可能更快,因为在大多数情况下,您的子任务可能不需要5分钟即可完成,因此现在您的主要流程可以更快地进行。
您好Chenyang,
首先,我认为您需要打开一张票。 调度程序启动工作时,JavaScript库不应受到影响。 我认为,如果调度程序中断了重新运行的传递执行,则应该对其进行修复。
作为uSleep的一种解决方法,您可以对启动前有5分钟延迟的任务执行uProvision,只需加载不执行任何操作的通行证即可。 (或很少)。 或者,如果您可以分解任务中的操作以便执行一些操作,然后坚持5分钟的延迟,然后再执行其余操作。
Matt
同时,您可以编写自己的睡眠函数,然后使用它。
嗨,Matt,
感谢您的建议。 在终止任务之前,我有一个动作任务,除了睡觉5分钟外什么都不做。 由于这是一个零星的问题。 如果再次发生,我将向SAP报告。
谢谢
沉阳
嘿,那真是个很棒的沉阳! 请喜欢这个答案,并接受是否有帮助!
Matt
也许最好的选择是从SuccessFactors中读取两次属性更新。 让您当前的同步作业正常运行并读取所有员工资料更新,但禁用对MX_FS_EMPLOYMENT_STATUS_ID的更新。 然后,一旦该任务完成并更新了IDM中的所有属性,请执行第二个任务,该任务从SuccessFactors中读取相同内容,但仅更新用户记录上的MX_FS_EMPLOYMENT_STATUS_ID属性。 现在,当任何人的记录都处于终止状态时,终止过程就会开始。 也许会行得通吗?
取决于我猜的情况。
我读它就像IdM本身就存在"重新激活"其uFunction的问题,而不是内部的问题。 因此,避免使用uSleep并添加脚本可以解决此问题。 我认为SAP第2层或第3层的支持可以发现这一点,因此票证确实是最好的。
但是,我会尝试一下。 甚至可能有一个带有while循环和在审核表上进行选择的脚本(e,现在又有了一个uFunction)。 而且不要忘了10分钟之类的中断语句之类的。 还取决于该过程的调用频率。 可以终止。
更好的主意:设置一个批处理作业,该作业可以在满足条件时执行类似调用任务的工作。 然后,该作业可以每分钟或每五分钟运行一次。
一周热门 更多>