Search specification для VBC

Обсуждаем техничекие вопросы в этом разделе!

Search specification для VBC

Сообщение vif Вс мар 13, 2011 2:02 pm

Siebel 8.1.1. У меня есть Applet, business component которого - VBC, основанный на Custom business service.
Необходимо задать Search specification на applete, например ([Fld1] =ParentFieldValue(Id)), где [Fld1] - поле на VBC. В результате получаю сообщение: 'Function' query node is not supported in '[Fld1] = ParentFieldValue ("Id")'.(SBL-EAI-04371).
Для обычных business component это работает.
Cпасибо, кто ответит.
vif
 
Сообщений: 32
Зарегистрирован: Ср авг 13, 2008 4:33 pm

Re: Search specification для VBC

Сообщение Master Пн мар 14, 2011 10:55 pm

в кастом бизнес сервисе необходимо реализовать метод Query и вернуть затем отмену операции.
в инпут сервиса и метода поступит проперти сет в котором будет заданная спецификация поиска. обработав этот метод - надо вернуть набор записей... все в тот же пропирти сет но уже в исходящий.
Зовите меня просто - МАСТЕР!
Аватара пользователя
Master
Администратор
 
Сообщений: 168
Зарегистрирован: Пт авг 17, 2007 12:02 pm

Re: Search specification для VBC

Сообщение vif Вт мар 15, 2011 12:47 pm

Здравствуйте Master!
Указанное Вами выполнено:
Код: Выделить всё
function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
   var functionName = "Service_PreInvokeMethod";
   WriteToLog(functionName, MethodName, false);
   switch (MethodName)
   {
      case "Init":
         Init(Inputs, Outputs)
         break;
      case "Query":
         Query (Inputs, Outputs)
         break;
      default:
         return (ContinueOperation);
   }
   return (CancelOperation);
}

==========================================================
Код: Выделить всё
function Query(I, O)
{
   var thisFunctionName = "Query";
   try
   {
      WriteToLog(thisFunctionName, "Query IPS:", false);
      TheApplication().GetService("KH Logs BS").PrintPsToLog(I, null);
      var row = TheApplication().NewPropertySet();
      row.SetProperty("Fld1", "MyValue");
      O.AddChild (row);
   }
   catch(e)
   {
      WriteToLog(thisFunctionName, e.message, true);
   }
}

=========================================
после анализа, выяснилось, что
  • Service_PreInvokeMethod (MethodName, Inputs, Outputs) для MethodName = "Query" Siebelом не вызывается. Видимо ошибка происходит на этапе создания Siebelом Input PS.
  • Если же Search specification на applete задать в виде [Fld1] ="Постоянное значение", то все действительно работает согласно описанной вами логике.
vif
 
Сообщений: 32
Зарегистрирован: Ср авг 13, 2008 4:33 pm

Re: Search specification для VBC

Сообщение Master Ср мар 16, 2011 3:17 am

ParentFieldValue тоже должен работать, если есть линк между основоной БК и созданной Вами VBC.
Если "предираться" к первому посту, то в написанной спецификации поиска "([Fld1] =ParentFieldValue(Id))" должны быть кавычки ParentFieldValue("Id"). Может причина в этом!
Зовите меня просто - МАСТЕР!
Аватара пользователя
Master
Администратор
 
Сообщений: 168
Зарегистрирован: Пт авг 17, 2007 12:02 pm

Re: Search specification для VBC

Сообщение vif Ср мар 16, 2011 10:43 am

Линк есть, кстати из линка значения считаются правильно.
В том-то и проблема, что должно работать. И в 7.8 это работало. Пробовали и с кавычками, и без кавычек, и со скобками - все одно и то же.
Спасибо.
vif
 
Сообщений: 32
Зарегистрирован: Ср авг 13, 2008 4:33 pm


Вернуться в Технический раздел

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron