Welche Rechte sind den da wichtig? Die auf die Datenbank (da habe ich Manager-Rechte (wenn ich es selber starte funzt es ja) oder die auf dem Server?
PS: der Agent hatte immer meine Signatur
Welche Rechte sind den da wichtig? Die auf die Datenbank (da habe ich Manager-Rechte (wenn ich es selber starte funzt es ja) oder die auf dem Server?
PS: der Agent hatte immer meine Signatur
Ich habe ein ähnliches Problem, ich habe einen Agent geschrieben der neue Dokumente in der Datenbank erstellt (mit daten aus anderen Datenbanken).
Der Agent ist in Skript geschrieben und läuft nur wenn ich ihn persönlich starte. Wenn ich mir das Protokoll ansehe erzählt er mir:
Started running agent 'Zähler' on 11.12.2005 07:02:16 AM
Running on all documents in database: 492 total
Found 492 document(s) that match search criteria
Ran LotusScript code
Done running agent 'Zähler' on 11.12.2005 07:02:17 AM
In der Information von den Dokumenten selber steht aber das das Dokument am 24.11 das letzte mal von mir geändert wurde (da habe ich den Agent zuletzt laufen lassen)
Ich habe den Agent jetzt mal mit der Server ID Signieren lassen und hoffe das er nächstes Wochenende (So.) läuft.
Guten Morgen,
ich möchte von einem Dokument ein anderes öffnen und habe das Problem das ich den Befehl nicht finden kann.
Sub Click(Source As Button)
Dim uiws As New NotesUIWorkspace
Dim session As New Notessession
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Dim workspace As New NotesUIWorkspace
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set UIdoc = uiws.CurrentDocument
'------------ Erstelle Dokument-----------------
Set doc = db.CreateDocument
doc.Form = "(Antrag)"
'--------------------------------------------------------
var = uidoc.FieldGetText("TK_Datum")
doc.Antrag_Datum = var
End Sub
Das ist mein bisheriger Code, mir fehlt nur noch ein Befehl (open oder so) mit dem ich das Dokument (doc) öffnen kann.
Danke für eure Hilfe
Hm,
es ist echt lustig. Jetzt klappt es wieder. Es muß irgendwie an der indizierung liegen, die wohl nicht nachkommt (dabei ist die DB sehr klein)
machmal werden die Kategorien sofort erkannt, manchmal erst später.
Danke für eure Antworten
Gruß
Christian
Habahabahabahbabahaba,
ich weiß beim besten willen nicht warum, aber auf einmal läuft das ganze. *kratzAmHinterkopf*
Das ist wieder eines der Phänomene wo ich hoffe es nicht noch mal in die andere Richtung auftritt.
Gruß und Danke
Christian
Teil 1 habe ich gelöst, irgendwie hat er auf dem Server das Datum in der Maske anders aufgelöst als das Datum in der Ansicht. Jetzt habe ich einfach komplett aufgelöst [ @Year .. + "§" + @Month ...]. Dann funzt es.
Bei Teil 2 habe ich immer noch das Problem das er die Zahl nicht erkennt. Ich habe nun ein Feld in meiner "Einstellungsmaske" erzeugt, das als Counter funktioniert.
Mit
If uidoc.IsNewDoc Then
Set view = db.GetView( "Einstellung" )
Set doc = view.GetFirstDocument /* Es ist nur ein doc enthalten
If Not(doc Is Nothing) Then
var = doc.CounterKategorie(0)
Call uidoc.FieldSetText("KategorieNr", Cstr(var)) /* das Feld nimmt nur Text auf */
var = var + 1
doc.CounterKategorie = var
Call doc.Save ( True, False )
End If
End If
Überprüfen tue ich hinterher mit:
Set db = session.CurrentDatabase
Set view = db.GetView( "Nach Kategorie" )
Set view2 = db.GetView( "(LookupKategorie)" )
Set doc = view.GetFirstDocument
While Not(doc Is Nothing)
suchNr = doc.KategorieZahl(0)
If Not(suchNr = "") Then
Call view2.FTSearch( Cstr(suchNr), 0 )
Set doc2 = view2.GetFirstDocument
-->
If Not (doc2 Is Nothing) Then
Forall x In doc2.GetItemValue("KategorieLookup")
doc.Kategorie = x
End Forall
End If
<--
End If
Call doc.Save ( True, False )
Set doc = view.GetNextDocument ( doc )
Ich habe die suchNr auch extra noch mal als String deklariert, funzen tut es dennoch nicht.
Die Kategorie und die KategorieNr (suchNr) werden per Picklist in die Felder der Hauptmaske (doc) übergeben
Ich weiß beim besten willen nicht wieso er das nicht macht. eigentlich suche ich mit einem String nach einem String.
Dennoch findet er nie ein passendes document und überspringt die If - Schleife --> <--
Danke, jetzt funktioniert's
Hi,
eine bessere überschrift ist mir nicht eingefallen. Ich habe das Problem das ich einen Counter aufbauen möchte. Die Zahl speichere ich auf meine "Einstellungs-Maske" und zähle sie ständig wieder hoch.
Jetzt habe ich das Problem das er mir jedes mal, auf uidoc, sagt das er Text erwartet.
Kann mir jemand sagen wie ich das ändere? Oder wie ich "var" in einen Text umforme.
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set db = session.CurrentDatabase
Set UIdoc = ws.CurrentDocument
Set view = db.GetView( "Einstellung" )
Set doc = view.GetFirstDocument
If Not(doc Is Nothing) Then
Messagebox( "hm" )
var = doc.CounterKategorie(0)
Call uidoc.FieldSetText("KategorieNr", var)
Messagebox( var )
var = var + 1
Messagebox( var )
doc.CounterKategorie = var
Call doc.Save ( True, False )
End If
Gruß
Christian
Hm,
kannst du mir eine andere Möglichkeit nennen wie ich den Kategorien Zahlen zuordnen kann? Meine erste Idee war ja Lookup und dann die letzte Zahl + 1, aber das habe ich nicht wirklich hinbekommen.
Irgendwie wollte das nicht so laufen wie ich es gerne gehabt hätte.
Also, ich habe eine Datenbank in der die Kategorien in einer eigenen Maske erstellt werden.
Diese Kategorien werden über eine Picklist in die Hauptmaske geholt.
Ich kontrolliere aber gleichzeitig bei jedem speichern ob die Kategorie noch stimmt. Dazu habe ich versteckt zu jeder Kategorie (jedem Kategorie-Dokument) eine Zahl kreiert [über @If(@IsNewDoc; @DocNumber; KategorieNr) ]
Diese Zahl wird über die Pickliste ebenfalls auf meiner Hauptmaske gepeichert und über diese Prüfe ich die aktuallität der Kateorie.
(beim ändern der Kategoriebezeichnung bleibt die Zahl ja gleich)
@DbLookup("":"NoCache";"":""; "(LookupKategorie)"; KategorieZahl; 2;[FailSilent])
Die Ansicht ist so aufgebaut das in der ersten Spalte die Zahl und in der Zweiten die Kategorie steht. In der dritten stehen die Daten für die Pickliste [ KategorieNr + "§" +KategorieLookup ]
zu 1
Das hatte ich auch schon probiert, dann wandelt sich der Fehler in ein error.
Mich wundert vor allem das es lokal funktioniert und auf dem Server nicht.
zu 1
_Lookup := @DbLookup( "":"NoCache"; "":""; "(LookupAnträge)"; @Text(@Date(Antrag_Datum)) + "§" + @Text(@Time(Antrag_Zeit)); 2; [FailSilent]);
@If( Antrag_AnzahlPer != ""; @Sum(_Lookup); Nothing)
Steht in dem Feld drin, welches die Daten hinterher halten soll.
Auf dem Server erscheint nach dem Speichern oder Aktuallisieren das eine Zahl erwartet wird.
Die Ansicht besteht aus dem ersten Feld [@Text(@Date(Antrag_Datum)) + "§" + @Text(@Time(Antrag_Zeit))] und einem zweiten Feld [AnzahlPers] in der eine Zahl steht.
Wie gesagt, Lokal funzt es, auf dem Server nicht
zu 2.
Ich überprüfe das Feld beim speichern des Dokuments. Der DBLookup Befehl vergleicht die erste Spalte der Ansicht mit einem Feldinhalt in der Maske und holt sich dann die Kategorie bzw. den Wert in Spalte 2.
Bei den ersten 4 Reihen in der Ansicht funktioniert das auch, da bleiben die Daten auch nach dem speichern im Feld.
Bei allen weiteren löscht er den Inhalt des Feldes obwohl der Inhalt des Key-Feldes mit dem der 1 Spalte der Ansicht übereinstimmt
Hi,
ich habe zwei Probleme die ich mir nicht erklären kann.
1.
Ich habe eine Ansicht die über einen Lookupbefehl aus einer weiteren Ansicht Daten (Zahlen) holt und diese mit @Sum summiert.
Die Datenbank liegt auf dem Server und zeigt mir ständig einen Fehler.
Kopiere ich die Datenbank jedoch auf meine Lokale Platte läuft das ganze einwandfrei.
Kann mir jemand sagen warum? Es kann doch nicht sein das es Lokal funzt und auf dem Server nicht.
2.
Ähnliches Problem, ich habe eine Ansicht mit Kategorien, die ersten 4 Eintragungen lassen sich über den DBLookup Befehl aufrufen die anderen nicht.
Ich hoffe jemand kann mir dabei helfen, ich weiß leider nicht mehr weiter.
Gruß
Christian
Herzlichen Dank für die schnelle Antwort!!!
Mein Agent läuft jetzt.
Gruß
Christian
Hi,
ich möchte Mehrfachwert-Felder per Agent beschreiben. Die Daten dazu kommen von mehreren Dokumenten die ich auf der Ansicht ausgewählt habe.
Bei normalen Feldern klappt es, aber ich bin noch nicht dahintergestiegen wie ich es bei Mehrfachwert-Feldern programmieren muß.
Anfangs hatte ich gehoft es mit
docText.Datum = docText.Datum + ";" + doc.TK_Datum hinzubekommen. Da das leider nicht funktioniert habe ich im Forum den Befehl Arrayappend gefunden.
Dieser setzt aber, glaube ich zwei Arrays vorraus.
Ich habe aber auf der einen Seite nur ein Feld das Mehrfachwerte aufnehmen kann und auf der anderen Seite einen String (entweder aus einem Feld ausgelesen oder hardcodiert).
Hier ein Ausschnitt:
[docText.Feldname = Mehrfachwert-Felder
doc.Feldname = einfache Textfelder]
While Not(doc Is Nothing)
docText.Datum = Arrayappend(docText.Datum, doc.TK_Datum)
docText.Anzahl = Arrayappend(docText.Anzahl, doc.TK_Anzahlges)
docText.Schützenhalle = Arrayappend(docText.Schützenhalle, "in der Schützenhalle")
docText.Zeit = Arrayappend(docText.Zeit, "13:30")
Set doc = collection.GetNextDocument(doc)
Wend
Laut Fehlermeldung liegt in dem Bereich der Fehler im Agent.
Danke
Christian
Ich glaube da habe ich mal wieder viel zu kompliziert gedacht.
Danke.
Hi,
ich habe das Problem das ich alte Notes Dokumente habe die ich aktuallisieren möchte. Sie greifen über ein DBLookup auf eine andere Maske zu. (z.B wird darüber die Kategorie eingelesen)
Die habe ich jetzt geändert und möchte diese Änderung auch an auf alle Dokumente übernehmen.
Leider stellt Notes, wenn ich es nicht übersehen habe, keine direkte Möglichkeit dazu zur Verfügung.
Meine Idee dazu ist das ich die Dokumente mittels Agent einmal durchlaufen lasse (öffnen, speichern). Dabei habert es bei mir aber noch total an der Umsetzung.
Kann mir da jemand sagen wie ich das realisieren kann bzw. mich auf die richtige Spur schieben?
Danke
Hi, ich möchte eine Maske direkt als Dialogbox öffnen. Dazu habe ich im QueryOpenDocument, in Formelsprache, einen Aufruf
@DialogBox("Antrag"; [AutoHorzFit]:[AutoVertFit]:[SizeToTable]:[OkCancelAtBottom]; "Antrag") eingefügt. Jetzt öffnet er mir die Maske aber erst als Dialogbox und danach ganz normal als Maske.
In LotusSkript ist der Befehl um das öffnen eines Dokumentes zu verhindern Continue = False, wie ist er in Formelsprache?
Danke
Christian
weil er bei mir entweder alles oder gar nichts exportiert
aber die Hilfe im Domino ist manchmal auch grausam!!!
Das ist viel zu viel des guten, der Befehl ex- und importiert mir ja gleich die ganze Datenbank. Ich brauche einen Befehl der nur ein Dokument importiert.
Hi,
ich möchte Dateien, per Agent, in eine Notes-Datenbank
In dem Format habe ich mir eigentlich für XML entschieden, wobei das mehr oder weniger egal ist, da die Dateien noch nicht exsistieren, welche in die Datenbank eingelesen werden und ich somit auf die Art der Datei noch Einfluss nehmen kann.
Die Daten, die zwischen den einzelnen Tags stehen sollen in die jeweiligen Felder importiert und gespeichert werden. Dabei soll der Tag den Namen des Feldes haben (wenn das geht)
Ich habe leider nichts dementsprechendes gefunden, das mir weiterhilft.
Hat da jemand schon mal in die Richtung geproggt und kann mir vielleicht ein Codebeispiel geben?
Danke!
Gruß
Christian
PS: was ist eine DXL? Immer wen ich nach XML suche finde ich DXL