架構配置
本文將介紹JCo組件的架構,配置,基本使用方法以及調試,同時還將討論如何對RFC方式調用的ABAP函式進行遠程調試。
JCo庫提供了可以直接在Java程式中使用的API。該API通過JNI調用部署在客戶端的SAP的RFC庫。該RFC庫是用C語言實現的,並且與JCo庫相互獨立發布。但是,在下載的JCo庫壓縮檔中也會提供。
該組件支持Inbound(在Java代碼中調用ABAP函式)和Outbound(在ABAP代碼中調用Java)兩種模式。本文只專注於介紹Inbound模式中,如何在Java代碼遠程調用ABAP函式。
安裝與配置
最新版本的JCo庫可以在官網下載(請選擇適合你的軟體和硬體平台的版本,本文的示例都基於32位Windows作業系統):
解壓縮以後,將名為librfc32.dll的檔案複製到目錄
system32下面。如果該檔案已經存在,則覆蓋它。這個檔案就是SAP的RFC協定實現,可以在官網下載其最新版本。
然後,確保CLASSPATH環境變數中包含檔案sapjco.jar所在的目錄。因為這個JAR包中含有在Java程式中需要直接調用的類和接口。
下載的壓縮檔中還包含了JavaDoc,文檔以及示例程式供參考。
建立連線
在執行任何操作之前,必須先建立到SAP系統的連線。本文示例使用的用戶名是“DDIC”,登錄密碼是“minisap”,基於如下圖所示系統信息:
類JCO是Jco庫中最主要的一個入口,它提供了許多靜態方法。其中有一系列重載的createClient方法可以用來創建與SAP系統的連線信息。這些信息都保存在返回的JCO.Client類的實例中。常用的兩種方式如下:
1. 直接輸入參數
JCO.Client myConnection = JCO.createClient("000", "DDIC", "minisap", "EN", "10.0.0.11", "00");
2. 使用Java Properties:
Properties logonProperties = new Properties();
logonProperties.put("jco.client.ashost","10.0.0.11");
logonProperties.put("jco.client.client","000");
logonProperties.put("jco.client.passwd","minisap");
logonProperties.put("jco.client.sysnr","00");
logonProperties.put("jco.client.user","DDIC");
JCO.Client myConnection = JCO.createClient( logonProperties ).