Autor Thema: Agent aktualisiert Dokumente nach antriggern durch LEI nicht  (Gelesen 4119 mal)

Offline F.Engel

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

ich habe ein kleines Problem.

Es werden jede Nacht Daten aus SAP überspielt...
Diese kommen durch ein SOAP Gateway in meine NotesDB.

Die Maske enthält ein berechnetes Feld, welches sich erst nach aktualisierung des Dokumentes auflöst.

Hierfür habe ich nun folgenden Agenten...
Im ersten Teil werden alle neuen Dokumente, in denen das besagte Feld noch leer ist, gegriffen und sollen neu berechnet werden und werden dann gespeichert.

Im 2. Teil werden die Dokumente weiterverarbeitet... der Teil ist jedoch problemlos.


Mein Problem ist nun, dass durch anstupsen durch den LEI Job keine neuen Dokumente aktualisiert werden. Irgendwie greift er an den Dokumenten vorbei.
Der 2. Teil funktioniert komischerweise bei antriggern durch LEI.


Wenn ich den Agenten nun aber im Designer schedule aktualisiert er brav alle Dokumente und macht was er soll...

Wo liegt das Problem? Ich habe erst gedacht, dass evtl ein View refresh hilft. Aber das hat ebenfalls nicht geklappt.
 

Code
Sub Initialize
	
	Dim s As New NotesSession
	Dim vi As NotesView
	Dim vi2 As NotesView
	Dim vi3 As NotesView
	Dim dc As NotesDocumentCollection
	Dim doc As NotesDocument
	Dim doc2 As NotesDocument
        Dim docnext As NotesDocument
	Dim key As String
	Dim temp As String
	
	Set db = s.CurrentDatabase
	Set vi3 = db.GetView("AlleRabattGruppen")
	Set vi2 = db.GetView("RabattNEU")
	Call vi2.Refresh
	
	Set doc = vi2.GetFirstDocument
	While Not doc Is Nothing
		Set docnext = vi2.GetNextDocument(doc)
		Call doc.ComputeWithForm(False,False)
		Call doc.Save(True,False)
		Set doc = docnext
	Wend
	
	
	key =""
	temp =""
	
	Set vi = db.GetView("RabattGruppen")
	Call vi.Refresh
	Call vi3.Refresh
	Set doc = vi.GetFirstDocument
	While Not doc Is Nothing
		temp = doc.KUNNR_T(0)+"."+doc.Gruppe(0)+"."+doc.KSCHL(0)+"."+doc.DATAB(0)
		If key<> temp Then
			key = temp
			
			Set doc2 =  vi3.GetDocumentByKey(key)
			If doc2 Is Nothing Then
				Set doc2 = New NotesDocument(db)
				Call doc.CopyAllItems(doc2)
				doc2.Form="RabattGruppe"
				Call doc2.RemoveItem("PRODH1")
				Call doc2.Save(False,False)
			Else
				If doc2.DATBI(0) <> doc.DATBI(0) Then
					doc2.DATBI = doc.DATBI(0)
					Call doc2.Save(False,False)
				End If
				If doc2.KBETR(0) <> doc.KBETR(0) Then
					doc2.KBETR = doc.KBETR(0)
					Call doc2.Save(False,False)
				End If
			End If		
		End If
		Set doc = vi.GetNextDocument(doc)
	Wend	
End Sub

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #1 am: 07.07.11 - 09:15:46 »
Meinst Du mit dem ersten Teil dieses hier?

Set doc = vi2.GetFirstDocument
While Not doc Is Nothing
   Set docnext = vi2.GetNextDocument(doc)
   Call doc.ComputeWithForm(False,False)
   Call doc.Save(True,False)
   Set doc = docnext
Wend

Mit LEI hat das sicher nichts zu tun, wenn es so ist, dass LEI diesen einen Agenten mit allen Aktionen anstößt.

Ich würde die Mimik umstellen, da Du mit einer Ansicht arbeitest, dessen Inhalt sich durch den Agenten verändert. Dazu gibt es schon mehrere Beispiele hier im Forum. Entweder schaltest Du die Aktualisierung der Ansicht temporär aus oder Du holst Dir die relevanten Dokumente über eine Collection und verarbeitest die. Die zweite Lösung ist mir persönlich sympathischer.

Offline F.Engel

  • Frischling
  • *
  • Beiträge: 27
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #2 am: 07.07.11 - 09:20:01 »
Vorab, danke!

Eine DocumentCollection habe ich schon ausprobiert... mit einem db.Search... aus irgendeinem Grund habe ich diese wieder auskommentiert. Ich werds nochmal testen.

Wie kann ich denn in einer View temporär aktualisierungen deaktivieren?
Aus dem Grund, das sich die View verändert, habe ich das docnext vor dem speichern des Dokumentes abgefangen...

Code
Set doc = vi2.GetFirstDocument
While Not doc Is Nothing
   Set docnext = vi2.GetNextDocument(doc)
   Call doc.ComputeWithForm(False,False)
   Call doc.Save(True,False)
   Set doc = docnext
Wend

Und ja, dass soll der erste teil sein :-)

Komisch finde ich nur, dass es per Schedule alles funktioniert!!!

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #3 am: 07.07.11 - 09:25:26 »
Hallo,

Also die automatische Aktualisierung kannst Du so temporaer ausschalten:

view.AutoUpdate = False


Andreas

Offline F.Engel

  • Frischling
  • *
  • Beiträge: 27
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #4 am: 07.07.11 - 09:34:18 »
So kommt er übrigens auch nicht weiter...


Code
Set ndt = New NotesDateTime(Cstr(Datenumber(2011, 4, 20)))
	Set dc = db.Search(|Form="Rabatt" & Gruppe=""|,ndt,0)
	Set doc = dc.GetFirstDocument
	While Not doc Is Nothing
		Call doc.ComputeWithForm(False,False)
		Call doc.Save(True,False)
		Set doc = dc.GetNextDocument(doc)
	Wend

Kann es irgendwas mit Berechtigungen zu tun haben?
Der LEI läuft auf einem anderen Server...

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #5 am: 07.07.11 - 09:44:20 »
Anstelle des ndt könntest Du auch Nothing schreiben (hat aber nichts mit Deinem Problem zu tun).

Lass Dir doch mal vom ComputeWithForm den Rückgabewert ausgeben (statt Call doc.ComputeWithForm ... return = doc.ComputeWithForm ...)

Vielleicht gibt es da ein Problem und er berechnet die Dokumente nicht. Ändert sich das Speicherungsdatum der Dokumente durch den Agentenlauf? Falls nicht, hat der Agentenausführer vielleicht keine Rechte, die Dokumente zu speichern (was allerdings eigentlich zum Abbruch des Agenten führen müsste).

NACHTRAG:

Die Dokumente sind aber auf dem anderen Server vorhanden, wenn LEI den Agenten startet?

Offline F.Engel

  • Frischling
  • *
  • Beiträge: 27
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #6 am: 07.07.11 - 09:47:23 »
Er speichert die Dokumente leider nicht..
Das speichern funktioniert nur, wenn der Agent gescheduled wird.
Per LEI bekommt er das irgendwie nicht hin.

Verwundern tut mich allerdings, dass der 2. Teil dann wiederrum funktioniert.

Ich habe volle Managerrechte für den Domino3 (auf dem LEI läuft) vergeben.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #7 am: 07.07.11 - 09:48:46 »
Was meinst du mit "wenn der Agent gescheduled wird"?

Offline F.Engel

  • Frischling
  • *
  • Beiträge: 27
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #8 am: 07.07.11 - 09:55:20 »
Siehe Bild ;)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #9 am: 07.07.11 - 09:59:45 »
Also er läuft periodisch auf dem anderen Server und "tut da". (Mit meiner Frage wollte ich ausschließen, dass Du "debuggen" gemeint hast - hätt' ja sein können ...).

Nochmal die Frage zum Ablauf (hatte ich oben als Nachtrag angefügt).

Wenn auf dem anderen Server der LEI startet, auf welchem Server werden die Dokumente hinzugefügt? Ist sichergestellt, dass die neuen zu verarbeitenden Dokumente auf dem LEI-Server vorhanden sind, wenn der Agent dort gestartet wird?

Offline F.Engel

  • Frischling
  • *
  • Beiträge: 27
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #10 am: 07.07.11 - 10:03:29 »
Ja, die Dokumente sind definitiv vorhanden.
Ich teste es momentan immer durch manuelles anstoßen des LEI-Jobs.
Wenn ich den Agenten manuell vom Server (Rechtsklich -> Run) starte/debugge läuft er auch sauber durch.  :-:

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Agent aktualisiert Dokumente nach antriggern durch LEI nicht
« Antwort #11 am: 07.07.11 - 10:30:39 »
Sorry, da gehen mir nun langsam auch die Ideen aus. Vielleicht solltest Du im ersten Teil temporär Prints einbauen, um zu sehen, ob er Dokumente verarbeitet, dann hat er vielleicht ein Problem dabei, oder ob er keine Dokumente findet. Das grenzt die Fehlersuche weiter ein.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz