Index: TECH/Lock.cls.xml =================================================================== diff -u --- TECH/Lock.cls.xml (revision 0) +++ TECH/Lock.cls.xml (revision 2182) @@ -0,0 +1,103 @@ + + + +1 +%RegisteredObject +0 + + +%String + + + +LockKey:%String +1 +1 +%Status + + + + + +Lock(TimeOut [Default: 10], LockType [Default: Exclusive]) +Indien reeds een exclusieve lock geplaatst is, dan wordt een fout gethrowed. + +TimeOut:%Integer=10,LockType:TECH.enu.LockType="X" + + + + + +Unlocken +Indien LockType leeg is wordt het type opgevraagd en de unlock uitgevoerd. +LockType:TECH.enu.LockType="" + + + + +1 +%String + + + + +%Boolean + + + + +%Boolean + + + + +%Boolean + + + + Index: vhUnitTest/TECH/File/dto/HoofdObject.cls.xml =================================================================== diff -u --- vhUnitTest/TECH/File/dto/HoofdObject.cls.xml (revision 0) +++ vhUnitTest/TECH/File/dto/HoofdObject.cls.xml (revision 2182) @@ -0,0 +1,20 @@ + + + +1 +%RegisteredObject,%XML.Adaptor +0 + + +%String + + + +%Integer + + + +vhUnitTest.TECH.File.dto.Object1 + + + Index: vhUnitTest/TECH/TestFileHandler.cls.xml =================================================================== diff -u --- vhUnitTest/TECH/TestFileHandler.cls.xml (revision 0) +++ vhUnitTest/TECH/TestFileHandler.cls.xml (revision 2182) @@ -0,0 +1,258 @@ + + + + +do ##class(vhUnitTest.Manager).RunTest("/debug/display=all","TECH.TestFileHandler") +1 +vhUnitTest.TestCase +0 + + +%String +Dit is de eerste lijn + + + +%String +Dit is de tweede lijn + + + + +Testen om file onmiddelijk weg te schrijven + + + + + +Testen om file onmiddelijk weg te schrijven + + + + + +Testen om file eerst lokaal aan te maken en dan te kopieren over het netwerk. +In UniTest blijf het op het lokaal systeem en niet over netwerk. + + + + + +Testen om file eerst lokaal aan te maken en dan te kopieren over het netwerk. +In UniTest blijf het op het lokaal systeem en niet over netwerk. + + + + + +Schrijf vanuit hetzelfde proces twee maal naar zelfde file, terwijl de eerste nog open staat. + + + + + +Schrijf vanuit een ander proces twee maal naar zelfde file, terwijl de eerste nog open staat. + + + + +1 +Bestand:%String,WriteImmediate:%Boolean,Inhoud:%String +1 + + + + +Bestand:%String,WriteImmediate:%Boolean +1 + + + + +1 +vhUnitTest.TECH.File.dto.HoofdObject + + + + Index: TECH/enu/LockType.cls.xml =================================================================== diff -u --- TECH/enu/LockType.cls.xml (revision 0) +++ TECH/enu/LockType.cls.xml (revision 2182) @@ -0,0 +1,31 @@ + + + +datatype +1 +%String +0 + + +,S,X + + + +;Shared;Exclusive + + + +1 +%String + + + + +1 +%String + + + + Index: TECH/File/FileReader.cls.xml =================================================================== diff -u --- TECH/File/FileReader.cls.xml (revision 0) +++ TECH/File/FileReader.cls.xml (revision 2182) @@ -0,0 +1,76 @@ + + + +1 +%RegisteredObject +0 + + +%String + + + +%FileCharacterStream + + + + +Bestand : Directory + bestand +Bestand:%String +%Status + + + + + + + + + +Leest een lijn uit. +Resultaat -1 = einde van bestand. +%String + + + + +%Boolean + + + + +%Close method to +provide notification that the current object is being closed.]]> +1 +1 +%Status + + + + Index: TECH/PubSub/impl/EventDispatcher.cls.xml =================================================================== diff -u -r1074 -r2182 --- TECH/PubSub/impl/EventDispatcher.cls.xml (.../EventDispatcher.cls.xml) (revision 1074) +++ TECH/PubSub/impl/EventDispatcher.cls.xml (.../EventDispatcher.cls.xml) (revision 2182) @@ -20,7 +20,8 @@ DispatchError Set $ZTRAP="" Set Logger = ##class(TECH.PubSub.impl.PubSubLogger).%New() - Do Logger.ErrorMail("Foutieve subscription","Event: "_Event.Type_", Class: "_Subscription.RespondingClass_", Method: "_Subscription.RespondingMethod_", Error: "_$ZE) + Set Exception = ##class(TECH.ExceptionHandler).Catch() + Do Logger.ErrorMail("Foutieve subscription","Event: "_Event.Type_", Class: "_Subscription.RespondingClass_", Method: "_Subscription.RespondingMethod_", Error: "_$C(13,10)_Exception.ToString()) EindeIf } Else { Index: APPS/VisiDot/Afhandelaar.cls.xml =================================================================== diff -u -r2104 -r2182 --- APPS/VisiDot/Afhandelaar.cls.xml (.../Afhandelaar.cls.xml) (revision 2104) +++ APPS/VisiDot/Afhandelaar.cls.xml (.../Afhandelaar.cls.xml) (revision 2182) @@ -30,12 +30,12 @@ Set Locatie = ..GeefDoelLocatie(ProcessedData) Do ##class(%File).CreateDirectoryChain(Locatie) Set DoelLocatie = ##class(TECH.Files).AppendFile(Locatie,BestandNaam) - Set FileStream = ##class(%FileCharacterStream).%New() - Do ProcessedData.XMLExportToStream(.FileStream,"","literal,indent") - Do FileStream.SaveStream() - Set Status = ##class(%File).Rename(FileStream.Filename,DoelLocatie) - If ($$$ISERR(Status)) Do ##class(vhLib.Logger).%New("APPS.VisiDot").ErrorMail("BewaarData", "Kon data van webservice niet opslaan naar bestand '"_DoelLocatie_"'") - Set FileStream = "" + + Set WriteImmediate = 0 + Set FileWriter = ##class(TECH.File.FileWriter).%New(DoelLocatie,WriteImmediate) + Do FileWriter.WriteXML(ProcessedData) + Do FileWriter.Close() + Set FileWriter = "" ]]> Index: TECH/File/FileWriter.cls.xml =================================================================== diff -u --- TECH/File/FileWriter.cls.xml (revision 0) +++ TECH/File/FileWriter.cls.xml (revision 2182) @@ -0,0 +1,146 @@ + + + +1 +%RegisteredObject +0 + + +%Library.FileCharacterStream +1 + + + +%String +1 + + + +TECH.Lock +1 + + + +%Boolean +1 + + + + +FileHandler die ook locking en rechten beheerd voor de file +Bestand : Directory + bestand +WriteImmediate : Schrijft onmiddelijk op de definitieve locatie, (voor over netwerk te sturen deze op false zetten !) +Bestand:%String,WriteImmediate:%Boolean=1 +%Status + + + + +%Status + + + + +Inhoud:%String +%Status + + + + +XMLObject:%XML.Adaptor,XMLExportOpties:%String="literal,indent" +%Status + + + + +1 +%String + + + + +%Close method to +provide notification that the current object is being closed. +Wordt ook bij een Kill uitgevoerd]]> +1 +1 +%Status + + + + Index: JBL FileHandler.prj.xml =================================================================== diff -u --- JBL FileHandler.prj.xml (revision 0) +++ JBL FileHandler.prj.xml (revision 2182) @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + Index: APPS/CRM/KlantService.cls.xml =================================================================== diff -u -r2178 -r2182 --- APPS/CRM/KlantService.cls.xml (.../KlantService.cls.xml) (revision 2178) +++ APPS/CRM/KlantService.cls.xml (.../KlantService.cls.xml) (revision 2182) @@ -124,7 +124,6 @@ Do ##class(APPS.CRM.KlantService).MaakKlantBestand() 1 @@ -149,19 +147,12 @@ KlantNr:%Integer,Bestandsnaam:%String="" %Status + + + +1 +Bestandsnaam:%String,dtoKlantBestand:APPS.CRM.dto.KlantBestand +1 + + +1 +Bestandsnaam:%String,dtoKlantBestand:APPS.CRM.dto.KlantBestand +1 + + + Do ##class(APPS.CRM.KlantService).InitSubscription() @@ -273,16 +303,5 @@ Do ##class(TECH.PubSub.OrchestrationContext).GetEventRaiser().RaiseEventAsync(Event) ]]> - - -XML:APPS.CRM.dto.KlantBestand,Bestandsnaam:%String="" -%Status - - Index: vhUnitTest/TECH/File/dto/Object1.cls.xml =================================================================== diff -u --- vhUnitTest/TECH/File/dto/Object1.cls.xml (revision 0) +++ vhUnitTest/TECH/File/dto/Object1.cls.xml (revision 2182) @@ -0,0 +1,12 @@ + + + +1 +%RegisteredObject,%XML.Adaptor +0 + + +%String + + + Index: APPS/LEV/LeverancierService.cls.xml =================================================================== diff -u -r1234 -r2182 --- APPS/LEV/LeverancierService.cls.xml (.../LeverancierService.cls.xml) (revision 1234) +++ APPS/LEV/LeverancierService.cls.xml (.../LeverancierService.cls.xml) (revision 2182) @@ -55,10 +55,10 @@ Set Bestandsnaam = ##class(TECH.Config.ConfigMgr).Instance().GetString("APPS.LEV.LeverancierService.LeverancierBestand") - set LeverancierBestand = LeverancierService.ExportXML(dtoLeverancierBestand, Bestandsnaam) + Do ..SchrijfLeverancierDto(Bestandsnaam,dtoLeverancierBestand) $$$TECHErrorTrapOff - Quit LeverancierBestand + Quit $$$OK ]]> @@ -86,6 +86,9 @@ Set dtoLeverancierBestand = Object } + Do XMLReader.Close() + Set XMLReader = "" + /// Indien de leverancier diezelfde dag al was gewijzigd, de vorige leverancierId eruit halen. /// Want daarin kan reeds een verouderd adres staat. /// Dit voorkomt ook duplicate data in het xml bestand. @@ -101,13 +104,53 @@ Set dtoLeverancierId = ..Leverancier2LeverancierId(Leverancier) Do dtoLeverancierBestand.Leveranciers.Insert(dtoLeverancierId) - set LeverancierBestand = ..ExportXML(dtoLeverancierBestand, Bestandsnaam) + Do ..SchrijfLeverancierDto(Bestandsnaam,dtoLeverancierBestand) $$$TECHErrorTrapOff - Quit LeverancierBestand + Quit $$$OK ]]> + +1 +Bestandsnaam:%String,dtoLeverancierBestand:APPS.LEV.dto.LeverancierBestand +1 + + + + +1 +Bestandsnaam:%String,dtoLeverancierBestand:APPS.LEV.dto.LeverancierBestand +1 + + + Converteer een Leverancier in een dto LeverancierId object @@ -214,17 +257,6 @@ ]]> - -XML:APPS.LEV.dto.LeverancierBestand,Bestandsnaam:%String="" -%Status - - - %Library.CacheStorage ^APPS.LEV.LeverancierServiceD