Autor Thema: Anfängerfrage: Werte aus Agent in Notesdokument schreiben  (Gelesen 12042 mal)

Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Hallo,

ich habe dank eurer Hilfe es soweit gebracht, dass mein Agent einen String aus dem Internet zieht und in einer Variablen ablegt.
Jetzt die simple Frage: Wie kann man einem Dokument beibringen, dass es einen Agent startet und den Wert, welchen der Agent liefert, im Dokument selbst abspeichert?

Falls ihr mich nicht verstanden habt:
1. Dokument startet Agent
2. Agent liefert einen Wert (String)
3. Dokument greift diesen String auf
4. Dokument speichert den Wert

Für einige von Euch bestimmt eine einfach Sache, für mich als ANFÄNGER nicht so trivial!

Vielen Dank im voraus!

Gruß

Aretni

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #1 am: 09.04.08 - 16:12:37 »
Wie und wo soll der Agent denn gestartet werden?

Ein Agent kann keinen Wert zurückliefern. Das können nur Funktionen. Du kannst aber den String innerhalb des Agenten in das Dokument schreiben und das Dokument dann speichern.


Der Ablauf würde dan so ausehen:

1. Agent wird gestartet
2. Agent ermittelt Wert
3. Agent schreibt Wert in Dokument
4. Agent speichert Dokument



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

Offline bernino1

  • Junior Mitglied
  • **
  • Beiträge: 68
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #2 am: 09.04.08 - 16:21:13 »
Wenn ich das von Axel aufgreifen darf:

1. Agent wird gestartet
heißt - mit "Set doc = sess.DocumentContext" kommts du auf das geöffnete Dokument

2. Agent ermittelt Wert
hier gibts den von dir genannten String

3. Agent schreibt Wert in Dokument
doc.feldname = string

4. Agent speichert Dokument
call doc.save(true,false)

wenn du den gerade ermittelten Wert nicht gleich im Browser anzeigen willst müsste es das gewesen sein!

   
Schöne Grüße vom Bodensee

Berndt

Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #3 am: 09.04.08 - 16:33:10 »
Wenn ich das von Axel aufgreifen darf:

1. Agent wird gestartet
heißt - mit "Set doc = sess.DocumentContext" kommts du auf das geöffnete Dokument

2. Agent ermittelt Wert
hier gibts den von dir genannten String

3. Agent schreibt Wert in Dokument
doc.feldname = string

4. Agent speichert Dokument
call doc.save(true,false)

wenn du den gerade ermittelten Wert nicht gleich im Browser anzeigen willst müsste es das gewesen sein!

   

Vielen Dank für die schnelle Hilfe
doc = sess.DocumentContext
-> ist doc eine Variable oder soll ich hier den Namen meines Dokumentes eintragen?
Wenn ich den Agent speichern will sagt Notes mir, sie sei nicht deklariert!
Alles andere hab ich soweit verstanden.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #4 am: 09.04.08 - 16:37:01 »
Name des Dokuments? Nennst Du das Hasi oder so?  ;D
doc ist hier ein Objekt vom Typ NotesDocument.

Von mir noch eine Alternative, wenn das Zieldokument nicht direkt im Zugriff steht (zum Beispiel, der Wechselkurs, um den es lt. Deinen anderen Threads ja wohl geht, soll in ein Setup- oder ProfileDocument geschrieben werden): Du startest den Agent mit NotesAgent.Run (NoteID). Die NoteID musst und kannst Du vorher ermitteln. Dann weisst Du auch im Agent, wie Du das NotesDocument instantiieren und dorthin zurückschreiben kannst.

Bernhard

Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #5 am: 10.04.08 - 10:34:36 »
Kann mir bitte jemand erklären was genau unter
Set doc = sess.DocumentContext
zu verstehen ist und wie ich auf ein Dokument zugreifen kann  ????

PS: Hab erst vor ca. 3 Wochen mit Lotus angefangen und meine Fragen sind berechtigt  :) (Für euch bestimmt lächerlich)


Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #6 am: 10.04.08 - 10:43:44 »
Aus der Designerhilfe:

Zitat
DocumentContext property 

Beispiel
Read-only. The in-memory document when an agent starts.
Hinweis  This property is not implemented in COM.
Defined in
NotesSession
Data type
NotesDocument
Syntax
To get: Set notesDocument = notesSession.DocumentContext
Usage
For an agent activated in a view through the Notes client UI, the in-memory document is the document highlighted in the view.
For an agent run from a browser with the OpenAgent URL command, the in-memory document is a new document containing an item for each CGI (Common Gateway Interface) variable supported by Domino. Each item has the name and current value of a supported CGI variable. (No design work on your.....


Gerade für Anfänger - was wir alle mal waren- ist die Designerhilfe Goldwert ;-)
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #7 am: 10.04.08 - 11:05:19 »
ich habe jetzt folgendes gemacht:

Dim doc As NotesDocument
Dim session As NotesSession
Set session = New NotesSession
Set doc = session.DocumentContext
doc.HtmlAnzeige = gHTMLCode
Call doc.Save(True,False)

Ich habe ein Feld mit dem Namen "HtmlAnzeige", wie kann ich auf dieses Feld zugreifen oder geht das nicht direkt?
Wenn ich doc. eintippe wird mein Feld (HtmlAnzeige) nicht in der Liste aufgeführt. Mein String der übergeben werden soll heißt gHtmlCode und laut ServerConsole ist auch was in dem String eingetragen und zwar der XML-Code aus dem Internet (bis dahin funkst bei mir alles)
Die Noteshilfe bringt mich hier nicht weiter.

Wie kann ich nun auf das Dokument zugreifen, oder ein neues erstellen und den Wert von gHtmlCode darin abspeichern?

Plz help!  ???




Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #8 am: 10.04.08 - 11:12:34 »
Die Felder eines Dokumentes werden - da sie sehr volatil sind - beim TypeAhead in der Liste nie angeführt. Hinschreiben kann man sie trotzdem.
Als Alternative kannst/solltest Du Dir NotesDocument.ReplaceItemValue() in der Designer-Hilfe ansehen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #9 am: 10.04.08 - 11:15:44 »
Hallo

Feldnamen werden nicht als Methode/Eigenschaft bei eintsprechenden Objekten angezeigt.

Zitat
Wie kann ich nun auf das Dokument zugreifen,

z.B.:
doc.getItemValue( "FeldName" ) 

Zitat
oder ein neues erstellen

z.B.:
set doc = db.CreateDocument

Zitat
und den Wert von gHtmlCode darin abspeichern
z.B.:
call doc.ReplaceItemValue( "FeldName" , "Wert" )
call doc.Save( TRue , TRue )

Zitat
Die Noteshilfe bringt mich hier nicht weiter.
i.R. ist die Hilfe super.
Wenn es nicht ausreicht, dann gibt es noch super Bücher.
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #10 am: 10.04.08 - 11:36:36 »
Vielen dank für die hilfreichen Tipps.
Wenn ich jetzt folgendes ausführe:

Set session = New NotesSession
Set doc = session.DocumentContext
doc.getItemValue( "HtmlAnzeige" ) 
Call doc.ReplaceItemValue( "HtmlAnzeige" , "gHTMLCode" )
Call doc.Save( True , True )

Dann kommt die Errormeldung: Object variable not set
Wat nu?
Anscheinend greift er nicht auf das Feld zu oder er weiß nicht wo genau es liegt, vermute ich jetzt mal...

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #11 am: 10.04.08 - 11:39:08 »
1) Errorhandling einbauen
2) Code im Debugger laufen lassen
3) In welcher Zeile kommt der Fehler.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Driri

  • Gast
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #12 am: 10.04.08 - 11:40:24 »
Wenn das der komplette Code ist, fehlen die Deklarationen der Variablen (siehe Designerhilfe unter "Dim").

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #13 am: 10.04.08 - 11:41:05 »
Zitat
Call doc.ReplaceItemValue( "HtmlAnzeige" , "gHTMLCode" )

Ist gHTMLCode eine Variable oder willst Du wirklich den STRING "gHTMLCode" in das Feld schreiben?


