Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung - XPages => Thema gestartet von: Tode am 15.01.14 - 11:20:09

Titel: [Gelöst]Background- Agent mit Info aus aktueller Ansichtszeile starten
Beitrag von: Tode am 15.01.14 - 11:20:09
Ich habe einen LotusScript- Agenten, der verschiedene Aktionen für eine gewählte KATEGORIE in einer Ansicht ausführt.
Dieser Agent soll nun auch von einer xPage aus aufgerufen werden. Da ich hier nicht auf das gewählte Dokument zurückgreifen kann (ich muss wissen, WELCHEN Wert eines Multivalue- Feldes der User angeklickt hat), brauche ich eine Möglichkeit, den Agenten so aufzurufen, dass ich als Parameter den Wert aus der Ansichtsspalte mitgeben kann. So sieht mein Code bisher aus:
Code
			<xp:eventHandler event="onclick" submit="true"
				refreshMode="complete">
				<xp:this.action>

					<xp:actionGroup>
						<xp:confirm>
							<xp:this.message><![CDATA[#{javascript:return "Wollen Sie wirklich die Kategorie " + viewCategories.getColumnValues().elementAt(3) + " löschen?"}]]></xp:this.message>
						</xp:confirm>


						<xp:executeScript>
							<xp:this.script><![CDATA[#{javascript:var agent = database.getAgent("(XpageDeleteCategory)");
agent.run();}]]></xp:this.script>
						</xp:executeScript>
					</xp:actionGroup>
				</xp:this.action>
			</xp:eventHandler>

Jetzt brauche ich einen Weg, um viewCategories.getColumnValues().elementAt(3) an den Agenten zu übergeben. Ich könnte natürlich den Agenten einfach par URL aufrufen, und den Wert als Parameter mitgeben, aber ich fände es besser, wenn es mit agent.run funktionieren würde...

Kann ich evtl. in der xPage werte setzen (xp:input), die ich -trotz fehlender Document Datasource- dann per NotesAgent.documentContext auslesen kann?

brauche mal nen kleinen Schubser in die richtige Richtung
Titel: Re: Background- Agent mit Info aus aktueller Ansichtszeile starten
Beitrag von: Sven Hasselbach am 15.01.14 - 11:27:10
Du könntest ein Dummy-Dokument anlegen und die Übergabewerte da rein scheiben.

Mit
Code
Agen.runWithDocumentContext(dummyDoc)
kannst Du den Agent das Dokument dann übergeben.

Da das Dokument im Speicher verbleibt, muss es nicht gespeichert werden (geht übrigens auch in Lotus Script).
Titel: Re: Background- Agent mit Info aus aktueller Ansichtszeile starten
Beitrag von: Tode am 15.01.14 - 12:05:26
Danke, das sollte funktionieren... Problem aktuell ist: Der Agent tut kein mux... Habe einfach ein Print "abc" eingebaut, und auch schon mittels eigener ReportingLib ein Reporting- Dokument erstellt, aber ich bekomme keine Ausgabe auf der Console, keine Fehlermeldung und keinerlei Hinweis darauf, dass der Agent überhaupt aufgerufen wird...
Titel: Re: Background- Agent mit Info aus aktueller Ansichtszeile starten
Beitrag von: Sven Hasselbach am 15.01.14 - 12:20:28
Läuft der Agent als Webuser?
Titel: Re: Background- Agent mit Info aus aktueller Ansichtszeile starten
Beitrag von: Tode am 15.01.14 - 12:23:20
nein, genau den Hinweis hatte ich grade bei Stackexchange gefunden... Danke, damit funktioniert es. Jetzt gehts weiter...