コネクション方式¶
「IM-ERP Real Connect for Accel Platform セットアップガイド」にも示している通り、SAP との接続には SAP JCo を利用しており、接続方式には以下の 2 つがあります。
- ダイレクトコネクション方式
- プールコネクション方式
パフォーマンスではプールコネクション方式の方が優位となりますが、ダイレクトコネクション方式では SAP への接続時に接続ユーザを変更することができます。ただし、その変更したユーザは、SAP に存在するユーザでなければなりません。またそのユーザに適切な権限が付与されている必要があります。以下に、intra-mart のログインユーザ ID を SAP への接続ユーザ ID として使用する簡単なサンプルを示します。ただし、認証情報 sap_auth_info.properties に以下のような servertype が sample のダイレクトコネクション用の定義がされているとします。
sap_auth_info.properties
jco.client.client.sample=250 jco.client.user.sample =user001 jco.client.passwd.sample =pass001 jco.client.lang.sample =ja jco.client.ashost.sample =erpsv01sample.js
function init() { // ログインユーザ ID を取得 var sessionInfo = AccessSecurityManager.getSessionInfo(); var userId = sessionInfo.user; // そのログインユーザのパスワードを取得 var accountManager = new AccountManager(sessionInfo.loginGroup); var account = accountManager.getAccount(userId); var passwd = account.password; // SAP クライアントを取得し、ログインユーザ ID とパスワードを設定 // ※接続先 IP アドレス等その他の値はプロパティファイルの値が使用されます。 var sapClient = SapClientManager.getSapClient("sample"); sapClient.setUser(userId); sapClient.setPasswd(passwd); // SAP クライアントを任意のコントローラクラスのコンストラクタの引数に渡し、 // インスタンス生成。これにより、SAP への接続ユーザは上記で設定した // ユーザで接続され、そのユーザで BAPI の実行を試みる。 var objCon = new BankController(sapClient); }