Autor Thema: Querysave  (Gelesen 1752 mal)

Offline mgeidl

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Querysave
« am: 10.07.03 - 10:00:39 »
Hallo liebe Leute!

Ich hab einen LS u.a., der archiviert, sollte sich ein Dokument mit gleichem Schüssel in einer bestimmten Ansicht befinden. Dieses Querysave ist aber aus Zeiten, in denen die DB nur auf einem Server gelaufen ist. Nun ist das LS so umzubauen, dass er die DB nimmt, auf der der User arbeitet. Die Unterverzeichnisse heißen auf allen Servern gleich.
Kann mir jemand helfen?

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim Doc,DocS As NotesDocument
   Dim DB As NotesDatabase
   Dim View As NotesView
   Dim s As New NotesSession
   Dim Search (1 To 1) As String
   Dim DBArchiv As NotesDatabase
   
   Set Db=s.CurrentDatabase
   Set View=DB.GetView("(Lookup)")
   Set Doc=Source.Document
   
      REM Wenn Datenbank nicht auf RFLE-Server -> EXIT
   If (db.server<>"RFKPSRV1/") Then
      Exit Sub
   Else
          REM Wenn Name der Datenbank nicht "roto\Handbuch\Handbuch.nsf" -> EXIT
      If (db.FilePath<>"roto\Handbuch\ManagementHB.nsf") Then
         Exit Sub
      End If
   End If
   
     REM wenn aktuelles Dokument nicht freigegeben -> exit
   If (Doc.Status(0)<>"freigegeben") Then
      Exit Sub
   End If
   
   Set DBARchiv=New NotesDatabase("","roto\Handbuch\Archiv_ManagementHB.nsf")
   
   If (DbArchiv.IsOpen=False) Then
      Exit Sub
   End If
   Search(1)=Doc.Werknormnummer(0)
   Set DocS=View.GetDocumentByKey( Search )
    REM wenn Dokument nicht gefunden      -> exit
   If (DocS Is Nothing) Then
      Exit Sub
   End If
     REM wenn aktuelles Dokument gefunden wurde -> exit
   If (Doc.UniversalId = DocS.UniversalId) Then
      Exit Sub
   End If
     REM wenn gefundenes Dokument nicht freigegeben -> exit
   If (DocS.Status(0)<>"freigegeben") Then
      Exit Sub
   End If
   
   Doc.Index=Doc.Index(0)+1
   
   Call DocS.CopyToDatabase(DBArchiv)
   Call DocS.Remove(True)
   Call View.Refresh
   
   
End Sub

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:Querysave
« Antwort #1 am: 10.07.03 - 10:19:41 »
Hi,

äähhmm, so ganz verstehe ich die Frage nicht.

Mit der Zeile

Set Db=s.CurrentDatabase

nimmt er doch die DB auf der der User arbeitet, egal ob lokal oder auf dem Server. Oder vestehe ich da was falsch.


Axel


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

Offline mgeidl

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Querysave
« Antwort #2 am: 10.07.03 - 10:43:48 »
Hi!

Ich hab einfach die Zeile:

REM Wenn Datenbank nicht auf RFLE-Server -> EXIT
   If (db.server<>"RFKPSRV1/") Then
      Exit Sub
   Else
End IF

rausgelöscht, dann hat´s funzt.

Danke trotzdem

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Querysave
« Antwort #3 am: 10.07.03 - 12:10:03 »
... ich hab da so meine Zweifel, ob das funktioniert, den dein Server hat keine Organistaion - und db.Server gibt den kompletten Namen des Servers zurück - dein Stringvergleich kann nicht zutreffen...

ata
« Letzte Änderung: 11.07.03 - 23:30:38 von ata »
Grüßle Toni :)

Offline mgeidl

  • Aktives Mitglied
  • ***
  • Beiträge: 224
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Querysave
« Antwort #4 am: 10.07.03 - 14:06:05 »
Hi ata!

Hast recht, das funktioniert nur am Server, an dem ich gerade arbeite, aber sobald repliziert wird, ist´s dann doppelt. Kann ich das irgendwie verhindern?

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Querysave
« Antwort #5 am: 11.07.03 - 23:37:27 »
... Pflichtanteile eines Notesnamen sind CN und O ( wenn ich eckige Klammern verwende wird etwas anderes angezeigt - ein Bullet - ich habe es im vorherigen Posting korrigiert...)

... wenn du es also ändern willst, dann verwende den kompletten Notesnamen - wenn OU's verwendet werden auch die...

... in LS habe ich mit der folgenden Lösung noch nie Probleme gehabt:

Dim vValue As Variant
Dim sServer As String
Dim sDBPath As String
vValue = Evaluate( "@DBName" )
sServer = vValue( 0 )
sDBPath = vValue( 1 )

... und dann eben mit diesen Variablen arbeiten...

ata




Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz