====== Запуск Siebel Task используя SmartScript ======
===== Создание аплета со списком скриптов =====
Для удобства вам нужно создать List Applet отображающий список SmartScrpts и их переводов
например **Smart Script Paths List Applet** построить его на Business Components **Call Script Path Translations**
И вывести на интерфейс поля
^Name^Field^Display Name^
|Description Text|Description Text|Описание|
|Language Code|Language Code|Код языка|
|Language Name|Language Name|Язык|
|Name|Label|Наименование|
===== System Preference =====
Добавляем новую запись в системных переменных
^Description^System Preference Name^System Preference Value^
|Связь SmartScript и Task "Отправка Email"|AL Send Email SS|AL Send Email Task|
===== Drilldown Object =====
Для удобства создадим Drilldown Object
^Name^Hyperlink Field^View^Source Field^Business Component^
|Run Smartscript|Label|Smart Script Path Language List View (eApps)|Id|Smart Script Path Language Translations (eApps)|
===== Server Script =====
Воспользуемся [[siebel_task:invoke_siebel_task|]]
function WebApplet_PreInvokeMethod (MethodName)
{
if (MethodName == "Drill"+"down")
{
var sSSRow_id=this.BusComp().GetFieldValue("Id");
var boCurrent=TheApplication().GetBusObject(TheApplication().ActiveBusObject().Name());
var bcCurrent=boCurrent.GetBusComp(this.BusComp().Name());
bcCurrent.SetViewMode(AllView);
bcCurrent.ActivateField("Path Id");
bcCurrent.ActivateField("Path Name");
bcCurrent.ActivateField("Language Code");
bcCurrent.ClearToQuery();
bcCurrent.SetSearchSpec("Id",sSSRow_id);
bcCurrent.ExecuteQuery(ForwardOnly);
var vPathName = bcCurrent.GetFieldValue("Path Name");
var taskName = GetSysParam(vPathName);
if (taskName !='' && taskName !=null)
{
var inputPropSet:PropertySet;
var outputPropSet:PropertySet;
var taskUIsvc:Service;
try
{
inputPropSet = TheApplication().NewPropertySet();
outputPropSet = TheApplication().NewPropertySet();
taskUIsvc = TheApplication().GetService("Task UI Service (SWE)");
inputPropSet.SetProperty("TaskName",taskName);
//inputPropSet.SetProperty("Object Id", OptyId);
taskUIsvc.InvokeMethod("LaunchTaskFromScript",inputPropSet,outputPropSet);
}
catch(e)
{
TheApplication().RaiseErrorText("У Вас нет прав для запуска Задания!");
}
inputPropSet=null;
outputPropSet=null;
taskUIsvc=null;
return(CancelOperation);
}
}
return (ContinueOperation);
}
function GetSysParam(pField)
{
var boSysPref, bcSysPref, value="";
boSysPref = TheApplication().GetBusObject("System Preferences");
bcSysPref = boSysPref.GetBusComp("System Preferences");
bcSysPref.ActivateField("Name");
bcSysPref.ActivateField("Value");
bcSysPref.ClearToQuery();
bcSysPref.SetSearchSpec("Name", pField);
bcSysPref.ExecuteQuery(1);
if (bcSysPref.FirstRecord())
value=bcSysPref.GetFieldValue("Value");
boSysPref=null;
bcSysPref=null;
return(value);
}
Дальше добавляем этот applet на интерфейс, в результате получим вот такой вот список SmartScript с Drilldown при нажатии на ссылку у нас откроется Siebel Task
{{:siebel_task:smartscript_list_applet.png?600|}}