根据关键字搜索指定的SAP CRM中间件BDOC

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 根据关键字搜索指定的SAP CRM中间件BDOC

REPORT zscan_bdoc_via_keyword.

PARAMETERS: start TYPE smw3_bdoc-snd_date OBLIGATORY DEFAULT sy-datlo,

           end   TYPE smw3_bdoc-snd_date OBLIGATORY DEFAULT sy-datlo,

           keyword TYPE string LOWER CASE OBLIGATORY DEFAULT 'CRMA'.

DATA: lv_bdoc_id TYPE smw3_bdoc1-bdoc_id VALUE 'FA163E8EAB031EE496D7B1616132B3D2',

     lt_header  TYPE STANDARD TABLE OF smw3_bdoc,

     lv_xml     TYPE xstring,

     lv_count   TYPE i,

     lv_string  TYPE string.

START-OF-SELECTION.

 PERFORM main.

FORM main.

 SELECT * INTO TABLE lt_header FROM smw3_bdoc WHERE snd_date >= start AND snd_date <= end.

 IF sy-subrc <> 0.

   WRITE: / 'No BDOC exists for given time period.'.

   RETURN.

 ENDIF.

 lv_count = lines( lt_header ).

 LOOP AT lt_header ASSIGNING FIELD-SYMBOL().

   PERFORM display_progress USING sy-tabix.

   PERFORM get_bdoc_ext_via_id USING -bdoc_id CHANGING lv_xml.

   CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'

     EXPORTING

       im_xstring = lv_xml

     IMPORTING

       ex_string  = lv_string.

   FIND keyword IN lv_string.

   IF sy-subrc = 0.

      WRITE: / 'found search keyword in BDOC: ' , -bdoc_id.

   ENDIF.

   CLEAR: lv_xml, lv_string.

 ENDLOOP.

ENDFORM.

FORM get_bdoc_ext_via_id USING iv_id TYPE smw3_bdoc1-bdoc_id CHANGING cv_xml TYPE any.

 DATA: wa_smw3_bdoc TYPE smw3_fhd,

       l_dtyp       TYPE smw3_ddic1,

       bdoc_ext     TYPE REF TO data.

 FIELD-SYMBOLS:  TYPE any.

 CALL METHOD cl_smw_bdocstore=>get_bdoc

   EXPORTING

     bdoc_id         = iv_id

     get_bdoc_header = 'X'

   IMPORTING

     bdoc_header     = wa_smw3_bdoc

   EXCEPTIONS

     OTHERS          = 4.

 ASSERT sy-subrc = 0.

 IF wa_smw3_bdoc-ddic2 IS INITIAL.

   "MESSAGE s006(smw3).

   " No BDoc extension available (no messaging BDoc).

   WRITE: / 'Not BDOC extension avaible for BDOC id: ' , lv_bdoc_id.

   EXIT.

 ENDIF.

* create data refs

 l_dtyp = wa_smw3_bdoc-ddic2 .

 CREATE DATA bdoc_ext TYPE (l_dtyp).

 ASSIGN: bdoc_ext->*        TO .

 CLEAR: .

 CALL METHOD cl_smw_bdocstore=>get_bdoc

   EXPORTING

     bdoc_id           = iv_id

     get_bdoc_header   = ' '

     get_body_ext      = 'X'

   IMPORTING

     bdoc_body_ext     =

   EXCEPTIONS

     invalid_bdoc_id   = 1

     inconsistent_body = 2

     failed            = 3

     OTHERS            = 4.

 CHECK sy-subrc = 0.

 PERFORM get_xml_source USING  CHANGING cv_xml.

 CLEAR: , bdoc_ext.

ENDFORM.

FORM display_progress USING iv_percent.

 DATA: lv_percent type i,

       lv_text TYPE string.

 lv_percent = iv_percent * 100 / lv_count.

 lv_text = 'In process... ' && lv_percent && '%'.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

    EXPORTING

       PERCENTAGE = lv_percent

       text = lv_text.

eNDFORM.

FORM get_xml_source USING is_ext TYPE any CHANGING cv_xml TYPE xstring.

 DATA:

*    x_xml_tab        TYPE swr_t_html,

   lv_rc            TYPE sy-subrc,

   lref_document    TYPE REF TO if_ixml_document,

   lref_data_as_dom TYPE REF TO if_ixml_element.

*  Maps a ABAP variable into a DOM structure

 CALL FUNCTION 'SDIXML_DATA_TO_DOM'

   EXPORTING

     name         = 'MESSAGE'

     dataobject   = is_ext

*     CONTROL      =

   IMPORTING

     data_as_dom  = lref_data_as_dom

   CHANGING

     document     = lref_document

*     TYPE_HANDLE  =

   EXCEPTIONS

     illegal_name = 1

     OTHERS       = 2.

 ASSERT sy-subrc = 0.

 CALL METHOD lref_document->append_child

   EXPORTING

     new_child = lref_data_as_dom

   RECEIVING

     rval      = lv_rc.

 ASSERT sy-subrc = 0.

* SDIXML_DOM_TO_XML

 CALL FUNCTION 'SDIXML_DOM_TO_XML'

   EXPORTING

     document      = lref_document

   IMPORTING

     xml_as_string = cv_xml

   EXCEPTIONS

     OTHERS        = 1.

 ASSERT sy-subrc = 0.

ENDFORM.

目录
相关文章
|
1月前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
89 7
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
2月前
|
中间件
什么是 SAP CRM 系统里的 Initial Download
什么是 SAP CRM 系统里的 Initial Download
26 0
|
2月前
|
中间件
什么是 SAP CRM Initial Download
什么是 SAP CRM Initial Download
20 0
|
2月前
|
存储 数据管理 数据处理
SAP CRM 里 Attachment 搜索的实现逻辑介绍
SAP CRM 里 Attachment 搜索的实现逻辑介绍
23 0
|
1月前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
21 0
|
1月前
|
数据库
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
SAP CRM产品主数据无法根据产品描述字段进行搜索的原因
17 5
|
1月前
|
Web App开发 开发者 存储
介绍一个 webp 格式转 png 格式的软件:XNConvert
介绍一个 webp 格式转 png 格式的软件:XNConvert
30 6
介绍一个 webp 格式转 png 格式的软件:XNConvert
|
1月前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
16 1
什么是 SAP ABAP 里的 Subscreen
|
2月前
|
中间件
如何在 SAP CRM 系统调试 Product Initial Download
如何在 SAP CRM 系统调试 Product Initial Download
16 0
|
3月前
|
存储 数据库 容器
深入介绍 SAP CRM 附件存储的底层实现机制
深入介绍 SAP CRM 附件存储的底层实现机制
32 0