如何在wso2esb 4.8.0中处理多个csv插入

时间:2013-12-31 05:03:30

标签: wso2 wso2esb wso2dss

我正在使用wso2esb4.8.0。我希望将数据插入表格中我从 .CSV 格式获取客户端的数据我已经更改了 VFS 传输详细信息 AXIS2 文件和我的配置适用于单个 CSV 文件 但我的情况是我有多个表,如客户,公司,分支机构,divsion,派对 这些是彼此依赖的意思,如果我想插入公司,我需要clientid与所有表相同 客户端给我样本数据我的clientid是数据库中的自动生成函数它意味着我需要插入剩余的字段,我将得到clientid我在dblookup mediator中使用此查询

insert into client(clientcode,clientname,clientshortname,createdbyid,modifiedbyid) values(?,?,?,?,?) RETURNING  clientid; 

我需要使用此ID插入公司我将如何执行此操作我尝试进行客户端插入,无法知道下次插入我的配置

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="Smook"
       transports="https,http,vfs"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <smooks config-key="Smook">
            <input type="text"/>
            <output type="xml"/>
         </smooks>
         <dblookup>
            <connection>
               <pool>
                  <password>Youtility11</password>
                  <user>youtilitydba</user>
                  <url>jdbc:postgresql://localhost:5432/USCProduction</url>
                  <driver>org.postgresql.Driver</driver>
               </pool>
            </connection>
            <statement>
               <sql>insert into mclient(clientcode,clientname,clientshortname,createdbyid,modifiedbyid) values(?,?,?,?,?) RETURNING  clientid;</sql>
               <parameter expression="//clientcode/text()" type="CHAR"/>
               <parameter expression="//clientname/text()" type="CHAR"/>
               <parameter expression="//clientshortname/text()" type="CHAR"/>
               <parameter expression="//createdbyid/text()" type="BIGINT"/>
               <parameter expression="//modifiedbyid/text()" type="BIGINT"/>
               <result name="clientid" column="clientid"/>
            </statement>
         </dblookup>
         <log level="full">
            <property name="message" expression="get-property('clientid')"/>
         </log>
      </inSequence>
      <outSequence/>
   </target>
   <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
   <parameter name="transport.PollInterval">5</parameter>
   <parameter name="transport.vfs.MoveAfterProcess">file:///home/youtility2/Desktop/smooks/out</parameter>
   <parameter name="transport.vfs.FileURI">file:///home/youtility2/Desktop/smooks/in</parameter>
   <parameter name="transport.vfs.MoveAfterFailure">file:///home/youtility2/Desktop/smooks/failure</parameter>
   <parameter name="transport.vfs.FileNamePattern">.*.csv</parameter>
   <parameter name="transport.vfs.ContentType">text/plain</parameter>
   <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
   <description/>
</proxy>

我的smooke调解员是这样的

<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.2.xsd">
      <resource-config selector="org.xml.sax.driver">
         <resource>org.milyn.csv.CSVReader</resource>
         <param name="fields">clientcode,clientname,clientshortname,createdbyid,modifiedbyid</param>
         <param name="rootElementName">people</param>
         <param name="recordElementName">person</param>
      </resource-config>
   </smooks-resource-list>

我有clientid但是我的公司csv与上面的相同如果我插入公司我将得到companyid我将如何做任何有任何想法。

0 个答案:

没有答案