Monday, 18 January 2016

Gos_Attachment_upload Through program

*&---------------------------------------------------------------------*
*& Report  ZGOS_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zgos_test.


PARAMETERS: p_key TYPE swo_typeid OBLIGATORY,
*p_type TYPE swo_objtyp OBLIGATORY,
p_file TYPE string,"c LENGTH 100 OBLIGATORY,
p_desc TYPE so_obj_des OBLIGATORY.

DATA: ls_fol_id   TYPE soodk,
      ls_obj_id   TYPE soodk,
      ls_obj_data TYPE sood1,
      ls_folmem_k TYPE sofmk,
      ls_note     TYPE borident,
      ls_object   TYPE borident,
      lv_ep_note  TYPE borident-objkey,
      lv_offset   TYPE i,
      lv_length   LIKE sy-tabix.


DATA: it_objhead TYPE STANDARD TABLE OF soli,
      it_content LIKE STANDARD TABLE OF soli,
      wa_content LIKE soli.

ls_object-objkey = p_key.
ls_object-objtype = 'BUS1006'."p_type.

***TRY.
***    OPEN DATASET p_file FOR INPUT IN BINARY MODE.
***    WHILE sy-subrc = 0.
***      READ DATASET p_file INTO wa_content.
***      APPEND wa_content TO it_content.
***    ENDWHILE.
***    CLOSE DATASET p_file.
***  CATCH cx_sy_file_access_error.
***    MESSAGE 'Error reading file' TYPE 'E'.
***ENDTRY.




CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
    filename   = p_file
    filetype   = 'BIN'
  IMPORTING
    filelength = lv_length
*   HEADER     =
  TABLES
    data_tab   = it_content.





CALL FUNCTION 'SO_CONVERT_CONTENTS_BIN'
  EXPORTING
    it_contents_bin = it_content[]
  IMPORTING
    et_contents_bin = it_content[].

CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
  EXPORTING
    region    = 'B'
  IMPORTING
    folder_id = ls_fol_id
  EXCEPTIONS
    OTHERS    = 1.

ls_obj_data-objsns = 'O'.
ls_obj_data-objla = sy-langu.
ls_obj_data-objdes = p_desc.
lv_offset = strlen( p_file ) - 3.
ls_obj_data-file_ext = p_file+lv_offset(3).
ls_obj_data-objlen = lines( it_content ) * 255.

CALL FUNCTION 'SO_OBJECT_INSERT'
  EXPORTING
    folder_id             = ls_fol_id
    object_type           = 'EXT'
    object_hd_change      = ls_obj_data
  IMPORTING
    object_id             = ls_obj_id
  TABLES
    objhead               = it_objhead
    objcont               = it_content
  EXCEPTIONS
    active_user_not_exist = 35
    folder_not_exist      = 6
    object_type_not_exist = 17
    owner_not_exist       = 22
    parameter_error       = 23
    OTHERS                = 1000.

IF sy-subrc = 0 AND ls_object-objkey IS NOT INITIAL.
  ls_folmem_k-foltp = ls_fol_id-objtp.
  ls_folmem_k-folyr = ls_fol_id-objyr.
  ls_folmem_k-folno = ls_fol_id-objno.
  ls_folmem_k-doctp = ls_obj_id-objtp.
  ls_folmem_k-docyr = ls_obj_id-objyr.
  ls_folmem_k-docno = ls_obj_id-objno.
  lv_ep_note = ls_folmem_k.
  ls_note-objtype = 'MESSAGE'.
  ls_note-objkey = lv_ep_note.
  CALL FUNCTION 'BINARY_RELATION_CREATE_COMMIT'
    EXPORTING
      obj_rolea    = ls_object
      obj_roleb    = ls_note
      relationtype = 'ATTA'
    EXCEPTIONS
      OTHERS       = 1.
ELSE.
  MESSAGE 'Not OK' TYPE 'I'.
  RETURN.
ENDIF.

IF sy-subrc = 0.
  MESSAGE 'OK' TYPE 'I'.
ELSE.
  MESSAGE 'Not OK' TYPE 'I'.
ENDIF.

No comments:

Post a Comment