使用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方法啊,反编译看看代码就知道了。

 

工作之余随便侃侃,呵呵,了解不多难免疏漏错误。大家批评指正。

 

 

 

你可能感兴趣的:(sql,bean,应用服务器,jdbc,OO)