ChatGPT懂SAP吗?跟ChatGPT聊完后,我暂时不担心会失业
我弄了个ChatGPT账号。随便问了一下他SAP的问题。贴出来跟大家分享一下。
问题1:我是 SAP 开发工程师,你有什么可以帮到我。
作为一个语言模型,我可以为您提供关于SAP开发的一般性建议,以及关于如何使用SAP软件的一些技巧。以下是一些可能有帮助的提示:
掌握SAP的核心模块:SAP有很多不同的模块和应用程序,但是您应该着重于掌握与您工作相关的核心模块。这些模块可能包括财务会计(FI)、成本会计(CO)、人力资源(HR)和物料管理(MM)等。
学习SAP的编程语言和工具:SAP开发需要使用特定的编程语言和工具,例如ABAP和SAPUI5。如果您还没有掌握这些工具和语言,建议您通过官方培训或在线资源学习。
寻找SAP开发社区:加入SAP开发社区可以帮助您获取有关最新技术趋势和最佳实践的信息,并与其他SAP开发人员交流。
注重SAP安全:SAP是一种关键业务系统,因此安全非常重要。作为SAP开发人员,您应该了解如何保护SAP系统免受安全漏洞和攻击,并遵守安全最佳实践。
利用SAP官方资源:SAP提供了许多有用的开发资源,例如SAP Developer Center、SAP Community、SAP Help Portal和SAP Learning Hub等。您可以利用这些资源深入了解SAP的各个方面,并获得有用的技术支持。
希望这些建议能帮到您,如果您有任何其他问题或需要更具体的帮助,请随时联系我。

