点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我们最近将SAP Portal升级到了NW 7.5,现在正在使用NWDS 7.5。 我们的项目模型已升级到ARFC2。 从那时起,我们遇到了一些问题-如果执行ARFC2模型在后端调用Lock FM,则设置了锁,但是当控件回到WD时,锁被释放,另一个问题是FM中的全局变量被重新初始化,这将导致 如果保持用户状态,通常情况并非如此。
我们想使用注释2216054,但是我们已经拥有组件的最新版本,并且所有模型在迁移后的作用域类型为WD_APPLICATION_SESSION_SCOPE。
我们的Java应用程序使用来自不同项目的一些wd组件,这些项目具有自己的模型。 因此,我们从一个模型中调用FM来设置锁定,然后再从另一个模型中调用FM,等等。
我们决定在FM通话中使用注释2501389。 我们从方法beginJCoContext()开始每个调用,并由endJCoContext()结束调用。 但是什么都没有改变。 之后,我们在wdDoExit()中移动了方法endJCoContext()。 而且我们的锁没有被释放,这很好,但是我们看到了会话的问题-当用户使用相同的应用程序打开新窗口时,他开始在后端使用相同的消息,并且锁不会像外部锁一样引发错误 。 所以我们不知道它是如何使用的。 也许它仅在一种方法的调用顺序中起作用。
我想知道是否有一种方法可以通过ARFC2在后端中调用两个或多个RFC功能模块,并且后端中只有一个会话? 如何在ARFC2模型中配置/实现状态连接?
提前感谢您的建议!
你好,奥尔加,
请找到您问题的答案:
1。
问:我想知道是否有一种方法可以通过ARFC2在后端调用两个或多个RFC功能模块,并且后端只有一个会话?A .:
此方案应在不同的会话中实施。 一旦不再使用会话,您需要使JCO连接变为IDLE,并将其移回池中。 当存在多步骤逻辑工作单元(LUW)时,其中几个功能模块连续执行并在之后提交,业务应用程序应根据需求开始和结束全状态连接。
正如您所发现的,它在disconnectifAlive()所在的同一位置引入了一个新的API'disconnectAllStatefullSessions'。
在应用程序退出期间调用此API将使JCO连接IDLE,因此可用于另一个RFC模块。
不进行此更改,只要将响应发送回WebDynpro Java,对后端表的锁定就会释放。
2。
问:如何在ARFC2模型中配置/实现状态连接?
A .:
对于任何范围,ARFC2模型都执行 STATELESS RFC调用! 这就是FRAMEWORK.SCA 7.50中ARFC2模型的工作方式。
如果有多个使用相同JCO目标的模型,则需要通过调用disconnectifAlive api断开每个连接。
对于全状态方案,由应用程序决定是否开始全状态调用序列。
在应用程序退出期间,调用disconnectifAlive或disconnectAllStatefullSessions API可以避免此问题(请注意: 2316926 )
致谢,
非常感谢您的回答!
我尝试将模型的范围更改为UC_SCOPETYPE,但是很遗憾,没有任何更改。
请问您能解释一下如何在应用程序开始时设置对后端表的锁定,以及如何在应用程序 运行 (不在单个通话顺序中)?
如果我理解正确,则需要为此目的建立活动的有状态连接。 否则(使用无状态连接) 一旦响应发送回WebDynpro Java,我就会失去锁定。 对? 我只能使用注释 2501389中的方法创建活动的有状态连接(在应用程序运行时打开)。 但是,如果单个调用序列在锁定期间还不够,并且您希望在应用程序运行时在r3中拥有主动锁定,该如何使用它们? 是逼真的工具吗?
迈恩,谢谢你!
一周热门 更多>