Ergänzungsroutine aufrufen - Übersicht

In diesem Abschnitt wird beschrieben, wie die Ergänzungsroutine mit einem Makro aufgerufen wird, um geplante Aufträge für eine Kombination aus Artikel und Ort aus der angegebenen Startperiode und bis zu einem bestimmten Horizont zu generieren.

Voraussetzungen:

Der Benutzer muss Zugriff auf das Makro sowie auf die für den aktuellen Zyklus definierte Ergänzungsroutine haben. Ansonsten zeigt das Makro bei der Ausführung den folgenden Fehler an:

Benutzer {1} hat keinen Zugriff auf Ergänzungsroutine {0}.

Datensicherheitsregeln gelten für den aktuellen Benutzer, der das Makro ausführt, wenn der Artikel und die Ortselemente bestimmt werden, die an die Ergänzungsroutine zur Berechnung weitergegeben werden sollen. Zum Beispiel:

  • CallReplenishmentEngine ("Marke A", "US", "", "")
  • Wenn die Datensicherheit des aktuellen Benutzers die Anzeige von Marke A oder von Basiselementen, die mit Marke A in der Artikelhierarchie verknüpft sind, nicht erlaubt, wird die ausgewählte Sicherheit nicht an die Routine weitergegeben.
  • Wenn der Benutzer auf eine Teilmenge eines mit Marke A verknüpften Basiselements zugreifen kann, werden die Pläne nur für diese Artikel berechnet.
  • Wenn die Datensicherheit des Benutzers die Anzeige von Orten in den USA oder anderen Basisorten, die mit der USA in der Ortshierarchie verknüpft sind, nicht erlaubt, werden die ausgewählten Daten nicht an die Routine weitergeleitet.
  • Wenn der Benutzer auf eine Teilmenge eines mit der USA verknüpften Basiselements in der Ortshierarchie zugreifen kann, werden die Pläne nur für diese Orte berechnet.

Ergänzungsroutine aufrufen

Die grundlegende Folge zum Aufrufen der Ergänzungsroutine über den Makrobefehl CallReplenishmentEngine lautet wie folgt:

  • Für den aktuellen Zyklus definierte Ergänzungsroutine bestimmen.
  • Artikel und den Ort für die Planung festlegen.
  • Alle anderen Makroparameter verarbeiten.

So rufen Sie die Ergänzungsroutine auf:

  1. Wählen Sie den Pfad Konfiguration > Zyklus > Makros. Die Seite Makro wird angezeigt.
  2. Erstellen Sie einen neuen Makrobefehl der Art CallReplenishmentEngine. Siehe Makros erstellen.
  3. Rufen Sie die Zuordnungskennzahlen für die Beschaffungszuteilung und die Attribute für die Routinekonfiguration ab.
    Hinweis: Alle Beschaffungszuteilungszuordnungen sind erforderlich und müssen validiert werden, um sicherzustellen, dass die richtigen Attribute ausgewählt werden.
  4. Rufen Sie die Planungsregel für alle Kombinationen aus Artikel und Ort ab, die mit den Kennzahlzuordnungen für Artikel und Ort der Ergänzungsroutine eingeplant werden sollen. Die Ergänzungsroutine verarbeitet alle Kombinationen aus Artikel und Ort in dem Makroaufruf, in dem die Planungsregel angezeigt wird.
  5. Rufen Sie die Reihenfolge-ID für alle Kombinationen aus Artikel und Ort für die Planung ab. Die Reihenfolge der Kombinationen aus Artikel und Ort wird in aufsteigender Reihenfolge der Reihenfolge-ID an die Routine weitergegeben. Durch diesen Vorgang wird sichergestellt, dass alle Kombinationen aus Artikel und Ort verarbeitet werden, um die Weitergabe der neuesten Anforderungen über das Beschaffungsnetzwerk zu ermöglichen. Beispiel: Die geplanten Aufträge eines von der Routine generierten Lagers werden als Anforderungen an die Produktionseinrichtung weitergegeben.
    Hinweis: 
    • Erstellen Sie auf Basis der Reihenfolge-ID den einzelnen Artikel, den Ort und die Reihenfolge der Ergänzungsroutine, und bereiten Sie diese vor.
    • Wenn keine Reihenfolge-ID definiert ist, werden die Kombinationen aus Artikel und Ort in der entsprechenden Reihenfolge verarbeitet. Möglicherweise erhalten Sie unerwartete Ergebnisse, wenn die verbundene Kombination aus Artikel und Ort nicht in einer Reihenfolge sortiert wird.
  6. Prüfen Sie das Standardbeschaffungsverfahren für den aktuellen Artikel und Ort:
    • Wenn der Wert des zugeordneten Standardbeschaffungsverfahrens nicht 1, 2 oder 3 ist, wird die Kombination aus Artikel und Ort nicht berücksichtigt. Die folgende Fehlermeldung wird in das Routine-Fehlerprotokoll geschrieben:
      Das Beschaffungsverfahren {1} ist ungültig. Der Wert muss 1, 2 oder 3 lauten.
  7. Prüfen Sie das Inkrement des aktuellen Artikels und Orts:
    • Dieser Parameter ist einer Kennzahlzuordnung zugeordnet, die mit der entsprechenden Beschaffungszuteilung oder dem Standardbeschaffungsverfahren verknüpft ist:
      • 1 (Transit) = Transit ausgehend - Kennzahlzuordnung
      • 2 (Einkauf) = Einkauf - Kennzahlzuordnung
      • 3 (Produktion, Fertigung) = Prozess - Kennzahlzuordnung
      Hinweis: Wenn das zugeordnete Inkrement null oder </= 0 ist, wird die Kombination aus Artikel und Ort nicht berücksichtigt, und die folgende Fehlermeldung wird in das Routine-Fehlerprotokoll geschrieben:
      Inkrement {1} ist nicht gültig. Der Wert muss > 0 sein.
  8. Prüfen Sie die Eingangskalender-ID des aktuellen Artikels und Orts. Mögliche Szenarien:
    • Wenn die zugeordnete ID für keine Routinekalenderzuordnung der aktuellen Routine definiert ist, wird die Kombination aus Artikel und Ort nicht berücksichtigt, und es wird die folgende Fehlermeldung in das Fehlerprotokoll der Routine geschrieben:
      Eingangskalender-ID {1} wurde nicht gefunden.
    • Wenn der Kennzahl für die Eingangskalender-ID kein Wert zugeordnet wird, wird der Standardkalender in der Kalenderzuordnung der aktuellen Routine verwendet.
    • Wenn kein Standardkalender definiert ist, wird die Kombination aus Artikel und Ort nicht berücksichtigt, und es wird die folgende Fehlermeldung in das Fehlerprotokoll des Routineprozesses geschrieben:
      Eingangskalender-ID {1} wurde nicht gefunden.
  9. Prüfen Sie die Planungsregel für den aktuellen Artikel und Ort. Für Regel 1 oder 2:
    1. Produktionsprozesse abrufen:
      1. Erstellen Sie eine Aufstellung mit Produktionsprozessen, bei denen es sich bei dem Artikel um den Output-Faktor handelt, sowie mit der Arbeitsplan- oder Prozess-ID:
        • Prüfen Sie auf einen Wert, der nicht null ist, für den zugeordneten Output-Faktor UND Formula_measure, wobei Formula_item = aktueller Artikel und Formula_location = aktueller Ort ist.
        • Wenn für jeden Output-Prozess in der Aufstellung eine Zuordnung vorhanden ist, prüfen Sie auf einen TUPEL, Wert ungleich null, für Process_measure, wofür gilt: Process_location = aktueller Ort, Process_routing = Aktueller Output-Arbeitsplan.
        • Wenn keine Zuordnung gefunden wird, entfernen Sie den Output-Prozess aus der Aufstellung.
      2. Erstellen Sie eine Aufstellung mit Produktionsprozessen, bei denen es sich bei dem Artikel um den Zuflussfaktor handelt, sowie mit einer Arbeitsplan- oder Prozess-ID:
        • Prüfen Sie auf einen Wert, der nicht null ist, für den zugeordneten Zuflussfaktor UND Formula_measure, wofür gilt: Formula_item = aktueller Artikel und Formula_location = aktueller Ort.
        • Wenn für jeden Zuflussprozess in der Aufstellung eine Zuordnung vorhanden ist, prüfen Sie auf einen TUPEL, Wert ungleich null, für Process_measure, wofür gilt: Process_location = aktueller Ort, Process_routing = aktueller Zuflussarbeitsplan.
        • Wenn keine Zuordnung gefunden wird, entfernen Sie den Zuflussprozess aus der Aufstellung.
    2. Löschen Sie vorhandene geplante Aufträge:
      • Löschen Sie die Auftragsdatensätze für die Definitionen, die der Auftragszuordnung der Routine für die folgenden "geplanten" Typen zugeordnet sind:
        • Löschen Sie geplante Transitaufträge, bei denen TransferIn_Item = aktueller Artikel und TransferIn_Destination = aktueller Zuflussarbeitsplan ist.
        • Löschen Sie geplante Bestellungen, bei denen Purchases_Item = aktueller Artikel und Purchases_location = aktueller Ort ist.
      • Prüfen Sie, ob für den aktuellen Artikel und Ort Output-Prozesse vorhanden sind. Weitere Informationen finden Sie unter Schritt 9. a.
      • Für jeden Prozess in der Anzahl des Output-Prozesses:
        • Löschen Sie geplante Produktionsaufträge, bei denen Process_location = aktueller Ort und Process_routing = aktueller Output_Process-Arbeitsplan ist.
        • Wenn "Auftragsstart - Versatz" > 0, löschen Sie die Datensätze, für die der Liefertermin des Datensatzes nach dem Startdatum der aktuellen Planungsperiode + Auftragsstartversatz (Tage) liegt oder mit diesem Datum identisch ist. Anderenfalls löschen Sie zugeordneten Aufträge für alle Daten.
    3. Rufen Sie die Standardauftragselemente für das angegebene Standardbeschaffungsverfahren ab. Mögliche Szenarien:
      • Beschaffungsverfahren = 1 (Transit):
        • Prüfen Sie auf einen TUPEL, Wert ungleich null, für TransferIn_measure, wobei TransferIn_Item = aktueller Artikel, TransferIn_Destination = aktueller Ort und Transfer_Source = TransferIn_Source-Wert.
        • Prüfen Sie auf einen TUPEL, Wert ungleich null, für TransferOut_measure, wobei TransferOut_Item = aktueller Artikel, TransferOut_Destination = aktueller Ort und TransferOut_Source = Transitquelle.
        • Auftragsartikel = TransferIn_TUPLE-Artikelelement, Order_destination = TransfersIn_TUPLE-Ortselement, Order_source = TransfersOut_TUPLE-Ortselement.
      • Beschaffungsverfahren = 2 (Einkauf):
        • Prüfen Sie auf einen TUPEL, Wert ungleich null, für Purchase_measure, wobei purchase_item = aktueller Artikel, purchase_location = aktueller Ort, order_item = Purchases_TUPLE-Artikelelement, Auftragsziel = Purchases_TUPLE-Ortselement, Auftragsquelle = Purchases_TUPLE-Ortselement.
      • Beschaffungsverfahren = 3 (Produktion):
        • Hierbei gilt: Anzahl der Output-Prozesse > 0, Order_Item = ICONST, Order_destination = Ortselement für den ersten Output-Prozess, Order_Source = Ortselement für den ersten Output-Prozess. Weitere Informationen finden Sie unter Schritt 9.c.
        • Wenn für das angegebene Beschaffungsverfahren kein Standard-TUPEL definiert ist, wird die Kombination aus Artikel und Ort nicht berücksichtigt, und der folgende Fehler wird in das Ergebnisprotokoll des Routineprozesses geschrieben:
          Der Quellort für das Beschaffungsverfahren {1} wurde nicht gefunden.
    Hinweis: 
    • Rufen Sie für Regel = 1 die Routine auf Basis der Standardplanungslogik für die Kombination aus Artikel und Ort auf.
    • Rufen Sie für Regel = 2 die Routine auf Basis der ROP-Planlogik für die Kombination aus Artikel und Ort auf.
    • Wenn die Regel nicht 0, 1 oder 2 ist, wird die Kombination aus Artikel und Ort übersprungen, und der folgende Fehler im Fehlerprotokoll des Routineprozesses erfasst:
      Planungsregel {1} ist nicht gültig. Der Wert muss 0, 1 oder 2 lauten. 
  10. Rufen Sie die erforderlichen Ergebnisse aus dem Ergebnissatz der Ergänzungsroutine auf Basis der Auftragszuordnung für die Ergänzungsroutine ab, und wenden Sie die Ergebnisse auf die Werte des Auftrags (Transaktionsdaten) an:
    • Die entsprechenden Szenarienwerte werden für die Zuordnungen von geplanten Aufträgen synchronisiert.
    • Routineergebnisse werden auf Basis der Auftragsdaten in Perioden für den zukünftigen Horizont der Zyklusperiode geschrieben (basierend auf den entsprechenden Auftragsdaten).
    • Wenn die Routine, auf die der Benutzer zugegriffen hat, über Datensicherheitsregeln für die Periodendimension verfügt, die den Zugriff auf den gesamten zukünftigen Horizont beschränken, werden die Ergebnisse nur für die zulässigen Aufträge gespeichert.
  11. Rufen Sie die erforderlichen Ergebnisse aus dem Ergebnissatz der Ergänzungsroutine ab, und wenden Sie die Ergebnisse auf Szenarienwerte an (für andere zugeordnete Ergebnisse der Artikelortsausgabe), und zwar basierend auf den Kennzahlzuordnungsdaten der Ergänzungsroutine. Die Ergebnisse der Routine, die auf den zugeordneten Kennzahlen basieren, werden als statischer Wert nach PCONST geschrieben.
  12. Das Ergebnis des Aufrufs der Ergänzungsroutine wird an den Jobmanager und das Auditprotokoll ausgegeben. Hierbei gilt:
    • Ein Fehlerprotokoll wird an die Auditprotokollmeldung angehängt, wenn der Aufruf der Ergänzungsroutine mit Fehlern abgeschlossen wurde.
    • Die Verarbeitung gültiger Kombinationen wird durch die einzelnen Artikel- und Ortsfehler nicht verhindert.
    • Ungültige Kombinationen aus Artikel und Ort aus der Planungsvorbereitung oder aus der zurückgemeldeten Routineregellogik mit einem Fehlercode werden in das Fehlerprotokoll geschrieben, wobei der Fehler in einer Meldung im Detail dargestellt wird.