Передать массив объектов в качестве параметров функции SOAP и php-wsdl

я пытаюсь настроить сервер SOAP с функцией, которая читает массив объектов в качестве параметра. Я генерирую WSDL с помощью php-wsdl. Вот мой подход:

/**
* TStanMag
*
*
* @pw_set nillable=false The next element can't be NULL
* @pw_element string $kodTowaru Kod towaru
* @pw_set nillable=false The next element can't be NULL
* @pw_element float $ilosc Dostępna ilość
* @pw_complex TStanMag Pozycja stanu magazynowego
*/
class TStanMag {
public $kodTowaru;
public $ilosc;
};

/**
* Aktualizacja stanów magazynowych
*
* @param string $key1 Klucz 1
* @param string $key2 Klucz 2
* @param TStanMag[] $stany Tabela stanów magazynowych
* @param int $store_id
* @return TResult[] Response
*/
public function AktualizujStanyMagazynowe($key1, $key2, $stany, $store_id = 0) {
...
}

но в WSDL я вижу этот тип вместо массива типов:

<wsdl:part name="stany" type="tns:TStanMag[]">
<s:documentation>Tabela stanów magazynowych</s:documentation>
</wsdl:part>

также получает предупреждение в SoapUI

Thu Mar 19 21:04:38 CET 2015:WARN:Failed to find type [{http://localhost/symsync/}TStanMag[]]

Как я могу это исправить?

2

Решение

Тем временем я решил это. Рабочий код ниже.

/**
* TStanMag
*
*
* @pw_set nillable=false The next element can't be NULL
* @pw_element string $kodTowaru Kod towaru
* @pw_set nillable=false The next element can't be NULL
* @pw_element float $ilosc Dostępna ilość
* @pw_complex TStanMag Pozycja stanu magazynowego
*/
class TStanMag {
public $kodTowaru;
public $ilosc;
};

/**
* TStanMagArray
*
*
* @pw_element TStanMag $TStanMag Kod towaru
* @pw_complex TStanMagArray Tablica pozycji stanu magazynowego
*/
class TStanMagArray {
public $TStanMag;
};

/**
* Aktualizacja stanów magazynowych
*
* @param string $key1 Klucz 1
* @param string $key2 Klucz 2
* @param TStanMagArray $stany Tabela stanów magazynowych
* @param int $store_id
* @return TResultArray Response
*/
public function AktualizujStanyMagazynowe($key1, $key2, $stany, $store_id = 0) {
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]