AppAPI umožňuje uživatelům načítat systémová metadata z aplikace pomocí různých metod ve FormEngine a DMView. Poskytuje přístup k různým datovým klíčům pro získání konkrétních informací z aplikace.

V XLSForm můžete použít funkci pulldata() s následující syntaxí:

  • 'app-api': Toto klíčové slovo informuje FormEngine, aby načetl data z App API.
  • 'data-key': Toto je klíč dat, která chcete načíst z App API.
  • Pokud je datový klíč neplatný nebo nepodporovaný, výpočet vrátí „n/a".

Zde jsou podporované datové klíče, které můžete použít s App-API:

osPlatform: Vrátí aktuální název OS (Android nebo iOS) a verzi OS. Webové platformy vrátí prázdnou hodnotu.

appPlatform: Vrátí název platformy aplikace, což je rtSurvey.

appVersion: Vrátí název verze aplikace.

getDisplayWidth: Vrátí šířku obrazovky zařízení v pixelech.

getDisplayHeight: Vrátí výšku obrazovky zařízení v pixelech.

getScreenSize: Vrátí velikost obrazovky zařízení v palcích.

projectCode: Vrátí aktuální kód projektu webu, ke kterému se uživatel přihlašuje.

projectURL: Vrátí aktuální URL projektu webu, ke kterému se uživatel přihlašuje. Výchozí/záložní hodnota je prázdný text ("").

startingPoint: Vrátí cestu bodu, který spustí formulář. Podrobnosti viz „Výchozí bod formuláře".

serverTime: Vrátí nejlepší dostupnou aproximaci data a času na serveru.

user.[attribute]: Vrátí atributy aktuálního uživatele na základě zadaného klíče atributu. Dostupné klíče atributů viz tabulka „Atributy uživatele".

Kombinujte níže uvedené klíče atributů s „user." v parametrech pulldata() pro získání informací o aktuálním uživateli. Například použijte user.username, user.email atd.

Klíč atributuPopis
usernameUživatelské jméno uživatele
nameCelé jméno uživatele
staffCodeKód pracovníka uživatele
phoneTelefonní číslo uživatele
emailE-mailová adresa uživatele
descriptionPopis v informacích o uživateli
organization_idID organizace, do které uživatel patří
organization_nameNázev organizace, do které uživatel patří
team_idID týmu, do kterého uživatel patří
supervisor_idID nadřízeného uživatele
is_supervisor1 pokud je uživatel nadřízený, 0 pokud ne

instancePath: Vrátí aktuální cestu ke složce instance.

appLanguage: Vrátí aktuální jazyk aplikace nastavený v nastavení aplikace (např. vi, en).

openArgs.[attribute]: Vrátí argument otevření formuláře předaný z ActionButton (act_fill_form, act_get_instance). Výchozí/záložní hodnota je prázdný text ("").

primaryAppColor: Načte primární barvu aplikace.


Příklady použití

Uložení uživatelského jména a organizace enumerátora

typenamelabelcalculation
calculateenumerator_namepulldata('app-api', 'user.name')
calculateenumerator_orgpulldata('app-api', 'user.organization_name')
calculateenumerator_emailpulldata('app-api', 'user.email')

Použijte je v popiscích poznámek pro účely auditu:

  note | interviewer_info | Tazatel: ${enumerator_name} (${enumerator_org})
  

Informace o zařízení a obrazovce

typenamelabelcalculation
calculatedevice_platformpulldata('app-api', 'osPlatform')
calculateapp_verpulldata('app-api', 'appVersion')
calculatescreen_wpulldata('app-api', 'getDisplayWidth')

Užitečné pro odstraňování problémů: exportujte device_platform a app_ver spolu s daty pro identifikaci, která verze zařízení byla použita pro každé odeslání.

Čas serveru místo času zařízení

Hodiny zařízení mohou být nesprávné. Používejte serverTime pro spolehlivější časové razítko:

typenamelabelcalculation
calculateserver_tspulldata('app-api', 'serverTime')

Podmíněná logika na základě role uživatele

Zobrazení sekce pouze pro nadřízené:

typenamelabelrelevant
calculateis_supervisorpulldata('app-api', 'user.is_supervisor')
begin_groupsupervisor_sectionKontrola nadřízeného${is_supervisor} = '1'
textsupervisor_notesPoznámky nadřízeného
end_group

Předávání argumentů z tlačítka akce

Když je formulář spuštěn z tlačítka akce act_fill_form s vlastními argumenty:

typenamelabelcalculation
calculatepassed_hh_idpulldata('app-api', 'openArgs.household_id')
calculatepassed_taskpulldata('app-api', 'openArgs.task_code')

Tlačítko akce musí předat argumenty s odpovídajícími klíči (např. household_id, task_code).

Používání informací o projektu

typenamelabelcalculation
calculateprojectpulldata('app-api', 'projectCode')
calculateproject_urlpulldata('app-api', 'projectURL')

Poznámky

  • Všechna volání pulldata('app-api', ...) jsou vyhodnocena při otevření formuláře a nejsou dynamicky přehodnocována během relace (s výjimkou serverTime a now()).
  • Pokud klíč není podporován nebo data nejsou dostupná, funkce vrátí 'n/a' (nikoli prázdný řetězec — testujte pomocí != 'n/a' spíše než != '').
  • Hodnoty openArgs jsou dostupné pouze při spuštění formuláře z tlačítka akce; jinak vrátí prázdný řetězec.
Byla tato stránka užitečná?