Autor Thema: Dokument ersetzen, falls schon vorhanden  (Gelesen 1388 mal)

Offline Solaris

  • Frischling
  • *
  • Beiträge: 37
  • Geschlecht: Männlich
  • Check it out ;)
Dokument ersetzen, falls schon vorhanden
« am: 16.04.03 - 09:43:29 »
Hallo,

ich hab auch mal wieder eine Frage :)
Hoff das das Thema net schonmal da war.

Aaaaalso ich habe ein Dokument im Status Entwurf ( ENT), das nach Freigabe in den Status Fertig (FTG) gebracht werden soll. Das funktioiert auch. Da habsch ein kleines Script zu verfasst, was die FORM des Dokumentes von ENT zu FTG ändert, womit es dann nur noch in der Ansicht Fertig zu sehen ist :)
Nun ist aes aber so, das wenn es schonmal ein Dokument mit der selben Kapitelnummer gibt, das bisherige Dokument in den Status History (HIS) gebracht werden soll und das neue Dokument, was sich bisher im Status ENT befindet, dann an diese Stelle rückt, also in den Status FTG.
Leider weiß ich net wie ich abfragen kann, ob es so ein Dokument gibt  ???
Ich habe da etwas von NotesDocumentCollection oder so gehört, aber ich weiß net wie ich mit diesem Befehl umgehen soll  ???

Könnt ihr mir das evtl mal etwas erläutern. In der Notes Hilfe blick ich net durch, was ich abfragen muss bzw was mir dann zurück geliefert wird  ???

Dankeschön :)

mfg Solaris


Ps: mein bisheriges Script:

[size=0.5]Sub Initialize
   Dim se As New NotesSession
   Dim ws As New NotesUIWorkspace    
   Dim db As NotesDatabase
   Dim coll As NotesDocumentCollection
   Dim kview As NotesView    
   Dim edoc As NotesDocument
   Dim kdoc As NotesDocument
   Dim ITEM As NotesItem
   Dim KFORM As String
   Dim EFORM As String
   Dim KVIEWNAME As String  
REM----- Felder werden eingebunden   
   Dim VALIDDATE As Variant
   Dim DOCVERSION As String
   Dim DOCAUTHOR As Variant
   Dim CREATED As Variant
   Dim DOCEDITOR As Variant
   Dim DOCEDIT As Variant
   Dim ISFREE As String
'   Dim KNR As String
'   Dim AB As Variant
   Dim KAPCREATED As Variant
   Dim KAPCREATER As Variant  
   Dim Such As String
   Dim ArtDOC As String
   
REM------   Wertezuweisung
   
   'KAPCREATED = Now ()
   'KAPCREATER = se.UserName
   KVIEWNAME = "NotFree"
   KFORM = "FTG"
   EFORM = "ENT"
   VALIDDATE = ""
   DOCVERSION = ""
   DOCAUTHOR = se.UserName
   CREATED = Now ()
   DOCEDITOR = ""
   DOCEDIT = ""
   ISFREE = 1
   Set db = se.CurrentDatabase
   Set coll = db.UnprocessedDocuments
   Set kview = db.GetView(KVIEWNAME)
   'Set edoc = coll.GetNthDocument( 1 )
   Set edoc = ws.CurrentDocument.document
   
REM ----------- Fehleruntersuchung    
   KNR = edoc.ChapterNum(0)
   If KNR="" Then
      Messagebox "Diese Aktion kann mit diesem Entwurf kein Kapitel erstellen !"+Chr$(13)+"Die Kapitel-Nummer fehlt im Entwurf. ",16,"Abbruch der Aktion:"
   Else
      AB = edoc.ValidDate
      If Not(Isdate(AB(0))) Then
         Messagebox "Diese Aktion kann mit diesem Entwurf kein Kapitel erstellen !"+Chr$(13)+"Das Gültigkeits-Datum fehlt im Entwurf. ",16,"Abbruch der Aktion:"
      Else  
         ArtDOC= edoc.Art(0)
         such = Trim$( ArtDOC ) + "***" + Trim$( KNR )
         Set kdoc = kview.GetDocumentByKey(such,True)
         If Not(kdoc Is Nothing) Then
            Messagebox "Diese Aktion kann mit diesem Entwurf kein Kapitel erstellen !"+Chr$(13)+"Es existiert schon ein Kapitel"+Chr$(13)+"mit Kapitel-Nummer: "+KNR,16,"Abbruch der Aktion:"              
         Else
REM ----------- Erzeugen einer Kopie des Entwurfes als Kapitel
            Set kdoc  = edoc.CopytoDatabase (db)
            Call kdoc.ReplaceItemValue( "FORM", KFORM )
            'Call kdoc.ReplaceItemValue( "ValidDate", VALIDDATE)
            'Call kdoc.ReplaceItemValue( "DocVersion", DOCVERSION )
            'Call kdoc.ReplaceItemValue( "DocAuthor", DOCAUTHOR)
            'Call kdoc.ReplaceItemValue( "Created", CREATED)        
            'Call kdoc.ReplaceItemValue( "DocEditor", DOCEDITOR)
            'Call kdoc.ReplaceItemValue( "DocEdit", DOCEDIT)    
            Call kdoc.ReplaceItemValue( "IsFree", ISFREE)    
            Call kdoc.Save (True, False)
