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 变量中。

相关文章
|
3月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之使用API调用ODPS SQL时,出现资源被定时任务抢占,该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
67 0
|
2月前
|
SQL 数据处理 数据库
SQL正则表达式应用:文本数据处理的强大工具——深入探讨数据验证、模式搜索、字符替换等核心功能及性能优化和兼容性问题
【8月更文挑战第31天】SQL正则表达式是数据库管理和应用开发中处理文本数据的强大工具,支持数据验证、模式搜索和字符替换等功能。本文通过问答形式介绍了其基本概念、使用方法及注意事项,帮助读者掌握这一重要技能,提升文本数据处理效率。尽管功能强大,但在不同数据库系统中可能存在兼容性问题,需谨慎使用以优化性能。
35 0
|
3月前
|
人工智能 自然语言处理 API
深度融合与创新:Open API技术促进AI服务生态构建
【7月更文第21天】在数字化转型的浪潮中,人工智能(AI)已从概念探索走向实际应用,深刻改变着各行各业。Open API(开放应用程序接口)作为连接技术与业务的桥梁,正成为推动AI服务普及和生态构建的关键力量。本文将探讨Open API技术如何通过标准化、易用性和灵活性,加速AI服务的集成与创新,构建一个更加丰富多元的AI服务生态系统。
113 2
|
3月前
|
人工智能 自然语言处理 搜索推荐
探索AI驱动的未来:Open API如何赋能企业数字化转型
【7月更文第21天】在当今这个数据为王、智能引领的时代,人工智能(AI)已不再是遥远的概念,而是深深融入到各行各业,成为推动企业数字化转型的重要引擎。随着技术的不断成熟与开放,Open API(开放应用程序接口)作为一种连接技术与业务的桥梁,正以前所未有的方式赋能企业,加速其智能化进程。本文将深入探讨Open API如何通过简化集成、促进创新、提升效率等途径,助力企业在AI时代中乘风破浪,实现数字化转型的华丽蜕变。
109 1
|
3月前
|
自然语言处理 PyTorch API
`transformers`库是Hugging Face提供的一个开源库,它包含了大量的预训练模型和方便的API,用于自然语言处理(NLP)任务。在文本生成任务中,`transformers`库提供了许多预训练的生成模型,如GPT系列、T5、BART等。这些模型可以通过`pipeline()`函数方便地加载和使用,而`generate()`函数则是用于生成文本的核心函数。
`transformers`库是Hugging Face提供的一个开源库,它包含了大量的预训练模型和方便的API,用于自然语言处理(NLP)任务。在文本生成任务中,`transformers`库提供了许多预训练的生成模型,如GPT系列、T5、BART等。这些模型可以通过`pipeline()`函数方便地加载和使用,而`generate()`函数则是用于生成文本的核心函数。
|
4月前
|
SQL JSON 分布式计算
|
4月前
|
SQL 分布式计算 Java
|
4月前
|
SQL 存储 API
Flink(十五)【Flink SQL Connector、savepoint、CateLog、Table API】(5)
Flink(十五)【Flink SQL Connector、savepoint、CateLog、Table API】
下一篇
无影云桌面