点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我对SAP工作流不熟悉,我有一个非常基本的问题:
考虑一个场景,其中我有3个工作流程步骤
a。 活动步骤。
b。 决定步骤。
c。 活动步骤。
- 我有一种情况,我要从"活动"步骤("活动1")之一检索类的对象,在该步骤中,我将值'10'分配给公共属性,让我们说" IM_A"。
- 在上面之后,我有一个决策步骤,用户可以接受或拒绝该工作项。
- 一旦他接受了新的活动步骤(活动2),就会触发该活动步骤,并依次调用类(ZCLASS)的方法(ZMETHOD)。
现在考虑,在步骤2中,用户过了一段时间(1周后)对决策步骤采取了行动。
因此,当用户批准工作项时,方法 FIND_BY_LPOR 中的 INSTID 肯定具有键值,但公用属性' IM_A'仍将值保留为'10'还是消失了,我们必须再次分配该值?
我之所以这样问是因为,如果我在工作流程的开始步骤和以后的阶段(在用户决定步骤之后考虑)已经计算了一些属性值,那么我需要再次使用相同的值,在这种情况下,我不希望 再次调用相同的逻辑进行计算。
因此,我正在考虑将其分配给公共属性,并在以后的步骤中使用它。
但是当我在上面做这些时,在用户决定步骤之后,我的"公共"属性值变得清晰(我的意思是不可用)。
所以,我想知道天气是否可能?
属性值仅在活动会话中可用并且随着用户决策步骤的存在会话将过期。 那么,属性值正在消失吗?
此致
王子
在一般的OO注释中,永远不要为公共属性分配值,它们应该是只读的。
对于WF,您应该始终假定对象实例仅在执行工作项(即一步)时才存在。 您的对象将始终使用INSTID键进行实例化,并通过实例化(CONSTRUCTOR或其他方法)读取其值。 如果要保留值,则必须以一种在工作流实例化该对象时将其检索的方式保存它。 通常,请使用SET_XYZ()方法将其写入数据库。
否,物理上存储在数据库中的唯一内容是在展开对象之前在容器中看到的内容: 实例ID,对象类别(CL = Class)和对象类型(Class名称)。
即使在工作流容器显示中,当您单击三角形以展开对象以查看其属性时,您也会看到它调用BI_PERSISTENT〜FIND_BY_LPOR来实例化对象并检索其属性。 设置断点以查看其工作方式。 一旦运行了特定的代码,就不再需要该实例。 每个工作流程功能(包括任务执行)都以这种方式工作。
一周热门 更多>