Förbereda och skicka interaktiv kommunikation med agentgränssnittet prepare-and-send-interactive-communication-using-the-agent-ui
Agentgränssnittet gör att agenterna kan förbereda och skicka interaktiv kommunikation till postprocessen. Agenten gör de ändringar som behövs och skickar den interaktiva kommunikationen till en postprocess, som e-post eller utskrift.
Ökning overview
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 prepare-interactive-communication-using-the-agent-ui
-
Välj Forms > Forms & Documents.
-
Välj lämplig interaktiv kommunikation och välj Open Agent UI.
note note NOTE Agentgränssnittet fungerar bara om den valda interaktiva kommunikationen har en utskriftskanal. Utifrån innehållet och egenskaperna i det interaktiva kommunikationen visas agentgränssnittet med följande tre flikar: Data, Innehåll och Bifogad fil.
Fortsätt till att ange data, hantera innehållet och hantera bilagor.
Ange data enter-data
-
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.
Markera ett datafältvärde i förhandsvisningen av interaktiv kommunikation om du vill markera motsvarande datafält på fliken Data eller omvänt.
Hantera innehåll manage-content
På fliken Innehåll hanterar du innehåll som dokumentfragment och innehållsvariabler i den interaktiva kommunikationen.
-
Välj Content. Fliken Innehåll i den interaktiva kommunikationen visas.
-
Redigera dokumentfragmenten efter behov på fliken Innehåll. Om du vill fokusera på det relevanta avsnittet i innehållshierarkin kan du antingen markera den relevanta raden eller det relevanta stycket i förhandsvisningen av interaktiv kommunikation eller välja avsnittet direkt i innehållshierarkin.
Dokumentfragmentet med raden "Gör en betalning online nu …" markeras i förhandsvisningen i bilden nedan och samma dokumentfragment har markerats på fliken Innehåll.
Genom att trycka på Markera valda moduler i innehållet på fliken Innehåll eller Data ( ) 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 kan redigeras av agenten när interaktiv kommunikation skapas har Redigera markerat innehåll ( ). Välj ikonen Redigera markerat innehåll om du vill 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.
-
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 ( ).
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.
Fortsätt att hantera de bifogade filerna i den interaktiva kommunikationen.
Hantera bifogade filer manage-attachments
-
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 markera 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.
-
Välj biblioteksåtkomst ( ) för att komma åt innehållsbiblioteket och infoga DAM-resurser som bilagor.
note note NOTE Ikonen Biblioteksåtkomst är bara tillgänglig om biblioteksåtkomst var aktiverat när interaktiv kommunikation skapades (i dokumentbehållaregenskaperna i utskriftskanalen). -
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.
-
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 väljer 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 formattingtext
När du redigerar ett textfragment i agentens användargränssnitt ändras verktygsfältet beroende på vilken typ av redigeringar du väljer att göra: Teckensnitt, Stycke eller Lista:
Verktygsfältet Teckensnitt
Verktygsfältet Stycke
Verktygsfältet Lista
Markera/framhäv delar av text highlightemphasize
Markera texten och välj Markera färg om du vill framhäva delar av texten i ett redigerbart fragment.
Klistra in formaterad text pasteformattedtext
Infoga specialtecken i text specialcharacters
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 attachmentdelivery
- 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 actionsagentui
Dokumentfragment document-fragments
- Upp- och nedpilar: Pilar som flyttar 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.
-
Redigera (endast textfragment): Öppna RTF-redigeraren för redigering av 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 list-document-fragments
- Infoga tom rad: Infogar en ny tom rad.
- Markering (ögonikon): Inkluderar\exkluderar dokumentfragment från interaktiv kommunikation.
- Hoppa över punkter/numrering: Aktivera om du vill hoppa över punkter/numrering i listdokumentfragmentet.
- Ofyllda värden (info): Anger antalet ofyllda variabler i dokumentfragmentet.
Spara interaktiv kommunikation som utkast save-as-draft
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 before-save-as-draft
Funktionen Spara som utkast är inte aktiverad som standard. Gör så här för att aktivera funktionen:
-
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.
-
Öppna
http://<hostname>:<port>/ system/console/bundles
och markera 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. -
Gå till
https://'[server]:[port]'/system/console/configMgr
. -
Välj Create Correspondence Configuration.
-
Välj Enable Save Using CCRDocumentInstanceService och markera Save.
Spara interaktiv kommunikation som utkast save-as-draft-agent-ui
Så här sparar du en interaktiv kommunikation som ett utkast:
-
Välj en interaktiv kommunikation i Forms Manager och välj Open Agent UI.
-
Gör lämpliga ändringar i agentens användargränssnitt och välj Save as Draft.
-
Ange namnet på utkastet i dialogrutan Name fält och markera Done.
När du har sparat det interaktiva meddelandet som ett utkast väljer du Save Changes om du vill spara ytterligare ändringar i utkastet.
Hämta utkastet till interaktiv kommunikation retrieve-draft
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 sample-ccrDocumentInstance-spi
Implementera ccrDocumentInstance
SPI för att spara interaktiv kommunikation som 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
, get
och 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
, get
och getAll
-åtgärder anropar databastjänsten i exempelimplementeringen.
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>
aemfd-client-sdk
beroende av 6.0.160 i pom.xml
-fil.