Correspondence Management Solution ermöglicht es Ihnen, benutzerdefinierte Aktionen der Benutzeroberfläche „Korrespondenz erstellen“ hinzufügen.
In diesem Dokument wird beschrieben, wie Sie eine Schaltfläche in der Benutzeroberfläche "Korrespondenz erstellen"erstellen können, um einen Brief als Review-PDF freizugeben, das an eine E-Mail angehängt wird.
Um dieses Beispiel auszuführen, benötigen Sie Folgendes:
Hinzufügen einer Schaltfläche mit einer Aktion (hier Buchstaben zum Review senden) zur Benutzeroberfläche „Korrespondenz erstellen“. Diese enthält Folgendes:
Gehen Sie zu https://'[server]:[port]'/[ContextPath]/crx/de
und melden Sie sich als Administrator an.
Erstellen Sie im Apps-Ordner einen Ordner mit dem Namen defaultApp
mit einem ähnlichen Pfad/einer ähnlichen Struktur wie der Ordner defaultApp (im config-Ordner). Mit den folgenden Schritten können Sie den Ordner erstellen:
Klicken Sie mit der rechten Maustaste auf den Ordner defaultApp unter folgendem Pfad und wählen Sie Überlagerungsknoten:
/libs/fd/cm/config/defaultApp/
Stellen Sie sicher, dass das Dialogfeld „Überlagerungsknoten“ die folgenden Werte enthält:
Pfad: /libs/fd/cm/config/defaultApp/
Überlagerungsort: /apps/
Knotentypen abgleichen: Überprüft
Klicken Sie auf OK.
Klicken Sie auf Alle speichern.
Erstellen Sie eine Kopie der acmExtensionsConfig.xml-Datei (vorhanden unter der /libs-Verzweigung) unter der /apps-Verzweigung.
Wechseln Sie zu „/libs/fd/cm/config/defaultApp/acmExtensionsConfig.xml“
Klicken Sie mit der rechten Maustaste auf die Datei "acmExtensionsConfig.xml"und wählen Sie Kopieren.
Klicken Sie mit der rechten Maustaste auf den Ordner defaultApp unter „/apps/fd/cm/config/defaultApp/,“ und wählen Sie Einfügen.
Klicken Sie auf Alle speichern.
Doppelklicken Sie auf die Kopie von „acmExtentionsConfig.xml“, die Sie im Apps-Ordner neu erstellten haben. Die Datei wird zur Bearbeitung geöffnet.
Suchen Sie folgenden Code:
<?xml version="1.0" encoding="utf-8"?>
<extensionsConfig>
<modelExtensions>
<modelExtension type="LetterInstance">
<customAction name="Preview" label="loc.letterInstance.preview.label" tooltip="loc.letterInstance.preview.tooltip" styleName="previewButton"/>
<customAction name="Submit" label="loc.letterInstance.submit.label" tooltip="loc.letterInstance.submit.tooltip" styleName="submitButton" permissionName="forms-users"/>
<customAction name="SaveAsDraft" label="loc.letterInstance.saveAsDraft.label" tooltip="loc.letterInstance.saveAsDraft.tooltip" styleName="submitButton" permissionName="forms-users"/>
<customAction name="Close" label="loc.letterInstance.close.label" tooltip="loc.letterInstance.close.tooltip" styleName="closeButton"/>
</modelExtension>
</modelExtensions>
</extensionsConfig>
Um ein Schreiben per E-Mail zu versenden, können Sie den LiveCycle Forms-Arbeitsablauf verwenden. hinzufügen Sie ein customAction-Tag unter dem modelExtension-Tag in acmExtensionsConfig.xml wie folgt:
<customAction name="Letter Review" label="Letter Review" tooltip="Letter Review" styleName="" permissionName="forms-users" actionHandler="CM.domain.CCRCustomActionHandler">
<serviceName>Forms Workflow -> SendLetterForReview/SendLetterForReviewProcess</serviceName>
</customAction>
Das modelExtension-Tag besitzt eine Reihe von untergeordneten customAction-Tags, die die Aktion, die Berechtigungen und das Erscheinungsbild der Aktionsschaltfläche konfigurieren. Im Folgenden finden Sie eine Liste der customAction Konfigurations-Tags:
Name | Beschreibung |
---|---|
name | Der alphanumerische Name für die auszuführende Aktion. Der Wert dieses Tags wird benötigt, muss eindeutig sein (d. h. innerhalb des modelExtension-Tags) und muss mit einem Buchstaben beginnen. |
label | Die Beschriftung der Aktionsschaltfläche |
tooltip | QuickInfo-Text der Schaltfläche, der angezeigt wird, wenn der Benutzer den Cursor auf der Schaltfläche bewegt. |
styleName | Name des benutzerdefinierten Stils, der auf die Aktionsschaltfläche angewendet wird. |
permissionName | Die entsprechende Aktion wird nur angezeigt, wenn der Benutzer über die von permissionName angegebene Berechtigung verfügt. Wenn Sie permissionName als forms-users angeben, erhalten alle Benutzer Zugriff auf diese Option. |
actionHandler | Vollqualifizierter Name der ActionHandler-Klasse, die aufgerufen wird, wenn der Benutzer auf die Schaltfläche klickt. |
Neben den oben genannten Parametern kann es weitere Konfigurationen geben, die mit einer customAction verknüpft sind. Diese zusätzlichen Konfigurationen werden dem Handler über das CustomAction-Objekt zur Verfügung gestellt.
Name | Beschreibung |
---|---|
serviceName | Wenn eine customAction ein untergeordnetes Tag mit dem Namen serviceName enthält, wird beim Klicken auf die entsprechende Schaltfläche/Verknüpfung ein Prozess mit dem Namen aufgerufen, der vom Tag serviceName repräsentiert wird. Stellen Sie sicher, dass dieser Prozess dieselbe Signatur wie der Brief PostProcess hat. Fügen Sie das Präfix „Forms-Arbeitsablauf“ zum Servicenamen hinzu. |
Parameter, die das Präfix cm_ im Tag-Namen enthalten | Enthält eine customAction untergeordnete Tags, die mit dem Namen cm_ beginnen, dann sind diese Parameter im Nachbearbeitungsprozess (Brief-Nachbearbeitung oder der spezielle Prozess, der vom serviceName-Tag repräsentiert wird) im Eingabe-XML-Code unter dem entsprechenden Tag verfügbar, wobei das Präfix cm_ entfernt wurde. |
actionName | Wenn ein Nachbearbeitungsprozess durch einen Klick verursacht wird, enthält die gesendete XML ein spezielles Tag mit dem Namen unter dem Tag mit dem Namen der Benutzeraktion. |
Klicken Sie auf Alle speichern.
Die ACMExtensionsMessages.properties-Datei enthält Beschriftungen und QuickInfo-Meldungen verschiedener Felder in der Benutzeroberfläche "Korrespondenz erstellen". Damit die benutzerdefinierten Aktionen/Schaltflächen funktionieren, müssen Sie eine Kopie dieser Datei in der /apps-Verzweigung erstellen.
Klicken Sie mit der rechten Maustaste auf den Ordner locale unter folgendem Pfad und wählen Sie Überlagerungsknoten:
/libs/fd/cm/config/defaultApp/locale
Stellen Sie sicher, dass das Dialogfeld „Überlagerungsknoten“ die folgenden Werte enthält:
Pfad: /libs/fd/cm/config/defaultApp/locale
Überlagerungsort: /apps/
Knotentypen abgleichen: Überprüft
Klicken Sie auf OK.
Klicken Sie auf Alle speichern.
Klicken Sie mit der rechten Maustaste auf die folgende Datei und wählen Sie Kopieren:
/libs/fd/cm/config/defaultApp/locale/ACMExtensionsMessages.properties
Klicken Sie mit der rechten Maustaste auf den Ordner locale unter folgendem Pfad und wählen Sie die Option Einfügen:
/apps/fd/cm/config/defaultApp/locale/
ACMExtensionsMessages.properties-Datei wird in den Ordner „locale“ kopiert.
Um die Beschriftungen der neu hinzugefügten benutzerdefinierten Aktion/Schaltfläche zu lokalisieren, erstellen Sie die Datei ACMExtensionsMessages.properties für das entsprechende Gebietsschema in /apps/fd/cm/config/defaultApp/locale/
.
Beispiel für die Lokalisierung der benutzerdefinierten Aktion/Schaltfläche, die in diesem Artikel erstellt wurde, erstellen Sie eine Datei mit dem Namen ACMExtensionsMessages_fr.properties mit folgendem Eintrag:
loc.letterInstance.letterreview.label=Revue De Lettre
In ähnlicher Weise können Sie in dieser Datei weitere Eigenschaften hinzufügen, z. B. für QuickInfo und Stil.
Klicken Sie auf Alle speichern.
Nachdem Sie serverseitige Änderungen vorgenommen haben, starten Sie das Asset Composer-Baustein-Bundle von Adobe neu. In diesem Szenario werden die Dateien "acmExtensionsConfig.xml"und "ACMExtensionsMessages.properties"auf der Serverseite bearbeitet. Daher ist ein Neustart des Adobe Asset Composer-Bausteins erforderlich.
Möglicherweise müssen Sie die Daten im Browsercache löschen.
Rufen Sie https://[host]:'port'/system/console/bundles
auf. Falls erforderlich, melden Sie sich als Administrator an.
Suchen Sie das Asset Composer-Baustein-Bundle von Adobe. Starten Sie das Bundle neu: Klicken Sie auf „Anhalten“ und klicken Sie dann auf „Start“.
Nachdem das Asset Composer-Baustein-Bundle von Adobe neu gestartet wurde, wird die benutzerdefinierte Schaltfläche in der Benutzeroberfläche „Korrespondenz erstellen“ angezeigt. Sie können ein Schreiben in der Benutzeroberfläche „Korrespondenz erstellen“ öffnen, um eine benutzerdefinierte Schaltfläche in der Vorschau anzuzeigen.
Die Benutzeroberfläche „Korrespondenz erstellen“ ist standardmäßig in der Implementierung der ActionHandler cm.domain.js-Datei am folgenden Speicherort:
/libs/fd/cm/ccr/gui/components/admin/clientlibs/ccr/js/cm.domain.js
Erstellen Sie für die benutzerdefinierte Aktionsbearbeitung eine Überlagerung der cm.domain.js-Datei in der /apps-Verzweigung von CRX.
Das Bearbeiten der Aktion/der Schaltfläche beim Klicken auf die Aktion/Schaltfläche beinhaltet Logik für:
Rufen Sie https://'[server]:[port]'/[ContextPath]/crx/de
auf. Falls erforderlich, melden Sie sich als Administrator an.
Erstellen Sie im Anwendungsordner einen Ordner mit dem Namenjs
in der /apps-Verzweigung von CRX, mit einer ähnlichen Struktur des folgenden Ordners:
/libs/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/js
Mit den folgenden Schritten können Sie den Ordner erstellen:
Klicken Sie mit der rechten Maustaste auf den Ordner js unter folgendem Pfad und wählen Sie Überlagerungsknoten:
/libs/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/js
Stellen Sie sicher, dass das Dialogfeld „Überlagerungsknoten“ die folgenden Werte enthält:
Pfad: /libs/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/js
Überlagerungsort: /apps/
Knotentypen abgleichen: Überprüft
Klicken Sie auf OK.
Klicken Sie auf Alle speichern.
Erstellen Sie im Ordner js eine Datei mit dem Namen ccrcustomization.js mit dem Code für die Aktionsbearbeitung der Schaltfläche, indem Sie folgende Schritte durchführen:
Klicken Sie mit der rechten Maustaste auf den Ordner js unter folgendem Pfad und wählen Sie Erstellen > Datei erstellen:
/apps/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/js
Benennen Sie die Datei als ccrcustomization.js.
Doppelklicken Sie auf die ccrcustomization.js-Datei, um sie in CRX zu öffnen.
Fügen Sie in die Datei den folgenden Code und klicken Sie auf Alle speichern:
/* for adding and handling custom actions in Extensible Toolbar.
* One instance of handler will be created for each action.
* CM.domain.CCRCustomActionHandler is actionHandler class.
*/
var CCRCustomActionHandler;
CCRCustomActionHandler = CM.domain.CCRCustomActionHandler = new Class({
className: 'CCRCustomActionHandler',
extend: CCRDefaultActionHandler,
construct : function(action,model){
}
});
/**
* Called when user user click an action
* @param extraParams additional arguments that may be passed to handler (For future use)
*/
CCRCustomActionHandler.prototype.handleAction = function(extraParams){
if (this.action.name == CCRCustomActionHandler.SEND_FOR_REVIEW) {
var sendForReview = function(){
var serviceName = this.action.actionConfig["serviceName"];
var inputParams = {};
inputParams["dataXML"] = this.model.iccData.data;
inputParams["letterId"] = this.letterVO.id;
inputParams["letterName"] = this.letterVO.name;
inputParams["mailId"] = $('#email').val();
/*function to invoke the LivecyleService */
ServiceDelegate.callJSONService(this,"lc.icc.renderlib.serviceInvoker.json","invokeProcess",[serviceName,inputParams],this.onProcessInvokeComplete,this.onProcessInvokeFail);
$('#ccraction').modal("hide");
}
if($('#ccraction').length == 0){
/*For first click adding popup & setting letterName.*/
$("body").append(popUp);
$("input[id*='letterName']").val(this.letterVO.name);
$(document).on('click',"#submitLetter",$.proxy( sendForReview, this ));
}
$('#ccraction').modal("show");
}
};
/**
* Should the action be enabled in toolbar
* @param extraParams additional arguements that may be passed to handler (For future use)
* @return flag indicating whether the action should be enabled
*/
CCRCustomActionHandler.prototype.actionEnabled = function(extraParams){
/*can be customized as per user requirement*/
return true;
};
/**
* Should the action be visible in toolbar
* @param extraParams additional arguments that may be passed to handler (For future use)
* @return flag indicating whether the action should be enabled
*/
CCRCustomActionHandler.prototype.actionVisible = function(extraParams){
/*Check can be enabled for Non-Preview Mode.*/
return true;
};
/*SuccessHandler*/
CCRCustomActionHandler.prototype.onProcessInvokeComplete = function(response) {
ErrorHandler.showSuccess("Letter Sent for Review");
};
/*FaultHandler*/
CCRCustomActionHandler.prototype.onProcessInvokeFail = function(event) {
ErrorHandler.showError(event.message);
};
CCRCustomActionHandler.SEND_FOR_REVIEW = "Letter Review";
/*For PopUp*/
var popUp = '<div class="modal fade" id="ccraction" tabindex="-1" role="dialog" aria-hidden="true">'+
'<div class="modal-dialog modal-sm">'+
'<div class="modal-content">' +
'<div class="modal-header">'+
'<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</code></button>'+
'<h4 class="modal-title"> Send Review </h4>'+
'</div>'+
'<div class="modal-body">'+
'<form>'+
'<div class="form-group">'+
'<label class="control-label">Email Id</label>'+
'<input type="text" class="form-control" id="email">'+
'</div>'+
'<div class="form-group">'+
'<label class="control-label">Letter Name</label>'+
'<input id="letterName" type="text" class="form-control" readonly>'+
'</div>'+
'<div class="form-group">'+
'<input id="letterData" type="text" class="form-control hide" readonly>'+
'</div>'+
'</form>'+
'</div>'+
'<div class="modal-footer">'+
'<button type="button" class="btn btn-default" data-dismiss="modal"> Cancel </button>'+
'<button type="button" class="btn btn-primary" id="submitLetter"> Submit </button>'+
'</div>'+
'</div>'+
'</div>'+
'</div>';
Aktivieren Sie in diesem Szenario die folgenden Komponenten, die Teil der angehängten Datei components.zip sind:
Laden Sie die Datei components.zip herunter und dekomprimieren Sie sie, um die Dateien DSCSample.jar und SendLetterForReview.lca abzurufen. Verwenden Sie diese Dateien, wie in den folgenden Verfahren angegeben.
components.zip
Dieser Schritt ist nur erforderlich, wenn Sie mit einem OSGI-Setup arbeiten und die LC-Integration für die Art der Anpassung, die Sie implementieren, erforderlich ist.
Der LCA-Vorgang wird auf dem LiveCycle-Server ausgeführt und erfordert die Serveradresse und die Anmeldeinformationen.
Gehen Sie zu https://'[server]:[port]'/system/console/configMgr
und melden Sie sich als Administrator an.
Suchen Sie nach Adobe LiveCycle Client SDK-Konfiguration und klicken Sie auf Bearbeiten (Bearbeiten-Symbol). Das Konfigurationsfenster öffnet sich.
Geben Sie die folgenden Details ein und klicken Sie auf Speichern:
Der erforderliche LiveCycle-Prozess, der den E-Mail-Serviceprozess aktiviert.
Wenn Sie sehen möchten, wie dieser Vorgang funktioniert oder wenn Sie ähnliche Vorgänge selbst erstellen möchten, benötigen Sie Workbench.
Melden Sie sich als Administrator bei der LiveCycle Server-Adminui unter https:/[lc server]/:[lc port]/adminui
an.
Navigieren Sie zu Startseite > Dienste > Anwendungen und Dienste > Anwendungsverwaltung.
Wenn die SendLetterForReview-Anwendung bereits vorhanden ist, überspringen Sie die restlichen Schritte in diesem Verfahren, andernfalls fahren Sie mit den nächsten Schritten fort.
Wählen Sie Importieren.
Klicken Sie auf Datei wählen und wählen Sie SendLetterForReview.lca.
Klicken Sie auf Vorschau.
Wählen Sie Elemente zur Laufzeit bereitstellen, wenn der Import abgeschlossen ist.
Wählen Sie Importieren.
Erwähnen Sie im AEM-Server der LiveCycle-Dienste, dass Sie auf den AEM-Server zugreifen möchten.
Melden Sie sich als Administrator bei https:/[host]:'port'/system/console/configMgr
an.
Klicken Sie auf Adobe LiveCycle Client SDK Configuration. Das Bedienfeld Adobe LiveCycle Client SDK-Konfiguration wird angezeigt.
Klicken Sie in der Liste "Dienstname"auf das Symbol + und fügen Sie einen serviceName SendLetterForReview/SendLetterForReviewProcess hinzu.
Klicken Sie auf Speichern.
In diesem Szenario müssen Sie den E-Mail-Dienst im LifeCycle-Server konfigurieren, damit Correspondence Management eine E-Mail senden kann.
Melden Sie sich mit Administratorberechtigungen bei der LiveCycle-Server-Adminui unter https:/[lc server]:[lc port]/adminui
an.
Navigieren Sie zu Startseite > Dienste > Anwendungen und Dienste > Dienstverwaltung.
Suchen Sie nach der Option EmailService und klicken Sie darauf.
Konfigurieren Sie unter SMTP Host den E-Mail-Dienst.
Klicken Sie auf Speichern.
Um die Correspondence Management-API zu verwenden, laden Sie die Datei "DSCSample.jar"(in diesem Dokument als Teil von components.zip angehängt) herunter und laden Sie sie auf den LiveCycle-Server hoch. Nachdem die Datei "DSCSample.jar"auf den LiveCycle-Server hochgeladen wurde, verwendet der AEM die Datei "DSCSample.jar", um auf die renderLetter-API zuzugreifen.
Weitere Informationen finden Sie unter Verbinden von AEM Forms mit der Adobe LiveCycle.
Aktualisieren Sie die AEM-Server-URL in cmsa.properties in DSCSample.jar, das sich am folgenden Speicherort befindet:
DSCSample.jar\com\adobe\livecycle\cmsa.properties
Stellen Sie die folgenden Parameter in der Konfigurationsdatei bereit:
Jedes Mal, wenn Sie Änderungen auf Serverseite vornehmen, müssen Sie den LiveCycle-Server neu starten. Informationen über das Erstellen Ihrer eigenen Livecycle-Komponente finden Sie unter Erweiterung der LiveCycle ES-Software durch kundenspezifische DSC-Entwicklung.
Die Datei "DSCSample.jar"verwendet die renderLetter-API. Weitere Informationen zur renderLetter-API finden Sie unter Interface LetterRenderService.
Die Datei "DSCSample.jar"verwendet die renderLetter-API, um den Brief als PDF-Bytes aus XML-Daten zu rendern, die C als Eingabe gibt. Weitere Informationen zu renderLetter und andere APIs finden Sie unter Brief-Render-Dienst.
Anfang Workbench und melden Sie sich an.
Wählen Sie Fenster > Ansichten anzeigen > Komponenten. Die Komponenten-Ansicht wird zu Workbench ES2 hinzugefügt.
Klicken Sie mit der rechten Maustaste auf Komponenten und wählen Sie Komponente installieren.
Wählen Sie die Datei DSCSample.jar über den Dateibrowser aus und klicken Sie auf Öffnen.
Klicken Sie mit der rechten Maustaste auf RenderWrapper und wählen Sie Beginn Component. Wenn die Komponente gestartet wird, erscheint ein grüner Pfeil neben dem Komponentennamen.
Nachdem Sie die Aktion und Schaltfläche zum Versenden des Schreibens an den Review konfiguriert haben:
Löschen Sie den Browsercache.
Klicken Sie in der Benutzeroberfläche „Korrespondenz erstellen“ auf Brief-Review und geben Sie die E-Mail-ID des Überprüfers an.
Klicken Sie auf Übermitteln.
Der Reviewer erhält eine E-Mail von einem System mit dem Schreiben als PDF-Anlage.