流程培训课件_第1页
流程培训课件_第2页
流程培训课件_第3页
流程培训课件_第4页
流程培训课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

流程培训)2024/4/17流程培训)流程培训)平台模块流程培训)介绍提纲编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理讨论考试流程培训)编译器的安装及使用1.1绿色安装1.2菜单使用流程培训)1.2菜单的使用VIVR界面示例图流程培训)1.2菜的使用File命令的使用NewProject新建项目NewStateMachine新建状态机Newtext新建文本文件OpenProject打开项目Open打开文件Save保存文件Saveas另存为CloseProject关闭项目Print打印PrintSetup打印设置Exit退出

Edit命令的使用Alignleft(只在图形编程界面)图标左右对齐Aligntop(只在图形编程界面)图标上下对齐Undo(只在文字编程界面)撤消Cut剪切Copy复制Paste粘贴Delete删除

流程培训)1.2菜单的使用File命令的使用NewProject新建项目NewProject:选择SourceFile格式新建一个业务流程。这个project是一个将以后缀为FRM格式保存的文件。按下newproject这菜单时,程序就为你建了一个新开始的业务流程。流程培训)介绍提纲编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理习题流程培训)2.1流程文件介绍配置文件:.sc文件――流程源文件.cod文件――编译生成的可执行流程文件,输出文件,编译、构造通过后,产生的二进制文件.

.lbj文件――编译过程中产生的连接编联文件,由编译器管理

.fdp文件――项目文件,用于流程管理的项目,由编译器管理在上述的几个文件当中,只有.sc文件是我们用来编辑业务逻辑使用的,其他文件都是由编译器产生的,下面,我们再来详细研究一下.sc文件的内部结构。流程培训)#functionmain//主函数main{:stWaitConnect(0)->stExit//Adduser'scode:stExit[RETURN0]}流程培训)2.2流程源文件.sc的结构文件头说明//filename:xxx.scversion://变量规划#declare自定义变量#iniparam配置参数常量说明#define宏的定义主程序体流程培训)2.2流程源文件.sc的结构文件头说明#define<宏名><宏值> ——宏定义说明

例: 文件头中说明 #definePromptThanks2000 主程序体中 [PROMPTPrompThanks]等价于 [PROMPT2000]#iniparam<类型>@<参数常量名> ——配置参数常量说明

例:#iniparamint@DBA_ID 文件头中说明 #iniparamSTRING@UserData 主程序体中 [ASSIGNSR9,@UserData] 配置文件(后缀为.ini)中 [Parameters]DBA_ID=25 UserData=12345 则,主程序体中该语句等价于 [ASSIGNSR9,”12345”]流程培训)IVR流程ini文件里的注释,只能使用#和;不能使用//,变量内容<128个字节

编写ini文件时,下面内容定义String类型的常量,其中V41File1和V41File2的注释正确,V41File3注释错误,V41File3读入IVR时值为“Conf.v41//Conference”。

[Parameters]

V41File1=Conf.v41;Conference

V41File2=Conf.v41#Conference

V41File3=Conf.v41//Conference流程培训)2.2流程源文件.sc的结构文件头说明#declareIR<自定义变量名> ——整型自定义变量说明#declareSR<自定义变量名> ——字符型自定义变量说明#declareFR<自定义变量名> ——浮点型自定义变量说明#functionmain<定义函数名>全局变量(所有函数中可使用):例: 文件头中说明 #declareSRsTelNo #declareIRiMax=1 (初始化)局部变量(某个函数中可使用):例:

主程序中的某个函数 main { #declareIRiMax=0 :stWait … } 流程培训)2.2流程源文件.sc的结构主程序体它通常是一组函数定义的系列,每一函数定义可描述如下:函数名{ :状态1 [动作a1参数···] [动作an参数···] 事件e1

状态s1 事件e2

状态s2 N 事件en

状态sn [动作a1‘参数···] M [动作am'参数···] :状态2 同上 :状态m} 函数定义系列中的第一个函数必须是主函数(main)流程培训)流程主函数体流程培训)2.3流程的启动与结束流程的启动与结束开始状态:stWait在stWait状态下以Connect事件启动流程结束状态:stExitConnect(0)->正常Connect(2)->外呼在stExit状态下以[Return0]动作结束流程流程培训)2.4注释注释//单行注释/*…*/多行注释流程培训)2.5完成一个业务流程-注意事项注意事项为了设计图形业务流程的思路清晰,建议在作设计前画出流程图。为了便于检查,在设计图形业务流程的时候要画线清晰分明。要作好寄存器数据的规划,避免数据的冲突。有的参数要栏填写指定的数据。有的动作有事件发生,需要确定每发生一个事件的前因后果。主函数只能名为main,在开始一个业务流程的时候自动生成。在一个业务流程程序里面只能有一个主函数。子函数名不能为main,可根据子函数的意义定为其它文件名。在一个业务流程程序里面可以有多个子函数。

流程培训)介绍提纲编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理习题流程培训)3.1数值类数字运算动作divI1,I2 //把I1整除I2的值赋给变量I1modI1,I2 //把I1整除I2的余值赋给变量I1IntRandI1 //产生一个0~I1的随机整数,结果存于IR0中FloatRandI1I2//产生一个0~I1之间的随机浮点数,精确到小数点后I2位。结果存于FR0中流程培训)3.1数值类Assign赋值AssignI1,I2

功能:整数I2的赋值给变量I1

例子:[AssignIR1,93]将93赋值给IR1,运算结果是IR1等于93。

Add加AddI1,I2

功能:把整数I2的值加入到变量I1例子:[AddIR1,65]把整数65的值加入到变量IR1,若IR1原值为35,运算结果得:IR1=100。数字运算动作incI流程培训)3.1数值类Mul乘MulI1,I2

功能:乘法运算,把(I1*I2)的值赋给变量I1

例子:[MulIR1,3]若IR1等于8,把(8*3)的值赋给变量I1,即运算结果为:IR1=24。

Sub减SubI1,I2

功能:把(I1-I2)的值赋给变量I1

例子:[SubIR1,20]若IR1为30,即运算结果为IR1=10。

数字运算动作流程培训)接收按键DigitI1

接收一位话机按键,I1为最大时间(秒),接收到的字符值返回SR0,数字值返回IR0(“*”=11,“#”=12)。

结束时产生事件:

StopDigits(‘值’)——正常收号结束

TimeOut——超时没有收到按键InputI1,I2

接收多位话机按键,I1为按键位数,I2为最大时长(秒),接收到的字符返回SR0。按键位数最多31位。

结束时产生事件:

StopDigits(‘值’)——正常收号结束,或收到一个终止按键。

TimeOut——超时没有收到规定长度的按键流程培训)3.2字符类字串运算动作

ParseParamS1,I1,S2

例如:S1=”param1$param2$param3$param4”S2=”$”

[ParseParamS1,2,”$”]取出第二个参数param2。StrLTrimS1 例如:[AssignSR1,____abcd][StrLTrim,SR1]去掉SR1中字符串“___abcd”左边的空格,即得字符串:“abcd”。

流程培训)3.2字符类字串运算动作StrSubS1,I1,I2

(取子串)例如:[StrSubabcdefghijk,3,6]取字串abcdefghijk在第3个字符开始到第6个字符,即取得字符串cdef存入SR0中。

StrCatS1,S2

(连接字符串)例如:[ASSIGNSR1abc][StrCatSR1,def]先赋值给SR1,SR1=abc,相联“abc”和“def”,得到字符“abcdef”存于SR1中。

流程培训):stPlayPrompt [ClearDTMF] [SETDTMF"?"] [ASSIGNSR1,"..\vox\fee\"] [STRCATSR1,$caller][STRCATSR1,vox] [PLAYFILESR1] StopPlayBack->stEnableAccount DialTerminate->stEnableAccount Failed->stEnableAccountstPlayPrompt [ClearDTMF] [SETDTMF"?"] [ASSIGNSR1,"..\vox\fee\"] [STRCATSR1,SR0][STRCATSR1,vox] [PLAYFILESR1] StopPlayBack->stEnableAccount DialTerminate->stEnableAccount Failed->stEnableAccount流程培训):stGetNowTime //取系统当前时间 [AssignIR1,1] [NowTime] [AssignIR2,IR0] [TimeToStrIR0,"hms"] //把当前时间转换成“YYYYMMDD123456”形式 [AssignSR2,SR0] [StrSubSR2,9,12] //去掉“YYYYMMDD” [AssignSR2,SR0] //SR2:hhmmss [TimePartIR2,7] //按I2指定的类型,取I2表示的时间的相应部分,返回值为星期(0-6) [EqualIR0,0] //判断星期几 Passed->stSetIR0 Failed->stGetNowTime1流程培训)3.2字符类字串运算动作StrLenS1

(取字串长度)例如:[StrLenabc]取得字符串abc的长度为3,将长度3存于IR0中。

StrRightS1,I2

(取字符串右侧子串)例如:[StrRightabc,2]取得字符串abc右边2个字串,将字串bc存于SR0中。流程培训):stInput1[SETDTMF"#"]//输入取消号码[input7,15]StopDigits('#')->stCheckStopDigits->stCheckTimeOut->stCheckFailed->stCheck:stCheck[ParseParamSR0,1,"#"][Assignid,SR0] //取消的ID号码[StrLenSR0][CASEIR0]//ID为6位CASE(6)->stunregCASE->stqx流程培训)邮箱管理动作邮箱管理动作例子流程培训)MakeCall200S1,S2,S3产生一个类似200业务的呼叫。S1为被叫号,S2为主叫号,S3为自定义数据字串。系统变量$Called改为S1。CallTerm(0)--被叫应答,成功CallTerm(1)--无人接CallTerm(2)--被叫市话忙CallTerm(3)--被叫长话忙(呼出失败)CallTerm(4)--拥塞CallTerm(5)--空号CallTerm(-1)--其他情况3.3呼叫控制类流程培训)3.3呼叫控制类EnableCall发程控计费应答信号EnableCall I1

如果流程是应答流程,且在之前执行[AnswerCall0]不计费的动作,执行此动作开始计费,否则不应执行此动作。

含意:I1=1发应答不计费信号 I1=0发应答计费信号

BillBegin启动计费BillBeginI1I2S3I1为计费方式(0:不计费;1:按主叫;2:按被叫;3:按原主叫;4:按账号;5:按计费号码;6:按原被叫);I2是否计算可打时长(按帐号计费时用),0:否;1:是,如果需计算可服务时长,结果存放在IR0中(-1表示没有限制);S3为服务项目编码,一般情况下应该为系统变量$ServiceItemNo。流程培训)3.4播放语音MixPlayI1,S2根据语种播放合成音。将S2合成I1所指定的类型播放,即根据语种自动合成语音播放。如果字符串格式不对或者值超出范围,播放的提示音将不可预料.I1=1合成金额(最后两位为角分,不能带有小数点)I1=2合成数字(对于英文,值的范围需在整数值范围之内;对中文,最多20位)I1=3合成字符I1=4合成日期时间I1=5合成数字(可以有带小数点)I1=6合成金额(小数点后两位为角分)I1=7合成金额(小数点后三位为角分厘)PlayFileS1 playttsSR1播放语音文件,S1为文件名。

结束时产生以下事件:

StopPlayBack——正常放音结束

DialTerminate——放音被按键打断

Failed——失败(一般为文件不存在)流程培训)3.6数据库访问

SwitchDBAI1(产生的事件passed,failed)ExecSQLS1执行SQL命令,S1为要执行的命令字符串

完成后产生事件:

Passed——成功

Failed——失败流程培训)字段名

内容

PDA_ID动作参数中用到的自定义的索引值,自定义一个唯一的数值即可。

PDA_DESCRIPTION

注释

PDA_TABLE_NAME数据表名或存储过程名称

PDA_VALUE_NAME字段函数名,需操作的字段用逗号分隔。

PDA_CONDITIONselect、update、delete使用该字段存储的信息作为查询条件,若为存储过程,存放参数的input,output属性。按参数顺序,input参数填入"in",output参数填入"out",两个参数间用逗号分隔。

PDA_USABLEFLAG可用标志,使用时填1,否则填0。

PDA_RESERVERDinsert、update和procedure操作必须在保留字段中定义字段(或参数)类型,而select,delete,execute_sql不使用保留字段。定义形式为:X,X,X(p,s),X(n)...X-单个字母,表示类型,目前支持的类型包括:C--char,varchar,datetimeN—numeric,int,float

DBINTERFACE表的字段流程培训)3.6数据库访问数据库访问动作SwitchDBAI1切换DBA模块,I1为DBA模块的通讯站号完成后产生事件:

Passed——成功

Failed——失败(与新的DBA模块未能连上,检查通讯配置)

流程培训)3.6数据库访问数据库访问例子

main{:stWait Connect->stExecSQL:stSwitchDBA [SwitchDBA@dbaid] //切换DBA Passed->stExecSQL Failed->stExit:stExecSQL[AssignSR1,"insertintofax_send_record(filename,nowtime,device1,device2,result)values('oldfile','2001-01-01','4081','3866','Example')“] [ExecSQLSR1] Passed->stDelete Failed->stExit

TimeOut->stExit:stExit [Return0]}流程培训)3.6数据库访问数据库访问动作FirstDB

在检索记录(SelectDB)完成之后在有多条记录返回时执行该动作将把当前数据表指针指向第一条返回记录,同时FD0~FD29的结果值作相应修改。

完成后产生事件:

Passed——成功

Failed——失败流程培训)3.6数据库访问数据库访问动作NextDB

在检索记录(SelectDB)完成之后有多条记录返回时执行该动作,将把当前数据表指针指向下一条记录,同时FD0~FD29的值相应修改。

完成后产生事件:

Passed——成功

Failed——失败流程培训)3.6数据库访问流程培训)3.6数据库访问数据库访问动作PriorDB

在检索记录(SelectDB)完成之后有多条记录返回时执行该动作,将把当前数据表指针指向上一条记录,同时FD0~FD29的值相应修改。

完成后产生事件:

Passed——成功

Failed——失败流程培训)3.6数据库访问数据库访问动作LastDB

在检索记录(SelectDB)完成之后在有多条记录返回时执行该动作将把当前数据表指针指向最后一条记录,同时FD0~FD29的值将相应修改。

完成后产生事件:

Passed——成功

Failed——失败流程培训)介绍提纲编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理习题流程培训)4.1系统变量系统变量与流程相关的系统变量。如:$ServiceType、$FlowType、$InputParam、$OutputParam。与呼叫相关的系统变量。如:$CallerID、$Device1、$Device2、$Device3与数据库访问相关的系统变量。如:$DBRecCount、$DBFieldCount。与认证计费相关的系统变量。如:$AccountID、$Password。$BillStartTime流程培训)$DBKEY1$DBKEY2$DBKEY3$DBKEY4$DBKEY5$DBKEY6是给流程访问数据库可给定的一个关键字,可以修改DBINTERFACE使用流程培训)$PARAM1流程培训)4.2系统寄存器变量是其值可以改变的。流程语言定义的变量有:IR0~IR29: 整型变量,流程里可以用它来存贮一些中间值或最终结果SR0~SR29:字串型变量,流程里可以用它来存贮一些中间值或最终结果,最大长度为2K。FR0~FR29:浮点变量,流程里可以用它来存贮一些中间值或最终结果FD0~FD29:字串型变量,它与数据当前操作的表中的字段是一一对应,可以从数据库表中读取记录存入这些变量,对这些变量修改后可以存回数据库修改相应的记录。最大长度为2K。

流程培训)4.3自定义变量全局变量必须在第一个函数体之前定义,格式如下:整型变量:#declareIRint_var浮点变量:#declareFRfloat_var字符串变量:#declareSRstring_var局部变量必须在每个函数体内第一个状态之前定义,格式如下main{#declareIRint_var#declareFRfloat_var#declareSRstring_var:stWait …}全局变量和局部变量可以有初始化值,格式如下:#declareIRint_value=10#declareSRint_value=”string”#declareFRfloat_value=123.45流程培训)4.4INI文件里变量的使用程序不支持一个动作的多个参数同时用INI变量。如果想在一个动作中使用多个INI中定义的变量,请先用寄存器存放各个变量,再把对应寄存器作为参数放到动作中.详细说明如下:在流程的INI中定义了几个参数,提供流程运行时读取时,如:

[Parameters] Caller=160 Called=119 ToStr=160$$$$$$$$$$$$$$

如果流程写成以下形式将出错: [MakeCall200@Caller,@Called,@ToStr] 执行时会变成:<MakeCall200>caller=160$$$$$$$$$$$$$$,called=160$$$$$$$$$$$$$$,userdata=160$$$$$$$$$$$$$$

应改成以下形式(先将参数赋给寄存器)

[AssignSR0,@Caller] [AssignSR1,@Called] [AssignSR2,@ToStr] [MakeCall200SR0,SR1,SR2] ......流程培训)介绍提纲编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理习题流程培训)5.1数据库访问例子根据主叫号码查询话费(单条记录返回,数据库查询,合成音播放)流程培训)5.2计费例子流程中拨报费率提示音的时候不收通信费,不收信息费。拨报完成后需要等待3妙,开始发出通信计费信号,信息费计费信号。

例:

main{:stWait connect->stallocresource:stallocresource [allocmediadevice1]//申请媒体资源 allocresourceok->stfee allocresourcefail->stExit:stfee [playfile"H:\flow\fee\2.vox"] //拨报费率提示音 stopplayback->stimer dialterminate->stimer failed->stimer:stimer [timer3]//等待3妙 timeout->stsetmandarin:stsetmandarin [enablecall0]//通信费信号 [billbegin1,0,$serviceitemno]//信息费信号 verify(0)->stWelcome verify(-1)->stExit……

流程培训)5.3预拨号预拨号流程流程培训)5.4存储过程假设有一存储过程如下所示:createprocedurePROC_201UPDATEBALANCE(@Balancevarchar(8), --流程用上面SELECT语句得出的本账号余额后与转移账号相加后的数值。@AccountID1varchar(12),--转移账号@AccountID2varchar(12), --原账号@Balance1varchar(8)) --原账号认证时的金额asbeginUPDATEACCOUNTDATASETAD_BALANCE=Convert(Numeric(8,2),@Balance)WHEREAD_ACCOUNTID=@AccountID1ANDAD_ACCOUNTKIND=201ANDAD_ACCOUNTSTATUS=1UPDATEACCOUNTDATASETAD_BALANCE=0,AD_ACCOUNTSTATUS=2WHEREAD_ACCOUNTID=@AccountID2ANDAD_ACCOUNTKIND=201ANDAD_ACCOUNTSTATUS=1INSERTINTOACCOUNTTRANSVALUES(@AccountID1,201,1,@AccountID2,Convert(Numeric(8,2),@Balance1),getdate())INSERTINTOACCOUNTTRANSVALUES(@AccountID2,201,2,@AccountID1,Convert(Numeric(8,2),@Balance1),getdate())end设置用于调用时,需在表DBINTERFACE中登记:insertintoDBINTERFACEvalues(100,'','PROC_201UPDATEBALANCE','','in,in,in,in',1,'C,C,C,C')而在IVR中动作为: [ASSIGNFD0,SR0] //输入的参数在FD0~FD9中 [ASSIGNFD1,SR8] [ASSIGNFD2,SR1] [AssignFD4,$CALLERID] [ExecStoredProc100,4] //DBINTERFACE表中的存储过程编号为100,参数个数为4 Passed->stBalanceTranOK Failed->stSystemBusy DBATimeOut->stSystemBusy流程培训)5.5包月项目实现包月流程流程培训)介绍提纲编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题习题流程培训)★SP在调试流程的时候需要将项目的业务流程,技术流程,以及用到的建库脚本,存储过程,ini文件都要有详细的注释。

Sp流程规范★SP的技术流程必须是编译通过的。

★根据流程的难易度,代码的行数:1000行以上的流程只允许出现两个重大错误,小错误不允许超于3个;1000以下的流程指允许出现1个重大错误,小错误不超过2个。重大错误是指:主流程的死循环,预拨号使用不当,包月使用不当等。

★规范流程中动作的返回事

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论