я пытаюсь настроить сервер 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[]]
Как я могу это исправить?
Тем временем я решил это. Рабочий код ниже.
/**
* 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) {
Других решений пока нет …