Invoke a workflow using Siebel server script

本文介绍使用Siebel Server Script通过同步及异步服务器请求、业务服务三种方式调用Siebel工作流的方法,并提供每种方式的具体示例。
There are a number of ways that a workflow can be invoked using Siebel server script. This article will describe these alternatives and provide an example of each using Siebel eScript.
1. Call synchronous server request
2. Call asynchronous server request
3. Call workflow as a business service
In the following sections I will expand on the above methods.


1. Call synchronous server request


This method makes a request to invoke a task for the workflow to be invoked by the Workflow Process Manager Siebel component. When the request is made for the workflow to be executed, the script will wait for the workflow to completed prior to continuing (hence synchronous).


When the synchronous server request is submitted the request is routed to a siebel server which has the Workflow Process Manager component enabled and online. A new job/task is created for the workflow job, this task record will be displayed in the Administration - Server Management > Jobs view.


Using this method, the workflow will be invoked by the SADMIN user. This means that the any records modified by the workflow will show as modified/created by SADMIN.


Using this method, the workflow will be invoked on a server that has the Workflow Process Manager component enabled and online. This is a useful method in the case where the Siebel enterprise has a number of Siebel servers and a single Siebel server is dedicated to execute workflows. This may be handy if the workflow generates external files where it is important that these are always stored on the same server.


Here is an example of making a syncronous server request to call a workflow using Siebel eScript:


var svcServerRequest;
var psWorkflowChildIn;
var psWorkflowIn;
var psWorkflowOut;
 
try
{
svcServerRequest = TheApplication().GetService(
"Synchronous Server Requests");
psWorkflowChildIn = TheApplication().NewPropertySet();
psWorkflowIn = TheApplication().NewPropertySet();
psWorkflowOut = TheApplication().NewPropertySet();
psWorkflowChildIn.SetProperty("ProcessName", "My Workflow Process");
with (psWorkflowIn)
{
SetProperty("Component", "WfProcMgr");
AddChild(psWorkflowChildIn);
}
svcServerRequest.InvokeMethod("SubmitRequest", psWorkflowIn,
psWorkflowOut);
}
catch(e)
{
TheApplication().RaiseErrorText(e.toString());
}
finally
{
svcServerRequest = null;
}
2. Call asynchronous server request


This method is the same as that for calling a synchronous server request, however after the call is made to execute the asynchronous server request, the script does not wait for the workflow to complete, it continues immediately and does not wait for the workflow.


Here is an example of making an asynchronous server request to call a workflow using Siebel eScript:


var svcServerRequest;
var psWorkflowChildIn;
var psWorkflowIn;
var psWorkflowOut;
 
try
{
svcServerRequest = TheApplication().GetService(
"Asynchronous Server Requests");
psWorkflowChildIn = TheApplication().NewPropertySet();
psWorkflowIn = TheApplication().NewPropertySet();
psWorkflowOut = TheApplication().NewPropertySet();
psWorkflowChildIn.SetProperty("ProcessName", "My Workflow Process");
with (psWorkflowIn)
{
SetProperty("Component", "WfProcMgr");
AddChild(psWorkflowChildIn);
}
svcServerRequest.InvokeMethod("SubmitRequest", psWorkflowIn,
psWorkflowOut);
}
catch(e)
{
TheApplication().RaiseErrorText(e.toString());
}
finally
{
svcServerRequest = null;
}
3. Call workflow as a business service


This method executes the workflow in real time within the current application object manager instance. This method executes the workflow as though it was executing a business service.


Using this method, the workflow will always be executed syncronously. The workflow will be executed within the instance of the user session, therefore the workflow will be executed as the user logged in hence inheriting all the security settings of the user logged in.


Here is an example of calling a workflow as a business service within the application object manager instance using Siebel eScript:


var svcWorkflow;
var psWFInputs;
var psWFOutputs;
 
