Oracle Fusion Middleware Blog

Deutsche Informationen rund um Oracle Fusion Middleware

Archive for Dezember 2008

Web Services im BI Publisher 10.1.3.4

with one comment

Nachdem die neue Version des BI Publisher 10.1.3.4 verfügbar ist, wollte ich einen bestehenden Web Service-Aufruf aus einer Forms-Applikation testen. Der Aufruf konnte ohne Fehler ausgeführt werden, der erzeugte Report aber war leer.
Was war hier los?

Nähere Untersuchungen zeigten, dass der BI Publisher Server eine out-Datei mit den richtigen Ergebnissen erzeugt hatte, aber die PDF-Datei aus 0 Byte bestand.

Des Rätsels Lösung ist ein neuer Parameter SizeOfDataChunkDownload, der dem Request-Objekt mit setSizeOfDataChunkDownload() hinzugefügt werden muss. Der Parameter gibt an,  in welchen Portionen die out-Datei in die PDF-Datei gestreamt wird. Fehlt der Parameter, wird die out-Datei nicht übertragen. Gibt man für den Parameter -1 an, wird die gesamte out-Datei in einem Stück übertragen.

Das aktualisierte Papier zum Aufruf von BI Publisher Web Services 10.1.3.4 aus Oracle Forms findet man hier.

Übrigens gibt es mit der Version 10.1.3.4 wieder eine zusammengefasste aktuelle Dokumentation der Web Services, die auch die neu hinzugekommenen Methodenaufrufe enthält.

<JM>

Advertisements

Written by fmtechteam

08/12/2008 at 12:37

Persistente Referenzen in Forms erzeugen

with one comment

Ein Kunde berichtete, dass er innerhalb eines Forms-Programmes ein neues Java-Objekt mit:
obj := myclass.new();
erzeugt habe.
Während der erste Aufruf einer Methode mit diesem Objekt noch funktionierte, bekam er beim zweiten Aufruf die Fehlermeldung “Unable to call out to Java, Invalid object type for argument 1”.
Bei näherer Betrachtung stellte sich schnell heraus, dass das Objekt offensichtlich nach dem ersten Aufruf nicht mehr existierte. In der Dokumentation heißt es dazu, dass die Lebensdauer des Objektes auf die Laufzeit der Programmeinhzeit bzw. des Triggers beschränkt ist.

Forms bietet hier die Möglichkeit, durch eine persistente Referenz das Objekt am Leben zu erhalten:
mypkg.instobj := ORA_JAVA.NEW_GLOBAL_REF(obj);

Jetzt kann das Objekt aus verschiedenen Programmeinheiten bzw. Triggern referenziert werden.
Zum Schluss sollte man nicht vergessen, diese Referenz wieder mit DELETE_GLOBAL_REF() zu entfernen.

<JM>

Written by fmtechteam

07/12/2008 at 21:03

Veröffentlicht in Forms, Jürgen Menge

Tagged with ,