on 03-31-2014 8:59 AM
Hi,
We have one requirement to Reject & Approve the invoice using the POWL report. I have completed all the approval process, but while in rejection we have done one enhancement in invoice that invoice can't be rejected without entering the value in the Reason for rejection. I have called the method in this following sequence. There is no exception but Reason for rejection doesn't updated.
/SAPSRM/IF_PDO_DO_LONGTEXT~ADD_LONGTEXT
/SAPSRM/IF_PDO_DO_LONGTEXT~UPDATE_LONGTEXT_BUFFER
/SAPSRM/IF_PDO_BASE~SUBMIT_UPDATE
Give me some suggestion how i can achieve this.
Regards,
Nishant
Hi Nishant,
have you checked the note 1791491?
In case Text Schemas are OK, please provide you complete code.
Regards
Konstantin
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I want to update the Rejection Note from Program in APPROVAL mode.
Below is the i wrote for update the REJECTION NOTE .
data lV_USER_TYPE TYPE BBP_IV_USER_TYPE VALUE 'PROFI' .
lv_mode = 'APPROVAL'.
lv_decision = 'REJECTED'.
lv_objecttype = /sapsrm/if_pdo_obj_types_c=>gc_pdo_invoice.
TRY.
CALL METHOD /sapsrm/cl_pdo_bo_inv_adv=>get_inv_adv_instance
EXPORTING
iv_header_guid = I_GUID
iv_wiid = I_IV_WIID
iv_mode = lv_mode
iv_subtype = IV_SUBTYPE"ls_header_INV-subtype'
iv_user_ID = I_APPROVER
iv_user_type = lV_USER_TYPE
RECEIVING
ro_instance = lr_inv_adv.
CATCH /sapsrm/cx_pdo_no_authorizatio .
CATCH /sapsrm/cx_pdo_parameter_error .
CATCH /sapsrm/cx_pdo_status_error .
CATCH /sapsrm/cx_pdo_incons_user .
CATCH /sapsrm/cx_pdo_abort .
CATCH /sapsrm/cx_pdo_lock_failed .
CATCH /sapsrm/cx_pdo_error .
CATCH /sapsrm/cx_pdo_be_comm_error .
ENDTRY.
data lr_message TYPE REF TO /SAPSRM/IF_PDO_MSG_CONSUMER.
data lo_pdo_notes TYPE REF TO /sapsrm/if_pdo_do_longtext.
data lr_message_update TYPE REF TO /SAPSRM/CL_PDO_MSG.
DATA: lx_abort TYPE REF TO /sapsrm/cx_pdo_abort.
CREATE OBJECT lr_message_update.
lr_message ?= lr_message_update.
lo_pdo_notes ?= LR_INV_ADV.
IF lr_inv_adv IS BOUND.
TRY.
* TRY.
CALL METHOD lo_pdo_notes->add_longtext
EXPORTING
iv_p_guid = I_GUID
iv_tdid = 'NOTE'
iv_tdspras = SY-LANGU
iv_tdformat = 'X'
iv_text_preview = 'Reason For Reject'.
* CHANGING
* co_message_handler =
* .
CATCH /sapsrm/cx_pdo_abort .
ENDTRY.
TRY.
CALL METHOD lo_pdo_notes->update_longtext
EXPORTING
iv_p_guid = I_GUID
iv_tdid = 'NOTE'
iv_tdspras = SY-LANGU
iv_tdformat = 'X'
iv_text_preview = 'Reason For Reject'
* CHANGING
* co_message_handler = lr_message
.
CATCH /sapsrm/cx_pdo_abort INTO lx_abort .
* mo_cll_message_handler->set_abort( io_pdo_abort_exception = lx_abort ).
ENDTRY.
TRY.
DATA TEXT_ID TYPE TDID VALUE 'RREJ'.
CALL METHOD lo_pdo_notes->update_longtext
EXPORTING
iv_p_guid = I_GUID
iv_tdid = TEXT_ID
iv_tdspras = SY-LANGU
iv_tdformat = 'X'
iv_text_preview = 'Price Difference'
* CHANGING
* co_message_handler = lr_message
.
CATCH /sapsrm/cx_pdo_abort INTO lx_abort .
* mo_cll_message_handler->set_a1bort( io_pdo_abort_exception = lx_abort ).
ENDTRY.
CALL METHOD lr_inv_adv->/SAPSRM/IF_PDO_BASE~submit_update( ).
* CHANGING
* co_message_handler = lr_message
.
CATCH /sapsrm/cx_pdo_wrong_mode .
CATCH /sapsrm/cx_pdo_abort .
ENDTRY.
CALL FUNCTION '/SAPSRM/FU_WF_RFC_DECISION'
EXPORTING
iv_header_guid = I_GUID
iv_mode = lv_MODE
iv_botype = lv_OBJECTTYPE
iv_wiid = I_IV_WIID
iv_decision = lv_DECISION
iv_approver = I_APPROVER
IMPORTING
return_code = return_code
TABLES
message_lines = lt_message
EXCEPTIONS
error_in_pdo = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
After execute this function module i got message REJECTION NOTE IS MANDATORY.
Regards,
Nishant
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.