技术开发 频道

智慧的连接实现对SAP系统的零代码集成

    之后会弹出一个要求用户输入Filter的Panel,我们可以根据BAPI的name或者description进行查找,支持通配符*。另外我们还可以指定返回结果的最大条数,以防返回结果数据量过大而耽误过多时间。

    我们在此输入BAPI的名称BAPI_CUSTOMER_GETDETAIL。点击OK。

    之后返回到刚才的Object Discovery Panel,点击RFC左侧的+号使其展开,EMD便会自动根据我们刚才输入的条件对SAPserver进行查询,很快就会找到我们输入的BAPI。我们选中这个BAPI,点击>按钮将其添加到Selected Object中。

    点击>按钮后会弹出一个配置这个BAPI的Panel,此处可以配置这个BAPI的可选参数,主要包括import,outport和tabel参数。另外还可以配置一些高级的属性,比如使用SAP中的field名称直接生成我们Adapter会用到的Business Object中的field名称,在默认情况下Adapter会对默认SAP中的field名称进行处理,它会结合每个field的description来生成Business Object中的field名称,以便于用户理解。具体信息请参考IBM WebSphere Adapter for SAP Software的User Guide。

    此处我们不进行配置,使用默认值,点击OK。

    这样,BAPI_CUSTOMER_GETDETAIL就添加好了,EMD返回到Object Discovery Panel。用户还可以重复刚才的过程添加多个BAPI。

    我们在此就不再添加其他BAPI了,直接点击Next。

    之后的Panel,EMD要求用户添加operation。EMD默认提供了CRUD四种operation,我们可以添加一个或多个operation,并为每个operation指定一个我们刚刚选择的BAPI。此处我们添加一个Retrieve operation,并将BAPI_CUSTOMER_GETDETAIL指定给它。

    实际上,四种operation的名字与真实的操作并无直接联系,选择比较好记住的名字只是为了开发方便不宜混淆。

    添加完operation后,我们再输入一个service operation的名称,任意起名。此处我们输入“Customer”。这个Panel上还有一些其他的高级功能,我们暂时不会用到,如需了解可参考User Guide。点击Next。

    之后的Panel我们再次输入SAP的连接信息。

    问:之前的EMD过程中我们已经输入过一次SAP的连接信息了,为何此Panel会再次要求我们输入?

    答:因为就像前面介绍过的那样,Adapter实际包括两部分主要功能,EMD和Runtime。之前我们输入的连接信息是EMD要用到的,用来进行对SAP上的Business Object进行搜索和生成Adapter要用到的Business Object(这就是我们到目前为止所体验的EMD功能)。在这个页面配置的SAP连接信息实际上是提供给Runtime用的,由于像BAPI_CUSTOMER_GETDETAIL这样的BAPI function是内置在SAP系统中的,用户如购买相同版本的SAP系统,这个BAPI应该是完全一样的,这样的话我们刚刚做的EMD生成的Business Object实际上也是可以用在另外一台同版本的SAP系统上的。如此设计是为了提供用户在开发上的便利,用户完全可以用一台备份SAP来进行Adapter的集成开发,从而不影响线上SAP系统的使用。当然此功能的前提是两台SAP系统的版本一致或至少保证BAPI_CUSTOMER_GETDETAIL的版本一致。

    再此我们使用相同的SAP连接信息。Next。

    之后我们新建一个Module保存刚才所做的工作,过程比较简单,就不再进行介绍了。

    至此,EMD功能完成,我们检查一下都生成了哪些Project。切换到J2EE试图,我们看到一共有5个Project生成了:

    CWYAP_SAPAdapter:Adapter的project,如我们多次运行EMD生成多个module,则可共用同一个adapter project。

    BAPI_OUTBOUND_GETDETAIL:EMD生成的核心Module,其中的.xsd文件即为Adapter为我们生成的Business Object文件。另外一些如.import和.wsdl文件等就是供runtime使用的一些配置文件。

    BAPI_OUTBOUND_GETDETAILAPP/EJB/Web:End point projects,实际就是Outbound的起点或者Inbound的终点。此处实际为一个EJB项目。这部分project实际并不属于Adapter,EMD生成他们实际是为了简化用户的开发,用户可以直接利用这些EJB项目植入自己的逻辑code。

    可以看到XSD格式的Business Object文件其实就是把SAP上的对象以xml格式(我们称这种格式为SDO)的形式表示出来。

0
相关文章