2012-08-24 71 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