Ist   not doc is Nothing   ??
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #14 am: 10.04.08 - 11:42:23 »
Zitat
Call doc.ReplaceItemValue( "HtmlAnzeige" , "gHTMLCode" )

Ist gHTMLCode eine Variable oder willst Du wirklich den STRING "gHTMLCode" in das Feld schreiben?


Ist   not doc is Nothing   ??
Jup, ich will den String gHTMLCode in das Feld schreiben.

Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #15 am: 10.04.08 - 11:44:31 »
Wenn das der komplette Code ist, fehlen die Deklarationen der Variablen (siehe Designerhilfe unter "Dim").

Der rest liegt in Declarations:

Dim gHTMLCode As String
Dim gDateTime As NotesDateTime
Dim gBaseURL As String
Dim iDoc As NotesDocument
Dim doc As NotesDocument
Dim session As NotesSession

Und das in Init:

Sub Initialize
   gBaseURL="http://www.webservicex.com/CurrencyConvertor.asmx/ConversionRate?FromCurrency=USD&ToCurrency=EUR"
   Call getResDatafromJARS()
   Messagebox gHTMLCode
   Set session = New NotesSession
   'Set doc = session.DocumentContext
   doc.getItemValue( "HtmlAnzeige" ) 
   Call doc.ReplaceItemValue( "HtmlAnzeige" , "gHTMLCode" )
   Call doc.Save( True , True )
End Sub

Call getResDatafromJARS() funkst ohne Probleme es geht eigentlich nur darum den String in ein Feld zuschreiben bzw. in ein Dokument, so schwer kann das doch nicht sein, oder?

Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #16 am: 10.04.08 - 11:46:48 »
in Option liegt auch noch was:
Option Public
Option Declare

Uselsx "*javacon"
Use "JavaSockets"

Driri

  • Gast
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #17 am: 10.04.08 - 11:55:20 »
Das "set doc=" ist auskommentiert. doc ist dann Nothing und dann schmeißt Notes auch den Fehler.

Die Zeile "doc.getItemValue( "HtmlAnzeige" )" kannst Du dir sparen.

Ich glaube, Du hast Dirk falsch verstanden. Oben deklarierst Du eine String-Variable gHTMLCode, aber unten schreibst Du dann den Text "gHTMLCode" in das Item. Wenn Du den Inhalt der Variable gHTMLCode in das Item packen willst, mußt Du die Anführungszeichen weglassen.

Und wo wird gHTMLCode ein Wert zugewiesen ?




Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #18 am: 10.04.08 - 12:03:23 »
Das "set doc=" ist auskommentiert. doc ist dann Nothing und dann schmeißt Notes auch den Fehler.

Die Zeile "doc.getItemValue( "HtmlAnzeige" )" kannst Du dir sparen.

Ich glaube, Du hast Dirk falsch verstanden. Oben deklarierst Du eine String-Variable gHTMLCode, aber unten schreibst Du dann den Text "gHTMLCode" in das Item. Wenn Du den Inhalt der Variable gHTMLCode in das Item packen willst, mußt Du die Anführungszeichen weglassen.

Und wo wird gHTMLCode ein Wert zugewiesen ?
Ja ich hab das "set doc =" auskommentiert weil ich was testen wollte.
gHTMLCode wird in der "Call getResDatafromJARS()" einen String zu gewiesen. Der in der ServerConsole erfolgreich angezeigt wird. Die funktion getResDatafromJARS() tut nichts anderes außer eine Webseite einzulesen und in dem String gHTMLCode zu speichern.

Offline aretni

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Anfängerfrage: Werte aus Agent in Notesdokument schreiben
« Antwort #19 am: 10.04.08 - 12:05:37 »
wenn ich den Code für das abspeichern in Dokumenten auskommentiere kommt keine Fehlermeldung, nur wenn ich das:
   Set session = New NotesSession
   Set doc = session.DocumentContext
   Call doc.ReplaceItemValue("HtmlAnzeige" , gHTMLCode )
   Call doc.Save( True , True )
hinzunehme...
Also liegt es an den paar Zeilen.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz