查找包含指定关键字的BDOC
Created by Jerry Wang, last modified on Apr 27, 2015假设需要查找指定时间段内,包含指定关键字的BDOC列表。 report下方显示进度条: report source code: 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(<header>).PERFORM display_progress USING sy-tabix.PERFORM get_bdoc_ext_via_id USING <header>-bdoc_id CHANGING lv_xml.CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'EXPORTINGim_xstring = lv_xmlIMPORTINGex_string = lv_string.FIND keyword IN lv_string.IF sy-subrc = 0.WRITE: / 'found search keyword in BDOC: ' , <header>-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: <b_ext> TYPE any.CALL METHOD cl_smw_bdocstore=>get_bdocEXPORTINGbdoc_id = iv_idget_bdoc_header = 'X'IMPORTINGbdoc_header = wa_smw3_bdocEXCEPTIONSOTHERS = 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 refsl_dtyp = wa_smw3_bdoc-ddic2 .CREATE DATA bdoc_ext TYPE (l_dtyp).ASSIGN: bdoc_ext->* TO <b_ext>.CLEAR: <b_ext>.CALL METHOD cl_smw_bdocstore=>get_bdocEXPORTINGbdoc_id = iv_idget_bdoc_header = ' 'get_body_ext = 'X'IMPORTINGbdoc_body_ext = <b_ext>EXCEPTIONSinvalid_bdoc_id = 1inconsistent_body = 2failed = 3OTHERS = 4.CHECK sy-subrc = 0.PERFORM get_xml_source USING <b_ext> CHANGING cv_xml.CLEAR: <b_ext>, 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'EXPORTINGPERCENTAGE = lv_percenttext = 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 structureCALL FUNCTION 'SDIXML_DATA_TO_DOM'EXPORTINGname = 'MESSAGE'dataobject = is_ext* CONTROL =IMPORTINGdata_as_dom = lref_data_as_domCHANGINGdocument = lref_document* TYPE_HANDLE =EXCEPTIONSillegal_name = 1OTHERS = 2.ASSERT sy-subrc = 0.CALL METHOD lref_document->append_childEXPORTINGnew_child = lref_data_as_domRECEIVINGrval = lv_rc.ASSERT sy-subrc = 0.* SDIXML_DOM_TO_XMLCALL FUNCTION 'SDIXML_DOM_TO_XML'EXPORTINGdocument = lref_documentIMPORTINGxml_as_string = cv_xmlEXCEPTIONSOTHERS = 1.ASSERT sy-subrc = 0.ENDFORM.
|
查找包含指定关键字的BDOC相关推荐
- linux查找包含指定关键字的文件
命令形式: grep -R --include="*.cpp" key dir命令含义: 在dir目录下递归查找所有.cpp文件中的关键字key举例: grep -r --incl ...
- 在整个数据库中查找包含某关键字的所有存储过程
当我们对数据表进行修改时,比如删除某个字段.我们必须保证所有用到该字段的存储过程都必须做相应的修改.因此我们如果能用一条SQL语句来查找出所有包含该字段名称的存储过程,那将是非常方便的: --查找包含 ...
- Python查找包含指定字符串的所有文件
代码功能: 查找包含指定字符串的所有文件. 技术要点: 1)广度优先遍历目录树: 2)检查文件中是否包含特定的字符串. 运行效果: 温馨提示 进入公众号,通过菜单"最新资源"==& ...
- [linux命令]查找包含指定内容的文件
内容查找.查找内容.查找包含指定内容的文件 文章目录 格式1:grep -r "指定内容" 目录 格式2:grep -r -l "指定内容" 目录 格式3:fi ...
- python批量处理excel提取包含指定关键字的行
python批量处理excel提取包含指定关键字的行 当我们有大量excel表格需要批处理,目标为提取包含指定关键字的行,可用本文代码,环境为windows python依赖安装 安装好python后 ...
- linux模糊查询特定后缀名文件,linux中查找包含指定内容的文件
查找包含指定内容的文件就是用grep这个命令 grep 'name' -r / grep '指定内容' -r 目录 上述命令就是在根目录下递归查找包含name内容的文件 -r 递归查找文件 -e 从文 ...
- linux命令 查找包含指定字符串的文件
1.非递归搜索包含指定字符串的文件 grep 查找在当前目录下,包含mirrors.aliyuncs.com字符串的文件 grep mirrors.aliyuncs.com ./* 查找结果: 2.递 ...
- ES分组聚合:计算每个tag下的商品数量且某个filed包含指定关键字,分组,平均,每个tags下的平均价格,排序,指定范围区间
1.第一个分析需求:计算每个tag下的商品数量 GET /ecommerce/product/_search {"aggs": {"group_by_tags" ...
- Python查找包含指定字符串的所有Office文档
需要安装扩展库python-docx.openpyxl和python-pptx,代码不适用于Office2003和更早的版本. 参考代码: 测试xlsx文件内容: 测试docx文件内容: 测试pptx ...
最新文章
- linux无法设置日期 不允许的操作,如何解决系统时间无法修改的问题
- 原生安全二倍速:探秘基础设施的内生“免疫系统“
- 实验九 根据材料编程
- mongoose 验证
- python右键没有idle编辑了_python右键Edit with IDLE
- IntelliJ中的键盘快捷键
- MaxCompute SQL原理解析及性能调优
- 深入解析final关键字的用法
- centos7 安装sql_在Linux Distribution CentOS 7上安装SQL Server vNext CTP
- OCR文字识别技术总结(三)
- 《前端JavaScript面试技巧》
- 关于模板类中,子类无法访问父类成员问题的解决方法
- 开心豆少儿英语好吗,收费怎么样,一年多少钱的学费
- 案例分享:Qt+Arm+Fpga医疗肾镜(又名内窥镜)(实时影像、冻结、拍照、白平衡、九宫格、录像、背光调整、硬件光源调整、光源手动自动调整、物理按键)
- 《2018中国区块链行业发展白皮书》发布
- java案例-实现斗地主游戏案例
- FC下常用软件的安装配置
- 世界各国产品认证标致详解CCC/CCEE/CCIB/CE/CQC/CSA/ETL/FCC/GS/UL/PCT/TUV/EMC/MPR/TCO/
- 系统架构与5G异构云无线入网关键技术(物联网电子类外文翻译)
- [unity] 音频的二进制流转化为audioclip的两种方式