Show Menu
ARGOMENTI×

Preparazione e invio di comunicazioni interattive tramite l'interfaccia utente dell'agente

L'interfaccia utente dell'agente consente agli agenti di preparare e inviare la comunicazione interattiva al processo di post. L'agente apporta le modifiche necessarie secondo quanto consentito e invia la comunicazione interattiva a un processo di pubblicazione, ad esempio e-mail o stampa.

Panoramica

Dopo aver creato una comunicazione interattiva, l'agente può aprire la comunicazione interattiva nell'interfaccia utente dell'agente e preparare una copia specifica per il destinatario immettendo i dati e gestendo il contenuto e gli allegati. Infine, l'agente può inviare la comunicazione interattiva a un processo di post.
Durante la preparazione della comunicazione interattiva tramite l'interfaccia utente dell'agente, l'agente gestisce i seguenti aspetti della comunicazione interattiva nell'interfaccia utente dell'agente prima di inviarla a un processo di post:
  • Dati : Nella scheda Dati dell'interfaccia utente dell'agente vengono visualizzate tutte le variabili modificabili dall'agente e le proprietà del modello di dati del modulo sbloccato nella comunicazione interattiva. Queste variabili/proprietà vengono create durante la modifica o la creazione di frammenti di documento inclusi nella comunicazione interattiva. La scheda Dati include anche tutti i campi creati nel modello XDP/canale di stampa. La scheda Dati viene visualizzata solo quando sono presenti variabili, proprietà del modello dati del modulo o campi nella comunicazione interattiva modificabili dall'agente.
  • Contenuto : Nella scheda Contenuto, l'agente gestisce il contenuto, ad esempio frammenti di documento e variabili di contenuto, nella comunicazione interattiva. Durante la creazione della comunicazione interattiva nelle proprietà di tali frammenti di documento, l'agente può apportare le modifiche desiderate nel frammento di documento. L'agente può inoltre riordinare, aggiungere o rimuovere un frammento di documento e aggiungere interruzioni di pagina, se consentito.
  • Allegati : La scheda Allegati viene visualizzata nell'interfaccia utente dell'agente solo se la comunicazione interattiva contiene degli allegati o se l'agente dispone dell'accesso alla libreria. L'agente può o non può essere autorizzato a modificare gli allegati.

Preparazione della comunicazione interattiva tramite l’interfaccia utente dell’agente

  1. Selezionate Forms > Forms e documenti .
  2. Selezionate la comunicazione interattiva appropriata e toccate Apri interfaccia utente agente.
    L’interfaccia utente dell’agente funziona solo se la comunicazione interattiva selezionata dispone di un canale di stampa.
    In base al contenuto e alle proprietà della comunicazione interattiva, l'interfaccia utente dell'agente viene visualizzata con le seguenti tre schede: Dati, contenuti e allegati.
    Immettete i dati, gestite il contenuto e gestite gli allegati.

Inserisci dati

  1. Nella scheda Dati, immettere i dati per le variabili, le proprietà del modello dati del modulo e i campi del modello di stampa (XDP), a seconda delle necessità. Compila tutti i campi obbligatori contrassegnati da un asterisco (*) per abilitare il pulsante Invia .
    Toccate il valore di un campo dati nell’anteprima della comunicazione interattiva per evidenziare il campo dati corrispondente nella scheda Dati o viceversa.

Gestione contenuto

Nella scheda Contenuto, gestite il contenuto, ad esempio frammenti di documento e variabili di contenuto, nella comunicazione interattiva.
  1. Select Content . Viene visualizzata la scheda del contenuto della comunicazione interattiva.
  2. Modificare i frammenti di documento, come necessario, nella scheda Contenuto. Per attivare il frammento rilevante nella gerarchia dei contenuti, è possibile toccare la riga o il paragrafo corrispondente nell'anteprima della comunicazione interattiva oppure toccare il frammento direttamente nella gerarchia Contenuto.
    Ad esempio, il frammento di documento con la riga "Effettuare un pagamento online ora... " è selezionato nell'anteprima nell'immagine seguente e lo stesso frammento di documento è stato selezionato nella scheda Contenuto.
    Nella scheda Contenuto o Dati, toccando Evidenzia moduli selezionati nel contenuto ( ) in alto a sinistra dell'anteprima, è possibile disattivare o abilitare la funzionalità per passare al frammento di documento quando testo, paragrafo o campo di dati pertinenti vengono toccati o selezionati nell'anteprima.
    I frammenti che possono essere modificati dall’agente durante la creazione della comunicazione interattiva sono contrassegnati dall’icona Modifica contenuto selezionato ( ). Toccate l’icona Modifica contenuto selezionato per avviare il frammento in modalità di modifica e apportare le modifiche necessarie. Utilizzate le seguenti opzioni per formattare e gestire il testo:
    Per ulteriori informazioni sulle azioni disponibili per vari frammenti di documento nell'interfaccia utente di Agent, vedere Azioni e informazioni disponibili nell'interfaccia utente di Agent.
  3. Per aggiungere un'interruzione di pagina all'output di stampa della comunicazione interattiva, posizionare il cursore nel punto in cui si desidera inserire un'interruzione di pagina e selezionare Interruzione di pagina prima o Interruzione di pagina dopo ( ).
    Nella comunicazione interattiva viene inserito un segnaposto per interruzione di pagina esplicito. Per vedere in che modo un'interruzione di pagina esplicita influisce sulla comunicazione interattiva, consultate l'anteprima di stampa.
    Continuate a gestire gli allegati della comunicazione interattiva.

