2012-08-24 110 views
0

我可以在我的系統上訪問名爲sstchca.dll的DLL,該DLL提供訪問Siebel業務層的功能。我能夠在Excel中引用DLL並編寫VBA程序來執行函數。下面是示例VBA代碼進行連接:Siebel COM接口 - PHP

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接口的可行性,我不知道從哪裏開始?

任何人都可以幫助我在PHP中建立COM連接的一些示例代碼保持上述VBA代碼作爲基礎或指向我正確的方向爲PHP COM的一些很好的例子?

回答

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軟件沒有安裝我的系統上,所以我不能說,如果這真的代碼作品,但我希望它可以成爲一個起點。

+0

謝謝..這是一個非常好的起點。讓我試着看看它是否有效 – Neel