Ich habe hier eine Maske, in der ich sowohl Secret key als auch Public key - Verschlüsselung anbiete (via Radiobutton, Feldname "EncryptionType".
Im Querysave steht u.a. folgendes:
FIELD Readers := Readers;
FIELD SecretEncryptionKeys := SecretEncryptionKeys;
FIELD PublicEncryptionKeys := PublicEncryptionKeys;
@If(EncryptionType = "Public";
@Do(
@SetField("SecretEncryptionKeys"; "");
@SetField("Readers"; "")
);
EncryptionType = "Secret";
@SetField("PublicEncryptionKeys"; "");
""
);
Kurz zu den Feldern:
SecretEncryptionKeys = Textfeld
PublicEncryptionKeys = Leserfeld
Readers = Leserfeld
Wenn ich nun als Verschlüsselung "Secret" auswähle, löscht der Querysave-Code den Feldinhalt von "PublicEncryptionKeys".
Abär es kommt dann obige Fehlermeldung "There is no public key for ''..."
Liegt wohl auch auf der Hand: Das Feld 'PublicEncryptionKeys' ist leer.
Wie könnte ich die Fehlermeldung umgehen? Denn das Feld 'PublicEncryptionKeys' interessiert ja nicht, wenn User "Secret" auswählt.
Jo, hatte ich auch schon mal beiläufig gehört/gelesen, dass das unter R6 simpler gelöst ist.
Habe jetzt die Querysave-Formel so umgebastelt:
FIELD SecretEncryptionKeys :=
@If(EncryptionType = "Public";
@Unavailable;
SecretEncryptionKeys
);
FIELD Readers :=
@If(EncryptionType = "Public";
@Unavailable;
Readers
);
FIELD PublicEncryptionKeys :=
@If(EncryptionType = "Secret";
@Unavailable;
PublicEncryptionKeys
);
1
Warum hier eine "main expression" in Formeln erforderlich ist, hat mich schon immer gewundert wenn man nur mit FIELD arbeitet, aber egal, die simple "1" tut es ja schon.
Interessant wäre jetzt noch zu wissen, wie man das Querysave in Lotus Script realisieren würde, denn Backend-Löschung des Items bringt nichts. Oder haben wir da eine Frontend-Methode, die wie ein @Unavailable arbeitet?
Ich frage das rein interessehalber.....