代码:
*&---------------------------------------------------------------------*
*& 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 相关的所有文本。这段代码包括以下主要步骤:
- 使用“PARAMETERS”语句定义一个名为“type”的参数,其数据类型为“crmc_proc_type-process_type”,默认值为“OPPT”,必须输入。
- 使用“DATA”语句定义一些内部表和变量。
- 使用“CONSTANTS”语句定义一个常量“ct_supported_note”,它包含两个字段,“edit”和“log”,其中“edit”字段的值为“space”,“log”字段的值为“P”。
- 使用“GET RUN TIME FIELD”语句获取代码的开始时间。
- 使用“SELECT SINGLE”语句从“CRMC_PROC_TYPE”表中选择一个单一的“text_procedure”字段值,并将其存储在名为“lv_text_procedure”的变量中。
- 使用“CHECK”语句检查最后一次 SELECT 语句的结果代码(sy-subrc)是否为0,如果不是,则表示未找到与指定条件相匹配的记录,代码将终止。
- 使用“SELECT”语句从“COMC_TEXT_PD”表中选择所有相关记录,并将结果存储在名为“lt_text”的内部表中。
- 再次使用“CHECK”语句检查结果代码(sy-subrc)是否为0,如果不是,则表示未找到任何匹配的记录,代码将终止。
- 使用“SORT”语句按“seqno”字段对内部表“lt_text”进行排序。
- 如果内部表“lt_text”不为空,则使用“SELECT”语句从“TTXIT”表中选择与“tdid”和“tdspras”字段相匹配的所有记录,并将结果存储在名为“lt_text_object”的内部表中。
- 使用“GET RUN TIME FIELD”语句获取代码的结束时间,并计算从开始时间到结束时间的运行时间。
- 最后使用“WRITE”语句输出代码的运行时间。
在简单的概括中,这段代码的目的是根据给定的 process_type 和 tdobject,从 SAP CRM 系统的“COMC_TEXT_PD”和“TTXIT”表中检索相关文本,并计算代码的运行时间。