本系列之前的文章:
- 与其终日放心 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 帮你写作