NOPUCS1N - Auf Kalender und Zeitpläne zugreifen

#### Search Results

Search

# NOPUCS1N - Auf Kalender und Zeitpläne zugreifen

Dieser Abschnitt behandelt folgende Themen:

- Auf Daten in Kalendern und Zeitplänen zugreifen

- Beispiel für die Benutzung von NOPUCS1N

## Auf Daten in Kalendern und Zeitplänen zugreifen

Sie können mittels des folgenden Aufrufs innerhalb Ihrer Natural-Anwendung auf Kalenderdaten oder Zeitpläne zugreifen:

    CALLNAT 'NOPUCS1N'
      P-FUNCTION P-RC P-OBJECT-TYPE P-OWNER P-OBJECT P-DATE-A8

Bedeutung der Parameter:

Parameter | Format/Länge | Verwendung
--- | --- | ---
`P-FUNCTION` | A1 | ein | Funktions-Code:
`A` | Kalender oder Zeitplan löschen
`B` | Kalender hinzufügen
`C` | Verwendeten Kalender ermitteln.
`D` | Verwendeten Zeitplan ermitteln.
`N` | Nächstes gesetztes Datum ermitteln, ausgehend von einem Start-Datum.
`P` | Vorheriges gesetztes Datum ermitteln, ausgehend von einem Start-Datum.
`R` | Datum zurücksetzen. Datum wird aus dem Kalender oder Zeitplan entfernt.
`S` | Datum setzen. Datum wird dem Kalender oder Zeitplan hinzugefügt.
`T` | Datum testen. Wenn das Datum innerhalb eines Kalenders oder eines Zeitplans existiert: `RC` enthält 0, sonst 1.
`1` | Bei Kalender: Setzen aller Datumswerte in dem Kalender.
Bei Zeitplan: Nicht unterstützt.
`2` | Bei Kalender: Zurücksetzen aller Datumswerte in dem Kalendar.
Bei Zeitplan: Löschen aller Zeitplan-Definitionen. Der Zeitplan bleibt als leerer Rumpf zurück. Existiert eine Verknüpfung mit einem Kalender, so bleibt diese bestehen. Diese Funktion ist äquivalent zur Funktion Reset (PF9) im Bildschirm Zeitplan-Definition in der zeichenorientierten Benutzeroberfläche von Entire Operations.
`P-RC` | N3 | aus | Rückgabe-Code:
`0` | Funktion ok, oder: Datum ist gesetzt.
`1` | Datum ist nicht gesetzt.
`2` | Objekt nicht gefunden.
`3` | Bei der Definition verwendetes Objekt.
`4` | Schon vorhandenes Objekt.
`101` | Ungültiger Funktions-Code.
`102` | Parameter fehlt (fehlen).
`103` | Ungültige Parameter-Kombination.
`104` | Ungültiger Objekt-Typ.
`105` | Ungültiges Datum.
`106` | Tabelle expliziter Daten ist voll.
- | - | - | `121` | Eigentümer exisitiert nicht.
`P-OBJECT-TYPE` | A1 | ein | Objekt-Typ:
`N` | Netzwerk
`C` | Kalender
`H` | Zeitplan-Historie
`S` | Zeitplan
`P-OWNER` | A10 | ein | Eigentümer des Objekts.
aus | Die Funktionen `C` und `D`: Eigentümer des ausgewählten Objekts.
`P-OBJECT` | A10 | ein | Name des Objekts: Eigentümer-Name bzw. Zeitplan-Name. Wenn `P-FUNCTION` gleich N, P oder T ist und wenn ein Kalender als Objekt erwartet wird: es darf der reservierte Kalendername `=EOR=WORK7` benutzt werden. Dieser Pseudo-Kalender ist für jedes Jahr gültig und in ihm sind alle Tage als Arbeitstage definiert. Der Wert von `P-OWNER` ist in diesem Fall bedeutungslos.
aus | Funktions-Codes `C` und `D`: Name des ausgewählten Objekts.
`P-DATE-A8` | A8 | ein | Datum im Format: JJJJMMTT `ALL` bedeutet in diesem Feld "alle Jahre". Dieser Wert gilt bei Löschungen.
aus | Funktions-Codes `N` und `P`: das gefundene Datum.

Anmerkungen:

1. Nur Funktion `T` (Datum testen) ist für Objekt-Typ `H` (Zeitplan-Historie) erlaubt.
2. Zeitplan-Historie ist normalerweise vorhanden für das aktuelle Jahr und für die zwei vorigen Jahre.
3. Zeitplan-Daten können für das aktuelle Jahr und für das nächste Jahr gesetzt werden.
4. In Kalendern bedeutet ein gesetztes Datum "Arbeitstag" und ein nicht gesetztes Datum "Feiertag". Die Funktionen `N` und `P` funktionieren auch über Jahreswechsel hinweg. Einschränkungen: Bei Zeitplänen sind nur das aktuelle und das vorherige Jahr verfügbar.
5. Kalender müssen für alle Jahre definiert sein, in denen gesucht wird.
6. Funktion `A` löscht die Kalender- bzw. Zeitplan-Master, wenn `P-OBJECT-TYPE = 'C'` bzw `'S'`. Falls der Kalender bzw. Zeitplan für das aktuelle Jahr ist und falls er in einem Zeitplan bzw. Netzwerk referenziert wird, dann wird der `P-RC` Wert 3 (Objekt wird in Definitionen verwendet) zurückgeliefert. Kalender für zurückliegende Jahre werden ohne Referenzierungsprüfung gelöscht.
7. Wenn ein Kalender gelöscht wird (`P-FUNCTION='A'` und `P-OBJECT-TYPE='C'`), dann soll der Wert von `P-DATE-A8` entweder die Form `YYYY` oder `YYYYMMDD` oder die Konstante `'ALL'` haben. Der Wert `'ALL'` bedeutet, dass der Kalender für alle definierten Jahre gelöscht wird.

## Beispiel für die Benutzung von NOPUCS1N

Das Programm ermittelt den jeweils ersten Montag im Monat für das Jahr 2008 und setzt anschließend den Netzwerk-REQUEST/NET001 für die ermittelten Tage auf den Zeitplan.

    * DETECT FIRST MONDAY IN MONTHS
    *
    DEFINE DATA
    LOCAL
    1 #YYYYMMDD (A8)
    1 REDEFINE #YYYYMMDD
     2 #YYYY    (N4)
     2 #MM      (N2)
     2 #DD      (N2)
    1 #D1      (D)
    1 #WD      (A1)
    1 #OWNER   (A10) INIT <'REQUEST'> /* Owner
    1 #OBJECT  (A10) INIT <'NET001'>  /* Network
    1 #RC3     (N3)
    END-DEFINE
    *
    #YYYY := 2010                     /* Year
    F1. FOR #MM = 01 TO 12
     RESET #DD
     R1. REPEAT
      ADD 1 TO #DD
      MOVE EDITED #YYYYMMDD TO #D1 (EM=YYYYMMDD)
      MOVE EDITED #D1 (EM=O) TO #WD
      WRITE #D1 (EM=YYYYMMDD) #WD
      UNTIL #WD = '1'      /* R1.
     END-REPEAT        /* R1.
     WRITE #D1 (EM=YYYYMMDD' 'N(10))
    *
    * CALL NOP SCHEDULE API TO SET THESE DAYS
    *
     CALLNAT 'NOPUCS1N'
      'S' #RC3 'S' #OWNER #OBJECT #YYYYMMDD
     WRITE #YYYYMMDD #RC3
    END-FOR      /* F1.
    END TRANSACTION
    END

### On this page

- Auf Daten in Kalendern und Zeitplänen zugreifen
- Beispiel für die Benutzung von NOPUCS1N