Index: WSimpl/Vhisie4/Winkelkar/WinkelkarService/VerwijderLijn.cls.xml =================================================================== diff -u -r50446 -r54004 --- WSimpl/Vhisie4/Winkelkar/WinkelkarService/VerwijderLijn.cls.xml (.../VerwijderLijn.cls.xml) (revision 50446) +++ WSimpl/Vhisie4/Winkelkar/WinkelkarService/VerwijderLijn.cls.xml (.../VerwijderLijn.cls.xml) (revision 54004) @@ -18,8 +18,13 @@ 1 + +vhLib.Logger +1 + + -WinkelkarService:APPS.EC.Winkelkar.impl.WinkelkarService,WinkelkarRepository:WSimpl.Vhisie4.Winkelkar.WinkelkarRepository,LijnRepository:WSimpl.Vhisie4.Winkelkar.WinkelkarLijnRepository +WinkelkarService:APPS.EC.Winkelkar.impl.WinkelkarService,WinkelkarRepository:WSimpl.Vhisie4.Winkelkar.WinkelkarRepository,LijnRepository:WSimpl.Vhisie4.Winkelkar.WinkelkarLijnRepository,Logger:vhLib.Logger 1 1 %Status @@ -28,6 +33,8 @@ Set ..WinkelkarService = $$$Inject(WinkelkarService, ##class(APPS.EC.Winkelkar.impl.WinkelkarService).%New()) Set ..WinkelkarRepository = $$$Inject(WinkelkarRepository,##class(WSimpl.Vhisie4.Winkelkar.WinkelkarRepository).%New()) Set ..LijnRepository = $$$Inject(LijnRepository, ##class(WSimpl.Vhisie4.Winkelkar.WinkelkarLijnRepository).%New()) + Set ..Logger = $$$Inject(Logger, ##class(vhLib.Logger).%New()) + Quit $$$OK ]]> @@ -38,27 +45,37 @@ Lock +^Vhisie4.Winkelkar(VerwijderLijnRequest.WinkelkarId, VerwijderLijnRequest.LijnId):0 Else Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.LockedException).%New("Winkelkar '" _VerwijderLijnRequest.WinkelkarId _"' is gelocked door een andere webservice call. Probeer later opnieuw.")) Try { - - Do ..ControleerExterneLijnId(VerwijderLijnRequest.WinkelkarId, VerwijderLijnRequest.LijnId) - - #dim WinkelkarID As %String = ..WinkelkarRepository.GeefWinkelkarIDViaID(VerwijderLijnRequest.WinkelkarId) - #dim LijnID As %String = ..LijnRepository.GeefLijnIDViaID(VerwijderLijnRequest.LijnId) + If $$$Not(..LijnRepository.BestaatViaID(VerwijderLijnRequest.LijnId)) { + ; als de lijn niet bestaat, kunnen we daar niet veel aan doen. ITR wilt ze verwijderen, en ze bestaat bij ons al niet meer. -> geen error smijten, alleen loggen + #dim Melding As %String = ##class(TECH.StringUtils).BuildText("Winkelkarlijn met ExterneId '{0}' van Winkelkar met ExterneId '{1}', bestaat niet!",VerwijderLijnRequest.LijnId, VerwijderLijnRequest.WinkelkarId) + Set Melding = Melding _ $$$CRLF _ "Geen actie nodig, OV wordt verwittigd indien nodig bij de bestelwinkelkar indien ITR winkelkar niet overeenkomt met Cache" + Do ..Logger.Error("VerwijderWinkelkarLijn",Melding) + } else { + #dim WinkelkarID As %String = ..WinkelkarRepository.GeefWinkelkarIDViaID(VerwijderLijnRequest.WinkelkarId) + #dim LijnID As %String = ..LijnRepository.GeefLijnIDViaID(VerwijderLijnRequest.LijnId) - if $$$Not(##class(TECH.StringUtils).StartsWith(LijnID,WinkelkarID)) { - Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.InvalidInputException).%New("Winkelkarlijn met id '" _ VerwijderLijnRequest.LijnId _ "' behoort niet tot winkelkar met id '" _ VerwijderLijnRequest.WinkelkarId_"'")) - } + if $$$Not(##class(TECH.StringUtils).StartsWith(LijnID,WinkelkarID)) { + Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.InvalidInputException).%New("Winkelkarlijn met id '" _ VerwijderLijnRequest.LijnId _ "' behoort niet tot winkelkar met id '" _ VerwijderLijnRequest.WinkelkarId_"'")) + } - Do ..WinkelkarService.VerwijderLijn(WinkelkarID, LijnID) + Do ..WinkelkarService.VerwijderLijn(WinkelkarID, LijnID) + } } Catch { Lock -^Vhisie4.Winkelkar(VerwijderLijnRequest.WinkelkarId,VerwijderLijnRequest.LijnId) - Do ##class(TECH.ExceptionHandler).Rethrow() + + #dim Exception as TECH.IException = ##class(TECH.ExceptionHandler).Catch() + if $$$Not(Exception.%ClassName(1) = ##class(TECH.Exceptions.DataNotFoundException).%ClassName(1)) { + Do ##class(TECH.ExceptionHandler).Rethrow(Exception) + } + + } Lock -^Vhisie4.Winkelkar(VerwijderLijnRequest.WinkelkarId,VerwijderLijnRequest.LijnId) ]]> - + ExternId:%String,ExterneLijnId:%String 1 - +