INIT

 (Available in 00 TS Base(Base) - TS_Base_2_ErrorSysError)

Purpose

Short

Syntax

Syntax

Arguments

ParamX
Param description

Description

Long

Returns

Return

Example

Example

Source

METHOD INIT( udwSubCode, udwSeverity, uDescription, udwLevel, ucApplication, ucModule ; ...
..., ucEntity, udwLine ) CLASS TS_Error
LOCAL oGlobalData AS _TS_GlobalData
LOCAL dwSeverity AS DWORD
LOCAL dwLevel AS DWORD
LOCAL oError AS Error
   oGlobalData:=_TS_ModuleGetGlobalData( )
   dwLevel:=TS_SafeDWORD( udwLevel, NULL_PTR )+1U
   IF LOGIC( _CAST, oGlobalData:_ErrorSysFirstErrorEnable ) .AND. oGlobalData:_ErrorSysFirstErrorObject ; ...
  ... ==NULL_OBJECT
      oGlobalData:_ErrorSysFirstErrorObject:=SELF
   END
   _TS_TraceObjectVerifyLifeTime( SELF, _TS_TRACE_ID_INCREATE, 1U )
   IF IsObject( uDescription )
      DO CASE
      CASE IsInstanceOf( uDescription, #_TS_ErrorShared )
         SELF:_ErrorSharedObj:=uDescription
      CASE LOGIC( _CAST, IVarGetInfo( uDescription, #_ErrorShared ) )
         SELF:_ErrorSharedObj:=IVarGet( uDescription, #_ErrorShared  ; ...
        ... )
      OTHERWISE
         SELF:_ErrorSharedObj:=_TS_ErrorShared{ SELF, dwLevel  ; ...
        ... }
      END
   ELSE
      SELF:_ErrorSharedObj:=_TS_ErrorShared{ SELF, dwLevel }
   END
   IF IsNumeric( udwSeverity )
      dwSeverity:=udwSeverity
      IF _TS_ErrorSysItemSeverity( SELF, NIL )<dwSeverity
         _TS_ErrorSysItemSeverity( SELF, dwSeverity )
      ELSE
         dwSeverity:=_TS_ErrorSysItemSeverity( SELF, NIL )
      END
   ELSE
      dwSeverity:=_TS_ErrorSysItemSeverity( SELF, NIL )
   END
   _TS_TraceSetLocation( SELF, ucApplication, ucModule, ucEntity, udwLine, dwLevel  ; ...
  ... )
   DO CASE
   CASE _TS_ErrorSysIsInstanceOfUsual( uDescription, #Error )
      oError:=uDescription
      IF _TS_ErrorSysItemSeverity( oError, NIL )>dwSeverity
         dwSeverity:=_TS_ErrorSysItemSeverity( oError, NIL )
         _TS_ErrorSysItemSeverity( SELF, dwSeverity )
      END
      SELF:Arg:=oError:Arg
      SELF:ArgNum:=oError:ArgNum
      SELF:Args:=oError:Args
      SELF:ArgType:=oError:ArgType
      SELF:ArgTypeReq:=oError:ArgTypeReq
      SELF:CallFuncSym:=oError:CallFuncSym
      SELF:CanDefault:=oError:CanDefault
      SELF:CanRetry:=oError:CanRetry
      SELF:CanSubstitute:=oError:CanSubstitute
      SELF:Cargo:=oError:Cargo
      SELF:Choice:=oError:Choice
      SELF:Description:=oError:Description
      SELF:FileHandle:=oError:FileHandle
      SELF:FileName:=oError:FileName
      SELF:FuncPtr:=oError:FuncPtr
      SELF:FuncSym:=oError:FuncSym
      SELF:GenCode:=oError:GenCode
      SELF:MaxSize:=oError:MaxSize
      SELF:MethodSelf:=oError:MethodSelf
      SELF:Operation:=oError:Operation
      SELF:OsCode:=oError:OsCode
      SELF:Severity:=oError:Severity
      SELF:SubCode:=oError:SubCode
      SELF:SubCodeText:=oError:SubCodeText
      SELF:SubstituteType:=oError:SubstituteType
      SELF:SubSystem:=oError:SubSystem
      SELF:Tries:=oError:Tries
   CASE _TS_ErrorSysIsInstanceOfUsual( uDescription, #TS_ErrorStatus )
      SELF:Description:=uDescription:Description
   CASE IsString( uDescription )
      SELF:Description:=uDescription
   OTHERWISE
      SELF:Description:=NULL_STRING
   END
   IF IsNumeric( udwSubCode ) .AND. Between( udwSubCode, 0x00000000U, 0xFFFFFFFFU  ; ...
  ... )
      SELF:GenCode:=0xFFFFFFFFU
      SELF:SubCode:=udwSubCode
   END
   IF Empty( SELF:Description )
      IF IsString( uDescription ) .AND. !Empty( uDescription )
         SELF:Description:=TS_S_UNKNOWN+TS_S_GLUON+TS_C_SINGLEQUOTE ; ...
        ... +AllTrim( uDescription )+TS_C_SINGLEQUOTE+TS_S_GLUON+TS_ErrorSysSeverity2String ; ...
        ... ( SELF )
      ELSE
         SELF:Description:=TS_S_UNKNOWN+TS_S_GLUON+TS_C_SINGLEQUOTE ; ...
        ... +TS_AsHexStringUSUAL( USUAL( _CAST, uDescription ), FALSE )+TS_C_SINGLEQUOTE ; ...
        ... +TS_S_GLUON+TS_ErrorSysSeverity2String( SELF )
      END
   END
   SELF:CanDefault:=FALSE
   SELF:CanRetry:=FALSE
   SELF:CanSubstitute:=FALSE
RETURN SELF