persistent 0 1 Locations GSQLStorage TECH.Persistent EWMS SQL,NOCREATE 1 dbo.locations 1 1 locm,locg,locx,locy,locz,locid %String 9 insert_time %String 7 loc_id %Integer 2 loc_m %Integer 3 loc_g %Integer 4 loc_x %Integer 5 loc_y %Integer 6 loc_z %Integer 8 state w ##class(EWMS.Locations).DeleteEmpty(2,1,1,1) 1 LocM,LocG,LocX,LocY,Forced 1 LocM:%Integer,LocG:%Integer,LocX:%Integer,LocY:%Integer,LocZ:%Integer=1,LocID:%String="00000000",IsNietBezet:%Boolean=1,InsertTime:%TimeStamp="" 1 %Status 1 Locatie:%Library.String,LocID:%Library.String,SQLGCWrapper:%Library.String %Library.List 0) Do RS.%Close() Quit:(LocationExists) $LB(3,"Locatie object bestaat reeds (LocID: "_LocID_", Locatie: "_$$LCVT^vhLib(Locatie)_").") New LocationsObj,Status ;Als LocM=TRANSIT, maak een nieuw Location object aan If ##class(BL.MB.UGLYPicking.General).LocMIsInTransit($LI(Locatie)) Do . Set LocationsObj=##class(EWMS.Locations).%New() . Set LocationsObj.locid=LocID . Set LocationsObj.locm=$LI(Locatie,1) . Set LocationsObj.locg=$LI(Locatie,2) . Set LocationsObj.locx=$LI(Locatie,3) . Set LocationsObj.locy=$LI(Locatie,4) . Set LocationsObj.locz=$LI(Locatie,5) . Set LocationsObj.inserttime=$$GetEWMSInsertTime^vhLib() . Set Status=$LB(2,"TRANSIT Locations object aangemaakt.") ;Zoniet open het bestaande Else Do . New LocationsID . Set LocationsID=##class(EWMS.Locations).ComposeID($LI(Locatie,1),$LI(Locatie,2),$LI(Locatie,3),$LI(Locatie,4),$LI(Locatie,5),"00000000") . If '##class(EWMS.Locations).%ExistsId(LocationsID) Do Quit .. Set Status=$LB(-4,"Locations object met ID '"_LocationsID_"' bestaat niet.") . Set LocationsObj=##class(EWMS.Locations).%OpenId(LocationsID) . If LocationsObj=$$$NULLOREF Do Quit .. Set Status=$LB(-1,"Kan Locations object met ID '"_LocationsID_"' niet openen.") . ;Geopend object kopiëren naar nieuw, met enkel verschillend LocID . New NewLocationsObj . Set NewLocationsObj=LocationsObj.CopyObject(LocID) . If NewLocationsObj=$$$NULLOREF Do Quit .. Set Status=$LB(-5,"Kan geen copy van het Locations object met ID '"_LocationsID_"' maken.") . Do LocationsObj.%Close() . Set LocationsObj=NewLocationsObj . Set Status=$LB(1,"Nieuw Locations object is succesvol aangemaakt (copy van Locations object met LocID='00000000').") . New tmpStatus . Set tmpStatus=##class(EWMS.Locations).%DeleteId(LocationsID) ;Locations object met LocID '00000000' verwijderen. . Set:($$$ISERR(tmpStatus)) Status=$LB(-6,"Delete Error:"_$C(13,10)_$$ParseStatus^vhLib(tmpStatus)) Quit:($LI(Status)<0) Status ;Status van Locations instellen op 2 Set LocationsObj.state=2 ;De boel saven New tmpStatus Set tmpStatus=LocationsObj.%Save() Do LocationsObj.%Close() ;Vroegtijdig afsluiten indien fout bij Save Quit:($$$ISERR(tmpStatus)) $LB(-2,"Save Error:"_$C(13,10)_$$ParseStatus^vhLib(tmpStatus)) //--------------------------------------------------------------------------------- // History 'DROP' //--------------------------------------------------------------------------------- New HistLocObj Set HistLocObj=##class(EWMS.History.Transport).%New() Quit:(HistLocObj=$$$NULLOREF) $LB(-7,"Kan geen nieuw EWMS.History.Transport object aanmaken.") Set HistLocObj.Action="UDRP" Set HistLocObj.InsertTime=$$GetEWMSInsertTime^vhLib() Set HistLocObj.LocID=LocID Set HistLocObj.LocM=$LI(Locatie,1) Set HistLocObj.LocG=$LI(Locatie,2) Set HistLocObj.LocX=$LI(Locatie,3) Set HistLocObj.LocY=$LI(Locatie,4) Set HistLocObj.LocZ=$LI(Locatie,5) Set:('HistLocObj.Save(SQLGCWrapper)) Status=$LB(-3,"Fout tijdens het bewaren van "_HistLocObj.%ClassName(1)_"(BezetLocation).") Do HistLocObj.%Close() Quit Status ]]> 1 LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String,LocZ:%Library.String,LocID:%Library.String,ReturnEmptyWhenNew:%Library.Boolean=0 %Library.String LocID:%Library.String,LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String,LocZ:%Library.String,CopyInsertTime:%Library.Boolean=0 %Library.Integer 1 %Library.String 1 Locatie:%Library.String,LocID:%Library.String,QuitWhenPalletIsInInventory:%Library.Boolean=1,SQLGCWrapper:%Library.String %Library.List 0) . Do RS.%Close() Quit:(PalletExists) $LB(2,"Pallet bestaat nog in Inventory, locations blijft.") //Checken of opgegeven object bestaat New RS Set RS=##class(%ResultSet).%New("EWMS.Locations:CheckIfLocationExists") Do RS.Execute(LocID,$LI(Locatie,1),$LI(Locatie,2),$LI(Locatie,3),$LI(Locatie,4),$LI(Locatie,5)) Do RS.Next() New LocationExists Set LocationExists=(RS.Get("Count")>0) Do RS.%Close() Quit:('LocationExists) $LB(1,"Locatie object bestaat niet (LocID: "_LocID_", Locatie: "_$$LCVT^vhLib(Locatie)_").") //ID van Locations object samenstellen New LocationsID Set LocationsID=##class(EWMS.Locations).ComposeID($LI(Locatie,1),$LI(Locatie,2),$LI(Locatie,3),$LI(Locatie,4),$LI(Locatie,5),LocID) //Checken of het om transit locations gaat, indien wel locations object verwijderen aangezien //er voor transit steeds nieuwe locaties worden aangemaakt (zie BezetLocation) New Status If ##class(BL.MB.UGLYPicking.General).LocMIsInTransit($LI(Locatie)) Do . New tmpStatus . Set tmpStatus=##class(EWMS.Locations).%DeleteId(LocationsID) . If $$$ISOK(tmpStatus) Do .. Set Status=$LB(2,"TRANSIT object succesvol verwijderd.") . Else Do .. Set Status=$LB(-1,"Delete Error:"_$C(13,10)_$$ParseStatus^vhLib(tmpStatus)) Else Do . //Bij niet-TRANSIT, object ook verwijderen maar wel eerst een '00000000' copy aanmaken . New CopyLocactionsID . Set CopyLocactionsID=##class(EWMS.Locations).ComposeID($LI(Locatie,1),$LI(Locatie,2),$LI(Locatie,3),$LI(Locatie,4),$LI(Locatie,5),"00000000",1) . If CopyLocactionsID="" Do ;Indien leeg, dan bestaat de locatie niet en maken we ze aan .. New LocationsObj .. Set LocationsObj=##class(EWMS.Locations).%OpenId(LocationsID) .. If LocationsObj=$$$NULLOREF Do Quit ... Set Status=$LB(-2,"Kan Locations object met ID '"_LocationsID_"' niet openen.") .. ;Geopend object kopiëren naar nieuw, met enkel verschillend LocID .. New NewLocationsObj .. Set NewLocationsObj=LocationsObj.CopyObject("00000000") .. If NewLocationsObj=$$$NULLOREF Do Quit ... Set Status=$LB(-3,"Kan geen copy van het Locations object met ID '"_LocationsID_"' maken.") .. Do LocationsObj.%Close() .. ;Status van Locations instellen op 1 .. Set NewLocationsObj.state=1 .. ;De boel saven .. New tmpStatus .. Set tmpStatus=NewLocationsObj.%Save() .. Do NewLocationsObj.%Close() .. If $$$ISOK(tmpStatus) Do ... Set Status=$LB(3,"Locations object terug ingesteld op LocID='00000000'.") .. Else Do ... Set Status=$LB(-4,"Save Error:"_$C(13,10)_$$ParseStatus^vhLib(tmpStatus)) . Else Do .. Set Status=$LB(4,"Locations object vrijgegeven, object met LocID='00000000' bestond reeds.") . Set tmpStatus=##class(EWMS.Locations).%DeleteId(LocationsID) ;Locations object verwijderen. . Set:($$$ISERR(tmpStatus)) Status=$LB(-6,"Delete Error:"_$C(13,10)_$$ParseStatus^vhLib(tmpStatus)) Quit:($LI(Status)<0) Status //--------------------------------------------------------------------------------- // History 'PICK' //--------------------------------------------------------------------------------- New HistLocObj Set HistLocObj=##class(EWMS.History.Transport).%New() Quit:(HistLocObj=$$$NULLOREF) $LB(-7,"Kan geen nieuw EWMS.History.Transport object aanmaken.") Set HistLocObj.Action="UPCK" Set HistLocObj.InsertTime=$$GetEWMSInsertTime^vhLib() Set HistLocObj.LocID=LocID Set HistLocObj.LocM=$LI(Locatie,1) Set HistLocObj.LocG=$LI(Locatie,2) Set HistLocObj.LocX=$LI(Locatie,3) Set HistLocObj.LocY=$LI(Locatie,4) Set HistLocObj.LocZ=$LI(Locatie,5) Set:('HistLocObj.Save(SQLGCWrapper)) Status=$LB(-5,"Fout tijdens het bewaren van "_HistLocObj.%ClassName(1)_"(LeegLocation).") Do HistLocObj.%Close() Quit Status ]]> 1 %Boolean 1 lbLocation:%Library.List %Library.List 1 PalletID:%Library.String,LocM:%Library.String %Library.String 1 LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String %Boolean 0) } Quit BestaatLocatie ]]> 1 LocatieAlsLijst:%List %Boolean 1 LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String 1 %Boolean %Library.SQLQuery LocID:%Library.String,LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String,LocZ:%Library.String SELECT Count(loc_id) FROM EWMS.Locations WHERE (loc_id = :LocID) AND (loc_m = :LocM) AND (loc_g = :LocG) AND (loc_x = :LocX) AND (loc_y = :LocY) AND (loc_z = :LocZ) %Library.SQLQuery LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String SELECT Count(loc_id) As Aantal FROM EWMS.Locations WHERE (loc_m = :LocM) AND (loc_g = :LocG) AND (loc_x = :LocX) AND (loc_y = :LocY) levert een record terug als de locatie leeg is %Library.SQLQuery LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String SELECT loc_z FROM EWMS.Locations WHERE (loc_m = :LocM) AND (loc_g = :LocG) AND (loc_x = :LocX) AND (loc_y = :LocY) AND (loc_id= '00000000 ') levert geen record terug als de transitlocatie leeg is %Library.SQLQuery LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String,LocID:%String SELECT loc_z FROM EWMS.Locations WHERE (loc_m = :LocM) AND (loc_g = :LocG) AND (loc_x = :LocX) AND (loc_y = :LocY) AND (loc_id= :LocID) %Library.SQLQuery LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String SELECT i.loc_id,i.Product,i.Last_Cycle_Count,i.Insert_Time FROM EWMS.Inventory i LEFT OUTER JOIN EWMS.Locations l on i.Loc_Id=l.Loc_ID WHERE (l.loc_m = :LocM) AND (l.loc_g = :LocG) AND (l.loc_x = :LocX) AND (l.loc_y = :LocY) ORDER BY i.Loc_Id %Library.SQLQuery LocM:%Library.String,LocG:%Library.String,LocX:%Library.String,LocY:%Library.String,LocZ:%Library.String SELECT state FROM EWMS.Locations WHERE (loc_m = :LocM) AND (loc_g = :LocG) AND (loc_x = :LocX) AND (loc_y = :LocY) AND (loc_z = :LocZ) Geef LocID op (bijv 9999999X) Krijg M,G,X,Y,Z terug %Library.SQLQuery paLocID:%Library.String SELECT loc_g, loc_m, loc_x, loc_y, loc_z FROM EWMS.Locations WHERE (loc_id = :paLocID) Verwacht TransLoc formaat of dé Transit-Locatie "04020101" 1 LocatieID:%String %String 1 TransLoc:%String %ListOfDataTypes %Library.SQLQuery VhossStartsWith:%String="O1" 1]]> 1 VhossStartsWith:%String="O1" %Boolean 0) } Quit AantalVhossOpMeerdereLocaties ]]> %Library.CacheSQLStorage ^EWMS.LocationsS