使用JCO调用SAP R3 Abap function
应该不算**机密啦
?
R3很老了,abap虽然有OO特性了,但n多业务功能都是基于成千上万个function之上。
?
1.先白话下abap function的结构,在tcode se37/38里可以找到对象词典,input export table和PL/SQL的function一个样,除export外,都可以是输入输出参数,input/export是一维的,table是二维的,用java原语一下应该是
?
function (ExportMap+ List[Map]) fun(List[Map] + InputMap){
? ***
}
?
2.再白话下abap的数据类型,基本number char date没啥子说的,有个structure一看名字也能明白的,特殊指出的是,abap的表对象(包括定制表),都是在db layer之上抽象出来的,程序也主要就是操作这些表。
?
3.切入主题
JCO - Java connector library (object ?),自己竟然没细搞清楚,汗。一句话就是java针对abap表/function的jdbc驱动,底层是c/c++。步骤都一样,连接到R/3 ECC服务器,得到方法对象,传参,执行,获取输出,关闭连接。
?
现在主要用jco3,jco2.1也一直用。之间的区别主要有
? jco2都是内部类,3重写成了public了,多包装了下
? jco2用连接池,3抽象出来个destination(本质还是一样)
?
? 附件有2和3两个版本的windows lib,包括api doc和例子。相信javaer一样就明白的。
?
外加几句,在web应用中搞个servletcontextlistener初始化或关闭连接池,这个用法很常见,至于集成的bean容器中,觉得没太多必要,好多static方法啊,反编译看看代码就知道了。
?
工作之余随便侃侃,呵呵,了解不多难免疏漏错误。大家批评指正。
?
?
?
1 楼 高中生 2010-11-17 不错。对jco有了了解。。