Problem: you want to change a status of a subsequent document in CRM. But system does not allow to do that because of a check on preceding document’s status.
Solution: you can avoid status being check by setting user parameter.
You can do this manually in SU3 TCODE by setting parameter CRM_LRP_DEBUG with value ’ F’ or programmatically with below code.
TYPE-POOLS: abap. FORM toggle_status_check USING iv_switch_on TYPE flag. DATA: lv_param_value TYPE xuvalue, ls_user_parameter TYPE usparam, lt_user_parameters TYPE STANDARD TABLE OF usparam. CASE iv_switch_on. "switch off status check WHEN abap_false. lv_param_value+4(1) = 'F'. "switch on status check WHEN abap_true. lv_param_value+4(1) = space. WHEN OTHERS. RETURN. ENDCASE. ls_user_parameter-parid = 'CRM_LRP_DEBUG'. ls_user_parameter-parva = lv_param_value. APPEND ls_user_parameter TO lt_user_parameters. CALL FUNCTION 'SUSR_USER_PARAMETERS_PUT' EXPORTING user_name = sy-uname TABLES user_parameters = lt_user_parameters EXCEPTIONS user_name_not_exist = 1 OTHERS = 2. ENDFORM.
TYPE-POOLS: abap. FORM toggle_status_check USING iv_switch_on TYPE flag. DATA: lv_param_value TYPE xuvalue, ls_user_parameter TYPE usparam, lt_user_parameters TYPE STANDARD TABLE OF usparam. CASE iv_switch_on. "switch off status check WHEN abap_false. lv_param_value+4(1) = 'F'. "switch on status check WHEN abap_true. lv_param_value+4(1) = space. WHEN OTHERS. RETURN. ENDCASE. ls_user_parameter-parid = 'CRM_LRP_DEBUG'. ls_user_parameter-parva = lv_param_value. APPEND ls_user_parameter TO lt_user_parameters. CALL FUNCTION 'SUSR_USER_PARAMETERS_PUT' EXPORTING user_name = sy-uname TABLES user_parameters = lt_user_parameters EXCEPTIONS user_name_not_exist = 1 OTHERS = 2. ENDFORM.
1 Komentarze.