Werte vergleichen bei einer Tabelle

5. April 2022 11:15

Moin,

ich habe folgende Aufgabe bekommen.
Bei einem Verkaufsauftrag, soll jedes mal wenn ein Benutzer den Auftrag freigeben will (mit Klick auf die Schaltfläche "Freigeben"),
geprüft werden ob der Wert in dem Feld "Externe Belegnummer" bereits in einem anderen Auftrag benutzt wird.

Den Wert der in dem Feld steht bekomme ich ja mit Rec."External Document No.", aber wie vergleiche ich nun ob der Wert in den anderen Aufträgen drin steht?

Ich hoffe ihr könnt mir da weiterhelfen.

Re: Werte vergleichen bei einer Tabelle

5. April 2022 12:43

Müsste so gehen: (ungetestet)

Code:
LOCAL [EventSubscriber] OnBeforeReleaseSalesDoc(VAR SalesHeader : Record "Sales Header")

// Abbruch wenn Datensatz kein Verkaufsauftrag ist
IF NOT (SalesHeader."Document Type" IN [SalesHeader."Document Type"::Order]) THEN
  EXIT;

// Abbruch wenn Datensatz temporär ist
IF SalesHeader.ISTEMPORARY THEN
  exit;

// Abbruch wenn externe Belegnummer leer ist
IF SalesHeader."External Document No." = '' THEN
  EXIT;

// Suche nach Datensatz mit gleicher Externer Belegnummer
SalesHeaderRedundant.SETRANGE("Document Type",SalesHeader."Document Type");
SalesHeaderRedundant.SETFILTER('<>%1',SalesHeader."No.");
SalesHeaderRedundant.SETRANGE("External Document No.",SalesHeader."External Document No.");
IF SalesHeaderRedundant.FINDFIRST THEN
  ERROR('Verkaufsauftrag %1 hat bereits die externe Belegnummer %2',SalesHeaderRedundant."No.",SalesHeaderRedundant."External Document No.");

Re: Werte vergleichen bei einer Tabelle

6. April 2022 08:45

Danke, hat mir sehr geholfen.
Mfg
Thomas