mcpField
R
released-abap-classes

released-abap-classes

github.com/likweitan开发7289 次安装2 周前更新
代码仓库

关于 released-abap-classes

面向 ABAP for Cloud Development 开发者的已发布 ABAP 类参考,按任务整理 API,并提供常见操作示例及发布状态验证方法。

主要功能

  1. 01按任务分类的已发布类
  2. 02常见 ABAP 操作示例
  3. 03API 发布状态验证指南
  4. 04Clean core 等级与替代方案说明

适用场景

  1. 01查找日期、JSON、HTTP 或邮件 API
  2. 02检查仓库对象是否已发布
  3. 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
UUIDCL_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/XMLXCO_CP_JSON、/UI2/CL_JSON、CL_SXML_*、CL_IXML_*
电子邮件CL_BCS_MAIL_MESSAGE
HTTP 调用CL_WEB_HTTP_CLIENT_MANAGER、CL_HTTP_DESTINATION_PROVIDER
RAPCL_ABAP_BEHV_AUX、CL_ABAP_BEHAVIOR_HANDLER、CL_ABAP_BEHAVIOR_SAVER
RTTSCL_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
XLSXXCO_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 Hubhttps://api.sap.com/ — 已发布的远程和本地 API
Cloudification Repositoryhttps://sap.github.io/abap-atc-cr-cv-s4hc/ — 级别分类
如果不存在已发布的类
情况干净核心级别操作
存在指定的经典 APIB在经典 ABAP 中使用;为 ABAP Cloud 创建包装器
仅存在内部 SAP 对象C将其包装,创建一个 ATC 豁免,并监控变更日志
对象被归类为 noAPID不要使用——寻找已发布或经典替代方案

详细参考

如需完整的代码示例和所有可用类,请阅读:

参考文件结构

参考文件按以下章节组织(可使用 grep 模式搜索):

章节搜索模式
控制台输出Running a Class and Displaying Output
UUIDCreating 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
RTTSRuntime Type Services
赋值## Assignments
结构组件Non-Initial Structure Components
表比较Comparing Content of Compatible
动态编程Dynamic Programming
当前用户Getting the Current User Name
XML/JSONXML/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
XLSXReading and Writing XLSX Content
Zip 文件Zip Files
单元测试ABAP Unit
计量单位Units of Measurement
ATCProgrammatic ABAP Test Cockpit
编号范围Handling Number Ranges
发布 APIReleasing APIs
应用程序作业Application Jobs
生成式 AIGenerative 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