Gestione allegati

  1. Selezionare Allegato . L'interfaccia utente dell'agente visualizza gli allegati disponibili come configurati durante la creazione della comunicazione interattiva.
    È possibile scegliere di non inviare un allegato insieme alla comunicazione interattiva toccando l'icona della vista e toccando la croce nell'allegato per eliminarlo (se l'agente può eliminare o nascondere l'allegato) dalla comunicazione interattiva. Per gli allegati specificati come obbligatori durante la creazione della comunicazione interattiva, le icone Visualizza ed Elimina sono disattivate.
  2. Toccate l'icona Accesso libreria) per accedere alla libreria Contenuto per inserire risorse DAM come allegati.
    L'icona Accesso libreria è disponibile solo se l'accesso alla libreria è stato abilitato durante la creazione della comunicazione interattiva (nelle proprietà Contenitore documento del canale Stampa).
  3. Se l'ordine degli allegati non era bloccato durante la creazione della comunicazione interattiva, è possibile riordinare gli allegati selezionando un allegato e toccando le frecce verso il basso e verso l'alto.
  4. Utilizzate Anteprima Web e Anteprima di stampa per verificare se le due uscite sono conformi alle vostre esigenze.
    Se ritenete che le anteprime siano soddisfacenti, toccate Invia per inviare/inviare la comunicazione interattiva a un processo di pubblicazione. Oppure, per apportare modifiche, uscire dall’anteprima per tornare alle modifiche apportate.

Formattazione del testo

Durante la modifica di un frammento di testo nell’interfaccia utente dell’agente, la barra degli strumenti cambia a seconda del tipo di modifiche che si desidera apportare: Font, Paragrafo o Elenco:
, barra degli strumenti
Barra dei font
Barra degli strumenti Paragrafo
Elenco, barra degli strumenti

Evidenziare/enfatizzare parti di testo

Per evidenziare\enfatizzare parti di testo in un frammento modificabile, selezionare il testo e toccare Evidenzia colore.

Incolla testo formattato

Inserire caratteri speciali nel testo

L'interfaccia utente dell'agente supporta 210 caratteri speciali. L'amministratore può aggiungere il supporto per più o meno caratteri speciali personalizzati in base alla personalizzazione .

Consegna dell'allegato

  • Quando viene eseguito il rendering della comunicazione interattiva utilizzando le API lato server come PDF interattivo o non interattivo, il PDF di cui è stato effettuato il rendering contiene allegati come allegati PDF.
  • Quando un processo di post associato a una comunicazione interattiva viene caricato come parte dell'interfaccia utente Invia tramite agente, gli allegati vengono passati come parametro List<com.adobe.idp.Document> inAttachmentDocs.
  • I flussi di lavoro che utilizzano il meccanismo di distribuzione, come l'e-mail e la stampa, distribuiscono anche gli allegati insieme alla versione PDF della comunicazione interattiva.

Azioni e informazioni disponibili nell’interfaccia utente dell’agente

Document fragments

  • Frecce Su/Giù: Frecce per spostare i frammenti di documento verso l’alto o il basso nella comunicazione interattiva.
  • Elimina : Se consentito, eliminare il frammento di documento dalla comunicazione interattiva.
  • Interruzione di pagina prima (applicabile ai frammenti secondari dell'area di destinazione): Inserisce un'interruzione di pagina prima del frammento del documento.
  • Rientro : Aumentare o diminuire il rientro di un frammento di documento.
  • Interruzione di pagina dopo (applicabile ai frammenti secondari dell'area di destinazione): Inserisce un'interruzione di pagina dopo il frammento del documento.
  • Modifica (solo frammenti di testo): Aprire l'editor Rich Text per modificare il frammento del documento di testo. Per ulteriori informazioni, vedere Formattazione del testo .
  • Selezione (icona occhio): Include\esclude frammento di documento dalla comunicazione interattiva.
  • Valori non compilati (info): Indica il numero di variabili non compilate nel frammento di documento.

Elenca frammenti di documento

  • Inserisci riga vuota: Inserisce una nuova riga vuota.
  • Selezione (icona occhio): Include\esclude frammento di documento dalla comunicazione interattiva.
  • Ignora elenchi puntati/numerati: Consente di saltare elenchi puntati/numerati nel frammento di documento elenco.
  • Valori non compilati (info): Indica il numero di variabili non compilate nel frammento di documento.

Salva le comunicazioni interattive come bozza

È possibile utilizzare l'interfaccia utente agente per salvare una o più bozze per ogni comunicazione interattiva e recuperare la bozza in un secondo momento per continuare a lavorarci. È possibile specificare un nome diverso per ciascuna bozza per identificarla.
Adobe consiglia di eseguire queste istruzioni in sequenza per salvare correttamente una comunicazione interattiva come bozza.

Abilitare la funzione Salva come bozza

Per impostazione predefinita, la funzione Salva come bozza non è abilitata. Per attivare la funzione, effettuate le seguenti operazioni:
  1. Implementare l'interfaccia ccrDocumentInstance Service Provider Interface (SPI).
    L'SPI consente di salvare la versione bozza della comunicazione interattiva nel database con un ID bozza come identificatore univoco. Queste istruzioni presuppongono di avere già una conoscenza su come creare un bundle OSGi utilizzando un progetto Maven.
    Per un esempio di implementazione SPI, consultate Esempio di implementazione SPI di ccrDocumentInstance.
  2. Aprite http://<hostname>:<port>/ system/console/bundles e toccate Installa/Aggiorna per caricare il bundle OSGi. Verificate che lo stato del pacchetto caricato sia Attivo . Riavviate il server se lo stato del pacchetto non è Attivo .
  3. Passa a https://'[server]:[port]'/system/console/configMgr .
  4. Toccate Crea configurazione corrispondenza.
  5. Selezionate Abilita salvataggio con CCRDocumentInstanceService e toccate Salva .

Salvataggio di una comunicazione interattiva come bozza

Per salvare una comunicazione interattiva come bozza, effettuate le seguenti operazioni:
  1. Selezionate una comunicazione interattiva in Forms Manager e toccate Apri interfaccia utente agente.
  2. Apportate le modifiche necessarie nell'interfaccia utente dell'agente e toccate Salva come bozza .
  3. Specificate il nome della bozza nel campo Nome e toccate Fine .
Dopo aver salvato la comunicazione interattiva come bozza, toccate Salva modifiche per salvare eventuali ulteriori modifiche alla bozza.

Recuperare la bozza di una comunicazione interattiva

Dopo aver salvato una comunicazione interattiva come bozza, potete recuperarla per continuare a lavorarci. Recuperate la comunicazione interattiva utilizzando:
https://server:port/aem/forms/createcorrespondence.hmtl?draftid=[draftid]
# si riferisce all'identificatore univoco per la versione bozza che viene generata dopo il salvataggio di una comunicazione interattiva come bozza.
Se dopo il salvataggio come bozza apportate delle modifiche alla comunicazione interattiva, la versione bozza non viene aperta.

Esempio di implementazione SPI di ccrDocumentInstance

Implementate lo ccrDocumentInstance SPI per salvare una comunicazione interattiva come bozza. Esempio di implementazione dell’ 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;
    }
}

Le save operazioni, update get e getAll le operazioni richiamano il servizio di database per salvare una comunicazione interattiva come bozza, aggiornare una comunicazione interattiva, recuperare i dati dal database e recuperare i dati per tutte le comunicazioni interattive disponibili nel database. Questo esempio utilizza mySQLDataBaseServiceCRUD come nome del servizio di database.
La tabella seguente illustra l’implementazione ccrDocumentInstance SPI di esempio. Viene illustrato come le save , update , get e getAll le operazioni chiamano il servizio di database nell'implementazione di esempio.
Operazione
Esempi di servizi di database
Potete creare una bozza per una comunicazione interattiva o inviarla direttamente. L'API per l'operazione di salvataggio verifica se la comunicazione interattiva viene inviata come bozza e include un nome bozza. L'API chiama quindi il servizio mySQLDataBaseServiceCRUD con il metodo Save (Salva) come metodo di input.
[#$sd1_sf1_dp9]
Il servizio mySQLDataBaseServiceCRUD verifica il metodo Save come metodo di input e genera un ID bozza generato automaticamente e lo restituisce a AEM. La logica per generare un ID bozza può variare in base al database.
[#$sd1_sf1_dp13]
L'API per l'operazione di aggiornamento recupera lo stato della bozza di comunicazione interattiva e verifica se la comunicazione interattiva include un nome bozza. L'API chiama il servizio mySQLDataBaseServiceCRUD per aggiornare tale stato nel database.
[#$sd1_sf1_dp17]
Il servizio mySQLDataBaseServiceCRUD verifica l'aggiornamento come metodo di input e salva lo stato della bozza di comunicazione interattiva nel database.
L'API per l'operazione get verifica se la comunicazione interattiva include un ID bozza. L'API chiama quindi il servizio mySQLDataBaseServiceCRUD con Get come metodo di input per recuperare i dati per la comunicazione interattiva.
Il servizio mySQLDataBaseServiceCRUD verifica Get come metodo di input e recupera i dati per la comunicazione interattiva in base all'ID bozza.
[#$sd1_sf1_dp29]
L'API per l'operazione getAll chiama il servizio mySQLGetALLData per recuperare i dati per tutte le comunicazioni interattive salvate nel database.
Il servizio mySQLGetALLData recupera i dati per tutte le comunicazioni interattive salvate nel database.
[#$sd1_sf1_dp37]
Di seguito è riportato un esempio del pom.xml file che fa parte dell'implementazione:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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.146</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>

Accertatevi di aggiornare la aemfd-client-sdk dipendenza alla versione 6.0.146 o successiva del pom.xml file.