GOS会计凭证上传附件

1、GOS介绍

GOS是一个连接文档和SAP内各种对象的工具,在SAP的一些凭证中,可以通过GOS进行附件的上传、查看和删除等功能,例如采购订单、会计凭证等。

如果没有这个按钮,可以将当前登录用户的类型设置为对话即可。

 2、前台附件上传

点击创建附件,选择需要上传的附件即可

 点击附件清单,即可查看上传的附件

 并且可以对当前上传的附件进行删除操作

 3、代码实现

 源代码

"--------------------@斌将军--------------------
REPORT zgos.TYPE-POOLS: slis,abap,truxs.
INCLUDE .*----------------------------------------------------------------------*
*   屏幕定义
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-002.PARAMETERS:p_file  TYPE rlgrap-filename MEMORY ID p, "上载模版路径p_belnr TYPE bkpf-belnr OBLIGATORY,p_gjahr TYPE bkpf-gjahr OBLIGATORY,p_bukrs TYPE bkpf-bukrs OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.*----------------------------------------------------------------------*
* AT SELECTION-SCREEN  on HELP-REQUEST|VALUE-REQUEST                   *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file."选择路径PERFORM frm_choose_file.*----------------------------------------------------------------------*
* START-OF-SELECTION                                                   *
*----------------------------------------------------------------------*
START-OF-SELECTION."上传附件PERFORM frm_upload_file.*&---------------------------------------------------------------------*
*&      Form  FRM_CHOOSE_FILE
*&---------------------------------------------------------------------*
*       选择文件
*----------------------------------------------------------------------*
FORM frm_choose_file."F4 选择文件CALL FUNCTION 'F4_FILENAME'IMPORTINGfile_name = p_file.IF sy-subrc <> 0.ENDIF.
ENDFORM. "FRM_CHOOSE_FILE*&---------------------------------------------------------------------*
*&      Form  FRM_UPLOAD_FILE
*&---------------------------------------------------------------------*
*       上传附件
*----------------------------------------------------------------------*
FORM frm_upload_file.DATA:lt_swcont        TYPE TABLE OF swcont WITH HEADER LINE,lt_binrel_attrib TYPE TABLE OF brelattr,lt_bin           TYPE TABLE OF solix.DATA:lv_filename       TYPE string,lv_long_filename  TYPE dbmsgora-filename,lv_pure_filename  TYPE sdbah-actid,lv_pure_extension TYPE sdbad-funct,ls_obja           TYPE borident,ls_roleb          TYPE borident,ls_binrel         TYPE gbinrel,ls_attsize        TYPE int4,lo_swc_obj        TYPE swc_object."上传文件CLEAR:lv_filename.lv_filename = p_file.CALL FUNCTION 'GUI_UPLOAD'EXPORTINGfilename                = lv_filenamefiletype                = 'BIN'IMPORTINGfilelength              = ls_attsizeTABLESdata_tab                = lt_binEXCEPTIONSfile_open_error         = 1file_read_error         = 2no_batch                = 3gui_refuse_filetransfer = 4invalid_type            = 5no_authority            = 6unknown_error           = 7bad_data_format         = 8header_not_allowed      = 9separator_not_allowed   = 10header_too_long         = 11unknown_dp_error        = 12access_denied           = 13dp_out_of_memory        = 14disk_full               = 15dp_timeout              = 16OTHERS                  = 17.IF sy-subrc <> 0.MESSAGE '文件上传失败' TYPE 'S' DISPLAY LIKE 'E'.STOP.ELSE.CLEAR:lv_long_filename.lv_long_filename = lv_filename."截取文件名称和后缀CALL FUNCTION 'SPLIT_FILENAME'EXPORTINGlong_filename  = lv_long_filenameIMPORTINGpure_filename  = lv_pure_filenamepure_extension = lv_pure_extension."转换文件swc_create_object  lo_swc_obj 'MESSAGE' ''.swc_set_element    lt_swcont 'NO_DIALOG' 'X'.swc_set_element    lt_swcont 'DOCUMENTTITLE' lv_pure_filename."文件名swc_set_table      lt_swcont 'Content_Hex'   lt_bin."文件内容swc_set_element    lt_swcont 'DOCUMENTTYPE'  lv_pure_extension."文件格式swc_set_element    lt_swcont 'DOCUMENTSIZE'  ls_attsize."文件大小swc_refresh_object lo_swc_obj.swc_call_method    lo_swc_obj  'CREATE' lt_swcont.swc_get_object_key lo_swc_obj  ls_roleb-objkey.ls_roleb-objtype = 'MESSAGE'.   "ls_obja-objtype = 'BKPF'.      "ls_obja-objkey = p_bukrs && p_belnr && p_gjahr."拼接会计公司、会计凭证、会计年度"上传附件CALL FUNCTION 'BINARY_RELATION_CREATE_COMMIT'EXPORTINGobj_rolea      = ls_objaobj_roleb      = ls_rolebrelationtype   = 'ATTA'IMPORTINGbinrel         = ls_binrelTABLESbinrel_attrib  = lt_binrel_attribEXCEPTIONSno_model       = 1internal_error = 2unknown        = 3OTHERS         = 4.IF sy-subrc EQ 0.MESSAGE s043(sgos_msg)."已成功创建附件ENDIF.ENDIF.ENDFORM.
"--------------------@斌将军--------------------


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部