REM ----------- Eintragen Datum/Person der Kapitelerzeugung
         '   Call edoc.ReplaceItemValue( "KAPCreated", KAPCREATED )
         '   Call edoc.ReplaceItemValue( "KAPCreater", KAPCREATER )
            Call edoc.Save (True, False)
            Print "Kapitel: "+KNR+" erstellt !"
            
         End If        
      End If
   End If
End Sub[/size]
« Letzte Änderung: 16.04.03 - 10:19:49 von Solaris »
Win2k
Lotus Notes R5.08

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re:Dokument ersetzen, falls schon vorhanden
« Antwort #1 am: 16.04.03 - 11:01:13 »
Zitat
  If Not(kdoc Is Nothing) Then
            Messagebox "Diese Aktion kann mit diesem Entwurf kein Kapitel erstellen !"+Chr$(13)+"Es existiert schon ein Kapitel"+Chr$(13)+"mit Kapitel-Nummer: "+KNR,16,"Abbruch der Aktion:"              
         Else

Anstelle der Messagebox kannst Du hier den Status von kdoc in Archiv ändern (.. oder verschieben etc........) und das neue einfügen (Status ändern etc)
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline Solaris

  • Frischling
  • *
  • Beiträge: 37
  • Geschlecht: Männlich
  • Check it out ;)
Re:Dokument ersetzen, falls schon vorhanden
« Antwort #2 am: 16.04.03 - 11:40:01 »
[size=0.5]Sub Initialize
   
REM ------ Variablenerstellung ---------------
   
   Dim se As New NotesSession
   Dim ws As New NotesUIWorkspace    
   Dim db As NotesDatabase
   Dim view As NotesView    
   Dim odoc As NotesDocument ' Das Dokument was bisher das fertige Dokument ist
   Dim ndoc As NotesDocument ' Das Dokument was im Status Entwurf verweilt
   Dim hdoc As NotesDocument ' Das Dokument was im in den Status History soll
   Dim ITEM As NotesItem   
   
   Dim NFORM As String ' neue Maske
   Dim OFORM As String
   Dim VIEWNAME As String  
   
REM----- Felder der Maske werden eingebunden   
   
   Dim CHAPTERNUM As Variant   
   Dim VALIDDATE As Variant
   Dim ART As Variant
   
REM------   Wertezuweisung
   
   VIEWNAME = "ENT"
   NFORM = "FTG"
   OFORM = "HIS"
   
   Set db = se.CurrentDatabase
   Set view = db.GetView(VIEWNAME)
   Set ndoc = ws.CurrentDocument.document
   
REM ------------ Überprüfung ob schon ein Dokument mit der Kapitelnummer vorhanden ist ------------
   
   CHAPTERNUM = ndoc.ChapterNum(0)
   ART = ndoc.ART(0)
   such = Trim$( ChapterNum )
   Set odoc = view.GetDocumentByKey(such,True)
   If odoc Is Nothing Then
      such =  Trim$( ART )
      Set odoc = view.GetDocumentByKey(such,True)
      If odoc Is Nothing Then
         
REM --------- Umändern eines Feldes von Status Entwurf zu Status Fertig--------------
         
         Set ITEM = ndoc.ReplaceItemValue ( "FORM", NFORM )
         Call ndoc.Save (True, False)
         
      Else
         
REM ---------- Altes Dokuments zu History werden lassen ----------------
         
         Set ITEM = odoc.ReplaceItemValue ( "FORM", OFORM )
         Call odoc.Save (True, False)
         
REM ---------- Neues Dokument zu Fertigen Dokument werden lassen ----------
         
         Set ITEM = ndoc.ReplaceItemValue ( "FORM", NFORM )
         Call ndoc.Save (True, False)
         
         
      End If
   End If   
End Sub[/size]

Kann mir vielleicht mal einer sagen, warum ich mit meinem Script einfach keine Übereinstimmung finde, obwohl es 100% schon ein Dokument gibt, das die Bedingungen 100% erfüllt das es sozusagen schon vorhanden ist  ??? :'(
« Letzte Änderung: 17.04.03 - 08:26:40 von Solaris »
Win2k
Lotus Notes R5.08

Offline Solaris

  • Frischling
  • *
  • Beiträge: 37
  • Geschlecht: Männlich
  • Check it out ;)
Re:Dokument ersetzen, falls schon vorhanden
« Antwort #3 am: 17.04.03 - 09:35:09 »
Problem ist gelöst. habe keine Sortierung in der Ansicht gehabt und somit ging meine Abfrage nicht  ::) >:(
Darauf muss man erstmal kommen  :-\
Win2k
Lotus Notes R5.08

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz