开门红

0 views
Skip to first unread message

huho...@gmail.com

unread,
Jun 19, 2006, 12:15:36 PM6/19/06
to Business Integration Engine(China)

MingTang

unread,
Jun 20, 2006, 12:46:53 AM6/20/06
to BIE-China
SF.NET上的基本上没有入门的知识。并且又是英文的哦,不怎么看的懂,有没有中文方面的资料啊?
我想把mssql数据库中的一个表的数据转换到另外的一个数据库中的一个表中去,比如我有个一数据库名为text1表名为admin,把这个表中的数据转换到另外一个数据库名为text2中的admin表中去,我是这样操作的,首先注册数据库驱动程序并且建立了2个连接,测试成功,点击get
schema,输入select * from
admin然后保存schema,然后在创建workflow,第一个为select,在query中输入select
* from admin 选择connection1,第2个为translate
document,第3个是insert,但是总是不成功,我知道这里面错得太多了,能告诉我该如何操作吗?就是数据库之间数据的转换。

huho...@gmail.com

unread,
Jun 20, 2006, 12:58:19 AM6/20/06
to BIE-China
BIE资源收集 -
http://blog.donews.com/huhj/archive/2006/06/20/921677.aspx


Integretel公司数据集成产品选型演示PPT文件(BIE v.s. IWay
XML Adaptor)
下载地址:http://two.fsphost.com/huhongjun/public/BIE%20Present.pdf

简介:是一家公司选择并试用BIE的介绍,对BIE基本上作了全面介绍(除了SBIE,即商业版中的Remote
Client),值得一看。

MingTang

unread,
Jun 20, 2006, 1:10:24 AM6/20/06
to BIE-China
先谢了,下载下来看看

huho...@gmail.com

unread,
Jun 20, 2006, 1:38:51 AM6/20/06
to BIE-China
1、BIE的中文资料的确很少,只能有空整一点;
2、如果workflow试用熟练后,你会发现很好调试,一是有Test功能,二是流程活动间采用封装的XML消息,调试的且如点多且方便。
3、你说错的太多,可能是指好几个环节,错了都不知如何定位,建议用调试程序的方法来验证。

比如说你做简单的只有两个节点的流程:
1) start+DB select+WriteFile
执行Test后可以生成xml文件
2) Start+DB insert。

Start节点默认是StandardXML的inputmessage,无需修改;
DB insert节点需设置输入消息、数据库连接;
deploy后点Test,在编辑框中输入xml内容或upload一个xml文件(从第一个流程得到),这样可以验证DB
insert是否成功,我的机器上Insert是成功的(mysql)。

其它节点都可以采用类似的方法做简单的调试,通过的节点多了之后再组合。
以上所言,不知道对你是否有帮助,准备抽点时间写一篇文章详细介绍BIE的DB2DB操作步骤。

MingTang

unread,
Jun 20, 2006, 1:39:45 AM6/20/06
to BIE-China
只是介绍了BIE,没有如何说明转换数据哦。

MingTang

unread,
Jun 20, 2006, 1:48:31 AM6/20/06
to BIE-China
非常感谢,期待你的DB2DB操作文章出来

MingTang

unread,
Jun 20, 2006, 2:30:33 AM6/20/06
to BIE-China
我按照你刚才说的那中方法,分2步就成功了,因为我原来是start+dbselect+translate
doucment+dbinsert,所以估计是在translate上面出错了.
后来创建start+dbselect+translate+write file就出错了。

MingTang

unread,
Jun 21, 2006, 2:54:49 AM6/21/06
to BIE-China
从第一步得出来的xml文件中元素的table属性为table="";将其该为要插入到数据库表中表的名字时,比如table="text2",然后再执行第二步,就可以insert了,想问一下这是那里出错了,是不是map文件没有做好,如何实现一步就转换数据过去,而不是translate出来的xml文件要经过手工修改才能转换数据的?就是说在workflow中有这start+dbselect+translate+dbinsert,简单的就是把一个表中的数据复制到另外一个表中去,复杂一点的就是对来源表中的数据经过mapbuilder加工一下再插入或是更新到目的数据表中去。

Hulala

unread,
Jun 21, 2006, 12:33:22 PM6/21/06
to BIE-China

MingTang 写道:

> 从第一步得出来的xml文件中元素的table属性为table="";将其该为要插入到数据库表中表的名字时,比如table="text2",然后再执行第二步,就可以insert了,想问一下这是那里出错了,是不是map文件没有做好,如何实现一步就转换数据过去,而不是translate出来的xml文件要经过手工修改才能转换数据的?就是说在workflow中有这start+dbselect+translate+dbinsert,简单的就是把一个表中的数据复制到另外一个表中去,复杂一点的就是对来源表中的数据经过mapbuilder加工一下再插入或是更新到目的数据表中去。


DB
select输出的xml文件中table为空的情况我没有碰到过,也许和数据库有关,我用的是mysql,不过又好像你说得是translate后table为空,是否你在mapbuilder映射中未将表名属性映射(用线连起来),当然如果表名不相同,那你就需要在mapbuilder中设定一个常量,然后将其映射到表名属性。
我碰到了另一个问题,就是translate输出的xml文件中表字段全部重复一次,生成的sql语句就多了一倍的重复字段,报错。

现在sourceforge上新增了一个bie-gpl项目,release了6.0.5版,只是发现mapbuilder用起来好像有点问题。

MingTang

unread,
Jun 22, 2006, 4:14:52 AM6/22/06
to BIE-China
我发现translate
输出的xml文件中表的字段重复的次数好象与select
了多少字段有关系,如果select *
那么字段重复了*次,我这里重复的是行,本来是要插入2行的,但是由于select
了3个字段,结果insert
表中则重复相同的行就有3行比如:
select a_id,a_username,a_passowrd from admin
translate 输出的xml文件为:
<row>
<a_id tableName="admin">1000</a_id>
<a_username tableName="admin">d02540220</a_username>
<a_password tableName="admin">000000</a_password>
<a_id tableName="admin">1006</a_id>
<a_username tableName="admin">000000</a_username>
<a_password tableName="admin">000000</a_password>
<a_id tableName="admin">1007</a_id>
<a_username tableName="admin">4324</a_username>
<a_password tableName="admin">43</a_password>

<a_id tableName="admin">1000</a_id>
<a_username tableName="admin">d02540220</a_username>
<a_password tableName="admin">000000</a_password>
<a_id tableName="admin">1006</a_id>
<a_username tableName="admin">000000</a_username>
<a_password tableName="admin">000000</a_password>
<a_id tableName="admin">1007</a_id>
<a_username tableName="admin">4324</a_username>
<a_password tableName="admin">43</a_password>


<a_id tableName="admin">1000</a_id>
<a_username tableName="admin">d02540220</a_username>
<a_password tableName="admin">000000</a_password>
<a_id tableName="admin">1006</a_id>
<a_username tableName="admin">000000</a_username>
<a_password tableName="admin">000000</a_password>
<a_id tableName="admin">1007</a_id>
<a_username tableName="admin">4324</a_username>
<a_password tableName="admin">43</a_password>
</row>
行重复了3次.如果select的字段是2个,那么重复的次数就是2

Reply all
Reply to author
Forward
0 new messages