Förbereda och skicka interaktiv kommunikation med agentens användargränssnitt

Agentgränssnittet gör att agenterna kan förbereda och skicka interaktiv kommunikation till postprocessen. Agenten gör de ändringar som krävs och skickar den interaktiva kommunikationen till en postprocess, som e-post eller utskrift.

Översikt

När en interaktiv kommunikation har skapats kan agenten öppna den interaktiva kommunikationen i agentgränssnittet och förbereda en mottagarspecifik kopia genom att ange data och hantera innehåll och bilagor. Slutligen kan agenten skicka den interaktiva kommunikationen till en postprocess.

När agenten förbereder den interaktiva kommunikationen med hjälp av agentgränssnittet hanterar agenten följande aspekter av den interaktiva kommunikationen i agentgränssnittet innan den skickas till en postprocess:

  • Data: Fliken Data i agentanvändargränssnittet visar alla variabler som kan redigeras av agenten och olåsta egenskaper för formulärdatamodellen i den interaktiva kommunikationen. Dessa variabler/egenskaper skapas när du redigerar eller skapar dokumentfragment som ingår i den interaktiva kommunikationen. Fliken Data innehåller även fält som är inbyggda i XDP/utskriftskanalmallen. Fliken Data visas bara när det finns variabler, formulärdatamodegenskaper eller fält i den interaktiva kommunikationen som kan redigeras av agenten.
  • Innehåll: På fliken Innehåll hanterar agenten innehåll som dokumentfragment och innehållsvariabler i den interaktiva kommunikationen. Agenten kan göra de ändringar som är tillåtna i dokumentfragmentet när den interaktiva kommunikationen skapas i egenskaperna för dessa dokumentfragment. Agenten kan också ändra ordning på, lägga till/ta bort ett dokumentfragment och lägga till sidbrytningar, om det är tillåtet.
  • Bifogade filer: Fliken Bifogade filer visas bara i agentgränssnittet om den interaktiva kommunikationen har några bilagor eller agenten har biblioteksåtkomst. Agenten får ändra eller redigera de bifogade filerna, men får inte göra det.

Förbereda interaktiv kommunikation med hjälp av agentgränssnittet

  1. Välj Forms > Forms & Documents.

  2. Välj lämplig interaktiv kommunikation och tryck Open Agent UI.

    OBSERVERA

    Agentgränssnittet fungerar bara om den valda interaktiva kommunikationen har en utskriftskanal.

    openagentiui

    Agentgränssnittet visas med följande tre flikar baserat på innehållet och egenskaperna i det interaktiva kommunikationen: Data, innehåll och bifogad fil.

    agentuitabs

    Fortsätt till att ange data, hantera innehållet och hantera bilagor.

Ange data

  1. På fliken Data anger du data för variabler, formulärdatamodegenskaper och utskriftsmallfält (XDP) efter behov. Fyll i alla obligatoriska fält markerade med en asterisk (*) för att aktivera Skicka -knappen.

    Tryck på ett datafältvärde i förhandsvisningen av interaktiv kommunikation för att markera motsvarande datafält på fliken Data eller vice versa.

Hantera innehåll

På fliken Innehåll hanterar du innehåll som dokumentfragment och innehållsvariabler i den interaktiva kommunikationen.

  1. Välj Content. Fliken Innehåll i den interaktiva kommunikationen visas.

    agentuicontenttab

  2. Redigera dokumentfragmenten efter behov på fliken Innehåll. Om du vill fokusera på det relevanta avsnittet i innehållshierarkin kan du antingen trycka på den relevanta raden eller det relevanta stycket i förhandsvisningen av interaktiv kommunikation eller trycka på avsnittet direkt i innehållshierarkin.

    Dokumentfragmentet med raden"Gör en betalning online nu … " är markerat i förhandsvisningen i bilden nedan och samma dokumentfragment har markerats på fliken Innehåll.

    contentmodulefocus

    Genom att trycka på Markera valda moduler i innehållet på fliken Innehåll eller Data ( highlightselectedmodulesincontentccr) i det övre vänstra hörnet av förhandsgranskningen kan du inaktivera eller aktivera funktioner för att gå till dokumentfragmentet när användaren knackar på eller markerar den relevanta texten, stycket eller datafältet i förhandsvisningen.

    Fragmenten som agenten kan redigera när den interaktiva kommunikationen skapas har Redigera markerat innehåll ( iconeditselectedContent). Tryck på ikonen Redigera markerat innehåll för att starta fragmentet i redigeringsläge och göra ändringar i det. Använd följande alternativ för att formatera och hantera text:

    Mer information om tillgängliga åtgärder för olika dokumentfragment i användargränssnittet för agenten finns i Åtgärder och information som finns i agentens användargränssnitt.

  3. Om du vill lägga till en sidbrytning i utskriften av det interaktiva dokumentet placerar du markören där du vill infoga en sidbrytning och väljer Sidbrytning före eller Sidbrytning efter ( pagebreakbefore efter).

    En explicit platshållare för sidbrytningar infogas i interaktiv kommunikation. Om du vill se hur en explicit sidbrytning påverkar den interaktiva kommunikationen läser du i förhandsvisningen.

    explicit pagebreak

    Fortsätt att hantera de bifogade filerna i den interaktiva kommunikationen.

Hantera bifogade filer

  1. Välj Attachment. Agentgränssnittet visar de tillgängliga bifogade filerna som de har konfigurerats när interaktiv kommunikation skapas.

    Du kan välja att inte skicka en bifogad fil tillsammans med den interaktiva kommunikationen genom att trycka på visningsikonen och du kan trycka på krysset i den bifogade filen för att ta bort den (om agenten får ta bort eller dölja den bifogade filen) från den interaktiva kommunikationen. Ikonerna Visa och Ta bort är inaktiverade för bilagor som anges som obligatoriska när interaktiv kommunikation skapas.

    attachmentsagentui

  2. Tryck på Library Access ( libraryaccess) för att komma åt innehållsbiblioteket och infoga DAM-resurser som bilagor.

    OBSERVERA

    Ikonen Biblioteksåtkomst är bara tillgänglig om biblioteksåtkomst var aktiverat när interaktiv kommunikation skapades (i dokumentbehållaregenskaperna i utskriftskanalen).

  3. Om ordningen på de bifogade filerna inte var låst när du skapade den interaktiva kommunikationen kan du ändra ordningen på de bifogade filerna genom att markera en bifogad fil och trycka på nedåtpilen och uppåtpilen.

  4. Använd Förhandsgranska via webben och Förhandsgranska för att se om de två utdatafilerna är som du vill ha dem.

    Om du tycker att förhandsvisningarna är tillräckliga trycker du Submit för att skicka/skicka interaktiv kommunikation till en postprocess. Om du vill göra ändringar avslutar du förhandsgranskningen och går tillbaka till ändringarna.

Formatera text

När du redigerar ett textfragment i agentgränssnittet ändras verktygsfältet beroende på vilken typ av redigeringar du väljer att göra: Teckensnitt, Stycke eller Lista:

typeofformattverktygsfält Verktygsfältet Teckensnitt

Verktygsfältet Teckensnitt

Verktygsfältet Stycke

Verktygsfältet Stycke

Verktygsfältet Lista

Verktygsfältet Lista

Markera/framhäv textdelar

Markera texten och tryck på Markera färg om du vill framhäva delar av texten i ett redigerbart fragment.

highlighttextagentui

Klistra in formaterad text

inklistrad text

Infoga specialtecken i text

Agentgränssnittet har inbyggt stöd för 210 specialtecken. Administratören kan lägg till stöd för fler/anpassade specialtecken genom anpassning.

Leverans av bifogade filer

  • När den interaktiva kommunikationen återges med hjälp av API:er på serversidan som en interaktiv eller icke-interaktiv PDF, innehåller den återgivna PDF bilagor som PDF.
  • När en inläggsprocess som är kopplad till en interaktiv kommunikation läses in som en del av användargränssnittet för Skicka med agent, skickas bilagor som listan<com.adobe.idp.document> inAttachmentDocs-parameter.
  • Arbetsflöden för leveransfunktion, som e-post och utskrift, ger även bilagor tillsammans med PDF-versionen av Interactive Communication.

Åtgärder och information som finns i agentens användargränssnitt

Dokumentfragment

  • Upp- och nedpilar: Pilar för att flytta dokumentfragment uppåt eller nedåt i interaktiv kommunikation.
  • Ta bort: Ta bort dokumentfragmentet från den interaktiva kommunikationen om det tillåts.
  • Sidbrytning före (gäller för underordnade fragment av målområdet): Infogar sidbrytning före dokumentfragmentet.
  • Indrag: Öka eller minska indrag för ett dokumentfragment.
  • Sidbrytning efter (gäller för underordnade fragment av målområdet): Infogar sidbrytning efter dokumentfragmentet.

docfragoptions

  • Redigera (endast textfragment): Öppna RTF-redigerare för att redigera textdokumentfragmentet. Mer information finns i Formatera text.

  • Markering (ögonikon): Inkluderar\exkluderar dokumentfragment från interaktiv kommunikation.

  • Ofyllda värden (info): Anger antalet ofyllda variabler i dokumentfragmentet.

Visa dokumentfragment

listalternativ

  • Infoga tom rad: Infogar en ny tom rad.
  • Markering (ögonikon): Inkluderar\exkluderar dokumentfragment från interaktiv kommunikation.
  • Hoppa över punkter/nummer: Aktivera det här alternativet om du vill hoppa över punkter/numrering i listdokumentfragmentet.
  • Ofyllda värden (info): Anger antalet ofyllda variabler i dokumentfragmentet.

Spara interaktiv kommunikation som utkast

Du kan använda agentgränssnittet för att spara ett eller flera utkast för varje interaktiv kommunikation och hämta utkastet senare för att fortsätta arbeta med det. Du kan ange olika namn för varje utkast för att identifiera det.

Adobe rekommenderar att du kör dessa instruktioner i följd för att spara ett interaktivt meddelande som ett utkast.

Aktivera funktionen Spara som utkast

Funktionen Spara som utkast är inte aktiverad som standard. Gör så här för att aktivera funktionen:

  1. Implementera ccrDocumentInstance SPI (Service Provider Interface).

    Med SPI kan du spara utkastet till version av den interaktiva kommunikationen i databasen med ett utkast-ID som unik identifierare. Dessa instruktioner förutsätter att du har kunskap om hur du bygger ett OSGi-paket med ett Maven-projekt.

    Exempel på SPI-implementering finns i Exempel på SPI-implementering av ccrDocumentInstance.

  2. Öppna http://<hostname>:<port>/ system/console/bundles och trycka Install/Update för att ladda upp OSGi-paketet. Kontrollera att det överförda paketets status visas som Aktiv. Starta om servern om paketets status inte visas som Aktiv.

  3. Gå till https://'[server]:[port]'/system/console/configMgr.

  4. Tryck på Create Correspondence Configuration.

  5. Välj Enable Save Using CCRDocumentInstanceService och trycka Save.

Spara interaktiv kommunikation som utkast

Så här sparar du en interaktiv kommunikation som ett utkast:

  1. Välj en interaktiv kommunikation i Forms Manager och tryck på Open Agent UI.

  2. Gör lämpliga ändringar i agentens användargränssnitt och tryck på Save as Draft.

  3. Ange namnet på utkastet i dialogrutan Name fält och knacka Done.

När du har sparat interaktiv kommunikation som ett utkast trycker du Save Changes om du vill spara ytterligare ändringar i utkastet.

Hämta utkastet till interaktiv kommunikation

När du har sparat ett utkast för interaktiv kommunikation kan du hämta det och fortsätta arbeta med det. Hämta interaktiv kommunikation med:

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

[dravtid] refererar till den unika identifieraren för utkastet som genereras när ett interaktivt meddelande har sparats som ett utkast.

Exempel på SPI-implementering av ccrDocumentInstance

Implementera ccrDocumentInstance SPI för att spara en interaktiv kommunikation som ett utkast. Följande är ett exempel på implementering av 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;
    }
}

The save, update, getoch getAll -åtgärder anropar databastjänsten för att spara en interaktiv kommunikation som ett utkast, uppdatera en interaktiv kommunikation, hämta data från databasen och hämta data för all interaktiv kommunikation som är tillgänglig i databasen. Det här exemplet använder mySQLDataBaseServiceCRUD som namnet på databastjänsten.

I följande tabell förklaras exemplet ccrDocumentInstance SPI-implementering. Det visar hur save, update, getoch getAll -åtgärder anropar databastjänsten i exempelimplementeringen.

Åtgärd

Exempel på databastjänst

Du kan antingen skapa ett utkast för en interaktiv kommunikation eller skicka det direkt. API:t för åtgärden Spara kontrollerar om den interaktiva kommunikationen skickas som ett utkast och innehåller ett utkastnamn. API:t anropar sedan tjänsten mySQLDataBaseServiceCRUD med Spara som indatametod.



[#$sd1_sf1_dp9]

Tjänsten mySQLDataBaseServiceCRUD verifierar Spara som indatametod och genererar ett autogenererat utkast-ID och returnerar det till AEM. Logiken som används för att generera ett utkast-ID kan variera beroende på databasen.



[#$sd1_sf1_dp13]

API:t för uppdateringsåtgärden hämtar status för Interactive Communication-utkastet och kontrollerar om Interactive Communication innehåller ett utkastsnamn. API:t anropar tjänsten mySQLDataBaseServiceCRUD för att uppdatera statusen i Database.



[#$sd1_sf1_dp17]

Tjänsten mySQLDataBaseServiceCRUD verifierar Update som indatametod och sparar statusen för Interactive Communication-utkastet i databasen.

API:t för get-åtgärden kontrollerar om den interaktiva kommunikationen innehåller ett utkast-ID. API:t anropar sedan tjänsten mySQLDataBaseServiceCRUD med Get som indatametod för att hämta data för den interaktiva kommunikationen.

Tjänsten mySQLDataBaseServiceCRUD verifierar Get som indatametod och hämtar data för den interaktiva kommunikationen baserat på utkast-ID.



[#$sd1_sf1_dp29]

API:t för åtgärden getAll anropar tjänsten mySQLGetALLData för att hämta data för all interaktiv kommunikation som har sparats i databasen.

Tjänsten mySQLGetALLData hämtar data för alla interaktiva kommunikationer som har sparats i databasen.



[#$sd1_sf1_dp37]

Följande är ett exempel på pom.xml fil som ingår i implementeringen:

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

Se till att du uppdaterar aemfd-client-sdk beroende av 6.0.160 i pom.xml -fil.

På denna sida