Moin,
Zitat:
Wie lassen sich gezielt BEs aus der Liste mit der Funktion?.entblockieren(blockierliste[1,n])
auswählen?
mit n-Parameter. Dies ist dein Integer. Dieser wird vorher gesetzt. Im Beispiel ist dies auf 1 gesetzt. Also der erste Eintrag in der Liste wird entblockiert.
Zitat:
mit 1,n entblockt er jedes BE aus der Liste.
Nein. Zumindest werden hiermit nicht alle BEs und Sortierer (dies gibt es auch noch) aus der Liste gleichzeitig entblockiert.
...
Mit blockierliste[1,1] wird der erste Eintrag in der Liste entblockiert. (den gibt es immer, sobald PullSteuerung ausgeführt wird)
Mit blockierliste[1,2] wird der zweite Eintrag in der Liste entblockiert. (dieser könnte auch nicht da sein, sodass dies auch vorher zu überprüfen ist)
usw..
Zitat:
Wie ließe sich eine Priorisierung einbauen? D.h. das drei Produkte eine Rangfolge (1 bis 3) besitzen?
ich gehe mal davon aus, dass die Vorgänger keine Sortierer sind (Das macht es einfacher, weil Sortierer sich selbst und nicht das BE in die Blockierliste eintragen)
die Blockierliste, welche mithilfe ?.vBlockierListe(blockierListe) in die Tabelle "blockierListe" kopiert wird, enthält in der ersten Spalte das BE (Typ: Objekt) und in der zweiten Spalte den Eintragungszeitpunkt (Typ: time).
BE1:1 | 10.0000
BE2:1 | 10.0000
....
Nun las uns mal annahmen, dass das BE ein Attribut "Attr_Prio" hat (typ: integer, diskret Variable in Intervall von 1 bis 3).
Es sei dann noch zu entscheiden, ob Attr_Prio = 1 hoch oder tief priorisiert ist
Nun hat die Tabelle blockierListe in zweiten Spalte Zeit eingetragen, was eig. auch unser Attribut "Attr_Prio" aufnehmen könnte.
Beispielsweise:
der durchgestrichene Lösungsansatz ist sehr rechner kostenintensiv ( ..sorry, hatte ein ganz anderes Problem im Kopf gehabt .. )
(1) in diese zweite Spalte - die du sowieso nicht nutzen willst - den "Attr_Prio" von diesem BE reinschreiben.
(2) die Tabelle "blockierListe" mithilfe der zweite Spalte sortieren, sodass der erste Eintrag die höchste prio in Verhältnis zu anderen Einträgen hat
(3) ?.entblocke(blockierliste[1,1]) ...
(1) Variable anlegen "_intPrioAktuell" (integer)
(1.1)-> setzen so, dass auch das BE mit niedrigster Stufe höhere Priorität hat
(2) Variable anlegen "_objAktuell" (object)
(3) Mithilfe einer For-Schleife die "blockierListe" durchgehen
(3.1) ist "_intPrioAktuell" geringer als blokierListe[1,i].Attr_Prio dann merke dieses Objekt in "_objAktuell"
(4) mit ?.entblockieren(_objAktuell) das priorisierte BE entblockieren
Nur am Rande: ein Sortierer statt Pull-Steuerung wäre hierzu auch eine schöne alternative. Der kann auch sortieren
vG
Nadin
------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)
[Diese Nachricht wurde von nadin1223 am 15. Okt. 2021 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP