• AlternatieveMacros Iterator -> Samengesteld
  • SamengesteldeMacros Iterator -> Enkelvoudig
  • ToolVoorschriftIterator (per enkelvoudige bewerking)
  • ]]>
    1 %RegisteredObject APPS.Halux.PPS.ALUFrees.impl.Machine.Machine 1 APPS.Halux.PPS.ALUFrees.impl.Machine.BankVanTools 1 ToolSetValidator 1 APPS.Halux.PPS.ALUFrees.dto.Bewerking 1 APPS.Halux.PPS.ALUFrees.impl.Optimizer.AlternatieveToolSets 1 %Integer 1 %Boolean 0 Machine:APPS.Halux.PPS.ALUFrees.impl.Machine.Machine,Bank:APPS.Halux.PPS.ALUFrees.impl.Machine.BankVanTools,ToolSetValidator:APPS.Halux.PPS.ALUFrees.impl.Optimizer.ToolSetValidator %Status Bewerking:APPS.Halux.PPS.ALUFrees.dto.Bewerking,Macro:APPS.Halux.PPS.ALUFrees.impl.Macros.BewerkingEnkelvoudig,Aantal:%Integer Macro:APPS.Halux.PPS.ALUFrees.impl.Macros.BewerkingEnkelvoudig 1 ",$c(10,13)) #dim DeelOplossingMacro As DeelOplossingMacro = ..ExtendMetSamengesteldeMacros(SamengesteldeMacro) If $isObject(DeelOplossingMacro) { Do ..Bewerking.GeefDeelOplossing().VoegToeMacro(DeelOplossingMacro) } } If '..Bewerking.GeefDeelOplossing().HeeftSets() { Set Fout=##class(APPS.Halux.PPS.ALUFrees.impl.Optimizer.Fout).%New() Set Fout.Bewerking=..Bewerking Set Fout.MacroBewerking=Macro Set Fout.Bank=..Bank Set Fout.Machine=..Machine Set Fout.FoutCode=##class(APPS.Halux.PPS.ALUFrees.enu.OplossingFoutCode).GeenToolsBewerking() Do ..Bewerking.GeefDeelOplossing().VoegToeFout(Fout) } ]]> SamengesteldeMacro:APPS.Halux.PPS.ALUFrees.impl.Macros.Bewerking 1 DeelOplossingMacro ",$c(10,13)) If $isObject(EnkelvoudigeToolSets),EnkelvoudigeToolSets.HeeftSets() { Do DeelOplossingMacro.VoegToe(EnkelvoudigeMacro,ZijVlak,EnkelvoudigeToolSets) } else { Set MacroHeeftTools=0 } } If 'MacroHeeftTools { Set DeelOplossingMacro="" } Quit DeelOplossingMacro ]]> Zijvlak:APPS.Halux.PPS.ALUFrees.enu.Zijvlak,EnkelvoudigeMacro:APPS.Halux.PPS.ALUFrees.impl.Macros.Bewerking 1 %Boolean ",$c(10,13)) #dim VrijeDiepte As %Decimal = ..Bewerking.GeefVrijeDiepte() #dim BewerkingDiepte As %Decimal = ..Bewerking.GeefBewerkingDiepte() #dim Diameter As %Decimal = ..Bewerking.GeefDiameter() #dim AlternatieveTools as AlternatieveTools=ToolVoorschrift.GeefAlternatieveTools(..Bank, Diameter, BewerkingDiepte, VrijeDiepte, ZijvlakTool) ; per voorschrift (incl. alternatieven) moet er steeds tools gedefinieerd worden If AlternatieveTools.HeeftTools() { Write:..Debug " #Sel.Tools:",AlternatieveTools.Aantal() Do ..VoegToeTools(AlternatieveTools,EersteVoorschrift) } else { Write:..Debug " #Sel.Tools:***GEEN***" Set VoorschriftHeeftTools=0 ;indien er een DIRECT gelinkt voorschrift geen tools heeft dan kan de macro niet uitgevoerd worden -> fout ;opmerking : hier geen fout THROW'en, omdat er nog alternatieve bewerkingen kunne zijn } Set EersteVoorschrift=0 } If 'VoorschriftHeeftTools { Set ..VoorschriftToolSets = ##class(AlternatieveToolSets).%New(..ToolSetValidator) } Quit ..VoorschriftToolSets ]]> AlternatieveTools:APPS.Halux.PPS.ALUFrees.impl.Optimizer.AlternatieveTools,EersteVoorschrift:%Boolean 1 %Integer