Rekommenderade arbetsflöden för förifyllnad och inskickning av datakällor för anpassningsbara formulär recommended-data-source-btased-prefill-and-submit-workflows-for-adaptive-forms

Du kan använda någon av följande datakällor med adaptiva formulär som har konverterats med tjänsten Automated forms conversion (AFCS):

  • Formulärdatamodell, OData eller någon annan tredjepartstjänst
  • JSON-schema
  • XSD-schema

Baserat på datakällan kan du välja att generera ett anpassningsbart formulär med eller utan en datamodell.

I den här artikeln beskrivs de rekommenderade arbetsflödena för att förifylla fältvärden och skicka-alternativ efter att du har valt en datakälla och genererat ett anpassat formulär med hjälp av konverteringstjänsten.

Data Source
Rekommenderat arbetsflöde
Formulärdatamodell, OData eller någon annan tredjepartstjänst
Alternativ 1: Du väljer formulärdatamodell, OData eller någon annan tredjepartstjänst som datakälla. Du genererar ett anpassat formulär utan databindning med tjänsten Automated forms conversion (AFCS). Du binder adaptiva formulärfält till formulärdatamodellenheter manuellt och använder alternativet för förifyllningstjänst för formulärdatamodell för att fylla i fältvärden i förväg. Du använder alternativet Skicka med formulärdatamodell för att skicka det adaptiva formuläret.
Alternativ 2: Du väljer formulärdatamodell, OData eller någon annan tredjepartstjänst som datakälla. Du genererar ett anpassat formulär utan databindning med tjänsten Automated forms conversion (AFCS). Du binder de adaptiva formulärfälten med regelredigeraren till förifyllda fältvärden. Ändra fältvärdena, om det behövs, och skicka data till crx-databasen.
Stegvisa instruktioner för att köra dessa arbetsflöden finns i Använd databas, OData eller någon annan tjänst från tredje part som datakälla.
JSON-schema
Du väljer JSON-schema som datakälla. Baserat på den valda datakällan:
Alternativ 1: Du genererar ett adaptivt formulär utan databindning med tjänsten Automated forms conversion (AFCS) och konfigurerar JSON-schemat som datakälla. Du binder de adaptiva formulärfälten till JSON-schemat manuellt och använder något av de protokoll som stöds för att förifylla fältvärden. Ändra fältvärdena, om det behövs, och skicka data till crx-databasen.
Stegvisa instruktioner för att köra arbetsflöden finns i Använd JSON-schema som datakälla.
Alternativ 2: Du skapar ett anpassat formulär med JSON-databindning med tjänsten Automated forms conversion (AFCS). Förifyllningstjänsten och funktionen för att skicka formulär fungerar smidigt. Du behöver inte utföra några konfigurationssteg.
Stegvisa instruktioner för att köra arbetsflöden finns i Använd JSON-schema som datakälla.
XSD-schema
Du väljer XSD-schema som datakälla. Baserat på den valda datakällan skapar du ett anpassat formulär utan databindning med tjänsten Automated forms conversion (AFCS) och konfigurerar XSD-schemat som datakälla. Du binder de adaptiva formulärfälten till XSD-schemat manuellt och använder något av de protokoll som stöds för att förifylla fältvärden. Ändra fältvärdena, om det behövs, och skicka data till crx-databasen.
Stegvisa instruktioner för att köra arbetsflöden finns i Använd XSD-schema som datakälla.

Mer information om tjänsten Automated forms conversion (AFCS) finns i följande artiklar:

Informationen i den här artikeln bygger på antagandet att alla som läser den har grundläggande kunskaper i adaptiva formulärkoncept.

Krav pre-requisites

Exempel på anpassningsbart formulär sample-adaptive-form

Om du vill köra användningsexemplen för att förifylla fältvärden i ett adaptivt formulär och skicka dem till datakällan hämtar du följande exempelfil i PDF.

Exempelblankett för låneansökan

Hämta fil

Filen PDF fungerar som indata till tjänsten Automated forms conversion (AFCS). Tjänsten konverterar den här filen till ett anpassat formulär. Följande bild visar låneansökan i PDF-format.

exempellåneansökningsformulär

Förbered data för formulärmodellen prepare-data-for-form-model

Med AEM Forms dataintegrering kan du konfigurera och ansluta till olika datakällor. När du har genererat ett anpassat formulär med konverteringsprocessen kan du definiera formulärmodellen baserat på en formulärdatamodell, XSD eller ett JSON-schema. Du kan använda en databas, Microsoft Dynamics eller någon annan tredjepartstjänst för att skapa en formulärdatamodell.

I den här självstudien används MySQL-databasen som källa för att skapa en formulärdatamodell. Skapa ett låneprogram-schema i databasen och lägg till en sökande-tabell i schemat baserat på de fält som är tillgängliga i det adaptiva formuläret.

Exempeldata mysql

Du kan använda följande DDL-sats för att skapa tabellen sökande i databasen.

CREATE TABLE `applicant` (
   `name` varchar(45) DEFAULT NULL,
   `address` varchar(45) DEFAULT NULL,
   `phonenumber` int(11) NOT NULL,
   `email` varchar(45) DEFAULT NULL,
   `occupation` varchar(45) DEFAULT NULL,
   `annualsalary` varchar(45) DEFAULT NULL,
   `familymembers` int(11) DEFAULT NULL,
   PRIMARY KEY (`phonenumber`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

Om du använder ett XSD-schema som formulärmodell för att köra användningsexemplen skapar du en XSD-fil med följande text:

<?xml version="1.0" encoding="utf-8" ?>
    <xs:schema targetNamespace="http://adobe.com/sample.xsd"
                    xmlns="http://adobe.com/sample.xsd"
                    xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="sample" type="SampleType"/>

  <xs:complexType name="SampleType">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
   <xs:element name="address" type="xs:string"/>
   <xs:element name="phonenumber" type="xs:int"/>
   <xs:element name="email" type="xs:string"/>
   <xs:element name="occupation" type="xs:string"/>
   <xs:element name="annualsalary" type="xs:string"/>
   <xs:element name="familymembers" type="xs:string"/>
 </xs:sequence>
  </xs:complexType>

  </xs:schema>

Eller hämta XSD-schemat till det lokala filsystemet.

Exempel på XSD-schema för låneansökan

Hämta fil

Mer information om hur du använder XSD-schema som formulärmodell i adaptiva formulär finns i Skapa adaptiva formulär med XML-schema.

Om du använder ett JSON-schema som formulärmodell för att köra användningsfallen, skapar du en JSON-fil med följande text:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "definitions": {
        "loanapplication": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "address": {
                    "type": "string"
                },
    "phonenumber": {
                    "type": "number"
                },
    "email": {
                    "type": "string"
                },
    "occupation": {
                    "type": "string"
                },
    "annualsalary": {
                    "type": "string"
                },
    "familymembers": {
                    "type": "number"
                }
            }
        }
 },
 "type": "object",
    "properties": {
        "employee": {
            "$ref": "#/definitions/loanapplication"
        }
    }
}

Eller hämta JSON-schemat till det lokala filsystemet.

Exempelschema för låneansökan - JSON

Hämta fil

Mer information om hur du använder JSON-schema som formulärmodell i adaptiva formulär finns i Skapa adaptiva formulär med JSON-schema.

Generera anpassningsbara formulär utan databindning generate-adaptive-forms-with-no-data-binding

Använd tjänsten Automated forms conversion för att konvertera exempellåneansökningsformuläret 🔗 till ett anpassningsbart formulär utan databindning. Kontrollera att du markerar kryssrutan Generate adaptive form(s) without data bindings för att generera det adaptiva formuläret utan databindning.

Anpassat formulär utan databindning

När du har genererat ett anpassat formulär utan databindning väljer du en datakälla för det anpassningsbara formuläret:

NOTE
Om det adaptiva formuläret som du konverterar med hjälp av tjänsten Automated forms conversion (AFCS) innehåller flera fält med samma namn måste du se till att dessa fält är bundna till datakällenheter för att undvika eventuella dataförluster under överföringen.

Använd databas, OData eller någon tredjepartstjänst som datakälla sqldatasource

Användningsfall: Du genererar ett adaptivt formulär utan databindning med tjänsten Automated forms conversion (AFCS) och konfigurerar MYSQL-databasen som datakälla. Du binder de adaptiva formulärfälten till entiteter i formulärdatamodellen manuellt och använder alternativet Form Data Model Prefill Service för att fylla i fältvärden i förväg. Du använder alternativet Submit using Form Data Model för att skicka det adaptiva formuläret.

Innan användningsexemplet körs:

Baserat på användningsfallet skapar du formulärdatamodellen loanapplication och binder lästjänstargumentet till ett Literal-värde. Det literala värdet för telefonnummer måste vara en av de poster som konfigurerats i schemat sökande i MySQL-databasen. Tjänsterna använder värdet som argument för att hämta information från datakällan. Du kan också välja Användarprofilattribut eller Begär attribut i listrutan Binding To

Konfigurera formulärdatamodell

NOTE
Se till att du lägger till get- och insert-tjänster i formulärdatamodellen, konfigurerar och testar tjänsterna innan du kör användningsfallet.

Utför följande steg:

  1. Välj det konverterade exempelformuläret för låneansökan i mappen output och tryck sedan på Properties.

  2. Tryck på fliken Form Model, välj Form Data Model i listrutan Select From och tryck på Select Form Data Model för att välja formulärdatamodellen loanapplication. Tryck på Save & Close för att spara formuläret.

  3. Välj exempellåneansökningsformuläret och tryck på Edit.

  4. Tryck på konfigurationsikonen på fliken Content:

    konfigurera formulärbehållare

    1. I avsnittet Basic väljer du Form Data Model Prefill service i listrutan Prefill Service.

    2. I avsnittet Submission väljer du Submit using Form Data Model i listrutan Submit Action.

    3. Markera datamodellen med fältet Data Model to submit.

    4. Tryck på ikonen klar för att spara egenskaperna.

  5. Tryck på textrutan Sökandes namn och välj Konfigurera ikon (Konfigurera).

    1. I fältet Bindningsreferens väljer du Sökande > Namn och trycker på ikonen Klart för att spara egenskaperna. Skapa på samma sätt en databindning för Adress, Telefonnummer, E-post, Yrke, Årslön (i dollar) och Nej. för beroende familjemedlemmar-fält med formulärdatamodellentiteter.

    Bindningsreferenser

  6. Tryck på Preview för att visa de förfyllda anpassningsbara formulärfältsvärdena.

  7. Ändra fältvärdena, om det behövs, och skicka det anpassade formuläret. Fältvärdena skickas till MySQL-databasen. Du kan uppdatera tabellen sökande i databasen för att visa de uppdaterade värdena i tabellen.

Användningsfall: Du genererar ett adaptivt formulär utan databindning med tjänsten Automated forms conversion (AFCS) och konfigurerar MYSQL-databasen som datakälla. Du binder de adaptiva formulärfälten med regelredigeraren till förifyllda fältvärden. Ändra fältvärdena, om det behövs, och skicka data till crx-databasen.

Utför följande steg för att använda regelredigeraren för att anropa formulärdatamodelltjänsten för att binda fält och förifyllda värden i ett anpassat formulär:

  1. Markera exempelformuläret för låneansökan i mappen output och tryck på Edit.

  2. Tryck på konfigurationsikonen på fliken Content:

    konfigurera formulärbehållare

    I avsnittet Basic väljer du Form Data Model Prefill service i listrutan Prefill Service.

  3. Tryck på textrutan Applicant Name och tryck på Edit Rules.

    Redigera regler för att skapa databindning

  4. Tryck på Create på sidan Regelredigerare.

  5. På sidan Rule Editor:

    1. Välj ett tillstånd för textrutan Sökandes namn. Till exempel is initialized, vilket resulterar i körning av villkoret Then när du återger formuläret i läget Preview.

    2. I avsnittet Then väljer du Invoke Service i listrutan Select Action. Alla tjänster på din Forms-instans visas i listrutan.

    3. Välj en Get-tjänst i det avsnitt som innehåller formulärdatamodeller. Indatafältet visar phonenumber, som är den primära nyckel som definierats för datamodellen sökande. Systemet hämtar och fyller i förväg i värdena i det anpassade formuläret för fält i utdataavsnittet baserat på det här fältet.

    4. Skapa en bindning för anpassade formulärfält med formulärdatamodellenheter med hjälp av avsnittet Utdata. Du kan t.ex. binda det adaptiva formulärfältet Applicant Name till entiteten name.

    5. Tryck på Done. Tryck på Done igen på sidan Regelredigerare.

    Regelredigerare som binder referenser

  6. Tryck på Preview för att visa de förfyllda anpassningsbara formulärfältsvärdena.

    note note
    NOTE
    Kontrollera att egenskapen Return Array är inställd på AV för tjänstegenskapen get i formulärdatamodellen som är associerad med det adaptiva formuläret.
  7. Ändra fältvärdena, om det behövs, och skicka det anpassade formuläret. De data som skickas finns på följande plats i crx-databasen:

    http://host name:port/crx/de/index.jsp#/content/forms/fp/admin/submit/data/latest file available in the folder

Använd JSON-schema som datakälla jsondatasource

Användningsfall: Du genererar ett adaptivt formulär utan databindning med tjänsten Automated forms conversion (AFCS) och konfigurerar JSON-schemat som datakälla. Du binder de adaptiva formulärfälten till JSON-schemat manuellt och använder alternativet Förhandsgranska med data för att fylla i fältvärden i förväg. Ändra fältvärdena, om det behövs, och skicka data till crx-databasen.

Kontrollera att du har:

Utför följande steg:

  1. Markera det konverterade exempellåneansökningsformuläret som finns i mappen output och tryck sedan på Properties.

  2. Tryck på fliken Form Model, välj Schema i listrutan Select From och tryck på Select Schema för att överföra det demo.schema-JSON-schema som sparats i det lokala filsystemet. Tryck på Save & Close för att spara formuläret.

  3. Välj exempellåneansökningsformuläret och tryck på Edit.

  4. Tryck på textrutan Sökandes namn och välj Konfigurera ikon (Konfigurera).

    I fältet Bindningsreferens väljer du Sökande > Namn och trycker på ikonen Klart för att spara egenskaperna. Skapa på samma sätt en databindning för Adress, Telefonnummer, E-post, Yrke, Årslön (i dollar) och Nej. för beroende familjemedlemmar-fält med JSON-schemaentiteter.

  5. Markera det konverterade exempellåneansökningsformuläret som finns i mappen output igen och välj Preview > Preview with Data.

    Hämta exempeldatafilen

    Hämta fil

  6. Ändra fältvärdena, om det behövs, och skicka det anpassade formuläret. De data som skickas finns på följande plats i crx-databasen:

    http://host name:port/crx/de/index.jsp#/content/forms/fp/admin/submit/data/latest file available in the folder

Använd XSD-schema som datakälla xsddatasource

Användningsfall: Du genererar ett adaptivt formulär utan databindning med tjänsten Automated forms conversion (AFCS) och konfigurerar XSD-schemat som datakälla. Du binder de adaptiva formulärfälten till XSD-schemat manuellt och använder Förhandsgranska med data för att förifylla fältvärden. Ändra fältvärdena, om det behövs, och skicka data till crx-databasen.

Kontrollera att du har:

Utför följande steg:

  1. Välj det konverterade exempelformuläret för låneansökan i mappen output och tryck sedan på Properties.

  2. Tryck på fliken Form Model, välj Schema i listrutan Select From och tryck på Select Schema för att överföra XSD-schemat loanapplication som sparats i det lokala filsystemet. Välj rotelementet för XSD-schemat och tryck på Save & Close för att spara formuläret.

  3. Välj exempellåneansökningsformuläret och tryck på Edit.

  4. Tryck på textrutan Sökandes namn och välj Konfigurera ikon (Konfigurera).
    Välj Sökande > Namn i fältet Bindningsreferens och tryck sedan på Klar ikon för att spara egenskaperna. Skapa på samma sätt en databindning för Adress, Telefonnummer, E-post, Yrke, Årslön (i dollar) och Nej. för beroende familjemedlemmar-fält med XSD-schemaentiteter.

  5. Markera det konverterade exempellåneansökningsformuläret som finns i mappen output igen och välj Preview > Preview with Data.

    Hämta exempeldatafilen

    Hämta fil

  6. Ändra fältvärdena, om det behövs, och skicka det anpassade formuläret. De data som skickas finns på följande plats i crx-databasen:

    http://host name:port/crx/de/index.jsp#/content/forms/fp/admin/submit/data/latest file available in the folder

Generera anpassningsbara formulär med JSON-bindning generate-adaptive-forms-with-json-binding

Använd tjänsten Automated forms conversion (AFCS) för att konvertera exempellåneansökningsformuläret 🔗 till ett anpassningsbart formulär med databindning. Kontrollera att du inte markerar kryssrutan Generate adaptive form(s) without data bindings när du genererar det adaptiva formuläret.

Anpassat formulär med JSON-bindning

Använd JSON-schema som datakälla jsonwithdatabinding

Användningsfall: Du genererar ett adaptivt formulär med JSON-databindning med tjänsten Automated forms conversion (AFCS). Förifyllningstjänsten och funktionen för att skicka formulär fungerar smidigt. Du behöver inte utföra några konfigurationssteg.

Kontrollera att du har ett adaptivt formulär med databindning innan du kör användningsexemplet.

Utför följande steg:

  1. Markera det konverterade exempellåneansökningsformuläret som finns i mappen output igen och välj Preview > Preview with Data.

    Hämta exempeldatafilen

    Hämta fil

  2. Ändra fältvärdena, om det behövs, och skicka det anpassade formuläret. De data som skickas finns på följande plats i crx-databasen:

    http://host name:port/crx/de/index.jsp#/content/forms/fp/admin/submit/data/latest file available in the folder

Konvertera inskickade JSON-data från adaptiva formulär till XML-format convert-submitted-adaptive-form-data-to-xml

När du anger värden i anpassningsbara formulärfält och skickar dem är data tillgängliga i JSON-format i crx-databasen. Du kan konvertera formatet JSON-data till XML antingen med API:t org.apache.sling.Commons.json.xml eller med följande exempelkod:

import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;
import org.apache.sling.commons.json.xml.XML;

public class ConversionUtils {

    public static String jsonToXML(String jsonString) throws JSONException {
        //https://sling.apache.org/apidocs/sling5/org/apache/sling/commons/json/xml/XML.html#toString(java.lang.Object)
        //jar - http://maven.ibiblio.org/maven2/org/apache/sling/org.apache.sling.commons.json/2.0.18/
        //Note: Need to extract boundData part before converting to XML
        return XML.toString(new JSONObject(jsonString));
    }
}
recommendation-more-help
c40c2ccf-3d1b-4b47-b158-c4646051b46c