Sie können die Funktion „Überwachungsordner“ in AEM aktivieren, indem Sie einen Workflow und einen Starter für den Workflow erstellen.

Weitere Informationen zum Erstellen von Workflows finden Sie unter Workflow Dokumentation

Weitere Informationen zum Erstellen von Startern finden Sie in der Starter-Dokumentation

Im angehängten Beispiel für einen Workflow und einen Starter werden eine Vorlage/Daten mithilfe der Methode centralMerge von OutputCentralService zusammengeführt. Außerdem wird das generierte PCL-Dokument mithilfe der API sendToPrinter an einen Drucker gesendet.

Verwenden des Beispiel-Workflows und -Starters

  1. Stellen Sie sicher, dass das aktuelle AEM Forms 6.0 Add-On-Paket adobe-aemfd-{OS}-pkg installiert ist.

  2. Installieren Sie das angehängte adobe-aemfd-cmb-sample-pkg.

    Herunterladen

  3. Navigieren Sie zu http://: /workflow und suchen Sie nach AEMFD CMB Beispielworkflow – „Zusammenführen und Drucken“ in der Registerkarte „Modelle“.

  4. Wählen Sie AEMFD CMB Beispielworkflow – „Zusammenführen und Drucken“ und klicken Sie auf „Bearbeiten“. Der Workflow wird im Workflow-Editor geöffnet.

  5. Doppelklicken Sie auf den Schritt „AEMFD CMB Beispielworkflow“ und öffnen Sie die Registerkarte „Prozess“.

  6. Geben Sie im Feld „Argumente“ den Pfad zur Vorlage (.mdf) und Details zum Drucker ein. Die Argumente sind eine Liste von durch Komma getrennten Werten. Die Werte werden als Liste interpretiert (Pfad zur MDF-Datei, PrintServer, PrinterName, PrinterProtocol).

  7. Klicken Sie auf „OK“ und dann auf „Speichern“.

Der Starter ist so konfiguriert, dass er Dateien auswählt, die Sie am Speicherort /content/fd/cmb/samples/MergeAndPrint/watchfolder ablegen.

Legen Sie eine Datendatei (.dat) in einen Überwachungsordner, um den Workflow zum Rendern und Drucken von PCL-Dateien auszulösen.

Überwachungsordner erstellen

In diesem Beispielanwendungsfall erstellen Sie einen Überwachungsordner und kopieren eine Datendatei (.dat) in den Ordner. Diese Datendatei wird mit einer Vorlage (.mdf) zusammengeführt und die generierte PCL-Datei (.pcl) wird mithilfe der Druck-API des SendToPrinter-Dienstes zum Drucken an den Drucker gesendet.

Hinweis:

Lesen Sie diesen Abschnitt, wenn Sie einen AEM-Workflow und -Starter zur Verwendung mit dem CMB-Dienst neu erstellen möchten. Überspringen Sie diesen Abschnitt, wenn Sie nur das Paket adobe-aemfd-cmb-sample-pkg verwenden möchten, da die hier behandelten Angaben dort bereits implementiert sind.

Erstellen des Workflow-Schritts

In diesem Beispiel verwenden Sie das ECMAScript, um einen Workflow-Prozessschritt zu definieren, der folgende Vorgänge ausführt:

  • Lesen und Zusammenführen von .mdf- und .dat-Dateien aus der Nutzlast zur Generierung eines PCL-Dokuments mithilfe des Vorgangs centralMerge des CBM-Dienstes.
  • Senden des PCL-Dokuments an einen Drucker mithilfe der Druck-API des SendToPrinter-Dienstes

Melden Sie sich beim CRX-Repository an, erstellen Sie die Datei /etc/workflow/steps/cmb/cmb-mergeandprint-sample.ecma und fügen Sie den folgenden Code ein:

/**
 *  Sample Workflow Step to demo OutputCentralService and sendToPrinter functionality of SendToPrinterService
 *
 *  Process Arguments
 *  1. inTemplate ( Absolute template file path e.g. "/content/cmb/excomma.mdf")
 *  2. printServer ( print server name e.g. \\mytestprinter)
 *  3. printerName ( name of the printer)
 *  4. printerProtocol (protocol to use to print cifs,directip etc.)
 *
 */
// Begin
var logger = Packages.org.slf4j.LoggerFactory.getLogger("cmb-mergeandprint-sample.ecma");
/*
 * Reference to OutputCentralService, used to invoke centralMerge operation
 */
var centralMigrationBridgeService = sling.getService(Packages.com.adobe.fd.cmb.api.OutputCentralService);
/**
 * Reference to SendToPrinterService, used to invoke sendToPrinter API
 */
var stpService = sling.getService(Packages.com.adobe.fd.stp.api.SendToPrinterService);
/*
 * workflow payload and path to it
 */
var payload = graniteWorkItem.getWorkflowData().getPayload();
var payload_path = payload.toString();
/*
 *  Template file Document
 */
var inTemplateDocument = readDocument(args[0]);
/*
 * data file argument
 */
var inDataDocument = readDocument(payload_path);
/*
 * printServer argument
 */
var printServer = args[1];
/*
 * printerName argument
 */
var printerName = args[2];
/*
 * printerProtocol
 */
var printerProtocol = args[3];
/*
 * authentication info
 */
var userName = args[4];
var password = args[5];
var domain = args[6];
 
/*
 * Generate PCL document by merging input data with template file using central migration bridge service
 */
var centralResult = centralMigrationBridgeService.centralMerge(inTemplateDocument,inDataDocument,null, null, null, null);
var pclDocument = centralResult.getResultDoc();
logger.info("Generated PCL Document : "+pclDocument);
/*
 * send pcl document to printer for printing using SendToPrinter services's print API
 */
// create printer spec for the printer
var printerSpec = new Packages.com.adobe.fd.stp.api.PrinterSpec();
printerSpec.setPrintServer(printServer);
printerSpec.setPrinterName(printerName);
setPrinterProtocol(printerSpec, printerProtocol);
if(userName) {
 printerSpec.setUsername(userName);
}
if(password){
  printerSpec.setPassword(password);
}
if(domain){
  printerSpec.setDomain(domain);
}
// call service now
 stpService.print(pclDocument,printerSpec);
logger.info("SuccessFully Printed pclDocument to "+printServer+","+printerName);
// END of Main Script
/** #########################################
 *   Utility methods
 *  ################################################
 */
 
/**
 *  reads the nt:file node's jcr:content property and creates a document object from it.
 */
function readDocument(path_str){
    var jcrsession = graniteWorkflowSession.adaptTo(Packages.javax.jcr.Session);
    var node = jcrsession.getRootNode().getNode(path_str.substring(1));
    var is = node.getProperty("jcr:content/jcr:data").getStream();
    return new Packages.com.adobe.aemfd.docmanager.Document(is);
}
/**
 * Converts printer protocol string to com.adobe.fd.stp.api.PrinterProtocol enum
 *
 */
function setPrinterProtocol(printerSpec, protocol_str){
    if(protocol_str == null || typeof(protocol_str) == "undefined" || protocol_str.length() == 0){
        throw new Error("getPrinterProtocol#protocol_str is null");
    }
    protocol_str = protocol_str.trim();
    if("CUPS".equals(protocol_str)){
       printerSpec.setPrinterProtocol(Packages.com.adobe.fd.stp.api.PrinterProtocol.CUPS);
    } else if("DirectIP".equals(protocol_str)){
       printerSpec.setPrinterProtocol(Packages.com.adobe.fd.stp.api.PrinterProtocol.DirectIP);
    } else if("LPD".equals(protocol_str)){
       printerSpec.setPrinterProtocol(Packages.com.adobe.fd.stp.api.PrinterProtocol.LPD);
    } else if("SharedPrinter".equals(protocol_str)){
       printerSpec.setPrinterProtocol(Packages.com.adobe.fd.stp.api.PrinterProtocol.SharedPrinter);
    } else if("CIFS".equals(protocol_str)){
       printerSpec.setPrinterProtocol(Packages.com.adobe.fd.stp.api.PrinterProtocol.CIFS);
    } else {
       throw new Error("Unknown protocol "+protocol_str);
    }
}

Einen Workflow erstellen

Um den Workflow-Schritt verwenden zu können, nehmen Sie ihn in einen Workflow auf. Führen Sie die folgenden Schritte aus, um einen Workflow zu erstellen, der den Workflow-Schritt verwendet:

  1. Navigieren Sie zu http:///workflow und melden Sie sich mit Ihren Anmeldedaten an.

  2. In der Registerkarte „Modelle“ klicken Sie auf „Neu“, geben Sie einen Titel ein und klicken Sie auf „OK“, um einen leeren Workflow zu erstellen.

  3. Suchen Sie nun nach dem von Ihnen erstellten Workflow und doppelklicken Sie darauf. Der Workflow-Editor wird angezeigt.

  4. Ziehen Sie im Workflow-Editor einen Prozessschritt aus dem Abschnitt „Workflow“ von Sidekick.

  5. Doppelklicken Sie auf den neuen Workflow-Schritt und wählen Sie die Registerkarte „Prozess“ im Dialogfeld aus.

  6. Wählen Sie in der Liste „Prozess“ die Datei /etc/workflow/steps/cmb/cmb-mergeandprint-sample.ecma.

  7. Wählen Sie Handler-Modus aus, um sicherzustellen, dass der Workflow automatisch zum nächsten Schritt übergeht.

  8. Fügen Sie im Bereich „Argumente“ durch Komma getrennte Werte als Pfad zur Vorlage (.mdf), PrintServer, PrinterName und PrinterProtocol hinzu.

  9. Klicken Sie auf „OK“ und dann auf „Speichern“.

Erstellen eines Starters

Wenn der Workflow fertig ist, führen Sie folgende Schritte durch, um den Starter zu erstellen, über den der Workflow aufgerufen wird.

  1. Navigieren Sie zu http:///workflow und melden Sie sich mit Ihren Anmeldedaten an.

  2. Klicken Sie in der Registerkarte „Starter“ auf „Hinzufügen“.

  3. Wählen Sie im Dialogfeld für „Ereignistyp“ „Erstellt“ und für „Knotentyp“ „nt:file“ aus. Geben Sie außerdem den Pfad zu dem Ordner an, den Sie als Überwachungsordner festlegen möchten.

  4. Von der Liste „Workflow“ wählen Sie den zuvor von Ihnen erstellten Workflow aus.

  5. Wählen Sie einen Ausführungsmodus und klicken Sie auf „OK“. Ihr Überwachungsordner ist einsatzbereit.

    Konfiguration des Starters
    Konfiguration des Starters

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie