导语:余额查询接口相对比较独立,也比较简单,EPIC_PROC中付款查询是不做存储的,查一次展示一次,每次都要重新查询,本次接口建行的XML跟标准的一致,所以没有做任何改动,直接就可以用,注意客户号等参数赋值正确即可。
标准类:CL_EPIC_EXAMPLE_CN_CCB_GAB
一、创建类
复制SAP标准类:CL_EPIC_EXAMPLE_CN_CCB_GAB
方法:CREATE_REQUEST
METHOD if_epic_bank_comm_impl~create_request.
**************************************************************
** Example only - NOT FOR USE IN PRODUCTION SYSTEMS. **
** See the class documentation for more information. **
**************************************************************
" DATA ls_t012k TYPE t012k.
DATA ls_message LIKE LINE OF et_messages.
DATA lv_message_dummy.
DATA lr_logon_error TYPE REF TO cx_root.
DATA ls_requ_mapping_source TYPE ty_requ_mapping_source.
DATA lr_transformation_error TYPE REF TO cx_root.
DATA lv_timestamp TYPE timestamp.
DATA lv_commuser TYPE epic_bc_ud-commuser.
DATA lv_pwd TYPE rsecdata.
CLEAR ev_request_message_string.
CLEAR ev_request_message_xstring.
CLEAR ef_another_segment_required.
CLEAR ls_requ_mapping_source.
CLEAR et_messages.
CHECK is_bank_comm_key IS NOT INITIAL.
CHECK iv_bank_comm_step IS NOT INITIAL.
GET TIME STAMP FIELD lv_timestamp.
ls_requ_mapping_source-request_sn = lv_timestamp.
TRY.
mo_ccb_service->s_get_logon_data(
EXPORTING
iv_bank_comm_step = iv_bank_comm_step
is_bank_comm_key = is_bank_comm_key
IMPORTING
ev_commuser = lv_commuser
ev_pwd = lv_pwd
et_messages = et_messages
).
"begin note 2116270
DATA lo_bank_comm_service TYPE REF TO if_epic_bank_comm_service.
CREATE OBJECT lo_bank_comm_service TYPE cl_epic_cn_bank_comm_service.
lo_bank_comm_service->get_housebank_account_info(
EXPORTING
is_bank_comm_key = is_bank_comm_key
IMPORTING
ev_account_num = ls_requ_mapping_source-tx_info-acc_no
).
"end note 2116270
CATCH cx_epic_bank_comm_impl.
RAISE EXCEPTION TYPE cx_epic_bank_comm_impl
EXPORTING
impl_messages = et_messages.
ENDTRY.
mo_ccb_service->get_request_sn( IMPORTING ev_reqsn = ls_requ_mapping_source-request_sn ).
ls_requ_mapping_source-user_id = lv_commuser.
ls_requ_mapping_source-password = lv_pwd.
* ls_requ_mapping_source-cust_id = gv_cust_id.
*通过用户名 获取 CUST ID, 作为替换
DATA: lv_custid TYPE epic_bc_ud-descr.
CLEAR lv_custid.
SELECT SINGLE descr
INTO lv_custid
FROM epic_bc_ud
WHERE commuser = lv_commuser.
IF sy-subrc = 0.
**'无法通过USER_ID获取 CUST_ID' TYPE 'E'
* MESSAGE e002(zfi) INTO lv_message_dummy.
* me->append_message( CHANGING ct_messages = et_messages ).
* EXIT.
ENDIF.
ls_requ_mapping_source-cust_id = lv_custid.
ls_requ_mapping_source-tx_code = '6W0100'.
ls_requ_mapping_source-language = 'CN'.
* IF ls_t012k-bnkn2 IS NOT INITIAL.
* ls_requ_mapping_source-tx_info-acc_no = ls_t012k-bnkn2.
* ELSEIF ls_t012k-bankn IS NOT INITIAL.
* ls_requ_mapping_source-tx_info-acc_no = ls_t012k-bankn.
* ENDIF.
TRY.
CALL TRANSFORMATION epic_example_cn_ccb_gab01_rqt
SOURCE parameters = ls_requ_mapping_source
RESULT XML ev_request_message_xstring.
CATCH cx_transformation_error INTO lr_transformation_error.
MESSAGE e008(epic_example_cn_impl) WITH 'CCB_GAB=>CREATE_REQUEST' INTO lv_message_dummy.
CLEAR ls_message.
MOVE-CORRESPONDING sy TO ls_message.
APPEND ls_message TO et_messages.
RAISE EXCEPTION TYPE cx_epic_bank_comm_impl
EXPORTING
impl_messages = et_messages
previous = lr_transformation_error.
ENDTRY.
ENDMETHOD. "if_epic_bank_comm_impl~create_request
方法:PROCESS_RESPONSE
METHOD IF_EPIC_BANK_COMM_IMPL~PROCESS_RESPONSE.
**************************************************************
** Example only - NOT FOR USE IN PRODUCTION SYSTEMS. **
** See the class documentation for more information. **
**************************************************************
DATA lr_transformation_error TYPE REF TO cx_transformation_error.
DATA ls_resp_mapping_result_data TYPE ty_resp_mapping_result.
DATA lt_list_result TYPE tty_list_result.
DATA ls_message LIKE LINE OF et_messages.
DATA lv_message_dummy.
CLEAR et_list_result.
CLEAR es_other_results.
CLEAR et_messages.
CHECK is_bank_comm_key IS NOT INITIAL.
IF iv_response_message_xstring IS INITIAL.
MESSAGE e005(epic_example_cn_impl) INTO lv_message_dummy.
CLEAR ls_message.
MOVE-CORRESPONDING sy TO ls_message.
APPEND ls_message TO et_messages.
RAISE EXCEPTION TYPE cx_epic_bank_comm_impl
EXPORTING
impl_messages = et_messages.
ENDIF.
CLEAR et_messages.
TRY.
CALL TRANSFORMATION epic_example_cn_ccb_gab01_rsp
SOURCE XML iv_response_message_xstring
RESULT tx = ls_resp_mapping_result_data.
CATCH cx_transformation_error INTO lr_transformation_error.
MESSAGE e008(epic_example_cn_impl) WITH 'CCB_GAB=>PROCESSS_RESPONSE' INTO lv_message_dummy.
CLEAR ls_message.
MOVE-CORRESPONDING sy TO ls_message.
APPEND ls_message TO et_messages.
RAISE EXCEPTION TYPE cx_epic_bank_comm_impl
EXPORTING
impl_messages = et_messages
previous = lr_transformation_error.
ENDTRY.
me->perform_post_resp_xslt_proc(
EXPORTING
is_bank_comm_key = is_bank_comm_key
is_resp_mapping_result_data = ls_resp_mapping_result_data
IMPORTING
et_list_result = lt_list_result
et_messages = et_messages ).
IF et_list_result IS SUPPLIED.
et_list_result = lt_list_result.
ENDIF.
ENDMETHOD. "if_epic_bank_comm_impl~process_response
作者:小飞猪猪猪猪猪猪猪–CSDN