Verwijderen en opbouw van de magazijnlocaties. Locations, Channel en TransLoc tabel worden bewerkt Vertrekken van de nieuwe locatie codering worden de locations, channels en transloc opgebouwd. 1 %RegisteredObject %Integer %Integer %Integer %Integer %Integer %Integer %String Hoeveel X subnivo er zijn %Integer Richting van het X subnivo (A, B, C, ...) of (..., C, B, A) %Integer Als het de bovenste locatie is dan wordt het etiket vertikaal gezet Indien dit niet gewenst is dan moet NoTopDetection op true gezet worden %Boolean Verwijderen zonder controle ofdat er een pallet op staat %Integer Al dan niet creatie van de locaties %Integer Al dan niet afdrukken van de labels %Integer %String %String %String BL.Sys.LabelPrinter Instantiatie kan in meerdere modes: CreateMag : Creatie van de location, channel en transloc tabellen indien CreateMag=2 dan worden de locations verwijderd ook al zijn ze gekoppeld aan een een pallet indien CreateMag=1 dan worden de locations alleen verwijderd als ze niet gekoppeld zijn indien createMag=0 dan worden de locations enkel getoond op het scherm, en gebeurt er geen wijziging in de databank. CreateLabel : Creatie van de labels (boolean: 0=false; 1=true). 1 CreateMag,CreateLabel Initialisatie van Buiding en Magazijn(hal) WMSMag,TransBuilding,TransHal Initialisatie van de gang Dient uitgevoerd bij elke nieuwe gang WMSGang,TransGang,VakGroteX,DirX,WMSLocYStart TransXVan,TransXTot,VakVan,VakTot,TransYVan,TransYTot ",LocM," ",LocG," ",LocX," ",LocY,! . . . Quit:'LocM . . . If ..CreateMag Do ; geen creatie van gangen . . . . &sql(Update EWMS.Locations set state=6 where loc_m=:LocM and loc_g=:LocG and loc_x=:LocX and loc_y=:LocY) . . . . Write SQLCODE ]]> Creatie van de locaties beperkt tot de ingestelde building, magazijn en gang. @Param WMSLocXVan Dit is de LocX voor vak A; ook als je bvb nu vak D wilt toevoegen! Let op: Als bvb pas vanaf vak D in een bepaalde LocG-waarde zit, dan is de eerste LocX in die "gang" degene voor vak "D", maar moet WMSLocXVan de waarde krijgen die vak A zou krijgen als vak A ook in deze "gang" zou gezeten hebben. Let op: WMSLocX+VakAantal mag niet boven 69 of 70 gaan. Zoniet zal het EWMS niet werken bij volgende herstart! @Param VakAantal is eigenlijk de "Tot" voor de horizontale "geletterde" vakken: als je vak E (=5) wilt toevoegen, moet je hier 5 invullen. @Param WMSLocYVan Dit is de LocY voor verticale vak 1; ook als je bvb nu vak 6 wilt toevoegen! @Param TransYVan Dit is de Y-waarde in de "transloc" van het eerste nieuw toe te voegen verticale vak. @Param LimVakAlfa Dit is het vaknummer dat nu mag toegevoegd worden. Indien afwezig wordt van A tot ... toegevoegd (te kiezen via VakAantal). WMSLocXVan,TransXVan,TransXTot,VakAantal,WMSLocYVan,TransYVan,TransYTot,LimVakAlfa 7 . For Vak=$S(..DirX>0:1,1:VakAantal):..DirX:$S(..DirX>0:VakAantal,1:1) Do . . Set LocXa=$C($A("A")-1+Vak) . . Set ..WMSLocX=..WMSLocX+1 . . For TransY=TransYVan:1:TransYTot Do . . . Set LocTrans=##class(EWMS.TransLoc).Concat(..TransBuilding,..TransHal,..TransGang ,TransX,LocXa,TransY) . . . Set WMSLocY=WMSLocYVan-1+TransY . . . ;Write "Createloc: ",LimVakAlfa," ",LocXa," ",LimVakAlfa'=LocXa . . . Quit:$L($G(LimVakAlfa))&&(LimVakAlfa'=LocXa) . . . Write ..WMSMag,*9,..WMSGang,*9,..WMSLocX,*9,WMSLocY,*9,LocTrans,! . . . ;Write "Createloc: ",..WMSMag," ",..WMSGang," ",..WMSLocX," ",WMSLocY,"<->",LocTrans,! . . . Set sc=..CreateLoc(..WMSMag,..WMSGang,..WMSLocX,WMSLocY,LocTrans) . . . Write:$$$ISERR(sc) "error Createloc:",$$ParseStatus^vhLib(sc) . . . Do ..CreateLabel(LocTrans) ]]> Ganse gang wordt weggehaald door probleemm met nested embedded SQL worden de te verwijderen locaties eerst in een array opgeslagen en pas daarna verwijderd Forced Verwijderen van de locaties opgeslagen in een array door probleemm met nested embedded SQL worden de te verwijderen locaties eerst in een array opgeslagen en pas daarna verwijderd 1 Verwijderen van een locatie, channel en transloc. Indien Forced=true dan worden ook niet lege locaties verwijderd LocM,LocG,LocX,LocY,Forced 1 LocM,LocG,LocX,LocY,LocTrans 1 MaxLocX) || (LocY > MaxLocY)) { w "Locatie ("_LocX_","_LocY_") valt buiten het geldige bereik:" If (LocX > MaxLocX) { w " x-positie is groter dan "_MaxLocX } If (LocY > MaxLocY) { w " y-positie is groter dan "_MaxLocY } w ! Quit $$$OK } Set sc=##class(EWMS.Channel).Create(LocM,LocG,LocX,LocY) Quit:$$$ISERR(sc) sc Set sc=##class(EWMS.Locations).CreateEmpty(LocM,LocG,LocX,LocY) Quit:$$$ISERR(sc) sc Set sc=##class(EWMS.TransLoc).Create(LocM,LocG,LocX,LocY,LocTrans,$G(IsPickbaar,0)) Quit sc ]]> TransXVan,TransXTot TransXTot . Write "reprint ",LocTrans,! . Set arReprint(LocTrans)="" Set LocTrans="" For Set LocTrans=$O(arReprint(LocTrans)) Quit:LocTrans="" Do . Do ..CreateLabel(LocTrans) &sql(CLOSE Reprint) ]]> Creatie van een locatie, channel en transloc LocTrans d ##class(BL.MB.UGLYPicking.Locations).%New().DeleteMag3Gang8Tot8() d ##class(BL.MB.UGLYPicking.Locations).%New().DeleteMag2en3() LocID,LocG,LocX,LocY w ##class(BL.MB.UGLYPicking.Locations).%New().Move2Ugly("00079938","01D01A01") LocID,LocTrans