Autor Thema: Frage: Pro Hauptdokument nur ein Antwortdokument - Formelsprache  (Gelesen 1911 mal)

Offline Gabe

  • Junior Mitglied
  • **
  • Beiträge: 52
Hallo zusammen,

seit einigen Tagen befasse ich mich mit dem Thema "Haupt- und Antwortdokumenten". Da ich bisher nur mit Formelsprache gearbeitet habe, nun meine Frage: Gibt es die Möglichkeit pro Hauptdokument nur ein Antwortdokument zu erlauben? Wenn es geht, dann das ganze mit Formelsprache. Habe die Hilfe bereits durch und auch schon im Forum gesucht - finde aber nichts. Anscheinend geht das nur mit Script - aber da fehlen mir echt die Basics (und die bekomme ich erst noch vermittelt). Habe zwar schon etwas im Internet gefunden (Script) aber möchte schon gerne wissen was ich da eigentlich mache. Ich möchte auch nichts vorgekautes sondern wirklich verstehen was da gemacht wird. Wäre nett wenn mir da jemand weiterhelfen könnte.  :'(

Offline cg-home

  • Aktives Mitglied
  • ***
  • Beiträge: 172
  • Geschlecht: Männlich
  • atnotes = Retter in der Not
Hi,

Du könntest doch versuchen beim erstellen der Antwort in das Hauptdokument
ein Flag (verstecktes Feld mit 0 oder 1 darin) zu setzen, welches Du bei der
Erstellung mit abfragst. Das sollte auch mit Formelsprache gehen.
Wenn Du nichts in das Hauptdok schreiben willst oder kannst geht es ggf. auch
mit @DocDescendants oder @DocChildren. Ob diese aus einer Aktion heraus
Funktionieren kann ich gerade nicht sagen, einfach mal in der Hilfe nach sehen.

mfg Christian
11     Server R11.0.1FP3 - Windows Server 2012R2
700   Clients R11.0.1FP3 - Windows Server 2012R2 über Citrix
Traveler R11 | PowerTools 14 | Ytria | DomNavigator

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Wenn Du nichts in das Hauptdok schreiben willst oder kannst geht es ggf. auch
mit @DocDescendants oder @DocChildren. Ob diese aus einer Aktion heraus
Funktionieren kann ich gerade nicht sagen, einfach mal in der Hilfe nach sehen.

Diese beiden @-Funktionen lassen sich nur in Fenstertitel- und Spaltenformeln nutzen.

@Gabe
Rein mit Formel was sauberes hinzubekommen ist schwierig. Das von Christian vorgeschlagene Flag ist eine Lösung, aber du musst z.B. auch dafür sorgen, dass wenn das Antwortdokument gelöscht wird auch das Flag zurückgesetzt wird.

Eigentlich bleibt dir nur der Weg über Script. Schau dir mal in der Designerhilfe die Klasse NotesDocument und hier besonders das Property Responses an. In der Hilfe sind auch Beispiele vorhanden.

Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Gabe

  • Junior Mitglied
  • **
  • Beiträge: 52
Hallo Christian,
hallo Axel,

erstmal danke für die Unterstützung. Ich habe wie von Christian vorgschlagen erst einmal folgendes ausprobiert:
- Feld im Hauptdokument mit der Bezeichnung "Flag". Dieses Feld ist ein Textfeld und Bearbeitbar. Der Wert im Feld ist "2".
- Durch eine Aktion wird der folgende Formelbefehl ausgeführt:
REM {prüfe, ob richtiges Dokument gewählt};
@If(
     form = "Gutschein";
     @Success;
     @Do(
          @Prompt([Ok];"Fehler";"Sie müssen einen Gutschein zum annehmen auswählen");
          @Return("")
     ));

@SetDocField($Ref;Flag;"1");

REM {prüfe ob bereits ein Antwortdokument besteht};
@If(
     Flag != "2";
     @Success;
     @Do(
          @Prompt([Ok];"Fehler";"Der Gutschein wurde bereits angenommen");
          @Return("")
));

@Command([Compose]; "Annahme")
- Leider funktioniert das nicht so richtig. Bekomme jetzt immer die Meldung, dass der Gutschein bereits angenommen wurde.
Hab da bestimmt irgendwas in der Hilfe falsch verstanden (sehe auch im Hauptdokument das Flag immer mi 2 belegt ist). Schaue mit jetzt trotzdem auch wie von Axel vorgeschlagen die Klasse Notes Document und Property Responses an.

Liebe Grüße

Holger

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Ich würde das ganze ohne flag machen, ist zu Wartungsintensiv... Erstell Dir eine Ansicht mit den Antworten (Achtung: Antworthierarchie deaktivieren), kategorisiert nach @Text($Ref). Beim erstellen holst Du Dir die Unid des Hauptdokuments und machst einen DBlookup auf die view. Ist das ergebnis NICHT @Error, dann verweigerst Du.

Alle hier genannten Lösungsansätze funktionieren natürlich nur zuverlässig in einer Single Server Umgebung ohne lokale Repliken...


Sent from my iPad using Tapatalk
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Ich gehe mal davon aus, dass die Aktion in einer ansicht steckt und das Dokumente mit der Form "Gutschein" die Hauptdokumente sind. Wenn ja, dann ....

... steckt der Fehler hier:

...
@SetDocField($Ref;Flag;"1");

...

Bei einem Hauptdokument gibt's kein $Ref.

Mal so aus dem Bauch heraus würde ich das so lösen.
Im Hauptdokument ein verstecktes Textfeld mit Namen Flag und dem Vorgabewert "0"

Code
REM {prüfe, ob richtiges Dokument gewählt};
@If(
     form = "Gutschein";
     @Success;
     @Do(
          @Prompt([Ok];"Fehler";"Sie müssen einen Gutschein zum annehmen auswählen");
          @Return("")
     ));

REM {prüfe ob bereits ein Antwortdokument besteht};
@If(Flag = "0";
     @Do( @SetField("Flag"; "1");
              @Command([Compose]; "Annahme")
             );
     @Prompt([Ok];"Fehler";"Der Gutschein wurde bereits angenommen")
);

Ich hab's nur malauf den Schnelle zusammengeschrieben und nicht getestet. Kann sein, dass es an der einen oder anderen Stelle noch hakt.
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Gabe

  • Junior Mitglied
  • **
  • Beiträge: 52
Hallo zusammen,

danke für die Hilfe. Danke für die Bereinigung meiner fehlerhaften @Function Axel. Habe ich die Hilfe total falsch verstanden. Dachte durch $Ref wird automatisch die UNID des Hauptdokuments genommen  :P
@Tode: Danke für den Hinweis mit der Ansicht (Single Server ohne lokale Repliken). Denke du hast recht - sollte das über eine Ansicht steuern. Ist einfach am saubersten. Mal schauen ob ich das hinbekomme  ;D

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz