====== Запуск 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|}}