SAP 银企直连,农业银行查询接口交易明细会生成固定格式的文本文件到前置机上面。
可以通过Http Get 方式下载。
提示:以下是本篇文章正文内容,下面案例可供参考
<?xml version="1.0" encoding="utf-8"?> <ap> <CCTransCode>CQRA10</CCTransCode> <Corp> <StartDate>起始日期</StartDate> <EndDate>终止日期</EndDate> </Corp> <Channel> <LastJrnNo>0</LastJrnNo> </Channel> <Cmp> <DbAccNo>借方账号</DbAccNo> <DbProv>借方省市代码</DbProv> <DbCur>借方货币号</DbCur> <StartTime>末笔时间戳</StartTime> </Cmp> </ap>
<?xml version="1.0" encoding="utf-8"?> <ap> <Cme> <RecordNum>记录总数</RecordNum> <FieldNum>字段数</FieldNum> </Cme> <Cmp> <DbAccNo>借方账号</DbAccNo> <DbProv>借方省市代码</DbProv> <DbCur>借方货币号</DbCur> <BatchFileName>文件名</BatchFileName> </Cmp> </ap>
下载文件:
账户明细文件信息 (文件名如上BatchFileName所示)
格式如下(MFS):
Prov|AccNo|Cur|TrDate|TimeStab|TrJrn|TrType|TrBankNo|AccName|AmtIndex|OppProv|OppAccNo|OppCur|OppName|OppBkName|CshIndex|ErrDate|ErrVchNo|Amt|Bal|PreAmt|TotChg|VoucherType|VoucherProv|VoucherBat|VoucherNo|CustRef|TransCode|Teller|VchNo|Abs|PostScript|TrFrom|
中文含义(附字典翻译):
省市代码|账号|货币码|交易日期|交易时间|日志号|交易类型|交易行号|户名|发生额标志|对方账号省市代码|对方账号|对方账号货币码|对方账号户名|对方账号开户行|现转标志|错账日期|错账传票号|交易金额|账户余额|上笔余额|手续费总额|凭证种类|凭证省市代号|凭证批次号|凭证号|客户参考号|交易码|柜员号|传票号|摘要|附言|交易来源|
注:返回的账户明细文件中不包含以上字段名。
METHOD GET_FILE. DATA lv_rfc_name TYPE string. DATA lv_rfc_option TYPE string. DATA lv_host TYPE string. DATA lv_port TYPE string. DATA lv_uri TYPE string. DATA lv_file_xstring TYPE xstring. DATA lv_http_status TYPE i. mo_abc_ghtd_serv_cntr->get_rfc_name( EXPORTING is_bank_comm_key = is_bank_comm_key IMPORTING ev_rfc_name = lv_rfc_name ). IF lv_rfc_name is INITIAL. DATA lt_message type STANDARD TABLE OF bal_s_msg. DATA ls_message TYPE bal_s_msg. DATA lv_message_dummy TYPE string. MESSAGE e026(epic_example_cn_impl) INTO lv_message_dummy. CLEAR ls_message. MOVE-CORRESPONDING sy TO ls_message. APPEND ls_message TO lt_message. RAISE EXCEPTION TYPE cx_epic_bank_comm_impl EXPORTING impl_messages = lt_message. ENDIF. mo_abc_ghtd_serv_cntr->get_connection_option( EXPORTING iv_rfc_name = lv_rfc_name IMPORTING ev_connection_option = lv_rfc_option ). resolve_host_port_from_option( EXPORTING iv_rfc_option = lv_rfc_option IMPORTING ev_host = lv_host ev_port = lv_port ). CONCATENATE gc_file_server_prefix iv_file_name INTO lv_uri. mo_abc_ghtd_serv_cntr->download_file( EXPORTING iv_host = lv_host iv_port = lv_port iv_uri = lv_uri iv_protocol = 'HTTP/1.0' IMPORTING ev_file_xstring = lv_file_xstring ev_http_status = lv_http_status ). IF lv_http_status <> 200. CLEAR lt_message. CLEAR ls_message. CLEAR lv_message_dummy. MESSAGE e025(epic_example_cn_impl) INTO lv_message_dummy. CLEAR ls_message. MOVE-CORRESPONDING sy TO ls_message. APPEND ls_message TO lt_message. RAISE EXCEPTION TYPE cx_epic_bank_comm_impl EXPORTING impl_messages = lt_message. ENDIF. cl_abap_codepage=>convert_from( EXPORTING source = lv_file_xstring codepage = `GBK` RECEIVING result = ev_file ). REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>cr_lf(1) IN ev_file WITH ''. REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>cr_lf+1(1) IN ev_file WITH ''. ENDMETHOD.
METHOD if_epic_abc_http_service~download_file_through_get. DATA: lo_client TYPE REF TO if_http_client. DATA lv_xstring TYPE xstring. DATA: errortext TYPE string. DATA lv_file_string TYPE string. DATA lv_file_xstring TYPE xstring. create_http_client( EXPORTING iv_host = iv_host iv_service = iv_service IMPORTING eo_client = lo_client ). CALL METHOD lo_client->request->set_method EXPORTING method = if_http_request=>co_request_method_get. CALL METHOD set_version_uri EXPORTING iv_protocol = iv_protocol iv_uri = iv_uri CHANGING co_client = lo_client. IF iv_request_body IS NOT INITIAL. CALL METHOD set_request_body EXPORTING iv_body_xstring = iv_request_body changing co_client = lo_client. ENDIF. CALL METHOD http_send EXPORTING iv_timeout = 2000 changing co_client = lo_client. CALL METHOD receive_data IMPORTING ev_file_xstring = ev_file_xstring ev_file_string = ev_file_string ev_http_status = ev_http_status CHANGING co_client = lo_client. CALL METHOD http_close CHANGING co_client = lo_client. ENDMETHOD.
另外也可以在前置机安装FTP服务器,通过FTP读取文件也很方便。