SAP CRM Text customizing 的读取逻辑

代码:

*&---------------------------------------------------------------------*
*& Report  ZNOTE_GET_CUSTOMIZING
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT znote_get_customizing.

PARAMETERS: type TYPE crmc_proc_type-process_type OBLIGATORY DEFAULT 'OPPT'.

                                                            "OPP00001
DATA: lv_text_procedure     TYPE comt_text_det_procedure.
DATA: lt_text               TYPE STANDARD TABLE OF comc_text_pd.
DATA: ls_text               TYPE comc_text_pd.
DATA: lt_text_object        TYPE STANDARD TABLE OF ttxit,
      lv_start TYPE i,
      lv_end TYPE i.

CONSTANTS: BEGIN OF ct_supported_note,
             edit TYPE comc_text_pd-changeable VALUE space,
             log  TYPE comc_text_pd-changeable VALUE 'P',
           END OF ct_supported_note.

GET RUN TIME FIELD lv_start.
SELECT SINGLE text_procedure INTO lv_text_procedure FROM crmc_proc_type
    WHERE process_type = type
      AND object_type = cl_crm_odata_oppt_constant=>gc_oppt_bus_object.
CHECK sy-subrc EQ 0.

SELECT object textprocedure textid seqno changeable INTO CORRESPONDING FIELDS OF TABLE lt_text
  FROM comc_text_pd
  WHERE object        = cl_crm_odata_oppt_constant=>gc_oppt_notes_tdobject
    AND textprocedure = lv_text_procedure
    AND ( changeable = ct_supported_note-edit OR changeable = ct_supported_note-log ).

CHECK sy-subrc EQ 0.
SORT lt_text BY seqno.

IF lt_text IS NOT INITIAL.
  SELECT tdid tdtext FROM ttxit INTO CORRESPONDING FIELDS OF TABLE lt_text_object
    FOR ALL ENTRIES IN lt_text WHERE tdid = lt_text-textid AND tdspras = sy-langu
     AND tdobject  = cl_crm_odata_oppt_constant=>gc_oppt_notes_tdobject.
ENDIF.

GET RUN TIME FIELD lv_end.

lv_end = lv_end - lv_start.

WRITE: / 'time:', lv_end.

这段代码是在 SAP CRM 系统中开发的 ABAP 代码。该代码的主要目的是从“COMC_TEXT_PD”和“TTXIT”两个 SAP CRM 系统表中获取与指定 process_type 和 tdobject 相关的所有文本。这段代码包括以下主要步骤:

  1. 使用“PARAMETERS”语句定义一个名为“type”的参数,其数据类型为“crmc_proc_type-process_type”,默认值为“OPPT”,必须输入。
  2. 使用“DATA”语句定义一些内部表和变量。
  3. 使用“CONSTANTS”语句定义一个常量“ct_supported_note”,它包含两个字段,“edit”和“log”,其中“edit”字段的值为“space”,“log”字段的值为“P”。
  4. 使用“GET RUN TIME FIELD”语句获取代码的开始时间。
  5. 使用“SELECT SINGLE”语句从“CRMC_PROC_TYPE”表中选择一个单一的“text_procedure”字段值,并将其存储在名为“lv_text_procedure”的变量中。
  6. 使用“CHECK”语句检查最后一次 SELECT 语句的结果代码(sy-subrc)是否为0,如果不是,则表示未找到与指定条件相匹配的记录,代码将终止。
  7. 使用“SELECT”语句从“COMC_TEXT_PD”表中选择所有相关记录,并将结果存储在名为“lt_text”的内部表中。
  8. 再次使用“CHECK”语句检查结果代码(sy-subrc)是否为0,如果不是,则表示未找到任何匹配的记录,代码将终止。
  9. 使用“SORT”语句按“seqno”字段对内部表“lt_text”进行排序。
  10. 如果内部表“lt_text”不为空,则使用“SELECT”语句从“TTXIT”表中选择与“tdid”和“tdspras”字段相匹配的所有记录,并将结果存储在名为“lt_text_object”的内部表中。
  11. 使用“GET RUN TIME FIELD”语句获取代码的结束时间,并计算从开始时间到结束时间的运行时间。
  12. 最后使用“WRITE”语句输出代码的运行时间。

在简单的概括中,这段代码的目的是根据给定的 process_type 和 tdobject,从 SAP CRM 系统的“COMC_TEXT_PD”和“TTXIT”表中检索相关文本,并计算代码的运行时间。

猜你喜欢

转载自blog.csdn.net/i042416/article/details/130539206
今日推荐