Autor Thema: Werte werden durch LS in Dokument nicht gespeichert.....?  (Gelesen 3217 mal)

Offline LuckyNotes2004

  • Frischling
  • *
  • Beiträge: 40
hallo werte Kollegen.....
ich habe mal wieder ein Problem und würde gerne um Hilfe bitten.....
ich habe ein Skript geschrieben, welches unter bestimmten Bedingungen Dokumente von einer Datenbank in eine andere kopiert, das Skript selber läuft in einer dritten DB.... soweit alles ganz gut.... das gewünschte Dokument landet auch in der Zieldatenbank....... im Anschluß hieran sollen noch einige Werte im kopierten Dokument geändert werden..... ich führ diese Änderungen durch (sind im Debugger auch zu sehen) sie sind nur nach dem Durchlauf des Skripts nicht in der Zieldatenbank zu sehen....

für eine schnelle Hilfe wäre ich sehr dankbar....

mit bestem gruß LuckyNotes

P.S. der problematische Teil steht denke ich am Ende des Skripts in der If-Else-If Schleife...

Code
Sub Initialize
	
	Dim session As New NotesSession
	Dim ui As New NotesUIWorkspace
	Dim MB As NotesDatabase
	Dim sourceDB As NotesDatabase
	Dim targetDB As NotesDatabase
	Dim mail As NotesUIDocument
	Dim doc As NotesDocument
	Dim searchID As String
	Dim dcCOM As NotesDocumentCollection	
	Dim docCOM As NotesDocument
	
	
	Dim server As String
	Dim CISpath As String
	Dim COMpath As String
	
	Set MB 			= session.CurrentDatabase
	Set mail 		= ui.CurrentDocument
	server 			= MB.Server
	'#server = "sdb15096"
	MBpath     		= MB.FilePath
	CISpath			= isWord( MBpath , "\" , 1 ) + "\" + isWord( MBpath , "\" , 2 ) + "\" + "com\cis.nsf"
	COMpath		= isWord( MBpath , "\" , 1 ) + "\" + isWord( MBpath , "\" , 2 ) + "\" + "com\sales.nsf"
	'#CISpath = "regional\nord\com\cis.nsf"
	'#COMpath = "regional\nord\com\sales.nsf"
	
	Set sourceDB = New NotesDatabase ( server , CISpath )
	Set targetDB   = New NotesDatabase ( server , COMpath )
	
	' doc als aktuelles dokument setzen
	CIS_ID  = Right( mail.FieldGetText("CIS_ID"), 8)
	Set doc = sourceDB.GetDocumentByID( CIS_ID )
	'doc.ID = 
	doc.CIS_ID = "NT" + CIS_ID
	saved1 = doc.Save( 1, 1, 1)
	'Dokument in Zieldatenbank kopieren
	Call doc.CopyToDatabase( targetDB )
	
	
	
	searchID = "NT" + CIS_ID
	Set dcCOM = targetDB.FTSearch(searchID, 0)
	Set docCOM = dcCOM.GetFirstDocument()
	While Not(docCOM Is Nothing)
    		'Operationen in COM DB
		
		formCOM = docCOM.Form
		cisIDCOM = docCOM.CIS_ID
		
		If ( formCOM(0) = "CIS" And cisIDCOM(0) = searchID)  Then
			docCOM.Form = "Company"
			docCOM.FormTitle = "Firma"
			docCOM.ID = Left ( doc.ID(0), 15 )
			savedCOM1 = docCOM.Save( 1, 1, 1 )
		Elseif ( formCOM(0) = "Memo" And cisIDCOM(0) = searchID ) Then
			docCOM.ID = Left ( doc.ID(0), 21 )
			savedCOM2 = docCOM.Save( 1, 1, 1 )
		Else
			'Set docCOM = dcCOM.GetNextDocument(docCOM)	
		End If  	
		
		Set docCOM = dcCOM.GetNextDocument(docCOM)
	Wend
	
	
End Sub

Glombi

  • Gast
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #1 am: 01.11.04 - 14:17:55 »
Ersetze
  docCOM.Save( 1, 1, 1 )
durch
   docCOM.Save( True, True, True )
dann sollte es gehen.

Hinweis: In Script ist True = -1

Andreas
 

Offline LuckyNotes2004

  • Frischling
  • *
  • Beiträge: 40
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #2 am: 01.11.04 - 15:43:02 »
danke, hat das Problem aber leider nicht gelöst, ich bekomme sowohl mit 1 als auch mit True eine Meldung über erfolgreiches Speichern.... nur leider sind meine Änderungen an den Werten nicht gespeichert....


Marinero Atlántico

  • Gast
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #3 am: 01.11.04 - 17:43:14 »
... das kann dann aber auch andere Gründe haben:
z.B.:
- das Feld ist Berechnet und so wird der alte Wert wieder reingeschrieben.
- etwas im PostOpen setzt den Wert wieder zurück.

Glombi

  • Gast
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #4 am: 01.11.04 - 22:31:19 »
... das kann dann aber auch andere Gründe haben:
z.B.:
- das Feld ist Berechnet und so wird der alte Wert wieder reingeschrieben.
- etwas im PostOpen setzt den Wert wieder zurück.
Das kann es aber nicht sein, da nur Backend Save und kein ComputeWithForm aufgerufen wird.

Mich würde interessieren, was die kühne Behauptung
Zitat
führ diese Änderungen durch (sind im Debugger auch zu sehen)
heisst? Ist das denn wirklich im Backend? und mit dem true, true anstelle dem nichts, nichts ?

Andreas

Glombi

  • Gast
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #5 am: 01.11.04 - 22:33:57 »
Der Code ist übrigens verbesserungswürdig, wenn ich das korrekt sehe. Du kopierst ein Dokument in eine andere DB und suchst dann mittels FT Search das Dokument.
Das geht eleganter:
set docCOM = doc.CopyToDatabase( targetDB )

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #6 am: 01.11.04 - 22:41:14 »
Wird das ganze dann noch lokal getestet, wird auch der FTI nich auf den neuesten Stand gebracht.
Mich würde mal interessieren: Woran wird überhaupt erkannt, dass das erwartete Dokument nicht aktualisiert wurde ? Wie wurde das geprüft ?

Bernhard

Offline LuckyNotes2004

  • Frischling
  • *
  • Beiträge: 40
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #7 am: 02.11.04 - 09:01:56 »
guten morgen allerseits,

@glombi, die kühne Behauptung die Änderungen an den Werten seien im Debugger zusehen entstammen meinen Beobachtungen.... ich habe während der Abarbeitung die Änderung der einzelnen Werte detailliert verfolgt
habe das speichern auf true, true geändert, leider keine Veränderung des Ergebnisses

der Verbesserungsvorschlag für den Code ist wirklich gut, allerding bekomme ich in diesem Zuge einige Dokumente nicht zu greufen, an denen die gleichen Änderungen vorzunehmen sind, kommen per ähnlichem Agenten aus einer weiteren DB

@koehlerbv der FTSearch findet die korrekten Dokumente, die Änderungen werden, wie schon in den obigen Zeilen an Glombi beschrieben, im Debugger verfolgt, wird anschließend die DB geöffnet, sind die Änderungen in den Dokumenten nicht sichtbar und nicht wirksam


ich hoffe diese Infos tragen dazu bei, dass ihr mir irgenwie weiterhelfen könnt.....


bis später LuckyNotes
« Letzte Änderung: 02.11.04 - 14:55:40 von LuckyNotes2004 »

Offline LuckyNotes2004

  • Frischling
  • *
  • Beiträge: 40
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #8 am: 02.11.04 - 10:59:50 »
.... mir kommt da gerade noch ein Gedanke:

bei dem Dokument, in dem die Werte geändert werden sollen, handelt es sich um ein NotesDocument.... sollte für die Änderung der Werte aber ein NotesUIDocument benötigt werden, oder sollte ein NotesDocument ausreichen?


LuckyNotes

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: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #9 am: 02.11.04 - 11:41:04 »
Hi,

eigentlich reicht NotesDocument, also Backend-Funktionen, vollkommen aus. Ich mache so was öfters. Was du mal versuchen könntest, vor dem Speichern ComputeWithForm aufrufen.


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

Offline LuckyNotes2004

  • Frischling
  • *
  • Beiträge: 40
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #10 am: 02.11.04 - 11:45:37 »
hallo Axel, wenn ich das ComputeWithForm richtig verstehe, ist das soetwas wie eine Aktualisierung, Neuberechnung des Dokumentes....... welche Auswirkung erhoffst Du Dir in diesem Zusammenhang durch den Aufruf?

LuckyNotes

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: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #11 am: 02.11.04 - 11:54:51 »
Hi,

ganz einfach, das die Werte in den Feldern gespeichert werden. Das war eigentlich eine Idee ins Blaue hinein.

Weil ein solcher Fehler ist mit bisher noch nicht unter gekommen und ich lege recht häufig in dieser Art und Weise an. Und dabei verwende ich auch ComputeWithForm.

Hast du es denn überhaupt mal probiert?


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

Offline LuckyNotes2004

  • Frischling
  • *
  • Beiträge: 40
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #12 am: 02.11.04 - 11:56:25 »
Hallo Axel,

bin gearde dabei, und wollte nur etwas besser verstehen, was ich da eigentlich mache.....

Feedback über Ergebnis folgt in Kürze....

LuckyNotes

Offline LuckyNotes2004

  • Frischling
  • *
  • Beiträge: 40
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #13 am: 02.11.04 - 12:07:31 »
hmmm, irgendwie nicht das, was ich erwartet hätte von der Konstruktion....

ich bekomme für

Code
success = docCOM.ComputeWithForm( False, False )

einen Fehler zurück, dass der Ordner nicht gefunden werden könne, bzw bei .... False, True, dass ein @Befehl an dieser Stelle nicht verwandt werden könne.....

Du siehst mich in ratlosem Staunen......

LuckyNotes

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: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #14 am: 02.11.04 - 19:07:20 »
Hi,

so lngsam werde ich das Gefühl nicht los, dass in deiner Maske der Hund begraben liegt.
Sonst würde sich ComputeWithForm nicht so bockig verhalten. Schau dir mal alle Felder an und da insbesondere Vorgabewert, Eingabeübersetzung und Eingabevalidierung. Check auch mal alle Events, wobei ich glaube das die hier keine so große Rolle spielen.

Axel


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

Offline LuckyNotes2004

  • Frischling
  • *
  • Beiträge: 40
Re: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #15 am: 03.11.04 - 08:59:19 »
Guten morgen,

@Axel, erstmal danke für den Tip, die Maske zu überprüfen, leider habe ich die nicht erstellt, es eteckt wirklich ein erheblicher Inhalt drin, ist die Hauptmaske einer komplexeren Kundendatenbank.....
trotzdem werde ich mal rüberschauen, auf welche Besonderheiten oder Merkmale muss ich denn dabei achten?

LuckyNotes

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: Werte werden durch LS in Dokument nicht gespeichert.....?
« Antwort #16 am: 03.11.04 - 09:37:37 »
Hi,

hatte ich ja oben schon angedeutet. Hauptsächlich auf die Formeln bei den Eingabeübersetzungen und Eingabevalidierungen der Felder. Das sind die Ecken an denen auch ComputeWithForm greift. Hier musst du die Formeln prüfen. Unter Umständen sind hier Formelbefehle eingesetzt, die nur in bestimmten Fällen funktionieren, z.B. das Dokument muss im Editmodus geöffnet sein.

Ich gebe gern zu, dass das bei einer umfangreichen Maske, zumal du die nicht selbst erstellt hast, eine Sysiphus-Arbeit ist, aber dir wird niocht anderes übrig bleiben.

Was passiert den, wenn du das Dokument normal anlegst, ausfüllst und speicherst?


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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz