VA01信贷使用
1业务场景
业务在正式机中发现,当使用VA01输入客户编号回车后会报错
2解决方法
1. SE24进入CL_IM_UKM_SD_FSCM_INTEGR1
2. 双击方法IF_EX_BADI_SD_CM~FSCM_CREDIT_CHECK_ORDER
3. 找到并进入cl_ukm_xi_facade_r3_50=>if_ukm_credit_query_r3~check_credit
4. 在此处创建隐式增强
ZSD_WS_Credit
FSCM Credit Webservice Enhancement
5.粘贴的代码
"-----------------------------------------@斌将军--------------------------------------------
ENHANCEMENT 1 ZSD_WS_CREDIT. "active version """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(2) Class CL_UKM_XI_FACADE_R3_50, Interface IF_UKM_CREDIT_QUERY_R3, Method CHECK_CREDIT, Start, Enhancement ZSD_WS_CREDIT, Start A * Data Declarations that would be used for local mapping of structures DATA: ls_query1 TYPE ukmr3_credit_worthiness_query, ls_response1 TYPE ukmr3_cw_response, lx_exc1 TYPE REF TO cx_root, lx_ai1 TYPE REF TO cx_ai_system_fault, e_message1 LIKE LINE OF et_return, ltext1 TYPE string. * Data declaration to get the input data to the proxy DATA: ls_input TYPE ukm_credit_worthiness_q_in, ls_ouput TYPE ukm_credit_worthiness_r_out, ls_chk_sch TYPE ukm_credit_worthiness_query_ch, * ls_chk_sch1 TYPE ukmr3_cw_checkingschedule1, ls_chk_sch1 LIKE LINE OF ls_query1-credit_worthiness_query-credit_worthiness_query-checking_schedule, lref_wor_qu TYPE REF TO cl_ukm_credit_worthiness_query, ls_in_cre_par TYPE ukm_cw_creditor_party, * ls_out_cre_par TYPE ukmr3_cw_creditor_party2, ls_out_cre_par TYPE ukm_cw_creditor_party, ls_in_sel_par TYPE ukm_cw_seller_party, * ls_out_sel_par TYPE ukmr3_cw_seller_party2, ls_out_sel_par TYPE ukm_cw_seller_party, ls_in_pro_cat TYPE ukm_cw_product_category, * ls_out_pro_cat TYPE ukmr3_cw_product_category2. ls_out_pro_cat TYPE ukm_cw_product_category. **Using the below method convert the Import Parameters coming into Check Credit Method - query data being sent to PI CALL METHOD cl_ukm_xi_facade_r3_50=>credit_query_convert_outbound EXPORTING i_partner = i_partner i_credit_sgmnt = i_credit_sgmnt i_amount = i_amount i_currency = i_currency i_checkrule = i_checkrule i_checkseverity = i_checkseverity i_retrieval_flag = i_retrieval_flag i_effective_date = i_effective_date i_log_reference = i_log_reference it_schedule = it_schedule IMPORTING es_query = ls_query1. * Map the values from ls_query1 to ls_input and than calling the inbound proxy of FSCM* information of the segment id MOVE: ls_query1-credit_worthiness_query-credit_worthiness_query-credit_segment_internal_id TO ls_input-credit_worthiness_query-credit_worthiness_query-credit_segment_internal_id, * information of the amount to be checked ls_query1-credit_worthiness_query-credit_worthiness_query-checked_amount-currency_code TO ls_input-credit_worthiness_query-credit_worthiness_query-checked_amount-currency_code, ls_query1-credit_worthiness_query-credit_worthiness_query-checked_amount-VALUE TO ls_input-credit_worthiness_query-credit_worthiness_query-checked_amount-VALUE, * Details of the rule code ls_query1-credit_worthiness_query-credit_worthiness_query-checking_rule_code TO ls_input-credit_worthiness_query-credit_worthiness_query-checking_rule_code, * Details of severity code ls_query1-credit_worthiness_query-credit_worthiness_query-checking_severity_code TO ls_input-credit_worthiness_query-credit_worthiness_query-checking_severity_code, * Details of permission indicator ls_query1-credit_worthiness_query-credit_worthiness_query-car_permission_indicator TO ls_input-credit_worthiness_query-credit_worthiness_query-credit_agency_permission_ind. LOOP AT ls_query1-credit_worthiness_query-credit_worthiness_query-checking_schedule INTO ls_chk_sch1. MOVE: ls_chk_sch1-valuation_date TO ls_chk_sch-valuation_date, ls_chk_sch1-checked_amount TO ls_chk_sch-checked_amount, ls_chk_sch1-credit_segment_internal_id TO ls_chk_sch-credit_segment_internal_id, ls_chk_sch1-debtor_party-scheme_id TO ls_chk_sch-debtor_party-scheme_id, ls_chk_sch1-debtor_party-scheme_agency_id TO ls_chk_sch-debtor_party-scheme_agency_id, ls_chk_sch1-debtor_party-VALUE TO ls_chk_sch-debtor_party-VALUE. APPEND ls_chk_sch TO ls_input-credit_worthiness_query-credit_worthiness_query-checking_schedule. CLEAR ls_chk_sch. ENDLOOP. * setting up values of DEBTOR PARTY MOVE: ls_query1-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id-scheme_id TO ls_input-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id-scheme_id, ls_query1-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id-scheme_agency_id TO ls_input-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id-scheme_agency_id, ls_query1-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id-VALUE TO ls_input-credit_worthiness_query-credit_worthiness_query-debtor_party-internal_id-VALUE, * setting up values of CREDITOR PARTY ls_query1-credit_worthiness_query-credit_worthiness_query-creditor_party-internal_id-scheme_id TO ls_input-credit_worthiness_query-credit_worthiness_query-creditor_party-internal_id-scheme_id, ls_query1-credit_worthiness_query-credit_worthiness_query-creditor_party-internal_id-scheme_agency_id TO ls_input-credit_worthiness_query-credit_worthiness_query-creditor_party-internal_id-scheme_agency_id, ls_query1-credit_worthiness_query-credit_worthiness_query-creditor_party-internal_id-VALUE TO ls_input-credit_worthiness_query-credit_worthiness_query-creditor_party-internal_id-VALUE, * setting up values of seller party ls_query1-credit_worthiness_query-credit_worthiness_query-seller_party-internal_id-scheme_id TO ls_input-credit_worthiness_query-credit_worthiness_query-seller_party-internal_id-scheme_id, ls_query1-credit_worthiness_query-credit_worthiness_query-seller_party-internal_id-scheme_agency_id TO ls_input-credit_worthiness_query-credit_worthiness_query-seller_party-internal_id-scheme_agency_id, ls_query1-credit_worthiness_query-credit_worthiness_query-seller_party-internal_id-VALUE TO ls_input-credit_worthiness_query-credit_worthiness_query-seller_party-internal_id-VALUE, * setting up values of product category ls_query1-credit_worthiness_query-credit_worthiness_query-product_category-internal_id-scheme_id TO ls_input-credit_worthiness_query-credit_worthiness_query-product_category-internal_id-scheme_id, ls_query1-credit_worthiness_query-credit_worthiness_query-product_category-internal_id-scheme_agency_id TO ls_input-credit_worthiness_query-credit_worthiness_query-product_category-internal_id-scheme_agency_id, ls_query1-credit_worthiness_query-credit_worthiness_query-product_category-internal_id-VALUE TO ls_input-credit_worthiness_query-credit_worthiness_query-product_category-internal_id-VALUE. *************************************************************************************** ** Call the inbound Proxy with the data mapped in previous steps ** ** This is the Proxy method that is called when the FSCM inbound call is made to ECC ** *************************************************************************************** CREATE OBJECT lref_wor_qu. TRY. CALL METHOD lref_wor_qu->ii_ukm_credit_worthiness_query~execute_synchronous EXPORTING INPUT = ls_input IMPORTING OUTPUT = ls_ouput. CATCH cx_ukm_cw_check_fault INTO lx_exc1. ltext1 = lx_exc1->get_text( ). MESSAGE e008(ukm_pi) WITH ltext1 INTO e_message1-MESSAGE. e_message1-TYPE = sy-msgty. e_message1-ID = sy-msgid. e_message1-NUMBER = sy-msgno. e_message1-message_v1 = ltext1. APPEND e_message1 TO et_return. RAISE credit_check_failed. ENDTRY. * From the response of the Inbound Proxy, map accordingly to the corresponding structures and tables to be converted into the return parameters of the Check Credit Method MOVE: ls_ouput-credit_worthiness_response-credit_worthiness-credit_segment_internal_id TO ls_response1-credit_worthiness_response-credit_worthiness-credit_segment_internal_id, ls_ouput-credit_worthiness_response-credit_worthiness-indicator TO ls_response1-credit_worthiness_response-credit_worthiness-indicator, ls_ouput-credit_worthiness_response-credit_worthiness-debtor_party_blocked_indicator TO ls_response1-credit_worthiness_response-credit_worthiness-debtor_party_blocked_indicator, ls_ouput-credit_worthiness_response-credit_worthiness-debtor_party_attntn_indicator TO ls_response1-credit_worthiness_response-credit_worthiness-debtor_party_special_attention, ls_ouput-credit_worthiness_response-credit_worthiness-horizon_end_date TO ls_response1-credit_worthiness_response-credit_worthiness-horizon_end_date, * setting up value for DEBTOR PARTY ls_ouput-credit_worthiness_response-credit_worthiness-debtor_party-internal_id-scheme_id TO ls_response1-credit_worthiness_response-credit_worthiness-debtor_party-internal_id-scheme_id, ls_ouput-credit_worthiness_response-credit_worthiness-debtor_party-internal_id-scheme_agency_id TO ls_response1-credit_worthiness_response-credit_worthiness-debtor_party-internal_id-scheme_agency_id, ls_ouput-credit_worthiness_response-credit_worthiness-debtor_party-internal_id-VALUE TO ls_response1-credit_worthiness_response-credit_worthiness-debtor_party-internal_id-VALUE, * setting up value for RATING ls_ouput-credit_worthiness_response-credit_worthiness-rating TO ls_response1-credit_worthiness_response-credit_worthiness-rating, * setting up value for RISK_CLASS ls_ouput-credit_worthiness_response-credit_worthiness-risk_class TO ls_response1-credit_worthiness_response-credit_worthiness-risk_class, * setting up value for CREDIT_LIMIT ls_ouput-credit_worthiness_response-credit_worthiness-credit_limit TO ls_response1-credit_worthiness_response-credit_worthiness-credit_limit, ls_ouput-credit_worthiness_response-credit_worthiness-checking_description[] TO ls_response1-credit_worthiness_response-credit_worthiness-checking_description[]. * getting the values of the creditor party LOOP AT ls_ouput-credit_worthiness_response-credit_worthiness-creditor_party INTO ls_in_cre_par. MOVE: ls_in_cre_par-internal_id-scheme_id TO ls_out_cre_par-internal_id-scheme_id, ls_in_cre_par-internal_id-scheme_agency_id TO ls_out_cre_par-internal_id-scheme_agency_id, ls_in_cre_par-internal_id-VALUE TO ls_out_cre_par-internal_id-VALUE. APPEND ls_out_cre_par TO ls_response1-credit_worthiness_response-credit_worthiness-creditor_party. CLEAR ls_out_cre_par. ENDLOOP. * getting the values of the seller party LOOP AT ls_ouput-credit_worthiness_response-credit_worthiness-seller_party INTO ls_in_sel_par. MOVE: ls_in_sel_par-internal_id-scheme_id TO ls_out_sel_par-internal_id-scheme_id, ls_in_sel_par-internal_id-scheme_agency_id TO ls_out_sel_par-internal_id-scheme_agency_id, ls_in_sel_par-internal_id-VALUE TO ls_out_sel_par-internal_id-VALUE. APPEND ls_out_sel_par TO ls_response1-credit_worthiness_response-credit_worthiness-seller_party. CLEAR ls_out_sel_par. ENDLOOP. * getting the values of product category LOOP AT ls_ouput-credit_worthiness_response-credit_worthiness-product_category INTO ls_in_pro_cat. MOVE: ls_in_pro_cat-internal_id-scheme_id TO ls_out_pro_cat-internal_id-scheme_id, ls_in_pro_cat-internal_id-scheme_agency_id TO ls_out_pro_cat-internal_id-scheme_agency_id, ls_in_pro_cat-internal_id-VALUE TO ls_out_pro_cat-internal_id-VALUE. APPEND ls_in_pro_cat TO ls_response1-credit_worthiness_response-credit_worthiness-product_category. CLEAR ls_in_pro_cat. ENDLOOP. * Use the data populated with the proxy response to convert it to the Export parameters of the Check Credit Method CALL METHOD cl_ukm_xi_facade_r3_50=>credit_query_convert_inbound EXPORTING is_response = ls_response1 IMPORTING et_credit_messages = et_credit_messages e_check_confirmation = e_check_confirmation e_rating = e_rating e_riskclass = e_riskclass e_creditlimit = e_creditlimit e_limit_currency = e_limit_currency e_limit_valid_to = e_limit_valid_to e_blocked_indicator = e_blocked_indicator e_attntn_indicator = e_attntn_indicator e_credit_horizon_date = e_credit_horizon_date. * EXIT statement to come out of the method. EXIT. * This EXIT statement would force the execution out of this method by-passing the standard code where PI calls are made ENDENHANCEMENT.
"-----------------------------------------@斌将军--------------------------------------------
定期更文,欢迎关注