Linked From Document: https://scn.sap.com/docs/DOC-41921

This last example demonstrates how to use the GOS class from within ITS applications.

Basic Setup

Create a program with one screen and a transaction.

Insert this code into the top include:

include avwrtcxm.

data: objtype type swo_objtyp.
data: objkey type swo_typeid.
data: g_dwnl_objtp like sood-objtp.
data: g_dwnl_objyr like sood-objyr.
data: g_dwnl_objno like sood-objno.
data: okcode like sy-ucomm.
data: save_ok_code like sy-ucomm.
data: dec_kb type p.
data: g_counter like sy-index.
data: g_lines like sy-tabix.
data: filelength type i.
data: it_content like standard table of soli.
data: mime_info like savwmpmime occurs 0 with header line.
data: lta_sood type standard table of sood.
data: lwa_sood type sood.
data: ls_lporb type sibflporb.
data: lt_bapirettab type bapirettab.
data: lv_objtyp type so_obj_tp.
data: l_file_name_with_path type avwctxcont.
data: mimetype type w3conttype.
data: g_filename type string.
data: g_download_content type soli_tab.
data: size type i.
data: t_receivers type somlreci1 occurs 0 with header line.

Screen 0100 Attributes:

Listing Attachments

module status_0100 output.

objtype = ‘BUS1065’.
objkey = ‘00000111’.

ls_lporb-typeid = objtype.
ls_lporb-instid = objkey.

call method zcl_oh_my_gos_new=>gos_get_file_list
exporting
is_lporb      = ls_lporb
importing
t_attachments = lta_sood
rt_messages   = lt_bapirettab.

if lt_bapirettab[] is initial.
g_counter = 1.
describe table lta_sood lines g_lines.
field-set ‘TOTAL_ATTACHMENTS’ g_counter g_lines.
field-transport.

g_counter = 1.
loop at lta_sood into lwa_sood.
dec_kb = lwa_sood-objlen / 1024.
if dec_kb < 1.
dec_kb = 1.
endif.

field-set ‘ATTACHMENTS_COL1’ g_counter lwa_sood-objdes.
field-set ‘ATTACHMENTS_COL2’ g_counter dec_kb.
if lwa_sood-acnam <> ”.
field-set ‘ATTACHMENTS_COL3’ g_counter lwa_sood-acnam.
else.
field-set ‘ATTACHMENTS_COL3’ g_counter lwa_sood-file_ext.
endif.
field-set ‘ATTACHMENTS_objtp’ g_counter lwa_sood-objtp.
field-set ‘ATTACHMENTS_objyr’ g_counter lwa_sood-objyr.
field-set ‘ATTACHMENTS_objno’ g_counter lwa_sood-objno.
g_counter = g_counter + 1.
endloop.
field-transport.
endif.

endmodule.                 ” STATUS_0100  OUTPUT

Uploading Attachments, Downloading Attachments, Emailing Attachments

module user_command_0100 input.

save_ok_code = sy-ucomm.

lv_objtyp = ‘EXT’.
ls_lporb-typeid = objtype.
ls_lporb-instid = objkey.

case save_ok_code.
when ‘FIUP’.
clear mime_info.

mime-info mime_info.
loop at mime_info.
mime-upload sy-tabix it_content filelength.
endloop.

move mime_info-contfname to l_file_name_with_path.
move mime_info-contfname to g_filename.

call method zcl_oh_my_gos_new=>gos_attach_file_solitab
exporting
iv_name            = g_filename
iv_content_solitab = it_content
is_lporb           = ls_lporb
iv_objtp           = lv_objtyp
iv_filelength      = filelength
receiving
rt_messages        = lt_bapirettab.

if lt_bapirettab[] is initial.
leave to transaction ‘ZGOS_NEW’.
endif.
when ‘DOWN’.
“note: This code should really be put in the PBO of a new screen since the mime-download
“is the only processing completed.
if not ( g_dwnl_objtp is initial ) and
not ( g_dwnl_objyr is initial ) and
not ( g_dwnl_objno is initial ).
call method zcl_oh_my_gos_new=>gos_get_file_solitab
exporting
folder_region     = ‘B’
doctp             = g_dwnl_objtp
docyr             = g_dwnl_objyr
docno             = g_dwnl_objno
importing
o_content_solitab = g_download_content
o_mimetype        = mimetype
o_filelength      = size
rt_messages       = lt_bapirettab.

if lt_bapirettab[] is initial.
mime-download g_download_content size mimetype.
endif.
endif.
when ‘EMAIL’.
if not ( g_dwnl_objtp is initial ) and
not ( g_dwnl_objyr is initial ) and
not ( g_dwnl_objno is initial ).
clear t_receivers.
t_receivers-receiver = [email protected].
t_receivers-rec_type = ‘U’.
append t_receivers.

call method zcl_oh_my_gos_new=>gos_email_attached_file
exporting
folder_region = ‘B’
doctp         = g_dwnl_objtp
docyr         = g_dwnl_objyr
docno         = g_dwnl_objno
t_receivers   = t_receivers[]          importing
rt_messages   = lt_bapirettab.
endif.
endcase.

endmodule.                 ” USER_COMMAND_0100  INPUT

ITS HTML

`~messageline`

<!–BEGIN UPLOAD FILE PROCESSING–>

 

 

 

<!–END UPLOAD FILE PROCESSING–>

<!–BEGIN DOWNLOAD FILE PROCESSING–>
`if (TOTAL_ATTACHMENTS > 0)`



Attached Documents

`end`
`repeat with j from 1 to TOTAL_ATTACHMENTS`
ACTION = “`wgateURL(~OKCode=”DOWN”)`&g_dwnl_objtp=`ATTACHMENTS_objtp[j]`&g_dwnl_objyr=`ATTACHMENTS_objyr[j]`&g_dwnl_objno=`ATTACHMENTS_objno[j]`”
METHOD=”post”>

 

`end`
`if (TOTAL_ATTACHMENTS > 0)`




`ATTACHMENTS_COL1[j]` (`ATTACHMENTS_COL2[j]`KB )

&nbsp&nbsp`ATTACHMENTS_COL3[j]`&nbsp&nbsp

`end`
<!–END DOWNLOAD FILE PROCESSING–>

<!–BEGIN EMAIL FILE PROCESSING–>
`if (TOTAL_ATTACHMENTS > 0)`



Attached Documents
 

`end`
`repeat with j from 1 to TOTAL_ATTACHMENTS`

       ACTION = “`wgateURL(~OKCode=”EMAIL”)`&g_dwnl_objtp=`ATTACHMENTS_objtp[j]`&g_dwnl_objyr=`ATTACHMENTS_objyr[j]`&g_dwnl_objno=`ATTACHMENTS_objno[j]`”
METHOD=”post”>



 


`ATTACHMENTS_COL1[j]` (`ATTACHMENTS_COL2[j]`KB )

 


&nbsp&nbsp`ATTACHMENTS_COL3[j]`&nbsp&nbsp

 

 

`end`
`if (TOTAL_ATTACHMENTS > 0)`

`end`
<!–END EMAIL FILE PROCESSING–>

 

RESULT

New NetWeaver Information at SAP.com

Very Helpfull

 

 

User Rating: Be the first one !