乐趣区

关于算法:每日一个-ChatGPT-使用小技巧系列之2-用-ChatGPT-研读-SAP-ABAP-BAPI-的实现源代码

本系列之前的文章:

  • 与其终日放心 AI 会取代程序员,不如先让 AI 帮忙本人变得更弱小
  • 每日一个 ChatGPT 应用小技巧系列之 1 – 给出提纲或者素材,让 ChatGPT 帮你写作

正好昨天有敌人向我发动知乎征询,询问对于 SAP ABAP BAPI bapi_vendor_create 的应用问题,本文就来说一说:

bapi_vendor_create 麻烦想问一下有没有利用这个 bapi 登陆供应商的实例。我看执行之后是一个前台的程序。能够让他也通过后盾执行吗。

首先,我没有在工作中应用过 BAPI_VENDOR_CREATE,所以向 ChatGPT 理解了一下。ChatGPT 的回复如下,还须要相干从业人员进行正确性甄别,比如说我。

第一段根本正确:

BAPI_VENDOR_CREATE 是一个 SAP ABAP 函数,用于在 SAP 零碎中创立新的供应商(也称为供应商主数据记录)。BAPI 代表业务应用程序编程接口(Business Application Programming Interface),它是一种与 SAP 零碎进行通信和交互的办法,以便在 SAP 零碎中执行操作和获取数据。

上面这一段中标红色的局部就是在睁眼说瞎话了。

BAPI_VENDOR_CREATE 函数接管一组输出参数,例如供应商的名称、地址、联系方式等信息。函数会在 SAP 零碎中创立一个新的供应商记录,并返回相应的输入,如供应商编号和任何可能的谬误音讯。这使得 SAP 零碎能够与其余系统集成,以便在创立供应商时遵循对立的流程。

咱们在 SE37 里关上这个 BAPI,发现其 Import 参数区域基本没有任何定义,何来“接管一组输出参数”之说?实际上,这些字段都须要用户在 BAPI 执行后弹出的 Dynpro 界面里手动填写。

咱们把 SE37 里看到的 BAPI_VENDOR_CREATE 的源代码拷贝一份,而后在后面添上一段话:

给上面这个 ABAP 函数的每一行代码增加上中文正文,解释这一行干了什么事件。

如果某行代码曾经具备英文或者德文正文了,间接将这些正文翻译成中文即可。

将源代码附在这段话的开端,而后一齐发送给 ChatGPT.

ChatGPT 把每行代码加上中文正文后返回给我。在浏览器环境里这些 ABAP 代码没有语法高亮的反对,所以我把它们复制到了 Visual Studio Code 里便于浏览。

这个 BAPI 的实现次要分为两局部。第一局部的关键点如下图图例 1 和 2 所示,首先代码第 15 行,应用关键字 CALL TRANSACTION XK01, 启动事务码 XK01,出现 Vendor 创立的 SAPGUI 界面。等用户实现 Vendor 创立所需的字段填写,保留创立后果。

如果执行过程中呈现权限查看异样 (CX_SY_AUTHORIZATION_ERROR), 则进入上图图例 2 所示的异样解决分支,调用函数 BALW_BAPIRETURN_GET1 结构显示给 BAPI 消费者的谬误提醒音讯,而后填充到输入参数 return 中去。

BAPI 实现的第二局部,逻辑也不简单,就是调用 GET PARAMETER ID 将创立好的 Vendor 信息,从 SAP Memory 里提取进去,填充到 BAPI exporting 参数中去。

GET PARAMETER ID 和 SET PARAMETER ID 这对关键字,别离对应 ABAP 服务器内 SAP Memory 区域数据的读取和设置,在我这篇 ABAP 教程文章里有具体介绍:

如果在浏览了正文之后,还是感觉了解这段代码有点艰难,那么能够让 ChatGPT 把这个函数源代码实现的业务逻辑,用 200 字左右的篇幅概括进去。

给 ChatGPT 收回的指令:

用一段 200 字的篇幅,介绍上面这个 SAP ABAP Function Module 实现的业务逻辑是什么?

ChatGPT 的回复根本正确:

最初回到本文结尾提到的知乎征询的问题自身。

我的回答是:BAPI_VENDOR_CREATE 无奈通过后台作业的形式运行,因为本文后面曾经叙述过,这个 BAPI 是事务码 XK01 的包裹器,而 XK01 里的 Dynpro 界面是通过 CALL SCREEN 在 Dialog 工作过程里执行的,这些 Dynpro 界面在后盾执行模式下的后盾工作过程中基本不可用。

要在后盾模式下实现创立 Vendor 的需要,只能采取其余办法,当然这是另外一个话题了。

本系列其余文章

  • 与其终日放心 AI 会取代程序员,不如先让 AI 帮忙本人变得更弱小
  • 每日一个 ChatGPT 应用小技巧系列之 1 – 给出提纲或者素材,让 ChatGPT 帮你写作
退出移动版