Index: TECH/Exceptions/ObjectExpectedException.cls.xml =================================================================== diff -u --- TECH/Exceptions/ObjectExpectedException.cls.xml (revision 0) +++ TECH/Exceptions/ObjectExpectedException.cls.xml (revision 1544) @@ -0,0 +1,16 @@ + + + + +1 +TECH.Exceptions.AbstractOmschrijvingException + + +TECH.enu.ExceptionCode + + + + + + Index: TECH/enu/DatePart.cls.xml =================================================================== diff -u --- TECH/enu/DatePart.cls.xml (revision 0) +++ TECH/enu/DatePart.cls.xml (revision 1544) @@ -0,0 +1,66 @@ + + + +datatype +1 +%String + + +1 +TECH.enu.DatePart + + + + +1 +TECH.enu.DatePart + + + + +1 +TECH.enu.DatePart + + + + +1 +TECH.enu.DatePart + + + + +1 +TECH.enu.DatePart + + + + +1 +TECH.enu.DatePart + + + + +1 +TECH.enu.DatePart + + + + +1 +TECH.enu.DatePart + + + + + + Index: TECH/Exceptions/AbstractOmschrijvingException.cls.xml =================================================================== diff -u --- TECH/Exceptions/AbstractOmschrijvingException.cls.xml (revision 0) +++ TECH/Exceptions/AbstractOmschrijvingException.cls.xml (revision 1544) @@ -0,0 +1,47 @@ + + + + +1 +TECH.Exceptions.Exception + + +%String +1 + + + + +Omschrijving:%String +1 +1 +%Status + + + + + +Wordt gebruikt om in de ecode weg te schrijven, de omschrijving blijft dus best beperkt. +%String + + + + + +Wordt door de error handler in het e-mailbericht bijgeschreven. +%String + + + + + + Index: TECH/Exceptions/BaseException.cls.xml =================================================================== diff -u --- TECH/Exceptions/BaseException.cls.xml (revision 0) +++ TECH/Exceptions/BaseException.cls.xml (revision 1544) @@ -0,0 +1,58 @@ + + + + +1 +TECH.Exceptions.Exception + + +TECH.enu.ExceptionCode +1 + + + +%String +1 + + + + + +Omschrijving kan gebruikt worden om in de $ECODE te plaatsen +ExceptionCode:TECH.enu.ExceptionCode,Omschrijving:%String +1 +1 +%Status + + + + +TECH.enu.ExceptionCode + + + + +%String + + + + +%String + + + + + + Index: WS/Svn/SvnService.cls.xml =================================================================== diff -u --- WS/Svn/SvnService.cls.xml (revision 0) +++ WS/Svn/SvnService.cls.xml (revision 1544) @@ -0,0 +1,27 @@ + + + +%SOAP.WebService + + +SvnService + + + +subversion.vanhoecke.be + + + +1 + + + +%String +1 + + + + + + Index: TECH/Config/dto/ConfigItems.cls.xml =================================================================== diff -u --- TECH/Config/dto/ConfigItems.cls.xml (revision 0) +++ TECH/Config/dto/ConfigItems.cls.xml (revision 1544) @@ -0,0 +1,16 @@ + + + + +1 +%RegisteredObject,%XML.Adaptor +right + + +TECH.Config.dto.ConfigItem +list + + + + + Index: TECH/Exceptions/RuntimeException.cls.xml =================================================================== diff -u --- TECH/Exceptions/RuntimeException.cls.xml (revision 0) +++ TECH/Exceptions/RuntimeException.cls.xml (revision 1544) @@ -0,0 +1,68 @@ + + + + +1 +TECH.Exceptions.Exception + + +%String +1 + + + + +%String +1 + + + + +ECode:%String,ZError:%String +1 +1 +%Status + + + + +%String + + + + +TECH.enu.ExceptionCode + + + + +%String + + + + +%String + + + + +%String + + + + + + Index: TECH/Exceptions/Exception.cls.xml =================================================================== diff -u --- TECH/Exceptions/Exception.cls.xml (revision 0) +++ TECH/Exceptions/Exception.cls.xml (revision 1544) @@ -0,0 +1,114 @@ + + + + +1 +TECH.IException,%RegisteredObject +right + + +TECH.IException +1 + + + + +TO DO : Stack zou een %Stream moeten worden. +%String +1 + + + + +%TimeStamp +1 + + + +%List +1 + + + +1 +1 +%Status + + + + +Exception:TECH.IException + + + + +%String + + + + +TECH.IException + + + + +%String + + + + +%TimeStamp + + + + +StackLevel +1 +%String + "_$STACK($STACK-i,"MCODE") + } + Quit Txt +]]> + + + +%String + + + + + + Index: TECH/Exceptions/SaveFailedException.cls.xml =================================================================== diff -u --- TECH/Exceptions/SaveFailedException.cls.xml (revision 0) +++ TECH/Exceptions/SaveFailedException.cls.xml (revision 1544) @@ -0,0 +1,39 @@ + + + + +1 +TECH.Exceptions.AbstractOmschrijvingException + + +%Status +1 + + + +Omschrijving:%String,Status:%Status +1 +1 +%Status + + + + +TECH.enu.ExceptionCode + + + + +%String + + + + + + Index: TECH/Config/ConfigItem.cls.xml =================================================================== diff -u --- TECH/Config/ConfigItem.cls.xml (revision 0) +++ TECH/Config/ConfigItem.cls.xml (revision 1544) @@ -0,0 +1,88 @@ + + + + +Een configuratie key-value item. +Naast een algemeen-geldende waarde, kunnen er applicatie-specifieke waarden +gedefinieerd zijn. Die laatste hebben voorrang op de algemeen-geldende. +persistent +1 +%Persistent + + +%String +1 + + + + +%String +1 + + + + + +%String + + + + + +%String +array +1 + + + + + +1 +Omgeving,Sleutel + + + + +Remark: Parameter "Applicatie" is optioneel. +%String + + + + +Waarde:%String,Applicatie:%String + + + + +%Library.CacheStorage +^TECH.Config.ConfigItemD +ConfigItemDefaultData +^TECH.Config.ConfigItemD +^TECH.Config.ConfigItemI +^TECH.Config.ConfigItemS + +AppSpecifiekeWaarden +subnode +"AppSpecifiekeWaarden" + + + +%%CLASSNAME + + +Waarde + + + + + + + Index: TECH/Config/ConfiguredFactory.cls.xml =================================================================== diff -u --- TECH/Config/ConfiguredFactory.cls.xml (revision 0) +++ TECH/Config/ConfiguredFactory.cls.xml (revision 1544) @@ -0,0 +1,29 @@ + + + + +TECH.Error +0 +%RegisteredObject + + +1 +ImplKlasseConfigSleutel:%String +%RegisteredObject + + + + + + Index: TECH/Error.inc.rou =================================================================== diff -u --- TECH/Error.inc.rou (revision 0) +++ TECH/Error.inc.rou (revision 1544) @@ -0,0 +1,68 @@ + /// Routine : TECH.Error.INC + /// + /// Author : Paul Verhulst + /// Created : 11/08/2010 + /// + +#include vhLib.Macro +#include %occInclude + + + + /// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + +#define TECHErrorTrapOn new $ETRAP Set $ETRAP="Do ##class(TECH.Error.impl.ErrorHandler).TrapHandler()" +#define TECHErrorTrapOff Set $ETRAP="" + +#define LocalErrorTrapOn new $ETRAP Set $ETRAP="Do %TECHErrorLocalTrap("_$stack_").TrapHandler()" $$$InitLocalErrorTrap +#define LocalErrorTrapOnLabeled(%Label,%Opts) new $ETRAP Set $ETRAP="Do %TECHErrorLocalTrap("_$stack_").TrapHandler("%Label","%Opts")" $$$InitLocalErrorTrap +#define LocalErrorTrapOff Kill %TECHErrorLocalTrap($stack) $$$TECHErrorTrapOff + +#define InitLocalErrorTrap Set %TECHErrorLocalTrap($stack)=%this,%TECHErrorLocalTrap($stack,1)=$ETRAP + +#define CheckLocalErrorTraps $$$DollarOrderCheck $$$DollarDataCheck +#define DollarOrderCheck Set:($O(%TECHErrorLocalTrap($stack))'="") $ECODE="`PreviousTrapNotCleared" +#define DollarDataCheck Set:($D(%TECHErrorLocalTrap($stack))) $ECODE="`PreviousTrapNotCleared" + +#define ThrowError(%s,%v) Set $ECODE="`"_%s_"`"_%v_"`" +#define ThrowErrorStatus(%s,%v,%r) Set $ECODE="`"_%s_"`"_%v_"`"_$$ParseStatus^vhLib(%r)_"`" +#define ThrowErrorUser(%s,%v,%u) Set $ECODE="`"_%s_"`"_%v_"``"_%u, +#define ThrowErrorStatusAndUser(%s,%v,%r,%u) Set $ECODE="`"_%s_"`"_%v_"``"_%u +#define ThrowErrorObject(%o) Do ##class(TECH.Error).Throw(%o) set $ECODE="`"_%o.GeefErrorCode()_"`"_%o.GeefErrorType() + +#define ClearError Set $ECODE="" +#define ClearLocalError Set ErrorLevelTrapOn=$O(%TECHErrorLocalTrap(""),-1) If $ES=(ErrorLevelTrapOn+2) $$$ClearError +#define StdHandling Do ##class(TECH.Error.impl.ErrorHandler).TrapHandler(.Label,.Options) +#define ReThrow ; Rethrow is automatic + +#define chkRequiredParameter(%p) If '$length($get(%p)) $$$ThrowError($$$errParameterRequired,"%p") +#define chkIsObject(%obj) If '$isobject(%obj) $$$ThrowError($$$errObjectExpected,"%obj") +#define chkValidateObject(%obj) Set sc=%obj.%ValidateObject() If $$$ISERR(sc) $$$ThrowErrorStatus($$$errObjectValidationFailed,"%obj",sc) +#define chkValidateDataType(%dt,%p) if '##class(%dt).IsValid(%p) $$$ThrowError($$$errInvalidInput,%p) +#define chkMaxLength(%var,%maxlength) if $length(%var) > %maxlength $$$ThrowError($$$errInvalidInput,%var_": "_$length(%var)_">"_%maxlength) + +#define CreateStdErrorObject set %vhLastError = ##class(TECH.Error.ErrorObject).%New() +#define AddToErrorObject(%String) do %vhLastError.Info.Insert(%String) + +#define errGeneralError "1000:GeneralError" +#define errPropertyRequired "1001:PropertyRequired" +#define errParameterRequired "1002:ParameterRequired" +#define errParameterInvalid "1002:ParameterInvalid" +#define errObjectExpected "1003:ObjectExpected" +#define errLocked "1004:Locked" +#define errInvalidInput "1005:InvalidInput" +#define errInvalidOutput "1005:InvalidOutput" +#define errInvalidID "1007:InvalidID" +#define errCreateObject "1006:Create object" +#define errInvalidEnumeration "1008:InvalidEnumerationValue" +#define errUnimplemented "1009:Unimplemented" + +#define errObjectValidationFailed "3000:ObjectValidationFailed" +#define errSaveFailed "3001:SaveFailed" + +#define errUserError "5000:UserError" + + + + Index: TECH/Context/RuntimeContext.cls.xml =================================================================== diff -u --- TECH/Context/RuntimeContext.cls.xml (revision 0) +++ TECH/Context/RuntimeContext.cls.xml (revision 1544) @@ -0,0 +1,149 @@ + + + + +Verzameling van eigenschappen van de runtime context +waarin de uitvoerende code zich bevindt. +Deze context eigenschappen kunnen bvb bij start en einde van +een inkomende SOAP of Java call, of unit test ingesteld worden. + +vhLib.Macro +1 +%RegisteredObject + + +%String + + + + +%String + + + + +%String +1 + + + + +1 +TECH.Context.RuntimeContext + + + + +1 + + + + +%String + + + + + +Werkt wanneer oproep via webservice of telnet binnenkomt binnen het netwerk. +Oproepen van buiten het netwerk kunnen mogelijks problemen opleveren. +%String + c:\"_FileName // ping vervangen door nslookup + Set Ok=$ZF(-1,"NSLOOKUP "_IP_" > c:\"_FileName) + + Set Stream=##class(%FileCharacterStream).%New() + Set Stream.Filename="c:\"_FileName + + Do Stream.ReadLine() + Do Stream.ReadLine() + Do Stream.ReadLine() + Set ComputerNaamOutput = Stream.ReadLine() + + Set PiecesIterator = ##class(TECH.PiecesIterator).%New(ComputerNaamOutput," ") + While (PiecesIterator.HasNext()) + { + Set ..ComputerNaam = PiecesIterator.Next() + } + + Set Stream = "" + + Do ##class(%File).Delete("c:\"_FileName) + } + } + + Quit ..ComputerNaam +]]> + + + +%String + + + + +%String + + + + +1 +1 +%Status + + + + + + Index: TECH/enu/ExceptionCode.cls.xml =================================================================== diff -u --- TECH/enu/ExceptionCode.cls.xml (revision 0) +++ TECH/enu/ExceptionCode.cls.xml (revision 1544) @@ -0,0 +1,133 @@ + + + +datatype +1 +%String + + +;1000:GeneralError;1001:PropertyRequired;1002:ParameterRequired;1002:ParameterInvalid;1003:ObjectExpected;1004:Locked;1005:InvalidInput;1005:InvalidOutput;1007:InvalidID;1006:Create object;1008:InvalidEnumerationValue;1009:Unimplemented;1010:FilesystemFailed;3000:ObjectValidationFailed;3001:SaveFailed;5000:UserError;5804:Concurrency + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + +1 +TECH.enu.ExceptionCode + + + + + + Index: TECH/Exceptions/LockedException.cls.xml =================================================================== diff -u --- TECH/Exceptions/LockedException.cls.xml (revision 0) +++ TECH/Exceptions/LockedException.cls.xml (revision 1544) @@ -0,0 +1,16 @@ + + + + +1 +TECH.Exceptions.AbstractOmschrijvingException + + +TECH.enu.ExceptionCode + + + + + + Index: TECH/Config/dto/ConfigItem.cls.xml =================================================================== diff -u --- TECH/Config/dto/ConfigItem.cls.xml (revision 0) +++ TECH/Config/dto/ConfigItem.cls.xml (revision 1544) @@ -0,0 +1,21 @@ + + + + +1 +%RegisteredObject,%XML.Adaptor +right + + +%String + + + + +TECH.Config.dto.ConfigWaarde +list + + + + + Index: TECH/Config/ConfigService.cls.xml =================================================================== diff -u --- TECH/Config/ConfigService.cls.xml (revision 0) +++ TECH/Config/ConfigService.cls.xml (revision 1544) @@ -0,0 +1,46 @@ + + + + +1 +%RegisteredObject + + +TECH.Config.dto.ConfigItems + + + + + + Index: TECH/Exceptions/FileException.cls.xml =================================================================== diff -u --- TECH/Exceptions/FileException.cls.xml (revision 0) +++ TECH/Exceptions/FileException.cls.xml (revision 1544) @@ -0,0 +1,39 @@ + + + + +1 +TECH.Exceptions.AbstractOmschrijvingException + + +%Status +1 + + + +Omschrijving:%String,Status:%Status +1 +1 +%Status + + + + +TECH.enu.ExceptionCode + + + + +%String + + + + + + Index: TECH/Exceptions/StatusException.cls.xml =================================================================== diff -u --- TECH/Exceptions/StatusException.cls.xml (revision 0) +++ TECH/Exceptions/StatusException.cls.xml (revision 1544) @@ -0,0 +1,39 @@ + + + + +1 +TECH.Exceptions.BaseException + + +%Status +1 + + + +ExceptionCode:TECH.enu.ExceptionCode,Omschrijving:%String,Status:%Status +1 +1 +%Status + + + + +%String + + + + +%String + + + + + + Index: TECH/DateTime.cls.xml =================================================================== diff -u --- TECH/DateTime.cls.xml (revision 0) +++ TECH/DateTime.cls.xml (revision 1544) @@ -0,0 +1,322 @@ + + + + +1 +%RegisteredObject + + +1 +Horolog:%String +%Integer +1 + + + + +1 +Horolog:%String +%TimeStamp +1 + + + + +1 +Horolog:%String +%Boolean +1 + + + + +1 +Horolog:%String +%Date +1 + + + + +1 +Text:%String,Type:%String="",Taal:%String="" +%Date +1 + + + + +1 +Timestamp:%TimeStamp +%Integer +1 + + + + +1 +Timestamp:%TimeStamp +%Date +1 + + + + +1 +TimeStamp:%TimeStamp +%String +1 + + + + +1 +Date:%Date +%TimeStamp +1 + + + + +1 +Horolog1:%String,Horolog2:%String +%Boolean + ..HorologToSeconds(Horolog2) +]]> + + + +1 +%Date + + + + +1 +%Date + + + + +1 +%TimeStamp + + + + +1 +%Time + + + + +1 +%TimeStamp + + + + +1 +DatePart:TECH.enu.DatePart,Timestamp1:%TimeStamp,Timestamp2:%TimeStamp +%Integer + + + + +1 +TimeStamp:%TimeStamp,Verschil:%Integer,DatePart:TECH.enu.DatePart +%TimeStamp + + + + +1 +Datum:%Date,Verschil:%Integer,DatePart:TECH.enu.DatePart +%Date + + + + + +Werkt ook met timestamp +1 +Dag:%Date +%String + + + + +1 +Dag:%Date +%Boolean + + + + +1 +TijdExpressie:%TimeStamp +%Integer + + + + +1 +TijdExpressie:%TimeStamp +%Integer + + + + +1 +TijdExpressie:%TimeStamp +%Integer + + + + + +Werkt ook met %Date +1 +TijdExpressie:%TimeStamp +%Integer + + + + + +Werkt ook met %Date +1 +TijdExpressie:%TimeStamp +%Integer + + + + + +Werkt ook met %Date +1 +TijdExpressie:%TimeStamp +%Integer + + + + + +Werkt ook met %Date +1 +TijdExpressie:%TimeStamp +%Integer + + + + +1 +Datum:%Date +%Date + + + + +1 +Datum:%Date +%Date + + + + +1 +Datum:%Date,Verschil:%Integer +%Date + + + + + +TimeStamp naar DD/MM uu:mm +1 +TimeStamp:%TimeStamp +%String + + + + +1 +Datum:%Date +%String + + + + + + Index: TECH/Exceptions/GeneralErrorException.cls.xml =================================================================== diff -u --- TECH/Exceptions/GeneralErrorException.cls.xml (revision 0) +++ TECH/Exceptions/GeneralErrorException.cls.xml (revision 1544) @@ -0,0 +1,16 @@ + + + + +1 +TECH.Exceptions.AbstractOmschrijvingException + + +TECH.enu.ExceptionCode + + + + + + Index: TECH/Config/ConfigMgr.cls.xml =================================================================== diff -u --- TECH/Config/ConfigMgr.cls.xml (revision 0) +++ TECH/Config/ConfigMgr.cls.xml (revision 1544) @@ -0,0 +1,211 @@ + + + + +De ConfigMgr beheert configuratie-waarden. +Het gebruikt ConfigItem instanties als data-bron. +Elk proces heeft zijn eigen ConfigMgr instantie. +Een proces kan zijn instantie resetten, bvb aan het begin van het verwerken van een SOAP call. +Een proces kan een config waarde tijdelijk wijzigen, zonder andere processen te impacteren. + +Dit kan uitgebreid worden met: +- controle op het type van de waarde +- wijziging van een waarde enkel in het huidige proces toepassen +- periodiciteit van waardes +- in sync houden van waardes over meerdere databanken +- Default waarde (per omgeving?) +- duurtijd waarop een applicatie een configuratie waarde mag cachen +... + +vhLib.Macro,TECH.Error +1 +%RegisteredObject + + +ConfigMgr + + + +ALLE + + + +1 +TECH.Config.ConfigMgr + + + + +Sleutel:%String +%Boolean + + + + + +Remark: DefaultWaarde is optioneel. +Sleutel:%String,DefaultWaarde:%String +%String + + + + +Sleutel:%String,DefaultWaarde:%String +%String + + + + +Sleutel:%String,DefaultWaarde:%Boolean +%Boolean + + + + + +Remark: DefaultWaarde is optioneel. +Sleutel:%String,DefaultWaarde:%Boolean +%Boolean + + + + + +Remark: Applicatie is optioneel. +Sleutel:%String,Waarde:%String,Applicatie:%String + + + + +Sleutel:%String,Waarde:%String,Applicatie:%String + + + + +Omgeving:%String="",Sleutel:%String + + + + +Sleutel:%String,Waarde:%Boolean,Applicatie:%String + + + + +Sleutel:%String + + + + + + + + + + + + + + Index: TECH/IException.cls.xml =================================================================== diff -u --- TECH/IException.cls.xml (revision 0) +++ TECH/IException.cls.xml (revision 1544) @@ -0,0 +1,39 @@ + + + +1 + +1 + + + +Wordt gebruikt om in de ecode weg te schrijven, de omschrijving blijft dus best beperkt. +1 +%String + + + +1 +TECH.enu.ExceptionCode + + + +1 +%String + + + +1 +%TimeStamp + + + + +Wordt door de error handler in het e-mailbericht bijgeschreven. +1 +%String + + + + + Index: TECH/Config/dto/ConfigWaarde.cls.xml =================================================================== diff -u --- TECH/Config/dto/ConfigWaarde.cls.xml (revision 0) +++ TECH/Config/dto/ConfigWaarde.cls.xml (revision 1544) @@ -0,0 +1,21 @@ + + + + +1 +%RegisteredObject,%XML.Adaptor +right + + +%String + + + + +%String + + + + + + Index: TECH/Exceptions/InvalidInputException.cls.xml =================================================================== diff -u --- TECH/Exceptions/InvalidInputException.cls.xml (revision 0) +++ TECH/Exceptions/InvalidInputException.cls.xml (revision 1544) @@ -0,0 +1,16 @@ + + + + +1 +TECH.Exceptions.AbstractOmschrijvingException + + +TECH.enu.ExceptionCode + + + + + + Index: TECH/ExceptionHandler.cls.xml =================================================================== diff -u --- TECH/ExceptionHandler.cls.xml (revision 0) +++ TECH/ExceptionHandler.cls.xml (revision 1544) @@ -0,0 +1,90 @@ + + + + +1 +%RegisteredObject + + +1 +Exception:TECH.IException + + + + +1 +ExceptionTypes...:%String +TECH.IException + + + + + +Laat de callstack intakt. Exceptie is exceptioneel. Wanneer deze is leeggelaten wordt de bestaande exceptie gerethrowed (indien deze niet werd gecatched uiteraard!) +In geval van een transactie kan de rethrow zonder exceptie parameter niet gebruikt worden omdat de $zerror ook wordt gerollbacked. +Volgende stramien moet dan gebruikt worden: + Set Exceptie = ##class(TECH.ExceptionHandler).Catch() + TROLLBACK + Do ##class(TECH.ExceptionHandler).Rethrow(Exceptie) +1 +Exceptie:TECH.IException + + + + + +