Inhaltsverzeichnis
Beispiel - Benachrichtung - Überlast an Ressource nach FA-Einplanung
Das folgende Beispiel zeigt eine automatische Benachrichtigung nach erfolgter Terminierung eines Fertigungsauftrags an, wenn durch die Einplanung eine Überlast an einem in einem Fertigungsauftrag verwendeten Arbeitsplatz erzeugt wurde.
„Überlast“ bedeutet, an mindestens einem verwendeten Arbeitsplatz übersteigt die benötigte Kapazität an mindestens einem Tag im Zeitraum „Start 1. AG“ bis „Ende letzter AG“ (= Durchlaufzeit der gesamten FA-Position) die verfügbare Kapazität.
Einrichtung Workflowaktion
Für das Ereignis „cd4027 Fertigungsauflösung - Auflösung für Auftrag IKEY1 beendet“ wird die folgende Aktion definiert:
Formel
declare
min_ag_start = date not null with default,
max_ag_start = date not null with default,
char_dummy = varchar(100) not null with default,
int_dummy = integer not null with default,
arbeitsplatz = integer not null with default,
enddeclare
begin
/* Kleinsten Starttermin eines AG holen. */
select min_ag_start = ifnull(min(ag_start), )
from fert_zeitsatz
where auftrags_nr = :ikey1
and pos_nr1 = :ikey3
and arbeitsgang != 9999;
/* Grössten Starttermin eines AG holen. */
select max_ag_start = ifnull(max(ag_start), )
from fert_zeitsatz
where auftrags_nr = :ikey1
and pos_nr1 = :ikey3
and arbeitsgang != 9999;
/* Jeden Arbeitsplatz im angegebenen Bereich prüfen. */
select distinct arbeitsplatz = arbeitsplatz
from fert_zeitsatz
where auftrags_nr = :ikey1
and pos_nr1 = :ikey3
and arbeitsgang != 9999
begin
char_dummy = '%' + varchar(arbeitsplatz);
int_dummy = 0;
select int_dummy = 1
from fert_tkapazitaet_vorgabe
where satz_kennzeichen = 1
and werkzeug_nr like :char_dummy
and datum between :min_ag_start and :max_ag_start
and kapazitaet_gesamt - bedarf_gesamt_standard < 0;
if int_dummy = 1 then
ResultString = 'Überlast bei Arbeitsplatz ' + varchar(arbeitsplatz) +
' im FA ' + text(ikey1) + ', Position ' + text(ikey3);
return true;
endif;
end;
return false;
end

