27. Januar 2010 18:47
Hallo!
Ich habe vom Kunden die Anfrage bekommen, dass er einem User mit Super-User-Rechten das Löschen von Nummernserien verbieten möchte.
Ich bekomme die Abfrage aber scheinbar nicht richtig hin...
Probiert hatte ich es so:
1) In der Table Table 308 (No. Series) im Design-View ein freies Feld ausgewählt und dort in den Source-Code gewechselt.
2) Im OnDelete-Trigger eine Abfrage auf den Usernamen durchgeführt mit abschließendem Exit
Das sieht also jetzt so aus:
- Code:
OnDelete()
IF USERID = 'MAG' THEN
EXIT;
NoSeriesLine.SETRANGE("Series Code",Code);
NoSeriesLine.DELETEALL;
NoSeriesRelationship.SETRANGE(Code,Code);
NoSeriesRelationship.DELETEALL;
NoSeriesRelationship.SETRANGE(Code);
NoSeriesRelationship.SETRANGE("Series Code",Code);
NoSeriesRelationship.DELETEALL;
NoSeriesRelationship.SETRANGE("Series Code");
Er läuft in den Code rein und bricht ab, die Zeile wird dennoch gelöscht.
Bin ich hier an der falschen Stelle? Wo müsste ich das sonst implementieren?
Edit:
Abfrage musste nicht mit Exit, sondern mit einem ERROR beendet werden:
- Code:
IF USERID = 'MAG' THEN
ERROR('Nummernserie kann nicht gelöscht werden. Zugriff verweigert!');
Schönen Dank!
Thalon
Zuletzt geändert von Thalon am 27. Januar 2010 18:57, insgesamt 1-mal geändert.