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 变量中。代码的实现主要分为以下步骤:


  1. 从 crmd_orderadm_h 表中获取 process_type 为 ‘OPPT’ 且 object_id 为 lv_id 的记录的 GUID,存储在 lv_guid 变量中。
  2. 使用 lv_guid 构建匹配通配符的文本名称 lv_textname 和 lv_textname1。
  3. 通过 SELECT 语句从 STXH 表中检索符合 tdobject 为 ‘CRM_ORDERH’ 且 tdname 包含 lv_textname 通配符的记录,并将结果存储在 lt_stxh 表中。
  4. 使用 SELECT 语句从 STXH 表中检索符合 tdobject 为 ‘CRM_ORDERH’ 且 tdname 包含 lv_textname1 通配符的记录,并将结果存储在 lt_stxh1 表中。
  5. 遍历 lt_stxh1 表中的记录,使用 CALL FUNCTION ‘COM_TEXT_TIMESTAMP_SET’ 函数将文本名称与对象 GUID 关联,并输出调用结果和相应的文本名称。
  6. 最后通过调用 COM_TEXT_READ_ALL_API 函数获取对象中的所有文本数据,存储在 lt_textdata 和 lt_alltexts 变量中。

相关文章
|
6月前
|
JSON 负载均衡 前端开发
一文带你详细了解Open API设计规范
一文带你详细了解Open API设计规范
932 0
|
6月前
|
Web App开发 人工智能 Linux
宝塔快速反代openai官方的API接口,实现国内调用open ai
宝塔快速反代openai官方的API接口,实现国内调用open ai
612 0
|
6月前
使用 ABAP 代码删除指定 SAP CRM 系统里 Opportunity 订单的文本
使用 ABAP 代码删除指定 SAP CRM 系统里 Opportunity 订单的文本
45 0
|
2月前
|
小程序 IDE Java
社区每周丨订单中心模板更新及基础API增加音频与动画(5.15-5.19)
社区每周丨订单中心模板更新及基础API增加音频与动画(5.15-5.19)
31 0
|
3月前
|
数据挖掘 API 开发者
必看:详解淘宝店铺订单数据API文档
必看:详解淘宝店铺订单数据API文档
65 7
|
4月前
|
SQL JSON 关系型数据库
【SQL编程】MySQL 5.7.28 版本使用 SQL 直接解析 JSON 字符串(判断是否是合法JSON类型+文本深度+文本长度+值类型+keys获取+值获取+不同深度数据获取)
【SQL编程】MySQL 5.7.28 版本使用 SQL 直接解析 JSON 字符串(判断是否是合法JSON类型+文本深度+文本长度+值类型+keys获取+值获取+不同深度数据获取)
56 0
|
4月前
|
存储 搜索推荐 数据挖掘
淘宝订单API接口在电商行业中的应用与实现
随着电商行业的快速发展,订单处理成为电商运营的核心环节。淘宝作为中国最大的电商平台之一,其订单API接口在电商行业中的应用越来越广泛。本文将详细介绍淘宝订单API接口在电商行业中的应用,并深入剖析相关的技术细节,同时阐述如何实现实时数据获取。
|
6月前
使用 ABAP 代码打印 SAP 系统指定订单的 Reference Currency 字段
使用 ABAP 代码打印 SAP 系统指定订单的 Reference Currency 字段
19 0
|
6月前
什么是 SAP 系统订单的 Reference Currency 字段
什么是 SAP 系统订单的 Reference Currency 字段
25 0
|
1月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
27 0