转自:http://www.bootad.cn/post/228.html
DataStage有二种Routines,一种是用于Server Job的 Server Routines,用Basic语言来编写,当然,你可以在Parallel中用,但是只能在Basic Transformer这个控件中。第二种就是今天我要说的这种Parallel Routines啦!!!这是用C/C++来编写的,可以在Parallel中的Transformer中使用。
下面跟我一起做,完成你的第一个Parallel Routines吧!!!C++我也忘得差不多了,不过下面这段我打赌你一定看得懂:
#include <stdlib.h>
#include <stdio.h>
char * ObjTestOne()
{
char* OutStr;
OutStr="Hello World - Object Testing";
return OutStr;
}
保存为OBJTEST.cpp,接着上传到你的DataStage服务器上,接着编译:
g++ -O -fPIC -Wno-deprecated -c OBJTEST.cpp
如果成功,将会在当前目录中,生成OBJTEST.o这样的一个目标文件。
把目标文件,拷贝到任意目录,例如:/datastage/Ascential/DataStage/PXEngine/lib/OBJTEST.o,确保DataStage用户有执行的权限。
回到DataStage中,新建 Parallel Rountines,Routine Name:OBJTEST Object type选择 Object,External subrountine name就是所要调用的子函数的名字,我们这里是ObjTestOne,Return type为char *;Library path:/datastage/Ascential/DataStage/PXEngine/lib/OBJTEST.o 也就是存放目标文件的地址。
因为没有输入参数,所以这个Parallel Routines就建立完成了,确定后,就可以在Transformer中使用了!!!