Dynamiske dropdowns
Orbeon Forms tilbyder en anden type af integrationsmuligheder i form af dynamiske dropdowns, hvor valgmulighederne i dropdownen kan hentes direkte fra en datakilde uden at skulle anvende HTTP Services og Actions
Du finder Orbeons egen officielle dokumentation af dynamiske dropdowns her
Opsætning af dynamisk dropdown
Ved opsætning af en dynamisk dropdown som vist ovenfor, så skal du indledningsvist tage stilling til en række valgmuligheder
With Search: Skal der være søgning i dropdownen eller skal brugeren navigere i en statisk liste med mus eller tastatur
Service performs search: Hvis du har valgt, at der skal være søgning, så kan du her vælge om det yderligere skal være således, at der løbende foretages kalde til servicen i takt med at brugeren skriver i søgefeltet. Dette er eksempelvis kendt fra en klassisk autocomplete. Vælger du Yes her, så får du adgang til variablen $fr-search-value som kan indsættes i den URL. der kaldes, og som repræsenterer, det brugeren har skrevet i feltet.
Service supports paging: Ved meget store lister, så vil der til tider være mulighed for at kunne paginere i den service du kalder, hvorefter, at der kun hentes et mindre antal resultater ad gangen der så løbende udvides efterhånden som brugeren scroller til bunden af dropdownen. Vælger du Yes her, så får du adgang til variablen $fr-search-page som starter med værdien 1 og løbende inkrementeres og som du kan indsætte i den URL, der kaldes. Mange af Dataforsyningens API’er har eksempelvis denne mulighed
Når du har taget stilling til ovenstående valg, så skal der angives, hvor data hentes og hvilket data der skal placeres i dropdownen
Resource URL: Her angives adressen på den service der ønskes kaldet, hvor der er mulighed for at indlejre variable mellem to krøllede parenteser. Der er de to nævnte variable ovenfor, men ellers kan der mellem to krøllede parenteser skrives vilkårlig XPath.
Bemærk: Henvisninger til felter i blanketten skal laves med ægte XPath, så //felt1 i stedet for $felt1Choices XPath Expression: Her skal der angives XPath til at identificere den liste af elementer, som skal være valgmuligheder i dropdownen.
Label XPath Expression: Her skal der angives XPath til at vælge, hvad brugeren skal præsenteres for i dropdownen. XPathen skal laves relativt til det, der er angivet under Choices XPath Expression
Value XPath Expression: Her skal der angives XPath til at vælge, hvad værdien af dropdownen skal have både til senere formler og i den endelige XML. XPathen skal laves relativt til det, der er angivet under Choices XPath Expression
Is last page XPath Expression: Hvis du har valgt at anvende paginering i dropdownen kan der her angives XPath til at identificere, hvornår der ikke længere er data at hente. Ofte vil den konkrete service fortælle, hvordan dette identificeres.
Eksempler på brug af dynamiske dropdowns
Der er i Blanketmotorens sandkasse en lang række eksempler på, hvordan dynamiske dropdowns kan bruges til at koble op mod primært adresser og geografiske temaer. Mange af disse anvender Dataforsyningens API’er som er frit tilgængelige, men der er også eksempler på søgning i P-enheder
Derudover er et oplagt brugsscenarie for dynamiske dropdowns at koble sig op på de Listeservices, der findes i Blanketmotoren, og som også gør det nemt at populere dropdowns