• PI-海外银企直联方案


    海外银企直联方案采用PI中间件,业务系统与银行前置机采用SFTP适配器对文件进行加解密传输处理。

    1.业务场景

    A.SAP运行F110或是EPIC通过审批后生成收付款文件,文件存储在SAP-SFTP指定路径。

    B.中间件PI定时抽取SAP-SFTP收付款文件,并通过PGP加密将文件推送到银行SFTP指定路径,同时反馈状态至SAP系统。

    C.银行SFTP接收到文件,通过基本信息校验并生成接收状态文件,存储在银行SFTP指定路径,PI定时抽取该路径文件并解密后分发给SAP-SFTP以及SAP-Proxy。

    D.银行处理完成后将收付款结果文件存储在银行SFTP指定路径下,PI定时抽取该路径文件并解密后分发给SAP-SFTP以及SAP-Proxy。

    E.银行对账单文件存储在银行SFTP指定路径下,PI定时抽取该路径文件并解密后分发给SAP-SFTP以及SAP-Proxy。

    2.PI部分配置

    A.SAP运行EPIC直接推送数据到PI

     文件不落地,SAP直接推送BASE64数据流到PI,PI接收到数据通过JAVA解析BASE64并改写Mapping Message,加密后将文件推送银行SFTP。

     Mapping Message:

     导入commons_io_220文件包

     

     设置文件名:

     Attributes and Methods 文件转换:

    public void transform(TransformationInput input, TransformationOutput output) throws StreamTransformationException {
        String lv_xmlStr;
        String lv_newHead;
        String lv_opstr;
    
        try{
                MappingTrace lo_mt = getTrace();
                lo_mt.addInfo("Transformation Starting"); 
                
                InputStream lo_inputStream = input.getInputPayload().getInputStream();
                lv_xmlStr = IOUtils.toString(lo_inputStream);
                lo_mt.addInfo("originalXMLString:"+lv_xmlStr);
    
                //get file name
                DynamicConfiguration lo_conf = input.getDynamicConfiguration();
                DynamicConfigurationKey lv_key = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System","FileName");
                lo_conf.put(lv_key,"11111223.xml");
                
    /**           lv_xmlStr = 
        "<IMP_STRING>" +
            "<![CDATA[" +
            "<?xml version="1.0" encoding="UTF-8"?>" + 
        "<n0:mt_in001_notice  xmlns:n0="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">" + 
        "<p_fsnam>lv_value</p_fsnam>" + 
        "<msgid>lv_msgid</msgid>" + 
        "<status>SEND</status>" + 
        "</n0:mt_in001_notice>" +
        "]]>" +
        "</IMP_STRING>";
    */
    
                //get node: IMP_STRING
              int lv_beg;
              int lv_end;
              lv_beg = lv_xmlStr.indexOf("<IMP_STRING>");
              lv_beg += 12;
              String lv_temp;
              lv_temp = Integer.toString(lv_beg);
              lo_mt.addInfo(lv_temp);
              lv_end = lv_xmlStr.indexOf("</IMP_STRING>");
              lv_temp = Integer.toString(lv_end);
              lo_mt.addInfo(lv_temp);
              String lv_cdata;
              lv_cdata = "";
              lv_cdata = lv_xmlStr.substring(lv_beg,lv_end);
    
                //Transform base64 to String
                byte[] decodeBytes = java.util.Base64.getDecoder().decode(lv_cdata.getBytes());
                lv_cdata = new String(decodeBytes,java.nio.charset.Charset.forName("UTF-8"));
    
                lv_opstr = lv_cdata;
              lv_opstr = lv_opstr.replace("<![CDATA[",""); 
                lv_opstr = lv_opstr.replace("]]>",""); 
    
              lo_mt.addInfo("afterXMLString:"+lv_opstr);
    
              OutputStream lo_os = output.getOutputPayload().getOutputStream();
              lo_os.write(lv_opstr.getBytes());
              lo_os.flush();    
              lo_os.close();
    
        }catch(Exception e){
              getTrace().addWarning(e.getMessage());
        }
    
    }
    View Code

    B.SAP通过SFTP发送文件到PI

     文件落地,PI定时抽取文件通过加密发送到银行SFTP。

     SFTP-Sender:

     

     

     

     SFTP-Receiver:

     

     

     

     C.SFTP文件加密解密方式

    Communication Channel加密PI发出文件:

     Communication Channel解密PI接收文件:

    D.PI广播式发送文件

     

     

     SAP Proxy:

    3.PI通道监控及日志

      Configuration and Monitoring Home

     适配器引擎状态

    消息监控器

     4.PI邮件推送

     Integration Builder创建Alert规则

     

     

     邮件服务信息配置 NWA - Configuration - Infrastructure - Java system properties

     定义Alert触发Job:NWA - Operations - Jobs - Java scheduler -  Tasks

    选择Add增加Job任务 

  • 相关阅读:
    python之基础知识篇
    OpenGL 着色器管理类 Shader
    OpenGL 彩色三角形
    OpenGL 你好,三角形 练习一 二 三
    OpenGL 矩阵绘画
    OpenGL 第一个三角形!!!!
    OpenGL 读取,使用 .vert .frag 着色器 文件 C++
    C++ 一定要使用strcpy_s()函数 等来操作方法c_str()返回的指针
    OpenGL 入门指南(配置GLFW ,着色语言高亮,以及一些常见问题)
    汽车加工厂
  • 原文地址:https://www.cnblogs.com/ricoo/p/14108262.html
Copyright © 2020-2023  润新知