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