资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,SUNEK,第,*,页,语音杂,志,志平台,流,流程,开,开发培,训,训指南,1,2,平台模,块,块,3,介绍提,纲,纲,编译器,的,的安装,及,及使用,完成一,个,个业务,流,流程,动作,变量,例解流,程,程开发,常见问,题,题处理,讨论,考试,4,编译器,的,的安装,及,及使用,1.1,绿,绿色安,装,装,1.2,菜,菜单使,用,用,5,1.2,菜,菜单的,使,使用,VIVR 界,面,面示例,图,图,6,1.2,菜,菜的使,用,用,File命令,的,的使用,NewProject,新,新建项,目,目,NewStateMachine新,建,建状态,机,机,Newtext,新,新建文,本,本文件,Open Project,打,打开,项,项目,Open打,开,开文件,Save保,存,存文件,Save as另,存,存为,Close Project关闭,项,项目,Print打印,Print Setup,打,打印设置,Exit,退,退出,Edit,命,命令的使,用,用,Align left(只,在,在图形编,程,程界面),图,图标左,右,右对齐,Align top(只在,图,图形编程,界,界面),图,图标上下,对,对齐,Undo(只在文,字,字编程界,面,面)撤,消,消,Cut,剪,剪切,Copy,复,复制,Paste粘贴,Delete删,除,除,7,1.2菜,单,单的使用,File,命,命令的使,用,用,NewProject,新,新建项目,NewProject:,选择SourceFile格式,新建一个,业,业务流程,。,。这个project是一,个,个将以后,缀,缀为FRM格式保,存,存的文件,。,。按下new project这菜,单,单时,程,序,序就为你,建,建了一个,新,新开始的,业,业务流程,。,。,8,介绍提纲,编译器的,安,安装及使,用,用,完成一个,业,业务流程,动作,变量,例解流程,开,开发,常见问题,处,处理,习题,9,2.1流,程,程文件介,绍,绍,配置文件,:,:,.sc,文,文件,流,流程源文,件,件,.cod,文,文件,编译生,成,成的可执,行,行流程文,件,件,输出,文,文件,编,译,译、构造,通,通过后,,产,产生的,二进制文,件,件.,.lbj,文,文件,编译过,程,程中产生,的,的连接编,联,联文件,,由,由编译器,管,管理,.fdp,文,文件,项目文,件,件,用于,流,流程管理,的,的项目,,由,由编译器,管,管理,在上述的,几,几个文件,当,当中,只,有,有.sc,文,文件是我,们,们用来编,辑,辑业务逻,辑,辑使用的,,,,其他文,件,件都是由,编,编译器产,生,生的,下,面,面,我们,再,再来详细,研,研究一下.sc文,件,件的内部,结,结构。,10,#function main/,主,主函数,main,:stWait,Connect(0)-stExit,/Add userscode,:stExit,RETURN0,11,2.2,流程源文,件,件.sc,的,的结构,文件头说,明,明,/filename:xxx.sc version:,/变量,规,规划,#declare,自,自定,义,义变量,#iniparam 配置,参,参数常量,说,说明,#define,宏,宏的定,义,义,主程序体,12,2.2,流程源文,件,件.sc,的,的结构,文件头说,明,明,#define,宏,宏定义,说,说明,例:,文件头中,说,说明#define PromptThanks2000,主程序体,中,中PROMPT PrompThanks等价,于,于,PROMPT2000,#iniparam , 配,置,置参数常,量,量说明,例:,#iniparam int DBA_ID,文件头中,说,说明#iniparamSTRINGUserData,主程序体,中,中ASSIGN SR9, UserData,配置文件,(,(后缀为.ini,),)中,Parameters,DBA_ID =25,UserData=12345,则,主程,序,序体中该,语,语句等价,于,于,ASSIGNSR9,”,”12345”,13,IVR流,程,程ini,文,文件里的,注,注释,只,能,能使用#,和,和;不能,使,使用/,变量内,容,容128个字节,编,编,写,写ini,文,文件时,,下,下面内容,定,定义String,类,类型的常,量,量,其中V41File1,和,和V41File2的注释,正,正确,V41File3注,释,释错误,V41File3,读,读入IVR时值为,“,“Conf.v41 /Conference”,。,。 ParametersV41File1 =Conf.v41;ConferenceV41File2 =Conf.v41#ConferenceV41File3 =Conf.v41/Conference,14,2.2,流程源文,件,件.sc,的,的结构,文件头说,明,明,#declareIR,整,整型自,定,定义变量,说,说明,#declareSR,字,字符型,自,自定义变,量,量说明,#declare FR ,浮,浮点型自定,义,义变量说明,#functionmain,全局变量(,所有函数中,可,可使用,):,例:,文件头中说,明,明#declareSR sTelNo,#declare IR iMax=1(,初,初始化),局部变量(,某,某个函数中,可,可使用):,例:,主程序中的,某,某个函数main,#declare IR iMax=0,:stWait,15,2.2,流程源文件.sc的结,构,构,主程序体,它通常是一,组,组函数定义,的,的系列,每,一,一函数定义,可,可描述如下,:,:,函数名,:状态1,动作a1,参,参数,动作an,参,参数,事件e1,状态s1,事件e2,状态s2,N,事件en,状态sn,动作a1, 参数,M,动作am 参数,:状态2,同上,:状态m,函数定义系,列,列中的第一,个,个函数必须,是,是主函数(main),16,流程主函数,体,体,17,2.3 流,程,程的启动与,结,结束,流程的启动,与,与结束,开始状态:stWait,在stWait 状态,下,下以Connect事,件,件启动流程,结束状态:stExit,Connect(0)-,正常,Connect(2)-,外呼,在stExit 状态,下,下以 Return0 动,作,作结束流程,18,2.4注释,注 释,/ 单,行,行注释,/*/,多,多行注,释,释,19,2.5完成,一,一个业务流,程,程注意事,项,项,注意事项,为了设计图,形,形业务流程,的,的思路清晰,,,,建议在作,设,设计前画出,流,流程图。,为了便于检,查,查,在设计,图,图形业务流,程,程的时候要,画,画线清晰分,明,明。,要作好寄存,器,器数据的规,划,划,避免数,据,据的冲突。,有,有的参数要,栏,栏填写指定,的,的数据。,有的动作有,事,事件发生,,需,需要确定每,发,发生一个事,件,件的前因后,果,果。,主函数只能,名,名为main,在开始,一,一个业务流,程,程的时候自,动,动生成。,在一个业务,流,流程程序里,面,面只能有一,个,个主函数。,子函数名不,能,能为main,可根据,子,子函数的意,义,义定为其它,文,文件名。,在一个业务,流,流程程序里,面,面可以有多,个,个子函数。,20,介绍提纲,编译器的安,装,装及使用,完成一个业,务,务流程,动作,变量,例解流程开,发,发,常见问题处,理,理,习题,21,3.1数值,类,类,数字运算动,作,作,div I1,I2,/把I1,整,整除I2的,值,值赋给变量I1,mod I1,I2,/把I1,整,整除I2的,余,余值赋给变,量,量I1,IntRand I1,/产生一,个,个0I1,的,的随机整数,,,,结果存于IR0中,FloatRandI1 I2,/产生一,个,个0I1,之,之间的随机,浮,浮点数,精,确,确到小数点,后,后I2位。,结,结果存于FR0中,22,3.1数值,类,类,Assign 赋值,Assign I1,I2,功能:,整,整,数,数I2的赋,值,值给变量I1,例子:Assign IR1,,,,93,将93赋值,给,给IR1,,运,运算结果是IR1等于93,。,Add 加,Add I1,I2,功能:,把,把,整,整数I2的,值,值加入到变,量,量I1,例子:Add IR1,65,把整数65,的,的值加入到,变,变量IR1,,,,,若IR1原,值,值为35,,运,运算结果得,:,:,IR1=100。,数字运算动,作,作,incI,23,3.1数值,类,类,Mul 乘,Mul I1,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,。,。,数字,运,运算,动,动作,24,接收,按,按键,DigitI1,接,接,收,收一,位,位话,机,机按,键,键,I1,为,为最,大,大时,间,间(,秒,秒),,,,接,收,收到,的,的字,符,符值,返,返回SR0,,数字,值,值返,回,回IR0,(,(“*”=11,,“,“#,”,”=12,),)。,结,结,束,束时,产,产生,事,事件,:,:StopDigits(,值,),正,常,常收,号,号结,束,束TimeOut,超,超时,没,没有,收,收到,按,按键,InputI1,,,,I2,接,接收,多,多位,话,话机,按,按键,,,,I1为,按,按键,位,位数,,,,I2为,最,最大,时,时长,(,(秒,),),,接,接,收到,的,的字,符,符返,回,回SR0,。,。按,键,键位,数,数最,多,多31位,。,。,结,结,束,束时,产,产生,事,事件,:,:StopDigits(,值,值),正,正常,收,收号,结,结束,,,,或,收,收到,一,一个,终,终止,按,按键,。,。TimeOut,超,超,时,时没,有,有收,到,到规,定,定长,度,度的,按,按键,25,3.2字,符,符类,字串,运,运算,动,动作,ParseParamS1,I1,,,,S2,例,例,如,如:S1=”param1$param2$param3$param4”S2=,”,”$,”,”ParseParamS1,2,”$”,取,取,出,出第,二,二个,参,参数param2,。,。,StrLTrimS1,例如,:,:,AssignSR1,_abcd,StrLTrim,SR1,去掉SR1中,字,字符,串,串“_abcd,”,”左,边,边的,空,空格,,,,,即得,字,字符,串,串:,“,“abcd”,。,26,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中,。,。,27,:stPlayPrompt,ClearDTMF,SETDTMF?,ASSIGNSR1,.voxfee,STRCATSR1,$caller,STRCATSR1,vox,PLAYFILESR1,StopPlayBack-stEnableAccount,DialTerminate-stEnableAccount,Failed-stEnableAccount,stPlayPrompt,ClearDTMF,SETDTMF?,ASSIGNSR1,.voxfee,STRCATSR1,SR0,STRCATSR1,vox,PLAYFILESR1,StopPlayBack-stEnableAccount,DialTerminate-stEnableAccount,Failed-stEnableAccount,28,: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,29,3.2,字,字,符,符,类,类,字,串,串,运,算,算,动,作,作,StrLenS1,(,取,取,字,字,串,串,长,长,度,度,),),例,如,如,:,:StrLenabc,取,得,得,字,字,符,符,串,串abc,的,的,长,长,度,度,为,为3,,,,,将,将,长,长,度,度3,存,存,于,于IR0,中,中,。,。,StrRightS1, I2,(,取字符,串,串右侧,子,子串,),例如:StrRightabc,2,取得字,符,符串abc,右,右边2,个,个字串,,,,将字,串,串bc,存,存于SR0中,。,。,30,:stInput1,SETDTMF#/,输,输入取,消,消号码,input7,15,StopDigits(#)-stCheck,StopDigits-stCheck,TimeOut-stCheck,Failed-stCheck,:stCheck,ParseParamSR0,1,#,Assign id,SR0/,取,取消的ID号,码,码,StrLen SR0,CASEIR0/ID为6位,CASE(6)-stunreg,CASE-stqx,31,邮箱管,理,理动作,邮箱管,理,理动作,例,例子,32,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,呼,呼叫控,制,制类,33,3.3,呼,呼叫控,制,制类,EnableCall发程,控,控计费,应,应答信,号,号,EnableCallI1,如果流,程,程是应,答,答流程,,,,且在,之,之前执,行,行AnswerCall0不,计,计费的,动,动作,,执,执行此,动,动作开,始,始计费,,,,否则,不,不应执,行,行此动,作,作。,含意:,I11 发,应,应答不,计,计费信,号,号,I10 发,应,应答计,费,费信号,BillBegin,启,启动,计,计费,BillBeginI1I2S3,I1为,计,计费方,式,式(0:不,计,计费;1:按,主,主叫;2:按,被,被叫;3:按,原,原主叫,;,;4:,按,按账号,;,;5:,按,按计费,号,号码;6:按,原,原被叫,),);,I2是,否,否计算,可,可打时,长,长(按,帐,帐号计,费,费时用,),),0,:,:否;1:是,,,,如果,需,需计算,可,可服务,时,时长,,结,结果存,放,放在IR0中,(,(-1,表,表示没,有,有限制,),);,S3为,服,服务项,目,目编码,,,, 一,般,般情况,下,下应该,为,为系统,变,变量$ServiceItemNo,。,34,3.4,播,播放语,音,音,MixPlay I1,S2,根据语,种,种播放,合,合成音,。,。将S2合成I1所,指,指定的,类,类型播,放,放,即,即根据,语,语种自,动,动合成,语,语音播,放,放。如,果,果字符,串,串格式,不,不对或,者,者值超,出,出范围,,,,播放,的,的提示,音,音将不,可,可预料.,I1=1 合,成,成金额(最后,两,两位为,角,角分,不,不能带,有,有小数,点,点)I1=2 合,成,成数字(对,于,于英文,,,,值的,范,范围,需,需在,整,整数值,范,范围之,内,内;对,中,中文,,最,最多20位),I1=3 合,成,成字符I1=4,合,合成,日,日期时,间,间,I1=5 合,成,成数字,(,(可以,有,有带小,数,数点)I1=6,合,合成金,额,额(小,数,数点后,两,两位为,角,角分),I1=7 合,成,成金额,(,(小数,点,点后三,位,位为角,分,分厘),PlayFileS1playttsSR1,播放语,音,音文件,,,,S1,为,为文件,名,名。,结,结束时,产,产生以,下,下事件,:,:StopPlayBack,正常,放,放音结,束,束DialTerminate,放,音,音被按,键,键打断Failed,失,失败(,一,一般为,文,文件不,存,存在),35,3.6,数,数据库,访,访问,SwitchDBAI1(产生,的,的事件passed,failed),ExecSQL S1 执,行,行SQL命令,,,,S1,为,为要执,行,行的命,令,令字符,串,串,完,完成后,产,产生事,件,件:Passed,成,成功Failed ,失败,36,字段名,内容,PDA_ID,动作参数中用到的自定义的索引值,自定义一个唯一的数值即可。,PDA_DESCRIPTION,注释,PDA_TABLE_NAME,数据表名或存储过程名称,PDA_VALUE_NAME,字段函数名,需操作的字段用逗号分隔。,PDA_CONDITION,select、update、delete 使用该字段存储的信息作为查询条件,若为存储过程,存放参数的input, output属性。按参数顺序,input参数填入in, output参数填入out, 两个参数间用逗号分隔。,PDA_USABLEFLAG,可用标志,使用时填1,否则填0。,PDA_RESERVERD,insert、update和procedure操作必须在保留字段中定义字段(或参数)类型,而select, delete, execute_sql不使用保留字段。,定义形式为:X,X,X(p,s),X(n).,X-单个字母, 表示类型, 目前支持的类型包括:,C-char, varchar,datetime Nnumeric,int,float,DBINTERFACE表,的,的字段,37,3.6,数,数据库,访,访问,数据库,访,访问动,作,作,SwitchDBAI1,切换DBA模,块,块 ,I1为DBA,模,模块,的,的通讯,站,站号,完成后,产,产生事,件,件:Passed,成,成功Failed ,失败,(与新,的,的DBA模块,未,未能连,上,上,检,查,查通讯,配,配置),38,3.6,数,数据库,访,访问,数据库,访,访问例,子,子,main,:stWait,Connect-stExecSQL,:stSwitchDBA,SwitchDBAdbaid/切,换,换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,39,3.6数,据,据库,访,访问,数据,库,库访,问,问动,作,作,FirstDB,在检,索,索记,录,录(SelectDB,),)完,成,成之,后,后在,有,有多,条,条记,录,录返,回,回时,执,执行,该,该动,作,作将,把当,前,前数,据,据表,指,指针,指,指向,第,第一,条,条返,回,回记,录,录,,同,同时FD0FD29,的,的结,果,果值,作,作,相,应,应修,改,改。,完,完,成,成后,产,产生,事,事件,:,:Passed,成,成功Failed,失,失败,40,3.6数,据,据库,访,访问,数据,库,库访,问,问动,作,作,NextDB,在检,索,索记,录,录(SelectDB,),)完,成,成之,后,后有,多,多条,记,记录,返,返回,时,时执,行,行该,动,动作,,,,,将把,当,当前,数,数据,表,表指,针,针指,向,向下,一,一条,记,记录,,,,同,时,时FD0FD29的,值,值相,应,应修,改,改。,完,完,成,成后,产,产生,事,事件,:,:Passed,成,成功Failed,失,失败,41,3.6数,据,据库,访,访问,42,3.6数,据,据库,访,访问,数据,库,库访,问,问动,作,作,PriorDB,在检,索,索记,录,录(SelectDB,),)完,成,成之,后,后有,多,多条,记,记录,返,返回,时,时执,行,行该,动,动作,,,,将,把当,前,前数,据,据表,指,指针,指,指向,上,上一,条,条记,录,录,,同,同时FD0FD29,的,的值,相,相应,修,修改,。,。,完,完,成,成后,产,产生,事,事件,:,:Passed,成,功,功Failed,失,失败,43,3.6数,据,据库访问,数据库访,问,问动作,LastDB,在检索记,录,录(SelectDB)完,成,成之后在,有,有多条记,录,录返回时,执,执行该动,作,作将,把当前数,据,据表指针,指,指向最后,一,一条记录,,,,同时FD0FD29的,值,值将相应,修,修改。,完,完,成,成后产生,事,事件:Passed成,功,功Failed,失败,44,介绍提纲,编译器的,安,安装及使,用,用,完成一个,业,业务流程,动作,变量,例解流程,开,开发,常见问题,处,处理,习题,45,4.1系,统,统变量,系统变量,与流程相,关,关的系统,变,变量。如,:,:$ServiceType、$FlowType、$InputParam,、$OutputParam。,与呼叫相,关,关的系统,变,变量。如,:,:$CallerID、$Device1、$Device2,、,、 $Device3,与数据库,访,访问相关,的,的系统变,量,量。如:$DBRecCount,、,、,$DBF,ield,C,ount,。,。,与认证计,费,费相关的,系,系统变量,。,。如:$AccountID、$Password。$BillStartTime,46,$DBKEY1,$DBKEY2,$DBKEY3,$DBKEY4,$DBKEY5,$DBKEY6,是给流程,访,访问数据,库,库可给定,的,的一个关,键,键字,可,以,以修改,DBINTERFACE使,用,用,47,$PARAM1,48,4.2系,统,统寄存器,变量是其,值,值可以改,变,变的。流,程,程语言定,义,义的变量,有,有:,IR0IR29,:,:整型,变,变量,流,程,程里可以,用,用它来存,贮,贮一些中,间,间值或最,终,终结果,SR0SR29,:,:字串型,变,变量,流,程,程里可以,用,用它来存,贮,贮一些中,间,间值或最,终,终结果,,最,最大长度,为,为2K。,FR0FR29,:,:浮点变,量,量,流程,里,里可以用,它,它来存贮,一,一些中间,值,值或最终,结,结果,FD0FD29,:,:,字,字,串,串,型,型,变,变,量,量,,,,,它,它,与,与,数,数,据,据,当,当,前,前,操,操,作,作,的,的,表,表,中,中,的,的,字,字,段,段,是,是,一,一,一,一,对,对,应,应,,,,,可,可,以,以,从,从,数,数,据,据,库,库,表,表,中,中,读,读,取,取,记,记,录,录,存,存,入,入,这,这,些,些,变,变,量,量,,,,,对,对,这,这,些,些,变,变,量,量,修,修,改,改,后,后,可,可,以,以,存,存,回,回,数,数,据,据,库,库,修,修,改,改,相,相,应,应,的,的,记,记,录,录,。,。,最,最,大,大,长,长,度,度,为,为2K,。,。,49,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,50,4.4INI,文,文,件,件,里,里,变,变,量,量,的,的,使,使,用,用,程,序,序,不,不,支,支,持,持,一,一,个,个,动,作,作,的,多,多,个,个,参,参,数,数,同,同,时,时,用,用INI,变,变,量,量,。,。,如,如,果,果,想,想,在,在,一,一,个,个,动,动,作,作,中,中,使,使,用,用,多,多,个,个,INI,中,中,定,定,义,义,的,的,变,变,量,量,,,,,请,请,先,先,用,用,寄,寄,存,存,器,器,存,存,放,放,各,各,个,个,变,变,量,量,,,,,再,再,把,把,对,对,应,应,寄,寄,存,存,器,器,作,作,为,为,参,参,数,数,放,放,到,到,动,作,作,中.,详,详,细,细,说,说,明,明,如,如,下,下,:,:,在,流,流,程,程,的,的INI,中,中,定,定,义,义,了,了,几,几,个,个,参,参,数,数,,,,,提,提,供,供,流,流,程,程,运,运,行,行,时,时,读,读,取,取,时,时,,,,,如,如,:,:,Parameters,Caller=160,Called=119,ToStr=160$,如果流程写,成,成以下形式,将,将出错:,MakeCall200 Caller,Called,ToStr,执行时会变,成,成:caller=160$, called=160$, user data=160$,应改成以下,形,形式(先将,参,参数赋给寄,存,存器),Assign SR0,Caller,Assign SR1,Called,Assign SR2,ToStr,MakeCall200 SR0,SR1,SR2,.,51,介绍提纲,编译器的安,装,装及使用,完成一个业,务,务流程,动作,变量,例解流程开,发,发,常见问题处,理,理,习题,52,5.1数据,库,库访问例子,根据主叫号,码,码查询话费,(单条记录,返,返回,数据,库,库查询,合,成,成音播放),53,5.2计费,例,例子,流程中拨报,费,费率提示音,的,的时候不收,通,通信费,不,收,收信息费。,拨,拨报完成后,需,需要等待,3,妙,开始发,出,出通信计费,信,信号,信息,费,费计费信号,。,。,例:,main,:stWait,connect-stallocresource,:stallocresource,allocmediadevice1/,申,申请,媒,媒体,资,资源,allocresourceok-stfee,allocresourcefail-stExit,:stfee,playfileH:flowfee2.vox/拨,报,报费,率,率提,示,示音,stopplayback-stimer,dialterminate-stimer,failed-stimer,:stimer,timer3/,等,等待3妙,timeout-stsetmandarin,:stsetmandarin,enablecall0/,通,通信,费,费信,号,号,billbegin1,0,$serviceitemno/信,息,息费,信,信号,verify(0)-stWelcome,verify(-1)-stExit,54,5.3预,拨,拨号,预拨,号,号流,程,程,55,5.4存,储,储过,程,程,假设,有,有一,存,存储,过,过程,如,如下,所,所示,:,:,createprocedurePROC_201UPDATEBALANCE,(Balancevarchar(8),-,流,流程,用,用上,面,面SELECT语,句,句得,出,出的,本,本账,号,号余,额,额后,与,与转,移,移账,号,号相,加,加后,的,的数,值,值。,AccountID1varchar(12),-,转,转移,账,账号,AccountID2varchar(12),-,原,原账,号,号,Balance1varchar(8)-原,账,账号,认,认证,时,时的,金,金额,as,begin,UPDATEACCOUNTDATASETAD_BALANCE=Convert(Numeric(8,2),Balance)WHEREAD_ACCOUNTID=AccountID1ANDAD_ACCOUNTKIND=201ANDAD_ACCOUNTSTATUS=1,UPDATE ACCOUNTDATA SET AD_BALANCE =0,AD_ACCOUNTSTATUS =2 WHEREAD_ACCOUNTID =AccountID2ANDAD_ACCOUNTKIND =201ANDAD_ACCOUNTSTATUS =1,INSERT INTOACCOUNTTRANSVALUES(AccountID1,201,1, AccountID2,Convert(Numeric(8,2),Balance1),getdate(),INSERT INTOACCOUNTTRANSVALUES(AccountID2,201,2, AccountID1,Convert(Numeric(8,2),Balance1),getdate(),end,设置用于,调,调用时,,需,需在表DBINTERFACE中登,记,记:,insert intoDBINTERFACEvalues(100,PROC_201UPDATEBALANCE,in,in,in,in,1,C,C,C,C),而在IVR中动作,为,为:,ASSIGNFD0,SR0/输,入,入的参数,在,在FD0FD9,中,中,ASSIGNFD1,SR8,ASSIGNFD2,SR1,AssignFD4,$CALLERID,ExecStoredProc100,4/DBINTERFACE,表,表中的存,储,储过程编,号,号为100,参数,个,个数为4,Passed - stBalanceTranOK,Failed - stSystemBusy,DBATimeOut-stSystemBusy,56,5.5包,月,月项目实,现,现,包月流程,57,介绍提纲,编译器的,安,安装及使,用,用,完成一个,业,业务流程,动作,变量,例解流程,开,开发,常见问题,习题,58,SP,在调试流,程,程的时候,需,需要将项,目,目的业务,流,流程,技,术,术流程,,以,以及用到,的,的建库脚,本,本,存储,过,过程,,ini,文件都要,有,有详细的,注,注释。,Sp流程,规,规范, SP,的技术流,程,程必须是,编,编译通过,的,的。,根据流程,的,的难易度,,,,代码的,行,行数:,1000,行以上的,流,流程只允,许,许出现两,个,个重大错,误,误,小错,误,误不允许,超于,3,个;,1000,以下的流,程,程指允许,出,出现,1,个重大错,误,误,小错,误,误不超过,2,个。重大,错,错误是指,:,:主流,程的死循,环,环,预拨,号,号使用不,当,当,包月,使,使用不当,等,等。,规范流程,中,中动作的,返,返回事件,,,,各个动,作,作的返回,事,事件要写,全,全。, SP,的流程图,必,必须和,.SC,文件一致,尽量不要,向,向,SP,要源文件,(.sc),如果须用,到,到,SC,文件,不,用,用后需当,着,着,SP,的面把,SC,源文件删,掉,掉。,平台资源,占,占用,平台计费,平台计费,平台点歌,类,类流程规,范,范,平台数据,库,库流程规,范,范,平台安全,59,6常见问,题,题,语法分析,中,中可能出,现,现的错误,1. WORDhasnotbeendefinedWORD,未,未被定义,2. WORDdefine wronginKey.txt,系,系统,变,变量定义,错,错误,3. Parametertype oftheword isnotsame with whichintheactionconfig file,参,参数的,类,类型语动,作,作配置文,件,件中的定,义,义不一致,4.More thanoneAction functionmatchedwiththeactionWORD,不只一个,动,动作与该,动,动作匹配(一般是,配,配置文件,有,有错),5.The Events parametermustbea integer ora character,事,事件,的,的参数必,须,须是一个,整,整数或一,个,个字符,6. ParameterWORD1ofWORD is out oftherange in the eventconfig file,事,事件配,置,置文件有,错,错.其参,数,数个数的,指,指定用:HasAPara,NoPara,HasOrNo,60,6常见,问,问题,7.last a),缺,缺少),8.a Event mustbefollowedastate,事,事件,之,之后必,须,须跟一,个,个状态,9.must haveactionsand onlyactionsinthestateStExit,在,在状态StExit,中,中只能,有,有一个,动,动作RETURN,10.the lastaction mustbethe RETURNinthestate StExit在,状,状态StExit中,最,最后一,个,个动作,必,必须为RETURN,11.Inthe state StExitthelastactioncantbefollowedanything buta ,在,在状态StExit,中,中最后,一,一个动,作,作之后,必,必须用,结,结束该,函,函数,12.has notdefined thestateWORDWORD,状,状态未,被,被定义,13.Tthefirststatemust be thestWait,在,在一个,函,函数中,第,第一个,状,状态必,须,须是stWait,14.Has notdefined themain function,未,未定义,主,主函数(main),61,介绍提,纲,纲,编译器,的,的安装,及,及使用,完成一,个,个业务,流,流程,动作,变量,例解流,程,程开发,常见问,题,题,讨论,62,编译器,的,的安装,及,及使用,完成一,个,个业务,流,流程,动作,变量,例解流,程,程开发,常见问,题,题,讨论,考试,介绍提,纲,纲,63,谢谢大,家,家!,!,!,共享,64,演讲完,毕,毕,谢,谢,谢观看,!,!,
展开阅读全文