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

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.
  • Kontrollera att kärnkomponenterna är aktiverade för din miljö. Installera den senaste versionen för att aktivera adaptiva Forms Core-komponenter för din AEM Cloud-tjänstmiljö.

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

Utdata

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

Resultat

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

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.

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

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