Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: SomeoneYouKnow am 29.11.05 - 11:13:28

Titel: Dokument ist noch nicht gespeichert
Beitrag von: SomeoneYouKnow am 29.11.05 - 11:13:28
Hi zusammen,

mal wieder ein ziemlich mystisches Phänomen, das ich nicht verstehe... evtl. hat ja jemand von Euch einen Tipp für mich. Ich möchte aus einem Hotspot heraus einen Agenten aufrufen... grundsätzlich nichts wirklich weltbewegendes:

Code
@Command([FileSave]);
@Command([RunAgent]; "(GeneriereFeedback)");

Funktioniert so alleine auch wunderbar... ich möchte das Feedback aber nicht generell erzeugen lassen, sondern nur bei jedem x.ten Mal (und wenn das Dokument einen bestimmten Typ hat, und wenn nur eine Person betroffen war)... sieht im Kontext der Anwendung so aus:

Code
[...]
@SetField("Classification"; @Prompt([OkCancelList] : [NoSort]; "Call-Klassifizierung"; "Welcher Klasse möchten Sie diesen Call zuordnen?";"Incident wird telefonisch erledigt"; "Incident wird telefonisch erledigt" : "Incident erfordert Recherche / Vorortservice, Dauer bis zu 0,5 Stunden" : "Incident erfordert Recherche / Vorortservice, Dauer 0,5 bis 4 Stunden" : "Incident erfordert Recherche / Vorortservice, Dauer mehr als 4 Stunden"));
  @If (Type = "Incident" & @Elements(Affected) = 1 & @Text(@Round((9 * @Random + 1))) >= "5";
				@Do(
				@Prompt([Ok]; ""; "1");
				@Command([FileSave]);
				@Prompt([Ok]; ""; "2");
				@Command([RunAgent]; "(GeneriereFeedback)");
				@Prompt([Ok]; ""; "3"));
			"");
[...]


Die Prompts sind natürlich nur zu Debug-Zwecken... die Logik funktioniiert auch, er geht bei ca. jedem 2. Mal ins If, macht die Prompts... sagt mir jedoch beim RunAgent "Das Dokument ist noch nicht gespeichert". Ist es aber durchaus, wie man meinen sollte... das war Sinn und Zweck des FileSave.
Hat jemand ne Idee? Mir ists ein absolutes Rätsel... zumal es wiegesagt mit reinem FileSave und RunAgent funktioniert. Als PostedCommand hab ich den RunAgent übrigens auch schon probiert, geht aber ebenfalls nicht.

Danke schonmal!

Ciao
Ben
Titel: Re: Dokument ist noch nicht gespeichert
Beitrag von: Axel am 29.11.05 - 11:42:32
Hi,

manchmal ist das mit der Reihenfolge der Abarbeitung von Formelbefehlen so eine Sache. Das hat mich auch schon so manches graue Haar gekostet.

@PostedCommand wäre auch mein Vorschlag gewesen, aber das hast du ja schon getestet.

Was spricht den dagegen das Speichern des Dokumentes in den Agenten zu packen? Am besten als erste Anweisung, bevor der Code für die eigentliche Funktion des Agenten ausgeführt wird.


Axel
Titel: Re: Dokument ist noch nicht gespeichert
Beitrag von: SomeoneYouKnow am 29.11.05 - 12:35:16
Hi Axel,

erstmal vielen Dank für Deine Antwort!

Sowas in der Richtung hab ich mir auch schon überlegt, aber das wird nichts helfen: in die erste Zeile des Agenten hatte ich bereits eine MessageBox gebaut - die wird nicht angezeigt, und der Debugger geht auch nicht mal in die erste Zeile des LS-Codes. Insofern beginnt er wirklich überhaupt nicht erst damit, den Agenten auszuführen  ???

Ciao
Ben
Titel: Re: Dokument ist noch nicht gespeichert
Beitrag von: SomeoneYouKnow am 29.11.05 - 13:13:24
Hab nun eine Krücke gefunden, mit der's geht. Verstehen tu ich's zwar immer noch nicht wirklich, aber es ist so: setze ich das Dokument direkt nach dem FileSave wieder in EditMode 0 fragt er erneut nach, ob er die Änderungen (welche auch immer?!) speichern soll. Bestätige ich es mit "Ja", führt er den Agenten aus. Baue ich ein SaveOptions drum rum unterdrücke ich die Frage -> er speichert und führt den Agenten aus :o


Code
[...]
@SetField("Classification"; @Prompt([OkCancelList] : [NoSort]; "Call-Klassifizierung"; "Welcher Klasse möchten Sie diesen Call zuordnen?";"Incident wird telefonisch erledigt"; "Incident wird telefonisch erledigt" : "Incident erfordert Recherche / Vorortservice, Dauer bis zu 0,5 Stunden" : "Incident erfordert Recherche / Vorortservice, Dauer 0,5 bis 4 Stunden" : "Incident erfordert Recherche / Vorortservice, Dauer mehr als 4 Stunden"));
  @If (Type = "Incident" & @Elements(Affected) = 1 & @Text(@Round((9 * @Random + 1))) >= "5";
@Do(
			@Command([FileSave]);
			@SetField("SaveOptions"; "0");
			@Command( [EditDocument]; "0" );
			@SetField("SaveOptions"; @DeleteField); 
			@Command([RunAgent]; "(GeneriereFeedback)"));
			"");
[...]