vielen dank für die schnelle antwort....das klingt erstmal sehr einleuchtend! wird auf jedenfall ausprobiert
Beiträge von setherus
-
-
Hallo,
ich bin hier am verzweifeln!
Folgenden Problematik.
Wir veröffentlichen auf unserer Webseite in Notes erstellte Dokumente (was auch sonst ). und jetzt soll zudem definitiv noch dri9n stehen wann diese Dokumente veröffentlicht wurden. Das bedeutet ich brauche das addedtofile Datum, da die Dokumente nach dem Replizieren bei uns als veröffentlicht gelten. Dies ist ja nun definitiv nicht per Formel möglich, also habe ich mir, getreu dem Motto "Warum das Rad 2 mal erfinden" ein Workaround aus dem Netz geholt
(anbei) ... das macht erstmal das was ich erwartet habe, ich bekomme mein addedtofile datum....nur wie bekomme ich das jetzt in ein Feld bzw. in einen berechneten Text????mit einem scheduled agenten möchte ich das ungern tun, da es dann bestimmt zu überschneidungen kommt...also berechnet zur Anzeige wäre mein wunsch hierfür
gibt es da ein möglichkeit???
Code
Alles anzeigenConst wAPIModule = "NNOTES" ' Windows/32 Const NOTE_ADDED_TO_FILE = 13 Declare Private Function ConvertTIMEDATEToText Lib wAPIModule Alias "ConvertTIMEDATEToText" _ ( Byval zI As Long, Byval zT As Long, T As Long, Byval S As String, Byval nS As Integer, nT As Integer) As Integer Declare Private Function NSFDbOpen Lib wAPIModule Alias "NSFDbOpen" _ ( Byval P As String, hDB As Long) As Integer Declare Private Function NSFDbClose Lib wAPIModule Alias "NSFDbClose" _ ( Byval hDB As Long) As Integer Declare Private Function NSFNoteOpen Lib wAPIModule Alias "NSFNoteOpen" _ ( Byval hDB As Long, Byval NoteID As Long, Byval F As Integer, hNT As Long) As Integer Declare Private Function NSFNoteClose Lib wAPIModule Alias "NSFNoteClose" _ ( Byval hNT As Long) As Integer Declare Private Function NSFNoteGetInfo Lib wAPIModule Alias "NSFNoteGetInfo" _ ( Byval hNT As Long, Byval M As Integer, V As Any) As Integer Declare Private Function OSPathNetConstruct Lib wAPIModule Alias "OSPathNetConstruct" _ ( Byval zP As Long, Byval S As String, Byval F As String, Byval N As String) As Integer Dim child As NotesDOMNode Dim elt As NotesDOMNode Dim attrs As NotesDOMNamedNodeMap Dim a As NotesDOMAttributeNode Dim i As Integer Dim xmlHierLevel As Integer Dim unid As String Function AddedToFile(doc As NotesDocument) As String With doc.ParentDatabase db$ = String$(1024, " ") OSPathNetConstruct 0, .Server, .FilePath, db$ End With Dim hDB As Long NSFDbOpen db$, hDB If hDB = 0 Then Exit Function Dim hNT As Long Dim T(1) As Long NSFNoteOpen hDB, Clng("&H" & doc.NoteID), 0, hNT If Not hNT = 0 Then NSFNoteGetInfo hNT, NOTE_ADDED_TO_FILE, T(0) NSFNoteClose hNT s$ = Space(80) ConvertTIMEDATEToText 0, 0, T(0), s$, 80, ns% AddedToFile = Left$(s$, ns%) End If NSFDbClose hDB End Function Sub Initialize Dim s As New notessession Dim db As NotesDatabase Dim doc As notesdocument Dim col As notesdocumentcollection Set db = s.CurrentDatabase Set doc = db.UnprocessedDocuments.GetFirstDocument add = addedtofile(doc) Msgbox add
-
[color=CC0000]themenpräfix beachten[/color]...*mitderhandvordenkopfschlag*
-
hi,
ich würde auch das beispiel von diali nehmen, alleine schon aus erfahrungswerten...alternativ ist der vorschlag von taurec nicht falsch, aber ebend nur wenn genau ein dokument erwartet wird, di möglichkeit nutze ich aber nur für einwegfunktionen...wie gesagt dialies weg ist der bessere meiner meinung nach, da man noch diverse abfragenprüfungen machen kann...kleines code beispiel, wie sie auch in der hilfe zu finden sind...
#######################
dim session as new notessession
dim db as notesdatabase
dim col as notesdocumentcollection
dim doc as notesdocument
dim neudoc as notesdocument
dim view as notesview
dim i as integer....
'Hier wird die neue Datenbank geholt
set neueDB as new notesdatabase( Server, Datenbank)
'hier holen wir uns die Ansicht, für die Suche (wie in @DBLookup)
set view = neueDB.getview(Ansichtenname)'alle Dokumente mit dem schlüssel holen
set col = view.getalldocumentsbykey( Schlüssel , true)
'Prüfung haben wir etwas?
if col.count < 1 then
msgbox "Nichts gefunden"
exit sub
end if
for i = 1 to col.count
set neudoc = col.getnthdocument(i)
......
next
....
end sub
##################ich hoffe ich konnt ein wenig helfen
-
Hallo,
also die einzelnen Agenten generieren keine Fehlermeldung, und arbeiten tadellos sowohl im frontend als auch im backend, habe mich dafür entschieden die nun alle einzelnd hintereinander zu schedulen
ich danke euch für eure Hilfe, großes lob
Gruß
Gregor -
vielen dank, das werd ich mir mal alles denn nochmal vornehmene und gezielt daraufachten wo er aussteigt
danke nochmals
-
hi
If agent.Run = 0 Then
an der stelle steigt er aus und generiert mir oben genannte Fehlermeldung
-
bei nem button empfehle ich
@PickList([Custom] : [Single]; server : file; view; title; prompt; column)wenn die ansicht gut designt wird ist das arbeiten damit hervorragend und es bedeutet kaum aufwand
field xy := @PickList([Custom] : [Single]; server : file; view; title; prompt; column)
weitere daten liessen sich aus der ansicht mittels @dblookup ziehenbei einem onclick event verweise ich auf den sehr gut beschriebenen tip von taurec
-
bis jetzt läuft da nichts scheduled, soll es aber im endeffekt, hab auch an einer anderen stelle bereits gute erfahrungen gemacht, da ruft ein scheduled agent einen anderen auf, und dieser erstellt auch eine datei in einem netzwerk
dort sind auch die gleichen einstellungen vorhanden
aber davon weg starte ich immo das aufruf script manuell
-
alle aufzurufende agenten haben Ziel : Keins und werden mit laufzeit-sicherheitsstufe 3. Beschränkte Operationen mit vollständigen Admin-rechten zulassen ausgeführt
war auch mein erster gedanke
-
hi taurec, sorry das ich mich erst jetzt melde, aber war spontan im urlaub ,-)
also die fehlermeldung lautet
Notes error: Unknown LotusScript Error.die taucht direkt beim agent.run auf
-
Hallo
so kurz vor den Feiertagen hab ich dann dochmal eine frage
und zwar..ich habe diverse agenten geschrieben die Notesdatenbanken mit einem mssqlserver abgleichen indem ich mir vordefinierte ansichten hole und dies mit den werten die ich per LSXODBC
die agenten an sich laufen wunderprächtig
so nun hab ich vor die mittlerweile 18 prüfungen doch mitttels eines einzigen agentten starten zu lassen der sieht wie folgt aus
===================
Dim s As New notessession
Dim db As notesdatabase
Dim array(0 To 17) As String
Dim agent As notesagent
Set db = s.CurrentDatabase
array(0) = "CCDBESGEM"
array(1) = "CCD_Leistungsdaten"
array(2) = "CCDLIZ"
array(3) = "CCDPFAHRER"
array(4) = "CCDPTRAIN"
array(5) = "CCDPZUECHTER"
array(6) = "CCDPSTAMM"
array(7) = "CCDPSTAT"
array(8) = "CCDSQLLN"
array(9) = "CCDZEICH"
array(10) = "CCDZUAN"
array(11) = "CCDAUSF"
array(12) = "CCDBESITZ"
array(13) = "CCDEINF"
array(14) = "CCDSTAND"
array(15) = "CCDTLIST"
array(16) = "CCDTSTAT"
array(17) = "CCDPGESTUET"
For i = 0 To Ubound(array)
Set agent = db.GetAgent( cstr(array(i))
If agent.Run = 0 Then
Print "start -> " & array(i)
Else
Print "DENIED -> " & array(i)
End If
Next
====================sobald agent.Run aufgerufen wird bekomme ich die Fehlermeldung "Lotus Script unknown error"
nun bin ich am überlegen ob nicht im fiolgendem code der fehler begraben liegt
(ein Prüfagent)
===============================
Sub Initialize
Dim con As New LCConnection ("oledb")
con.database = "XXXX"
con.server = "XXXX"
con.provider ="SQLOLEDB"
con.userid =""XXXX"
con.password = ""XXXX"
'==========================
Dim SQL As String
Dim lcsess As New LCSession
Dim MyResult As String
Dim lcfeld As LCField
Dim lcfeld2 As New LCField (LCTYPE_DATETIME)
Dim session As New NotesSession
On Error Goto ErrorHandler
Set aktdb = session.CurrentDatabase
Set configdoc = getconfigdoc(Cstr(aktdb.server))
Set db = New notesdatabase(configdoc.paserver(0), configdoc.pafile(0))
Dim ident ()
Dim zeit ()
count = 0
filenum% = Freefile()
Open "\\server\ordner\CheckServer\CHECKSQLNOTES_BG" & Format(Today,"ddmmyyyy") & ".xls" For Output As filenum%
Print # filenum%, "PARTNERID NAME NOTES SQL"
'Notes holen
Set view = db.getview("(CheckBG)")
Set col = view.allentries
'SQL holen
sql = "select pbgunID,pbgaenddt from pbgp where CONVERT(varchar(8), pbgaenddt, 112)=CONVERT(varchar(8), GetDate(), 112) order by pbgunid"
Dim MyFldList As New LCFieldList
con.Execute sql,myfldlist
' rtlident, rtldat,rtlort,rtlfahrer, rtltrainer, rtlidzue,rtlidbes
While (con.Fetch(myfldlist) > 0)
Redim Preserve ident (count)
Redim Preserve zeit(count)
Set lcfeld2 = myfldlist.GetField(1)
ident (count)= Cstr(lcfeld2.text(0))
Set lcfeld2 = myfldlist.GetField(2)
zeit(count) = Cdat(lcfeld2.value(0))
count = count + 1
WendPrint # filenum%, ""
Print # filenum%, "Notes: " & col.count & " " & "SQL: " & (count)
Print # filenum%, ""
For i = 1 To col.count
check = 0
Set entry = col.getnthentry(i)
If count > 0 Then
For a = 0 To Ubound(ident)
If Cstr(entry.document.docID(0)) = Cstr(ident(a)) Then
check = 1
Goto weiter
End If
Next
End If
nichtdabei = entry.document.PartnerID(0) & " " & entry.document.NameDisplay(0) & " NICHT AUF SQL mit ChangeDate heute"
weiter:
If check = 1 Then
If entry.document.ChangeDate(0) = zeit(a) Then
Print entry.document.PartnerID(0) & " " & entry.document.NameDisplay(0) & " passt!"
Else
Print entry.document.PartnerID(0) & " " & entry.document.NameDisplay(0) & " passt nicht!"
Print # filenum%, entry.document.PartnerID(0) & " " & entry.document.NameDisplay(0) & " " & entry.document.ChangeDate(0) & " " & zeit(a)
End If
Else
Print # filenum%,nichtdabei
End If
Next
Close filenum%Exit Sub
'##########################################
ErrorHandler:
Messagebox Error$, 16, "Fehler:" & Err
Exit Sub
End Sub==================
ich hoffe ich hab da keinen absoluten bockmist gefragt
vielen dank schonmal im vorraus
und Frohe Ostern!! -
danke schön
werd ich gleich mal probieren sobald ich an den rechner rankomm
immo tritt es nicht auf ein neustart hilft meist
Vielen Dank
-
Hallo,
ich hab hier ein problem mit einenm 7er client. Plötzlich richtet sich alles nach rechts aus...also nicht die schriftformatierung ändert sich sondern alle dokumente und ansichten scrollen nach rechts, und lassen sich auch nicht wieder links ausrichten...ich tippe auf irgendeine tastenkombi die mir unbekannt ist, aber trotz ausgibiger suche finde ich nichts
ich hoffe hier kann mir jemand helfen
-
Ich setze das Topic mal auf erledigt
Habe beschlossen das erstmal hinzunehmen und die DB neu zu entwerfen....
Zitat"Beim Aktualiesieren: Indikator zeigen"
womit ich ehrlich gesagt gerade so gar nichts anfangen kann...
..dazu sag ich nur..man bin ich blödvielen Dank RockWilder...hast mir auf jedenfall weitergeholfen
-
hi RockWilder
allem Anschein nach im Client, was mich ja so verwundert!
Serverlog schweigt jedenfalls zu der Sache, Zugriff auf die Hauptansicht besteht nicht immoIn den Ansichtseigenschaften konnte ich nichts großartig feststellen, was das bewirken könnte, Es gibt Servergesteuerte Tasks die diese DB bearbeiten (updall, fixuop) aber erst samstags, laut log sind die auch einwandfrei durchgelaufen
hingegen:
"Beim Aktualiesieren: Indikator zeigen"
womit ich ehrlich gesagt gerade so gar nichts anfangen kann...Es sind keine auswahloptionen ausser der from gesetzt, und halt das das ID feld nicht leer sein darf
Die ursprüngliche Planung der DB ist das nur die letzten 5 Dokumente dadrin erhalten bleiben.....diese Variante wurde aber schon verworfen...bin immo an einer Archiv Db und nem Script was die neuen Bedingungen umsetzen soll, daran kann es aber nicht liegen da diese im Testsystem liegen ergo keinen Einfluss haben
Wobei mir einfällt das aber ein Problem mit der Anzeige eines bereits gelöschten Dokumentes existiert.
Die Idee mit dem Anzeigen einer begrenzten Anzahl von Dokumenten, gefällt mir hingegen sehr gut, werde ich mal ansprechen hier
vielen Dank
-
Hi leute
hab da ein Problem mit einer DB besser egsagt mit der Hauptansicht dieser DB
Die Ansicht hat jetzt begonnen sich zu aktualiesieren, was an sich ja nicht schlecht ist, nur ist diese DB ca. 30 GB groß
Das heisst das dauert mal eben nen paar h, was das Arbeiten in dieser unmöglich macht.
Glücklicherweise sind alle Suchansichten weiterhin ja erreichbar, sprich die anderen DB's können weiterhin daraufzugreifen.
Unterbrechen mpöchte ich den Vorgang natürlich nicht, wird einen Grund aben warum die auf einmal anfängt damit.Meine frage ist nur welchen Grund kann das haben? irgendjemand eine Idee?
Und wie kann ich sowas zu Geschäftszeiten verhindern?zum Thema Größe: Daran wird bereits gearbeitet, geht aber nur schleppend voran, leider
vielen Dank schonmal im Vorraus
-
Hi leutz
hab da ein seltsames phänomen
wir migrieren gerade R5 Datenbanke nach R7..soweit so gut meine Datenbank klappt auch mit der Aktionslieste, sprich das er mir da alles genauso anzeigt wie vorher
bei einer anderen Datenbank hingegen sind die drop down menüs zwar da aber in der ersten ebene nicht beschriftet dadurch sind die für den user "unsichtbar"...im gegensatz zu meiner db kann ich die aktion auch nicht bearbeiten, was aber nicht an den rechten liegt da ich auf beiden datenbanken manager rechte habe (in r5 darf ich es auch, vl gibt es ja auch eine zugriffseinstellung die mein kollege übersehen hat, danach such ich gerade um das auszuschliessen)ich danke jetzt schonmal für jeden tip
-
guten morgen
hab das problem gelöst..scheint doch etwas mit dem uiws zu tun zu haben..habe jetzt den kompleten dialog aufruf in ne unterfunktion gepackt und übergebe mir die werte in glabals...fertig passt und sieht schick aus....
###########
Function dial(db)
Dim ws As New notesuiworkspace
Set newdoc = db.createdocument
newdoc.form = "dlgBCGeschlecht"
newdoc.bcjahr = Cstr(Cint(Year(Today)) -1)
ret = WS.DialogBox( "dlgBCGeschlecht", True, True, False , False , False, False, "nach Alter und Geschlecht", newdoc, False, False)
If ret = False Then Exit Function
bcjahr = newdoc.bcjahr(0)
gesch = newdoc.geschlecht(0)
If Cstr(bcjahr) = "" Or Cstr(gesch) = "" Then
Msgbox "Keine Auswahlkriterien eingegeben"
Exit Function
End If
End Function
edit:
hab vergessen zu sagen es ist wichtig das die freefiles nacheinander gestzt und geöffnet werden also erst freefile1 dann öffenen
dann freefile2 und öffnen
#########
fileNum1% = Freefile()
Dateiname = "H:\HW_"& bcjahr &"_" & Format(Today,"yyyymmdd") &".xls"
Dateiname2 = "H:\S_"& bcjahr &"_" & Format(Today,"yyyymmdd") &".xls"
Open Dateiname For Output As fileNum1%
fileNum2% = Freefile()
Open Dateiname2 For Output As fileNum2% -
ja ich werde mir da ne neue funktion einfallen lassen müsssen..sprich beide sachen trennen
vielen dank für die hilfe..die db kann ich leider wegen datenschutz nicht rausgeben...wirst du sicherlich verstehen ...nochmals vielen vielen dank für die schnelle hilfe und ich wünsche dir und allen mitgliedern des forums ein schönes frühlings wochenende