首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SOAP文字WSDL请求JDEdwards

SOAP文字WSDL请求JDEdwards
EN

Stack Overflow用户
提问于 2018-05-24 00:42:26
回答 1查看 260关注 0票数 1

我从我的客户那里得到了wsdl (为清晰起见只粘贴其中的一部分),他在他的公司升级了JDEdwards ERP系统。

代码语言:javascript
复制
<message name="createSalesOrder2C">
    <part name="createSalesOrder2C" element="tns:createSalesOrder2C"/>
</message>
<message name="createSalesOrder2CResponse">
    <part name="createSalesOrder2CResponse" element="tns:createSalesOrder2CResponse"/>
</message>
<message name="BusinessServiceException">
    <part name="fault" element="tns:BusinessServiceException"/>
</message>
<portType name="CreateSalesOrderManager">
    <operation name="createSalesOrder2C">
        <input wsam:Action="http://oracle.e1.bssv.JP5F0013/CreateSalesOrderManager/createSalesOrder2CRequest" message="tns:createSalesOrder2C"/>
        <output wsam:Action="http://oracle.e1.bssv.JP5F0013/CreateSalesOrderManager/createSalesOrder2CResponse" message="tns:createSalesOrder2CResponse"/>
        <fault message="tns:BusinessServiceException" name="BusinessServiceException" wsam:Action="http://oracle.e1.bssv.JP5F0013/CreateSalesOrderManager/createSalesOrder2C/Fault/BusinessServiceException"/>
    </operation>
</portType>
<binding name="CreateSalesOrderManagerPortBinding" type="tns:CreateSalesOrderManager">
    <wsp:PolicyReference URI="#bssvpolicy"/>
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="createSalesOrder2C">
        <soap:operation soapAction=""/>
        <input>
            <soap:body use="literal"/>
        </input>
        <output>
            <soap:body use="literal"/>
        </output>
        <fault name="BusinessServiceException">
            <soap:fault name="BusinessServiceException" use="literal"/>
        </fault>
    </operation>
</binding>
<service name="CreateSalesOrderManagerService">
    <port name="CreateSalesOrderManagerPort" binding="tns:CreateSalesOrderManagerPortBinding">
        <soap:address location="https://domain_removed/CreateSalesOrderManager"/>
    </port>
</service>

它是Oracle端点的一部分。

我的问题是,在更新之后,定义就消失了,我只有“字面”的东西。尝试了几种方法,并以以下方式结束:

代码语言:javascript
复制
try{
    $soap = new WSSoapClient2($wsdl,[
        'cache_wsdl' => WSDL_CACHE_NONE,
        'stream_context' => $context,
        'trace' => true,
        'style' => SOAP_DOCUMENT,
        'use' => SOAP_LITERAL,
        'location' => 'https://xxx/CreateSalesOrderManager',
    ]);
    $request = array(
        'AddressNumber' => 1,
        'ShipToNumber' => 1,
        'Reference1' => 'ORDER1234',
        'RequestedDate' => '2018-03-26T09:00:00',
        'Items' => array(
            array(
                'Quantity' => 5,
                'UnitOfMeasure' => 'SZ', // SZ - sztuka - Case Sentitive    
                'ItemNumber' => '0705',
            ),


            array(
                'Quantity' => 14,
                'UnitOfMeasure' => 'SZ', // SZ - sztuka - Case Sentitive
                'ItemNumber' => '0715',
            ),


            array(
                'Quantity' => 17,
                'UnitOfMeasure' => 'SZ', // SZ - sztuka - Case Sentitive
                'ItemNumber' => '0750',
            )


        ),

    );
    $response = $soap->createSalesOrder2C($request);

} catch (SoapFault $e){ }

这给了我Reqest结果如下

代码语言:javascript
复制
<SOAP-ENV:Body>
<ns1:createSalesOrder2C/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

不知道,为什么是空的。在JD升级之前的WSDL版本中,我提供了所有的定义和请求,创建了适当的soap主体。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-25 14:45:03

在空余时间尝试了几次之后,我设法解决了这个问题。

JDEdwars被升级到另一个“标准”(WS标准)。并在不同的文件中定义了类型(我没有注意到)

代码语言:javascript
复制
<types>
    <xsd:schema>
        <xsd:import 
            namespace="http://oracle.e1.bssv.JP5F0013/"
            schemaLocation="https://domain.x/CreateSalesOrderManager?xsd=1"
        />
    </xsd:schema>
</types>

并通过改变案件敏感性来解决问题。例如,AddressNumber变成了addressNumber,在这种情况下,确实很重要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50499328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档