Aangepaste actie/knop toevoegen in interface voor correspondentie maken add-custom-action-button-in-create-correspondence-ui
Overzicht overview
Met de oplossing Correspondence Management kunt u aangepaste handelingen toevoegen aan de gebruikersinterface Correspondentie maken.
Het scenario in dit document legt uit hoe u een knop in de gebruikersinterface voor correspondentie maken kunt maken om een brief te delen als een revisiebericht dat aan een e-mail is gekoppeld.
Vereisten prerequisites
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 scenario-create-the-button-in-the-create-correspondence-user-interface-to-send-a-letter-for-review
Het toevoegen van een knop met een actie (hier verzend brief voor overzicht) aan Create Correspondence Gebruikersinterface omvat:
- De knop toevoegen aan de gebruikersinterface Correspondentie maken
- Handeling-afhandeling aan de knop toevoegen
- Het LiveCycle-proces toevoegen om bewerking "afhandeling van handelingen" in te schakelen
De knop toevoegen aan de gebruikersinterface Correspondentie maken add-the-button-to-the-create-correspondence-user-interface
-
Ga naar
https://[server]:[port]/[ContextPath]/crx/deen aanmelden als beheerder. -
Maak in de map Apps een map met de naam
defaultAppmet pad/structuur vergelijkbaar met de map defaultApp (in configuratiemap). Gebruik de volgende stappen om de map te maken:-
Klik met de rechtermuisknop op de knop defaultApp map op het volgende pad en selecteer Overlay Node:
/libs/fd/cm/config/defaultApp/
-
Zorg ervoor dat het dialoogvenster Overlay-knooppunt de volgende waarden heeft:
Path: /libs/fd/cm/config/defaultApp/
Overlay Location: /apps/
Match Node Types: Ingeschakeld
-
Klik op OK.
-
Klik op Save All.
-
-
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.
-
Klik met de rechtermuisknop op de knop defaultApp map op "/apps/fd/cm/config/defaultApp/" en selecteer Paste.
-
Klik op Save All.
-
-
Dubbelklik op de kopie van acmExtencesConfig.xml die u net in de map apps hebt gemaakt. Het bestand wordt geopend voor bewerking.
-
Zoek de volgende code:
code language-xml <?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> -
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:
code language-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>
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:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 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 knopinfo 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 opgeeft als forms-users, 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.
table 0-row-2 1-row-2 2-row-2 3-row-2 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. -
Klik op Save All.
Een map met eigenschappen voor een landinstelling maken in de tak /apps create-a-locale-folder-with-properties-file-in-the-apps-branch
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.
-
Klik met de rechtermuisknop op de knop locale map op het volgende pad en selecteer Overlay Node:
/libs/fd/cm/config/defaultApp/locale
-
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
-
Klik op OK.
-
Klik op Save All.
-
Klik met de rechtermuisknop op het volgende bestand en selecteer Copy:
/libs/fd/cm/config/defaultApp/locale/ACMExtensionsMessages.properties -
Klik met de rechtermuisknop op de knop locale map op het volgende pad en selecteer Paste:
/apps/fd/cm/config/defaultApp/locale/Het bestand ACMExtensionsMessages.properties wordt gekopieerd naar de map locale.
-
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 LettreOp dezelfde manier kunt u in dit bestand meer eigenschappen toevoegen, zoals voor knopinfo en stijl.
-
Klik op Save All.
De bundel Adobe Asset Composer Building Block opnieuw starten restart-the-adobe-asset-composer-building-block-bundle
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.
-
Ga naar
https://[host]:[port]/system/console/bundles. Meld u indien nodig aan als beheerder. -
Zoek de bundel Adobe Asset Composer Building Block. Start de bundel opnieuw: Klik op Stoppen en vervolgens op Start.
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 add-action-handling-to-the-button
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.
-
Ga naar
https://[server]:[port]/[ContextPath]/crx/de. Meld u indien nodig aan als beheerder. -
Maak in de map Apps een map met de naam
jsin de /apps tak van CRX met structuur gelijkend op de volgende omslag:/libs/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/jsGebruik de volgende stappen om de map te maken:
-
Klik met de rechtermuisknop op de knop js map op het volgende pad en selecteer Overlay Node:
/libs/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/js -
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
-
Klik op OK.
-
Klik op Save All.
-
-
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:
-
Klik met de rechtermuisknop op de knop js map op het volgende pad en selecteer Create > Create File:
/apps/fd/cm/ccr/gui/components/admin/clientlibs/ccrui/jsGeef het bestand een naam als ccrcustomization.js.
-
Dubbelklik op het bestand ccrcustomization.js om dit te openen in CRX.
-
Plak de volgende code in het bestand en klik op Save All:
code language-none /* 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">×</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 toe te laten afhandeling add-the-livecycle-process-to-enable-action-span-class-acrolinxcursormarker-span-handling
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 controleproces LCA (
SendLetterForReview.lca)
Download en decomprimeer de components.zip op te halen bestand DSCSample.jar en SendLetterForReview.lca bestanden. Gebruik deze bestanden volgens de onderstaande procedures.
Vorm de Server van LiveCycle om het proces LCA in werking te stellen configure-the-livecycle-server-to-run-the-lca-process
Het LCA-proces wordt uitgevoerd op de LiveCycle-server en vereist het serveradres en de aanmeldingsgegevens.
-
Ga naar
https://[server]:[port]/system/console/configMgren aanmelden als beheerder. -
Zoek de Configuratie van de SDK van Adobe LiveCycle Client en klik op Edit (pictogram Bewerken). Het deelvenster Configuraties wordt geopend.
-
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
LiveCycle-archief (LCA) installeren install-livecycle-archive-lca
Het vereiste LiveCycle-proces dat het e-mailserviceproces mogelijk maakt.
-
Meld u aan als beheerder bij Livecycle Server-adminui op
https:/[lc server]/:[lc port]/adminui. -
Ga naar Home > Services > Applications and Services > Application Management.
-
Als de toepassing SendLetterForReview al aanwezig is, sla de resterende stappen in deze procedure over, anders ga aan de volgende stappen verder.
-
Klik op Import.
-
Klik op Choose File en selecteer SendLetterForReview.lca.
-
Klik op Preview.
-
Selecteer Deploy assets to runtime when import is complete.
-
Klik op Import.
Het toevoegen van ServiceName aan de Gevoegde op lijst van gewenste personen lijst van de Dienst adding-servicename-to-the-allowlisted-service-list
Vermelding in de AEM server de diensten van de LiveCycle u tot de AEM server wilt toegang hebben.
-
Aanmelden als beheerder
https:/[host]/:[port]/system/console/configMgr. -
Zoeken en klikken Adobe LiveCycle Client SDK Configuration. Het deelvenster Configuratie SDK van Adobe LiveCycle Client wordt weergegeven.
-
In de lijst van de Naam van de Dienst, klik + pictogram en voeg een serviceName toe SendLetterForReview/SendLetterForReviewProcess.
-
Klik op Save.
De e-mailservice configureren configure-the-email-service
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.
-
Meld u aan met beheerdersgegevens voor de Livecycle Server-beheerder op
https:/[lc server]:[lc port]/adminui. -
Ga naar Home > Services > Applications and Services > Service Management.
-
Zoeken en klikken EmailService.
-
In SMTP Host, configureert u de e-mailservice.
-
Klik op Save.
De DSC-service configureren configure-the-dsc-service
Als u de API voor Correspondentenbeheer wilt gebruiken, downloadt u de DSCSample.jar (als onderdeel van components.zip) en uploadt u deze naar de LiveCycle-server. Na de DSCSample.jar het bestand is geüpload naar de LiveCycle-server, gebruikt de AEM server de DSCSample.jar bestand voor toegang tot de renderLetter-API.
Zie voor meer informatie AEM Forms verbinden met Adobe LiveCycle.
-
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
-
Geef de volgende parameters op in het configuratiebestand:
- crx.serverUrl=https:/[host]/:[poort]/[contextpad]/[URL AEM]
- crx.username= AEM gebruikersnaam
- crx.password= AEM
- crx.appRoot=/content/apps/cm
note note NOTE Telkens als u om het even welke veranderingen bij de serverzijde aanbrengt, begin de Server opnieuw. De
DSCSample.jarbestand gebruikt hetrenderLetterAPI. Zie voor meer informatie over de renderLetter-API Interface LetterRenderService.
DSC importeren naar AEM Forms op JEE import-dsc-to-livecyle
DSCSample.jar bestand gebruikt het renderLetter API om de letter te renderen als PDF bytes van XML-gegevens die C als invoer geeft. Voor meer informatie over renderLetter en andere APIs, zie Letter Render-service.
-
Start Workbench en meld u aan.
-
Selecteer Window > Show Views > Components. De weergave Componenten wordt toegevoegd aan Workbench ES2.
-
Klikken met rechtermuisknop Components en selecteert u Install Component.
-
Selecteer
DSCSample.jarfile door dossierbrowser en klik Open. -
Klikken met rechtermuisknop RenderWrapper en selecteert u Start Component. Als de component start, verschijnt er een groene pijl naast de naam van de component.
Ter controle verzenden send-letter-for-review
Nadat u de actie en de knoop voor het verzenden van de brief voor overzicht hebt gevormd:
-
Wis de browsercache.
-
Klik in de interface Correspondentie maken op Letter Review en geef de e-mailid van de controleur op.
-
Klik op Submit.
De controleur ontvangt een e-mail van het systeem met de brief als PDF bijlage.