Aangepaste actie/knop toevoegen in interface voor correspondentie maken

Overzicht

Met de oplossing Correspondence Management kunt u aangepaste handelingen toevoegen aan de gebruikersinterface Correspondentie maken.

In het scenario in dit document wordt uitgelegd hoe u een knop in de gebruikersinterface voor correspondentie maken kunt maken om een brief te delen als een revisie-PDF die is gekoppeld aan een e-mail.

Vereisten

Om dit scenario te voltooien, vereist u het volgende:

  • Kennis van CRX en JavaScript
  • LiveCycle-server

Scenario: Maak de knop in de gebruikersinterface Correspondentie maken om een brief ter controle te verzenden

Het toevoegen van een knop met een actie (hier verzend brief voor overzicht) aan Create Correspondence Gebruikersinterface omvat:

  1. De knop toevoegen aan de gebruikersinterface Correspondentie maken
  2. Handeling-afhandeling aan de knop toevoegen
  3. Het LiveCycle-proces toevoegen om bewerking "afhandeling van handelingen" in te schakelen

De knop toevoegen aan de gebruikersinterface Correspondentie maken

  1. Ga naar https://[server]:[port]/[ContextPath]/crx/de en login als Beheerder.

  2. Maak in de map apps een map met de naam defaultApp met een pad/structuur die lijkt op de map defaultApp (in de map config). Gebruik de volgende stappen om de map te maken:

    • Klik met de rechtermuisknop op de map defaultApp op het volgende pad en selecteer Overlay Node:

      /libs/fd/cm/config/defaultApp/

      Overlay-knooppunt

    • Zorg ervoor dat het dialoogvenster Overlay-knooppunt de volgende waarden heeft:

      Path: /libs/fd/cm/config/defaultApp/

      Overlay Location: /apps/

      Match Node Types: Ingeschakeld

      Overlay-knooppunt

    • Klik op OK.

    • Klik op Save All.

  3. Maak een kopie van het bestand acmExtensionsConfig.xml (bestaat onder de tak /libs) onder de tak /apps.

    • Ga naar "/libs/fd/cm/config/defaultApp/acmExtensionsConfig.xml"

    • Klik met de rechtermuisknop op het bestand acmExtensionsConfig.xml en selecteer Copy.

      acmExtensionsConfig.xml kopiëren

    • Klik met de rechtermuisknop op de map defaultApp op "/apps/fd/cm/config/defaultApp/" en selecteer Paste.

    • Klik op Save All.

  4. Dubbelklik op de kopie van acmExtencesConfig.xml die u net in de map apps hebt gemaakt. Het bestand wordt geopend voor bewerking.

  5. Zoek de volgende 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>
    
  6. U kunt LiveCycle Forms Workflow gebruiken om een e-mailbrief te verzenden. Voeg als volgt een customAction-tag toe onder de modelExtension-tag in acmExtensionsConfig.xml:

     <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>
    

    customAction-tag

    De tag modelExtension heeft een set onderliggende tags van customAction die de handeling, machtigingen en weergave van de actieknop configureren. Hieronder volgt een lijst met aangepasteAction-configuratietags:

    Naam Beschrijving
    name De alfanumerieke naam voor de handeling die moet worden uitgevoerd. Waarde van deze tag is vereist, moet uniek zijn (binnen de tag modelExtension) en moet beginnen met een alfabet.
    label Het label dat op de actieknop moet worden weergegeven
    tooltip Knopinfo-tekst van de knop, die wordt weergegeven wanneer de gebruiker de muisaanwijzer op de knop plaatst.
    styleName Naam van de aangepaste stijl die op de actieknop wordt toegepast.
    permissionName De overeenkomstige actie wordt getoond slechts als de gebruiker de toestemming heeft die door permissionName wordt gespecificeerd. Wanneer u permissionName als forms-users specificeert, krijgen alle gebruikers toegang tot deze optie.
    actionHandler Volledig gekwalificeerde naam van de klasse ActionHandler die wordt aangeroepen wanneer de gebruiker op de knop klikt.

    Naast de bovenstaande parameters, kunnen er extra configuraties verbonden aan een customAction zijn. Deze extra configuraties worden ter beschikking gesteld aan de manager door het voorwerp CustomAction.

    Naam Beschrijving
    serviceName Als een customAction een kindmarkering met name serviceName bevat, dan wanneer het klikken van de relevante knoop/de verbinding, wordt een proces geroepen met de naam die door serviceName markering wordt vertegenwoordigd. Zorg ervoor dat dit proces dezelfde handtekening heeft als het PostProcess Letter. Voeg het voorvoegsel "Forms Workflow ->" toe aan de servicenaam.
    Parameters die het voorvoegsel cm_ bevatten in tagnaam Als een customAction een kindmarkeringen bevat die met naam cm_ beginnen, dan in postproces (of het Proces van de Post van de Brief of het speciale proces door de markering serviceName wordt vertegenwoordigd) zijn deze parameters beschikbaar in de inputXML code onder de relevante markering met cm_ prefix verwijderd.
    actionName Wanneer een postproces aan een klik toe te schrijven is, bevat voorgelegde XML een speciale markering met naam onder de markering met de naam van de gebruikersactie.
  7. Klik op Save All.

Een map met eigenschappen voor een landinstelling maken in de tak /apps

Het bestand ACMExtensionsMessages.properties bevat labels en knopinfo-berichten van verschillende velden in de gebruikersinterface Correspondentie maken. Maak een kopie van dit bestand in de tak /apps om de aangepaste handelingen/knoppen te laten werken.

  1. Klik met de rechtermuisknop op de map locale op het volgende pad en selecteer Overlay Node:

    /libs/fd/cm/config/defaultApp/locale

  2. Zorg ervoor dat het dialoogvenster Overlay-knooppunt de volgende waarden heeft:

    Path: /libs/fd/cm/config/defaultApp/locale

    Overlay Location: /apps/

    Match Node Types: Ingeschakeld

  3. Klik op OK.

  4. Klik op Save All.

  5. Klik met de rechtermuisknop op het volgende bestand en selecteer Copy:

    /libs/fd/cm/config/defaultApp/locale/ACMExtensionsMessages.properties

  6. Klik met de rechtermuisknop op de map locale op het volgende pad en selecteer Paste:

    /apps/fd/cm/config/defaultApp/locale/

    Het bestand ACMExtensionsMessages.properties wordt gekopieerd naar de map locale.

  7. Als u de labels van de zojuist toegevoegde aangepaste handeling/knop wilt lokaliseren, maakt u het bestand ACMExtensionsMessages.properties voor de relevante landinstelling in /apps/fd/cm/config/defaultApp/locale/.

    Als u bijvoorbeeld de aangepaste handeling/knop wilt lokaliseren die in dit artikel is gemaakt, maakt u een bestand met de naam ACMExtensionsMessages_fr.properties met de volgende vermelding:

    loc.letterInstance.letterreview.label=Revue De Lettre

    Op dezelfde manier kunt u in dit bestand meer eigenschappen toevoegen, zoals voor knopinfo en stijl.

  8. Klik op Save All.

De bundel Adobe Asset Composer Building Block opnieuw starten

Nadat u elke wijziging aan de serverzijde hebt aangebracht, start u de bundel Adobe Asset Composer Building Block opnieuw. In dit scenario worden de bestanden acmExtensionsConfig.xml en ACMExtensionsMessages.properties op de server bewerkt. Daarom moet de bundel Adobe Asset Composer Building Block opnieuw worden gestart.

OPMERKING

Mogelijk moet u de cache van de browser wissen.

  1. Ga naar https://[host]:[port]/system/console/bundles. Meld u indien nodig aan als beheerder.

  2. Zoek de bundel Adobe Asset Composer Building Block. Start de bundel opnieuw: Klik op Stoppen en vervolgens op Start.

    Adobe Asset Composer Building Block

Nadat u de bundel Adobe Asset Composer Building Block opnieuw hebt gestart, verschijnt de aangepaste knop in de Create Correspondence User Interface. U kunt een letter openen in de gebruikersinterface Correspondentie maken om een voorvertoning van de aangepaste knop weer te geven.

Handeling toevoegen aan de knop

De gebruikersinterface Correspondentie maken is standaard geïmplementeerd door ActionHandler in het bestand cm.domain.js op de volgende locatie:

/libs/fd/cm/ccr/gui/components/admin/clientlibs/ccr/js/cm.domain.js

Voor aangepaste handelingen-afhandeling maakt u een bedekking van het bestand cm.domain.js in de /apps-vertakking van CRX.

De handeling/knop bij klikken op handeling/knop wordt uitgevoerd met logica voor:

  • De nieuw toegevoegde actie zichtbaar/onzichtbaar maken: gedaan door de actionVisible() functie te negeren.
  • Nieuwe toegevoegde actie in-/uitschakelen: doet dit door de actionEnabled() functie te negeren.
  • Werkelijke afhandeling van actie wanneer de gebruiker op de knop klikt: gedaan door de implementatie van de handleAction() functie te negeren.
  1. Ga naar https://[server]:[port]/[ContextPath]/crx/de. Meld u indien nodig aan als beheerder.

  2. Maak in de map apps een map met de naam js in de tak /apps van CRX met een structuur die lijkt op de volgende map:

    /libs/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/js

    Gebruik de volgende stappen om de map te maken:

    1. Klik met de rechtermuisknop op de map js op het volgende pad en selecteer Overlay Node:

      /libs/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/js

    2. Zorg ervoor dat het dialoogvenster Overlay-knooppunt de volgende waarden heeft:

      Path: /libs/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/js

      Overlay Location: /apps/

      Match Node Types: Ingeschakeld

    3. Klik op OK.

    4. Klik op Save All.

  3. Maak in de map js een bestand met de naam ccrcustomization.js met de code voor het uitvoeren van handelingen met de knop door de volgende stappen uit te voeren:

    1. Klik met de rechtermuisknop op de map js op het volgende pad en selecteer Create > Create File:

      /apps/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/js

      Geef het bestand een naam als ccrcustomization.js.

    2. Dubbelklik op het bestand ccrcustomization.js om dit te openen in CRX.

    3. Plak de volgende code in het bestand en klik op Save All:

      /* 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">&times;</span></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>';
      

Voeg het proces van de LiveCycle toe om actie behandeling toe te laten

In dit scenario schakelt u de volgende componenten in, die deel uitmaken van het bestand components.zip in de bijlage:

  • DSC-componentjar (DSCSample.jar)
  • Letter verzenden voor revisieproces LCA (SendLetterForReview.lca)

Download en decomprimeer het components.zip-bestand om DSCSample.jar- en SendLetterForReview.lca-bestanden op te halen. Gebruik deze bestanden volgens de onderstaande procedures.

Bestand ophalen

Vorm de Server van LiveCycle om het proces LCA in werking te stellen

OPMERKING

Deze stap wordt vereist slechts als u op een "opstelling OSGI en integratie LC wordt vereist voor het type van aanpassing u uitvoert.

Het LCA-proces wordt uitgevoerd op de LiveCycle-server en vereist het serveradres en de aanmeldingsgegevens.

  1. Ga naar https://[server]:[port]/system/console/configMgr en login als Beheerder.

  2. Zoek Adobe LiveCycle Client SDK Configuration en klik op Edit (bewerkingspictogram). Het deelvenster Configuraties wordt geopend.

  3. Voer de volgende gegevens in en klik op Save:

    • Server Url: URL van de server LC waarvan verzendt voor de dienst van het Overzicht de code van de actiemanager gebruikt.
    • Username: Gebruikersnaam beheerder van de LC-server
    • Password: Wachtwoord voor de gebruikersnaam van de beheerder

    Adobe LiveCycle client SDK-configuratie

LiveCycle-archief (LCA) installeren

Het vereiste LiveCycle-proces dat het e-mailserviceproces mogelijk maakt.

OPMERKING

Als u wilt zien wat dit proces doet of een vergelijkbaar proces wilt maken, hebt u Workbench nodig.

  1. Meld u aan als beheerder bij Livecycle Server adminui op https:/[lc server]/:[lc port]/adminui.

  2. Ga naar Home > Services > Applications and Services > Application Management.

  3. Als de toepassing SendLetterForReview al aanwezig is, sla de resterende stappen in deze procedure over, anders ga aan de volgende stappen verder.

    SendLetterForReview-toepassing in de gebruikersinterface

  4. Klik op Import.

  5. Klik op Choose File en selecteer SendLetterForReview.lca.

    Selecteer het bestand SendLetterForReview.lca

  6. Klik op Preview.

  7. Selecteer Deploy assets to runtime when import is complete.

  8. Klik op Import.

Het toevoegen van ServiceName aan de Gevoegde op lijst van gewenste personen lijst van de Dienst

Vermelding in de AEM server de diensten van de LiveCycle u tot de AEM server wilt toegang hebben.

  1. Meld u aan als beheerder bij https:/[host]/:[port]/system/console/configMgr.

  2. Zoek en klik op Adobe LiveCycle Client SDK Configuration. Het deelvenster Configuratie SDK van Adobe LiveCycle Client wordt weergegeven.

  3. Klik op + pictogram in de lijst Servicenaam en voeg een servicenaam SendLetterForReview/SendLetterForReviewProcess toe.

  4. Klik op Save.

De e-mailservice configureren

In dit scenario, voor het Beheer van de Correspondentie om een e-mail te kunnen verzenden, vorm de e-maildienst in de server van de LiveCycle.

  1. Meld u aan met beheerdersgegevens voor de Livecycle Server-beheerder op https:/[lc server]:[lc port]/adminui.

  2. Ga naar Home > Services > Applications and Services > Service Management.

  3. Zoek en klik op EmailService.

  4. Configureer de e-mailservice in SMTP Host.

  5. Klik op Save.

De DSC-service configureren

Als u de API voor correspondentiebeheer wilt gebruiken, downloadt u DSCSample.jar (in dit document bijgevoegd als onderdeel van components.zip) en uploadt u deze naar de LiveCycle-server. Nadat het DSCSample.jar dossier aan de server van de LiveCycle wordt geupload, gebruikt de AEM server DSCSample.jar dossier om tot renderLetter API toegang te hebben.

Zie AEM Forms verbinden met Adobe LiveCycle voor meer informatie.

  1. Werk de URL van de AEM server in cmsa.properties bij in DSCSample.jar, die zich op de volgende locatie bevindt:

    DSCSample.jar\com\adobe\livecycle\cmsa.properties

  2. Geef de volgende parameters op in het configuratiebestand:

    • crx.serverUrl=https:/[host]/:[port]/[context path]/[AEM URL]
    • crx.username= AEM gebruikersnaam
    • crx.password= AEM wachtwoord
    • crx.appRoot=/content/apps/cm
    OPMERKING

    Telkens als u om het even welke veranderingen bij de serverzijde aanbrengt, begin de Server opnieuw.

    Het DSCSample.jar dossier gebruikt renderLetter API. Voor meer informatie over renderLetter API, zie Interface LetterRenderService.

DSC importeren naar AEM Forms op JEE

DSCSample.jar gebruikt de renderLetter API om de letter te renderen als PDF-bytes van XML-gegevens die C als invoer geeft. Zie Letter Render Service voor meer informatie over renderLetter en andere API's.

  1. Start Workbench en meld u aan.

  2. Selecteer Window > Show Views > Components. De weergave Componenten wordt toegevoegd aan Workbench ES2.

  3. Klik met de rechtermuisknop Components en selecteer Install Component.

  4. Selecteer het DSCSample.jar dossier door dossierbrowser en klik Open.

  5. Klik met de rechtermuisknop RenderWrapper en selecteer Start Component. Als de component start, verschijnt er een groene pijl naast de naam van de component.

Ter controle verzenden

Nadat u de actie en de knoop voor het verzenden van de brief voor overzicht hebt gevormd:

  1. Wis de browsercache.

  2. Klik in de interface Correspondentie maken op Letter Review en geef de e-mailid van de revisor op.

  3. Klik op Submit.

sendreview

De controleur ontvangt een e-mail van het systeem met de brief als PDF-bijlage.

Op deze pagina