Skip to Content
Sep 07, 2017 at 08:15 AM

Download mail attachments in a zip file

190 Views Last edit Sep 11, 2017 at 06:28 AM 2 rev

My task is to create a button for the e-mail attachments view in the CRM WebUI and as soon as user click on that button all the attachments should be downloaded in zip format.

I am new in this area and it is really complicated for me to figure out how to do this.
I am finding some variants to do that, but for them, first of all I have to get the GUID, object type, or at least the id.

How can I do that?
I've created an enhancement for CRMCMP_CCS_EML component and after that an event handler for a button within the MailAttachments view.
In that event handler I am trying to get the GUID using this code:

INCLUDE crm_object_names_con.DATA : lr_entity TYPE REF TO cl_crm_bol_entity,

lv_collection TYPE REF TO if_bol_bo_col,
lv_guid TYPE crmt_object_guid,
lr_comp TYPE REF TO zl_crmcmp_c_bspwdcompone1_impl,
lt_request_objs TYPE crmt_object_name_tab,
lt_header_guids TYPE crmt_object_guid_tab,
lt_orderadm_h TYPE crmt_orderadm_h_wrkt,
ls_orderadm_h LIKE LINE OF lt_orderadm_h,
lv_obj_type TYPE crmt_swo_objtyp_process_itm_db.

lr_comp ?= me->comp_controller.CHECK lr_comp IS BOUND.

*obtaining email guid
lr_entity ?= lr_comp->typed_context->btadminh->collection_wrapper->get_current( ).
lr_entity->get_property_as_value( EXPORTING iv_attr_name = 'GUID'IMPORTING ev_result = lv_guid ).
INSERT gc_object_name-orderadm_h INTO TABLE lt_request_objs.APPEND lv_guid TO lt_header_guids.
it_header_guid = lt_header_guids
it_requested_objects = lt_request_objs
iv_no_auth_check = 'X'IMPORTING
et_orderadm_i = lt_orderadm_hEXCEPTIONS
document_not_found = 1
error_occurred = 2
document_locked = 3
no_change_authority = 4
no_display_authority = 5
no_change_allowed = 6.
READ TABLE lt_orderadm_h INTO ls_orderadm_h INDEX 1 TRANSPORTING object_type.
lv_obj_type = ls_orderadm_h-object_type.

But without any success. If e-mail is an workitem and it doesn't have GUID, I am trying to obtain at least it's id using:

DATA tmp_object TYPE swotobjid.
CALL METHOD cl_swf_evt_requester=>get_workitem
ex_workitem = tmp_object.


DATA: ld_requester_workitem TYPE swotobjid,
ld_requester_workitemid TYPE swotobjid-objkey.
requester_workitem = ld_requester_workitem
requester_workitemid = ld_requester_workitemid.

But it's also not working. Any suggestion?