`

cl_abap_zip & cl_bcs example

 
阅读更多
REPORT  ztest.

TYPE-POOLS: sscr.
TABLES: adr6.

*--------------------------------------------------------------------*
*SELECTION SCREEN
*--------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text-001.
PARAMETERS p_indi(1) NO-DISPLAY.
SELECT-OPTIONS s_addr FOR adr6-smtp_addr NO INTERVALS.
SELECTION-SCREEN END OF BLOCK blk.

*--------------------------------------------------------------------*
*INTERNAL TABLE
*--------------------------------------------------------------------*
DATA: itab_list TYPE STANDARD TABLE OF abaplist,
      itab_html TYPE STANDARD TABLE OF w3html.

*--------------------------------------------------------------------*
*AT SELECTION SCREEN OUTPUT
*--------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
  DATA: l_restrict TYPE sscr_restrict,
        l_option   TYPE sscr_opt_list,
        l_ass      TYPE sscr_ass.
  l_option-name = 'KEY1'.
  l_option-options-eq = 'X'.
  APPEND l_option TO l_restrict-opt_list_tab.

  l_ass-kind = 'S'.
  l_ass-name = 'S_ADDR'.
  l_ass-sg_main = 'I'.
  l_ass-sg_addy = space.
  l_ass-op_main = 'KEY1'.
  APPEND l_ass TO l_restrict-ass_tab.

  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
    EXPORTING
      restriction            = l_restrict
    EXCEPTIONS
      too_late               = 1
      repeated               = 2
      selopt_without_options = 3
      selopt_without_signs   = 4
      invalid_sign           = 5
      empty_option_list      = 6
      invalid_kind           = 7
      repeated_kind_a        = 8
      OTHERS                 = 9.

*--------------------------------------------------------------------*
*START-OF-SELECTION
*--------------------------------------------------------------------*
START-OF-SELECTION.
  PERFORM write_report.
  PERFORM convert_2_html.
  PERFORM send_email.

*&---------------------------------------------------------------------*
*&      Form  WRITE_REPORT
*&---------------------------------------------------------------------*
FORM write_report.
  WRITE: / 'Hello World!' COLOR 1 INTENSIFIED ON.
ENDFORM.                    "WRITE_REPORT

*&---------------------------------------------------------------------*
*&      Form  convert_2_html
*&---------------------------------------------------------------------*
FORM convert_2_html.
  CHECK p_indi IS INITIAL.
  SUBMIT zncsi528 WITH p_indi = 'X'
                  EXPORTING LIST TO MEMORY
                  AND RETURN.
  CALL FUNCTION 'LIST_FROM_MEMORY'
    TABLES
      listobject = itab_list
    EXCEPTIONS
      not_found  = 1
      OTHERS     = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ELSE.
    CALL FUNCTION 'WWW_HTML_FROM_LISTOBJECT'
      EXPORTING
        report_name = 'ZTEST'
      TABLES
        html        = itab_html
        listobject  = itab_list.
  ENDIF.
ENDFORM.                    "convert_2_html

*&---------------------------------------------------------------------*
*&      Form  send_email
*&---------------------------------------------------------------------*
FORM send_email.
  DATA: l_send_request  TYPE REF TO cl_bcs,
        l_zip           TYPE REF TO cl_abap_zip,
        l_sender        TYPE REF TO cl_sapuser_bcs,
        l_recipient     TYPE REF TO cl_cam_address_bcs,
        l_body_text     TYPE bcsy_text,
        l_obj_len       TYPE so_obj_len,
        l_subject       TYPE so_obj_des,
        l_exception     TYPE REF TO cx_bcs,
        l_message       TYPE string,
        l_content       TYPE solix_tab,
        l_html_xstr     TYPE xstring,
        l_zip_xstr      TYPE xstring,
        l_len           TYPE i,
        l_document      TYPE REF TO cl_document_bcs.
  CHECK p_indi IS INITIAL AND itab_html[] IS NOT INITIAL.
  CHECK itab_html[] IS NOT INITIAL AND s_addr[] IS NOT INITIAL.
  TRY.
      l_send_request = cl_bcs=>create_persistent( ).
      l_subject = 'cl_abap_zip & cl_bcs example'.
      APPEND:  '<HTML><BODY>'                                              TO l_body_text,
                 'Hi,'                                                     TO l_body_text,
                 '<p>Pls refer to the attached. Thanks.'                   TO l_body_text,
               '</BODY><HTML>'                                             TO l_body_text.
      l_document = cl_document_bcs=>create_document(
                            i_type        = 'HTM'
                            i_text        = l_body_text
                            i_subject     = l_subject
                    ).
      CALL METHOD cl_bcs_convert=>txt_to_xstring
        EXPORTING
          it_soli    = itab_html[]
        RECEIVING
          ev_xstring = l_html_xstr.
      CREATE OBJECT l_zip.
      CALL METHOD l_zip->add
        EXPORTING
          name    = 'cl_abap_zip & cl_bcs example.html'
          content = l_html_xstr.
      CALL METHOD l_zip->save
        RECEIVING
          zip = l_zip_xstr.
      CALL METHOD cl_bcs_convert=>xstring_to_solix
        EXPORTING
          iv_xstring = l_zip_xstr
        RECEIVING
          et_solix   = l_content.
      l_obj_len = XSTRLEN( l_zip_xstr ).
      CALL METHOD l_document->add_attachment
        EXPORTING
          i_attachment_size    = l_obj_len
          i_attachment_type    = 'ZIP'
          i_attachment_subject = l_subject
          i_att_content_hex    = l_content.
      l_send_request->set_document( l_document ).
      l_sender = cl_sapuser_bcs=>create( sy-uname ).
      LOOP AT s_addr.
        l_recipient = cl_cam_address_bcs=>create_internet_address( s_addr-low ).
        CALL METHOD l_send_request->add_recipient
          EXPORTING
            i_recipient = l_recipient.
      ENDLOOP.
      CALL METHOD l_send_request->set_send_immediately( 'X' ).
      CALL METHOD l_send_request->send(
      EXPORTING
        i_with_error_screen  = 'X'
        ).
      COMMIT WORK.
    CATCH cx_bcs INTO l_exception.
      l_message = l_exception->get_text( ).
      MESSAGE l_message TYPE 'E'.
  ENDTRY.
ENDFORM.                    "send_email
分享到:
评论

相关推荐

    ZUI2_JSON2_/UI2/CL_JSON_ui2/cl_json_abap_Ui2_cl_json_zui2_json_源

    标题中的"ZUI2_JSON2_/UI2/CL_JSON_ui2/cl_json_abap_Ui2_cl_json_zui2_json_源"可能指的是一个与ZUI2相关的项目,它利用了ABAP类/UI2/CL_JSON来解析和生成JSON数据。描述中提到,我们需要用到这个类来将JSON格式的...

    ABAP动态内表的收集

    - 使用`cl_abap_tabledescr`类创建动态内表的描述符,并通过`cl_abap_table_descr=&gt;create`方法生成内表。 在进行动态更新时,需要注意以下要点: - 当使用`MODIFY`语句时,确保更新的字段不是系统表的关键字段。...

    abap-ALV.rar_ABAP系统ALV_abap_abap开发alv

    标题“abap-ALV.rar_ABAP系统ALV_abap_abap开发alv”暗示我们将深入探讨ABAP ALV的使用,特别是在ABAP系统中的应用以及如何进行开发。 描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    《SAP ABAP 4.7开发指南》 在企业级信息技术领域,SAP系统扮演着至关重要的角色,尤其在企业资源规划(ERP)方面。SAP ABAP(Advanced Business Application Programming)是SAP系统中的一种编程语言,用于开发、...

    ZDE_HTML.rar_abap_abap html_abap html

    标题中的"ZDE_HTML.rar_abap_abap html_abap html"表明这是一个关于ABAP(一种用于SAP系统的编程语言)与HTML交互的资源压缩包。这个压缩包可能包含了将ABAP程序产生的数据转换为HTML格式的相关教程或代码示例。 ...

    SAP-ABAP-OO-实现-CL-SALV-TABLE

    ### SAP-ABAP-OO 实现 CL-SALV-TABLE 的关键知识点 #### 1. ABAP 面向对象的 ALV 显示方法 在 SAP 的 ABAP 环境中,ALV (Application List Viewer) 是一种非常常用的技术,用于在屏幕上以表格的形式展示数据。传统...

    ABAP 基本数据类型及计算

    ABAP(Allgemeiner Berichtsaufbereitungsprozessor)是一种专为SAP系统设计的编程语言,起源于20世纪80年代,起初作为报表语言用于SAP R/2系统,后来成为SAP R/3平台的核心开发语言。它引入了逻辑数据库的概念,...

    ALV.rar_SAP_abaP ALV_abap_alv_sap alv

    同时,调用系统方法是ABAP编程中常见操作,例如`cl_salv_table`类提供的方法,可以用于调整列的顺序、隐藏列、排序数据等。例如,隐藏某一列: ```abap lo_salv_table-&gt;get_column( 'MATNR' )-&gt;hide( ). ``` 或者,...

    实战SAP程序开发_从实例学SAP_ABAP编程_清晰版5

    这是实战SAP程序开发_从实例学SAP_ABAP编程的清晰版本

    ALV EDIT_MASK字段的使用.rar_ABAP EDIT_MASK_ALV EDIT_MASK字段的使用_ALVEDIT

    在ABAP编程中,ALV (ABAP List Viewer) 是一个强大的工具,用于展示和编辑数据表。在处理用户输入时,我们有时需要对特定字段应用格式化或限制,这时`EDIT_MASK`就派上用场了。`EDIT_MASK`是ABAP中的一种功能,允许...

    sap_abap_ole文档

    ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。...

    Schedule-of-the-contract.rar_The Contract_abap_abap hr

    标题中的"Schedule-of-the-contract.rar_The Contract_abap_abap hr"暗示了这是一个与SAP HR模块相关的项目,特别是涉及到合同的详细信息管理和报告。在这个项目中,开发者使用ABAP(Advanced Business Application ...

    SAP_ABAP.rar_ERP_SAP_abap_erp sap_sap bw

    标题中的"SAP_ABAP.rar"表明这是一个与SAP ABAP相关的压缩文件,可能包含了关于SAP ABAP开发的文档或代码示例。ERP SAP ABAP指的是SAP企业资源规划系统中的ABAP编程语言,它是SAP系统核心开发的重要工具。"ERP_SAP...

    ABAP_DOCU_HTML. 学习大全,以网页的形式文档

    这个文档集包含了ABAP的所有核心概念、语法、函数模块、类库、表单以及报告编写等多方面的内容,旨在帮助用户理解和掌握ABAP编程。 在ABAP DOCU HTML中,你可以找到以下几个重要的知识领域: 1. **ABAP基本语法**...

    ABAP.rar_SAP_abap s

    SAP ABAP 开发PPT l&nbsp 了解ABAP l&nbsp &nbsp &nbsp &nbsp ABAP语法概述 l&nbsp &nbsp &nbsp &nbsp ABAP语言的数据类型 l&nbsp &nbsp &nbsp &nbsp ABAP的语法格式 l&nbsp &nbsp &nbsp &nbsp 结构类型和结构体 l&...

    ABAP 常用功能eg emai send & post & 钉钉&微信发送&长文本读取&大数据导出

    5. **大数据导出**:在处理大数据时,ABAP提供多种工具,如`CL_BCS`(Business Communication Services)用于生成Excel文件,或者`CL_GUI_FRONTEND_SERVICES`类的`DOWNLOAD_FILE`方法进行文件下载。对于大规模数据,...

    SAP_ABAP_BADI

    SAP_ABAP_BADI SAP_ABAP_BADI 是 SAP 系统中的一种业务增强工具,BADi 全称为 Business Add-In,意为业务增强接口。它允许开发者对 SAP 系统进行业务增强和定制,使得系统更加灵活和实用。 从标题"SAP_ABAP_BADI...

    ABAP.rar_ABAP.rar_BCAB4.H_abap_abap .doc_bcab4.hlp

    abap编程手册.doc ABAP开发规范及命名规则V20.doc

    ABAP从FTP下载文件并解析到内表移动文件位置.zip

    在ABAP中,我们需要先读取下载的ZIP文件到内存,然后用`CL_ZIP`类来解压。下面是一个基本的流程: ```abap DATA: lv_zip_content TYPE xstring, lo_zip TYPE REF TO cl_zip. READ FILE lv_file_name INTO lv_zip_...

    SAPTABLE.zip_ABAP pp模块表_abap mm_saptable

    abap包括各个业务模块,其中包括PP、SD、MM、QM等常用表

Global site tag (gtag.js) - Google Analytics