点击(此处)折叠或打开*&---------------------------------------------------------------------**& Report  ZGOS_ATTACHMENT*&*&---------------------------------------------------------------------**&this program will attach documents to SAP documents.*&*&---------------------------------------------------------------------*report  zgos_attachment.*Macros.include .swc_container lt_message_container.*top dec.type-pools: slis, abap, truxs.data: g_objid     type borident,      gt_filename type standard table of dxfilep with header line,      wa_filename type dxfilep,      gt_bin      type solix occurs 0,      wa_bin      type solix,      g_filename  type string,      l_obj       type swc_object,      gs_obja     type borident,      gs_objb     type borident,      gs_binrel   type gbinrel,      gt_binatt   type standard table of brelattr,      g_attsize   type int4."wsrm_error-wsrm_direction.selection-screen begin of block b0 with frame title text-001.parameters: p_file  type rlgrap-filename,            p_vbeln type vbak-vbeln.selection-screen end of block b0.*----------------------------------------------------------------------** AT SELECTION-SCREEN  on                                  **----------------------------------------------------------------------*at selection-screen on p_file.  if p_file is initial.  endif.*----------------------------------------------------------------------** AT SELECTION-SCREEN  on HELP-REQUEST|VALUE-REQUEST                   **----------------------------------------------------------------------*at selection-screen  on value-request for p_file.  call function 'F4_FILENAME'    exporting      program_name  = syst-cprog      dynpro_number = syst-dynnr      field_name    = 'P_FILE'    importing      file_name     = p_file.start-of-selection.* this step can be replace to get file from app server as well.*uploading [file: EXT is TXT].  move  p_file to g_filename.  call function 'GUI_UPLOAD'    exporting      filename                = g_filename      filetype                = 'BIN'    importing      filelength              = g_attsize    tables      data_tab                = gt_bin    exceptions      file_open_error         = 1      file_read_error         = 2      no_batch                = 3      gui_refuse_filetransfer = 4      invalid_type            = 5      no_authority            = 6      unknown_error           = 7      bad_data_format         = 8      header_not_allowed      = 9      separator_not_allowed   = 10      header_too_long         = 11      unknown_dp_error        = 12      access_denied           = 13      dp_out_of_memory        = 14      disk_full               = 15      dp_timeout              = 16      others                  = 17.  if sy-subrc  0.  else.*file Uploaded successfully.*convert uploaded file contents into BIN format.    data: l_seq type i.    swc_container      l_cont.    swc_create_object  l_obj  'MESSAGE'       ''.    swc_set_element    l_cont 'NO_DIALOG'     'X'.    swc_set_element    l_cont 'DOCUMENTTITLE' g_filename.    swc_set_table      l_cont 'Content_Hex'   gt_bin.    swc_set_element    l_cont 'DOCUMENTTYPE'  'TXT'.    swc_set_element    l_cont 'DOCUMENTSIZE'  g_attsize.    swc_refresh_object l_obj.    swc_call_method    l_obj  'CREATE'        l_cont.    swc_get_object_key l_obj  gs_objb-objkey.    gs_objb-objtype = 'MESSAGE'.   "type of attach document    gs_obja-objtype = 'BUS2032'.      "BO of SAP Document.    gs_obja-objkey = p_vbeln.    call function 'BINARY_RELATION_CREATE_COMMIT'      exporting        obj_rolea      = gs_obja        obj_roleb      = gs_objb        relationtype   = 'ATTA'      importing        binrel         = gs_binrel      tables        binrel_attrib  = gt_binatt      exceptions        no_model       = 1        internal_error = 2        unknown        = 3        others         = 4.    if sy-subrc eq 0.      message s043(sgos_msg).    endif.  endif.
10-01 17:48
查看更多