温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么阻止指定类型的SAP CRM附件被上传到服务器

发布时间:2021-12-29 18:17:27 来源:亿速云 阅读:173 作者:柒染 栏目:互联网科技

怎么阻止指定类型的SAP CRM附件被上传到服务器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

要求:不允许最终用户上载大小大于给定限制(例如400KB)的附件。

解决方案:

(1) 通过SPRO->客户关系管理->基本功能->内容管理->业务加载项->

更改文件的确认

怎么阻止指定类型的SAP CRM附件被上传到服务器

(2) 将以下源代码复制到BAdI实现。有关代码详细信息,请参阅每行的注释。

  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.

激活BAdI实现:

怎么阻止指定类型的SAP CRM附件被上传到服务器

现在,如果上传的附件超过400KB,最终用户将在UI中看到错误消息。

怎么阻止指定类型的SAP CRM附件被上传到服务器

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI