標準の BAPI 呼び出しを介して SAP システムに接続する必要があります。すでに JCo (sapjco3) をインストールし、.jar を Eclipse のビルド パスに追加しました。
しかし、私はネットワーク/サーバープログラミングに関してかなり初心者であるため、EclipseとSAPシステム間の接続をセットアップする方法がわかりません...誰かがそのための基本的な解決策またはいくつかのアイデアを提供できますか?
ありがとうございます!
SAPホームページでそのトピックに関する例を含む優れたドキュメントを見つけた後、私は自分で質問を解決しました. まず、宛先を定義する必要があります。基本的には、ホストとネットワーク接続に関するその他すべての関連情報を設定します。ここで見つけることができます: http://help.sap.com/saphelp_nwes72/helpdata/de/48/5fb9f9b523501ee10000000a421937/content.htm
次に、接続しているサーバーの属性を取得するメソッドを作成して、接続をテストできます。You can find the code here: http://help.sap.com/saphelp_nwes72/helpdata/de/48/840186ab5a2722e10000000a42189d/content.htm?frameset=/de/48/874bb4fb0e35e1e10000000a42189c/frameset.htm¤t_toc=/de/b4/3f9e64bff38c4f9a19635f57eb4248 /plain.htm&node_id=498
このサイトでは、Java で SAP システムを操作するための良い例が提供されています。
import com.sap.conn.jco.ext.DestinationDataProvider;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoDestinationManager;
import java.util.Properties;
public class TestMySAP {
public static void main(String[] args) {
// This will create a file called mySAPSystem.jcoDestination
String DESTINATION_NAME1 = "mySAPSystem";
Properties connectProperties = new Properties();
connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "yoursaphost.yourdomain.com");
connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "00");
connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "100");
connectProperties.setProperty(DestinationDataProvider.JCO_USER, "youruser");
connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "******");
connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "en");
sap2.createDestinationDataFile(DESTINATION_NAME1, connectProperties);
// This will use that destination file to connect to SAP
try {
JCoDestination destination = JCoDestinationManager.getDestination("mySAPSystem");
System.out.println("Attributes:");
System.out.println(destination.getAttributes());
System.out.println();
destination.ping();
} catch (JCoException e) {
e.printStackTrace();
}
}
}