PHP / SOAP
$client = new SoapClient('http://xxx.xxx.xxx.xx:xx/Sap/.../sap-client?wsdl');
$authentication = array(
'login' => '*****',
'password' => '*****'
);
$params = array(
"auth" => $authentication
);
$users = $client->Func1($params);
var_dump($users);
for ($i = 0, $count = count($users->s1); $i < $count; $i++) {
echo "No:" . $users->s1[$i]->no . "<br/>\n";
echo "Name:" . $users->s1[$i]->name . "<br/>\n";
}
SAP / SOAP
<xsd:import namespace="urn:sap-com:document:sap:rfc:functions"/>
<xsd:complexType name="s1">
<xsd:sequence>
<xsd:element name="no" type="n0:numeric8"/>
<xsd:element name="name" type="n0:char40"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="t2">
<xsd:sequence>
<xsd:element name="item" type="tns:s1" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Func1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Tbl" type="tns:t2"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Func1Response">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Tbl" type="tns:t2"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
嗨,我想用php / soap来调用sap wsdl。但是执行它后出现了“ SOAP-ERROR:Encoding:对象没有'Tbl'属性”错误。现在,我收到了“ PHP致命错误:SOAP错误:解析WSDL:无法从'url'加载到外部加载失败”的错误。我无法修复我的错误。有人能帮我吗? 预先感谢!
答案 0 :(得分:0)
如果您想轻松地用PHP调用此SOAP WS,我强烈建议您使用WSDL to PHP生成器,因为它将简化请求的构造,并且使用OOP方法处理所有请求总是更好。
此外,由于具有自动完成功能,使用PhpStorm或Eclise PDT等适用于PHP的优秀IDE是轻松使用生成的PHP SDK的最低要求。
我建议您尝试一下PackageGenerator项目,该项目已经完成并且使用了作曲器。