3

私のアプリは CakePHP (2.2.5) を使用して SOAP サーバーからデータを取得します。SoapSource.php コネクタにログインして、返された XML を確認し、返された配列を表示します。

$result = $this->client->__soapCall($method, array('parameters' => $tParams));
Logger::write('SOAP Last Response', $this->client->__getLastResponse(), 3, 'transaction');
Logger::write('SOAP Last Response Object', print_r($result, TRUE), 3, 'transaction');

しかし、ログに表示されているのは、XML に存在する 2 つの (最近追加された) フィールド、具体的には RPList の前の最後の 2 つのフィールドが配列から欠落していることです (ここではフォーマットされていますが、それ以外は逐語的です):

<transactionResult>
  <id>test</id>
  <resultCode>0</resultCode>
  <ReadScheduledRecordingsRsp>
    <RecordingDefinitionList>
      <RecordingDefinition>
        <RDId>d8c16d8f-67c6-469a-83c3-d51d8f8859a9</RDId>
        <Title>The Young and the Restless</Title>
        <SeriesId>4422</SeriesId>
        <KeepUntil>SpaceIsNeeded</KeepUntil>
        <StartPadSeconds>0</StartPadSeconds>
        <EndPadSeconds>0</EndPadSeconds>
        <Frequency>EveryDay</Frequency>
        <KeepAtMost>0</KeepAtMost>
        <Priority>23</Priority>
        <ShowType>Any</ShowType>
        <AirtimeDomain>SpecificTime</AirtimeDomain>
        <ChannelDomain>SpecificChannel</ChannelDomain>
        <RPList>
          ...

に続く:

ARRAY
 (
  [transactionResult] => stdClass Object
   (
    [id] => test
    [resultCode] => 0
    [ReadScheduledRecordingsRsp] => stdClass Object
     (
      [RecordingDefinitionList] => stdClass Object
       (
        [RecordingDefinition] => Array
         (
           [0] => stdClass Object
            (
             [RDId] => d8c16d8f-67c6-469a-83c3-d51d8f8859a9
             [Title] => The Young and the Restless
             [SeriesId] => 4422
             [KeepUntil] => SpaceIsNeeded
             [StartPadSeconds] => 0
             [EndPadSeconds] => 0
             [Frequency] => EveryDay
             [KeepAtMost] => 0
             [Priority] => 23
             [ShowType] => Any
             [RPList] => stdClass Object
              (
              ...

何かをするのを忘れたか、知らなかっただけだと思いますが、何をするのかわかりません。機能しない 2 つのフィールドが追加されたばかりの 2 つであることは非常に疑わしいですが、フィールドが列挙されている場所が見つかりません。

WSDL はフィールドをまったく指定していません。ただ、transactionResult 内に大量のデータが存在するだけです。

connect 呼び出しでは、オプションは同様にフィールドを指定しません。

バックエンドがこれらの 2 つのフィールドを追加するまではすべて正常に機能し、オブジェクトに 2 つの新しいフィールドが表示されないことを除いて、すべて正常に機能します

何か案は?

4

1 に答える 1