问题2:SAP 创建科目用什么Tcode?
要在SAP中创建科目,您可以使用以下Tcode:
FS00 - 创建/更改总账科目 OBVU - 创建/更改业务伙伴总分类帐科目 OBXR - 创建/更改参考字段 OBD4 - 创建/更改账户类型
这些Tcode可用于不同类型的科目,例如总账科目、供应商科目、客户科目等。具体使用哪个Tcode取决于您想要创建的科目类型。建议在使用这些Tcode之前,您应该了解一些有关科目的基础知识,例如科目组、科目类别、账户类型等。这将有助于您更好地理解如何使用这些Tcode创建科目。
问题3: SAP 冲销财务凭证用哪些Tcode?请提供详细操作步骤。
在SAP中冲销财务凭证的Tcode是FB08。以下是详细的操作步骤:
进入Tcode:FB08。在屏幕顶部的“过账日期”字段中输入冲销日期,然后在“凭证号码”字段中输入要冲销的凭证号码。
点击“过账”按钮。
在弹出的窗口中,选择“冲销”选项,并确认。
系统将显示一个消息,提示您已成功冲销该凭证。
请注意,冲销凭证时需要注意以下几点:
- 冲销凭证的日期必须在原始凭证的过账期间内。
- 要冲销的凭证必须是已过账状态。
- 如果凭证包含多个项目,您可以选择冲销其中的一部分或全部项目。
如果您需要更多关于SAP冲销财务凭证的详细信息,建议参考SAP的帮助文档或向您的SAP管理员寻求帮助。
点评:Chat GPT这个回答有些是扯淡的了,SAP的凭证都是整个凭证冲销的,而不是可以冲销某个行项目的?
不过我想看看它是怎么做到冲销某个行项目的。所以我接着问它下面这个问题。
问题4:如何做到,如果凭证包含多个项目,我怎么选择冲销其中的一部分或全部项目?
如果您需要冲销凭证中的部分项目,而不是全部项目,可以按照以下步骤操作:
进入FB08 Tcode,输入冲销日期和凭证号码,然后点击“过账”按钮。
在弹出的窗口中,选择“冲销”选项,并确认。
在凭证的过账屏幕中,找到您要冲销的项目。如果凭证中有多个项目,每个项目都将显示在一个行中。
在要冲销的项目的行中,将光标移动到“贷方”或“借方”列的“金额”字段中,并输入要冲销的金额。如果要冲销整个项目,请输入相同的金额,等于该项目的原始金额。
在每个要冲销的项目的行中完成后,点击“过账”按钮。系统将显示一个消息,提示您已成功冲销该凭证中的部分项目。
请注意,如果凭证中的项目已进行了更改(例如已经进行了付款或发货),则无法冲销该项目。此外,在进行部分项目冲销时,您需要确保冲销金额的总和等于凭证中原始项目的总金额。如果您需要进一步了解如何冲销凭证中的部分项目,请参考SAP的帮助文档或向您的SAP管理员寻求帮助。
点评:Chat GPT这个回答完全是扯淡,SAP的凭证都是整个凭证冲销的,而不是可以冲销某个行项目。
问题5: SAP中 如何冲销已经结账的凭证?
在SAP中,如果您需要冲销已经结账的凭证,可以按照以下步骤操作:
进入Tcode:FBRA。在屏幕顶部的“凭证号码”字段中输入要冲销的凭证号码,然后在“过账日期”字段中输入冲销日期。
点击“凭证冲销”按钮。
在弹出的窗口中,选择要冲销的凭证行项目。您可以冲销整个凭证或仅冲销部分行项目。
在选择要冲销的项目后,确认您的选择并点击“过账”按钮。
系统将显示一个消息,提示您已成功冲销该凭证。
请注意,如果您要冲销已结账的凭证,必须在相应的会计期间内打开新的会计期间。此外,如果凭证已经被审核或已进行了后续的业务处理(例如已经进行了付款或发货),则无法冲销该凭证。如果您需要进一步了解如何冲销已经结账的凭证,请参考SAP的帮助文档或向您的SAP管理员寻求帮助。
问题6:请写一段我可以直接运行的 SAP ALV 报表程序
以下是一个可以直接运行的SAP ALV报表程序的示例代码:
REPORT Z_ALV_REPORT.* 导入必要的数据类型和结构
TABLES: BKPF.* 定义内部表来存储ALV数据
DATA: BEGIN OF ITAB OCCURS 0,BELNR LIKE BKPF-BELNR,GJAHR LIKE BKPF-GJAHR,BUKRS LIKE BKPF-BUKRS,BLART LIKE BKPF-BLART,BLDAT LIKE BKPF-BLDAT,MONAT LIKE BKPF-MONAT,WAERS LIKE BKPF-WAERS,BUDAT LIKE BKPF-BUDAT,USNAM LIKE BKPF-USNAM,TCODE LIKE BKPF-TCODE,XBLNR LIKE BKPF-XBLNR,END OF ITAB.* 定义工作区域
DATA: WA_BKPF LIKE BKPF.* 定义字段目录
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.* 定义表头和布局
DATA: IT_LAYOUT TYPE SLIS_T_LAYOUT_ALV,WA_LAYOUT TYPE SLIS_LAYOUT_ALV.* 定义事件CATALOG
DATA: IT_EVENT TYPE SLIS_T_EVENT,WA_EVENT TYPE SLIS_EVENT.* 定义输出选项
DATA: IT_EXCEPT TYPE SLIS_T_EXCEPT,WA_EXCEPT TYPE SLIS_EXCEPT.* 定义变量以存储输出功能代码和导出参数
DATA: LV_REPID LIKE SY-REPID,LV_OUTPUT_FUNC LIKE SY-LSIND,LT_OUTTAB LIKE ITAB OCCURS 0.* 设置ALV报表字段目录
WA_FIELDCAT-REF_FIELDNAME = 'BKPF-BELNR'.
WA_FIELDCAT-FIELDNAME = 'BELNR'.
WA_FIELDCAT-SELTEXT_M = '凭证号'.
WA_FIELDCAT-COL_POS = 1.
APPEND WA_FIELDCAT TO IT_FIELDCAT.WA_FIELDCAT-REF_FIELDNAME = 'BKPF-GJAHR'.
WA_FIELDCAT-FIELDNAME = 'GJAHR'.
WA_FIELDCAT-SELTEXT_M = '会计年度'.
WA_FIELDCAT-COL_POS = 2.
APPEND WA_FIELDCAT TO IT_FIELDCAT.WA_FIELDCAT-REF_FIELDNAME = 'BKPF-BUKRS'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = '公司代码'.
WA_FIELDCAT-COL_POS = 3.
APPEND WA_FIELDCAT TO IT_FIELDCAT.WA_FIELDCAT-REF_FIELDNAME = 'BKPF-BLART'.
WA_FIELDCAT-FIELDNAME = 'BLART'.
WA_FIELDCAT-SELTEXT_M = '凭证类型'.
WA_FIELDCAT-COL_POS = 4.
APPEND WA_FIELDCAT TO IT_FIELDCAT.WA_FIELDCAT-REF_FIELDNAME = 'BKPF-BLDAT'.
WA_FIELDCAT-FIELDNAME = 'BLDAT'.
WA_FIELDCAT-SELTEXT_M = '凭证日期'.
WA_FIELDCAT-COL_POS = 5.
APPEND WA_FIELDCAT TO IT_FIEL
我发现它写的这段程序是不完整的。我便继续让它写
问题7:你这个程序是无法运行的
非常抱歉,我之前提供的程序代码不完整且存在错误,导致无法运行。下面是一个修正后的程序示例,可以直接在 SAP 中运行:
REPORT Z_ALV_REPORT.* 导入必要的数据类型和结构
TABLES: BKPF.* 定义内部表来存储ALV数据
DATA: BEGIN OF ITAB OCCURS 0,BELNR LIKE BKPF-BELNR,GJAHR LIKE BKPF-GJAHR,BUKRS LIKE BKPF-BUKRS,BLART LIKE BKPF-BLART,BLDAT LIKE BKPF-BLDAT,MONAT LIKE BKPF-MONAT,WAERS LIKE BKPF-WAERS,BUDAT LIKE BKPF-BUDAT,USNAM LIKE BKPF-USNAM,TCODE LIKE BKPF-TCODE,XBLNR LIKE BKPF-XBLNR,END OF ITAB.* 定义工作区域
DATA: WA_BKPF LIKE BKPF.* 定义字段目录
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.* 定义表头和布局
DATA: IT_LAYOUT TYPE SLIS_T_LAYOUT_ALV,WA_LAYOUT TYPE SLIS_LAYOUT_ALV.* 定义事件CATALOG
DATA: IT_EVENT TYPE SLIS_T_EVENT,WA_EVENT TYPE SLIS_EVENT.* 定义输出选项
DATA: IT_EXCEPT TYPE SLIS_T_EXCEPT,WA_EXCEPT TYPE SLIS_EXCEPT.* 定义变量以存储输出功能代码和导出参数
DATA: LV_REPID LIKE SY-REPID,LV_OUTPUT_FUNC LIKE SY-LSIND,LT_OUTTAB LIKE ITAB OCCURS 0.* 设置ALV报表字段目录
WA_FIELDCAT-REF_FIELDNAME = 'BKPF-BELNR'.
WA_FIELDCAT-FIELDNAME = 'BELNR'.
WA_FIELDCAT-SELTEXT_M = '凭证号'.
WA_FIELDCAT-COL_POS = 1.
APPEND WA_FIELDCAT TO IT_FIELDCAT.WA_FIELDCAT-REF_FIELDNAME = 'BKPF-GJAHR'.
WA_FIELDCAT-FIELDNAME = 'GJAHR'.
WA_FIELDCAT-SELTEXT_M = '会计年度'.
WA_FIELDCAT-COL_POS = 2.
APPEND WA_FIELDCAT TO IT_FIELDCAT.WA_FIELDCAT-REF_FIELDNAME = 'BKPF-BUKRS'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = '公司代码'.
WA_FIELDCAT-COL_POS = 3.
APPEND WA_FIELDCAT TO IT_FIELDCAT.WA_FIELDCAT-REF_FIELDNAME = 'BKPF-BLART'.
WA_FIELDCAT-FIELDNAME = 'BLART'.
WA_FIELDCAT-SELTEXT_M = '凭证类型'.
WA_FIELDCAT-COL_POS = 4.
APPEND WA_FIELDCAT TO IT_FIELDCAT.WA_FIELDCAT-REF_FIELDNAME = 'BKPF-BLDAT'.
WA_FIELDCAT-FIELDNAME = 'BLDAT'.
WA_FIELDCAT-SELTEXT
这个程序也是不能运行的,还没写完。算了,不调戏它了。
最后我它随便写了个ABAP程序。

