Vous consultez actuellement l'aide de la version:

Vous pouvez activer la fonctionnalité de dossiers de contrôle dans AEM en créant un flux de travaux et un lanceur pour ce flux de travaux.

Consultez la section Documentation des flux de travaux pour en savoir plus sur la création de flux de travaux. 

Consultez la section Documentation du lanceur pour en savoir plus sur la création de lanceurs. 

L’exemple de flux de travaux et de lanceur joint fusionne un modèle/des données à l’aide de la méthode centralMerge d’OutputCentralService. En outre, il envoie le document PCL généré vers une imprimante à l’aide de l’API sendToPrinter.

Utilisation de l’exemple de flux de travail et de lanceur

  1. Assurez-vous que le module complémentaire AEM Forms 6.0 adobe-aemfd-{OS}-pkg est installé.

  2. Installez le module joint adobe-aemfd-cmb-sample-pkg.

    Telechargement

  3. Accédez à http://<cqhost>:<port>/workflow et recherchez AEMFD CMB Sample Workflow - Merge and Print dans l’onglet Modèles.

  4. Sélectionnez Exemple de flux de travaux AEMFD CMB - Fusion et impression et cliquez sur Modifier. Le flux de travaux est ouvert dans l’éditeur de flux de travaux.

  5. Double-cliquez sur l’étape Exemple de flux de travaux AEMFD CMB et ouvrez l’onglet Processus.

  6. Dans le champ Arguments, entrez le chemin vers le modèle (.mdf) et les détails de l’imprimante. Les arguments sont une liste de valeurs séparées par des virgules. Les valeurs sont interprétées comme une liste (chemin d’accès au fichier MDF, PrintServer, PrinterName, PrinterProtocol).

  7. Cliquez sur OK, puis sur Enregistrer.

Le lanceur est configuré pour choisir les fichiers déposés à l’emplacement /content/fd/cmb/samples/MergeAndPrint/watchfolder.

Déposez un fichier de données (.dat) dans un dossier de contrôle pour déclencher le flux de travaux pour procéder au rendu de PCL et l’imprimer.

Création d’un dossier de contrôle

Dans l’exemple de cas d’utilisation, vous créez un dossier de contrôle et copiez le fichier de données (.dat) dans le dossier. Ce fichier de données est fusionné avec un modèle (.mdf) et le fichier PCL (.pcl) généré est envoyé à l’imprimante à l’aide de l’API d’impression du service SendToPrinter pour l’impression.

Remarque :

Reportez-vous à la section si vous souhaitez créer de A à Z un flux de travaux et un lanceur AEM à utiliser avec le service CMB. Ignorez la section si vous souhaitez uniquement utiliser le module adobe-aemfd-cmb-sample-pkg car il implémente déjà les détails couverts ici. 

Création de l’étape de flux de travaux

Dans cet exemple, vous utilisez ECMAScript pour définir une étape du processus de flux de travaux qui effectue les opérations suivantes :

  • Lisez les fichiers .mdf et .dat depuis la charge utile et fusionnez-les pour générer un document PCL à l’aide de l’opération centralMerge du service CBM.
  • Envoyez le document PCL vers une imprimante à l’aide de l’API d’impression du service SendToPrinter.

Connectez-vous au référentiel CRX, créez le fichier /etc/workflow/scripts/cmb/cmb-mergeandprint-sample.ecma, puis collez le code suivant :

/**
 *  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);
    }
}

Création d’un flux de travaux

Pour pouvoir utiliser l’étape de flux de travaux, incluez-la dans un flux de travaux. Effectuez les étapes suivantes pour créer un flux de travaux qui utilise l’étape de flux de travaux :

  1. Accédez à http://<server>:<port>/workflow et connectez-vous en utilisant vos informations d’identification.

  2. Dans l’onglet Modèles, cliquez sur Nouveau, indiquez un titre, puis cliquez sur OK pour créer un flux de travaux vide.

  3. Recherchez maintenant le flux de travaux que vous avez créé et double-cliquez dessus. L’éditeur de flux de travaux s’affiche.

  4. Dans l’éditeur de flux de travaux, faites glisser une étape de processus depuis la section Flux de travaux de Sidekick.

  5. Double-cliquez sur la nouvelle étape de flux de travaux et sélectionnez l’onglet Processus dans la boîte de dialogue.

  6. Dans la liste Processus , sélectionnez le fichier /etc/workflow/scripts/cmb/cmb-mergeandprint-sample.ecma.

  7. Sélectionnez Avance du gestionnaire pour vous assurer que le flux de travaux passe automatiquement à l’étape suivante.

  8. Dans la section Arguments, ajoutez des valeurs séparées par des virgules de chemin d’accès au modèle (.mdf), PrintServer, PrinterName et PrinterProtocol.

  9. Cliquez sur OK, puis sur Enregistrer.

Création d’un lanceur

Lorsque le flux de travaux est prêt, effectuez les étapes suivantes pour créer un lanceur afin d’appeler le flux de travaux.

  1. Accédez à http://<server>:<port>/workflow et connectez-vous en utilisant vos informations d’identification.

  2. Dans l’onglet Lanceur, cliquez sur Ajouter.

  3. Dans la boîte de dialogue, sélectionnez Type d’événement comme Créé et Type de nœud comme nt:file. De plus, définissez le chemin d’accès au dossier que vous souhaitez désigner comme dossier de contrôle.

  4. Dans la liste Flux de travaux, sélectionnez le flux de travaux créé précédemment.

  5. Sélectionnez un mode d’exécution. Puis cliquez sur OK. Le dossier de contrôle est opérationnel.

    Configuration du lanceur
    Configuration du lanceur

    Remarque :

    Si la propriété runModes n’est pas spécifiée pour Watched Folder, Watched Folder s’active toujours indépendamment des modes d’exécution sur le serveur d’hébergement.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne