Autor Thema: Feld über LS bearbeiten und Speicherstatus  (Gelesen 6010 mal)

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Feld über LS bearbeiten und Speicherstatus
« am: 19.11.07 - 13:02:52 »
Hallo,

ich habe in meinen Template nun eine neue Funktion hinzugefügt,das Feld möchte
ich nun ein Script in allen meinen Dokumenten setzen.

Um das Feld handelt es sich um ein Optionfeld, das vorher nicht
im Dokument vorhanden war.

Hier der Code:

Code
Sub Initialize
	Dim wert As String  
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim tmpdoc As NotesDocument
	
	Set db = s.CurrentDatabase
	
	Dim strTextArray(0) As String
	strTextArray(0) = "0"
	Dim item As NotesItem
	
	Dim v As NotesView
	Set v = db.GetView("German\Unread")
	Dim doc As NotesDocument
	Set doc = v.GetLastDocument()
	Do While Not (doc Is Nothing)
		Set item =  doc.GetFirstItem( "Doc_freigabe" )
		item.IsAuthors = True
		Call doc.ReplaceItemValue("Doc_Freigabe", strTextArray)
		item.IsAuthors = False		
		Call doc.Save(True,True)		
		Set doc = v.GetLastDocument()
	Loop
End Sub

In einer Ansicht schaue ich nun nach ob das Feld geändert wurde, aber dies
ist nicht der fall. Ich frage mich nun warum??


Ein weiters Problem ist....  :
Da ich in der Datenbank nun aber ca. 2.8gb an Dokumenten habe ,
suche ich nach eine Möglichkeit, das bei der nächsten Replikation nur dieses
Feld geändert wird und nicht gleich die komplette DB als neu angesehen wird.


Gruß Jörg

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #1 am: 19.11.07 - 13:08:44 »
Hallo

Da ich in der Datenbank nun aber ca. 2.8gb an Dokumenten habe ,
suche ich nach eine Möglichkeit, das bei der nächsten Replikation nur dieses
Feld geändert wird und nicht gleich die komplette DB als neu angesehen wird.

das macht doch die Replikation automatisch so, da sich nur das Feld (pro betroffenem Dokument) ändert, wird auch nur die Feldänderung repliziert. Also ist nur die Frage wie viele Dokument mit wieviel Feldinhalt betroffen sind.

Gruß Werner
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

klaussal

  • Gast
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #2 am: 19.11.07 - 13:12:27 »
Code
Set item =  doc.GetFirstItem( "Doc_freigabe" )
		item.IsAuthors = True
		Call doc.ReplaceItemValue("Doc_Freigabe", strTextArray)
		item.IsAuthors = False		
		Call doc.Save(True,True)		
		Set doc = v.GetLastDocument()

Heisst das Feld jetzt Doc_freigabe oder Doc_Freigabe ?
Warum einmal IsAuthors = true und dann IsAuthors = False ?
Warum 2 x GetLastDocument ?

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #3 am: 19.11.07 - 13:51:07 »
@Werner

nun ja dann bin ja mal beruhigt, da es so ca. 1500 Dokumente sind...  :)

@Klauss

ein Problem vorher war , das ich das Feld nicht bearbeiten konnte da bei
Author des items false zu lesen war. DAher dachte ich mir so dann setzen wir
die Rechte und nach setzen ich sie wieder so wie es war.

Wenn ich im Script das letzte GetLastDocument entferne , dann
läuft das ganze in einer Endlos-Schleife.
Den Code-Teil hatte ich hier im Forum gefunden und dort wurde
dies als Lösung kundgetan.

Auch mit diesen Code bekomme ich nicht die gewünschte
Änderungen in den Dokumenten. D.h. meine Abfrage beliebt
leer.

Code
Sub Initialize
	Dim wert As String  
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim tmpdoc As NotesDocument
	
	Set db = s.CurrentDatabase
	
	Dim strTextArray(0) As String
	strTextArray(0) = "0"
	Dim item As NotesItem
	
	Dim v As NotesView
	Set v = db.GetView("German\Unread")
	Dim doc As NotesDocument
	
	Do While Not (doc Is Nothing)
		Set item =  doc.GetFirstItem( "Doc_Freigabe" )
		item.IsAuthors = True
		Call doc.ReplaceItemValue("Doc_Freigabe", strTextArray)
		Call doc.Save(True,True)		
		Set doc = v.GetLastDocument()
	Loop
	
End Sub

GRuß Jörg

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: Feld über LS bearbeiten und Speicherstatus
« Antwort #4 am: 19.11.07 - 13:57:42 »
Wie wärs mit GetNextDocument anstelle von GetLastDocument ? ;)
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

klaussal

  • Gast
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #5 am: 19.11.07 - 13:57:46 »
So ganz verstehe ich das nicht (Montag)...

Warum nimmst Du nicht die Mimik mit getfirst &  next Document ?

Beispiel:
Code
Set doc = view.GetFirstDocument
While Not ( doc Is Nothing )
  If doc.LastModified < Today Then
    Call doc.Send( True, doc.Authors )
  End If
  Set doc = view.GetNextDocument( doc )
Wend

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #6 am: 19.11.07 - 14:26:40 »
Code
Sub Initialize
	Dim wert As String  
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim tmpdoc As NotesDocument
	Dim doc As NotesDocument
                Dim strTextArray(0) As String
	Dim v As NotesView

	Set db = s.CurrentDatabase
	
	strTextArray(0) = "0"
		
	Set v = db.GetView("German\Unread")
	set doc = v.getfirstdocument()
	While Not (doc Is Nothing)
		Call doc.ReplaceItemValue("Doc_Freigabe", strTextArray)
		Call doc.Save(True,True)		
		Set doc = v.GetNextDocument(doc)
	Wend
	
End Sub

Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #7 am: 19.11.07 - 14:30:02 »
Oder ganz ohne Loop
Code

Sub Initialize
	Dim wert As String  
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim tmpdoc As NotesDocument
	Dim doc As NotesDocument
                Dim strTextArray(0) As String
	Dim v As NotesView

	Set db = s.CurrentDatabase
	
	strTextArray(0) = "0"
		
	Set v = db.GetView("German\Unread")
	call v.allEntries.stampAll("Doc_Freigabe",strTextArray)	
End Sub

Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #8 am: 19.11.07 - 14:57:16 »
Leider zeigen alle Scripte keine Funktion..
D.h. sie werden richtig durchlaufen (ohne Fehler) , aber
das Feld wird nicht verändert.

gRuß Jörg

klaussal

  • Gast
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #9 am: 19.11.07 - 15:03:27 »
Script soeben getestet: das läuft !!

Zitat
aber das Feld wird nicht verändert.

Woran siehst Du das ?

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #10 am: 19.11.07 - 15:04:00 »
Hast Du überhaupt die Rechte, das Dokument zu editieren?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #11 am: 19.11.07 - 15:15:13 »
@ klauss

in den Eigenschaften des Dokumentes,
sowie ein einer Ansicht welche auf das Feld schaut.

@ umi
ich stehe im Feld Authors drin und habe die  Rechte dort
Änderungen vorzunehmen.

Komisch ist nur wenn ich das Dokument von Hand öffne
und gleich wieder schliesse dann werde ich sofort nach dem
Speichern gefragt obwohl ich nichts geändert habe.

Speicher ich dann , so ist das Dokument in der Ansicht da.

Jörg

klaussal

  • Gast
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #12 am: 19.11.07 - 18:24:05 »
 :'(
Jetzt bin auch mit meinem Latein am Ende....

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #13 am: 19.11.07 - 18:48:24 »
Aktueller Code wäre auch nicht schlecht. Ohne dem kann man gar nichts sagen.

Bernhard

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #14 am: 20.11.07 - 07:50:14 »
Morgen,

ein aktuelle Code kein Problem:

Code
Sub Initialize

	Dim wert As String  
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim tmpdoc As NotesDocument
	Dim doc As NotesDocument
	Dim strTextArray(0) As String
	Dim v As NotesView
	
	Set db = s.CurrentDatabase
	
	strTextArray(0) = "1"
	
	Set v = db.GetView("German\Unread")
	Set doc = v.getfirstdocument()
	While Not (doc Is Nothing)
		Call doc.ReplaceItemValue("Doc_Freigabe", strTextArray)
		Call doc.Save(True,True)		
		Set doc = v.GetNextDocument(doc)
	Wend
	
	
End Sub

Kann dies aber auch an der Definition des Feldes liegen??
Der Wert welcher geändert werden soll ist eine Optionsschaltfläche.

Gruss Jörg
« Letzte Änderung: 20.11.07 - 07:55:30 von Jörg »

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #15 am: 20.11.07 - 08:31:16 »
Versuch das Ganze mal so:

Sub Initialize

   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim v As NotesView
   
   Set db = s.CurrentDatabase
   
   Set v = db.GetView("German\Unread")
   Set doc = v.getfirstdocument()
   While Not (doc Is Nothing)
      doc.Doc_Freigabe = "1"
      Call doc.Save(True,True)      
      Set doc = v.GetNextDocument(doc)
   Wend
   
   
End Sub


Wie sieht denn die Definition deines Optionsfeldes genau aus, insbesondere Werte bzw. Werteformel.


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

klaussal

  • Gast
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #16 am: 20.11.07 - 08:32:57 »
Die Haken bei "Felder bei.. aktualisieren" und "Auswahl bei ... aktualisieren" sind gesetzt ?

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #17 am: 20.11.07 - 08:34:28 »
Die Haken bei "Felder bei.. aktualisieren" und "Auswahl bei ... aktualisieren" sind gesetzt ?

Das sollte aber in diesem Fall unerheblich sein, da das Setzen des Feldwertes im Backend passiert.


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

klaussal

  • Gast
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #18 am: 20.11.07 - 08:36:39 »
Stimmt auch wieder.

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Feld über LS bearbeiten und Speicherstatus
« Antwort #19 am: 20.11.07 - 08:56:08 »
Läuft der Agent in der richtigen Datenbank? oder nur im Template?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz