点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我的要求是以MIRO代码附件附加一个图像(.TIF格式)和一个文本文件(.TIF格式)。 在mycode中,它更新到表中,但不在tcode中,任何人都可以在我做错的地方检查我的代码。
我的代码在这里...
_______________________________________________________________________________________________________________________________
功能/wits/apiv_fm_miroattach。
*" ------------------------------------------------- -------------------------
*" *"本地接口:
*"导入
*" REFERENCE(IM_DOCNO)类型/WITS/APIV_QHEAD-QUEID
*" REFERENCE(IM_MIRO)类型RBKP-BELNR
*"表格
*" ET_RETURN TYPE BAPIRETTAB
*" ------------------------------------------------- -------------------------
数据lv_object_id类型/inowits/p_object_id。
数据lo_attach类型参考/inowits/p_cl_dms。
数据ls_bapiret类型TYPE bapiret2。
数据lt_files类型/inowits/p_t_attchments。
数据ls文件类似于lt文件。
数据lv_offset TYPE i。
DATA result_tab类型match_result_tab。
数据ls_result_tab类似于result_tab。
数据lt_return TYPE bapirettab。
数据ls_return TYPE bapiret2。
数据lv_ext TYPE字符串。
数据lv_xstring TYPE xstring。
***数据lo_save类型参考/inowits/cl_fitv_gos。
数据lv_string TYPE字符串。
数据lv_count类型i。
数据lv_file TYPE字符串。
数据iv_file_name TYPE字符串。
数据文件全名TYPE字符串。
DATA mime_type TYPE字符串。
数据大小TYPE i。
数据偏移量类型i。
DATA offset_old TYPE I。
数据temp_len TYPE i。
数据objname TYPE字符串。
数据l_obj_type类型so_obj_tp。
数据hex_null TYPE x长度1值'20'。
数据l_document_title类型so_text255。
solisti1初始大小6的数据lt_objcont类型标准表。
数据objcont之类的lt_objcont行。
sodocchgi1的数据lt_ls_doc_change类型标准表。
数据ls_doc_change之类的lt_ls_doc_change之行。
数据lt_data类型soli_tab。
DATA ls_data TYPE独奏。
数据lt_x数据类型solix_tab。
DATA ls_xdata TYPE独奏。
DATA l_folder_id TYPE sofdk。
数据ls_object_id类型soodk。
数据l_object_id_fol类型so_obj_id。
数据l_object_id类型so_obj_id。
DATA l_doc_info TYPE sofolenti1。
数据l_object_hd_change TYPE sood1。
DATA l_tab_size TYPE int4。
DATA l_retype TYPE breltyp-reltype。
sood-objdes的数据lt_urltab类型标准表。
solisti1的数据lt_obj_header类型标准表。
数据ls_header TYPE solisti1。
数据l_obj_rolea TYPE borident。
数据l_obj_roleb TYPE borident。
数据iv_app_name TYPE字符串。
DATA iv_object_id TYPE字符串。
数据iv_key TYPE字符串。
数据iv_objkey TYPE swo_typeid。
数据iv_objtype类型swo_objtyp。
iv_app_name ='abc'。
iv_objkey =51056015622015。" 5105601541。
iv_object_id = 69。
iv_objtype ='BUS2081'。
数据:queid类型/wits/apiv_qhead-queid。
数据:xblnr类型bkpf-xblnr。
创建对象lo_attach。
********根据对象ID ********获取文件数据
**
将iv_app_name转换为大写字母。
CONCATENATE iv_app_name iv_object_id iv_key INTO lv_object_id用'/'分隔。
数据:ls_qhead类型/wits/apiv_qhead,
lt_qhead/wits/apiv_qhead的类型表。
致电方法/wits/apiv_cl_dms =>阅读
导出
iv_queid = 69
iv_texts ='X'
iv_image ='X'
导入
es_qhead = ls_qhead。
将lt_qhead插入LOS_QHEAD。
********将文件上传到标准*******
通话功能'SO_FOLDER_ROOT_ID_GET'
导出
所有者= sy-uname
region ='B'
导入
folder_id = l_folder_id
。
size = xstrlen(lv_xstring)。
ls_doc_change-obj_name ='123.tif'。 " lv_file。
ls_doc_change-obj_descr ='123.tif'。 " lv_file。
ls_doc_change-obj_langu = sy-langu。
ls_doc_change-sensitiveivty ='F'。
ls_doc_change-doc_size =大小。
l_retype ='ATTA'。
l_obj_type ='RAW'。"'EXT'。
l_object_hd_change-objdes ='miro附件'。" ls_doc_change-obj_descr。
l_object_hd_change-file_ext ='TIF'。" lv_ext。
l_object_hd_change-ownnam ='WITS'。" lv_ext。
lv_file ='123.tif'。
*保存对象
通话功能'SO_OBJECT_INSERT'
导出
folder_id = l_folder_id
* object_fl_change ='object_fl_change'
object_hd_change = l_object_hd_change
object_type = l_obj_type
* originator_id ='owner_id'
所有者= sy-uname
导入
* object_fl_display = object_fl_display
* object_hd_display = object_hd_display
object_id = ls_object_id
表格
objcont = lt_data" lt_data
objhead = lt_obj_header
* objpara = object_para
* objparb = object_parb
例外情况
component_not_available = 01
folder_not_exist = 06
folder_no_authorization = 05
object_type_not_exist = 17
operation_no_authorization = 21
parameter_error = 23
其他= 1000。
IF sy-subrc <> 0。
消息ID sy-msgid类型sy-msgty编号sy-msgno
与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4一起输入ls_return-message。
ls_return-type = sy-msgty。
ls_return-id = sy-msgid。
ls_return-number = sy-msgno。
ls_return-message_v1 = sy-msgv1。
ls_return-message_v2 = sy-msgv2。
ls_return-message_v3 = sy-msgv3。
ls_return-message_v4 = sy-msgv4。
追加ls_return到lt_return。
返回。
ENDIF。
*创建关系
* l_obj_rolea-objkey = QUEID。
l_obj_rolea-objkey = iv_objkey。 "'xblnr'。
l_obj_rolea-objtype = iv_objtype。 "'BUS2081'。
l_object_id_fol = l_folder_id。
l_object_id = ls_object_id。
CONCATENATE l_object_id_fol l_object_id INTO l_obj_roleb-objkey尊重空白。
l_obj_roleb-objtype ='MESSAGE'。
清除l_obj_roleb-logsys。
通话功能'BINARY_RELATION_CREATE'
导出
obj_rolea = l_obj_rolea
obj_roleb = l_obj_roleb
关系类型= l_retype
例外情况
其他= 1。
如果sy-subrc = 0。
通话功能'BAPI_TRANSACTION_COMMIT'
导出
等待='X'
。
***进行工作并等待。
ELSE。
消息ID sy-msgid类型sy-msgty编号sy-msgno
与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4一起输入ls_return-message。
ls_return-type = sy-msgty。
ls_return-id = sy-msgid。
ls_return-number = sy-msgno。
ls_return-message_v1 = sy-msgv1。
ls_return-message_v2 = sy-msgv2。
ls_return-message_v3 = sy-msgv3。
ls_return-message_v4 = sy-msgv4。
追加ls_return到lt_return。
返回。
ENDIF。
如果lt_return不是INITIAL。
将lt_return追加到et_return的行。
ENDIF。
清除:ls_files,ls_result_tab,lv_ext,lv_xstring,lv_file,l_folder_id,
lv_file,lv_ext,lv_xstring,l_obj_rolea,l_obj_roleb,l_retype。
刷新:result_tab,lt_return,lt_data,lt_obj_header,lt_xdata。
ENDLOOP。
如果et_return是INITIAL。
ls_return-type ='S'。
ls_return-message ='文件已成功上传'。
APPEND ls_return TO et_return。
清除ls_return。
ENDIF。
ENDFUNCTION。
通过MIRO进行此附件可能很困难。 因为要执行附件,您将需要发票编号。 而且,在MIRO提交文档之前,您将没有该编号来执行附件。 因此,我认为,首先,请尝试在COMMIT语句之后在MIRO中搜索退出/增强功能。
谢谢
Juwin
您可以共享解决方案吗?
一周热门 更多>