If a workflow task get’s approved or rejected in the MyInbox it’s sometimes necessary to maintain an justification. This justification aka decision note can be stored as a variable in the general workflow container and can be passed to different workflow steps/workitems. Through that it is possible to read the decision note at a later point at time. For example, for sending an mail to the user with the outcome of his request including the justification from the approver.
Store the decision note as an element in the workflow container
Create an element in the workflow container to be able to store the decision note. As data type use the BOR object type SOFM.

Bind your workflow container element against the user decision step. Binding from user decision step to workflow container. This way you store the decision note, which was created by the step, in the general workflow container.

If you want to access the decision note in a specific step just bind it. Binding from workflow container to step. Therefore create an element in the task container of the step. This way the decision note can be accessed.


Read the decision note from the workflow container through abap code
To read out the note you just need to pass the workitem id to the following method read_decision_note. That’s it.
Definition
class-methods READ_DECISION_NOTE
importing
!IV_WIID type SWW_WIID
exporting
!EV_DECISION_NOTE type STRING .
Implementaiton
METHOD read_decision_note.
DATA: lt_container TYPE swrtcont,
lv_container_value TYPE swc_value,
lv_return_code TYPE sysubrc,
lv_document_id TYPE so_entryid,
lt_attachment_txt_content TYPE TABLE OF solisti1.
*--- read the workitem container to access the decision note
CALL FUNCTION 'SAP_WAPI_READ_CONTAINER'
EXPORTING
workitem_id = iv_wiid
IMPORTING
return_code = lv_return_code
TABLES
simple_container = lt_container.
lv_container_value = VALUE #( lt_container[ element = 'DECISION_NOTE' ]-value OPTIONAL ).
CHECK lv_container_value IS NOT INITIAL.
CONDENSE lv_container_value.
lv_document_id = lv_container_value+5(34). "is there a better way? we couldnt find one...
*--- read the sofm document and export the plain text
CALL FUNCTION 'SO_DOCUMENT_READ_API1'
EXPORTING
document_id = lv_document_id
TABLES
object_content = lt_attachment_txt_content.
CONCATENATE LINES OF lt_attachment_txt_content INTO ev_decision_note SEPARATED BY cl_abap_char_utilities=>cr_lf.
ENDMETHOD.
