siebel_task:start_task_by_smartscript
Зміст
Запуск 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
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/start_task_by_smartscript.txt · Востаннє змінено: 2022/06/08 15:58 повз wiki_admin

