[ChatGPT 勘误] SAP ABAP 里 cl_r3standard_persistence 的用途?

简介: [ChatGPT 勘误] SAP ABAP 里 cl_r3standard_persistence 的用途?

首先看 ChatGPT 的回答:

这答案完全不正确。

SAP ABAP 中,cl_r3standard_persistence 是一个用于管理 ABAP 数据库操作的类。它提供了一系列静态方法,用于执行与 ABAP 数据库相关的任务,如读取数据、保存数据、更新数据、删除数据等。


以下是 cl_r3standard_persistence 类中一些重要方法的说明:


  • GET_TABLE_CONTENTS: 该方法用于从指定的 ABAP 数据表中读取数据,并将数据存储在内部表中。
  • GET_ROW: 该方法用于从指定的 ABAP 数据表中获取指定的数据行,并将数据存储在内部表中。
  • INSERT_RECORD: 该方法用于向指定的 ABAP 数据表中插入新的数据行。
  • UPDATE_RECORD: 该方法用于更新指定的 ABAP 数据表中的数据行。
  • DELETE_RECORD: 该方法用于从指定的 ABAP 数据表中删除指定的数据行。
  • DELETE_TABLE: 该方法用于从指定的 ABAP 数据表中删除所有数据行。


cl_r3standard_persistence 类可以帮助开发人员快速和方便地执行与 ABAP 数据库相关的任务,从而提高开发效率。但是,由于该类直接操作数据库,因此需要谨慎使用,以避免对系统的数据造成损坏。


据笔者推断,ChatGPT 做出这种错误回答,很可能是受到类名称里 PERSISTENCE 即持久化的影响。


这个类的描述信息:Enhancement Persistence for Standard Tables,笔者用的最多的就是它提供的静态方法,即使用 obj_is_enhanceable 判断一个 ABAP 对象是否可以被增强。

139594d109422168ca3ded2ed5adb669_04eb727df60db09c9587a1866f8cdda5.png

上图第 14 行的 obj_is_enhanceable 方法,如果抛出异常 cx_enh_is_not_enhanceable,被 18 行的 catch 语句接收,然后将 CL_WB_ED_ENHANCEMENT_HANDLER 的 成员变量 m_is_enhanceable 设置为 abap_false.


77702f87804eb05794c9e83599a6f4fe_e4f34b0a87bb53f114bca78ea08dffaa.png

这里涉及到另一个 ABAP Function Module TR_GET_DLVUNIT_CHANGEABILITY,ChatGPT 对其的解释是:

在 SAP ABAP 中,TR_GET_DLVUNIT_CHANGEABILITY 是一个函数模块,用于获取交货单位更改的可行性。在 SAP 中,交货单位是指发货方与客户之间的交易单位,它通常用于计算货物的运输和交付费用,以及货物的库存管理等。

TR_GET_DLVUNIT_CHANGEABILITY 函数模块可以用于检查交货单位是否可以更改,具体来说,它可以判断在特定的发货单/交货单/订单发货请求情况下是否允许更改交货单位。该函数模块的输入参数包括交货单号、发货单号、订单发货请求号以及发货单的行号等,输出参数包括交货单位是否可更改的标识符以及相应的消息。

2a474fc3f50d4fe98602495da8114117_e5ea37b8b6960cd6a1c04ad9b762a5f0.png这里 ChatGPT 的回答就更扯淡了,交货单位,显然是受到了 Function Module 名称里 DLVUNIT 的影响。虽然 ChatGPT 成功将 DLVUNIT 的缩写辨析出了 Delivery Unit字面含义,但此 Delivery Unit 并非 SAP S/4HANA 里的交货单位,而是 ABAP 模块传输和发布里的一个概念。在这里 ChatGPT 没能在正确的上下文里进行回答。


相关文章
|
28天前
|
开发者 供应链 BI
SAP ABAP CALL SUBSCREEN 代码解析
SAP ABAP CALL SUBSCREEN 代码解析
34 0
|
28天前
|
SQL Android开发
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
8 0
创建 SAP ABAP CDS View 保存失败 - Dependencies DDL source - View Entity not written
|
28天前
|
SQL 数据库 索引
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
20 1
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
|
24天前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
21 0
|
24天前
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
16 1
|
24天前
|
人工智能
Suno AI 生成 SAP ABAP 顾问之歌
Suno AI 生成 SAP ABAP 顾问之歌
19 1
|
24天前
|
存储 安全 数据库
SAP ABAP 中数据类型 xstring 的使用介绍
SAP ABAP 中数据类型 xstring 的使用介绍
20 0
|
28天前
使用 ChatGPT 自动生成 ABAP 相关的 ppt
使用 ChatGPT 自动生成 ABAP 相关的 ppt
12 0
使用 ChatGPT 自动生成 ABAP 相关的 ppt
|
28天前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
16 1
什么是 SAP ABAP 里的 Subscreen
|
28天前
SAP ABAP 里 CALL SUBSCREEN 语句的使用介绍
SAP ABAP 里 CALL SUBSCREEN 语句的使用介绍
12 1
SAP ABAP 里 CALL SUBSCREEN 语句的使用介绍