Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Solaris 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]
-
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)
-
[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 ??? :'(
-
Problem ist gelöst. habe keine Sortierung in der Ansicht gehabt und somit ging meine Abfrage nicht ::) >:(
Darauf muss man erstmal kommen :-\