在SAP Gateway中处理RAW数据

2020-08-22 20:37发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我想在RAW类型的...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我想在RAW类型的字段中上载存储在SAP的ztable中的图像。 我该如何实现?

我浏览了博客,提出了有关在DPC类中修改GET_STREAM以及在MPC中修改DEFINE的建议。

在上传图片期间,我经历的所有相关博客和讨论都使用了mimetype。 但是我使用的RFC和zTable没有mimetype类型的字段。

有没有办法解决这个问题?

先谢谢您

尼米什·凯特

2条回答
梦想连接
2020-08-22 20:40 .采纳回答

你好Namish,

我有一个可行的示例,因此我将与大家分享,希望它对您有所帮助。

我的图片存储在名为VALUE的DB表字段中,并用数据元素XSTRINGVAL(基本类型为RAWSTRING)键入。 您需要向表中添加一个附加字段:基本类型STRING的MIME_TYPE。

在SAP Gateway中,我有一个称为附件的实体。 该实体包含描述存储图片的表的键的属性(例如FILENAME),属性VALUE(类型Edm.Binary)和MIME_TYPE。 如果仅使用图片,则MIME_TYPE将始终为" image/jpeg"。

接下来,您必须将实体(在我的情况下为附件)标记为Media,然后重新生成运行时工件,如下所示:

然后在MPC_EXT中重新定义" DEFINE"方法,如下所示:

 数据:
        lo_entity类型参考/iwbep/if_mgw_odata_entity_typ,
        lo_property类型参考/iwbep/if_mgw_odata_property。

      super-> define()。

      lo_entity =模型-> get_entity_type(iv_entity_name ='附件')。

      如果lo_entity被绑定。
        lo_property = lo_entity-> get_property(iv_property_name ='MIME_TYPE')。
        lo_property-> set_as_content_type()。
      万一。



 

最后一步:重新定义GET_STREAM方法。 在这种方法中,您可以从数据库表中选择条目(基于IT_KEY_TAB中提供的键)。 创建一个带有要通过服务传递的字段的结构(对我来说,它是MIME_TYPE和VALUE-其中包含图像):

 类型:开始于ty_stream,
               mime_type TYPE字符串,
               值TYPE xstringval,
             ty_stream的结尾。
 
数据:ls_stream TYPE ty_stream。

使用从数据库中选择的数据填充此结构。

使用继承的方法copy_data_to_ref将您的数据复制到er_entity:

 copy_data_to_ref(导出is_data = ls_stream
                      更改cr_data = er_stream)。



 

就是这样。 ????

调用服务时,在指定服务名称,实体名称和图像键之后,您需要添加以下内容:/$ value

:<端口>/sap/opu/odata/<服务名称>/AttachmentSet%28FILENAME ='Image1'%29/$ value"> https://<服务器>:< port>/sap/opu/odata//AttachmentSet(FILENAME ='Image1')/$ value

希望这会有所帮助,

Szilamér

一周热门 更多>