IVR 流程编写标准
IVR Coding Standard
编制单位:新太科技技术开发中心
编制时间:2004220
文档编号:SPMSSEP12
版 号:部试版
编制
审核
批准
生效日期
汤冬
赵刚
张少文
变更记录
A ADDED M MODIFIED D DELETED
序号
日期
章节号
AMD
变更简述
变更
目 录
1 目 4
2 说明 4
3 流程标准 4
31 组织结构 4
32 排版 4
33 注释 7
34 命名 12
35 变量 14
36 状态 15
37 函数 16
38 流程动作根约定 20
1 目
l 局部编写标准适新太IPS流程编写
2 说明
标准作标准IPS流程编写标准中规必须遵守建议提醒您需注意方者该情况较选择
3 流程标准
31 组织结构
规11:流程文件存放根目录 sccod ini文件文件属业务存放目录保持流程根目录清洁
建议11:类型文件类型分目录存放原类型清楚便理便期删目录文件果限增长趋势请定规〔例日期〕分目录存放
建议12:放音动作需语音文件vox v41文件 vox 目录存放流程图等文档说明 doc 目录存放
32 排版
规21:流程中状态块间保存1行空行
规22:函数间保存3行空行
规23:流程头部配置参数宏函数全局变量定义区域先序分开注释含义便查找
例1:
*************************************************************
流程配置参数定义
*************************************************************
#iniparam string @sAgentStartTime 座席开始效劳时间
#iniparam string @sAgentStopTime 座席结束效劳时间
#iniparam string @sCurrencyFaxFile 货币代码 文件
#iniparam int @nMaxTalkRecs 系统说资源数
************************End of 配置文件***********************
*************************************************************
流程宏定义
*************************************************************
#define INPUTERRLIMIT 3 输入错误次数限制
#define ACCOUTLENGTH 23 账号长度〔长〕
#define MAINPATH \\sysvox\\ 函数语音文件根目录
#define MAINVOX1 NQQWelvox 您QQ现已开通千里音缘效劳
#define MAINVOX2 NQQCityvox 千里音缘目前已开放四川海南两
************************End of 宏定义***********************
*************************************************************
流程函数定义
*************************************************************
#function main 函数
#function OnClear_QQCallOut 异常处理函数
************************End of 函数定义***********************
*************************************************************
流程全局变量定义
*************************************************************
#declare SR g_sAstring This is a string 全局数串
#declare FR g_fMyMoney 105 全局浮点数表示金额
#declare IR g_nCount 整型全局变量表示数目
************************End of 全局变量***********************
规24:编辑工具时求定义Tab键4空格位〔空格填充〕
规25:函数体里状态左缩进Tab键保持左齐该状态动作事件语句左缩进Tab键保持左齐
规26:流程动作语句中[〞符号右边保存空格]〞符号左边保存空格流程动作中参数分隔符〞右边保存空格
规27:流程动作语句中状态跳转符号>〞前少保存TAB键〔状态>符号齐〕>〞保存空格
例2:
stNationalQQCallIn 外省户呼入
[ Strsub CallerID 1 2 ]
[ Equal SR0 13 ]
Passed > stLocalQQNormal 户
Failed > stNationalQQCall 外户
规28:iniparamdefinedeclare等定义时第二参数第三参数间者Tab键间隔开齐美观准例参见面例1
33 注释
规31:般情况源程序效注释量必须20
说明:注释原助程序阅读理解该加方加注释宜太太少注释语言必须准确易懂简洁
规32:流程头部配置参数宏函数全局变量定义区域先序分开注释含义例参见面例1
规33:流程头部必须注明种配置参数约定
规34:流程头部定义全局变量时须明确列出该全局变量含义方案
例3:
*********************** 全局变量 ****************************
#declare IR g_nLeaveWordType 0 留言类型 0发送留言1转发留言2回复留言
#declare IR g_nCanChoose 1 收听户资料时否键选择
#declare SR g_sYWBegintime 前业务开始时间 字符串yyyymmdd hhmmss
********************** End of 全局变量 ***********************
规35:流程头部必须定义函数功介绍
规36:函数体开始前必须传入传出参数解释函数返回值解释
返回值般0表示正常1表示错9表示异常退出4表示转座席8回流程7回级菜单
例4:
*********************************************************
Function name FormatTxtFile
Function usage 文文件转换成 文件
传入参数:
g_sTxtFileName 需转换文文件
传出参数:
g_sFaxFileName 转换 文件名
Returned 0转换成功9异常错误
厦门建行客服中心
编写日期:03222001
*********************************************************
规37:子函数必须编写修改日期例参见例4
规38:果网关交易局部必须明确收发包格式
例5:
**********************************************************
function namefuncTrans282600
function usage公业务-修改 银行密码
传入参数:
传出参数:
Returned0修改成功9连接数库失败
传报文:|282600|9999||帐号|密码|^
传报文:|282600|返回码|^
**********************************************************
规39:注释应描述代码相子函数代码注释应放方需面代码空行隔开函数中代码注释应置右方相邻位置放面
规310:流程文件中量代码右方注释处列方便阅读理解
规311:流程中重局部定注释例菜单项选择择状态跳转
规312:涉数库操作必须注明实际SQL
说明:明确数库操作目方便期调试测试核流程
例6:
************ 查询注册户黑名单〔 卡户〕*************
function name funcQueryRegBlacklist
function usage 查询号码否注册户黑名单〔 卡户〕
传入参数:号码CallerID
传出参数:
Returned:0表示非黑名单户 1黑名单户 2数库超时
****************************************************************
funcQueryRegBlackList
{
#declare IR m_nReturn 0 返回值
stWait
[ Assign g_sSQL select * from qq_RegBlacklist where F_caller like ' ]
[ StrCat g_sSQL CallerID ]
[ StrCat g_sSQL ' ]
[ ExecSQL g_sSQL ] select * from qq_RegBlacklist
where F_caller like ’
Passed > stIsBlacklist
Failed > stNotBlackList
TimeOut > stTimeout
stIsBlacklist
[ Assign m_nReturn 1 ] 1表示黑名单户
[ ClearDTMF ]
[ SetDTMF ]
[ Assign SR0 MAINPATH ]
[ Strcat SR0 MAINVOX29 ]
[ PlayFile SR0 ] 户进行注册〞
StopPlayBack > stExit
DialTerminate > stExit
Failed > stExit
stNotBlackList
[ Assign m_nReturn 0 ] 0表示非黑名单户
> stExit
stTimeout
[ Assign m_nReturn 2 ] 2表示数库超时
> stExit
stExit
[ Return m_nReturn ]
}
************ End of 查询注册户黑名单 ***************
规313:播放语音必须注释放音实际文字
便核流程方便阅读语音文件遗失情况恢复
例7:
stBegin
[ ClearDTMF ]
[ SetDTMF 12 ]
[ Assign SR0 INCARDPATH ]
[ Strcat SR0 REGINPUTVOX1 ] 请输入您资料男生1 女生2
[ PlayFile SR0 ]
StopPlayBack > stSelectSex 选择性
DialTerminate > stSelectSex
Failed > stSelectSex
规314:流程中全局变量必须注释途含义保持全局变量含义统防止外处改变含义
例8:
stPromptUserType1
[ Assign g_nUserType 1 ] 户权限 1级理员
[ ClearDTMF ]
[ SetDTMF ]
[ Assign SR1 PROMPTUSERTYPEPATH ]
[ Strcat SR1 PROMPTUSERTYPE1 ] 您您聊天室1级理员
[ PlayFile SR1 ]
StopPlayBack > stExit0
DialTerminate > stExit0
Failed > stExit0
规315:边写代码边注释修改代码时修改相应注释保证注释代码致性没注释时删
规316:注释容清楚明含义准确防止二义性
规317:防止注释中缩写特非常缩写
说明:缩写时前应缩写进行必说明
建议31:通函数状态变量等正确命名流程代码成注释
34 命名
规41:状态变量函数命名英文字母划线数字组合应量常规英文英文缩写防止法阅读理解命名方式
规42:配置文件参数果字符串string类型@s〞做前缀果整数int类型@n〞做前缀
例9:
#iniparam int @nMaxTalkRecs 系统说资源数
#iniparam string @sCurrencyFaxFile 货币代码 文件
规43:宏定义必须全部写例参见面例1中宏定义
规44:全局变量命名参见规51全局变量命名〞
规45:局部变量命名参见规52局部变量命名〞
规46:状态命名参见规61状态命名约定〞
规47:函数命名参见规72函数命名〞规74规75定义子函数命名〞规76定义例外处理函数命名〞
规48:命名清晰明明确含义时完整单词家根理解缩写
说明:较短单词通掉元音形成缩写较长单词取单词头字母形成缩写单词第字母写单词家公认缩写
例10:
单词缩写够家根认
Send 缩写 Snd
Receive 缩写 Rcv
temp 缩写 Tmp
flag 缩写 Flg
statistic 缩写 Stat
status 缩写 Sta
message 缩写 Msg
规49:命名中假设特殊约定缩写注释说明
规410:正确反义词组命名具互斥意义变量相反动作函数等
例11:beginend createdestroy insertdelete putget minmax 等
35 变量
规51:全局变量命名g_开头〔g表示global〕果字符串类型g_s做前缀果整型g_n做前缀果浮点型g_f做前缀
例12:
#declare SR g_sAstring This is a string
#declare FR g_fMyMoney 105
#declare IR g_nCount
规52:局部变量命名m_前缀〔m表示member〕果SR类型m_s做前缀果IR类型m_n做前缀
例13:
#declare SR m_sAstring This is a string
#declare FR m_fMyMoney 105
#declare IR m_nCount
规53:全局变量定义区域参见规23流程头部配置参数宏函数全局变量定义区域〞例参见例1
规54:参见规34流程头部定义全局变量时须明确列出该全局变量含义方案〞
规55:变量命名量符合该变量实际含义
规56:掉没必全局变量函数部量局部变量
说明:全局变量增模块间耦合原应减少没必全局变量降低耦合度
规57:流程开头仔细定义明确全局变量含义作取值范围全局变量间关系
规58:全局变量传递数时十分心防止赋予合理值越界等现象
说明:全局变量传递数时应进行合法性检查该行变量含义做注释说明
规59:存放器变量般作IVR系统函数传递参数返回值流程部定义函数推荐存放器变量动作返回值等存放器变量情况外律存放器变量定义变量代
规510:参见规314 流程中全局变量必须注释途含义保持全局变量含义统防止外处改变含义〞
规511:防止局部变量全局变量名
规512:严禁未初始化变量作赋值
建议51:建议IR0者SR0作续状态变量特果超3状态然需前IR0SR0值先IR0SR0赋值变量中保存
36 状态
规61:状态命名约定st〞开头第三字母写表示实际含义名称开始
例14:
stWait
Connect > stGetTime
stGetTime
[ NowTime ]
[ Assign m_sTime SR0 ]
规62:函数中状态stWait开始状态stExit结束例参见面例15例17
规63:状态跳转事件驱动
37 函数
规71:业务流程程序里面函数
规72:函数名main开始业务流程时候动执行
规73:业务流程程序里面子函数
规74:子函数名main
规75:定义子函数例外处理函数外命名func〞开头第五字母写表示实际含义名称开始量表示该函数执行具体功操作
例15:
************************** 通聊天程 ************************
function name:funcChatProcess
function usage:通聊天程
输入参数:g_nChatID 聊天室编号 g_nChatType 参加聊天方式 g_nQQIdentify 参加聊天身份
g_nTalkTime 聊天时长 g_nIsFullExit 没说资源时否退出题聊天时会退出
输出参数:
返回值 0 正常退出 1 碰中退出 2 聊天室编号存 3 错误 4 没说资源退出
****************************************************************
通聊天程
****************************************************************
funcChatProcess
{
stWait
action here
stExit
}
********************** End of 通聊天程 **********************
规76:流程定义例外处理函数OnClear_〞前缀
例16:
#function OnClear_QQCallOutClear QQ呼出异常处理函数
#function OnClear_sslwCountTime 三省联网统计互拨时长
规77:流程中层菜单独立函数选择项独立函数
规78:定义函数开头须注释该函数功说明详细传递参数返回值种含义例参见例15
规79:传入传出参数量定义全局变量系统规定外推荐存放器承函数传递参数全局变量命名符合变量命名规
规710:子函数返回值约定通常约定返回值0表示成功值表示成功原
目前已形成根约定
AReturened(9)表示出错需动退出流程资源分配失败放音失败等
BReturened(8)表示需回流程
CReturened(7)表示需回层菜单
DReturened(4)表示转坐席退出
E返回值暂定回级菜单
F函数需处理Returned(1)事件
例17:
****************************************************************
连接坐席
****************************************************************
funcConnectAgent
{
#declare IR m_nReturnedCode 标识子函数退出状态
stWait
[Equal g_nData 0] 判断传入参数
> stStar
stStar
action here
…
…
stSuccess
[ Assign m_nReturnedCode 0 ] 正常连接坐席成功
> stExit
stAgentExit
[ Assign m_nReturnedCode 4 ] 转坐席退出
> stExit
stMainMenu
[ Assign m_nReturnedCode 8 ] 回流程
> stExit
stPreMenu
[ Assign m_nReturnedCode 7 ] 回层菜单
> stExit
stExitFlow
[ Assign m_nReturnedCode 9 ] 出错需动退出流程
> stExit
stExit
[ Return m_nReturnedCode ]
}
********************** End of 连接坐席 **********************
规711:子函数代码结束添加注释End of XXXX〞独立行表示结束例参见面例15例17
建议71:函数仅完成件功
建议72:设计途面面俱函数
说明:会理解测试维护变困难
建议73:函数功应该预测输入数相应产生样输出
建议74:量编写赖函数部实现函数
建议75:检查函数数输入效性语音文件路径全局存放器定义全局变量等
建议76:函数名应准确描述函数功操作
建议77:量动宾词组执行某操作函数命名
建议78:防止意义含义清动词函数命名
建议79:防止函数中必语句防止流程中垃圾代码量减少流程代码行数
建议710:功明确较函数特仅级函数调时应考虑合级函数中必单独存
38 流程动作根约定
规81:流程中等输入三次没键响应〔超时〕连续三次输入出错应返回级菜单
规82:菜单等输入三次没响应〔超时〕连续三次输入出错应该退出流程休止循环确保流程干预情况够动退出流程
规83:流程中分支走动作必须处理Event(1)事件Returned(1)防止出现流程挂死
建议81:涉数库操作建议量ExecSQL动作推荐DBSelect DBInsert DBDelete DBUpdate 等通DBINTERFACE间接操作做法例参见例6中ExecSQL动作
―――――――――――――――――END―――――――――――――――
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档