关于 released-abap-classes
面向 ABAP for Cloud Development 开发者的已发布 ABAP 类参考,按任务整理 API,并提供常见操作示例及发布状态验证方法。
主要功能
- 01按任务分类的已发布类
- 02常见 ABAP 操作示例
- 03API 发布状态验证指南
- 04Clean core 等级与替代方案说明
适用场景
- 01查找日期、JSON、HTTP 或邮件 API
- 02检查仓库对象是否已发布
- 03在没有已发布类时选择处理方案
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ likweitan/ abap-skills --skill released-abap-classes安装后在 Claude Code 中输入/released-abap-classes确认已加载。
附带文件references/Released_ABAP_Classes.md
详细介绍
已发布的 ABAP 类
ABAP Cloud 开发中可用的已发布 ABAP 类参考(适用于 ABAP 环境(SAP BTP)和 SAP Cloud ERP Private)。
此处列出的所有类都是受稳定性契约约束的已发布 API——使用它们可使扩展保持在干净核心 A 级。如果需要的类尚未发布,请参阅
abap-cloud技能,了解包装器模式和级别分类。
按类别快速参考
| 类别 | 关键类 |
|---|---|
| 控制台输出 | IF_OO_ADT_CLASSRUN、CL_DEMO_CLASSRUN、CL_XCO_CP_ADT_SIMPLE_CLASSRUN |
| UUID | CL_SYSTEM_UUID、XCO_CP、XCO_CP_UUID |
| 时间和日期 | CL_ABAP_CONTEXT_INFO、XCO_CP_TIME、CL_ABAP_TSTMP、CL_ABAP_UTCLONG、CL_ABAP_DATFM、CL_ABAP_TIMEFM |
| 日历 | CL_FHC_CALENDAR_RUNTIME、CL_SCAL_UTILS |
| 字符串处理 | CL_ABAP_CHAR_UTILITIES、CL_ABAP_STRING_UTILITIES、XCO_CP |
| 数字/数学 | CL_ABAP_MATH、CL_ABAP_DECFLOAT、CL_ABAP_BIGINT、CL_ABAP_RATIONAL |
| 随机数 | CL_ABAP_RANDOM_*(INT、INT8、FLOAT、PACKED、DECFLOAT16/34)、CL_ABAP_PROB_DISTRIBUTION |
| 正则表达式 | CL_ABAP_REGEX、CL_ABAP_MATCHER |
| 代码页/二进制 | CL_ABAP_CONV_CODEPAGE、CL_ABAP_GZIP*、CL_WEB_HTTP_UTILITY |
| JSON/XML | XCO_CP_JSON、/UI2/CL_JSON、CL_SXML_*、CL_IXML_* |
| 电子邮件 | CL_BCS_MAIL_MESSAGE |
| HTTP 调用 | CL_WEB_HTTP_CLIENT_MANAGER、CL_HTTP_DESTINATION_PROVIDER |
| RAP | CL_ABAP_BEHV_AUX、CL_ABAP_BEHAVIOR_HANDLER、CL_ABAP_BEHAVIOR_SAVER |
| RTTS | CL_ABAP_TYPEDESCR 及其层次结构 |
| 动态编程 | CL_ABAP_DYN_PRG、CL_ABAP_CORRESPONDING |
| 用户信息 | CL_ABAP_CONTEXT_INFO、XCO_CP=>sy->user() |
| 单元测试 | CL_ABAP_UNIT_ASSERT、CL_OSQL_TEST_ENVIRONMENT、CL_CDS_TEST_ENVIRONMENT |
| 并行处理 | CL_ABAP_PARALLEL |
| 应用程序日志 | CL_BALI_LOG |
| 后台作业 | CL_BGMC_PROCESS_FACTORY |
| 锁定 | CL_ABAP_LOCK_OBJECT_FACTORY |
| XLSX | XCO_CP_XLSX |
| Zip 文件 | CL_ABAP_ZIP |
| PDF 渲染 | CL_FP_ADS_UTIL |
常见用例
获取当前 UTC 日期/时间
"Using CL_ABAP_CONTEXT_INFO
DATA(sys_date) = cl_abap_context_info=>get_system_date( ). "e.g. 20240101
DATA(sys_time) = cl_abap_context_info=>get_system_time( ). "e.g. 152450
"Using XCO (various formats)
DATA(date_utc) = xco_cp=>sy->date( xco_cp_time=>time_zone->utc )->as( xco_cp_time=>format->abap )->value.
DATA(time_utc) = xco_cp=>sy->time( xco_cp_time=>time_zone->utc )->as( xco_cp_time=>format->iso_8601_extended )->value.
DATA(moment_utc) = xco_cp=>sy->moment( xco_cp_time=>time_zone->utc )->as( xco_cp_time=>format->iso_8601_extended )->value.
发送电子邮件
TRY.
DATA(mail) = cl_bcs_mail_message=>create_instance( ).
mail->set_sender( '[email protected]' ).
mail->add_recipient( '[email protected]' ).
mail->set_subject( 'Subject' ).
mail->set_main( cl_bcs_mail_textpart=>create_instance(
iv_content = '<h1>Hello</h1><p>Message body.</p>'
iv_content_type = 'text/html' ) ).
mail->send( IMPORTING et_status = DATA(status) ).
CATCH cx_bcs_mail INTO DATA(error).
ENDTRY.
生成 UUID
"CL_SYSTEM_UUID
DATA(uuid_x16) = cl_system_uuid=>create_uuid_x16_static( ).
DATA(uuid_c36) = cl_system_uuid=>create_uuid_c36_static( ).
"XCO
DATA(uuid) = xco_cp=>uuid( )->value.
DATA(uuid_c36_xco) = xco_cp=>uuid( )->as( xco_cp_uuid=>format->c36 )->value.
JSON 处理
"ABAP -> JSON
DATA(json) = xco_cp_json=>data->from_abap( some_structure )->to_string( ).
"JSON -> ABAP
xco_cp_json=>data->from_string( json_string )->write_to( REF #( target_structure ) ).
"Using /UI2/CL_JSON
DATA(json2) = /ui2/cl_json=>serialize( data = some_data ).
/ui2/cl_json=>deserialize( EXPORTING json = json2 CHANGING data = target ).
HTTP 客户端调用
TRY.
DATA(dest) = cl_http_destination_provider=>create_by_url( 'https://api.example.com' ).
DATA(client) = cl_web_http_client_manager=>create_by_http_destination( dest ).
DATA(request) = client->get_http_request( ).
DATA(response) = client->execute( if_web_http_client=>get ).
DATA(status) = response->get_status( ).
DATA(body) = response->get_text( ).
CATCH cx_web_http_client_error cx_http_dest_provider_error INTO DATA(error).
ENDTRY.
获取当前用户
"Using CL_ABAP_CONTEXT_INFO
DATA(user_alias) = cl_abap_context_info=>get_user_alias( ).
DATA(user_name) = cl_abap_context_info=>get_user_formatted_name( ).
"Using XCO
DATA(user) = xco_cp=>sy->user( )->name.
验证发布状态(A 级)
"Check if an object is released for ABAP Cloud
SELECT SINGLE *
FROM i_apistateofrepositoryobject
WHERE ObjectType = 'CLAS'
AND ObjectName = 'CL_NUMBERRANGE_RUNTIME'
AND ReleaseState = 'RELEASED'
INTO @DATA(ls_state).
其他查找方式:
| 方法 | 用途 |
|---|---|
| ADT 已发布对象搜索 | 使用 api: 前缀搜索(例如 api:cl_*) |
| 项目资源管理器 | 已发布对象 → 源代码库文件夹 |
| 已发布对象 Fiori 应用 | F5865 — 按经典名称搜索,查看后继信息 |
| SAP Business Accelerator Hub | https://api.sap.com/ — 已发布的远程和本地 API |
| Cloudification Repository | https://sap.github.io/abap-atc-cr-cv-s4hc/ — 级别分类 |
如果不存在已发布的类
| 情况 | 干净核心级别 | 操作 |
|---|---|---|
| 存在指定的经典 API | B | 在经典 ABAP 中使用;为 ABAP Cloud 创建包装器 |
| 仅存在内部 SAP 对象 | C | 将其包装,创建一个 ATC 豁免,并监控变更日志 |
对象被归类为 noAPI | D | 不要使用——寻找已发布或经典替代方案 |
详细参考
如需完整的代码示例和所有可用类,请阅读:
参考文件结构
参考文件按以下章节组织(可使用 grep 模式搜索):
| 章节 | 搜索模式 |
|---|---|
| 控制台输出 | Running a Class and Displaying Output |
| UUID | Creating and Transforming UUIDs |
| SY 组件 | XCO Representations of SY Components |
| RAP | ## RAP |
| 事务一致性 | Transactional Consistency |
| 数字/计算 | Numbers and Calculations |
| 字符串处理 | String Processing |
| 代码页/二进制 | Handling Codepages and Binary |
| 正则表达式 | Regular Expressions |
| 时间和日期 | Time and Date |
| 日历 | Calendar-Related Information |
| RTTS | Runtime Type Services |
| 赋值 | ## Assignments |
| 结构组件 | Non-Initial Structure Components |
| 表比较 | Comparing Content of Compatible |
| 动态编程 | Dynamic Programming |
| 当前用户 | Getting the Current User Name |
| XML/JSON | XML/JSON |
| 仓库对象 | ABAP Repository Object Information |
| 生成对象 | Generating ABAP Repository Objects |
| 调用栈 | Call Stack |
| 电子邮件 | Sending Emails |
| 租户信息 | Tenant Information |
| 异常 | Exception Classes |
| 并行处理 | Parallel Processing |
| 应用程序日志 | Application Log |
| 后台作业 | Running Code in the Background |
| 锁定 | ## Locking |
| HTTP 调用 | Calling Services |
| XLSX | Reading and Writing XLSX Content |
| Zip 文件 | Zip Files |
| 单元测试 | ABAP Unit |
| 计量单位 | Units of Measurement |
| ATC | Programmatic ABAP Test Cockpit |
| 编号范围 | Handling Number Ranges |
| 发布 API | Releasing APIs |
| 应用程序作业 | Application Jobs |
| 生成式 AI | Generative AI |
| 传输请求 | Programmatically Creating and Releasing Transport |
| HTML/XML 清理 | Repairing and Cleaning up HTML |
| IDE 操作 | Creating and Using IDE Actions |
| PDF 渲染 | Output Management |
| CSV 导出 | Writing Internal Table Content to CSV |
| 垃圾回收 | Triggering Garbage Collection |
相关技能
- abap-cloud:用于清洁核心级别定义,以及在没有已发布类时采用包装器模式
- abap-cloud-migration:用于在级别整改期间替换未发布的 API
- atc-cloudification:用于通过 ATC 检查对象分类和发布状态
- rap:用于 RAP 专用的已发布类(
CL_ABAP_BEHAVIOR_HANDLER、CL_ABAP_BEHAVIOR_SAVER)
评论
支持 Markdown