01第2部分 流程开发与维护.docx
- 文档编号:26143464
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:71
- 大小:1.47MB
01第2部分 流程开发与维护.docx
《01第2部分 流程开发与维护.docx》由会员分享,可在线阅读,更多相关《01第2部分 流程开发与维护.docx(71页珍藏版)》请在冰豆网上搜索。
01第2部分流程开发与维护
目录
3SCE外部接口使用介绍3-1
3.1访问自定义表的数据库接口3-2
3.2访问SQL语句接口3-2
3.3动态库函数接口3-4
3.4存储过程接口3-5
3.5COM/DCOM接口3-6
3.6客户端通讯接口3-7
3.6.1IVR等待客户端启动3-7
3.6.2IVR第一次主动向客户端通讯3-9
3.6.3IVR再次向客户端发送请求消息3-11
3.7座席与自动流程数据交换接口3-11
4业务流程开发与维护4-1
4.1一个简单流程开发实例4-2
4.1.1需求描述4-2
4.1.2功能分析4-2
4.1.3流程开发4-2
4.1.4流程调试4-10
4.1.5文档编写4-10
4.2开发业务流程的基本准则4-11
4.2.1模块化4-11
4.2.2规范化4-12
4.2.3可读性4-12
4.2.4通用性4-12
4.2.5可维护性4-13
4.2.6流程管理规范化4-14
4.2.7设计过程需注意的其它问题4-15
4.3业务流程设计过程4-15
4.3.1需求分析4-15
4.3.2功能分析4-15
4.3.3通用及扩展性分析4-15
4.3.4接口定义4-16
4.3.5提示音定义4-16
4.3.6复合Cell分析及开发4-16
4.3.7流程详细编码4-16
4.4业务流程的查错及纠错4-16
4.4.1复合Cell错误4-16
4.4.2编译错误处理4-17
4.4.3编译警告处理4-17
4.4.4对特定Cell接续的查错4-17
4.5业务流程的运行调试4-18
4.5.1调试功能概述4-18
4.5.2调试方式设置4-20
4.5.3设置调试环境4-20
4.5.4局部接续调试4-20
4.5.5呼出流程调试4-21
4.5.6电话拨入、座席启动、客户端启动流程调试4-21
4.5.7流程调试实例4-21
4.6业务流程的文档4-29
4.6.1文档的类型4-29
4.6.2文档的内容4-29
4.6.3文档的编写4-29
4.7业务流程的维护4-30
4.7.1流程升级4-30
4.7.2版本兼容性维护4-30
4.7.3文档维护4-31
4.7.4有关文件说明4-31
4.8流程开发的常见问题及经验总结4-33
4.8.1初学者可能遇到的问题4-33
4.8.2运行SCE程序失败原因分析4-36
4.8.3人工自动互转分析4-37
4.8.4启动IVR业务流程几种模式4-38
4.8.5案例分析4-40
插图目录
图3-1访问SQL语句编辑对话框3-3
图3-2动态库函数编辑对话框3-4
图3-3存储过程SIB编辑对话框3-5
图3-4COM/DCOM编辑对话框3-7
图3-5IVR映射客户端启动IVR流程的消息包3-8
图3-6IVR响应客户端之前组包接续3-8
图3-7IVR响应客户端3-9
图3-8IVR第一次向客户端发送请求消息之前组包接续3-9
图3-9IVR第一次向客户端发送请求消息3-10
图3-10IVR等待客户端响应3-10
图3-11IVR收到客户端响应之后拆包接续3-10
图3-12IVR取座席发送的消息包3-12
图3-13IVR分解映射座席发送的消息包3-12
图4-1呼叫应答和收一位号4-3
图4-2收一位号复合Cell参数绑定4-4
图4-3播报字符串音4-4
图4-4运算Cell参数4-5
图4-5比较Cell参数4-6
图4-6复合Cell第1部分4-6
图4-7超次退出复合Cell参数绑定4-7
图4-8复合Cell第2部分4-8
图4-9复合Cell第3部分4-8
图4-10超次退出连接处理4-9
图4-11三次退出复合Cell参数4-9
图4-12流程最后部分4-10
图4-13业务流程管理工作目录树4-14
图4-14调试设置对话框4-19
图4-15进入调试之前的流程4-22
图4-16调试初始界面4-23
图4-17单步执行界面4-24
图4-18进入复合Cell内部界面4-25
图4-19浏览下层轨迹的示意图4-26
图4-20设置断点4-27
图4-21系统在断点处等待4-28
图4-22资源连接Cell示意图4-33
图4-23资源连接Cell参数示意图4-34
表格目录
表4-1各目录下存放的文件列表4-14
表4-2SCE主菜单的[调试]菜单下的各个菜单项及其功能4-18
3SCE外部接口使用介绍
关于本章
本章描述内容如下表所示。
标题
内容
3.1访问自定义表的数据库接口
介绍了SCE提供的访问自定义表的数据库接口的使用方法。
3.2访问SQL语句接口
介绍了SCE提供的访问SQL语句接口的使用方法。
3.3动态库函数接口
介绍了SCE提供的动态库函数接口的使用方法。
3.4存储过程接口
介绍了SCE提供的存储过程接口的使用方法。
3.5COM/DCOM接口
介绍了SCE提供的COM/DCOM接口的使用方法。
3.6客户端通讯接口
介绍了SCE提供的客户端通讯接口的使用方法。
3.7座席与自动流程数据交换接口
介绍了SCE提供的座席与自动流程数据交换接口的使用方法。
3.1访问自定义表的数据库接口
访问自定义表的数据库接口完全是为了兼容与移植TopEng-168流程的需要而予以保留,它包括“记录查询”、“记录更新”、“记录插入”及“记录删除”四种基本操作,具体可参见“第三部分基本Cell”中的有关章节,本节不再重复介绍有关内容,只给出以下几点说明:
●定义的数据库表字段若定义为字符串型,提倡用varchar类型(TopEng-168不受此限制)。
●在一次访问中同时操作数据库表的字段数目可以超过19个(TopEng-168平台受此限制)。
●可以将他人开发的数据库表的描述文件加入到当前数据库文件中(即将t.db文件加入到DBINFO.DAT,TopEng-168平台未提供此功能)。
●数据库表的字段名称可以与数据库中不一致,但序号及字段的数据类型绝对不能改变(即不能轻易改变数据库表的结构,实际表结构应与SCE平台定义的结构保持一致)。
●调用“记录查询”SIB,必须绑定至少一个返回参数(TopEng-168平台可不绑定)。
●所有四种基本SIB返回的成功出口均代表数据库服务器已操作成功(TopEng-168平台只有“记录查询”满足,其它三种都只代表提交成功)。
●若数据库表的定义改变或损坏丢失DBINFO.DAT数据库文件,将无法编译访问该表的流程文件。
●在开发新的业务流程时建议少使用自定义表的数据库访问方式。
3.2访问SQL语句接口
关系数据库提供的标准的SQL语句(如Sybase及SQLServer的T-SQL,Oracle公司提供的P/LPlusSQL等)为流程访问数据库提供了极大的便利。
访问SQL语句的编辑对话框如图3-1所示。
图3-1访问SQL语句编辑对话框
使用说明:
●SQL语句填写时输入输出变量都已格式化,对输入参数可直接用“#”关键字标识,对输出参数直接在输出字段名前加“?
”关键字标识。
●流程必须绑定所有的输入输出变量,绑定顺序按照在SQL语句中出现的关键字类别顺序进行。
●SQL语句可以换行。
●可以进行表的创建及删除等非查询SQL语句的扩展操作。
●select操作不返回结果集,只根据有无记录返回成功或失败。
●建议不要用本接口调用存储过程(因提供专门访问存储过程接口)。
●与“下一条记录”SIB配合可以依次取出多结果集中查询的数据。
●若SQL语句所占用的执行时间过长,必须在调用SQL语句前调用“延迟时间”SIB来延长IVR等待时间。
缺省情况下,延迟时间置为6秒。
●SQL语句访问的数据源必须在配置台配置,可以通过OCI等接口访问。
3.3动态库函数接口
对于有特殊需求的业务流程,利用已提供的SIB难以实现某些接续,此时必须考虑利用动态库或COM/DCOM(ComponentObjectModel/DistributedComponentObjectModel)技术予以实现。
例如:
话费清单传真,由于流程无法生成传真文件,必须通过动态库实现。
另外对于短讯发送,也必须通过动态库函数实现。
动态库函数SIB的编辑窗口如图3-2所示。
图3-1动态库函数编辑对话框
使用说明:
●流程中尽量少用动态库函数,因为动态库函数本身会影响IVR的稳定性。
●功能调用所描述的函数必须与提供的动态库函数原型相一致。
●对于整数或浮点数的输出参数,函数原型必须定义为指针(提供的原型定义可以为指针引用调用)。
●对于一个字节参数,函数原型中应定义该参数类行为Char,若该参数为返回值,其类型必须定义为Char。
●流程无法访问数组,因此动态库函数不能提供数组及结构访问数据类型。
●流程只能根据动态库函数return返回值作为流程出口,其中至少要求两个出口,第一个出口返回0(即return0),第二个是默认的失败出口。
若有多个返回值,则必须建立多个出口,例如:
返回0或3,则必须建立0、1、2、3共4个出口。
每次只能走一个出口。
●必须加载动态库函数,否则无法加载业务流程。
●建议将动态库函数拷贝在系统的SystemM32目录下。
●动态库函数必须充分测试,否则将影响IVR业务平台的稳定性,严重者将使IVR运行的线程掉死或崩溃。
●开发动态库最好用与开发IVR平台采用相同的语言版本,否则可能导致语言本身的兼容性问题。
3.4存储过程接口
流程中大量用到存储过程接口,调用存储过程比访问SQL及动态库函数相对容易。
ICD2.0IVR/SCE平台提供了一个存储过程接口(存储过程Cell,具体请参见“第三部分基本Cell”)。
图3-3是推荐使用的存储过程接口,它的缺点是某个参数既可以作为输入参数又可以作为输出参数;存储过程另外一个缺点是不能动态增删参数,这会给将来的维护带来难以想象的负担,因此在实际流程很少见到使用(除非存储过程有的参数非定义为输入/输出)。
ICD3.0IVR/SCE版本中提供了与下面具有相同界面及操作方式的存储过程,它兼容了以前版本的存储过程,这里只针对图3-3存储过程接口进行说明(其余接口相似)。
图3-1存储过程SIB编辑对话框
使用说明:
●“存储过程”SIB的成功出口只代表向数据库服务器提交成功,不代表存储过程执行结果正确。
●若想判断存储过程调用是否成功(或符合要求),必须定义一个ret返回参数来标识执行状态,一般可定义为tinyint一字节整数,ret=0代表成功,当然若还有其它返回值,可依次为ret=1、ret=2。
●对Sybase或SQLServer数据库,一字节整数与数据库脚本定义应一致,但对于Oracle数据库,可将脚本定义为int;对于char或varchar数据类型的变量,在Oracle脚本中定义为varchar2或varchar。
●绑定存储过程返回的字符串参数一定要有足够的存储空间。
●存储过程无法返回多个结果集。
●若某个存储过程占用的事务过长,必须在调用存储过程前调用“延迟时间”SIB来延长IVR等待时间。
缺省情况下,延迟时间置为6秒。
●定义存储过程尽可能规范,先定义输入参数后定义输出参数。
●存储过程的变量或常量是按照存储过程脚本定义的次序依次绑定的。
●一般情况下需要判断存储过程ret返回参数来验证是否执行正确。
●存储过程访问的数据源必须在配置台配置,可以通过OCI等接口访问。
3.5COM/DCOM接口
对于由动态库函数无法满足的接续,特别是对于第三方工具软件的调用可通过COM/DCOM接口实现跨平台、跨语音操作。
由于业务流程很少利用COM/DCOM技术来搭建自己的业务,因此本节对COM/DCOM接口将只简要说明,具体情况可参见“第三部分基本Cell”中的有关章节,也可参考有关COM/DCOM相关的资料。
图3-1COM/DCOM编辑对话框
使用说明:
●具体含义请参见“第三部分基本Cell”的介绍。
●使用时必须提供相应的COM/DCOM控件。
●最好将控件拷贝至IVR(或远程机器)System32目录下。
3.6客户端通讯接口
在“第四部分2.18与客户端通讯的模板”中将详细描述客户端通讯复合Cell模板,本章只做简单的介绍。
IVR与客户端通讯必须通过CCP网络代理服务器进行,对IVR而言只有“发送请求”及“等待请求”两个SIB,存在以下几种组合应用。
3.6.1IVR等待客户端启动
IVR等待客户端启动的情况下,流程在拆包时的第一个参数为8个字节浮点数,其值等于“发送请求”中的参数“(后续包)对端句柄”,也等于“等待请求”中的参数“(后续包)对端句柄”,此后所有通讯均可以此为依据(当然客户端需要知道IVR的句柄信息)。
●IVR被启动后需要调用“发送请求”SIB来响应对端客户端的消息,可以立即响应,也可以根据接续需求延迟响应。
●拆分客户端的消息包时,必须在应用层协议的基础上加上多出的两个变量,第一个变量为8字节浮点数的对端句柄,第二个参数代表包的长度(包括该变量自身),当IVR调用“发送请求”SIB响应客户端之前需要组包,所组包的结构与应用层协议一致。
以下是客户端启动IVR,然后IVR响应客户端完整的接续组合:
图3-1IVR映射客户端启动IVR流程的消息包
图3-2IVR响应客户端之前组包接续
图3-3IVR响应客户端
3.6.2IVR第一次主动向客户端通讯
当IVR第一次调用“发送请求”SIB主动向客户端通讯,在拆分客户端响应包时,第一个参数为两个字节整数,用以表示包的长度,余下的才是用户定义的应用层协议。
图3-8是IVR第一次向客户端发送请求,然后等待客户端应答完整的接续组合的对话框。
图3-1IVR第一次向客户端发送请求消息之前组包接续
图3-2IVR第一次向客户端发送请求消息
图3-3IVR等待客户端响应
图3-4IVR收到客户端响应之后拆包接续
3.6.3IVR再次向客户端发送请求消息
前面讲到了客户端启动IVR、IVR等待客户端响应消息、IVR等待客户端响应以及IVR第一次向客户端发送请求消息,而IVR再次向客户端发送请求消息与第一小节IVR响应客户端消息具有完全相同的接续,这是由于在实际应用时消息包的流向是多变及复杂的,这里不再讲述。
IVR不管是发送请求还是等待客户端消息,均需要调用“数据包”SIB对应用层协议的消息包进行组合及拆分,总结起来有以下几种情况:
●IVR在向客户端发送消息之前
一般均需要调用“数据包”SIB来将消息包组合为一个缓冲区,建议使用系统参数“呼叫附加信息”(尽管有的消息包可能小于200字节)作为发包的缓冲区。
●IVR等待客户端启动
流程开始应调用“数据包”SIB拆分消息包,在拆分消息包的前面必须额外增加两个参数:
第一个参数是8字节浮点数,存放“(后续包)对端句柄”。
第二个参数是两个字节整数,其值等于包的缓冲区大小。
返回的包的缓冲区数值已包含额外增加的10个字节。
●IVR等待客户端响应
在收到响应消息包后必须调用“数据包”SIB拆分消息包,在拆分消息包的前面必须额外增加一个两个字节整数参数,其值等于包的缓冲区大小。
返回的包的缓冲区数值已包含额外增加的2个字节。
●客户端向IVR发送消息
该消息存放于IVR提供的系统参数“呼叫附加信息”缓冲区中。
●IVR向客户端发送消息的长度永远等于应用层定义的协议。
●IVR接收客户端发送的消息,其缓冲区长度比应用层协议多2或10字节。
3.7座席与自动流程数据交换接口
座席与自动流程数据交换对IVR/SCE而言相对简单,交换数据是通过调用“人工台数据”SIB来实现,而交换协议是通过调用“数据包”SIB实现的。
座席主动向IVR交换数据一般用于座席启动自动流程。
自动流程的第一个SIB必须调用“人工台数据”SIB将消息包取到一个缓冲区中,然后调用“数据包”分解座席发送的协议包,根据双方商定的协议完成相应的接续。
IVR主动向座席交换数据,一般用于自动流程路由人工队列(或指定话务员)前先交换数据。
流程首先调用“数据包”SIB组合消息包,然后调用“人工台数据”SIB设置数据,设置完以后就可以路由人工台,话务员应答后调用相应的API就可以取得IVR传送的数据包。
图3-1IVR取座席发送的消息包
图3-2IVR分解映射座席发送的消息包
4业务流程开发与维护
关于本章
本章描述内容如下表所示。
标题
内容
4.1一个简单流程开发实例
介绍了一个简单的流程开发实例。
4.2开发业务流程的基本准则
介绍了开发业务流程的基本准则。
4.3业务流程设计过程
介绍了业务流程设计过程。
4.4业务流程的查错及纠错
介绍了业务流程的查错及纠错方法。
4.5业务流程的运行调试
介绍了业务流程的运行调试方法。
4.6业务流程的文档
介绍了业务流程的文档。
4.7业务流程的维护
介绍了业务流程的维护。
4.8流程开发的常见问题及经验总结
介绍了流程开发的常见问题及经验总结。
4.1一个简单流程开发实例
4.1.1需求描述
用户拨打接入码,系统接入后提示“请输入任意一个数字键”,然后把用户输入的按键播报出来。
如果输入其它非数字键,则重复提示“请输入任意一个数字键”,超过3次输错后提示“对不起,您的限拨次数已到”并把呼叫拆掉。
4.1.2功能分析
此流程需要实现收一位号、播放提示音和数字音功能、输入错误3次判断。
2条提示音都可以定义成常用提示音,语音编码定义如下:
●NT2108:
请输入任意一个数字键
●NT2107:
对不起,您的限拨次数已到
4.1.3流程开发
流程开发的详细步骤如下:
步骤1为实现呼叫应答功能,配置“呼叫应答”Cell。
除了自启动流程和一些不需要计费的流程外,在流程的最开始处,一般都是“呼叫应答”Cell,“呼叫应答”标志着一个呼叫和应答计费的开始。
下面开始为“呼叫应答”Cell的参数绑定变量。
做一个Cell然后就绑定变量,这是个良好的习惯。
●参数1“呼叫标志”:
绑定CID区的系统参数“SSP呼叫标志”,此参数的含义是产生一个呼叫标识,来唯一标识当前时间的某个呼叫。
●参数2“附加信息”:
绑定CID区的系统参数“呼叫附加信息”。
“呼叫应答”的失败出口,一定不要加呼叫释放,而是直接结束。
步骤2为实现收号功能,配置“收一位号”复合Cell。
呼叫应答之后,就开始提示“请输入任意一个数字键”,也就是开始放音和收一位号,完成放音收一位号的功能可以做成一个复合Cell。
在通用复合Cell库里已经有这种功能的复合Cell,就是“收一位号”复合Cell,可以直接拿过来用,不用自己开发。
“收一位号”复合Cell是用VP(VoicePeripheral)台放音的,如图4-1所示。
图4-1呼叫应答和收一位号
该复合Cell各个参数的具体含义,请参见“第四部分2.4VP收一位号”中的描述,各参数的配置原则如下:
●“SSP—呼叫标志”:
绑定CID区的系统参数“SSP呼叫标志”表示放音的对象是当前的呼叫。
●“TimeOut提示音结束后最大等待时间”:
直接赋值成5,表示提示音放完后等待收号的时间为5秒。
●“note普通话提示语音”:
新建SSD区变量“NT2108:
请输入任意一个数字键”并绑定此变量,语音编码值为2108,一般像语音编码这样的公有变量都定义在SSD区。
●“LanguageType选择语言种类(0=普通话,1=英语,2本地话)”:
新建CID区变量“LanguageType选择语言种类(0=普通话,1=英语,2本地话)”并绑定此变量,表示播放语音的语种,这里用普通话赋值为0。
●“LengthInLanguage相临语言间距”:
新建SSD区变量“LengthInLanguage相临语言间距”并绑定此变量,赋值为1000,表示每种语言编码之间的间距。
●“return事件消息”:
新建CID区变量“renturn用户按键值”并绑定此变量,存放用户的按键值。
●“CallFlag(呼叫方=0,呼出方=7)”:
直接赋值为0,表示对呼叫方放音。
目前只支持对呼叫方放音,不支持对呼出方放音,要想对呼出方放音,只能通过呼叫标识来控制。
图4-2收一位号复合Cell参数绑定
步骤3为实现播报用户键值功能,配置“VP字符串”复合Cell。
放音并收号后,需要把用户的按键值播报出来,实现播报按键值的功能可以直接用通用复合Cell库中的“VP字符串”复合Cell,与“收一位号”复合Cell的1、2…9出口连接起来,如图4-3所示。
图4-1播报字符串音
●“Type(1号码,3数字,4时间,5日期,6价格,10日期时间)”:
新建SSD区变量“Type(1号码,3数字,4时间,5日期,6价格,10日期时间)”并绑定此变量,赋值为1,表示播放的字符串以号码的形式来播放。
●“LanguageType选择语言种类(0=普通话,1=英语,2本地话)”:
绑定CID区变量“LanguageType选择语言种类(0=普通话,1=英语,2本地话)”。
●“SSP—呼叫标志”:
绑定CID区的系统参数“SSP呼叫标志”。
●“Buffer缓冲区”:
绑定CID区变量“renturn用户按键值”,也就是用户的按键值。
●“CallFlag(呼叫方=0,呼出方=7)”:
直接赋值为0。
步骤4为处理其他非数字键的出口,设计一个复合Cell。
处理完“收一位号”的数字键出口,还要处理其它非数字键的出口。
按照前面的需求描述,*键、#键和收号错误这3个出口应该重复提示“请输入任意一个数字键”,并且限制3次。
实现以上功能需要一些运算和放音Cell,可以考虑开发一个复合Cell实现此功能。
此复合Cell的设计思路为:
定义一个变量,初始值为3,每进入一次复合Cell,此变量的值减1,然后判断如果此变量的值小于等于0,说明已3次调用过此复合Cell,最后提示“对不起,您的限拨次数已到”。
步骤5开发处理非数字键的复合Cell。
开发处理非数字键的复合Cell的步骤如下:
单击工具栏上“新建复合Cell”,在“开始”后添加一个“运算”Cell,为了易理解性,改名为“COUNT-1”,此Cell的参数绑定如图4-4。
图4-1运算Cell参数
“操作数1偏移”绑定局部变量“COUNT收号次数”,并赋初始值3。
“运算”Cell一般不会走失败出口,其成功和失败出口一起连一个“比较”Cell,判断变量“COUNT收号次数”是否大于0。
此Cell的参数绑定如图4-5。
图4-2比较Cell参数
如果运算结果大于0,则说明没有超次
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 01第2部分 流程开发与维护 01 部分 流程 开发 维护