Autor Thema: Replizieren von Dokumenten verhindern  (Gelesen 1776 mal)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Replizieren von Dokumenten verhindern
« am: 14.02.03 - 14:54:35 »
Hallo Leute,

in meiner Anwendung ( die nie Lokal, sondern nur auf genau einem Server liegt) greifen verschiedene Anwedner auf eine Sicht zu und ziehen sich Dokumente in ihre privaten Ordner.

Wie kann ich verhindern, dass dabei dasselbe Dokument dann bei 2 verschiedenen Personen liegt ?

Ciao

Don Pasquale
« Letzte Änderung: 17.02.03 - 10:04:59 von Don Pasquale »

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re:Replizieren von Dokumenten verhindern
« Antwort #1 am: 14.02.03 - 19:08:55 »
Z.B. mit einem Leserfeld in den Dokumenten, dass beim Verschieben in den Ordner (wo genau auch immer) gesetzt wird.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Replizieren von Dokumenten verhindern
« Antwort #2 am: 14.02.03 - 21:38:15 »
... ganz so einfach ist es nicht. Was ist, wenn ein User auf einem Server das Doc in seinen Ordner zieht, und jemand anders auf einem anderen Server auch - der zweite denkt er hat das Dokument auch...

... Um das sauber zu matchen muß ein zentraler Server zu jeder Zeit erreichbar sein - dort wird in einer DB die Vergabe entschieden - oder es muß ein Konflikthandling eingeführt werden - bei Speicher- und Replizierkonflikten...

ata
« Letzte Änderung: 17.02.03 - 19:20:03 von ata »
Grüßle Toni :)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Replizieren von Dokumenten verhindern
« Antwort #3 am: 17.02.03 - 16:41:05 »

Was ist hiervon zu halten :


Annahmen: Die Anwendung liegt zentral auf dem Server

Annahmen: Wird ein Dokument angewählt, sollen alle
Dokumente derselben Kategorie (e4ihk_Identnummer)
mitverschoben werden.

Zuerst wird geprüft ob das Feld AUSGECHECKT leer ist.

Dann wird der eigenen Name hineingeschrieben

Steht bei der 2 Prüfung immer noch der eigene Name drin,
dann war alles in Ordnung.

Das ist das QueryAddToFolder der Ansicht

Sub Queryaddtofolder(Source As Notesuiview, Target As Variant, Continue As Variant)
   
' ************************
Dim ws As New NotesUiWorkspace
Call ws.viewrefresh
' ************************
Dim session As New NotesSession
Dim nnUserName As New NotesName(session.UserName)
' ************************
Dim docList As String
Dim LISTE List As String
Dim Konflikt As Integer
Dim OK As Integer
Konflikt = 0
Dim doc As NotesDocument

' ************************

   
   
For k = 1 To Source.Documents.Count
Set doc = Source.Documents.GetNthDocument(k)
   If Iselement(LISTE(doc.e4ihk_Identnummer(0)) ) Then
   ' NIX
   Else
   
   LISTE(doc.e4ihk_Identnummer(0)) = doc.e4ihk_Identnummer(0)
   docList = docList & Chr(10) & doc.e4ihk_Identnummer(0) & " " & doc.sf_Firmierung(0)
         
   End If
Next k
   
Forall x In Liste
   If isAusgechecktVorgang( LISTE(x) ) Then
   Konflikt = 1
   End If
End Forall
   
   
If Konflikt = 1 Then
Messagebox " Der Vorgang ist teilweise ausgecheckt"
Exit Sub
Else
   
Forall x In Liste
Anzahl = SETZE_ID_AUF_AUSGECHECKT(LISTE(x) , nnUserName.Common)
End Forall
      
End If
   
   
   MELDUNG$ = "Wollen Sie folgende Vorgänge übernehmen ?" & Chr(10) & docList
   OK = Messagebox(MELDUNG$, MB_OKCANCEL,"Vorgänge übernehmen")
   If OK = 1 Then
      
      Select Case IDOKCANCEL
      Case 1:
         
         Forall x In Liste
            Anzahl = SETZE_ID_AUF_INITIATOR(liste(x), nnUserName.Common)            
            Anzahl = SETZE_ID_AUF_EINGECHECKT(LISTE(x) )
         End Forall
         
      Case 2:
         Forall x In Liste
            Anzahl = SETZE_ID_AUF_EINGECHECKT(LISTE(x) )
         End Forall
         Continue = False   
      End Select
   End If
   
   
End Sub

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Replizieren von Dokumenten verhindern
« Antwort #4 am: 17.02.03 - 17:27:06 »
... ich denke das reicht noch nicht , habe aber erst heute Abend Zeit mir deinen Code genauer anzuschauen..

ata
Grüßle Toni :)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Replizieren von Dokumenten verhindern
« Antwort #5 am: 17.02.03 - 19:56:18 »
Sodele,

... wenn die Anwedung zentral nur auf diesem Server liegt, dann könnte das funktionieren - allerdings würde ich noch eine Überprüfung einbauen, daß die Anwendung auch wirklich auf dem dafür vorgesehenen Server liegt - und nicht etwa bei einem User Lokal oder sonstwo...

... denn sonst würdest du ein Konfliktmanagement benötigen..

ata
Grüßle Toni :)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Replizieren von Dokumenten verhindern
« Antwort #6 am: 18.02.03 - 07:21:58 »
@Ata :

Vielen Dank für Deine Antwort, jetzt traue ich mich, das Teil vom Anwender testen zu lassen.

zu eben :
Meinst Du vielleicht im Postopen Ereignis der Anwendung so etwas ? :

@If(@Name([CN]; @Subset(@DbName; 1)) != "";@Return(""); @Do(
@Prompt([OK];"Restriction"; "Database can only run on server");
@PostedCommand([FileCloseWindow]) ) )


Weitere Idee :

Ich habe gelesen, dass man Lock-Objekte erzeugen kann, bringt das hier etwas oder ist der nur für Agenten ?

ciao

Don Pasquale

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Replizieren von Dokumenten verhindern
« Antwort #7 am: 18.02.03 - 09:04:59 »
Moin moin

Zitat
@If(@Name([CN]; @Subset(@DbName; 1)) != "";@Return(""); @Do(
@Prompt([OK];"Restriction"; "Database can only run on server");
@PostedCommand([FileCloseWindow]) ) )

... damit unterbindest du eine lokale Verwendung der DB. Du kannst es auch beim Verschieben wollen abfragen, dann kann die DB Lokal verwendet werden, aber Dokumente nicht verschoben...


Zitat
Ich habe gelesen, dass man Lock-Objekte erzeugen kann, bringt das hier etwas oder ist der nur für Agenten ?

... ist denke ich nur für Agenten - in R6 siehts dann besser aus...

ata
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz