PDA

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


derGugi
03.12.2001, 11:28
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

maex
11.04.2002, 12:52
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)) <> &quot;0&quot; Then
Info = &quot;anderer Fehler ... &quot;
Print &quot;LogMessage: &quot; & Info & Trim$(Str$(Err)) & &quot;: &quot; & Error$ & &quot; at line number&quot; &Erl
&acute;text1 = &quot;LogMessage: &quot; & Trim$(Str$(Err)) & &quot;: &quot; & Error$ & &quot; at line number&quot; &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