Archiv verlassen und diese Seite im Standarddesign anzeigen : @setfield in eine andere Datenbank ?
Timo Bakenecker
30.11.2001, 12:17
Hallo ,
hat einer ne Ahnung , wie man mit Script oder ß@Befehl nen Wert in ein Feld einer anderen datenbank auf demselben Server schreibt.
Ich kenne nur den @set und @setfield Befehl, jedoch funktioniert dr nicht, um Daten von einer ineine andere Datenbank des gleichen servers zu schreibe.
Hat da wer nen guten Einfall ? oder nen Script.
Gruß,
Tremon
Hi Tremon
Mit @setEnvironment kannst du eine Umgebungsvariable definieren, die du dann auch in einer anderen Datenbank gebrauchen kannst.
Mit @environment holst du sie dann wieder und kannst sie in ein Feld pasten.
Cya derGugi
Timo Bakenecker
03.12.2001, 11:53
Hi,
jau das funktioniert, aber ich muß die Datenbank wechseln um die Daten wieder einspielen zu können, oder kennst Du einen Weg indem die daten dann direkt in die andere Datenbank geschreiben werden. ?( ?(
Ich habe @enviroment mal als Zähler benutzt um Dokumentenversionen hochzuzählen.
Gruß
timo
So hier ist ein Script wie man zwischen Datenbanken weckselt:
On Error Goto Errorhandler1
´Open Maildb1 auf VPN1
Dim Db3 As New NotesDatabase( "", Maildb1 )
´Open Statistik auf VPN1
Dim Db1 As New NotesDatabase( "", "QSAG\Statisti1.nsf" )
Dim session As New NotesSession
Dim Agent As NotesAgent
Dim agentString As String
Dim nid As String
Set Agent = DB3.GetAgent( "Agenturen")
´ fehler = False Datenbank vorhanden
´ True Datenbank nicht vorhanden
If Schalter = False Then
Set doc3 = db1.CreateDocument
´ Kontonr setzen
Set item = doc3.AppendItemValue _
( "Konto", Konto )
´ Oracle Kennzeichen Blank noch nicht ins Oracle übertragen
´ "J" übertragen
Set item = doc3.AppendItemValue _
("Flag", " ")
´ ältestes Maildatum
If international.IsDateDMY Then
Set item = doc3.AppendItemValue _
( "Datum_alt", Cdat("01.01.2222") )
Else
Set item = doc3.AppendItemValue _
( "Datum_alt", Cdat("01/01/2222") )
End If
´Anzahl
Set item = doc3.AppendItemValue _
("Anzahl", Cint(0))
´ wann bist du gelaufen
Set item = doc3.AppendItemValue _
( "Lauf", hilfe )
Call doc3.Save( False, True )
´ID des Dokuments wird in der Notes.ini gesetzt
nid = doc3.NoteID
Call session.SetEnvironmentVar _
("Agenturen",nid)
Call Agent.Run
Else
schalter = False
Set doc3 = db1.CreateDocument
Set item = doc3.AppendItemValue _
( "Konto", Konto )
Set item = doc3.AppendItemValue _
( "Info", Info )
´ Oracle Kennzeichen Blank noch nicht ins Oracle übertragen
´ "J" übertragen
Set item = doc3.AppendItemValue _
("Flag", " ")
´ ältestes Maildatum
If international.IsDateDMY Then
Set item = doc3.AppendItemValue _
( "Datum_alt", Cdat("01.01.2222") )
Else
Set item = doc3.AppendItemValue _
( "Datum_alt", Cdat("01/01/2222") )
End If
´Anzahl
Set item = doc3.AppendItemValue _
("Anzahl", Cint(0))
´ wann bist du gelaufen
Set item = doc3.AppendItemValue _
( "Lauf", hilfe )
Call doc3.Save( False, True )
End If
Goto ende
Errorhandler1 :
Dim x As Integer
If Trim$(Str$(Err)) = "4063" Then ´ Datenbank nicht vorhanden, weitermachen bei naechstem Befehl
Print "LogMessage: " & Trim$(Str$(Err)) & ": " & Error$
´val1 = Trim$(Str$(Err))
Info = "Mailkonto nicht vorhanden"
Schalter = True
Resume Next
Else
If Trim$(Str$(Err)) <> "0" Then
Info = "anderer Fehler ... "
Print "LogMessage: " & Info & Trim$(Str$(Err)) & ": " & Error$ & " at line number" &Erl
´text1 = "LogMessage: " & Trim$(Str$(Err)) & ": " & Error$ & " at line number" &Erl
Schalter = True
Resume Next
End If
Stop
End If
ende:
End Sub
ciao maex
Timo Bakenecker
11.04.2002, 13:09
....danke , werde ich mal ausprobieren
Gruß
Tremon
Mr Bon Jovi
04.03.2003, 12:01
Hier ist auch noch ein Quelltext zum testen.. bei mir funktioniert dat:
Sub Initialize
Dim session As New NotesSession
Dim session_alt As New NotesSession
Dim db As NotesDatabase
Dim db_alt As New NotesDatabase(S01A01,"log.nsf")
Dim view As NotesView
Dim view_alt As NotesView
Dim doc As NotesDocument
Dim doc_alt As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView("Ansicht_Serveruebersicht")
Set view_alt = db_alt.GetView("Replication Events")
Set doc = view.GetFirstDocument
Set doc_alt = view_alt.GetFirstDocument
Dim item As NotesItem
'Variablendekleration
Dim server As Variant
Dim datum As Variant
Dim uhrzeit As Variant
Dim datenmenge As Variant
Dim dauer As Variant
Dim datenbank As Variant
While Not(doc_alt Is Nothing)
datum = doc_alt.GetItemValue("@Date(StartTime)")
uhrzeit = doc_alt.GetItemValue("StartTime")
datenmenge = doc_alt.GetItemValue("Body")
dauer = doc_alt.GetItemValue("FinishTime")
datenbank = doc_alt.GetItemValue("SourceServer")
If doc Is Nothing Then
Set doc = db.CreateDocument
Call doc.Save(True,True)
Set item = doc.ReplaceItemValue("Server","S01A01")
Set item = doc.ReplaceItemValue("Datum",datum)
Set item = doc.ReplaceItemValue("Uhrzeit",uhrzeit)
Set item = doc.ReplaceItemValue("Datenmenge",datenmenge)
Set item = doc.ReplaceItemValue("Dauer",dauer)
Set item = doc.ReplaceItemValue("Datenbank",datenbank)
Else
Set item = doc.ReplaceItemValue("Server","S01A01")
Set item = doc.ReplaceItemValue("Datum",datum)
Set item = doc.ReplaceItemValue("Uhrzeit",uhrzeit)
Set item = doc.ReplaceItemValue("Datenmenge",datenmenge)
Set item = doc.ReplaceItemValue("Dauer",dauer)
Set item = doc.ReplaceItemValue("Datenbank",datenbank)
End If
Call doc.Save(False,True)
Set doc_alt = view_alt.GetNextDocument(doc_alt)
Wend
End Sub
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.