Показать сообщение отдельно
Старый 21.10.2009, 14:30
kostepanych вне форума Посмотреть профиль Отправить личное сообщение для kostepanych Найти все сообщения от kostepanych
  № 1  
Ответить с цитированием
kostepanych

Регистрация: Oct 2009
Сообщений: 4
Question Как разрулить множественные SOAP запросы для инициализации колекшена

Доброго времени суток,

Мне нужно проинициализировать ArrayCollection объектами, значения филдов которого получаются через СОАП запросы (функция getUdfValuePrj):

Код:
 for (var i:int=0; i < data.length; i++)
 {
  var task:Task=new Task();
  task.laborio = getUdfValuePrj(data[i].id, LABORIOUSNESS);
 }
 tempTaskArray.addItem(task);
Вот инициализация Вэбсервиса:

Код:
 private function initWebServices(wsdl:String):void
     {
  _udfWs = new WebService();
  _udfWs.wsdl = wsdl;
  _udfWs.getTaskUDFValue.addEventListener("result",
  getTaskUDFValueResult);
  _udfWs.getTaskUDFValue.addEventListener("fault", handleFault);
  _udfWs.loadWSDL();
 }
Собственно говоря вопрос, какими должны быть функции getUdfValuePrj (для СОАП запроса) и getTaskUDFValueResult (для получения requesta)? Или как это можно сделать по другому?

Пытался сам что-то соображать, получилась такая ересь:

Код:
private function getTaskUDFValueResult(event:ResultEvent):
 {
  _udfValue = event.result as String;
 }
 
private function getUdfValuePrj (taskId:String, udfCaption:String):void
 {
  _udfValue = "Loading...";
  _udfWs.getTaskUDFValue (taskId,udfCaption);
  while (_udfValue == "Loading...")
  {
  }
  return _udfValue;
 }
Но это: 1) Криво; 2) Не работает.