2

netsuiteapiに通貨を照会しようとしています。次のsoapリクエストは、SOAPUIクライアントで機能します。しかし、私はルビーのサボンジェムバージョン0.9.7で同じように動作させるのに苦労しています。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:messages_2012_2.platform.webservices.netsuite.com" xmlns:urn1="urn:core_2012_2.platform.webservices.netsuite.com">
   <soapenv:Header>
      <urn:passport>
         <urn1:email>xxx@abc.com</urn1:email>
         <urn1:password>xxx</urn1:password>
         <urn1:account>xxx</urn1:account>
      </urn:passport>
   </soapenv:Header>
   <soapenv:Body>
      <urn:getAll>
         <urn:record recordType="currency"/>
      </urn:getAll>
   </soapenv:Body>
</soapenv:Envelope>

基本的に、urn:record要素に属性を設定することはできません。以下は機能していません。

response = client.request :urn, :get_all do
  soap.body = { "urn:record" => { :attributes! => { "recordType" => "currency" } } }
end

お知らせ下さい。

4

3 に答える 3

2

http://savonrb.comで説明されているように、ハッシュのキーattributes!はXMLタグと一致する必要があります。あなたはこのようなものを書きたいです:

response = client.request:urn、:get_all do
  soap.body = {'urn:record' =>''、
               :attributes!=> {'urn:record' => {'recordType' =>'currency'}}
              }
終わり

これで問題が解決するかどうかをお知らせください。

于 2012-10-20T12:27:49.527 に答える
1

生の石鹸のリクエストを再確認してください。:get_allは、savonに文字通りあなたを連れて行くために、「getAll」である必要があるかもしれません。に変更されている可能性がありますGetAll

于 2012-10-20T01:42:40.897 に答える
0

savonの新しいバージョンでは、操作タグのローカルコンテキストに:attributesを配置できます。

@interaction_client.call(:retrieve_interaction, message: message_hash, :attributes => {  'attachmentInfo' => include_attachments.to_s  }) 

この場合、attachmentInfo属性は操作にリンクされたメイン操作タグに配置されます。この例では、これがns:RetrieveInteractionRequestタグになります。

構文には感嘆符が含まれていないことに注意してください。

于 2014-07-21T09:01:35.647 に答える