Elabora codice passaggio
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.jcr.Binary;
import javax.jcr.Node;
import javax.jcr.Session;
import org.osgi.framework.Constants;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.adobe.granite.workflow.WorkflowException;
import com.adobe.granite.workflow.WorkflowSession;
import com.adobe.granite.workflow.exec.WorkItem;
import com.adobe.granite.workflow.exec.WorkflowProcess;
import com.adobe.granite.workflow.metadata.MetaDataMap;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@Component(property = {
Constants.SERVICE_DESCRIPTION + "=Create String Array",
Constants.SERVICE_VENDOR + "=Adobe Systems",
"process.label" + "=Replace comma seperated string with string array"
})
public class CreateStringArray implements WorkflowProcess {
private static final Logger log = LoggerFactory.getLogger(CreateStringArray.class);
@Override
public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap arg2) throws WorkflowException {
log.debug("The string I got was ..." + arg2.get("PROCESS_ARGS", "string").toString());
String[] arguments = arg2.get("PROCESS_ARGS", "string").toString().split(",");
String objectName = arguments[0];
String propertyName = arguments[1];
String objects[] = objectName.split("\\.");
System.out.println("The params is " + propertyName);
log.debug("The params string is " + objectName);
String payloadPath = workItem.getWorkflowData().getPayload().toString();
log.debug("The payload in set Elmement Value in Json is " + workItem.getWorkflowData().getPayload().toString());
String dataFilePath = payloadPath + "/Data.xml/jcr:content";
Session session = workflowSession.adaptTo(Session.class);
Node submittedDataNode = null;
try {
submittedDataNode = session.getNode(dataFilePath);
InputStream submittedDataStream = submittedDataNode.getProperty("jcr:data").getBinary().getStream();
BufferedReader streamReader = new BufferedReader(new InputStreamReader(submittedDataStream, "UTF-8"));
StringBuilder stringBuilder = new StringBuilder();
String inputStr;
while ((inputStr = streamReader.readLine()) != null)
stringBuilder.append(inputStr);
JsonParser jsonParser = new JsonParser();
JsonObject jsonObject = jsonParser.parse(stringBuilder.toString()).getAsJsonObject();
System.out.println("The json object that I got was " + jsonObject);
JsonObject targetObject = null;
for (int i = 0; i < objects.length - 1; i++) {
System.out.println("The object name is " + objects[i]);
if (i == 0) {
targetObject = jsonObject.get(objects[i]).getAsJsonObject();
} else {
targetObject = targetObject.get(objects[i]).getAsJsonObject();
}
}
System.out.println("The final object is " + targetObject.toString());
String businessUnits = targetObject.get(propertyName).getAsString();
System.out.println("The values of " + propertyName + " are " + businessUnits);
JsonArray jsonArray = new JsonArray();
String[] businessUnitsArray = businessUnits.split(",");
for (String name: businessUnitsArray) {
jsonArray.add(name);
}
targetObject.add(propertyName, jsonArray);
System.out.println(" After updating the property " + targetObject.toString());
InputStream is = new ByteArrayInputStream(jsonObject.toString().getBytes());
System.out.println("The changed json data is " + jsonObject.toString());
Binary binary = session.getValueFactory().createBinary(is);
submittedDataNode.setProperty("jcr:data", binary);
session.save();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
Il bundle di esempio può essere scaricato da qui
Pagina precedenteIncorporare un modulo adattivo in una pagina web
Pagina successivaPercorso di caricamento di elementi in AEM Forms
Experience Manager
- Panoramica
- Best practice da seguire
- Configurazione dell’autenticazione OKTA con l’authoring di AEM
- Creazione del primo modulo adattivo
- Gestione degli invii dei moduli
- Integrazioni utili
- Creazione del pacchetto OSGi
- Moduli adattivi
- Compilare un modulo PDF con ChatBot
- Moduli basati su componenti core
- Selezionare e assemblare il contenuto della cartella DAM
- Precompilazione di un modulo adattivo tramite il modello dati modulo
- Suggerimenti e trucchi per l’interfaccia utente
- Personalizzare la casella in entrata
- Inviare allegati di moduli per e-mail
- Precompilazione dei moduli con dati e allegati
- Memorizzare e recuperare il modulo adattivo
- Importare dati da file PDF
- Esportare i dati inviati in formato CSV
- Moduli HTML5
- AEM Forms e Acrobat Sign
- Firmare più moduli
- Passaggi del flusso di lavoro personalizzato
- Componente flusso di lavoro personalizzato
- Variabili nel flusso di lavoro AEM
- Rivedere i dati del modulo
- Memorizzare e recuperare.i dati del modulo nel DB MySQL
- Attivare un flusso di lavoro AEM all’invio del modulo PDF
- Attivare un flusso di lavoro AEM all’invio di moduli per dispositivi mobili
- Eseguire query sugli invii dei moduli
- Elenco dei tipi di risorse personalizzate nel portale Forms
- AEM Forms con Marketo
- AEM Forms con Adobe Campaign Standard
- Kit di benvenuto
- API per moduli headless
- App React con Forms e Acrobat Sign
- Servizi per documenti
- Forms Designer
- AEM Forms Workbench
- Comunicazioni interattive per canale di stampa
- Salvare e recuperare le lettere di bozza
- Comunicazioni interattive
- Comunicazione interattiva per il canale web
- Risoluzione dei problemi