Bereid en verzend Interactieve Communicatie gebruikend de Agent UI voor prepare-and-send-interactive-communication-using-the-agent-ui

De agent UI staat de agenten toe om Interactieve Communicatie aan het postproces voor te bereiden en te verzenden. De agent brengt de vereiste wijzigingen aan zoals toegestaan, en legt de Interactieve Mededeling aan een postproces, zoals e-mail of druk voor.

Overzicht overview

Nadat een Interactieve Communicatie wordt gecreeerd, kan de Agent de Interactieve Communicatie in de Agent UI openen en een ontvankelijk-specifiek exemplaar voorbereiden door gegevens in te gaan en inhoud en gehechtheid te beheren. Tot slot kan de Agent de Interactieve Mededeling aan een postproces voorleggen.

Terwijl het voorbereiden van de Interactieve Mededeling gebruikend de Agent UI, beheert de agent de volgende aspecten van de Interactieve Mededeling in de Agent UI alvorens het aan een postproces voor te leggen:

  • Gegevens: Het lusje van Gegevens van de Agent UI toont om het even welke agent-editable variabelen en ontgrendelde eigenschappen van het model van vormgegevens in de Interactieve Mededeling. Deze variabelen/eigenschappen worden gemaakt tijdens het bewerken of maken van documentfragmenten die zijn opgenomen in de interactieve communicatie. Het tabblad Gegevens bevat ook alle velden die zijn ingebouwd in de XDP/afdruksjabloon. Het tabblad Gegevens wordt alleen weergegeven wanneer er variabelen, eigenschappen van het formuliergegevensmodel of velden in de interactieve communicatie zijn die door de agent kunnen worden bewerkt.
  • Inhoud: Op het tabblad Inhoud beheert de Agent de inhoud, zoals documentfragmenten en inhoudsvariabelen in de interactieve communicatie. De agent kan de wijzigingen in het documentfragment doorvoeren zoals is toegestaan tijdens het maken van de interactieve communicatie in de eigenschappen van die documentfragmenten. De agent kan ook een documentfragment opnieuw ordenen, toevoegen/verwijderen en pagina-einden toevoegen, indien toegestaan.
  • Bijlagen: Het lusje van Bijlagen verschijnt in de Agent UI slechts als de Interactieve Communicatie om het even welke gehechtheid heeft of de Agent bibliotheektoegang heeft. De agent mag de bijlagen wel of niet wijzigen of bewerken.

Bereid Interactieve Communicatie gebruikend de Agent UI voor prepare-interactive-communication-using-the-agent-ui

  1. Selecteren Forms > Forms & Documents.

  2. Selecteer de gewenste interactieve communicatie en selecteer Open Agent UI.

    note note
    NOTE
    De gebruikersinterface van de agent werkt slechts als geselecteerde Interactieve Communicatie een drukkanaal heeft.

    openagentiui

    Gebaseerd op de inhoud en de eigenschappen van de Interactieve Mededeling, verschijnt de agent UI met de volgende drie lusjes: Gegevens, Inhoud, en Bijlage.

    agentuitabs

    Ga door met het invoeren van gegevens, het beheren van de inhoud en het beheren van de bijlagen.

Gegevens invoeren enter-data

  1. Voer op het tabblad Gegevens de vereiste gegevens in voor variabelen, eigenschappen van het formuliergegevensmodel en velden voor de afdruksjabloon (XDP). Vul alle verplichte velden met een sterretje (*) in om de optie Verzenden knop.

    Selecteer een waarde voor een gegevensveld in de voorvertoning Interactieve communicatie om het bijbehorende gegevensveld op het tabblad Gegevens te markeren of om de andere reden.

Inhoud beheren manage-content

Beheer op het tabblad Inhoud de inhoud, zoals documentfragmenten en inhoudsvariabelen in de interactieve communicatie.

  1. Selecteer Content. Het tabblad Inhoud van de interactieve communicatie wordt weergegeven.

    agentuicontenttab

  2. Bewerk de documentfragmenten desgewenst op het tabblad Inhoud. Als u het relevante fragment in de inhoudshiërarchie de focus wilt geven, kunt u de desbetreffende regel of alinea in de voorvertoning Interactieve communicatie selecteren of het fragment rechtstreeks in de inhoudshiërarchie selecteren.

    Het documentfragment met de regel "Nu online betalen…" wordt bijvoorbeeld geselecteerd in de voorvertoning in de onderstaande afbeelding en hetzelfde documentfragment is geselecteerd op het tabblad Inhoud.

    contentmodulefocus

    Tik op Geselecteerde modules in inhoud markeren op het tabblad Inhoud of Gegevens ( highlightSelectedModesincontentcr ) linksboven in de voorvertoning kunt u de functionaliteit uitschakelen of inschakelen om naar het documentfragment te gaan wanneer in de voorvertoning op de desbetreffende tekst, alinea of gegevensveld wordt getikt of geselecteerd.

    De fragmenten die door de agent terwijl het creëren van de Interactieve Communicatie kunnen worden uitgegeven hebben de Edit Geselecteerde Inhoud ( iconeditselected content ). Selecteer het pictogram Geselecteerde inhoud bewerken om het fragment in de bewerkingsmodus te starten en er wijzigingen in aan te brengen. Gebruik de volgende opties voor het opmaken en beheren van tekst:

    Voor meer informatie over de acties beschikbaar voor diverse documentfragmenten in het gebruikersinterface van de Agent, zie Handelingen en informatie beschikbaar in de gebruikersinterface van de Agent.

  3. Als u een pagina-einde wilt toevoegen aan de afdrukuitvoer van de interactieve communicatie, plaatst u de cursor op de plaats waar u een pagina-einde wilt invoegen en selecteert u Pagina-einde voor of Pagina-einde na ( pagebreekervoor ).

    Een expliciete plaatsaanduiding voor een pagina-einde wordt ingevoegd in de interactieve communicatie. Zie het afdrukvoorbeeld voor informatie over de invloed van een expliciet pagina-einde op de interactieve communicatie.

    expliciete pagebreak

    Ga verder met het beheer van de bijlagen van de interactieve communicatie.

Bijlagen beheren manage-attachments

  1. Selecteer Attachment. De agent UI toont de beschikbare gehechtheid zoals opstelling terwijl het creëren van de Interactieve Communicatie.

    U kunt verkiezen om een gehechtheid samen met de Interactieve Mededeling niet voor te leggen door het meningspictogram te tikken en u kunt het kruis in de gehechtheid selecteren om het (als de agent wordt toegestaan om de gehechtheid te schrappen of te verbergen) van de Interactieve Mededeling te schrappen. Voor de bijlagen die verplicht zijn opgegeven tijdens het maken van de interactieve communicatie, zijn de pictogrammen Weergeven en Verwijderen uitgeschakeld.

    attachmentsagentui

  2. Selecteer de bibliotheektoegang ( bibliotheektoegang ) gebruiken om de inhoudsbibliotheek te openen en DAM-elementen in te voegen als bijlagen.

    note note
    NOTE
    Bibliotheektoegangspictogram is alleen beschikbaar als bibliotheektoegang is ingeschakeld tijdens het maken van de interactieve communicatie (in de eigenschappen Documentcontainer van het afdrukkanaal).
  3. Als de volgorde van de bijlagen niet is vergrendeld tijdens het maken van de interactieve communicatie, kunt u de bijlagen opnieuw ordenen door een bijlage te selecteren en op de pijl-omlaag en -omhoog te tikken.

  4. Met Webvoorvertoning en Afdrukvoorbeeld kunt u zien of de twee uitvoerbestanden aan uw eisen voldoen.

    Als u de voorvertoningen bevredigend vindt, selecteert u Submit om de interactieve communicatie naar een postproces te verzenden. Als u wijzigingen wilt aanbrengen, sluit u de voorvertoning af en gaat u terug naar de wijzigingen.

Tekst opmaken formattingtext

Tijdens het bewerken van een tekstfragment in de gebruikersinterface van de agent verandert de werkbalk afhankelijk van het type bewerkingen dat u wilt uitvoeren: Lettertype, Alinea of Lijst:

typeofformating, werkbalk Font, werkbalk

Font, werkbalk

Alinea, werkbalk

Alinea, werkbalk

Lijst, werkbalk

Lijst, werkbalk

Tekstgedeelten markeren/benadrukken highlightemphasize

Als u\gedeelten van tekst in een bewerkbaar fragment wilt benadrukken, selecteert u de tekst en selecteert u Markeringskleur.

highlighttextagentui

Opgemaakte tekst plakken pasteformattedtext

pasttext

Speciale tekens in tekst invoegen specialcharacters

De interface van de Agent heeft ingebouwde steun voor 210 speciale karakters gebouwd. De beheerder kan Voeg ondersteuning voor meer/aangepaste speciale tekens toe door deze aan te passen.

Oplevering van bijlage attachmentdelivery

  • Wanneer de Interactieve Communicatie gebruikend server-kant APIs als interactieve of niet-interactieve PDF wordt teruggegeven, bevat de teruggegeven PDF gehechtheid als PDF gehechtheid.
  • Wanneer een postproces verbonden aan een Interactieve Communicatie als deel van Submit gebruikend Agent UI wordt geladen, worden de gehechtheid overgegaan als Lijst<com.adobe.idp.document> inAttachmentDocs, parameter.
  • Workflows in het leveringsmechanisme, zoals e-mail en afdrukken, leveren ook bijlagen samen met de PDF-versie van de interactieve communicatie.

Handelingen en informatie beschikbaar in de gebruikersinterface van de Agent actionsagentui

Documentfragmenten document-fragments

  • Pijlen omhoog en omlaag: Pijlt om documentfragmenten omhoog of omlaag te verplaatsen in de interactieve communicatie.
  • Verwijderen: Verwijder het documentfragment uit de interactieve communicatie, indien toegestaan.
  • Pagina-einde voor (van toepassing op onderliggende fragmenten van het doelgebied): voegt pagina-einde in vóór het documentfragment.
  • Inspringen: De inspringing van een documentfragment vergroten of verkleinen.
  • Pagina-einde na (van toepassing op onderliggende fragmenten van het doelgebied): voegt pagina-einde in na het documentfragment.

docfragoptions

  • Bewerken (alleen tekstfragmenten): RTF-editor openen voor het bewerken van het tekstdocumentfragment. Zie voor meer informatie Tekst opmaken.

  • Selectie (oogpictogram): hiermee wordt het\ndocumentfragment uitgesloten van de interactieve communicatie.

  • Niet-gevulde waarden (info): geeft het aantal niet-gevulde variabelen in het documentfragment aan.

Documentfragmenten weergeven list-document-fragments

listopties

  • Lege regel invoegen: voegt nieuwe lege regel in.
  • Selectie (oogpictogram): hiermee wordt het\ndocumentfragment uitgesloten van de interactieve communicatie.
  • Opsommingstekens/nummering overslaan: inschakelen als u opsommingstekens/nummering in het documentfragment van de lijst wilt overslaan.
  • Niet-gevulde waarden (info): geeft het aantal niet-gevulde variabelen in het documentfragment aan.

Interactieve communicatie opslaan als concept save-as-draft

U kunt de Agent UI gebruiken om één of meerdere concepten voor elke Interactieve Mededeling te bewaren en het ontwerp later terug te winnen om aan het verder te werken. U kunt voor elk concept een andere naam opgeven om het te identificeren.

Adobe raadt u aan deze instructies op volgorde uit te voeren om een interactieve communicatie als concept op te slaan.

De functie Opslaan als concept inschakelen before-save-as-draft

De functie Opslaan als concept is niet standaard ingeschakeld. Voer de volgende stappen uit om de functie in te schakelen:

  1. Implementeer de ccrDocumentInstance Service Provider Interface (SPI).

    SPI laat u toe om de ontwerp versie van de Interactieve Mededeling aan het gegevensbestand met een ontwerpidentiteitskaart als uniek herkenningsteken te bewaren. Deze instructies veronderstellen dat u vroegere kennis op hoe te om een bundel te bouwen OSGi gebruikend een Geweven project hebt.

    Voor voorbeeld-SPI-implementatie raadpleegt u Voorbeeld crDocumentInstance SPI-implementatie.

  2. Openen http://<hostname>:<port>/ system/console/bundles en selecteert u Install/Update om de OSGi-bundel te uploaden. Controleer of de status van het geüploade pakket wordt weergegeven als Actief. Start de server opnieuw als de status van het pakket niet wordt weergegeven zoals Actief.

  3. Ga naar https://'[server]:[port]'/system/console/configMgr.

  4. Selecteren Create Correspondence Configuration.

  5. Selecteren Enable Save Using CCRDocumentInstanceService en selecteert u Save.

Een interactieve communicatie opslaan als concept save-as-draft-agent-ui

Voer de volgende stappen uit om een Interactieve Mededeling als ontwerp te bewaren:

  1. Selecteer een interactieve communicatie in Forms Manager en selecteer Open Agent UI.

  2. Breng aangewezen veranderingen in de Agent UI aan en selecteer Save as Draft.

  3. Geef de naam van het concept op in het dialoogvenster Name veld en selecteer Done.

Als u de interactieve communicatie eenmaal als concept hebt opgeslagen, selecteert u Save Changes om eventuele verdere wijzigingen in het concept op te slaan.

Het concept van een interactieve communicatie ophalen retrieve-draft

Nadat u een interactieve communicatie als concept hebt opgeslagen, kunt u deze ophalen om er verder aan te werken. Haal de Interactieve Mededeling terug gebruikend:

https://server:port/aem/forms/createcorrespondence.hmtl?draftid=[draftid]

[opgesteld] Verwijst naar unieke herkenningsteken voor de ontwerp versie die na het bewaren van een Interactieve Mededeling als ontwerp wordt geproduceerd.

Voorbeeld crDocumentInstance SPI-implementatie sample-ccrDocumentInstance-spi

Implementeer de ccrDocumentInstance SPI om een Interactieve Mededeling als ontwerp te bewaren. Hier volgt een voorbeeldimplementatie van de ccrDocumentInstance SPI.

package Implementation;

import com.adobe.fd.ccm.ccr.ccrDocumentInstance.api.exception.CCRDocumentException;
import com.adobe.fd.ccm.ccr.ccrDocumentInstance.api.model.CCRDocumentInstance;
import com.adobe.fd.ccm.ccr.ccrDocumentInstance.api.services.CCRDocumentInstanceService;
import org.apache.commons.lang3.StringUtils;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.*;


@Component(service = CCRDocumentInstanceService.class, immediate = true)
public class CCRDraftService implements CCRDocumentInstanceService {

    private static final Logger logger = LoggerFactory.getLogger(CCRDraftService.class);

    private HashMap<String, Object> draftDataMap = new HashMap<>();

    @Override
    public String save(CCRDocumentInstance ccrDocumentInstance) throws CCRDocumentException {
        String documentInstanceName = ccrDocumentInstance.getName();
        if (StringUtils.isNotEmpty(documentInstanceName)) {
            logger.info("Saving ccrData with name : {}", ccrDocumentInstance.getName());
            if (!CCRDocumentInstance.Status.SUBMIT.equals(ccrDocumentInstance.getStatus())) {
                ccrDocumentInstance = mySQLDataBaseServiceCRUD(ccrDocumentInstance,null, "SAVE");
            }
        } else {
            logger.error("Could not save data as draft name is empty");
        }
        return ccrDocumentInstance.getId();
    }

    @Override
    public void update(CCRDocumentInstance ccrDocumentInstance) throws CCRDocumentException {
        String documentInstanceName = ccrDocumentInstance.getName();
        if (StringUtils.isNotEmpty(documentInstanceName)) {
            logger.info("Saving ccrData with name : {}", documentInstanceName);
            mySQLDataBaseServiceCRUD(ccrDocumentInstance, ccrDocumentInstance.getId(), "UPDATE");
        } else {
            logger.error("Could not save data as draft Name is empty");
        }
    }

    @Override
    public CCRDocumentInstance get(String id) throws CCRDocumentException {
        CCRDocumentInstance cCRDocumentInstance;
        if (StringUtils.isEmpty(id)) {
            logger.error("Could not retrieve data as draftId is empty");
            cCRDocumentInstance = null;
        } else {
            cCRDocumentInstance = mySQLDataBaseServiceCRUD(null, id,"GET");
        }
        return cCRDocumentInstance;
    }

    @Override
    public List<CCRDocumentInstance> getAll(String userId, Date creationTime, Date updateTime,
                                            Map<String, Object> optionsParams) throws CCRDocumentException {
        List<CCRDocumentInstance> ccrDocumentInstancesList = new ArrayList<>();

        HashMap<String, Object> allSavedDraft = mySQLGetALLData();
        for (String key : allSavedDraft.keySet()) {
            ccrDocumentInstancesList.add((CCRDocumentInstance) allSavedDraft.get(key));
        }
        return ccrDocumentInstancesList;
    }

    //The APIs call the service in the database using the following section.
    private CCRDocumentInstance mySQLDataBaseServiceCRUD(CCRDocumentInstance ccrDocumentInstance,String draftId, String method){
        if(method.equals("SAVE")){

            String autoGenerateId = draftDataMap.size() + 1 +"";
            ccrDocumentInstance.setId(autoGenerateId);
            draftDataMap.put(autoGenerateId, ccrDocumentInstance);
            return ccrDocumentInstance;

        }else if (method.equals("UPDATE")){

            draftDataMap.put(ccrDocumentInstance.getId(), ccrDocumentInstance);
            return ccrDocumentInstance;

        }else if(method.equals("GET")){

            return (CCRDocumentInstance) draftDataMap.get(draftId);

        }
        return null;
    }

    private HashMap<String, Object> mySQLGetALLData(){
        return draftDataMap;
    }
}

De save, update, get, en getAll De verrichtingen roepen de gegevensbestanddienst om een Interactieve Mededeling als ontwerp te bewaren, een Interactieve Mededeling bij te werken, gegevens van het gegevensbestand terug te winnen, en gegevens voor alle Interactieve Mededelingen terug te winnen beschikbaar in het gegevensbestand. Dit voorbeeld gebruikt mySQLDataBaseServiceCRUD als de naam van de databaseservice.

In de volgende tabel wordt het voorbeeld uitgelegd ccrDocumentInstance SPI-implementatie. Het toont aan hoe save, update, get, en getAll De verrichtingen roepen de gegevensbestanddienst in de steekproefimplementatie.

Bewerking
Voorbeelden van databaseservices

U kunt een concept voor een interactieve communicatie maken of deze rechtstreeks verzenden. De API voor de opslagbewerking controleert of de interactieve communicatie als concept wordt verzonden en of deze een conceptnaam bevat. De API roept dan de dienst mySQLDataBaseServiceCRUD met sparen als inputmethode.

De mySQLDataBaseServiceCRUD-service verifieert Opslaan als de invoermethode en genereert een automatisch gegenereerde concept-id en retourneert deze naar AEM. De logica om een ontwerpID te produceren kan variëren gebaseerd op het gegevensbestand.

De API voor de updateverrichting wint de status van Interactief Communicatie ontwerp terug en controleert als de Interactieve Communicatie een ontwerpnaam omvat. De API roept de mySQLDataBaseServiceCRUD-service aan om die status in de database bij te werken.

De mySQLDataBaseServiceCRUD dienst verifieert Update als inputmethode en bewaart de status van Interactief Communicatie ontwerp in het gegevensbestand.

De API voor de get-bewerking controleert of de interactieve communicatie een concept-id bevat. De API roept dan de dienst mySQLDataBaseServiceCRUD met krijgen als inputmethode om de gegevens voor de Interactieve Mededeling terug te winnen.

De mySQLDataBaseServiceCRUD dienst verifieert krijgen als inputmethode en wint de gegevens voor de Interactieve Communicatie terug die op ontwerpidentiteitskaart wordt gebaseerd.

De API voor de bewerking getAll roept de mySQLGetALLData-service aan om gegevens op te halen voor alle interactieve communicatie die in de database is opgeslagen.

De mySQLGetALLData-service haalt gegevens op voor alle interactieve communicatie die in de database is opgeslagen.

Hieronder ziet u een voorbeeld van de pom.xml bestand dat deel uitmaakt van de implementatie:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0"
         xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.adobe.livecycle</groupId>
    <artifactId>draft-sample</artifactId>
    <version>2.0.0-SNAPSHOT</version>

    <name>Interact</name>
    <packaging>bundle</packaging>

    <dependencies>
        <dependency>
            <groupId>com.adobe.aemfd</groupId>
            <artifactId>aemfd-client-sdk</artifactId>
            <version>6.0.160</version>
        </dependency>
    </dependencies>


    <!-- ====================================================================== -->
    <!-- B U I L D D E F I N I T I O N -->
    <!-- ====================================================================== -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>3.3.0</version>
                <extensions>true</extensions>
                <executions>
                    <!--Configure extra execution of 'manifest' in process-classes phase to make sure SCR metadata is generated before unit test runs-->
                    <execution>
                        <id>scr-metadata</id>
                        <goals>
                            <goal>manifest</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <exportScr>true</exportScr>
                    <instructions>
                        <!-- Enable processing of OSGI DS component annotations -->
                        <_dsannotations>*</_dsannotations>
                        <!-- Enable processing of OSGI metatype annotations -->
                        <_metatypeannotations>*</_metatypeannotations>
                        <Bundle-SymbolicName>${project.groupId}-${project.artifactId}</Bundle-SymbolicName>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>autoInstall</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>maven-sling-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>install-bundle</id>
                                <phase>install</phase>
                                <goals>
                                    <goal>install</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
NOTE
Zorg ervoor dat u de aemfd-client-sdk afhankelijkheid van 6,0,160 in de pom.xml bestand.
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2