欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何阻止指定类型的SAP CRM附件被上传到服务器 crmerpsapSAP云平台SAP Cloud Platform 

程序员文章站 2022-07-14 08:16:52
...

Requirement: end user could not be allowed to upload attachment whose size is greater than a given limit for example 400KB. Solution: (1) Create a BAdI implementation via SPRO->Customer Relationship Management->Basic Functions->Content Management->Business Add-Ins-> Confirmation of Changed Documents

 

如何阻止指定类型的SAP CRM附件被上传到服务器
            
    
    
        crmerpsapSAP云平台SAP Cloud Platform 

 

(2) copy the following source code to BAdI Implementation. For code detail please refer to comment for each line.

ABAP METHOD if_ex_crm_documents~carry_out_action. CONSTANTS: cv_max_size TYPE int4 VALUE 409600. "400KB DATA: lt_loios TYPE skwf_ios, ls_error TYPE skwf_error, lv_size TYPE sdok_fsize, lt_badios TYPE skwf_ioerrs. READ TABLE changed_documents ASSIGNING FIELD-SYMBOL(<first_line>) INDEX 1. CHECK sy-subrc = 0. " The badi implementation will be called whenever there is change on attachment ( create, update and delete), since it is necessary to filter out the change " mode CHECK <first_line>-action = 'CREATE_DOCUMENT'. DATA(ls_bo) = VALUE sibflporb( instid = <first_line>-instidbor typeid = <first_line>-typeidbor catid = <first_line>-catidbor ). DATA(ls_loios) = VALUE skwf_io( objtype = <first_line>-objtype class = <first_line>-class objid = <first_line>-objid ). APPEND ls_loios TO lt_loios. CALL METHOD cl_crm_documents=>get_file_info EXPORTING loio = ls_loios IMPORTING file_size = lv_size. CHECK lv_size >= cv_max_size. " Since this BAdI implementation could only be called after the attachment is created, so technically speaking we could not prevent the attachment creation indeed, but could only delete the attachment after its creation CALL METHOD cl_crm_documents=>delete EXPORTING business_object = ls_bo ios = lt_loios IMPORTING bad_ios = lt_badios error = ls_error. COMMIT WORK AND WAIT. " raise an error message to prompt user to upload the attachment with smaller size lo_service->add_message( EXPORTING iv_msg_type = 'E' iv_msg_id = 'ZCM_JERRY_TEST' iv_msg_number = '000' ). ENDMETHOD.

Activate the BAdI implementation:

 

如何阻止指定类型的SAP CRM附件被上传到服务器
            
    
    
        crmerpsapSAP云平台SAP Cloud Platform 

 

Now if an attachment is uploaded which exceeds 400KB, the end user will see an error message in UI.

 

如何阻止指定类型的SAP CRM附件被上传到服务器
            
    
    
        crmerpsapSAP云平台SAP Cloud Platform 

 

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

如何阻止指定类型的SAP CRM附件被上传到服务器
            
    
    
        crmerpsapSAP云平台SAP Cloud Platform