CIB doXiview - Integration
Site: | CIB eLearning |
Course: | CIB doXiview |
Book: | CIB doXiview - Integration |
Printed by: | Guest user |
Date: | Sunday, 22 December 2024, 2:35 AM |
Über dieses Dokument
Dieses Dokument ist an Entwickler gerichtet, welche CIB doXiview als Komponente in ihre eigene Webapplikation integrieren.
In einfachen Anwendungsfällen kann CIB doXiview durch Referenzierung per URL ohne Einsatz von JavaScript integriert werden.
In weiterführenden Anwendungsfällen kann die integrierende Anwendung mit CIB doXiview kommunizieren. Diese Kommunikation erfolgt mithilfe von JavaScript-Funktionen unter Verwendung des Frameworks CIB iwc (Abkürzung für inter-window communication).
Die Verwendung dieser Schnittstelle ist Inhalt dieses Dokuments.
Für das Verständnis werden Grundlagenkenntnisse über HTML und JavaScript vorausgesetzt.
Beispielanwendungen und Testoberfläche
Die in diesem Dokument beschriebenen Funktionen lassen sich auch praktisch an Beispielen nachvollziehen. In der CIB doXiview Demoversion sind Beispiele von sehr einfachen HTML-Seiten enthalten, welche als minimale integrierende Beispielanwendungen dienen.
Zusätzlich ist in der Demoversion die Webapplikation CIB doXiview Test UI enthalten, mit welcher verschiedene Parameter komfortabel in einer Benutzeroberfläche eingegeben werden können. Sie können hier die Wirkung verschiedener Parameter zunächst testen, ohne dafür selbst Code schreiben zu müssen. Die generelle Verwendung dieser Testoberfläche ist in der Dokumentation KurzanleitungCibDoXiviewDemo.pdf beschrieben, welche zusammen mit der Demoversion ausgeliefert wird.
Hinweis: Erläuterungen in diesem Dokument, welche an Code-Beispielen oder der Testoberfläche nachvollzogen werden können, sind mit diesem Symbol gekennzeichnet.Möglichkeiten der Clientseitigen Integration von CIB doxiView
Es gibt prinzipiell 3 Möglichkeiten, wie CIB doXiview in einem Web-Browser geöffnet werden kann:
- Aufruf von CIB doXiview durch Eingabe einer URL in die Adresszeile des Web-Browsers
- Integration von CIB doXiview in eine andere Webapplikation über eine URL
- Integration von CIB doXiview in eine andere Webapplikation über eine URL und CIB iwc
Diese Möglichkeiten werden im Folgenden kurz skizziert.
Aufruf von CIB doXiview durch Eingabe einer URL in der Adress-Zeile des Web-BrowsersAufruf von CIB doXiview über eine URL aus einer anderen Webapplikation
Integration von CIB doXiview über CIB iwc
Aufruf von CIB doXiview durch Eingabe einer URL in der Adress-Zeile des Web-Browsers
CIB doXiview ist eine Webapplikation, welche im einfachsten Fall direkt über die Eingabe einer geeigneten URL in der Browser-Adresszeile geladen und angezeigt werden kann. In diesem Fall gibt der Benutzer direkt als Teil der URL ein, welches Dokument von CIB doXiview unmittelbar angezeigt wird. Die Anzeige nimmt anschließend vollständig einen Browser-Tab ein.
Beispiele:
- Aufruf von CIB doXiview und Anzeige eines
spezifizierten Dokuments
Durch Eingabe der folgenden URL in der Adresszeile des Browsers wird CIB doXiview geöffnet und zeigt das Dokument example.pdf an:
http://myserver/webview/?rsp=false&iwc_mode=standalone&urlField=http://myotherserver/example.pdf&ext=pdf
- Aufruf von CIB doXiview ohne Dokument mit
einem Upload-Button
Durch Eingabe der nächsten URL in der Adresszeile des Browsers wird CIB doXiview zunächst ohne ein Dokument geöffnet. Der Benutzer kann anschließend per Schaltfläche in der CIB doXiview Toolbar ein Dokument aus dem lokalen Dateisystem auswählen und in CIB doXiview hochladen und anzeigen.
http://myserver/webview/?rsp=false&uistyle=cib&iwc_mode=standalone&ui=upload
Starten Sie die Demoversion von CIB doXiview und geben die folgende URL im Web-Browser ein:
http://localhost:8080/webview/?rsp=false&iwc_mode=standalone&ui=uploadAufruf von CIB doXiview über eine URL aus einer anderen Webapplikation
In den meisten Fällen soll CIB doXiview jedoch aus folgenden Gründen in eine andere Webapplikation, d.h. eine andere HTML-Seite, eingebettet werden:
- Die einbettende Webapplikation bestimmt über Aufrufparameter, welches Dokument CIB doXiview anzeigen soll.
- Die CIB doXiview-Oberfläche soll optisch in der Seite der einbettenden Webapplikation integriert werden, d.h. in einem <iframe> HTML-Tag. Die weiter oben genannten Beispiel-URLs können in dem Fall unverändert als Wert für das src-Attribut eingesetzt werden.
Die folgende Datei simple-iframe.html aus der CIB doXiview Demoversion integriert CIB doXiview mittels <iframe>-Tag. Diese kann dort aufgerufen werden wie folgt:
http://localhost:8080/doxiview-examples/simple-iframe.html
Alternativ könnte mit einem Anchor Tag <a> und dem href-Attribut CIB doXiview in einem neuen Browser-Tab geöffnet werden.
Die Datei beispiele.html aus der CIB doXiview Demoversion enthält einen Link auf CIB doXiview als <a>-Tag.
Die einbettende Webapplikation kann CIB doXiview auf diese Weise parametrisiert aufrufen, hat allerdings ab diesem Zeitpunkt keine Möglichkeit mehr, mit CIB doXiview innerhalb des Webbrowsers zu kommunizieren.
Integration von CIB doXiview über CIB iwc
Für die folgenden Anwendungsfälle wird eine engere Kopplung zwischen der einbettenden Webapplikation und CIB doXiview benötigt:
- Integration von eigenen Schaltflächen in die Toolbar von CIB doXiview und anschließende Reaktion, wenn der Benutzer diese anklickt
- Anzeigen von eigenen Hinweistexten an den Benutzer
- Sperren und Entsperren der Benutzeroberfläche von CIB doXiview
- Drucken in Originalqualität über einen Dienst außerhalb des Webbrowsers
- Anbindung von CIB doXiview an ein Archivsystem
- Editieren von Freitextbereichen in RTF-Dokumenten
- Ausfüllen von Unterschriftenfeldern
In diesen Fällen wird CIB doXiview
nicht nur initial von der einbettenden Webanwendung aufgerufen, sondern
kommuniziert auch anschließend mit ihr.
Zunächst wird wie im vorherigen Abschnitt Aufruf von CIB doXiview über eine URL aus einer anderen Webapplikation
beschrieben, CIB doXiview wieder mit einem <iframe> HTML-Tag in die einbettende Anwendung integriert. Die Verwendung eines <iframe> wird bei dieser Integrationsart nun zwingend
vorausgesetzt.
Im Unterschied zu Aufruf von CIB doXiview über eine URL aus einer anderen Webapplikation
wird hier als URL des iframe src-Attributes nur eine Basis-URL auf CIB doXiview angegeben:
<iframe src="http://myserver/webview/index.jsp?iwc_mode=internal"/>
Diese Basis-URL enthält nur den Parameter
iwc_mode=internal
Damit wird CIB doXiview signalisiert, dass weitere Parameter auf anderem Wege, nämlich mittels JavaScript-Funktionen übermittelt werden.
Das folgende Kapitel Kommunikation über CIB iwc erläutert die Integration über CIB iwc im Detail.
Kommunikation über CIB iwc
CIB iwc
CIB iwc (Abkürzung für inter-window communication) ist ein in JavaScript implementiertes Kommunikationsframework, welches es zwei Webanwendungen erlaubt, Clientseitig innerhalb des Web-Browsers miteinander zu kommunizieren.
Das Framework sorgt dafür, dass beide Anwendungen auch dann miteinander kommunizieren dürfen, wenn sie aus unterschiedlichen Domains stammen. Dies wird normalerweise aus Sicherheitsgründen von Web-Browsern unterbunden (Same Origin Policy). Im Umfeld großer Unternehmen ist es jedoch üblich, dass Anwendungen aus verschiedenen Domains stammen, etwa a.mycompany.com und b.mycompany.com.
CIB iwc basiert im Kern auf der HTML5-Funktion window.postMessage und wird in Form von JavaScript-Dateien von den beteiligten Anwendungen geladen.
Während zwei Anwendungen bei der direkten Verwendung von window.postMessage lediglich Strings austauschen können, ermöglicht CIB iwc eine Kommunikation auf höherer Ebene mittels JavaScript-Funktionsaufrufen.
Master und Slave
Damit zwei Webapplikationen über das CIB iwc Framework kommunizieren können, muss die eine Anwendung per HTML iframe-Tag in die andere Anwendung eingebettet werden.
Die einbettende Anwendung wird in diesem Zusammenhang Master oder Integrator genannt, die eingebettete Anwendung wird Slave genannt. Typischerweise erscheint aus Benutzersicht der Slave als Rechteck innerhalb des Masters. Der Master entscheidet darüber, wann und wie der Slave geladen wird.
Wenn CIB doXiview in Ihre Anwendung eingebettet wird, dann ist Ihre Anwendung in dieser Beziehung der Master und CIB doXiview ist der Slave.
Die folgende Abbildung veranschaulicht das:
Laden der CIB iwc JavaScript Ressourcen
Damit eine Kommunikation zwischen Master und Slave aufgebaut werden kann, müssen beide Webanwendungen als Voraussetzung zunächst das in Form von JavaScript Code vorliegende CIB iwc Frameworks laden.
Beispielsweise kann der CIB iwc Code von Ihrer Webseite aus der CIB doXiview Anwendung geladen werden wie folgt:
Prinzipiell ist dieser Ort beliebig. Sie können diese JavaScript-Ressource deshalb auch in Ihrer eigenen Anwendung als Kopie vorhalten und in Ihrem HTML Code mit einem relativen Pfad einbinden:
Wenn das CIB iwc Framework von vielen Anwendungen benutzt wird, kann mehrfaches Laden der gleichen JavaScript-Datei in den Browser vermieden werden, wenn diese anwendungsübergreifend mit derselben URL referenziert wird:
Der Webbrowser hat so die Möglichkeit, diese Ressource zu cachen. CIB doXiview kann entsprechend konfiguriert werden, um CIB iwc ebenfalls von diesem zentralen Ort zu laden.
Im einfachsten Fall braucht nur das CIB iwc Framework selbst in Form der Datei cib.iwc.1.0.0.min.js geladen werden. Diese enthält für alle Anwendungen allgemein verwendbare Funktionen, beispielsweise zur Übergabe von Startparametern.
Zusätzlich werden anwendungsspezifische Funktionen in separaten JavaScript-Dateien bereitgestellt, welche auf dieselbe Weise eingebunden werden. Für die Kommunikation mit CIB doXiview ist dies die Datei iwc-interfaces-min.js.
Schließlich verwendet CIB iwc intern die JavaScript Bibliothek jQuery, welche deshalb ebenfalls von allen Kommunikationspartnern eingebunden werden muss.
Insgesamt werden also die folgenden drei JavaScript-Ressourcen für die Kommunikation Ihrer Anwendung mit CIB doXiview benötigt:
Soll eine Vielzahl von Anwendungen über CIB iwc kommunizieren, lässt sich das Laden der JavaScript-Ressourcen optimieren. Dies wird in Kapitel Optimierung zum laden der JavaScript-Ressourcen separat beschrieben.
Aufbau der Kommunikation Über CIB iwc
Nachdem der Master den CIB iwc JavaScript Code geladen hat, kann er den Slave laden und die Kommunikation zu diesem aufbauen. Anschließend sind Master und Slave in der Lage, mittels Funktionsaufrufen zu kommunizieren.
Der Aufbau der Kommunikation findet in folgenden Schritten statt:
- CIB iwc laden: Laden der benötigten JavaScript-Ressourcen durch den Master
- Initialisierung: Der Master initialisiert CIB iwc
- Registrierung der Master-Funktionen: Der Master registriert in CIB iwc seine Funktionen, welche später vom Slave aus aufrufbar sein sollen
- Laden des Slave: Der Master lädt über CIB iwc den Slave in dem gewünschten iframe mittels Aufruf der iwc-Funktion openUrlInFrame(iframe-id, url)
- Registrierung Slave: Der JavaScript Code des geladenen Slave wird vom Browser ausgeführt und registriert in CIB iwc seine vom Master aufrufbaren Funktionen
- Handshake zwischen Master und Slave: Der Slave ruft die Methode init(initCallback) an dem Master auf.
- Benachrichtigung Slave über Handshake-Ergebnis: Wenn der Master die Initialisierung erfolgreich beendet hat, wird die success-Methode aus dem initCallback des Slaves aufgerufen. Wenn die Initialisierung nicht erfolgreich war, wird die failure-Methode aufgerufen.
Nach einem erfolgreichen Handshake ist die Kommunikation etabliert:
- Der Slave kann die vom Master bereitgestellten Funktionen aufrufen.
- Der Master kann die vom Slave bereitgestellten Funktionen aufrufen.
Für die Integration von CIB doXiview müssen Sie in Ihrer Master-Anwendung die Schritte 1. bis 4. implementieren. Dies wird im folgenden Abschnitt am Beispiel erläutert.
Die Schritte 5. bis 7. werden komplett von CIB iwc und CIB doXiview durchgeführt.
Beispiel: Laden von CIB doXiview und Übergabe der Startparameter via CIB iwc
Der im vorherigen Punkt beschriebene Ablauf soll an einem Minimalbeispiel anschaulich dargestellt werden. Dazu erzeugen wir eine integrierende Anwendung, die CIB doXiview in einem iframe öffnet und die Startparameter via CIB iwc übermittelt.
Der Beispielcode besteht aus den folgenden Abschnitten:
- CIB iwc laden
- Initialisierung
- Registrieren der Master-Funktionen
- Laden des Slave
Hinweis: Der folgende Beispielcode ist auch in der Demoversion von CIB doXiview enthalten und lässt sich dort aufrufen mit:
http://localhost:8080/doxiview-examples/example-javascript-integration.html
Hinweis: Das Öffnen von CIB doXiview und die Übergabe der Startparameter kann bequem mit der Testoberfläche nachvollzogen werden. Gehen Sie dazu wie folgt vor:
- Öffnen Sie
die Testoberfläche im Browser durch Eingabe der URL http://localhost:8080/showcase und wechseln Sie zum Tab
„Konfiguration“
Die Testoberfläche dient als CIB iwc Master für CIB doXiview - Auswahl der gewünschten Startparameter, welche an CIB doXiview übergeben werden sollen
- Klick auf
die Schaltfläche Open
(Öffnet CIB doXiview in einem iframe)
Startparameter iwc_mode
In unserem Beispiel wurde CIB doXiview wie folgt aufgerufen:
Als Ausnahme von der Regel, dass alle Startparameter
mittels CIB iwc übertragen werden, ist hier ein einzelner Startparameter nach
wie vor innerhalb der CIB doXiview URL definiert: iwc_mode=internal. Dieser Startparameter ist als Teil der URL vorgesehen,
um CIB doXiview mitzuteilen, ob überhaupt eine Kommunikation mit einem Master
etabliert werden soll.
Die folgenden Werte für diesen Startparameter sind möglich:
Wert für iwc_mode |
Beschreibung |
standalone |
CIB doXiview wird keine Kommunikation über CIB iwc mit
einem Master etablieren. Als Beispiel siehe Kapitel Aufruf von CIB doXiview durch Eingabe einer URL in der Adress-Zeile des Web-Browsers |
internal |
CIB doXiview etabliert eine Kommunikation mit CIB iwc zu einem Master. Alle weiteren Startparameter werden über CIB iwc vom Master abgeholt. Als Beispiel siehe Kapitel Aufbau der Kommunikation Über CIB iwc |
external |
Falls neben CIB iwc bereits ein weiteres JavaScript-Kommunikationsframework in Ihrer Anwendungslandschaft im Einsatz ist, kann CIB iwc damit zusammenarbeiten. Dieser Fall geht über den Rahmen dieser Dokumentation hinaus. Bitte setzen Sie sich gegebenenfalls mit ihrem technischen Ansprechpartner bei CIB in Verbindung. |
Keine Angabe |
Falls der Parameter gar nicht angegeben wird, verwendet CIB
doXiview einen der drei anderen Werte, entsprechend dem konfigurierten
Standardverhalten. Dieses wird mittels der Property iwc.mode.default in der Datei default-config.properties bzw. environment-config.properties festgelegt. iwc.mode.default=INTERNAL Alternativ sind die Werte EXTERNAL oder STANDALONE möglich. |
Master und Slave Interfaces
Die zur Kommunikation mit CIB doXiview zur Verfügung stehenden JavaScript-Funktionen sind nach Anwendungsfällen in mehrere Schnittstellen gruppiert.
Beispielsweise wurde im Abschnitt Aufbau der Kommunikation Über CIB iwc die Schnittstelle common verwendet, um die Startparameter zu übergeben:
Die folgende Tabelle gibt einen Überblick über die verwendbaren Schnittstellen:
Kommunikationsschnittstelle |
Anwendungsfall |
common |
Enthält allgemeine Funktionen, die von mehreren Web-Applikationen verwendet bzw. bereitgestellt werden |
webview |
Enthält allgemeine Funktionen von CIB doXiview. |
archive |
Enthält Funktionen von CIB doXiview im Archivmodus, d.h. wenn Dokumente aus einem Archivsystem geladen werden. |
|
Enthält Funktionen im Zusammenhang mit dem Ausdruck eines in CIB doXiview angezeigten Dokuments in Originalqualität über einen Gerätedienst auf dem Arbeitsplatzrechner. |
toolbar |
Enthält Funktionen für den Umgang mit der in CIB doXiview angezeigten Werkzeugleiste. |
sign |
Enthält Funktionen für das Hinzufügen von elektronischen Unterschriften in CIB doXiview. |
Jede dieser Schnittstellen enthält zwei Arten von Funktionen:
Funktionen zum Registrieren Ihrer Master-Funktionen, welche von CIB doXiview aufgerufen werden können
Funktionen von CIB doXiview, welche von Ihrer Master-Anwendung aufgerufen werden können
In Kapitel die Kommunikationsschnittstellen werden alle Kommunikationsinterfaces mit den darin definierten Methoden im Detail beschrieben.
Die Result Callback-Struktur
Funktionen aus den Kommunikationsschnittstellen können entweder einen definierten Rückgabewert oder keinen Rückgabewert haben.
Wird eine Funktion aufgerufen, die keinen Rückgabewert definiert, bekommt die aufrufende Anwendung nach dem Aufruf keinerlei Rückmeldung mehr in irgendeiner Form.
Wenn dagegen eine Funktion mit einem Rückgabewert definiert ist, muss der Aufrufer seinerseits zwei Funktionen namens success und failure definieren, welche im Erfolgsfall und im Fehlerfall mit einem jeweils passenden Rückgabewert aufgerufen werden. Diese beiden Funktionen werden zu einem Objekt zusammengefasst übergeben, welches im folgenden Result Callback genannt wird. Das Result Callback lässt sich am einfachsten als JavaScript Objekt-Literal definieren wie folgt:
Der im Fehlerfall an failure übergebene Parameter error ist stets wie folgt aufgebaut:
Die Struktur des im Erfolgsfall an success übergebenen Parameters params hängt jeweils von der aufgerufenen Funktion ab und ist der Dokumentation der Funktion zu entnehmen.
Beispielsweise liefert die Funktion getViewStateInfo der Kommunikationsschnittstelle doXiview im Erfolgsfall laut Dokumentation die folgende Struktur als Parameter params:
{ currentBundleDocumentID: the current bundle document id, currentDocumentID: the current document id, currentDocumentPageCount: the page count for the current document, currentPageNumber: the current page number }
Das folgende Code-Beispiel
fasst zusammen, wie Sie mit dieser Funktion in Ihrer Master-Anwendung die
Nummer der aktuell in CIB doXiview angezeigten Dokumentseite und die Anzahl der
Seiten abfragen können:
Die obige Funktion displayPageNumber() könnte z.B. vom Benutzer Ihrer Anwendung durch einen wie folgt definierten Button ausgelöst werden:
Die Kommunikationsschnittstellen
Erklärung zur SchnittstellenBeschreibung
Die Verwendung einer Funktion zur Kommunikation setzt voraus, dass
- der eine Kommunikationsteilnehmer die Funktion für den anderen bereitstellt, und
- der andere Kommunikationsteilnehmer die Funktion aufruft.
Um die jeweilige Seite der Kommunikation deutlich zu machen, besteht eine Namenskonvention.
Der Bereitsteller einer Funktion namens someFunction ruft zu diesem Zweck eine Funktion auf, die per Konvention registerSomeFunctionCallback genannt wird.
Der Aufrufer kann diese Funktion anschließend aufrufen, per Konvention unter dem Namen someFunction.
Die Benennung dieser Funktionen hängt also nicht von der generellen Rolle einer Anwendung als Master oder Slave ab, sondern von der Richtung der Kommunikation bezogen auf eine einzelne Funktion.
Beispiel: Es gibt eine Funktion, welche CIB doXiview in Richtung seines Masters aufruft, um Startparameter zu erhalten.
Da in diesem Fall der Master die Funktion bereitzustellen hat, ruft er zu diesem Zweck die in seiner Schnittstelle CibMasterCommonFunctions definierte Funktion mit Namen registerStartParametersCallback auf. Als Parameter übergibt er die vom Slave aufrufbare Funktion:
var getStartParameters = function(…
registerStartParameterCallback(getStartParameters)
Als Aufrufer dieser Funktion ist der Slave vorgesehen. Er ruft dazu die in seiner Schnittstelle CibSlaveCommonFunctions vorhandene Funktion getStartParameters auf:
var resultCallback = { success: function…
getStartParameters(resultCallback)
In den Funktionsbeschreibungen in diesem Kapitel ist im untersten Abschnitt Registration definiert, ob entweder der Master oder der Slave die definierte Funktion registrieren muss. Die jeweils andere Seite kann die Funktion mit dem Namen aufrufen, welcher links oben unter Function genannt ist.
Jede Funktionsbeschreibung ist aus Sicht der aufrufenden Seite formuliert.
Ihre Anwendung, in welche CIB doXiview integriert wird, ist immer der Master.
Function |
Parameters |
Return |
getStartParameters
|
callback: ResultCallback
|
JSON
|
Returns CIB doXiview start parameters required for viewing a document in CIB doXiview. The result will be returned through the success-method of the specified result callback. Return: A JSON representation of start parameters which has the following structure: var startParameters = { context : {login context}, webview : {
|
||
Registration by master: master.common.registerStartParameterCallback(callback: FunctionCallback);
|
Beispiel-Implementierung aus Sicht Master (integrierende Anwendung):
master.common.registerStartParameterCallback(function() {
var startParameters = {
"webview": {
"uistyle":"cib", "ui":"upload", }
};
return startParameters;
});
Das common Interface
AllgemeingetStartParameters
terminate
fireDataDirty
lock, unlock
logout
resize
showMessage
Allgemein
Das Kommunikations-Interface common definiert generelle Funktionen, welche nicht CIB doXiview-spezifisch sind, sondern auch in anderen per CIB iwc integrierbaren Anwendungen zum Einsatz kommen können.
Es ist aus Sicht des Masters in Form des Objekts CibCommonMasterFunctions verfügbar.
Dieses wird wie folgt erzeugt:
getStartParameters
Diese Funktion wurde bereits als Beispiel erläutert. Mittels dieser Funktion erfragt CIB doXiview von seinem Integrator die zu verwenden Startparameter.
Function |
Parameters |
Return |
getStartParameters
|
callback: ResultCallback
|
JSON
|
Returns CIB doXiview start parameters required for viewing a document in CIB doXiview. The result will be returned through the success-method of the specified result callback. Return: A JSON representation of start parameters which has the following structure: var startParameters = { context : {login context}, webview : {
|
||
Registration by Master: master.common.registerStartParameterCallback(callback: FunctionCallback);
|
Beispiel-Implementierung aus Sicht Master (integrierende Anwendung):
master.common.registerStartParameterCallback(function() {
var startParameters = {
"webview": {
"uistyle":"cib", "ui":"upload", }
};
return startParameters;
});
Hinweis: In der CIB doXiview Testoberfläche können verschiedene voreingestellte Startparameter-Belegungen aus einer Liste ausgewählt werden.
Zudem können mit den Schaltflächen „Add Entry“ und „Add Text Entry“ weitere Startparameter einzeln gesetzt werden:
terminate
Wenn CIB doXiview beendet werden soll, kann es notwendig sein, dass abschließend Daten über die beendete Sitzung an den Master übermittelt werden oder dieser auf das Beenden der Dokumentbetrachtung reagieren soll. Dazu ruft CIB doXiview die Funktion terminate auf.
Function |
Parameters |
Return |
terminate |
code: int |
void |
This method must be called when the application finishes/closes. Once this method has been called, the application status will be set to CLOSED and subsequent calls to functions will fail. Parameter description:
|
||
Registration by Master: master.common.registerTerminateCallback(callback: FunctionCallback);
|
fireDataDirty
In CIB doXiview können Änderungen vorliegen, die der Benutzer noch nicht gespeichert hat. Beispiele hierfür sind noch nicht gespeicherte Annotationen oder ein geändertes RTF-Freitextfeld. Damit der Master darauf reagieren kann, ruft CIB doXiview die Funktion fireDataDirty auf.
Function |
Parameters |
Return |
fireDataDirty
|
isDataDirty: boolean
|
void
|
Informs the integrator that there are unsaved changes in CIB doXiview which can for instance be unsaved changes within the editor component after the user edited a RTF-Snippet. Parameter description:
|
||
Registration by master: master.common.registerFireDataDirtyCallback(callback: FunctionCallback);
|
lock, unlock
Es kann erforderlich sein, die gesamte CIB doXiview Benutzeroberfläche zu sperren um sie gegen unbefugte Eingaben zu schützen. Beispielsweise durch eine explizite Sperranforderung des Benutzers oder wenn der Benutzer längere Zeit inaktiv war. Ein späteres Entsperren der Oberfläche ist ebenfalls möglich. Beides wird durch den Master veranlasst.
Function |
Parameters |
Return |
lock
|
N/A
|
void
|
Tells the client application to lock itself. |
||
Registration by slave: slave.common.registerLockCallback(callback: FunctionCallback);
|
Function |
Parameters |
Return |
unlock
|
N/A
|
void
|
Tells the client application to unlock itself. |
||
Registration by slave: slave.common.registerUnlockCallback(callback: FunctionCallback);
|
logout
Wird in der Master-Anwendung ein Logout des Benutzers durchgeführt, sollte CIB doXiview darüber informiert werden, z. B. um einen eventuell geöffneten Freitext-Editor schließen.
Slave Interface:
Function |
Parameters |
Return |
logout
|
N/A
|
void
|
Tells the client application to logout. |
||
Registration by slave: slave.common.registerLogoutCallback(callback:FunctionCallback);
|
resize
In CIB doXiview ist es möglich, die Größe der Anwendung anzupassen. Dies wird durch einen Aufruf der Funktion resize realisiert.
Slave Interface:
Function |
Parameters |
Return |
resize
|
width: int
|
void
|
Lets CIB doXiview resize to the specified size in pixel.
|
||
Registration by slave: slave.common.registerResizeCallback(callback: FunctionCallback);
|
showMessage
Der Master kann die Funktion showMessage aufrufen, um in CIB doXiview Nachrichten für den Benutzer anzuzeigen. Diese werden über dem Dokument eingeblendet und nach einer gewissen Zeit automatisch ausgeblendet.
Function |
Parameters |
Return |
showMessage
|
messageText: String
|
void
|
Lets CIB doXiview display the specified message text. Parameter description:
|
||
Registration by slave: slave.common.registerShowMessageCallback(callback: FunctionCallback);
|
Das webview Interface
AllgemeinfinishLoading
getViewStateInfo
finishEditing
setSnippetEditingAllowed
cancelEditing
showNotification
onDocumentVersionUpdated
applicationStarted
openDocument
Allgemein
Das Interface webview definiert allgemeine Funktionen zur Kommunikation mit CIB doXiview. Zudem sind hier Funktionen enthalten, welche beim Editieren von RTF verwendet werden.
Es ist aus Sicht des Masters in Form des Objekts CibWebviewMasterFunctions verfügbar.
finishLoading
CIB doXiview informiert den Master durch Aufruf der Funktion finishLoading, wenn der Ladevorgang eines Dokuments abgeschlossen wurde. Daraufhin kann der Master weitere Aktionen auslösen, z. B. zum Freischalten von eigenen Toolbar-Schaltflächen.
Function |
Parameters |
Return |
finishLoading
|
successful: boolean
|
void
|
Notifies the integrator of CIB doXiview that the document has finished loading. Parameter description: boolean: successful: Whether or not the document was successfully loaded. |
||
Registration by Master: master.webview.registerFinishLoadingCallback(callback:
FunctionCallback);
|
Beispiel-Implementierung aus Sicht des Masters:
master.webview.registerFinishLoadingCallback (function(params) {
// work with “params.successful” which can be true or false
// returning something is not needed since return type is “void”
});
Hinweis: In der Testoberfläche kann die Benachrichtigung durch CIB doXiview über finishLoading beobachtet werden: Sobald CIB doXiview ein Dokument geladen hat, reagiert die Testoberfläche darauf, indem sie den Aufruf in der Konsole ausgibt.
getViewStateInfo
Der Master kann durch Aufruf von getViewStateInfo CIB doXiview nach dem aktuellen Zustand der Anzeige befragen, beispielsweise welche Seite momentan ausgewählt ist.
Function |
Parameters |
Return |
getViewStateInfo
|
callback: JSON
|
JSON
|
Asks CIB doXiview for the current view state, which can be for instance used during communication with CIB webprint. Parameter description: JSON: callback: The callback object which will receive the result. Return: A JSON representation of the current view state, which has the following structure: { currentBundleDocumentID: the current bundle document id, currentDocumentID: the current document id, currentDocumentPageCount: the page count for the current document, currentPageNumber: the current page number }
|
||
Registration by Slave: slave.webview.registerGetViewStateInfoCallback(callback:FunctionCallback)
|
Beispiel-Implementierung aus Sicht des Masters:
master.webview.getViewStateInfo ({ success: function(params) { // work with params.currentBundleDocumentID // work with params.currentDocumentID // work with params.currentDocumentPageCount // work with params.currentPageNumber }, failure: function(error) { // log error or something
}
});
Hinweis:
In der Testoberfläche kann dieser Aufruf mit der
Schaltfläche „RuntimeManipulation/Third Party Functions/Get View State“
ausgelöst werden. Das Ergebnis des Aufrufs wird in der Konsole der
Testoberfläche ausgegeben.
finishEditing
Diese Funktion spielt lediglich für den Anwendungsfall „Editieren von Freitextpassagen in einem RTF-Dokument“ mittels CIB webEdit eine Rolle.
CIB doXiview kann seinen Master darüber informieren, ob ein Editiervorgang erfolgreich abgeschlossen wurde. Zu diesem Zweck wird die sogenannte editSessionId an den Master kommuniziert, sowie eine Liste elementList der modifizierten Freitextbereiche. Falls kein Text verändert wurde, ist diese Liste leer.
Der Master kann daraufhin beispielsweise die editierten Freitextbereiche weiterverarbeiten. Für weitergehende Informationen hierzu kontaktieren Sie bitte Ihren Ansprechpartner bei CIB.
Function |
Parameters |
Return |
finishEditing
|
editSessionId: String
|
void
|
Informs the integrator of CIB doXiview that the user has finished editing the specified editable elements. Parameter description:
{ containerId: a containerId with modified elements, elementNames[]: a list of modified element names }[]
|
||
Registration by Master: master.webview.registerFinishEditingCallback(callback:FunctionCallback)
|
Hinweis: In der Testoberfläche kann in der Konsolenausgabe die Benachrichtigung durch CIB doXiview über finishEditing einfach nachvollzogen werden:
- Öffnen Sie CIB doXiview in dem Modus webEdit
- Editieren Sie eine Freitextpassage
- Beenden Sie das Editieren durch Speichern oder Abbrechen
setSnippetEditingAllowed
Diese Funktion spielt lediglich für den Anwendungsfall „Editieren von Freitextpassagen in einem RTF-Dokument“ mittels CIB webEdit eine Rolle.
Der Master kann CIB doXiview zur Laufzeit mitteilen, ob Freitextpassagen editierbar sein sollen oder nicht. CIB doXiview reagiert auf diesen Aufruf damit, dass Freitextpassagen als editierbar, bzw. als nicht editierbar dargestellt werden.
Function |
Parameters |
Return |
setSnippetEditingAllowed
|
snippetEditingAllowed: boolean
|
void
|
Notifies CIB doXiview if snippet editing should be allowed. The viewer will highlight the editable regions as editable to the user, based on the provided setting. Parameter description: boolean: snippetEditingAllowed: Whether or not snippet editing should be allowed. |
||
Registration by Slave: slave.webview.registerFinishEditingCallback(callback:FunctionCallback);
|
Hinweis: In der Testoberfläche kann diese Funktion wie folgt aufgerufen werden:
- Öffnen Sie CIB doXiview im Modus webEdit.
- Haken Sie auf dem Reiter Runtime Manipulation die Checkbox enable editing an und aus. Dies verändert unmittelbar die Darstellung der Freitextbereiche.
Darstellung der Freitextbereiche bei der Einstellung true:
Darstellung der Freitextbereiche bei der Einstellung false:
cancelEditing
Diese Funktion spielt lediglich für den Anwendungsfall „Editieren von Freitextpassagen in einem RTF-Dokument“ mittels CIB webEdit eine Rolle.
Sie ermöglicht dem Master den aktuellen Editiervorgang abzubrechen, sofern ein solcher gestartet wurde. CIB doXiview schließt daraufhin den Editor. Dabei kann angegeben werden, ob die aktuellen Änderungen gespeichert werden sollen. Dies kann die integrierende Master-Anwendung zum Beispiel vorher über einen dort angezeigten Dialog erfragen.
Function |
Parameters |
Return |
cancelEditing
|
saveChanges: boolean
|
void
|
Notifies CIB doXiview that the current editSession shall be closed. This method will be called for instance when the user closes an integrating application even though there exist unsaved changes in the editor component. Parameter description: boolean: saveChanges: Whether or not changes should be saved. |
||
Registration by Slave: slave.webview.registerCancelEditingCallback(callback:FunctionCallback);
|
Hinweis: In der Testoberfläche kann diese Funktion wie folgt ausgelöst werden:
- Öffnen Sie CIB doXiview im Modus webEdit
- Öffnen Sie per Doppelklick auf einen Editierbereich den Texteditor, und geben Sie Text ein.
- Klicken Sie auf dem Reiter Runtime Manipulation auf die Schaltfläche Cancel Editing. Wenn die Option save changes angehakt ist, dann werden Ihre Textänderungen übernommen, sonst nicht.
showNotification
Der Master kann die Funktion showNotification aufrufen, um in CIB doXiview Nachrichten für den Benutzer anzuzeigen. Diese werden über dem Dokument eingeblendet und nach einer gewissen Zeit automatisch ausgeblendet. Zudem kann die Art der Nachricht (Info, Warnung, Fehler, etc.) angegeben werden.
Function |
Parameters |
Return |
showMessage
|
messageText: String
|
void
|
Lets CIB doXiview display the specified message text. Parameter description:
|
||
Registration by slave: slave.common.registerShowNotificationCallback(callback: FunctionCallback);
|
onDocumentVersionUpdated
CIB doXiview informiert den Master durch Aufruf der Funktion onDocumentVersionUpdated, wenn das Dokument verändert wurde. Der Master kann daraufhin die neue Dokument-Version weiterverarbeiten.
Damit der Integrator über die Änderung des Dokuments informiert wird, muss der Start-Parameter propagateDocumentVersionUpdates auf true gesetzt werden.
Function |
Parameters |
Return |
onDocumentVersionUpdated
|
webstoreId: String
|
void
|
Notifies the integrator of CIB doXiview that the document has been updated. Parameter description:
|
||
Registration by Master: master.webview.registerOnDocumentVersionUpdatedCallback(callback: FunctionCallback);
|
Beispiel-Implementierung aus Sicht des Masters:
master.webview.registerOnDocumentVersionUpdatedCallback (function(params) {
// work with “params.webstoreId”
// work with “params.location” which is an url
// returning something is not needed since return type is “void”
});
applicationStarted
CIB doXiview informiert den Master durch Aufruf der Funktion applicationStarted, wenn die Anwendung vollständig geladen wurde. Dieser Aufruf bedeutet nicht, dass das Dokument geladen wurde. Es signalisiert lediglich die vollständige Verfügbarkeit der Anwendung. Der Integrator kann daraufhin mit doXiview interagieren und beispielsweise ein Dokument mit openDocument öffnen.
Function |
Parameters |
Return |
applicationStarted
|
keine
|
void
|
Notifies the integrator of CIB doXiview that the application has been started. |
||
Registration by Master: master.webview.registerApplicationStartedCallback(callback: FunctionCallback);
|
Beispiel-Implementierung aus Sicht des Masters:
master.webview.registerApplicationStartedCallback (function() {
// returning something is not needed since return type is “void”
});
openDocument
Der Master kann die Funktion openDocument aufrufen, um ein neues Dokument zu öffnen, ohne doXiview komplett neu laden zu müssen. Die Start-Parameter werden dabei neu geladen. Abgesehen von Parametern, welche das Aussehen von doXiview steuern, können alle Startparameter individuell für das zu öffnende Dokument angepasst werden.
Function |
Parameters |
Return |
openDocument
|
-
|
void
|
Opens a new document in the current viewer session. If there is no document identifier in the start-parameters, the current document is closed. |
||
Registration by slave: slave.common.registerOpenDocumentCallback(callback: FunctionCallback);
|
Beispiel-Implementierung aus Sicht des Masters:
master.webview.openDocument();
Das archive Interface
AllgemeingetNextArchiveObjectId
getPreviousArchiveObjectId
beforeArchiveLoad
afterArchiveLoad
Allgemein
CIB doXiview kann über die Server-seitige Schnittstelle CIB Archive API an ein Archivsystem angebunden werden, um von dort Dokumente zu laden und anzuzeigen.
Das Interface archive definiert Funktionen, welche in diesem Fall Client-seitig zur Kommunikation benötigt werden.
Es ist aus Sicht des Masters in Form des Objekts CibArchiveMasterFunctions verfügbar.
Für weitere Informationen zur Anbindung von CIB doXiview an ein Archivsystem sei auf die separate Dokumentation CIB doXiview - Archivmodus verwiesen.
getNextArchiveObjectId
Diese Funktion wird lediglich für die Anzeige von Archivdokumenten benötigt.
Über eine entsprechende Schaltfläche in CIB doXiview kann der Benutzer zum nächsten anzuzeigenden Archivobjekt navigieren. Welches das nächste Archivobjekt ist, erfragt CIB doXiview daraufhin mit der Funktion getNextArchiveObjectId bei seinem Master. Typischerweise hat die Master-Anwendung aktuell eine Menge von Archivobjekten aufgelistet, z.B. ein Suchergebnis.
Function |
Parameters |
Return |
getNextArchiveObjectId
|
archiveObjectId: String
|
JSON
|
Returns based on the given current archive object id the information about the next archive object. If no archive object was loaded in the current session the parameter will be null. Parameter description: String: archiveObjectId:
The id of the currently loaded archive object or null if no archive object is loaded. Return: A JSON representation of the archive object information with the following structure: var res = {
|
||
Registration by master: master.archive.registerGetNextArchiveObjectIdCallback(callback: FunctionCallback);
|
getPreviousArchiveObjectId
Diese Funktion wird lediglich für die Anzeige von Archivdokumenten benötigt.
Analog zu getNextArchiveObjectId fragt CIB doXiview seinen Master nach der vorherigen Archivobjekt-Id, wenn der Benutzer eine entsprechende Schaltfläche in CIB doXiview betätigt.
Function |
Parameters |
Return |
getPreviousArchiveObjectId
|
archiveObjectId: String
|
String
|
Returns based on the given current archive object id the previous archive object id. If no archive object was loaded in the current session this parameter will be null. Parameter description: String: archiveObjectId:
The id of the currently loaded archive object or null if no archive object is loaded. Return: A JSON representation of the archive object information with the following structure: var res = {
|
||
Registration by master: master.archive.registerGetPreviousArchiveObjectIdCallback(callback: FunctionCallback);
|
beforeArchiveLoad
Diese Funktion wird lediglich für die Anzeige von Archivdokumenten benötigt.
CIB doXiview erfragt mit der Funktion beforeArchiveLoad weitere Informationen zu dem zu ladenden Archivobjekt, bevor das Archivobjekt serverseitig geladen wird.
Function |
Parameters |
Return |
beforeArchiveLoad
|
archiveObjectId: String
|
JSON
|
Returns meta data for the specified archive object. Parameter description:
Return: The metadata for the given archive object |
||
Registration by master: master.archive.registerBeforeArchiveLoadCallback(callback: FunctionCallback);
|
afterArchiveLoad
Diese Funktion wird lediglich für die Anzeige von Archivdokumenten benötigt.
Wenn das Archivobjekt serverseitig geladen wurde, ruft CIB doXiview den Master mit der Funktion afterArchiveLoad auf.
Function |
Parameters |
Return |
afterArchiveLoad
|
archiveObjectId: String
|
JSON
|
Returns meta data for the specified archive object. Parameter description:
Return: The parameters object being passed into this function. |
||
Registration by master: master.archive.registerAfterArchiveLoadCallback(callback: FunctionCallback);
|
Das print Interface
AllgemeingetPrinterList
startPrint
openPrintDialog
Allgemein
Im Unternehmensumfeld kann CIB doXiview zusammen mit einem auf dem Arbeitsplatzrechner befindlichen Gerätedienst-Server zusammenarbeiten. Dieser kann Dienste außerhalb der Browser-Sandbox bereitstellen, um direkt über das Betriebssystem mit Geräten wie z. B. Druckern kommunizieren zu können. Auf diese Weise kann ein in CIB doXiview angezeigtes Dokument in Originalqualität gedruckt werden.
Das Interface print enthält die daran beteiligten Funktionen.
Es ist aus Sicht des Masters in Form des Objekts CibPrintMasterFunctions verfügbar.
getPrinterList
Diese Funktion wird lediglich für das Drucken von Dokumenten über einen lokalen Gerätedienst benötigt.
Wenn über einen lokalen Gerätedienst gedruckt werden soll und der Benutzer in CIB doXiview den entsprechenden Druckdialog öffnet, wird ihm eine Liste der zur Verfügung stehenden Drucker angezeigt.
Diese Liste erfragt CIB doXiview über die Funktion getPrinterList von der Master-Anwendung. Das Besorgen dieser Liste vom lokalen Gerätedienst ist Aufgabe des Masters.
Zur Ermittlung der Drucker übergibt CIB doXiview einen Kontext als Parameter. Dieser Kontext wurde beim Start von CIB doXiview über den Startparameter webview.context hinterlegt und von dem Viewer durchgereicht.
Function |
Parameters |
Return |
getPrinterList
|
printContext: String
|
JSON
|
Returns a list of available printers. Parameter description: String: printContext:
The context being used, e.g. DVS, ARC. Return: A JSON representation of the available printers which has the following structure: { printers : [{ name: "printer 1",
|
||
Registration by master: master.print.registerGetPrinterListCallback(callback: FunctionCallback);
|
startPrint
Diese Funktion wird lediglich für das Drucken von Dokumenten über einen lokalen Gerätedienst benötigt.
CIB doXiview informiert über startPrint die Master-Anwendung, wenn der Benutzer in dem Druckdialog mit der Schaltfläche Ok betätigt und der Druckvorgang gestartet werden soll.
Der Master delegiert daraufhin den Druckvorgang an den Master.
Function |
Parameters |
Return |
startPrint
|
data: JSON
|
void
|
Executes the printing process for the specified print data. Parameter description: JSON: data: Information about the document
which should be printed. Example structure: { printer: "Microsoft XPS Document Writer", deviceServiceIP: "127.0.0.1", undIds: ["1231435543645647567567", "234234324234234234"], context: "the print context, e.g. “ARC” for “archive”", options: "print options such as number of copies” jobName: "1234 - Test Formular" }
|
||
Registration by master: master.print.registerPrintCallback(callback: FunctionCallback);
|
openPrintDialog
Diese Funktion wird lediglich für das Drucken von Dokumenten über einen lokalen Gerätedienst benötigt.
CIB doXiview bietet die Funktion openPrintDialog an, mit welcher der Master das Öffnen des Druckdialogs in CIB doXiview veranlassen kann.
Function |
Parameters |
Return |
openPrintDialog
|
N/A
|
void
|
Used to start printing from outside of doXiview. This will prompt CIB doXiview to open the print dialog. After that, the user must press the Ok button on the print dialog to complete printing. It is required that CIB doXiview was has been started with parameter externalPrint=true |
||
Registration by slave: slave.print.registerOpenPrintDialogCallback(callback: FunctionCallback);
|
Hinweis: In der Testoberfläche kann dieser Aufruf wie folgt ausgelöst werden:
- Öffnen Sie CIB doXiview im Modus DVS
- Klicken Sie in dem Bereich Basic Parameters die Schaltfläche Add Entry und fügen Sie externalPrint und true als Startparameterwerte ein.
- Klicken Sie auf dem Reiter Runtime Manipulation auf die Schaltfläche Print.
Das sign Interface
AllgemeinsignatureInfo
signatureSelected
documentToSign
loadSignedDocument
UpdateSignedDocument
setSignatureEditingAllowed
Allgemein
Das Interface sign enthält Funktionen für das Hinzufügen von elektronischen Unterschriften zu PDF-Dokumenten.
Es ist aus Sicht des Masters in Form des Objekts CibSignMasterFunctions verfügbar.
CIB doXiview ist in der Lage, Felder für elektronische Unterschriften in PDF Dokumenten optisch hervorzuheben und diese für den Benutzer per Doppelklick auswählbar zu machen.
Der eigentliche Vorgang des Signierens wird von der Master-Anwendung übernommen und die neue Dokument-Version anschließend in der bestehenden Sitzung erneut angezeigt.
Als Voraussetzung sind zum Freischalten der signaturrelevanten Funktionalität die folgenden Startparameter an CIB doXiview zu übergeben:
var startParameters = {
webview: {
digSigEnabled: Freischalten der Signatur-Funktionalität
uploadSignContent: Wenn Jview-Dateien (von CIB webDesk) unterschrieben werden
sollen.
} }
signatureInfo
Diese Funktion wird lediglich für das Hinzufügen von elektronischen Unterschriften zu einem PDF Dokument benötigt.
Wenn ein Dokument geladen wurde, teilt CIB doXiview dem Master über diese Funktion alle im Dokument vorhandenen Unterschriftenfelder mit.
Function |
Parameters |
Return |
signatureInfo
|
signatureList: JSON
|
void
|
Notifies the Master of CIB doXiview about all signatures contained in the currently loaded document after it is finished loading. Parameter description: JSON: signatureList: A JSON representation of a list of signatures contained in the currently loaded document with the following structure: var signatureList = [ signature: signature information, ... ] where each signature contains the following information: var signature = { name: The unique field name info: Additional information to the signature isRequired: Whether or not the signature is required isSigned: Whether or not the signature was already signed signatureLocation: the information to identify the signature in the loaded document } where the signatureLocation is defined as follows: var signatureLocation = { receiverCopyName: entry exists only if receiver copy name exists pageNumber: the page Number topLeftX: the top left x coordinate of the signatures bounding box topLeftY: the top left y coordinate of the signatures bounding box width: the width of the signatures bounding box height: the height of the signatures bounding box } |
||
Registration by master: master.sign.registerSignatureInfoCallback(callback: FunctionCallback);
|
Hinweis: In der Testoberfläche kann die Benachrichtigung durch CIB doXiview wie folgt beobachtet werden:
- Öffnen Sie CIB doXiview im Modus Sign (Pdf)
- In der Konsole können Sie die übergebenen Informationen einsehen, nachdem das Dokument geladen wurde:
signatureSelected
Diese Funktion wird lediglich für das Hinzufügen von elektronischen Unterschriften zu einem PDF Dokument benötigt.
Wenn der Benutzer einen Doppelklick auf einem Unterschriftenfeld ausführt, soll dieses mit einer Unterschrift gefüllt werden. Da das eigentliche Signieren die Aufgabe des Masters ist, wird dieser mittels signatureSelected darüber informiert, dass
und in welchem Feld unterschrieben werden soll. Diese Funktion wird lediglich für das Hinzufügen von elektronischen Unterschriften zu einem PDF Dokument benötigt.
Function |
Parameters |
Return |
signatureSelected
|
signature: JSON
|
void
|
Notifies the integrator of CIB doXiview when a signature was double clicked by a user.
Parameter description: JSON: signature: A JSON representation of the selected signature defined as follows: var signature = { name: The unique field name where the signatureLocation is defined as follows: var signatureLocation = { receiverCopyName: entry exists only if receiver copy name exists pageNumber: the page Number topLeftX: the top left x coordinate of the signatures bounding box topLeftY: the top left y coordinate of the signatures bounding box width: the width of the signatures bounding box height: the height of the signatures bounding box }
|
||
Registration by master: master.sign.registerSignatureSelectedCallback(callback: FunctionCallback);
|
Hinweis: In der Testoberfläche kann dieser Aufruf wie folgt nachvollzogen werden:
- Öffnen Sie CIB doXiview im Modus Sign (Pdf)
- Doppelklicken Sie auf ein Unterschriftenfeld
In der Konsole können Sie die übergebenen Informationen einsehen:
documentToSign
Diese Funktion wird lediglich für das Hinzufügen von elektronischen Unterschriften zu einem PDF Dokument benötigt - auch nur dann, wenn es sich bei dem Dokument um eine .jview-Datei handelt, d.h. das Dokument aus CIB webDesk / CIB darkDesk stammt.
Im Falle von .jview-Dateien findet ein zusätzlicher Funktionsaufruf von CIB doXiview an den Master statt. CIB doXiview legt das Dokument in der Komponente webstore ab und informiert den Master, unter welcher webstoreId es dort aufzufinden ist. Dieser kann es dann bei Bedarf aus dem webstore herunterladen und signieren.
Function |
Parameters |
Return |
documentToSign |
webstoreId: String |
void |
Notifies the integrator of CIB doXiview about the signable content which was extracted from a jview file and uploaded to the configured webstore.
Parameter description: String: webstoreId: The webstore id for accessing the signable document content. |
||
Registration by master: master.sign.registerDocumentToSignCallback(callback: FunctionCallback);
|
Hinweis: In der Testoberfläche kann dieser Aufruf wie folgt nachvollzogen werden:
- Öffnen Sie CIB doXiview im Modus Sign (Jview)
- In der Konsole wird angezeigt, unter welcher webstoreId CIB doXiview das Dokument abgelegt hat.
loadSignedDocument
Diese Funktion wird lediglich für das Hinzufügen von elektronischen Unterschriften zu einem PDF Dokument benötigt.
Nachdem eine neue Signatur auf dem Dokument aufgebracht und die neue Dokument-Version vom Master im webstore abgelegt wurde, teilt der Master CIB doXiview mittels loadSignedDocument mit, unter welcher webstoreId CIB doXiview die neue Version des Dokumentes laden soll.
Function |
Parameters |
Return |
loadSignedDocument
|
webstoreId: String
signatureLocation: JSON
|
Void
|
Notifies CIB doXiview that the specified document shall be loaded into the existing viewer session. It is also possible to specify a signature to which shall be scrolled after the document is processed. Parameter description:
The webstore id to the new document version to be loaded.
A JSON representation of the information to identify the signature in the loaded document, defined as follows: var signatureLocation = { pageNumber: the page Number topLeftX: the top left x coordinate of the signatures bounding box
|
||
Registration by slave: slave.sign.registerLoadSignedDocumentCallback(callback: FunctionCallback);
|
UpdateSignedDocument
Diese Funktion wird lediglich für das Hinzufügen von elektronischen Unterschriften zu einem PDF Dokument benötigt - auch nur dann, wenn es sich bei dem Dokument um eine .jview-Datei handelt, d.h. das Dokument aus CIB webDesk / CIB darkDesk stammt.
Analog zu der loadSignedDocument Funktion kann im Falle für .jview-Dateien die neue Dokumentversion mit dem folgenden Aufruf propagiert werden.
Function |
Parameters |
Return |
updateSignedDocument
|
webstoreId: String
signatureLocation: JSON
|
Void
|
Notifies CIB doXiview that the specified document shall be updated into the existing viewer session. It is also possible to specify a signature to which shall be scrolled after the document is processed. This method is especially used for updating the document within jview file content in the CIB doXiview server cache. Parameter description:
The webstore id to the new document version to be loaded.
A JSON representation of the information to identify the signature in the loaded document, defined as follows: var signatureLocation = { pageNumber: the page Number topLeftX: the top left x coordinate of the signatures bounding box topLeftY: the top left y coordinate of the signatures bounding box width: the width of the signatures bounding box height: the height of the signatures bounding box }
|
||
Registration by slave: slave.sign.registerUpdateSignedDocumentCallback(callback: FunctionCallback);
|
setSignatureEditingAllowed
Diese Funktion wird lediglich für das Hinzufügen von elektronischen Unterschriften zu einem PDF Dokument benötigt.
Der Master kann zur Laufzeit über die Funktion setSignatureEditingAllowed bestimmen, ob das Dokument generell unterschreibbar sein soll.
Function |
Parameters |
Return |
setSignatureEditingAllowed
|
signatureEditingAllowed: boolean
|
Void
|
Notifies CIB doXiview whether or not signature editing shall be allowed. Parameter description: boolean: signatureEditingAllowed Whether or not signature editing shall be allowed. |
||
Registration by slave: slave.sign.registerSetSignureEditingAllowedCallback(callback: FunctionCallback);
|
Das toolbar Interface
AllgemeintoolbarButtonPressed
updateButton
setEnabled
setVisible
setTooltip
triggerButton
setToggleButtonState
Allgemein
Das Interface toolbar dient der Manipulation von Toolbar-Schaltflächen.
Es ist aus Sicht des Masters in Form des Objekts CibMasterToolbarFunctions verfügbar.
Es ist möglich, dass der Master eigene Schaltflächen in die CIB doXiview Toolbar einbettet. CIB doXiview kann die Master-Anwendung darüber informieren, wenn der Benutzer auf eine solche Schaltfläche geklickt hat. Darüber hinaus ist es möglich, für alle Schaltflächen der Haupt-Toolbar die folgenden Zustände zu beeinflussen: aktiviert, deaktiviert, sichtbar, unsichtbar.
Bei der Integration von Schaltflächen in die CIB doXiview Toolbar ist wie folgt vorzugehen.
- Das Icon der Schaltfläche wird fest in der css-Definition von CIB doXiview hinterlegt und wird nicht über das Client-seitige Interface übergeben. Es wird hier nur über eine css-Id referenziert. Wird ein individuelles Icon benötigt, muss dies also schon beim Deployment von CIB doXiview hinterlegt werden.
- In den Startparametern müssen die Schaltflächen übergeben werden, die in der CIB doXiview Toolbar integriert werden sollen.
- Es ist möglich, nach Auslösen von Benutzerereignissen die Schaltflächen über definierte Schnittstellen zu verändern, z. B. deaktivieren.
Definition von Schaltflächen in den Startparametern:
CIB doXiview fragt die hinzuzufügenden Schaltflächen in den Startparametern ab, damit der Master nicht prüfen muss, wann CIB doXiview vollständig initialisiert ist. CIB doXiview fügt dann auf Basis der Startparametereinträge die Schaltflächen eigenständig hinzu.
Aufbau des Startparameters für die Schaltflächendefinitionen:
toolbar: {
buttons: [{ buttonId: String: the buttons id, buttonLabel: String: the buttons label (may be displayed in menus), cssId: String: the buttons css id, tooltip: String: the buttons tooltip, isEnabled: boolean: whether or not the button should be enabled,
isVisible: boolean: whether or not the button should be visible, group: String: the buttons group, groupIndex: <optional> int: group position if it has to be created, index: int: the buttons index within its group, buttonGroup: <optional> String: the buttons composite group, }, { ...second button definition }]
}
toolbarButtonPressed
Diese Funktion wird lediglich für eine Anpassung der Toolbar benötigt.
Wenn der Master eigene Schaltflächen in die CIB doXiview Toolbar integriert hat, wird er über die Funktion toolbarButtonPressed darüber informiert, welche Schaltfläche vom Benutzer betätigt wurde.
Function |
Parameters |
Return |
toolbarButtonPressed
|
buttonId: String
|
void
|
Notifies the external application that a button with the specified id was pressed by the user. The external application is expected to execute any required actions. Parameter description: String: buttonId: The external id of the pressed button. |
||
Registration by master: master.toolbar.registerButtonPressedCallback(callback: FunctionCallback);
|
Hinweis: In der Testoberfläche kann dieser Aufruf von CIB doXiview an den Master nachvollzogen werden:
- Selektieren Sie den Modus Sign (Pdf)
- In dem Bereich Toolbar Configuration wählen Sie Sign aus.
- Öffnen Sie CIB doXiview
- Die ersten zwei Schaltflächen in der Toolbar sind nun die vom Master eingefügten Schaltflächen:
- Klicken Sie auf eine der beiden Schaltflächen.
- In der Browser-Konsole erscheint der JavaScript-Aufruf:
2015-01-19 14:22:59,237 [INFO ] OUTER: toolbarButtonPressed(params: {"buttonId":"sign-button"})
updateButton
Diese Funktion wird lediglich für eine Anpassung der Toolbar benötigt.
Schaltflächen können mit der Funktion updateButton unter Angabe der buttonId zur Laufzeit verändert werden. Dabei können eingestellt werden:
- Css-Id
- Tooltip
- Aktivierungszustand
- Sichtbarkeit
Function |
Parameters |
Return |
updateButton
|
params: JSON
|
void
|
Updates several attributes of a button at once. This could replace a sequent call of setVisible, setEnabled and setTooltip. Parameter description: JSON: params: A JSON representation of the button attributes, which has the following form: { buttonId: the external id of the button, cssId: the CSS id of the button (for appearance), tooltip: the tooltip of the button, isEnabled: whether or not the button should be enabled, isVisible: whether or not the button should be visible }
|
||
Registration by slave: slave.toolbar.registerToolbarCallback(toolbar.updateButton=function(params));
|
Hinweis: In der Testoberfläche kann der Aufruf vom Master an CIB doXiview nachvollzogen werden:
- Selektieren Sie den Modus Sign (Pdf)
- In dem Bereich Toolbar Configuration wählen Sie Sign aus.
- Öffnen Sie CIB doXiview
- In dem Reiter Runtime Manipulation unter Toolbar control können Sie nun mit dem Button Id Wert sign-button die Eigenschaften für diese Schaltfläche etwa wie folgt eingeben. Klicken Sie anschließend auf Test.
setEnabled
Diese Funktion wird lediglich für eine Anpassung der Toolbar benötigt.
Soll nur der Aktivierungszustand einer Schaltfläche verändert werden, kann der Master die Funktion setEnabled aufrufen.
Function |
Parameters |
Return |
setEnabled
|
buttonId: String
|
void
|
Enables or disables a button. Parameter description:
The external id of the button.
Whether or not the button should be enabled. |
||
Registration by slave: slave.toolbar.registerToolbarCallback(toolbar.setEnabled=function(params));
|
setVisible
Diese Funktion wird lediglich für eine Anpassung der Toolbar benötigt.
Soll nur der Sichtbarkeitszustand einer Schaltfläche verändert werden, kann der Master die Funktion setVisible aufrufen.
Function |
Parameters |
Return |
setVisible
|
buttonId: String
|
void
|
Shows or hides a button. Parameter description:
The external id of the button.
Whether or not the button should be visible. |
||
Registration by slave: slave.toolbar.registerToolbarCallback(toolbar.setVisible=function(params));
|
setTooltip
Diese Funktion wird lediglich für eine Anpassung der Toolbar benötigt.
Soll nur der Tooltip verändert werden, kann der Master die Funktion setTooltip aufrufen.
Function |
Parameters |
Return |
setTooltip
|
buttonId: String
|
void
|
Sets the tooltip text of a button. Parameter description:
The external id of the button.
The tooltip of the button. |
||
Registration by slave: slave.toolbar.registerToolbarCallback(toolbar.setTooltip=function(params));
|
triggerButton
Diese Funktion wird lediglich für eine Anpassung der Toolbar benötigt.
Mit der Funktion triggerButton kann der Master den Klick auf eine Schaltfläche auslösen.
Function |
Parameters |
Return |
triggerButton
|
buttonId: String
|
void
|
Triggers the action of a button. Parameter description: String: buttonId: The external id of the button. |
||
Registration by slave: slave.toolbar.registerToolbarCallback(toolbar.triggerButton=function(params));
|
Hinweis: In der Testoberfläche kann dieser Aufruf durch den Master nachvollzogen werden:
- Selektieren Sie den Modus Sign (Pdf)
- In dem Bereich Toolbar Configuration wählen Sie Sign aus.
- Öffnen Sie CIB doXiview
- Wählen Sie auf dem Reiter Runtime manipulation unter Toolbar control in der Drop-Down-Liste Trigger aus.
- Belegen Sie Button Id mit sign-button und klicken Sie auf Test
setToggleButtonState
Diese Funktion wird lediglich für eine Anpassung der Toolbar benötigt.
Mit dieser Funktion können sogenannte Toggle-Buttons beeinflusst werden. Dies sind Buttons mit den Zuständen gedrückt und nicht gedrückt.
Function |
Parameters |
Return |
setToggleButtonState
|
buttonId: String
|
void
|
Toggles the pressed state of a button, if the new state is different from the current state. Parameter description:
The external id of the button.
Whether or not the button should be pressed. |
||
Registration by slave: slave.toolbar.registerToolbarCallback(toolbar.toggleButton=function(params));
|
Optimierung zum laden der JavaScript-Ressourcen
In diesem Kapitel werden Details zu einem optimierten Deployment der benötigten JavaScript-Ressourcen erläutert.
In unserem Beispiel-Code wurde CIB iwc mit dem folgenden Script-Tag geladen:
<script type="text/javascript" src="lib-js/cib.iwc.1.0.0.min.js"></script>
Das vom Master genutzte Kommunikationsinterface wurde zusätzlich mit diesem Script-Tag geladen:
<script type="text/javascript" src="lib-js/cib.iwc.master.webview.js"></script>
Beide Ressourcen liegen hier innerhalb der (Master-)Anwendung als Kopie vor. Das ist einfach zu handhaben und Sie können die JavaScript-Ressourcen mit einem konstanten, relativen src-Pfad adressieren, den Sie daher nicht konfigurierbar halten müssen.
Falls eine größere Zahl von Webapplikationen im Unternehmen über CIB iwc kommuniziert, ist es effizienter, diese Ressourcen insgesamt nur einmal vom Browser laden zu lassen, statt von jeder Anwendung in Kopie.
Dies lässt sich erreichen, indem alle Anwendungen diese Ressourcen über dieselbe URL laden, etwa
<script type="text/javascript"
src="http://mycompany.com/lib-js/cib.iwc.1.0.0.min.js"></script>
CIB doXiview sollte ebenfalls solche geteilten JavaScript-Ressourcen laden. Es kann in CIB doXiview konfiguriert werden, welche JavaScript-Dateien in welchem iwc-Modus (internal, standalone, external) geladen werden sollen.
Per Voreinstellung werden alle benötigten JavaScript-Dateien (JQuery, CIB iwc sowie die dazugehörigen Kommunikationsschnittstellen) aus CIB doXiview selbst geladen. Sofern es nicht gewünscht ist, die JavaScript-Ressourcen zentral bereit zu stellen, besteht demnach auch keine Notwendigkeit diese Konfiguration zu ändern.
Ansonsten geschieht dies durch Überschreiben der existierenden Standardeinstellungen, welche in der Datei default-config.properties definiert sind. Das Überschreiben der dort vorhandenen Einstellungen wird stets in der Datei environment-config.properties vorgenommen, welche sich im selben Verzeichnis befindet. Die Datei default-config.properties sollte nicht modifiziert werden.
Folgende Standardeinstellungen können überschrieben
werden:
# Define jquery java script location
jquery=webview_gwt/jquery/jquery-1.11.1.min.js
# Define iwc core framework
iwc=webview_gwt/iwc/cib.iwc.1.0.0.min.js
# Define communicational adapters for iwc framework
iwc.interface=webview_gwt/iwc/iwc-interfaces-min.js
# Define iwc_mode java scripts and the default mode if no start parameter is used. (iwc_mode=external needs to be defined in environment-config.properties)
iwc.mode.standalone=${jquery}
iwc.mode.internal=${jquery},${iwc},${iwc.interface}
iwc.mode.default=INTERNAL
Die Konfiguration beschreibt die Quellen für JQuery, CIB iwc und allen Kommunikationsinterfaces für CIB iwc. Anschließend werden für die verschiedenen iwc.mode-Möglichkeiten die JavaScript-Dateien definiert, die im jeweiligen Modus von CIB doXiview geladen werden sollen.
In welchem Modus CIB doXiview arbeitet, wird per Startparameter an CIB doXiview übergeben.