如何使用 PHP 添加 filterExpressions NUSoap 代码?

问题描述

这是我的示例代码并且工作正常。我尝试在不同的地方添加它但失败了。 纠结了很久,终于决定写在这里。因为我无法摆脱它。我的英语不够。对此我很抱歉。

<?PHP

require_once('lib/nusoap.PHP');

$oSoapClient = new nusoap_client('https://xxxxxxxxxxxxxx/analytics/saw.dll?WSDL','wsdl');
if ($sError = $oSoapClient->getError()) {
    echo "The operation Could not be performed [" . $sError . "]";
    die();
}
$logon = array('name' => 'xxxxxxxxx','password'=> 'xxxxxxxxx');
$sessionID = $oSoapClient->call("logon",$logon,"","rpc","http://schemas.xmlsoap.org/soap/encoding/","encoded");    



$reportRef = array (        
    'reportPath' => '/shared/xxxxxxxxxxxxxx','reportXml' => null
    );
$xmlOpts = array (
        'async' => 'false','maxRowsPerPage' => '100','refresh' => 'true','presentationInfo' => 'true'
        );


$param = array(
    'report' => $reportRef,'outputFormat' => 'SAWRowsetSchemaAndData','executionoptions' => $xmlOpts,$sessionID
    );

$query = $oSoapClient->call("executeXMLQuery",$param,"encoded");

print_r($query);

?>

如何在filterExpressions下面添加代码请帮忙!

<v6:filterExpressions>
<![CDATA[<sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sawx:expr xsi:type="sawx:sqlExpression">"xxxxxxxx"."xxxxxxx"</sawx:expr> <sawx:expr xsi:type="xsd:double">xxxxxxx</sawx:expr></sawx:expr>]]>
</v6:filterExpressions><v6:filterExpressions>
<![CDATA[<sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sawx:expr xsi:type="sawx:sqlExpression">"xxxxxxx"."xxxxxxxx"</sawx:expr> <sawx:expr xsi:type="xsd:double">xxxxx</sawx:expr></sawx:expr>]]>
</v6:filterExpressions><v6:filterExpressions>
<![CDATA[<sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sawx:expr xsi:type="sawx:sqlExpression">"xxxxxxx"."xxxxxxxx"</sawx:expr> <sawx:expr xsi:type="xsd:double">xxxxxxx</sawx:expr></sawx:expr>]]>
</v6:filterExpressions>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v6="urn://oracle.bi.webservices/v6">
   <soapenv:Header/>
   <soapenv:Body>
      <v6:executeXMLQuery>
         <v6:report>
            <v6:reportPath>/shared/xxxxxxxxxx</v6:reportPath>
            <v6:reportXml>sonoras imperio</v6:reportXml>
         </v6:report>
         <v6:outputFormat>SAWRowsetSchemaAndData</v6:outputFormat>
         <v6:executionoptions>
            <v6:async>true</v6:async>
            <v6:maxRowsPerPage>9999</v6:maxRowsPerPage>
            <v6:refresh>true</v6:refresh>
            <v6:presentationInfo>false</v6:presentationInfo>
            <v6:type>per auras</v6:type>
         </v6:executionoptions>
         <v6:reportParams>
         <v6:filterExpressions>
<![CDATA[<sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sawx:expr xsi:type="sawx:sqlExpression">"xxxxxxx"."xxxxxxxx"</sawx:expr> <sawx:expr xsi:type="xsd:double">xxxxxxxxx</sawx:expr></sawx:expr>]]>
</v6:filterExpressions><v6:filterExpressions>
<![CDATA[<sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sawx:expr xsi:type="sawx:sqlExpression">"xxxxxxx"."xxxxxxxx"</sawx:expr> <sawx:expr xsi:type="xsd:double">xxxxxxxxxxx</sawx:expr></sawx:expr>]]>
</v6:filterExpressions><v6:filterExpressions>
<![CDATA[<sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sawx:expr xsi:type="sawx:sqlExpression">"xxxxxxxxxx"."xxxxxxxxx"</sawx:expr> <sawx:expr xsi:type="xsd:double">xxxxxxxxxx</sawx:expr></sawx:expr>]]>
</v6:filterExpressions>
</v6:reportParams>
         <v6:sessionID>xxxxxxxxxxxxxxxxxxxxx</v6:sessionID>
      </v6:executeXMLQuery>
   </soapenv:Body>
</soapenv:Envelope>  

当我使用soapUi 5.6 发送以下xml 时,它可以工作。如何使用nuSoap 发送此文件?问题是我无法发送

 $client = new SoapClient("https://xxxxxxxxxxx/analytics/saw.dll?WSDL",array("trace" => 1,"exceptions" => 0));
   /*$functions = $client->__getFunctions();
   foreach($functions as $func) {
      echo $func . "\n";
   }*/

   $logon = array('name' => 'xxxxxxx','password'=> 'xxxxxxxxxx');
   $SessionID = $client->logon($logon);

   $reportRef = array (     
    'reportPath' => '/shared/xxxxxxxxxxxxxxxxxxxxxx','presentationInfo' => 'false'
        );

 $xmlstr = <<<XML
             <filterExpressions>
            <![CDATA[<sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sawx:expr xsi:type="sawx:sqlExpression">"xxxxxxxx"."xxxxxxxx"</sawx:expr> <sawx:expr xsi:type="xsd:double">xxxxxxxxxx</sawx:expr></sawx:expr>]]>
            </filterExpressions>
            <filterExpressions>
            <![CDATA[<sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sawx:expr xsi:type="sawx:sqlExpression">"xxxxxxxxxxx"."xxxxxxxxxxx"</sawx:expr> <sawx:expr xsi:type="xsd:double">xxxxxxxxxxxxx</sawx:expr></sawx:expr>]]>
            </filterExpressions>
            <filterExpressions>
            <![CDATA[<sawx:expr xsi:type="sawx:comparison" op="equal" xmlns:saw="com.siebel.analytics.web/report/v1.1" xmlns:sawx="com.siebel.analytics.web/expression/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><sawx:expr xsi:type="sawx:sqlExpression">"xxxxxxxxxxxxx"."xxxxxxxxxxxxx"</sawx:expr> <sawx:expr xsi:type="xsd:double">xxxxxxxxxxxxx</sawx:expr></sawx:expr>]]>
            </filterExpressions>       
XML;

$param = array(
    'report' => $reportRef,'reportParams' => $xmlstr,'sessionID' => $SessionID->sessionID
    );



$query = $client->executeXMLQuery($param);

print_r($query);

} catch (Exception $exc) {
  echo "Soap Hatasi Olustu: " . $exc->getMessage();
}

我测试过这段代码不正确。你有什么想法??请帮我。我无法发送 $xmlstr。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)