Ansicht
Dokumentation

/SAPAPO/OM_TIMESTREAM_CHANGE - Zeitstrahl anlegen, löschen und ändern

/SAPAPO/OM_TIMESTREAM_CHANGE - Zeitstrahl anlegen, löschen und ändern

PERFORM Short Reference   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Der vorliegende Funkiontsbaustein ruft eine COM-Routine des APO-liveCache, die einen Zeitstrahl im liveCache erzeugt, löscht oder ändert (je nach Inhalt des Parameters IV_METHOD).

Der Zeitstrahl definiert Arbeitsperioden, Pausen, Schichten, sowie Leistungsgrad und Kapazitätsangebot in diesen Perioden.

Neben der APO-internen Zeitstrahl-ID (als GUID) erwartet dieser Funktionsbaustein die Tabelle IT_TIMESTREAM. Jede Zeile dieser Tabelle definiert ein Zeitintervall, in dem eine Arbeitszeit, d.h. eine Schicht oder einen Teil einer Schicht, liegt. Die Tabelle halt folgende Felder:

Ausserhalb der durch die Tabelle definierten Perioden gelten folgende Defaults: netto=brutto, der Leistungsgrad = 100%, es gibt keine Pausen, das Kapazitätsangebot ist 1 (Hier benötigen wir noch einen Default für MultiActivity-Resourcen).

  • START_TSTAMP (DEC 15):
Startzeitpunkt des Arbeitszeitintervalls (bezogen auf UTC-Zeit).
  • END_TSTAMP (DEC 15):
Zeitpunkt des Endes des betreffenden Arbeitszeitintervalls
  • NETTO_KUM (INT4):
Kumulierte Nettoarbeitszeit (in Sekunden). Das Feld kumuliert die Nettoarbeitszeiten über alle vorangehenden Arbeitszeitintervalle des Zeitstrahls.
Gegeben sei eine Tabelle mit n Zeilen, im folgenden 0<=i<=n-1.
  • zeile(i) beschreibt eine Arbeitszeit i bestehend aus Folgendem:

  • start(i) bezeichnet START_TSTAMP von Arbeitszeit i,

  • end(i) ist END_TSTAMP von Arbeitszeit i,

  • pause(i) bezeichnet die Pause zwischen Arbeitszeit i und i+1,

  • netto(i) ist NETTO_KUM.

Es gilt:
start(i+1) = end(i) + pause(i).
Die Zeit einer terminierten Pause ist also implizit durch die zeitliche Lücke zwischen zwei Tabellenzeilen gegeben. Die Pausenzeit kann aber auch 0 sein, z.B. dann, wenn ein Schichtwechsel ohne Pause stattfindet, oder wenn sich der Leistungsgrad und/oder das Kapazitätsangebot ändern.
netto(i+1) = netto(i) +
(end(i+1) - start(i+1))
* (100 - unterminiertePause(i+1)) /100
Dabei ist zu beachten, dass das Netto unterminierte Pausen bereits
enthält:
gilt netto(i+1)-netto(i) < end(i+1) - start(i+1),
so besteht die Differenz aus unterminierten Pausenzeiten.
  • REAL_KUM (INT4):
Kumulierte reale (effektive) Arbeitszeit in Sekunden. Im Unterschied zur Nettozeit wird in die reale Zeit der Leistungsgrad mit eingerechnet. Realarbeitszeit = Nettoarbeitszeit * Leistungsgrad / 100;
real(i+1) = real(i) + (end(i+1)-start(i+1)
*(100-unterminiertPause(i+1))
* Leistungsgrad(i+1)/ 10000
  • TOTAL_KUM (INT4):
Kumulierte totale Arbeitszeit in Sekunden. Bei der totalen Arbeitszeit wird zur realen Arbeitszeit des jeweiligen Arbeitszeitintervalls die vorangehende Pause als Arbeitszeit mit eingerechnet. Die Pausenzeit wirddurch den noch gültigen Leistungsgrad aus der vorangehenden Periode modifiziert.
total(i+1) = real(i) + pause(i) * Leistungsgrad(i)/ 100
  • CAPACITY (INT4):
Das Kapazitätsangebot, das zu jedem Zeitpunkt des gesamten Arbeitszeitintervalls gilt. Dazu ein Beispiel: bei einer SingleActivity-Resource ist das Angebot in der Regel 1, damit kann höchsten eine Aktivität ohne Überlast bearbeitet werden. Eine Down-Zeit kann dann durch ein Angebot 0 modelliert werden.
Bei einer Gruppe von 'k' Maschinen würde ein Angebotswert 'k' ausdrücken, dass 'k' Aktivitäten parellel abgearbeitet werden könnten.
Das Kapazitätsangebot der gesamten Periode ist deshalb ein Produkt:
(netto(i+1) - netto(i)) * capacity(i)
  • NEW_SHIFT (INT1):
Flag, das einen Schichtwechsel anzeigt. NEW_SHIFT = 0, falls das Arbeitszeitintervall zur gleichen Schicht gehört wie das vorangehende Arbeitszeitintervall. NEW_SHIFT = 1, falls eine neue Schicht beginnt.

Der Zeitstrahl im liveCache dient primär der effizienten Terminierung auf Resourcen. Dazu wird das Feld NETTO_KUM benutzt.

Das Feld REAL_KUM wird benutzt, um die effektive Bearbeitungszeit einer Aktivität aus ihrer Nettobearbeitungszeit zu ermitteln. Die Funktionen des Zeitstrahls legen dabei während der Terminierung die Start- und Endtermine immer in Arbeitsperioden.

Das Feld TOTAL_KUM wird benutzt, um Aktivitäten auch in Pausenzeiten zu terminieren, oder an Feiertagen ect, insbesondere dürfen sie dann auch zu diesen Zeiten starten bzw. enden.

Beispiel

Hinweise

Abzufragende Fehlercodes:

  • om_invalid_timestream: Ungültiger Zeitstrahl
  • om_timestream_in_use: Zeitstrahl wird noch von mindestens einer Ressource benutzt und kann deshalb nicht überschrieben werden.

Weiterführende Informationen





Parameter

ET_CHANGED_ORDERS
ET_RC
IS_GEN_PARAMS
IT_TIMESTREAM
IV_METHOD
IV_RESID
IV_SIMSESSION
IV_TIMEDIFF
IV_TSTREAMID

Ausnahmen

LC_APPL_ERROR
LC_COM_ERROR
LC_CONNECT_FAILED

Funktionsgruppe

APO/SAPLOM_RESOURCE

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6725 Date: 20240425 Time: 184847     sap01-206 ( 90 ms )