SAP CRM 系统使用 API 和 open sql 读取订单长文本的两种方式比较

简介: SAP CRM 系统使用 API 和 open sql 读取订单长文本的两种方式比较

下列这段代码来自 SAP CRM ABAP 系统,用 ABAP 编写。

*&---------------------------------------------------------------------*
*& Report ZNOTE_MASS_READ
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZNOTE_MASS_READ.
DATA: lt_textdata TYPE COMT_TEXT_TEXTDATA_T,
      ls_textcom            TYPE comt_text_textcom,
      lt_textcom            TYPE comt_text_textcom_t,
      lv_name          TYPE tdobname,
       lt_error      TYPE comt_text_error_t,
      lt_alltexts           TYPE comt_text_textdata_t,
      lv_guid                 TYPE crmt_object_guid,
      lv_char32               TYPE char32,
      lt_stxh                 TYPE STANDARD TABLE OF stxh,
      lt_stxh1                 TYPE STANDARD TABLE OF stxh,
      lv_textname             TYPE tdobname,
      lv_textname1             TYPE tdobname,
      lt_select             TYPE /IWBEP/T_COD_SELECT_OPTIONS,
      ls_select             LIKE LINE OF lt_select,
      lv_id                 TYPE crmd_orderadm_h-object_id value '2036'.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = lv_id
      IMPORTING
        output = lv_id.
 SELECT SINGLE guid INTO lv_guid FROM crmd_orderadm_h WHERE object_id = lv_id
    AND process_type = 'OPPT'.
 ASSERT sy-subrc = 0.
 lv_char32 = lv_guid.
    CONCATENATE lv_char32 '%' INTO lv_textname.
    CONCATENATE lv_char32 '*' INTO lv_textname1.
    SELECT * FROM stxh INTO TABLE lt_stxh
                       WHERE  tdobject  EQ   'CRM_ORDERH'
                         AND  tdname    LIKE lv_textname.
    ls_select-sign = 'I'.
    ls_select-option = 'CP'.
    ls_select-low = lv_textname1.
    APPEND ls_select TO lt_select.
    SELECT * FROM stxh INTO TABLE lt_stxh1
                       WHERE  tdobject  EQ   'CRM_ORDERH'
                         AND  tdname    IN lt_select.
    LOOP AT lt_stxh1 ASSIGNING FIELD-SYMBOL(<item>).
      lv_name = lv_guid.
       CALL FUNCTION 'COM_TEXT_TIMESTAMP_SET'
        EXPORTING
          iv_tdobject = 'CRM_ORDERH'
          iv_tdid     = <item>-tdid
          iv_tdspras  = <item>-tdspras
        IMPORTING
          et_error    = lt_error
        CHANGING
          cv_textname = lv_name.
       WRITE: / 'API returned: ', lv_name.
       WRITE: / 'OPEN SQL    : ' , <item>-tdname.
       WRITE: / '***************************************'.
    ENDLOOP.
    CALL FUNCTION 'COM_TEXT_READ_ALL_API'
       IMPORTING
          ET_TEXTDATA = lt_textdata
          ET_ALLTEXTS = lt_alltexts
       CHANGING
          IT_TEXTCOM = lt_textcom.
    BREAK-POINT.


这段代码的作用是从 SAP CRM 系统中读取特定对象(在此示例中是 CRM 订单对象)中的所有文本,并通过调用 COM_TEXT_READ_ALL_API 函数将文本数据存储在 lt_textdata 和 lt_alltexts 变量中。代码的实现主要分为以下步骤:


从 crmd_orderadm_h 表中获取 process_type 为 ‘OPPT’ 且 object_id 为 lv_id 的记录的 GUID,存储在 lv_guid 变量中。


使用 lv_guid 构建匹配通配符的文本名称 lv_textname 和 lv_textname1。


通过 SELECT 语句从 STXH 表中检索符合 tdobject 为 ‘CRM_ORDERH’ 且 tdname 包含 lv_textname 通配符的记录,并将结果存储在 lt_stxh 表中。


使用 SELECT 语句从 STXH 表中检索符合 tdobject 为 ‘CRM_ORDERH’ 且 tdname 包含 lv_textname1 通配符的记录,并将结果存储在 lt_stxh1 表中。


遍历 lt_stxh1 表中的记录,使用 CALL FUNCTION ‘COM_TEXT_TIMESTAMP_SET’ 函数将文本名称与对象 GUID 关联,并输出调用结果和相应的文本名称。


最后通过调用 COM_TEXT_READ_ALL_API 函数获取对象中的所有文本数据,存储在 lt_textdata 和 lt_alltexts 变量中。

相关文章
|
4月前
|
SQL 大数据
每天一道大厂SQL题【Day03】订单量统计
每天一道大厂SQL题【Day03】订单量统计
28 0
|
6月前
|
JSON 负载均衡 前端开发
一文带你详细了解Open API设计规范
一文带你详细了解Open API设计规范
999 0
|
6月前
|
Web App开发 人工智能 Linux
宝塔快速反代openai官方的API接口,实现国内调用open ai
宝塔快速反代openai官方的API接口,实现国内调用open ai
620 0
|
2月前
|
SQL 数据库
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
25 0
|
11天前
|
SQL 自然语言处理 数据挖掘
NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道
NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道
NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道
|
13天前
|
供应链 数据挖掘 API
淘宝API接口系列:数据分析丨Erp上货丨维权控价丨商品搬家丨店铺订单管理
淘宝API接口系列在多个方面为电商业务提供了强大的支持,包括数据分析、ERP上货、维权控价、商品搬家以及店铺订单管理。下面将针对这些方面逐一进行说明。
|
22天前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
15 0
|
26天前
|
SQL 数据库 存储
关于 ABAP OPEN SQL 中的 FLPT 数据类型
关于 ABAP OPEN SQL 中的 FLPT 数据类型
14 0
|
26天前
|
Java SQL 数据库
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍试读版
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍试读版
11 0
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍试读版
|
2月前
|
小程序 IDE Java
社区每周丨订单中心模板更新及基础API增加音频与动画(5.15-5.19)
社区每周丨订单中心模板更新及基础API增加音频与动画(5.15-5.19)
31 0

热门文章

最新文章