SAP UI5 Upload/Download file through NetWeaver Gateway
创始人
2024-05-29 13:08:41
0

1、创建 SEGW对象

2、创建Entity Type

要把Media 标识打上

 

3、 激活对象然后到DPC Class的扩展对象里面重定义

/IWBEP/IF_MGW_APPL_SRV_RUNTIME~GET_STREAM

/IWBEP/IF_MGW_APPL_SRV_RUNTIME~CREATE_STREAM

/IWBEP/IF_MGW_APPL_SRV_RUNTIME~UPDATE_STREAM

  METHOD /iwbep/if_mgw_appl_srv_runtime~get_stream.TRY.DATA: ls_stream TYPE ty_s_media_resource,ls_file   TYPE  zmmp_matl_file,lv_matnr  TYPE matnr.READ TABLE it_key_tab ASSIGNING FIELD-SYMBOL() INDEX 1.DATA: lv_filename TYPE char30.lv_matnr = -value.SELECT SINGLE * FROM zmmp_matl_file INTO  ls_file WHERE matnr = lv_matnr .IF ls_file IS NOT INITIAL.ls_stream-value = ls_file-value.ls_stream-mime_type = ls_file-mimetype.copy_data_to_ref( EXPORTING is_data = ls_streamCHANGING  cr_data = er_stream ).ENDIF.CATCH /iwbep/cx_mgw_busi_exception.CATCH /iwbep/cx_mgw_tech_exception.ENDTRY.ENDMETHOD.

  METHOD /iwbep/if_mgw_appl_srv_runtime~create_stream.TRY.DATA: ls_file TYPE zmmp_matl_file.DATA: lt_hdr_params TYPE tihttpnvp,ls_hdr_params TYPE ihttpnvp.DATA: lo_facade TYPE REF TO /iwbep/if_mgw_dp_int_facade.REFRESH: lt_hdr_params.lo_facade ?= /iwbep/if_mgw_conv_srv_runtime~get_dp_facade( ).lt_hdr_params = lo_facade->get_request_header( ).READ TABLE lt_hdr_params INTO ls_hdr_params WITH KEY name = 'material'. "header messageIF sy-subrc = 0.ls_file-matnr = ls_hdr_params-value.ENDIF.READ TABLE lt_hdr_params INTO ls_hdr_params WITH KEY name = 'zmatserial'. "header messageIF sy-subrc = 0.ls_file-zmat_serial = ls_hdr_params-value.ENDIF.IF ls_file-matnr IS INITIAL OR ls_file-zmat_serial IS INITIAL.ls_file-value    = is_media_resource-value.ls_file-mimetype = is_media_resource-mime_type.ls_file-crt_dat  = sy-datum.ls_file-crt_tim  = sy-uzeit.MODIFY zmmp_matl_file FROM ls_file.copy_data_to_ref(EXPORTINGis_data =  ls_fileCHANGINGcr_data = er_entity ).ELSE.DATA ls_msg TYPE scx_t100key.ls_msg-attr1 =  '上传失败'.RAISE EXCEPTION TYPE /iwbep/cx_mgw_tech_exceptionEXPORTINGtextid = ls_msg.ENDIF.CATCH /iwbep/cx_mgw_busi_exception.CATCH /iwbep/cx_mgw_tech_exception.ENDTRY.ENDMETHOD.
  METHOD /iwbep/if_mgw_appl_srv_runtime~update_stream.TRY.DATA: ls_file TYPE zmmp_matl_file.DATA: lt_hdr_params TYPE tihttpnvp,ls_hdr_params TYPE ihttpnvp.DATA: lo_facade TYPE REF TO /iwbep/if_mgw_dp_int_facade.REFRESH: lt_hdr_params.lo_facade ?= /iwbep/if_mgw_conv_srv_runtime~get_dp_facade( ).lt_hdr_params = lo_facade->get_request_header( ).READ TABLE it_key_tab ASSIGNING FIELD-SYMBOL() WITH KEY name = 'Matnr'.IF sy-subrc = 0.ls_file-matnr = -value.ENDIF.READ TABLE it_key_tab ASSIGNING  WITH KEY name = 'ZmatSerial'.IF sy-subrc = 0.ls_file-zmat_serial = -value.ENDIF.ls_file-value    = is_media_resource-value.ls_file-mimetype = is_media_resource-mime_type.ls_file-crt_dat  = sy-datum.ls_file-crt_tim  = sy-uzeit.MODIFY zmmp_matl_file FROM ls_file.CATCH /iwbep/cx_mgw_busi_exception.CATCH /iwbep/cx_mgw_tech_exception.ENDTRY.ENDMETHOD.

4、部署ODATA服务

5、测试服务

使用POST则会调用Create_Stream,而使用Update则会使用Update_Stream

 注意再使用Create_Stream的时候,可能会报错,

Invalid or no mapping to system data types found

这个需要定义一下MPC_EXT中的DEFINE

  METHOD define.super->define( ).DATA: lo_entity   TYPE REF TO /iwbep/if_mgw_odata_entity_typ,lo_property TYPE REF TO /iwbep/if_mgw_odata_property.lo_entity = model->get_entity_type( iv_entity_name = 'MaterialFileStru' ).IF lo_entity IS BOUND.lo_property = lo_entity->get_property( iv_property_name = 'Mimetype').lo_property->set_as_content_type( ).ENDIF.ENDMETHOD.

还可以使用Update_Stream

 

相关内容

热门资讯

高考在校表现怎么写范文【推荐... 高考在校表现怎么写范文 篇一高考是每个学生所面临的一次重要考试,它不仅仅考察学生的知识水平,更重要的...
浙江高考作文题点评【优选3篇... 浙江高考作文题点评 篇一在浙江高考作文题中,常常会出现一些与时代潮流和社会热点相关的话题。这些题目旨...
高考优秀范文详解语文32篇(... 高考优秀范文详解语文32篇 篇一:文学与人生的关系文学作为一门艺术,与人生有着密切的联系。在高考优秀...
江苏省高考作文(实用3篇) 江苏省高考作文 篇一:探索创新教育的价值与挑战创新教育是当今社会教育改革的热点议题之一。它以培养创新...
高考作文议论文时事素材(实用... 高考作文议论文时事素材 篇一标题:网络教育的优势与挑战随着互联网的迅猛发展,网络教育正逐渐成为教育领...
语文高考作文必备范文(推荐6... 语文高考作文必备范文 篇一关于传统文化的重要性传统文化是一个国家和民族的精神财富,它承载着历史的记忆...
2022高考作文规范范文【优... 2022高考作文规范范文 篇一高考作文规范范文随着2022年高考的临近,作为考生的我们需要了解并掌握...
新高考语文题目格式范文(优选... 新高考语文题目格式范文 篇一题目:《生活中的美好瞬间》导语:生活中,我们时常会遇到一些让人感到温暖和...
高考英语满分作文【通用6篇】 高考英语满分作文 篇一:如何提高英语口语能力英语口语能力在高考英语考试中占据重要的比重,但很多学生在...
关于让高考成绩再提高的方法(... 关于让高考成绩再提高的方法 篇一如何提高高考成绩?这是每位学生都关心的问题。高考成绩对于学生的未来发...
议论文人物故事写作素材15例... 议论文人物故事写作素材15例 篇一1. 父母的无私奉献 故事背景:主人公的父母为了供他上大学,...
教育部考试中心称不会取消全国... 教育部考试中心称不会取消全国统一高考 篇一近日,教育部考试中心发表声明称,不会取消全国统一高考。这一...
高考报考志愿个人陈述范文【最... 高考报考志愿个人陈述范文 篇一我的高中三年时光即将结束,我心中充满了对未来的期待和憧憬。回顾过去的学...
手握一滴水高考满分作文【精简... 手握一滴水高考满分作文 篇一探寻水的力量水,是生命之源,也是大自然最神奇的力量之一。曾经,我手握着一...
语文高考全国一卷优秀作文【精... 语文高考全国一卷优秀作文 篇一题目:诗意的人生人生如诗,每个人都是一首独特的诗篇。我们的人生是由一段...
高考作文经典素材:正能量【实... 高考作文经典素材:正能量 篇一正能量:改变人生的力量正能量是指积极向上的思想、激励人心的言行,具有积...
庚子年高考作文范文【精简6篇... 庚子年高考作文范文 篇一我的成长历程人生就像一场马拉松,每个人都要经历各种各样的挑战与困难。而我,也...
高考作文语文范文欣赏(优选6... 高考作文语文范文欣赏 篇一《人生的价值》人生自古以来就是一个永恒的话题,而关于人生的探讨与思考也从未...
北京高考作文题目(优选5篇) 北京高考作文题目 篇一新时代下的北京高考近年来,随着社会的进步和发展,新时代给北京高考带来了新的挑战...
历年经典高考满分作文【实用6... 历年经典高考满分作文 篇一:成长的意义成长是每个人都要经历的过程,它伴随着我们从孩提时代向成年人迈进...