Domino 9 und frühere Versionen > ND6: Entwicklung
OO Entwicklung mit LotusScript - Frage externer Editor / Eclipse?
animate:
wenn du eine DB nach XML exportierst, dann sieht das allerdings recht vielversprechend aus:
--- Zitat ---<globals><code event='options'><lotusscript>Option Public
Option Declare
Use "Actions"
Use "de.tv.Document"
Use "de.tv.State"
</lotusscript></code><code event='declarations'><lotusscript>Dim oState As State</lotusscript></code></globals><code
event='postopen'><lotusscript>Sub Postopen(Source As Notesuidocument)
If source.isnewdoc Then
Set oState = New State("")
Set oState = oState.getStartState()
Call source.Document.ReplaceItemValue("State", oState.StateName)
Call source.Document.ReplaceItemValue("NextStates", oState.NextStates)
'Call source.FieldSetText("State", oDummyState.StateName)
Call source.Refresh
End If
End Sub</lotusscript></code>
--- Ende Zitat ---
jetzt müssen wir nur noch rausfinden, ob man den Code ändern kann (das geht) und die DB updaten kann (das ist die Frage)
JulianBuss:
das mit den "special" comments habe ich bereits rausgefunden, ich habe mal das Feld $ScriptLib in ein Textfile geschrieben, das sieht z.B. so aus:
---
'++LotusScript Development Environment:2:5:(Options):0:74
Option Public
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub test
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:test:1:8
Sub test
Messagebox "test2"
End Sub
---
-> reicht aber nicht, einfach das File dann zu verändern, einzulesen und im $ScriptLib Feld zu speichern. Denn: Notes schreibt an vielen Stellen nur chr(10) für einen Zeilenumbruch statt 10+13 ("0A" statt "0A0D").
Und ich kann das modifzierte Textfile zwar wieder mit den 0A's einlesen (indem ich es als binary öffne), aber sobald ich diesen String wieder ins Feld schreibe werden die 0A's in 0A0D's konvertiert. Ich denke das ist Teil des Problems.
Im Grunde hast Du aber natürlich Recht, XML ist der bessere Weg, ich hoffte nur es könnte auch auf die einfache Art gehen :-)
XML einlesen kann man ja soweit ich weiß, also sollte man doch nur das ScriptLib-Dokument via XML exportieren, Inhalt ändern, wieder einlesen und dann den API-Aufruf zum compilieren starten können.
JulianBuss:
ich hab mal eine Lib nach XML exportiert, bekomme sie aber nicht wieder importiert. Es kommt nur der Fehler "DXL import failed", im importer.log steht was von "note id not found"
Hast Du eine Idee wodran das liegen könnte?
--
Dim stream As NotesStream
Set stream = session.CreateStream
Dim filename As String
filename = "c:\temp\test.xml"
If Not stream.Open(filename) Then
Messagebox "Cannot open " & filename,, "Error"
Exit Sub
End If
If stream.Bytes = 0 Then
Messagebox "File did not exist or was empty",, filename
Exit Sub
End If
Dim importer As NotesDXLImporter
Set importer = session.CreateDXLImporter(stream, db)
importer.DesignImportOption = DXLIMPORTOPTION_CREATE
Call importer.Process
--
JulianBuss:
COOOOOOOOOOOOOOOOOOOOOOOL!!!!!!!!!!!!!!!
ich kann die bestehende Lib noch nicht überschreiben, aber wenn ich folgendes mache:
1.) lib nach xml exportieren
2.) xml-datei ändern, z.B. aus einem "Messagebox "test"" ein "Messagebox "test2"" gemacht
3.) lib in Desginer löschen
4.) xml importieren
dann funktioniert die geänderte Lib OHNE NEU-COMPILATION!!!
Ich kann die Lib von einem Agent aus direkt benutzen, ohne sie im Designer nochmal öffnen zu müssen.
Jetzt muss man nur noch eine bestehende Lib via DXL-Import überschreiben können und schon ist alles gut!!
animate:
Arrgh. hab grade keinen Designer zur Hand. sobald ich wieder einen habe probier ich auch mit rum. is ja echt cool, dass das ohne Neukompilieren geht.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln