首页 > 其他分享 >每日一个 ChatGPT 使用小技巧系列之2 - 用 ChatGPT 研读 SAP ABAP BAPI 的实现源代码

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

时间:2023-06-11 16:01:17浏览次数:59  
标签:BAPI 源代码 VENDOR CREATE ABAP ChatGPT SAP

本系列之前的文章:

正好昨天有朋友向我发起知乎咨询,询问关于 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 的需求,只能采取其他方法,当然这是另外一个话题了。

本系列其他文章

标签:BAPI,源代码,VENDOR,CREATE,ABAP,ChatGPT,SAP
From: https://blog.51cto.com/jerrywangsap/6458023

相关文章

  • 人工智能和ChatGPT深度学习相关资源列表
    作者:DerrickHarris,MattBornstein,GuidoAppenzellerResearchinartificialintelligenceisincreasingatanexponentialrate.It’sdifficultforAIexpertstokeepupwitheverythingnewbeingpublished,andevenharderforbeginnerstoknowwheretostart.......
  • Lucene--开放源代码的全文检索引擎工具包
    Lucene是apache软件基金会4jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的......
  • ChatGPT API Transition Guide
    ChatGPTAPITransitionGuideHowtogetstartedWrittenby JoshuaJ.. UpdatedoveraweekagoPromptstoMessagesTohaveamoreinteractiveanddynamicconversationwithourmodels,youcanusemessagesinChatGPTinsteadoftheoldprompt-styleusingwithc......
  • 如何将CHATGPT 整合到WordPress上使用
    CHATGPT出来有一段时间了,一直想琢磨怎么在我们网站上使用CHATGPT, https://www.3cseller.com/ 使用WordPressAjax请求https://api.openai.com/v1/chat/completions返回openai结果,做一个chatgpt在线问答功能  functionopenai_chat_request(){ $content=$......
  • 用ChatGPT生成测试数据
    大家好,欢迎来到Crossin的编程教室!在之前的文章用ChatGPT写一个数据采集程序 中,我们演示了如何用ChatGPT辅助编写代码。除了直接让ChatGPT写代码,我们也可以让它生成一些开发中使用的测试数据。比如在开发和测试时,常会用到JSON 格式的数据:[{"id":1,"n......
  • AI挑战高考作文-实测ChatGPT、Bing、文心一言
    大家好,我是木头左。这两天高考逐渐落下了帷幕,对于普通人来说,高考仍然是为数不多的,可以改变命运的机会。想起自己的高考,已经是好多年前,那时候一个人去市里面参加考试,第一次睡在不熟悉的床上,痒了一晚上,实在是小姐身子丫鬟命。当时觉得考试很苦,在想若干年后应该不用考试了,现在看来,由于......
  • 一款能“干掉” ChatGPT 的应用「GitHub 热点速览」
    据说有了它,ChatGPT就可以靠边站了。因为Auto-GPT能更加主动地完成你给他的指定任务,不用做更多的人为干涉,它的推理能力比ChatGPT更强,有人用它解放双手做了个React网站。当然除了升级的Auto-GPT之外,还有DeepSpeed,它能极大地降低训练成本。这两个项目可是本周的明星项目,一个......
  • VS下TS前端与C#的WebApi后端配合实例
    如题。1、新建WebApi默认解决方案WebApi使用.netcore下框架默认的例子(WeatherForecast)以下代码为自动生成publicclassWeatherForecast{publicDateOnlyDate{get;set;}publicintTemperatureC{get;set;}publicintTemperatur......
  • 文心一言 VS 讯飞星火 VS chatgpt (37)-- 算法导论5.4 1题
    一、一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?必须要有多少人,才能让至少两个人生日为7月4日的概率大于1/2?文心一言:一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?答案:23人。证明:假设有n个人,生日都在一年365天当中,则某人和你的生日相......
  • 文心一言 VS 讯飞星火 VS chatgpt (37)-- 算法导论5.4 1题
    一、一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?必须要有多少人,才能让至少两个人生日为7月4日的概率大于1/2?文心一言:一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?答案:23人。证明:假设有n个人,生日都在一年365天当中,则某人和你的......