Integrera externa API:er med Visual Rule Editor i Core Component Forms

Visuell regelredigerare i ett adaptivt formulär har stöd för funktionen Anropa tjänst som gör att du kan ansluta till externa API:er via formulärdatamodeller (FDM) som konfigurerats för din instans. Du kan mappa formulärfält direkt till tjänstens indataparametrar och använda händelsens nyttolastalternativ för att mappa utdataparametrarna. Med Visual Rule Editor kan du också definiera regler för hanterare för lyckade och misslyckade åtgärder baserat på tjänstens svar: hanterare för lyckade API-anrop hanterar felhanterare.

På så sätt kan du enkelt skicka API-begäranden från formuläret, bearbeta API-svaren och visa eller använda returnerade data dynamiskt i formuläret. Det säkerställer en sömlös integrering mellan era adaptiva formulär och externa system eller datakällor.

Fördelar med att använda Invoke Service i formulärets regelredigerare

Här är några fördelar med att använda Invoke Service-åtgärden i regelredigeraren för ett tilläggsformulär:

  • Effektiv API-integrering: Visuell regelredigerare förenklar processen att integrera externa tjänster eller API:er i din adaptiva Forms. Genom att använda Invoke Service kan du enkelt koppla formulär till olika datakällor och tjänster utan att behöva komplex kodning, vilket gör att formulärintegreringen blir mer effektiv.

  • Dynamisk svarshantering: Du kan hantera slutförda och felsvar baserat på utdataresvaren i Invoke Service, vilket gör att formulär kan reagera dynamiskt på olika scenarier. Det säkerställer att blanketterna hanterar olika förhållanden på ett korrekt sätt, vilket ger större flexibilitet och kontroll.

  • Förbättrad användarinteraktion: Om du använder Invoke Service i regelredigeraren kan du validera dina formulär i realtid, vilket ger en bättre användarupplevelse. Det säkerställer också att data valideras korrekt på serversidan, vilket minskar antalet fel och förbättrar formulärens tillförlitlighet.

Anropa tjänsthanterare för lyckade och misslyckade åtgärder

NOTE
Du kan bara använda hanterarna för Anropa tjänst för lyckade och misslyckade formulär baserade på kärnkomponenter. Forms-baserade på grundkomponenter stöder inte hanterare för Invoke Service och fel.

Med den visuella regelredigeraren kan du skapa regler för hanterare för lyckade och misslyckade åtgärder för Invoke Service -åtgärder baserat på dess utdataresvar. Nedanstående bild visar Invoke Service i Visual rule editor för ett adaptivt format:

Anropa tjänsthanterare

Adding Success Handler and Failure Handler

Klicka på Add Success Handler eller Add Failure Handler om du vill lägga till en hanterare för lyckade eller misslyckade åtgärder.

När du klickar på Add Success Handler visas regelredigeraren Invoke Service Success Handler så att du kan ange regler eller logik för att hantera Invoke Service -utdatasvaret när åtgärden har slutförts. Du kan ange regler även utan att definiera villkor, men du kan lägga till villkor för hanteraren av lyckade åtgärder genom att klicka på alternativet Add Condition.

Hanteraren för lyckade anrop av tjänsten

Du kan lägga till flera regler för att hantera lyckade svar för åtgärden Anropa tjänst:

Hanteraren för flera lyckade åtgärder {width="50%,"}

På samma sätt kan du lägga till regler för att hantera Invoke Service -utdataresvaret när åtgärden inte lyckas. Bilden nedan visar regelredigeraren Invoke Service Failure Handler:

Anropa hanteraren för tjänstfel

Du kan också lägga till flera regler för att hantera misslyckade svar från åtgärden Anropa tjänst.

Funktionen Aktivera felvalidering på servern tillåter validering som lagts till av författaren när ett adaptivt formulär utformas för att köras på servern också.

Krav för att använda Invoke Service i regelredigeraren

Nedan visas de krav du måste uppfylla innan du kan använda Anropa tjänst i regelredigeraren:

  • Kontrollera att du har konfigurerat en datakälla. Klicka här om du vill ha anvisningar om hur du konfigurerar en datakälla.
  • Skapa en formulärdatamodell med den konfigurerade datakällan. Klicka här om du vill ha hjälp med att skapa en formulärdatamodell.

Utforska Invoke Service via olika användningsfall

Med den visuella regelredigerarens Anropa tjänst kan du utföra flera användbara åtgärder. Du kan använda den för att fylla i listrutealternativ, ange repeterbara eller enkla paneler och validera formulärfält, allt baserat på utdatasvaret för Anropa tjänst. Detta gör formulären mer flexibla och interaktiva.

Tabellen nedan beskriver några scenarier där Invoke Service kan användas:

Använd skiftläge
Beskrivning
Fyll i listrutealternativ med hjälp av utdata från Invoke Service
Fyller i listrutealternativ dynamiskt baserat på data som hämtats från Invoke Service-utdata. Klicka här för att se implementeringen.
Ange repeterbar panel med utdata från Invoke Service
Konfigurerar en repeterbar panel genom att använda data från Invoke Service-utdata, vilket möjliggör dynamiska paneler. Klicka här för att se implementeringen.
Ange panel med utdata från Invoke Service
Anger innehållet eller synligheten för en panel med specifika värden från Invoke Service-utdata. Klicka här för att se implementeringen.
Använd utdataparametern för Invoke Service för att validera andra fält
Använder specifika utdataparametrar från Anropa-tjänsten för att validera formulärfälten. Klicka här för att se implementeringen.
Använd händelsenyttolast i Navigera till åtgärd i anropstjänsten
Använder händelsens nyttolast för att hantera lyckade och misslyckade svar och för att skicka data till åtgärden Navigera till under navigeringen. Klicka här för att se implementeringen.

Skapa ett Get Information-formulär som hämtar värden baserat på indata som anges i textrutan Pet ID. Skärmbilden nedan visar det formulär som används i dessa fall:

Hämta informationsformulär

Formulärfält

Lägg till följande fält i formuläret:

  • Ange husdjurs-ID: Textruta

  • Välj foto-URL:er: Listruta

  • Taggar: Panel

    • Namn: Textruta
    • ID: Textruta
  • Kategori: Panel

    • Namn: Textruta
  • Skicka: Skicka-knapp

NOTE
I fältet Bindningsreferens i dialogrutan Egenskaper i formulärfälten väljer du foldersearch_18 och navigerar till den binära egenskap som du har lagt till i formulärdatamodellen (FDM).

Konfigurerar paneler

Ange panelerna som repetitiva med följande begränsningar:

  • Minsta värde: 1
  • Högsta värde: 4

Du kan justera värdena för de upprepade panelerna så att de passar dina behov.

Datakälla

I det här exemplet används API:t Swagger Petstore för att konfigurera en datakälla. Formulärdatamodellen har konfigurerats för tjänsten getPetById, som hämtar information om djur baserat på det angivna ID:t.

Låt oss publicera följande JSON med tjänsten addPet i Swagger Petstore API:

{
        "id": 101,
        "category": {
            "id": 1,
            "name": "Labrador"
        },
        "name": "Lisa",
        "photoUrls": [
            "https://example.com/photos/lisa1.jpg",
            "https://example.com/photos/lisa2.jpg"
        ],
        "tags": [
            {
                "id": 1,
                "name": "vaccinated"
            },
            {
                "id": 2,
                "name": "friendly"
            },
            {
                "id": 3,
                "name": "house-trained"
            }
        ],
        "status": "available"
    }

Regler och logik implementeras med åtgärden Anropa tjänst i regelredigeraren i textrutan Pet ID för att visa de angivna användningsexemplen.

Nu ska vi gå igenom implementeringen av varje användningsfall i detalj.

Användningsfall 1: Fyll i listrutevärden med hjälp av utdata från Invoke Service

Det här användningsexemplet visar hur du fyller i listrutealternativ dynamiskt baserat på utdata för en Invoke Service.

Implementering

För att uppnå detta skapar du en regel i textrutan Pet ID som anropar tjänsten getPetById. I regeln anger du egenskapen enum för listrutan photo-url till photoUrls i Add Success Handler.

Ange nedrullningsbart värde

NOTE
Mer information om hur du anger hanterare för lyckade och misslyckade åtgärder finns i avsnittet Lägga till hanterare för lyckade och misslyckade åtgärder.

Utdata

Ange 101 i textrutan Pet ID för att dynamiskt fylla i listrutealternativen baserat på det angivna värdet.

Resultat

Alternativen för listrutor kan också fyllas i dynamiskt genom att en tjänst anropas, JSON-svaret tolkas och anpassade funktioner tillämpas. Mer information finns i det här avsnittet.

Användningsfall 2: Ange upprepningsbar panel med utdata från Invoke Service

Det här användningsexemplet visar hur du fyller i repeterbara paneler dynamiskt baserat på utdata från en Invoke Service.

Överväganden

  • Kontrollera att namnet på den repeterbara panelen matchar parametern för den Invoke Service som du vill ange panelen för.
  • Panelen upprepas för antalet värden som returneras av motsvarande Anropa tjänst-fält.

Implementering

Skapa en regel i textrutan Pet ID för att anropa tjänsten getPetById. I Add Success Handler lägger du till ett annat svar från en hanterare. Ange värdet tags för panelen tags i regeln.

Skapa regel för repeterbar panel

NOTE
Mer information om hur du anger hanterare för lyckade och misslyckade åtgärder finns i avsnittet Lägga till hanterare för lyckade och misslyckade åtgärder.

Utdata

Ange 101 i textrutan Pet ID om du vill fylla i den repeterbara panelen dynamiskt baserat på indatavärdet.

Utdata

Användningsfall 3: Ange panel med utdata från Invoke Service

Det här användningsexemplet visar hur du dynamiskt anger värdet för en panel baserat på utdata från en Invoke Service.

Överväganden

  • Kontrollera att panelens namn matchar parametern för den Anropa tjänst som du vill ange panelen för.
  • Panelen upprepas för antalet värden som returneras av motsvarande Invoke Service-fält.

Implementering

Skapa en regel i textrutan Pet ID för att anropa tjänsten getPetById. I Add Success Handler lägger du till ett annat svar från en hanterare. Ange värdet categoryname för textrutan category.name i regeln.

NOTE
Mer information om hur du anger hanterare för lyckade och misslyckade åtgärder finns i avsnittet Lägga till hanterare för lyckade och misslyckade åtgärder.

Skapa regel för repeterbar panel

Utdata

Ange 101 i textrutan Pet ID för att fylla i panelen dynamiskt baserat på indatavärdet.

Utdata

Använd fall 4: Använd utdataparametern för Invoke Service för att validera andra fält

Det här användningsexemplet visar hur du använder utdata från en Anropa tjänst för att dynamiskt validera andra formulärfält.

Implementering

Skapa en regel i textrutan Pet ID för att anropa tjänsten getPetById. I Add Failure Handler lägger du till ett felhanterarsvar. Dölj knappen Skicka om en felaktig Pet ID anges.

Felhanterare

Utdata

Ange 102 i textrutan Pet ID och knappen Skicka är dold.

Utdata

Använd fall 5: Använd händelsenyttolast i Navigera till åtgärd i Anropa tjänst

Det här användningsexemplet visar hur du konfigurerar en regel på knappen Skicka som anropar en Invoke Service och sedan dirigerar om användaren till en annan sida med åtgärden Navigera till .

Implementering

Skapa en regel på knappen Skicka för att anropa API-tjänsten redirect-api. Den här tjänsten ansvarar för att dirigera om användaren till formuläret Kontakta oss.

Du kan direkt integrera ett API som API-tjänst för redirect-api i regelredigeraren med JSON-data som anges nedan:

{
  "id": "1",
  "path": "/content/dam/formsanddocuments/contact-detail/jcr:content?wcmmode=disabled"
}
NOTE
Klicka här utan att använda en fördefinierad formulärdatamodell om du vill lära dig hur du integrerar API direkt i regelredigeringsgränssnittet.

I Add Success Handler konfigurerar du åtgärden Navigera till så att användaren dirigeras om till sidan Kontakta oss med parametern Event Payload. Här kan användaren skicka sin kontaktinformation.

Händelsenyttolast

Du kan också konfigurera en felhanterare så att ett felmeddelande visas om anropet till tjänsten misslyckas.

Utdata

När du klickar på knappen Skicka anropas API-tjänsten redirect-api. Användaren omdirigeras till sidan Kontakta oss när åtgärden har slutförts.

Utdata för händelsenyttolast

Hämta egenskapsvärden från en JSON-array

Det här är en tidig adopter-funktion. Om du är intresserad kan du skicka ett e-postmeddelande från din arbetsadress till mailto:aem-forms-ea@adobe.com och begära åtkomst till funktionen.

Adaptiv Forms stöder anrop av en tjänst, bearbetning av JSON-svar och dynamisk ifyllning av formulärfält. I det här avsnittet beskrivs hur du extraherar egenskapsvärden från en JSON-array och binder dem till formulärfält.

Exempel på JSON-svar

I följande exempel visas USA:s försäljningsregioner och en lista över säljare:

[
  {
    "region": "East",
    "salesPerson": "Emily Carter"
  },
  {
    "region": "South",
    "salesPerson": "Michael Brown"
  },
  {
    "region": "Midwest",
    "salesPerson": "Sophia Martinez"
  },
  {
    "region": "Southwest",
    "salesPerson": "David Johnson"
  },
  {
    "region": "West",
    "salesPerson": "Linda Walker"
  }
]

Egen funktion för att extrahera egenskapsvärden

Använd följande anpassade funktion för att extrahera egenskapsvärden från JSON-arrayen.

/**
 * Returns an array of values for a specific property from an array of objects.
 *
 * @name getPropertyValues
 * @param {Object[]} jsonArray An array of objects
 * @param {string} propertyName The property whose values should be extracted
 * @returns {Array} An array containing the values of the specified property
 *
 */

function getPropertyValues(jsonArray, propertyName)
{
    return jsonArray.map((obj) => obj[propertyName]);

}

Den anpassade funktionen accepterar:

  • jsonArray: JSON-matrisen returnerades från tjänsten
  • propertyName: Egenskap att extrahera värde med

Den anpassade funktionen returnerar en enkel array med värden.

NOTE
Detaljerade anvisningar om hur du lägger till anpassade funktioner finns i artikeln Introduktion till anpassade funktioner för adaptiv Forms baserat på kärnkomponenter .

Använda funktionen i Regelredigeraren

Så här hämtar du det specifika värdet från JSON-arrayen:

event.payload.invokeServiceResponse.rawPayloadBody

I följande exempel visas hur du fyller i ett Sales Department-formulär med det här svaret.

Låt oss till exempel skapa ett Sales Department-formulär som innehåller listrutorna Select Region och Select Sales Representative.

Steg 1: Anropa tjänsten vid formulärinitiering

WHEN
    Form is initialized
THEN
    Invoke Service → salesdeptinfo
NOTE
Klicka här om du vill lära dig hur du integrerar API utan att skapa en formulärdatamodell i redigeraren för visuell regel.

Steg 2: Fyll i listrutan Region

Lägg till en Success Handler för tjänstanropet och konfigurera följande åtgärd:

Set enum → Region dropdown
getPropertyValues(
    event.payload.invokeServiceResponse.rawPayloadBody,
    "region"
)

Den här regeln läser JSON-arrayen, extraherar egenskapsvärdena för region och tilldelar värdena till listrutan Select Region.

Konfigurera på samma sätt åtgärden för listrutan Select Sales Representative i Success Handler.

Händelsenyttolast för JSON-matris

När formuläret läser in JSON-data returneras och den anpassade funktionen extraherar egenskapsvärden och listrutan fylls i automatiskt:

Händelsenyttolastformulär

Frågor och svar

F: Vad händer om jag har skapat en regel med Invoke Service och sedan uppgraderar till den senaste versionen av kärnkomponenterna?

A: När du uppgraderar till den senaste versionen av kärnkomponenterna uppdateras regeln Anropa tjänst automatiskt till det senaste användargränssnittet eftersom den är bakåtkompatibel.

F: Kan jag lägga till flera regler för att hantera lyckade eller misslyckade svar för Invoke Service-åtgärden?

S: Ja, du kan lägga till flera regler för att hantera slutförda eller misslyckade svar för åtgärden Anropa tjänst.

Relaterade artiklar

Ytterligare resurser

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab