
FUNCTION zwfbp_credit_action.
*"----------------------------------------------------------------------
*"*"Interface local:
*" IMPORTING
*" REFERENCE(I_PARTNER) TYPE BUT000-PARTNER
*" REFERENCE(I_SEGMENT) TYPE UKMBP_CMS_SGM-CREDIT_SGMNT
*" REFERENCE(I_OK) TYPE CHAR1
*"----------------------------------------------------------------------
DATA: go_account TYPE REF TO cl_ukm_account.
DATA: go_facade TYPE REF TO cl_ukm_facade,
go_bupa_factory TYPE REF TO cl_ukm_bupa_factory.
DATA:
ls_bp_cms_sgm TYPE ukm_s_bp_cms_sgm,
l_old_valid_date TYPE ukm_s_bp_cms_sgm-limit_valid_date.
go_facade = cl_ukm_facade=>create(
i_activity = cl_ukm_cnst_eventing=>bp_maintenance ).
go_bupa_factory = go_facade->get_bupa_factory( ).
CALL METHOD go_bupa_factory->get_credit_account
EXPORTING
i_partner = i_partner
i_credit_sgmnt = i_segment
RECEIVING
ro_credit_account = go_account.
* remember last valid to date
CALL METHOD go_account->get_bp_cms_sgm
IMPORTING
es_bp_cms_sgm = ls_bp_cms_sgm.
l_old_valid_date = ls_bp_cms_sgm-limit_valid_date.
* Here is where the magic happens…
CALL METHOD go_account->handle_requested_limit
EXPORTING
i_confirm = i_ok.
CALL METHOD go_account->get_bp_cms_sgm
IMPORTING
es_bp_cms_sgm = ls_bp_cms_sgm.
* in case it return an initial value set the old value - if any
IF ls_bp_cms_sgm-limit_valid_date IS INITIAL
AND l_old_valid_date <> ls_bp_cms_sgm-limit_valid_date.
ls_bp_cms_sgm-limit_valid_date = l_old_valid_date.
CALL METHOD go_account->set_bp_cms_sgm
EXPORTING
is_bp_cms_sgm = ls_bp_cms_sgm.
ENDIF.
DATA lt_return TYPE ukm_t_monitor_return.
go_bupa_factory->save_all(
EXPORTING
i_with_chdocs = abap_true
i_upd_task = abap_true
i_with_external_scorings = abap_true
RECEIVING
et_return = lt_return
EXCEPTIONS
failed = 1
OTHERS = 2 ).
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
COMMIT WORK.
MESSAGE 'Success' TYPE 'S'.
ENDIF.
ENDFUNCTION.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
17 | |
15 | |
5 | |
5 | |
5 | |
5 | |
4 | |
4 | |
4 | |
4 |