# -*- coding: gbk -*- ''' ------------------------------------------------------------------------------- ×× 以下代码是宇信班克CGC编译器自动生成的代码,请勿直接修改代码。 ×× ------------------------------------------------------------------------------- ''' ''' 应用代码:${app} 交易代码:${trade} 描述信息:${desc} 作 者:宇信班克 创建日期:${crttime} 修改日期:${mdftime} 生成日期:${curdate} 编译版本:CGC ${version} ''' from types import FunctionType ${importStr} ''' 全局对象: ''' __EXCP__ = None __ECD__ = "UNDEF" __MSG__ = "" __RST__ = "N" ''' 功 能:记录Python对象日志 ''' def BAPC_Builtin_LoggerTraceVar(argVarName,argVarObject): try: CGC_Trace("%s = %s" % (argVarName,argVarObject)) return True except: return False ''' 功 能:构造设置全局错误 ''' def BAPC_Builtin_SetGlobalError(argMsgType,argMsgCode,argMsgText): global __RST__ global __ECD__ global __MSG__ __RST__ = str(argMsgType) __ECD__ = str(argMsgCode) __MSG__ = str(argMsgText) CGC_Trace("__RST__ = "+str(__RST__)) CGC_Trace("__ECD__ = "+str(__ECD__)) CGC_Trace("__MSG__ = "+str(__MSG__)) ''' 功 能:检测 __MC__ 和 __TC__ ''' def BAPC_Builtin_CheckRequest(__REQ__,__RSP__): CGC_Trace("调用内建函数 BAPC_Builtin_CheckRequest") if( not __REQ__.has_key("__MC__")): BAPC_Builtin_SetGlobalError("E","NO__MC__","__REQ__中必须包含键值__MC__") return False if( not __REQ__.has_key("__TC__")): BAPC_Builtin_SetGlobalError("E","NO__TC__","__REQ__中必须包含键值__TC__") return False if( not __REQ__.has_key("__RCVPCK__")): __RSP__["__MSG__"]="__REQ__中必须包含键值__MSG__" BAPC_Builtin_SetGlobalError("E","NORCVPCK","__REQ__中必须包含键值__MSG__") return False if( not __REQ__.has_key("__VER__")): __RSP__["__MSG__"]="__REQ__中必须包含键值__VER__" BAPC_Builtin_SetGlobalError("E","NORCVPCK","__REQ__中必须包含键值__VER__") return False return True ''' 功 能:检查 __SNDPCK__ 放置 __ECD__ 、__RST__ 到返回字典中 ''' def BAPC_Builtin_CheckResponse(__REQ__,__RSP__): CGC_Trace("调用内建函数 BAPC_Builtin_CheckResponse") global __RST__ global __ECD__ global __MSG__ if( not __RSP__.has_key("__SNDPCK__")): __RSP__["__RST__"]="E" __RSP__["__ECD__"]="RTM0E103" __RSP__["__MSG__"]="没有返回包变量" __RSP__["__SNDPCK__"]="" else: __RSP__["__RST__"]=__RST__ __RSP__["__ECD__"]=__ECD__ __RSP__["__MSG__"]=__MSG__ ''' 功 能:获取全局异常委托函数 ''' def BAPC_Builtin_GetDefaultExceptNode(argDefault): global __EXCP__ if(__EXCP__ == None): return argDefault else: return __EXCP__ ''' 功 能:设置全局异常委托函数 ''' def BAPC_Builtin_SetDefaultExceptNode(argMethod): global __EXCP__ __EXCP__ = argMethod ''' 功 能: 交易入口初始化函数 ''' def BAPC_Builtin_TradeInitialize(__REQ__,__RSP__): if(__RSP__.has_key("__ASYNC__")): del __RSP__["__ASYNC__"] if(__RSP__.has_key("__AMC__")): del __RSP__["__AMC__"] if(__RSP__.has_key("__ATC__")): del __RSP__["__ATC__"] __REQ__["__VER__"]="2.31" ''' 功 能:布尔判断框架(虚拟组件)返回 0或1 ''' def BAPC_Builtin_BoolFrame(argBOOL): CGC_Trace("调用虚拟组件 BAPC_Builtin_BoolFrame") CGC_Trace(("argBOOL="+str(argBOOL) )) if(type(argBOOL) is bool): if(argBOOL is True): return [1,None,None] else: return [0,None,None] elif(type(argBOOL) is int): if(argBOOL > 0): return [1,None,None] else: return [0,None,None] else: return [0,None,None] ''' 功 能: 默认出口挂载(虚拟组件)返回 1 ''' def BAPC_Builtin_DefaultErrorHolder(): CGC_Trace("调用 BAPC_Builtin_DefaultErrorHolder") return [1,None,None] ''' 功 能: 字符串SWITCH匹配(虚拟组件)返回 0或1~7 ''' def BAPC_Builtin_SwitchCaseFrame(argSrc,arg1,arg2,arg3,arg4,arg5,arg6,arg7): CGC_Trace("调用虚拟组件 BAPC_Builtin_SwitchCaseFrame") CGC_Trace(("argSrc="+str(argSrc))) if(argSrc == arg1): return [1,None,None] elif(argSrc == arg2): return [2,None,None] elif(argSrc == arg3): return [3,None,None] elif(argSrc == arg4): return [4,None,None] elif(argSrc == arg5): return [5,None,None] elif(argSrc == arg6): return [6,None,None] elif(argSrc == arg7): return [7,None,None] else: return [0,None,None] ''' 功 能: 设置全局错误(虚拟组件) 返回 1 ''' def BAPC_Builtin_SetErrorToGlobal(argMsgType,argMsgCode,argMsgText): CGC_Trace("调用虚拟组件 BAPC_Builtin_SetErrorToGlobal") BAPC_Builtin_SetGlobalError(argMsgType,argMsgCode,argMsgText) return [1,None,None] ''' 功 能:取全局错误到容器(虚拟组件)返回 1 ''' def BAPC_Builtin_GetGlobalErrorToDict(argDict,argMsgTypeName,argMsgCodeName,argMsgTextName): CGC_Trace("调用虚拟组件 BAPC_Builtin_GetGlobalErrorToDict") global __RST__ global __ECD__ global __MSG__ if(not type(argDict) is dict): return [0,"BAPC0E900","容器字段必须是字典"] elif(not type(argMsgTypeName) is str): return [0,"BAPC0E901","MsgType的KEY必须是STRING"] elif(not type(argMsgCodeName) is str): return [0,"BAPC0E901","MsgCode的KEY必须是STRING"] elif(not type(argMsgTextName) is str): return [0,"BAPC0E901","MsgText的KEY必须是STRING"] argDict[argMsgTypeName]=__RST__ argDict[argMsgCodeName]=__ECD__ argDict[argMsgTextName]=__MSG__ return [1,None,None] ''' 功 能: 切换为后执行模式(虚拟组件) 返回 1 ''' def BAPC_Builtin_SwitchToAsyncMode(argDict,argTemplateCode,argTransCode): CGC_Trace("调用虚拟组件 BAPC_Builtin_SwitchToAsyncMode") if(not type(argDict) is dict): return [0,"BAPC0E900","容器字段必须是字典"] elif(not type(argTemplateCode) is str): return [0,"BAPC0E901","应用代码必须是STRING"] elif(not type(argTransCode) is str): return [0,"BAPC0E901","交易代码必须是STRING"] argDict["__ASYNC__"] = True argDict["__AMC__"] = argTemplateCode argDict["__ATC__"] = argTransCode return [1,None,None] ''' 功 能: 切换为后执行模式(虚拟组件) 返回 1 ''' def BAPC_Builtin_Def_Err_End_Node(__REQ__,__RSP__,__SND__,__RCV__): CGC_Trace("调用虚拟组件 BAPC_Builtin_Def_Err_End_Node") return False ''' ------------------------------------------------------------------------------- ## 交易步骤代码 ## ------------------------------------------------------------------------------- ''' ${body} ''' ------------------------------------------------------------------------------- ## 交易函数入口 ## ------------------------------------------------------------------------------- ''' ${entry}