try
{
svcWorkflow = TheApplication().GetService(
"Workflow Process Manager");
psWFInputs = TheApplication().NewPropertySet();
psWFOutputs = TheApplication().NewPropertySet();
psWFInputs.SetProperty("ProcessName", "My Workflow Process");
svcWorkflow.InvokeMethod("RunProcess", psWFInputs, psWFOutputs);
}
catch(e)
{
TheApplication().RaiseErrorText(e.toString());
}
finally
{
svcWorkflow = null;
}
siebel 7.7的 中文版的 bookshelf关于workflow的详细介绍。 目录: 第 1 章:本版本的最新资讯 第 2 章:Siebel Business Process Designer 概述 工作流程的一般原则 15 了解工作流程过程模块 16 了解工作流程规则模块 18 工作流程角色 20 第 3 章:工作流程过程简介 工作流程体系结构概述 21 工作流程的设计时体系结构 22 工作流程的模拟体系结构 23 工作流程的部署体系结构 25 工作流程的运行时体系结构 26 与其它 Siebel 组件的工作流程交互 29 第 4 章:计划工作流程过程 为工作流程过程计划收集信息 31 了解工作流程过程要求 32 植入的工作流程过程 32 在计划工作流程过程时考虑业务对象和业务服务 33 为业务对象定义主要业务组件 33 为工作流程过程启用业务服务 33 为工作流程过程定义测试和迁移策略 34 验证工作流程规则安装 34 验证工作流程规则安装的库设置 34 验证工作流程规则安装的工作流程设置 35 第 5 章:适用于开发人员:建立工作流程过程基本知识 开发工作流程过程的概述 37 Siebel Tools 和工作流程过程 38 使用 Siebel Tools 中的过程设计器 40 关于过程设计器的设计功能 40 字段说明:“工作流程过程”子视图 41 字段说明:“工作流程过程属性”子视图 42 字段说明:“工作流程步骤”子视图 43 过程设计器调色板项目 44 关于定义工作流程参数和步骤 45 复审现有流程定义 45 定义新的工作流程过程 46 工作流程过程和流程属性的命名惯例 47 修改现有流程定义 47 教程:使用 Siebel Tools 中的过程设计器 48 第 6 章:适用于开发人员:工作流程过程步骤 关于 Siebel Tools 中的工作流程过程 OBLE 57 绘制工作流程过程图 58 定义工作流程过程的步骤细节 59 删除工作流程步骤 59 删除工作流程过程 60 复制工作流程过程 60 关于流程属性 60 流程属性与属性集 61 定义流程属性 62 级联流程属性 63 定义工作流程过程步骤的字段说明 63 字段说明:“工作流程步骤”子视图 64 字段说明:“工作流程步骤分支”子视图 65 字段说明:“编制条件标准”对话框 68 关于“开始”步骤 70 定义“开始”步骤 70 为“开始”步骤定义“下一步”分支 70 定义分支、“决策”步骤和“用户交互”步骤的条件和值 71 关于“决策”步骤 72 定义“决策”步骤 73 定义决策分支 73 关于“决策”步骤的条件和值 74 关于“业务服务”步骤 74 字段说明:“业务服务”、“子流程”步骤和“等待”步骤的输入参数 75 字段说明:“业务服务”步骤、“子流程”步骤和“Siebel 操作”步骤的输出参数 76 定义“业务服务”步骤 77 为“业务服务”步骤定义输入参数 77 为“业务服务”步骤定义输出参数 77 关于“子流程”步骤 78 定义“子流程”步骤 78 为“子流程”步骤定义输入参数 79 为“子流程”步骤定义输出参数 79 为“子流程”步骤定义接收者 79 字段说明:“工作流程步骤接收者”子视图 80 字段说明:“子流程”子视图 81 关于“Siebel 操作”步骤 81 定义“Siebel 操作”步骤 82 定义“Siebel 操作”步骤的字段 82 定义 Siebel 操作搜索规范 83 定义“Siebel 操作”步骤的输出参数 83 字段说明:搜索规范 84 更新基于多值组的字段 85 关于“等待”步骤 85 定义“等待”步骤 85 关于“用户交互”步骤 86 定义“用户交互”步骤 87 定义“用户交互”的“下一步”分支 87 关于“用户交互”的“下一步”分支的条件和值 88 创建具有流程属性的替代视图名称 88 关于“停止”步骤 88 定义“停止”步骤 89 定义“停止”步骤的输入参数 89 关于“结束”步骤 90 定义“结束”步骤 90 第 7 章:适用于开发人员:了解如何设计工作流程过程 关于工作流程处理模式 93 关于 7.0 工作流程过程 94 关于长期运行的工作流程过程 94 关于交互工作流程过程 94 关于服务工作流程过程 95 建立长期运行的工作流程过程 95 将子流程分配给最终用户以创建协作型长期运行工作流程 95 建立交互工作流程过程 96 创建合成事件按钮以控制用户导航 96 关于交互工作流程过程的挂起和恢复 101 关于视图之间的前进和后退导航 102 使用工作流程持续性 102 关于工作流程持续性 103 启用工作流程持续性 103 处理事件 103 使用运行时事件 104 使用用户事件 105 关于工作流程用户事件业务服务 105 使用用户事件业务服务来生成用户事件 106 将长期运行的工作流程过程配置为等待用户事件 107 工作流程和全局实施 107 在多语言环境下配置工作流程 107 为多语言环境下运行的工作流程定义表达式 108 工作流程中的等待步骤和全局时间计算 108 处理错误 108 使用错误流程来处理错误 109 将用户定义的流程属性和属性集传递给错误流程 109 将错误流程分配给子流程 110 使用例外来处理错误 110 定义例外 110 恢复工作流程过程 111 工作流程过程实例的自动恢复 111 工作流程过程实例的手动恢复 111 调用工作流程过程 112 关于调用工作流程过程 112 从工作流程规则中调用工作流程过程 113 从脚本中调用工作流程过程 113 示例:从对象管理器中的脚本调用工作流程 114 示例:从脚本中调用工作流程以将字段值传递给流程属性 114 从运行时事件中调用工作流程过程 115 作为已配置的业务服务调用工作流程过程 116 在“工作流程过程管理器”中运行工作流程过程 117 在“应用程序对象管理器”中运行工作流程过程 118 在批处理模式下运行工作流程过程 118 第 8 章:适用于开发人员:测试工作流程过程 使用过程模拟器测试工作流程过程 121 关于过程模拟器和支持的模拟模式 122 使用验证工具来纠正工作流程过程中的错误 123 运行过程模拟器 124 测试涉及服务器组件的工作流程 125 第 9 章:适用于管理员:管理工作流程过程 关于部署工作流程过程 127 部署工作流程过程 128 将工作流程过程部署到移动客户机 129 限制移动客户机传送 129 在地区节点上部署工作流程过程 129 将工作流程过程从开发环境迁移到生产环境 130 导入或导出流程定义 130 在运行时客户机中管理工作流程过程 131 激活工作流程过程 132 停止工作流程过程实例 132 删除工作流程过程实例 132 从日志中清除工作流程过程实例 133 监控工作流程过程实例 133 关于工作流程过程监控 133 关于流程监控级别 134 设置监控级别 135 工作流程过程疑难解答 136 关于追踪和事件日志级别 136 提高工作流程管理服务器组件的追踪级别 136 Siebel 应用程序响应管理 (Siebel ARM) 137 Siebel 飞行数据记录器 (FDR) 文件 138 第 10 章:工作流程规则 关于计划工作流程规则 139 计划工作流程规则组 140 计划工作流程规则 140 在计划规则时确定要监控的内容 140 计划规则和条件 141 计划工作流程规则行为 141 计划工作流程规则的方案:30% 以上折扣通知 142 计划工作流程规则的方案:大量已打开的服务请求通知 143 定义工作流程规则的测试和迁移策略 144 关于创建工作流程规则 144 关于“工作流程规则”视图 144 定义工作流程规则行为 145 关于“工作流程规则行为”视图中的“行为”子视图 145 关于“工作流程规则行为”视图中的“参数”子视图 146 使用“发送寻呼”程序类型 146 使用“发送消息”程序类型 147 使用“消息广播”程序类型 147 使用“运行外部程序”程序类型 148 使用“数据库操作”程序类型 149 关于“接收者”子视图 150 创建工作流程规则行为 151 工作流程规则行为示例:创建“发送寻呼”行为 151 工作流程规则行为示例:创建带重复消息的“发送电子邮件”行为 152 工作流程规则行为示例:创建“发送消息广播”行为 154 工作流程规则行为示例:创建“数据库操作”行为 154 工作流程规则行为示例:创建“运行外部程序”行为 155 创建工作流程规则组 157 关于“工作流程组”子视图 157 关于“工作流程规则”子视图 158 创建工作流程规则 158 关于“规则列表”子视图 160 关于“条件”子视图 161 关于“行为”子视图 164 工作流程规则示例:创建“发送寻呼”工作流程规则 164 工作流程规则示例:创建“发送电子邮件”工作流程规则 165 关于使用 Siebel Tools 定制工作流程规则 166 Siebel Tools 和工作流程规则 166 工作流程规则视图中的 Siebel Tools 定义 167 关于工作流程规则对象 168 创建工作流程规则对象 168 工作流程规则和 Siebel Tools 视图 169 关于“工作流程规则列列表”视图 170 根据外键配置工作流程条件 171 关于“工作流程规则对象列表”视图 171 关于“工作流程规则组件列表”视图 172 关于“工作流程规则组件列”视图 173 定义工作流程规则列 174 定义工作流程规则组件 175 定义工作流程规则对象 175 修改规则列名称 176 在工作流程规则对象中添加规则列 176 将列与工作流程规则组件相关联 176 关于 Siebel Tools 中的验证工具 177 修改现有工作流程规则对象 177 关于工作流程规则程序 179 关于“程序列表”视图 179 关于“工作流程规则程序参数列表”视图 180 创建工作流程规则程序 183 创建工作流程规则程序参数的示例:发送商机电子邮件 184 为工作流程规则程序参数创建 SQL 语句 185 关于预定义的工作流程规则程序 185 使用预定义工作流程规则程序的示例:将服务请求结束日期更改为今天 185 使用预定义工作流程规则程序的示例:更改服务请求所有者 186 使用预定义工作流程规则程序的示例:将服务请求所有者更改为经理 187 使用预定义工作流程规则程序的示例:发送报价寻呼 188 使对象类型可在 Siebel 客户机中使用 189 关于工作流程规则服务器管理 189 创建数据库触发器 189 关于数据库触发器和数据库管理 190 运行生成触发器 190 运行 SQL 脚本文件 191 关于数据库触发器和远程用户 192 为电子邮件管理器设置 Siebel 服务器 192 将通讯资料设置为通过工作流程发送电子邮件 192 启动电子邮件管理器 193 为寻呼管理器设置 Siebel 服务器 194 电子邮件和寻呼管理器疑难解答 196 使用工作流程监控代理执行工作流程规则 197 使用工作流程监控代理 198 使用工作流程行为代理 203 使用 Siebel 服务器自动启动“工作流程代理”流程 204 关于工作流程规则和 Siebel 服务器任务追踪文件 204 在 Siebel 服务器管理中查看追踪文件 205 在 Siebel 服务器日志目录中查看追踪文件 205 关于追踪和事件日志级别 205 关于工作流程规则分析图表和报表 205 使用规则频率或趋势分析图表 206 使用工作流程规则报表 206 关于工作流程规则和 Siebel Marketing 206 使用工作流程规则程序执行商业活动 206 使用“发送商业活动电子邮件”工作流程规则程序 207 使用“创建电子邮件活动”工作流程规则程序 207 使用“分配给商业活动”工作流程规则程序 207 使用工作流程规则创建市场商业活动的方案 208 关于测试工作流程规则 211 测试新规则并监控结果 211 工作流程规则疑难解答 212 工作流程规则和追踪 213 将规则迁移到生产环境 213 预定义的程序 213 第 11 章:Siebel Workflow 参考资料 Siebel Workflow 术语 216 预定义的业务服务 218 对外通讯管理器业务服务 218 同步分配管理器请求业务服务 218 服务器请求业务服务 219 “工作流程工具”业务服务 221 在工作流程内传入和传出参数以及工作流程内部的数据处理 222 在工作流程内部处理数据 222 使用“工作流程过程管理器”业务服务在工作流程中传入和传出参数 224 脚本示例:以编程方式调用工作流程和构建输入属性集 225 脚本示例:为输入属性集定义属性集 225 脚本示例:构建属性集 225 脚本示例:将属性和子属性集汇编到输入属性集中 226 脚本示例:调用“工作流程过程管理器”业务服务并向其传递输入属性集 226 将参数从工作流程传递给全局变量(资料属性) 226 在工作流程过程中使用表达式 227 使用时间戳参数 227 索引
内容概要:本文提出了一种基于非合作博弈理论的居民负荷分层调度模型,并结合双层鲸鱼优化算法(Two-level Whale Optimization Algorithm)进行高效求解,模型与算法均通过Matlab代码实现。研究针对电力系统中居民侧用电负荷的复杂调度问题,引入非合作博弈机制刻画各用户之间的利益竞争关系,实现负荷的分层优化分配;同时设计双层优化架构,上层优化资源配置,下层模拟用户自主决策行为,提升了模型的实用性与合理性。通过智能优化算法求解多层级、非凸非线性的博弈模型,有效提高了调度方案的收敛性与全局寻优能力,适用于现代智能电网中的需求侧管理与能源优化场景。; 适合人群:具备电力系统基础理论知识和Matlab编程能力,从事智能电网、能源优化调度、需求侧管理、博弈论应用等方向的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于居民区电力负荷的分层优化调度系统设计与仿真分析;②为非合作博弈在多主体能源系统建模中的应用提供方法论支持;③利用双层鲸鱼算法解决具有嵌套结构的复杂双层优化问题,提升求解效率与调度方案的可行性。; 阅读建议:建议读者结合提供的Matlab代码深入理解模型构建逻辑与算法实现流程,重点关注博弈模型的效用函数设计、纳什均衡求解思路以及双层优化结构的迭代机制,宜配合实际用电数据开展复现实验以验证模型有效性与鲁棒性。
内容概要:本文围绕基于自适应神经模糊推理系统(ANFIS)智能控制器的可再生能源微电网功率管理系统展开研究,结合Simulink仿真实现,深入探讨了微电网中功率的智能调控与经济机组组合调度问题。通过引入ANFIS控制器,有效应对风能、光伏等可再生能源出力的波动性与不确定性,提升系统运行的稳定性与电能质量。研究内容涵盖微电网多源协调控制策略、功率平衡管理、优化调度模型构建及仿真验证,实现了对分布式电源、储能系统和负荷的协同优化,兼顾经济性与可靠性目标,并通过仿真平台验证了所提方法的有效性与优越性。; 适合人群:具备电力系统、自动化或新能源相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网能量管理、智能控制、能源优化等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高比例可再生能源接入场景下的微电网能量管理系统研发与教学实践;②为实现微电网功率稳定控制与经济高效运行提供先进的智能控制解决方案;③支撑高水平学术论文复现、科研课题攻关及实际工程项目的仿真验证与方案优化。; 阅读建议:建议结合提供的Simulink模型与相关代码进行动手实践,重点关注ANFIS控制器的设计流程、规则库构建与参数调优方法,并通过与传统PID或MPC控制策略的对比实验,深入理解其在动态响应与鲁棒性方面的优势。同时可进一步拓展文中提出的优化调度逻辑,应用于多目标、多约束的复杂实际应用场景中。
内容概要:本文档聚焦于“直流电机双闭环控制Matlab仿真”,系统阐述了基于Matlab/Simulink平台实现直流电机双闭环控制系统(主要包括速度环与电流环)的设计与仿真全过程。通过构建直流电机的数学模型,结合PI控制器进行调控,实现对电机转速和电枢电流的高精度动态控制,验证控制策略的稳定性与响应性能。文档详细介绍了仿真模型的搭建流程、关键参数的整定方法、系统动态波形的分析手段以及仿真结果的有效性验证,体现了经典自动控制理论在实际电机系统中的工程应用,是电机控制与电力电子技术相结合的典型研究案例。; 适合人群:具备自动控制原理、电机与拖动基础、电力电子技术和Matlab/Simulink仿真能力的电气工程、自动化、机电一体化等专业的本科生、研究生及从事电机驱动系统研发的工程技术人员。; 使用场景及目标:①作为高校课程设计或实验教学材料,帮助学生深入理解双闭环调速系统的工作机理与工程实现;②服务于科研项目,为新型电机控制算法(如滑模、模糊PID等)的开发与性能对比提供基础仿真验证平台;③作为工业界产品前期设计的仿真工具,用于评估不同控制策略在动态响应、抗干扰能力和稳态精度方面的可行性。; 阅读建议:建议读者在学习过程中紧密结合自动控制理论知识,亲手在Simulink环境中搭建完整的双闭环仿真模型,通过反复调整PI控制器的比例与积分参数,观察并分析转速、电流的阶跃响应曲线,从而深刻理解反馈控制的本质、系统稳定性条件以及参数整定对动态性能的影响,进而掌握电机控制系统的设计精髓。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值