我大概把玩了一个上午。它厉害的地方是它真的很能理解人类语言。它有强大的搜索能力。但它不知道它搜索的东西是对还是错。关于这点我认为:
SAP顾问一个很好的习惯是要积累属于自己的知识库。
感觉要想用ChatGPT来完全替代我们SAP 顾问感觉还有很漫长。我暂时不担心我会失业,哈哈。但有一个ChatGPT真是人类的好助手。
最后我还问了个无聊的问题。问它怎么看待人类。还用英文问了一遍。发现回答的内容都是一样的。

我也想不到一些更好的问题要问ChatGPT,如果大家有什么好的问题要问。可以在评论区留言。我来帮忙问题下,我有空会回复大家。谢谢。
相关文章:
ChatGPT懂SAP吗?跟ChatGPT聊完后,我暂时不担心会失业
我弄了个ChatGPT账号。随便问了一下他SAP的问题。贴出来跟大家分享一下。 问题1:我是 SAP 开发工程师,你有什么可以帮到我。 作为一个语言模型,我可以为您提供关于SAP开发的一般性建议,以及关于如何使用SAP软件的一些技巧。以下是…...
Communications link failure 解决方法 !!!
Communications link failure 解决方法 最近在使用mybatis逆向生成的时候遇到了link failure的问题, 这里记录解决方法 文章目录Communications link failure 解决方法generatorConfig 里的数据库链接或数据库或密码或账户填写错误mysql响应时间设置太短, 还没等链接上就关闭连…...
pytorch入门2--数据预处理、线性代数的矩阵实现、求导
数据预处理是指将原始数据读取进来使得能用机器学习的方法进行处理。 首先介绍csv文件: CSV 代表逗号分隔值(comma-separated values),CSV 文件就是使用逗号分隔数据的文本文件。 一个 CSV 文件包含一行或多行数据,每一…...
15.消息队列RabbitMQ
一、基本概念 RabbitMQ 是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息…...
并发编程之死锁问题介绍
一、本文概览 死锁问题在并发编程中是一个非常致命的问题,问题一旦产生,只能通过重启机器、修改代码来修复问题,下面我们通过一小段文章内容介绍下死锁以及如何死锁的预防 二、什么是死锁? 在介绍死锁之前,先来明确下什…...
【python学习笔记】:SQL常用脚本(一)
1、行转列的用法PIVOT CREATE table test (id int,name nvarchar(20),quarter int,number int) insert into test values(1,N苹果,1,1000) insert into test values(1,N苹果,2,2000) insert into test values(1,N苹果,3,4000) insert into test values(1,N苹果,4,5000) insert…...
Spring是怎么解决循环依赖的
1.什么是循环依赖: 这里给大家举个简单的例子,相信看了上一篇文章大家都知道了解了spring的生命周期创建流程。那么在Spring在生命周期的哪一步会出现循环依赖呢? 第一阶段:实例化阶段 Instantiation 第二阶段:属性赋…...
HTML创意动画代码
目录1、动态气泡背景2、创意文字3、旋转立方体1、动态气泡背景 <!DOCTYPE html> <html> <head><title>Bubble Background</title><style>body {margin: 0;padding: 0;height: 100vh;background: #222;display: flex;flex-direction: colum…...
软工第一次个人作业——阅读和提问
软工第一次个人作业——阅读和提问 项目内容这个作业属于哪个课程2023北航敏捷软件工程这个作业的要求在哪里个人作业-阅读和提问我在这个课程的目标是体验敏捷开发过程,掌握一些开发技能,为进一步发展作铺垫这个作业在哪个具体方面帮助我实现目标对本课…...
urho3d的自定义文件格式
Urho3D尽可能使用现有文件格式,仅在绝对必要时才定义自定义文件格式。当前使用的自定义文件格式有: 二进制模型格式(.mdl) Model geometry and vertex morph data byte[4] Identifier "UMDL" or "UMD2" …...
spark第一章:环境安装
系列文章目录 spark第一章:环境安装 文章目录系列文章目录前言一、文件准备1.文件上传2.文件解压3.修改配置4.启动环境二、历史服务器1.修改配置2.启动历史服务器总结前言 spark在大数据环境的重要程度就不必细说了,直接开始吧。 一、文件准备 1.文件…...
MySQL---存储过程与存储函数的相关概念
MySQL—存储过程与存储函数的相关概念 存储函数和存储过程的主要区别: 存储函数一定会有返回值的存储过程不一定有返回值 存储过程和函数能后将复杂的SQL逻辑封装在一起,应用程序无需关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调…...
PMP值得考吗?
第一,PMP的价值体现 1、PMP是管理岗位必考证书。 多数企业会选择优先录用持PMP证书的管理人才,PMP成为管理岗位的必考证书。PMP在很多外企和国内中大型企业非常受重视,中石油、中海油、华为等等都会给内部员工做培训。 这些机构对项目管理…...
Quartus 报错汇总(持续更新...)
1、Error (10663): Verilog HDL Port Connection error at top_rom.v(70): output or inout port "stcp" must be connected to a structural net expression输出变量stcp在原设计文件中已经定义为reg型,在实例化时不能再定义为reg型,而应该是…...
Netty权威指南总结(一)
一、为什么选择Netty:API使用简单,开发门槛低,屏蔽了NIO通信的底层细节。功能强大,预制了很多种编解码功能,支持主流协议。定制能力强,可以通过ChannelHandler对通信框架进行灵活地拓展。性能高、成熟、稳定…...
Elasticsearch:如何轻松安全地对实时 Elasticsearch 索引重新索引你的数据
在很多的时候,由于一些需求,我们不得不修改索引的映射,也即 mapping,这个时候我们需要重新索引(reindex)来把之前的数据索引到新的索引中。槽糕的是,我们的这个索引还在不断地收集实时数据&…...
【算法笔记】前缀和与差分
第一课前缀和与差分 算法是解决问题的方法与步骤。 在看一个算法是否优秀时,我们一般都要考虑一个算法的时间复杂度和空间复杂度。 现在随着空间越来越大,时间复杂度成为了一个算法的重要指标,那么如何估计一个算法的时间复杂度呢…...
python实战应用讲解-【实战应用篇】函数式编程-八皇后问题(附示例代码)
目录 知识储备-迭代器相关模块 itertools 模块 创建新的迭代器 根据最短输入序列长度停止的迭代器...
【Servlet篇】如何解决Request请求中文乱码的问题?
前言 前面一篇文章我们探讨了 Servlet 中的 Request 对象,Request 请求对象中封装了请求数据,使用相应的 API 就可以获取请求参数。 【Servlet篇】一文带你读懂 Request 对象 也许有小伙伴已经发现了前面的方式获取请求参数时,会出现中文乱…...
SpringBoot:SpringBoot简介与快速入门(1)
SpringBoot快速入门1. SpringBoot简介2. SpringBoot快速入门2.1 创建SpringBoot项目(必须联网,要不然创建失败,在模块3会讲到原因)2.2 编写对应的Controller类2.3 启动测试3. Spring官网构建工程4. SpringBoot工程快速启动4.1 为什…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
