Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: kevisback am 29.09.05 - 06:26:32

Titel: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 29.09.05 - 06:26:32
Hallo,

kann man per Agenten ein Bild in den Shared Resources/Images speichern?


Problem: Ich brauche Bilder als Tabellenhintergrund und diese müssen in diesem Ordner liegen, ich will das aber dem Notesuser ermöglichen.


Danke im voraus!!!
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 29.09.05 - 07:11:56
es funktioniert mit DXL und der Base64-Umwandlung (suche mal im Forum, da gibt es schon Code dazu).
Nachteil es werden Entwicklerrechte benötigt.
Den Nachteil könnte man umgehen, indem die User die Bilder als Anhang in ein Dokument einfügen und dann läuft auf dem Server ein Agent mit Entwicklerrechten, der die Anhänge abhängt, umwandelt, XML-Dateierstellt und importiert.

Schau mal hier (http://www.atnotes.de/index.php?topic=25488.0). In der Datei DXLImport.lss ist der Code hinterlegt.
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 29.09.05 - 08:33:17
Habs mal ausprobiert mit nem Agenten, den Pfad habe ich angepasst, aber wenn der Agent durchgelaufen ist, dann ist nix passiert, kein importiertes Bild...  ???
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 29.09.05 - 08:39:23
Welche Bild-Typen (gif, jpg, jpeg) werden verwendet?
Bei Fehlern werden in der DB Dokumente (Form = "Fehler") erzeugt, dort stehem für jede Bild-Datei die aufgetretenen Fehler drin. Schau mal nach solchen Dokumenten.
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 29.09.05 - 08:44:40
in der DB ist nur ein Dokument, dass ich selber erstellt habe. Somit ist kein Fehler aufgetreten....
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 29.09.05 - 09:20:44
im code steht die Zeile
If Typ = "gif" Or Typ = "jpg" Or Typ = "jpeg" Then

Eventuell muss die Zeile angepasst werden
If LCase(Typ) = "gif" Or LCase(Typ) = "jpg" Or LCase(Typ) = "jpeg" Then

Hilfreich wäre es, wenn du mit dem Debugger mal nachsehen kannst, an welcher Stelle IF-Anweisungen übersprungen werden, ansonsten wird es ein Stochern im Heuhaufen.
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 29.09.05 - 09:30:59
Ich bekomme folgende Fehlermeldung:

101BASE64.ENCODEFILE:149|Unable to open file


Der Pfad stimmt aber, ich habe das jpg direkt angegeben im Quellcode:

pathName = "C:\Documents and Settings\User\Desktop\a.jpg"
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 29.09.05 - 09:37:30
probier es mal mit
pathName = """C:\Documents and Settings\User\Desktop\a.jpg"""
In dem 1. Ordner ist ein Leerzeichen, deshalb kann es sein, dass die Datei-Pfad-Angabe in Hochkommas eingeschlossen werden muss.

Habs nicht geprüft, da ich bisher immer die Pfad-Angaben per Script ermittelt habe.
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 29.09.05 - 09:47:12
habe die den Pfad jetzt sogar direkt auf C:\ gelegt und er meldet noch immer den gleichen Fehler.


Habe ich vielleicht was vergessen? Ich starte den Agenten von einem View aus per Button, dazu habe ich ein normales Dokument markiert....??
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 29.09.05 - 09:54:03
existiert der TempPfad?

Im Initialize steht
TempPath = "c:\temp\"
Wurde der Pfad angepasst (den letzten \ nicht vergessen)?
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 29.09.05 - 10:20:57
habe alles soweit richtig....
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 29.09.05 - 10:31:51
also dann bleibt nur die Fehlerbehandlung zu deaktivieren und mit dem Debugger die Code-Zeile rauszufinden, die den Fehler verursacht und dann mal die Objecte und Variablen anschauen.

Bei mir läuft diese Teil über mehrer 10.000-de jpg-Bilder und diese werden importiert. Dabei liegt die Fehlerquote bei unter 0,5 %.
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 29.09.05 - 10:41:57
wohin importierst du die Bilder denn? Ich bin immer der Meinung gewesen, dass das Bild dann im "Shared Resources" / "images" landet. Oder ist es bei dir dann nur als Bild im Dokument?
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 29.09.05 - 10:46:58
die Teile werden bei den Bild-Ressourcen eingefügt und nicht in einem Dokument.
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 29.09.05 - 10:51:06
ja ich bin neidisch ;-)

Das muss ich unbedingt hinbekommen, also werde ich den Code mal durchgehen.

Aber eigentlich habe ich den Code direkt in den Agenten kopiert und eine Zeile musste ich loeschen:

Const CHUNKSIZE = 16000

da das zweimal gesetzt ist, einmal mit 16000 und einmal mit 15000,
da hat der Compiler gemeckert...
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 29.09.05 - 10:55:43
die Const wird aber einmal für encodeFile und einmal für decodeFile gesetzt.

Wie hast Du den Code aus der lss-Datei importiert?

Neuer Script Agent - rechte Maustaste ins Codefemster - Importieren - lss-Datei auswählen - fertig
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 29.09.05 - 11:13:02
stimmt, habs so gemacht, trotzdem meckert der noch, werde da wohl Schritt fuer Schritt durch.....

Danke erstmal!!
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 30.09.05 - 05:11:54
@diali

habe den Debugger mal drueberlaufen lassen und der stockt an folgender Stelle:


(Declarations)
...
...
...
   Close #fout
      EncodeFile = True
      Exit Function
catch:
      If Not fin = 0 Then Close #fin
      If Not fout = 0 Then Close #fout
      Error Err, Err & Typename(Me) & "." & Lsi_info(2) & ":" & Erl & "|" & Error
   End Function
   
   Private Function getFileChunk(fileNum As Integer, size As Integer) As String
      ' Get the next chunk of text from a Random file, up to a given size

...
...

die fett markierte Zeile ist die Fehlerstelle...


leider sagt mir das gar nix....
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 30.09.05 - 07:13:11
da ist er in der Fehlerbehandlung schon drin. Der Fehler muss weiter oben auftreten.
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 07.10.05 - 11:50:29
Zitat
Jetzt bekomme ich keine Fehlermeldung mehr, sondern es werden diese Fehlerdokumente mit folgender Fehlermeldung erstellt:

4522User-defined error30d:\b\ku06auf.jpg.dxl

Weisst du zufaellig was mir das sagt und wie ich es beheben kann?

Ich habe es schon mit verschiedenen Bilder probiert...immer das gleiche...
In der Datei lsxbeerr.lss steht für den Fehler 4522
4522 ... lsERR_NOTES_DXLIMPORTER_FAILED
Die Datei "d:\b\ku06auf.jpg.dxl" existiert und ist geschlossen?
Was hast du alles am Code verändert?


Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 07.10.05 - 12:02:19
es existiert nur

ku06auf.jpg direkt auf d:\

diese dxl Datei wird erstellt, so dachte ich.


Geaendert habe ich nur den Pfad, sonst habe ich den Code so gelassen...
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 07.10.05 - 12:49:18
die dxl-Datei wird im einstellten Temp-Pfad aus der Bild-Datei erzeugt.
Ist diese tmp. Datei im Verz. b vorhanden?

Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 07.10.05 - 12:53:45
der temporaere Ordner ist leer...
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 07.10.05 - 13:06:51
Schalte mal den Debugger ein und schau mal nach den einzelnen Zeilem, was im Temp-Ordner steht
RT64 = B64.encodeFile(ImageFile, TempPath & FileNameTemp & ".txt")

RTCreateDXL = CreateDXL(TempPath & FileNameTemp & ".txt", TempPath & FileNameTemp & ".dxl", Typ, FileName)

RTImportDXL = DXLImport(db, TempPath & FileNameTemp & ".dxl")

Nach der ersten Zeile muss eine Datei im Format
Bildname.jpg.txt
und nach der 2. Zeile 2 Dateien
Bildname.jpg.txt
Bildname.jpg.dxl
existieren.

Wenn dem so ist, dann gehe im Debugger schrittweise durch den DXLImport und beobachte die Objekte. Interesssant sind die Zeilen, die durchlaufen werden, bevor in die Fehlerbehandlung gesprungen wird.
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 07.10.05 - 13:16:50
ok, jetzt habe ich es soweit, dass die dxl Dateien erstellt werden. Sollte da die txt Datei noch vorhanden sein?
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 07.10.05 - 13:21:36
ok, ich habe den kill befehl gefunden, warum er die txt loescht und die dxl nicht...aber trotzdem kommt noch das Fehlerdokument...
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 07.10.05 - 13:24:26
von kill habe ich nichts geschrieben. Der Kill wird ausgeführt, damit das Temp-Verz. aufgeräumt wird, da ist der DXL-Import schon gelaufen.
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 07.10.05 - 13:26:40
ja ok, ich wollte bloss sagen, dass diese Dateien erstellt werden, also duerfte das decode fehlschlagen...
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: diali am 07.10.05 - 13:33:43
das Bild wird zuerst in Base64 umgewandelt, dies steht in der TXT-Datei.
Der Inhalt dieser TXT-Datei wird dann später in die DXL-Datei an der Stelle des Bildes eingefügt.

Der Importer nimmt die DXL-Datei und Importiert diese.
Also gehe mal Schritt für Schritt durch die Funktion DXLImport. Existiert dort das Object importer nach der Zeile
Set importer = session.CreateDXLImporter
?

Der User, der das Script ausführt braucht Designer-Rechte auf die DB!
Titel: Re: Agent importiert Image in "Shared Resources"????
Beitrag von: kevisback am 07.10.05 - 13:50:49
ok, ich habe abgefragt, ob der importer "leer" ist, ist er nicht  ???