Eclipse/ADT是否可以替代与工作台相关的用户出口,例如EXIT_SAPLSEDD_001?

2020-08-24 21:17发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,大家好!

我们有一个限制,即需要通过特殊的用户ID(而不是我们自己的ID)来维护DDIC对象。 为了确保这一点,在开发系统中通过CMOD SEDD0001和EXIT_SAPLSEDD_001进行检查是活动的,只要执行SE11或SE80之类的具有DDIC活动的事务便会执行检查。

虽然现在在Eclipse(Neon)中进行了一些尝试,但是我还是设法用自己的用户ID创建了一个数据元素,而且-如已经通过在出口的include ZXSEUU19中设置断点所检查的那样-出口不是 不能访问。

如果这些用户出口是"仅GUI"的,那么对于Eclipse/ADT,有什么替代方法?

我们正在使用SP13的NW 750

欢呼

贝尔贝尔

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,大家好!

我们有一个限制,即需要通过特殊的用户ID(而不是我们自己的ID)来维护DDIC对象。 为了确保这一点,在开发系统中通过CMOD SEDD0001和EXIT_SAPLSEDD_001进行检查是活动的,只要执行SE11或SE80之类的具有DDIC活动的事务便会执行检查。

虽然现在在Eclipse(Neon)中进行了一些尝试,但是我还是设法用自己的用户ID创建了一个数据元素,而且-如已经通过在出口的include ZXSEUU19中设置断点所检查的那样-出口不是 不能访问。

如果这些用户出口是"仅GUI"的,那么对于Eclipse/ADT,有什么替代方法?

我们正在使用SP13的NW 750

欢呼

贝尔贝尔

付费偷看设置
发送
16条回答
hongfeng1314
1楼 · 2020-08-24 21:43.采纳回答

HelloBärbel,

感谢您上周的电话。 让我分享我们与社区讨论的内容。 也许其他社区成员会觉得它有用。

我们讨论了以下选项:

1)使用标准用户授权。 通过用户配置文件简单地删除创建DDIC对象的功能

您向我们解释说,如果您删除创建ddic对象的权限,那么在DDIC环境中也将无法执行某些其他操作,

2)使用当前的SAPGUI userexit

这是不可能的了。 用户出口硬连接到SAPGUI SE11 UI实现。 ADT REST服务重新使用了大多数ABAP工作台代码,但是显然,SAPGUI UI层中的退出不再起作用。 实际上,我们的ADT REST服务不再与任何UI技术绑定。 他们不知道是否正在从Eclipse,从iPhone App,从浏览器调用它们。这使得无法提供与UI相关的新用户退出。

3)使用ADT授权BADI

有一个中央BADI,可以对每个REST通信请求进行权限检查。 首先,BADI目前不属于我们的官方API。 其次,此出口对于您的要求来说太技术性了。 您将不得不检查将来可能会更改的单个URL

4)使用运输区域中现有的BADI(如Abin Baby等人所述)

系统允许您根据自己的规则和条件阻止将对象分配给运输请求。 该解决方案的最大优点是它独立于各自的IDE。 传输系统不知道Eclipse中的ABAP还是SE11将对象分配给传输。 这使其成为最稳定和最可靠的解决方案。 即使使用了完全不同的IDE(ABAP社区甚至正在进行VSCode扩展项目),也可以确保执行相同的检查。 此选项的缺点是,在用户流程的最后而不是开始时检查用户授权。

结论

我们同意旧的UI用户出口具有以下优点:当用户尝试创建/编辑/删除DDIC对象时,会立即获得反馈。 但是,我们的服务器体系结构现在独立于UI。 因此,旧的行为不再可实现。 我们的建议是使用选项4)

致谢
Thomas

蓋茨
2楼-- · 2020-08-24 21:23

这里是另一个更新(3月6日):

借助 在GUI的ABAP代码中设置外部断点,并在工作台或Eclipse中通过逻辑运行,看起来好像采用了完全不同的ABAP代码路径。 显然,这可以解释为什么从Eclipse来时SE11/SE38出口没有被触及。

在DDIC和ABAP编辑器逻辑的调用堆栈中查找,似乎是从Eclipse来的共同点。 调频 第一次击中SAP服务器时,刚开始时SADT_REST_RFC_ENDPOINT。

我的问题-可能是 Thomas Fiedler -是,是否有可能/可行/允许在此中央RFC功能模块中添加BAdIor或其他逻辑,我们可以在其中进行一些检查以满足我们的特殊要求? 我要寻找的基本上是从Eclipse进入"客户出口"的一种选择,但它能够将消息发送回Eclipse。

三十六小时_GS
3楼-- · 2020-08-24 21:36

总是有一些有趣的问题! 我认为,您应该查看自己的流程并考虑实现相同目的的其他方法,而不是着眼于如何使现有的流程和检查发挥作用。 我认为-无论其价值如何-我认为您(而不是您个人)的流程都有些混乱。

如果您想以这种方式限制访问,则需要设置一个良好的授权概念。 我知道在开发系统中,开发人员总是可以绕开它,但是他们不能偶然地做到这一点。 但这与您当前的解决方案相同。

例如,您可以将未激活的程序移至ZINACTIVE开发类。 (我似乎想起了一种简单的编程方式来执行此操作-SE03中还存在对象条目的隐藏批量更改)。 扮演普通的开发人员角色,以使其不允许更改ZINACTIVE对象。

95年老男孩
4楼-- · 2020-08-24 21:42

另一个更新(3月10日):

我实际上只是想在3月6日起添加评论,但我似乎无法对其进行编辑(操作

我碰巧遇到了由杰里·王(Jerry Wang)于2014年发起的一个主题,看起来很有趣:帮助您了解ADT如何工作的示例 ,因此我在此处添加了一个问题,并带有指向该线程的链接。 Nabheet Madan已经让我知道这可以解决我的问题,但是我想知道中央FM SADT_REST_RFC_ENDPOINT是否真的不应该使用简单的"挂钩"将客户逻辑集中放在SAP的 事情,这与传输检查BAdI在创建或释放传输请求时所做的事情具有可比性吗?

wang628962
5楼-- · 2020-08-24 21:44

HelloBärbel,

与FM SADT_REST_RFC_ENDPOINT的距离不远 从解决方案。 您可以实现自己的RFC处理程序。 请参阅博客文章" 使用ADT SDK –第2部分在Eclipse插件中创建ABAP", Christian Drumm

Climb_Ma
6楼-- · 2020-08-24 21:31

Wolfgang Woehrle

嗨沃尔夫冈,

您/您的团队可以为我提供帮助吗? 目前,对于在哪里部署我们的验证逻辑一无所知,这对于我们推出Eclipse来说是一个很大的绊脚石。 知道是否有比SAP Community更好的途径来解决此问题。

非常感谢,并为此加油

Bärbel

微wx笑
7楼-- · 2020-08-24 21:34

我们可以在Eclipse的ABAP源代码中嵌入信息行,那么我想我们还能做其他事情 通过使用Eclipse ADT SDK

一周热门 更多>