Monday 14 May 2018

Attachment dms file in workitem decision

For few days I searched the better way to solve my problem that was HOW CAN I ATTACHMENT DMS FILE IN WORKITEM DECISION in my reseaches i found a lot of and different ways to do that but neither that solved completely my problem but now I know how to do and I’d like do share with everyone my solution.

First step you need to create a method in Business Object and the parameters do you need for select dms file but you can never forget to create a parameter type SOFM in this method.

SAP ABAP Tutorials and Materials, SAP ABAP Guides, SAP ABAP Development, SAP ABAP Learning

SAP ABAP Tutorials and Materials, SAP ABAP Guides, SAP ABAP Development, SAP ABAP Learning

Now write/copy the code below for convert dms file but before select table DRAW to find the object file and call functions for convert dms file and create a attachment document in workitem decision.

CALL FUNCTION ‘BAPI_DOCUMENT_GETDETAIL2’

EXPORTING

documenttype    = ‘ZCF’

documentnumber  = wl_draw-doknr

documentpart    = wl_draw-doktl

documentversion = wl_draw-dokvr

***    getcomponents        = ‘x’

***    getdocdescriptions   = ‘x’

***    getdocfiles          = ‘x’

***    getclassification    = ‘x’

IMPORTING

documentdata    = documentdata

return          = lv_return

TABLES

***    documentdescriptions = it_documentdescriptions

documentfiles   = it_documentfiles.

***    characteristicvalues = it_characteristicvalues

***    classallocations     = it_classallocations.

LOOP AT it_documentfiles INTO DATA(wa_documentfiles).


documentfile-documenttype = wl_draw-dokar.

documentfile-documentnumber = wl_draw-doknr.

documentfile-documentpart    = wl_draw-doktl.

documentfile-documentversion = wl_draw-dokvr.

documentfile-wsapplication = wa_documentfiles-wsapplication.


CALL FUNCTION ‘BAPI_DOCUMENT_CHECKOUTVIEW2’

EXPORTING

documenttype    = wl_draw-dokar

documentnumber  = wl_draw-doknr

documentpart    = wl_draw-doktl

documentversion = wl_draw-dokvr

documentfile    = documentfile

getstructure    = ‘1’

getheader       = ‘X’

***      pf_ftp_dest     = ‘*SAPFTPA*’

IMPORTING

return          = lv_return

TABLES

documentfiles   = it_co_documentfiles.


IF NOT it_co_documentfiles[] IS INITIAL.

READ TABLE it_co_documentfiles INTO DATA(wa_co_documentfiles) INDEX 1.

DATA(v_doc_id) = wa_co_documentfiles-file_id.

v_storage = wa_co_documentfiles-storagecategory.

ELSE.

v_doc_id  = wa_documentfiles-file_id.

v_storage = wa_documentfiles-storagecategory.

ENDIF.


Convert File to Binary mode using ID reference

CALL FUNCTION ‘SCMS_DOC_READ’

EXPORTING

mandt       = sy-mandt

stor_cat    = v_storage

doc_id      = v_doc_id

TABLES

access_info = lt_access

content_bin = lt_sdokcntbin.


READ TABLE lt_access INTO DATA(wl_access) INDEX 1.

Convert binary table to xtring and after that attachment xstring in workitem decision

CALL FUNCTION ‘SCMS_BINARY_TO_XSTRING’

EXPORTING

input_length = wl_access-comp_size

IMPORTING

buffer       = v_xstring

TABLES

binary_tab   = lt_sdokcntbin

EXCEPTIONS

failed       = 1

OTHERS       = 2.


wl_atthead-file_type = ‘B’.

wl_atthead-file_name = ‘Nota Fiscal/Miro’ && ‘:’ &&  space && object-key-documentno.

wl_atthead-file_extension = ‘PDF’.

wl_atthead-language       = ‘EN’.


CALL FUNCTION ‘SAP_WAPI_ATTACHMENT_ADD’

EXPORTING

workitem_id = v_father_wiid

att_header  = wl_atthead

att_bin     = v_xstring

IMPORTING

att_id      = v_attpdf


ENDLOOP.

IF NOT v_attpdf-doc_id IS INITIAL.

pdf = v_attpdf-doc_id.

swc_set_element container ‘PDF’ pdf.

ENDIF.

But the solution not end here…now there is one more step for conclusion and solve the problem. Now open PFTC transaction and create a standard task as follow.

SAP ABAP Tutorials and Materials, SAP ABAP Guides, SAP ABAP Development, SAP ABAP Learning

After that create a activite in business workflow and add the new standard task created in last step before a task decision with you want to attach the file. 

SAP ABAP Tutorials and Materials, SAP ABAP Guides, SAP ABAP Development, SAP ABAP Learning

Don’t forget binding the objects

SAP ABAP Tutorials and Materials, SAP ABAP Guides, SAP ABAP Development, SAP ABAP Learning

The object below is my task decision

SAP ABAP Tutorials and Materials, SAP ABAP Guides, SAP ABAP Development, SAP ABAP Learning

SAP ABAP Tutorials and Materials, SAP ABAP Guides, SAP ABAP Development, SAP ABAP Learning

Finish the document were attached in workitem decision

SAP ABAP Tutorials and Materials, SAP ABAP Guides, SAP ABAP Development, SAP ABAP Learning

1 comment: