首页 > 分享 > SAP EPIC 银企直连 回单查询(建设银行)

SAP EPIC 银企直连 回单查询(建设银行)

导语:SAP建行的接口没有标准的回单查询的类,这里参照了工行的标准类,套用建行的明细查询接口,来实现回单查询,写入SAP。

【EPIC_PROC银企直连 建设银行】

在这里插入图片描述

我发现建行的明细查询跟回单查询很像,所以复制了明细查询的类
标准类:CL_EPIC_EXAMPLE_CN_CCB_GHTD(建行明细查询)

一、创建类
复制SAP标准类创建:ZCL_EPIC_EXAMPLE_CN_CCB_GHTD2
在这里插入图片描述

方法:CREATE_REQUEST

METHOD if_epic_bank_comm_impl~create_request. DATA ls_requ_mapping_source_data TYPE ty_requ_mapping_source. DATA ls_message LIKE LINE OF et_messages. DATA lv_message_dummy. "#EC NEEDED DATA ls_dialog_parameters TYPE epic_s_ebr_bc_param. DATA lv_commuser TYPE epic_bc_ud-commuser. DATA lv_pwd TYPE rsecdata. DATA lr_transformation_error TYPE REF TO cx_root. DATA lv_cust_id TYPE epic_example_ccb_cust_id. CLEAR ev_request_message_string. CLEAR ev_request_message_xstring. CLEAR ef_another_segment_required. CLEAR et_messages. CHECK is_bank_comm_key IS NOT INITIAL. CHECK iv_bank_comm_step IS NOT INITIAL. "建行使用6WY101,所以报文内容需要调整 TYPES: BEGIN OF ty_requ_transaction_body2, accno1 TYPE string, startdate(8) TYPE c, enddate(8) TYPE c, page TYPE i, poststr(40) TYPE c, condition1(32) TYPE c, condition2(32) TYPE c, END OF ty_requ_transaction_body2 . TYPES: BEGIN OF ty_requ_transaction_header2, request_sn(16) TYPE c, cust_id(21) TYPE c, user_id(6) TYPE c, password(32) TYPE c, tx_code(6) TYPE c, language(2) TYPE c, END OF ty_requ_transaction_header2 . TYPES: BEGIN OF ty_requ_mapping_source2, transaction_header TYPE ty_requ_transaction_header2, transaction_body TYPE ty_requ_transaction_body2, END OF ty_requ_mapping_source2 . DATA : ls_request TYPE ty_requ_mapping_source2. ls_dialog_parameters = is_dialog_parameters. IF ( ls_dialog_parameters-start_date IS INITIAL OR ls_dialog_parameters-start_date = space ) OR ( ls_dialog_parameters-end_date IS INITIAL OR ls_dialog_parameters-end_date = space ). MESSAGE e009(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. 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 ). CATCH cx_epic_bank_comm_impl. RAISE EXCEPTION TYPE cx_epic_bank_comm_impl EXPORTING impl_messages = et_messages. ENDTRY. DATA: lv_requst_sn TYPE string. mo_ccb_service->get_request_sn( IMPORTING ev_reqsn = lv_requst_sn ). * lv_cust_id = gv_cust_id. lv_cust_id = 'GD442000000123096#02'. * ls_requ_mapping_source_data-transaction_header-request_sn = lv_requst_sn. * ls_requ_mapping_source_data-transaction_header-user_id = lv_commuser. * ls_requ_mapping_source_data-transaction_header-password = lv_pwd. * ls_requ_mapping_source_data-transaction_header-cust_id = lv_cust_id. * ls_requ_mapping_source_data-transaction_header-tx_code = '6WY101'. * ls_requ_mapping_source_data-transaction_header-language = 'CN'. ls_request-transaction_header-request_sn = lv_requst_sn. ls_request-transaction_header-user_id = lv_commuser. ls_request-transaction_header-password = lv_pwd. ls_request-transaction_header-cust_id = lv_cust_id. ls_request-transaction_header-tx_code = '6WY101'. ls_request-transaction_header-language = 'CN'. "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. "end note 2116270 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_data-transaction_body-acc_no ). "end note 2116270 * ls_requ_mapping_source_data-transaction_body-start_date = ls_dialog_parameters-startdate. * ls_requ_mapping_source_data-transaction_body-end_date = ls_dialog_parameters-enddate. * ls_requ_mapping_source_data-transaction_body-start_page = gv_current_page. * ls_requ_mapping_source_data-transaction_body-poststr = gv_poststr. ls_request-transaction_body-accno1 = ls_requ_mapping_source_data-transaction_body-acc_no. ls_request-transaction_body-startdate = ls_dialog_parameters-start_date. ls_request-transaction_body-enddate = ls_dialog_parameters-end_date. ls_request-transaction_body-page = gv_current_page. ls_request-transaction_body-poststr = gv_poststr. TRY. * CALL TRANSFORMATION zepic_example_cn_ccb_ghtd_rqst * SOURCE parameters = ls_requ_mapping_source_data * RESULT XML ev_request_message_xstring. CALL TRANSFORMATION zepic_example_cn_ccb_ghtd_rqst SOURCE parameters = ls_request 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 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148

方法:PROCESS_RESPONSE

METHOD if_epic_bank_comm_impl~process_response. DATA: ls_resp_mapping_result_data TYPE ty_resp_mapping_result, lr_transformation_error TYPE REF TO cx_transformation_error, ls_message LIKE LINE OF et_messages, * lt_list_result TYPE tty_list_result, lv_message_dummy. DATA lt_list_result TYPE epic_t_ebr_bc_rslt. DATA ls_list_item TYPE epic_s_ebr_bc_rslt. DATA ls_qhid_result_item LIKE LINE OF mt_qhid_list_result . DATA ls_qhid_item LIKE LINE OF mt_qhid_list_result. DATA lv_lines TYPE i . DATA : lv_page_count TYPE i. DATA : lv_page TYPE i. TYPES: BEGIN OF ty_resp_transaction_header2, request_sn TYPE string, cust_id TYPE string, tx_code TYPE string, return_code TYPE string, return_msg TYPE string, language TYPE string, END OF ty_resp_transaction_header2 . TYPES: BEGIN OF ty_resp_item2, trandate TYPE string, trantime TYPE string, cre_typ TYPE string, cre_no TYPE string, message TYPE string, amt TYPE string, amt1 TYPE string, flag1 TYPE string, accno2 TYPE string, acc_name1 TYPE string, flag2 TYPE string, tran_flow TYPE string, bflow TYPE string, det_no TYPE string, det TYPE string, real_trandate TYPE string, rltv_accno TYPE string, cadbank_nm TYPE string, ovrlsttn_trck_no TYPE string, exostm_py_rmrk TYPE string, END OF ty_resp_item2 . TYPES: tty_resp_items2 TYPE STANDARD TABLE OF ty_resp_item2 WITH NON-UNIQUE KEY accno2 . TYPES: BEGIN OF ty_resp_transaction_body2, accno1 TYPE string, curr_cod TYPE string, acc_name TYPE string, acc_organ TYPE string, acc_state TYPE string, intr TYPE string, total_page TYPE string, page TYPE string, poststr TYPE string, flag TYPE string, file_locstr TYPE string, detaillist TYPE tty_resp_items2, END OF ty_resp_transaction_body2 . TYPES: BEGIN OF ty_resp_mapping_result2, transaction_header TYPE ty_resp_transaction_header2, transaction_body TYPE ty_resp_transaction_body2, END OF ty_resp_mapping_result2 . DATA : ls_respons TYPE ty_resp_mapping_result2. DATA : ls_items TYPE ty_resp_item. DATA : lt_items TYPE tty_resp_items. "建行回单,但是建行SAP没有回单接口,这里套用ICBC的回单接口,用建行交易明细进行查询数据 TRY. CALL TRANSFORMATION zepic_example_cn_ccb_ghtd_rsp SOURCE XML iv_response_message_xstring RESULT output_data = ls_respons. * ls_resp_mapping_result_data-transaction_header-request_sn = ls_respons-transaction_header-request_sn . LOOP AT ls_respons-transaction_body-detaillist INTO DATA(ls_list). ls_qhid_result_item-bank_acct_no = ls_respons-transaction_body-accno1. ls_qhid_result_item-bank_date = ls_list-trandate(4) && ls_list-trandate+5(2) && ls_list-trandate+8(2) . ls_qhid_result_item-bank_time = ls_list-trantime(2) && ls_list-trantime+3(2) && ls_list-trantime+6(2) . ls_qhid_result_item-amount = ls_list-amt. ls_qhid_result_item-balance = ls_list-amt1. ls_qhid_result_item-part_bank_name = ls_list-cadbank_nm. ls_qhid_result_item-part_bank_acct_no = ls_list-accno2. ls_qhid_result_item-part_bank_acct_name = ls_list-acc_name1. ls_qhid_result_item-ebr_use = ls_list-message. ls_qhid_result_item-bank_remark = ls_list-det. ls_qhid_result_item-transac_type = '默认交易'. ls_qhid_result_item-source = 'M'. "电子回单模式不能修改,不能删除,改为手动模式 ls_qhid_result_item-srl_no = ls_list-tran_flow. ls_qhid_result_item-ebr_no = ls_list-tran_flow. "如果找到信息,不保存(特殊定制) IF ls_list-bflow IS NOT INITIAL and strlen( ls_list-bflow ) >= 16. SELECT COUNT(*) FROM fprl_item WHERE bukrs = @ls_list-bflow(4) AND vblnr_pay = @ls_list-bflow+4(10) AND substring( laufd_pay,3,2 ) = @ls_list-bflow+14(2). IF sy-subrc = 0. CLEAR ls_qhid_result_item. CONTINUE. * ls_qhid_result_item-belnr = ls_list-bflow+4(10). * ls_qhid_result_item-status = '040'. ENDIF. ENDIF. "货币码对应关系 SELECT SINGLE waers FROM ztepic_cny INTO ls_qhid_result_item-currency WHERE zlx = ls_respons-transaction_body-curr_cod. "借贷关系 IF ls_list-flag1 = 0. ls_qhid_result_item-direction = 'S'. ELSEIF ls_list-flag1 = 1. ls_qhid_result_item-direction = 'H'. ENDIF. "获取公司代码等 SELECT SINGLE bukrs hbkid hktid FROM t012k INTO ( ls_qhid_result_item-bukrs,ls_qhid_result_item-hbkid,ls_qhid_result_item-hktid ) WHERE bankn = ls_qhid_result_item-bank_acct_no(18) AND refzl = ls_qhid_result_item-bank_acct_no+18(16). APPEND ls_qhid_result_item TO mt_qhid_list_result. ENDLOOP. * 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 = et_list_result * et_messages = et_messages ). gv_current_page = ls_respons-transaction_body-page. gv_page_count = ls_respons-transaction_body-total_page. IF gv_current_page < gv_page_count. cf_another_segment_required = 'X'. gv_current_page = gv_current_page + 1. ELSE. clear_comm_flags( ). CLEAR gt_list_result. ENDIF. CATCH cx_transformation_error INTO lr_transformation_error. MESSAGE e008(epic_example_cn_impl) WITH 'CCB_GHTD=>PROCESS_RESPONESE' 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. IF ls_respons-transaction_header-return_msg IS INITIAL. LOOP AT mt_qhid_list_result INTO ls_qhid_item. CLEAR ls_list_item. MOVE-CORRESPONDING ls_qhid_item TO ls_list_item. APPEND ls_list_item TO lt_list_result. ENDLOOP. MOVE lt_list_result TO et_list_result. * IF et_list_result IS NOT INITIAL . * lv_lines = lines( et_list_result ). * MESSAGE i015(epic_example_cn_impl) WITH lv_lines INTO lv_message_dummy. * mo_bank_service->append_message( IMPORTING et_messages = et_messages ). * ENDIF. ENDIF. ENDMETHOD. "if_epic_bank_comm_impl~process_response 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181

备注:回单查询属于用了工行的框架,建行明细查询的内容,属于新创造了一个接口,需要花点时间研究,由于前面没有银企直连经验,经历了无数次尝试和DUMP才搞出来这个接口。

作者:小飞猪猪猪猪猪猪猪–CSDN

相关知识

将“绿电”送入千家万户 建设银行福建省分行创新服务能源低碳转型
SAP按生产订单成本核算
HTML5开发移动web应用——SAP UI5篇(1)
建设银行 买花立减优惠
减压器企业财务系统哪个好用 终极指南!
建设银行 X 花加 龙支付优惠
Epic黑五特卖开启:多款游戏最高可享95%折扣!
建设银行吉林省分行:金融赋能 为白山松水增添“绿色”底色
建设银行吉林省分行:金融赋能 为白山松水增添“绿色”底色
建设银行潍坊分行一花卉产业基地项目获批设施农业贷款1.45亿元

网址: SAP EPIC 银企直连 回单查询(建设银行) https://m.huajiangbk.com/newsview898461.html

所属分类:花卉
上一篇: 集成支付即一码多付案例(一)
下一篇: 九星创客后台系统源码开发