0

SiebelBusinessLayerにアクセスするための関数を提供するシステム上のsstchca.dllという名前のDLLにアクセスできます。ExcelでDLLを参照し、機能を実行するVBAプログラムを作成できます。接続を実行するサンプルVBAコードは次のとおりです。

Private Function CreateConn(strConnect As String, strEnterprise As String, strPort As String, strPass As String) As Boolean
Dim errCode As Integer
Dim errText As String
Dim SiebelApp As SiebelDataControl    
Set SiebelApp = CreateObject("SiebelDataControl.SiebelDataControl.1")
CreateConn = True
SiebelApp.Login "host=""siebel://" & strConnect & ":" & strPort & "/" & strEnterprise & "/EAIObjMgr_enu""", _
                "sadmin", strPass

errCode = SiebelApp.GetLastErrCode()
If errCode <> 0 Then
    errText = SiebelApp.GetLastErrText
    CreateConn = False
    Exit Function

PHPで同じCOMインターフェイスにアクセスする可能性を検討していますが、どこから始めればよいのかわかりません。

上記のVBAコードを基礎としてPHPでCOM接続を確立するためのサンプルコードを教えてもらえますか、またはPHP COMのいくつかの良い例の正しい方向を示してくれますか?

4

1 に答える 1

1

VBAコードをPHPコードに変換しようとしましたが、結果は次のとおりです。

<?php

function CreateConn($strConnect, $strEnterprise, $strPort, $strPass) {
    global $errText;

    $SiebelApplication = new COM('SiebelDataControl.SiebelDataControl.1') or die("Unable to instantiate SiebelDataControl");
    $ConnStr = "host=\"siebel://".$strConnect.":".$strPort."/".$strEnterprise."/EAIObjMgr_enu\"";
    $SiebelApplication->Login($ConnStr, "sadmin", $strPass);
    $errCode = $SiebelApplication->GetLastErrCode();
    if ($errCode != 0) { 
        $errText = $SiebelApplication->GetLastErrText();
        return false;
    } else {
        return true;
    }
}

?>

Siebelソフトウェアが私のシステムにインストールされていないので、このコードが実際に機能するかどうかはわかりませんが、それが出発点になることを願っています。

于 2012-08-24T20:27:35.067 に答える