2020-08-22 20:37发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我想在RAW类型的字段中上载存储在SAP的ztable中的图像。 我该如何实现?
我浏览了博客,提出了有关在DPC类中修改GET_STREAM以及在MPC中修改DEFINE的建议。
在上传图片期间,我经历的所有相关博客和讨论都使用了mimetype。 但是我使用的RFC和zTable没有mimetype类型的字段。
有没有办法解决这个问题?
先谢谢您
尼米什·凯特
你好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
我可以知道是否需要重新定义MPC类的Define方法吗?
最多设置5个标签!
你好Namish,
我有一个可行的示例,因此我将与大家分享,希望它对您有所帮助。
我的图片存储在名为VALUE的DB表字段中,并用数据元素XSTRINGVAL(基本类型为RAWSTRING)键入。 您需要向表中添加一个附加字段:基本类型STRING的MIME_TYPE。
在SAP Gateway中,我有一个称为附件的实体。 该实体包含描述存储图片的表的键的属性(例如FILENAME),属性VALUE(类型Edm.Binary)和MIME_TYPE。 如果仅使用图片,则MIME_TYPE将始终为" image/jpeg"。
接下来,您必须将实体(在我的情况下为附件)标记为Media,然后重新生成运行时工件,如下所示:
然后在MPC_EXT中重新定义" DEFINE"方法,如下所示:
最后一步:重新定义GET_STREAM方法。 在这种方法中,您可以从数据库表中选择条目(基于IT_KEY_TAB中提供的键)。 创建一个带有要通过服务传递的字段的结构(对我来说,它是MIME_TYPE和VALUE-其中包含图像):
使用从数据库中选择的数据填充此结构。
使用继承的方法copy_data_to_ref将您的数据复制到er_entity:
就是这样。 ????
调用服务时,在指定服务名称,实体名称和图像键之后,您需要添加以下内容:/$ value
希望这会有所帮助,
Szilamér
我可以知道是否需要重新定义MPC类的Define方法吗?
一周热门 更多>