METHOD
if_swf_ifs_workitem_exit~event_raised.
DATA
: lv_container
TYPE
REF
TO
if_swf_ifs_parameter_container,
lv_attach
TYPE
TABLE
OF
obj_record,
lv_folder_id
TYPE
soodk,
wa_document_info
TYPE
sofolenti1,
lv_data
TYPE
sodocchgi1,
lv_objtype
TYPE
swo_objtyp,
lv_objkey
TYPE
swo_typeid,
lv_return
TYPE
swotreturn,
lv_sofm
TYPE
swo_objhnd,
lv_objject
TYPE
obj_record,
tb_obj
TYPE
TABLE
OF
obj_record,
it_solix_tab1
TYPE
solix_tab,
req_id
TYPE
tim_req_id,
lv_doc_type
TYPE
so_obj_tp.
CHECK
im_event_name =
'CREATED'
.
lv_container = im_workitem_context->get_wi_container( ).
TRY
.
lv_container->
get
(
EXPORTING
name =
'_ATTACH_OBJECTS'
IMPORTING
value
= lv_attach ).
CATCH
: cx_swf_cnt_elem_not_found,
cx_swf_cnt_elem_type_conflict,
cx_swf_cnt_unit_type_conflict,
cx_swf_cnt_container.
ENDTRY
.
CHECK
lv_attach
IS
INITIAL
.
CALL
FUNCTION
'SO_FOLDER_ROOT_ID_GET'
EXPORTING
owner =
sy-uname
region =
'B'
IMPORTING
folder_id = lv_folder_id.
lv_container->
get
(
EXPORTING
name =
'RequestId'
IMPORTING
value
= req_id ).
zcl_xxx=>get_req_attachment(
EXPORTING
iv_req_id = req_id
IMPORTING
ev_xstring =
DATA
(xstring)
es_attachment =
DATA
(ls_attachment) ).
CHECK
xstring
IS
NOT
INITIAL
.
SELECT
SINGLE
doc_type
FROM
toadd
INTO
@lv_doc_type
WHERE
mimetype EQ @ls_attachment-file_type.
IF
sy-subrc
NE
0.
lv_doc_type =
'PDF'
.
ENDIF
.
it_solix_tab1 = cl_document_bcs=>xstring_to_solix( xstring ).
lv_data-obj_name = ls_attachment-file_name.
lv_data-obj_descr = ls_attachment-file_name.
lv_data-obj_langu =
sy-langu
.
lv_data-sensitivty =
'P'
.
CALL
FUNCTION
'SO_DOCUMENT_INSERT_API1'
EXPORTING
folder_id = lv_folder_id
document_data = lv_data
document_type = lv_doc_type
IMPORTING
document_info = wa_document_info
TABLES
contents_hex = it_solix_tab1
EXCEPTIONS
folder_not_exist = 1
document_type_not_exist = 2
operation_no_authorization = 3
parameter_error = 4
x_error = 5
enqueue_error = 6
OTHERS
= 7.
lv_objtype =
'SOFM'
.
lv_objkey = wa_document_info-doc_id.
CALL
FUNCTION
'SWO_CREATE'
EXPORTING
objtype = lv_objtype
objkey = lv_objkey
IMPORTING
object
= lv_sofm
return
= lv_return
EXCEPTIONS
no_remote_objects = 1
OTHERS
= 2.
lv_objject-
header
=
'OBJH'
.
lv_objject-
type
=
'SWO'
.
lv_objject-
handle
= lv_sofm.
APPEND
lv_objject
TO
tb_obj.
lv_container->
set
(
EXPORTING
name =
'_ATTACH_OBJECTS'
value
= tb_obj[] ).
lv_container->
set
(
EXPORTING
name =
'ATTACHMENTS'
value
= tb_obj[] ).
im_workitem_context->do_commit_work( ).
ENDMETHOD
.