Користувальницькі налаштування

Налаштування сайту


escript:mass_activation_fields

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
escript:mass_activation_fields [2014/10/27 21:55] wiki_adminescript:mass_activation_fields [2022/05/23 15:26] (поточний) – зовнішнє редагування 127.0.0.1
Рядок 1: Рядок 1:
 +====== Массовая активация полей ======
  
 +Любой человек который когда либо пробовал писать скрипт в Siebel CRM [[eScript:]] сталкивался с необходимостью массовой активации полей в определенном бизнес компоненте (Bussines Component) как правило это выглядит следующим образом:
 +
 +Объявляем необходимый бизнес компонент и активируем необходимые нам поля (Siebel CRM eScript examples):
 +<code javascript>
 +var bo = TheApplication().ActiveBusObject();
 +var bc = bo.GetBusComp("List Of Values");
 +bc.ActivateField("Language");
 +bc.ActivateField("Value");
 +bc.ActivateField("Type");
 +</code>
 +
 +Так выглядит Siebel CRM eScript  ActivateField.
 +
 +Но этот вариант является не всегда удобным поскольку в больших скриптах бывает необходимость в активации 20 и более полей. В результате код очень быстро вырастает в размере.
 +
 +Я предлагаю использовать следующий вариант.
 +
 +===== Функция активации полей Вариант №1: =====
 +<file javascript myexample.js>
 +function ActivField()
 +{
 +for (var ssk = 1; ssk < arguments.length; ssk++)
 +{arguments[0].ActivateField(arguments[ssk]);}
 +return;
 +}
 +
 +var bo = TheApplication().ActiveBusObject();
 +var bc = bo.GetBusComp("List Of Values"); 
 +ActivField(bc, "Type","Value","Language");
 +</file>
 +
 +
 +Итак теперь немного подробней. О функции Массовой активации полей в Siebel CRM (Massive ActivateField in Siebel CRM)
 +
 +Как говорится в BoockShelf property arguments[] это массив аргументов вставленных в функцию. Первая переменная начинается с arguments[0], все последующие с arguments[1] и выше. Именно это мы и используем.
 +
 +Начинаем цикл по аргументам (поля в бизнес компоненте) которые начинаются с arguments.[1]-го значения и до arguments.[n] аргумента. Напомню в arguments.[0]-м аргументе содержится бизнес компонент
 +
 +
 +
 +===== Функция активации полей Вариант №2: =====
 +<file javascript myexample.js>
 +var ContactBO = TheApplication().GetBusObject(«Contact»);
 +var ContactBC = ContactBO.GetBusComp(«Contact»);
 +with (ContactBC)
 +{
 +SetViewMode(AllView);
 +var fieldsPS = TheApplication().NewPropertySet();
 +var valuesPS = TheApplication().NewPropertySet();
 +fieldsPS.SetProperty("Last Name", "");
 +fieldsPS.SetProperty("First Name", "");
 +ActivateMultipleFields(fieldsPS);
 +ClearToQuery();
 +ExecuteQuery(ForwardBackward);
 +if (FirstRecord())
 +{
 +GetMultipleFieldValues(fieldsPS, valuesPS);
 +var slName = valuesPS.GetProperty("Last Name");
 +var sfName = valuesPS.GetProperty("First Name");
 +}
 +}
 +</file>
 +Вариант №2 [[http://docs.oracle.com/cd/B40099_02/books/OIRef/OIRefInterfaceRef86.html#wp1010570|Детали тут]]