డైనమిక్ ప్రశ్న రకం ఫీచర్ ఫీల్డ్ యొక్క ఇన్‌పుట్ విడ్జెట్ మరియు ధృవీకరణ ప్రవర్తన ఫారం డిజైన్ సమయంలో కాకుండా రన్‌టైమ్‌లో నిర్ణయించబడటానికి అనుమతిస్తుంది. సేకరించవలసిన డేటా రకం సర్వర్-వైపు కాన్ఫిగరేషన్, API ప్రతిస్పందన, లేదా మునుపటి ఫీల్డ్ విలువపై ఆధారపడినప్పుడు ఉపయోగించే అధునాతన rtSurvey పొడిగింపు ఇది.

సాధారణ వినియోగ కేసు ఒక కాన్ఫిగర్ చేయగల తనిఖీ చెక్‌లిస్ట్, ఇక్కడ సర్వర్ ఏ ఫీల్డ్‌లు అవసరమో, అవి ఏ రకమైనవో (text, integer, select మొదలైనవి), మరియు ఏ ఎంపికలు అందుబాటులో ఉన్నాయో నిర్ణయిస్తుంది — ప్రతి కాన్ఫిగరేషన్‌కు ఫారం తిరిగి నిర్మించకుండా.


ఇది ఎలా పని చేస్తుంది

డైనమిక్ ప్రశ్న రకంగా గుర్తించిన ఫీల్డ్ దాని కాన్ఫిగరేషన్ API నుండి తీసుకోవడానికి callapi() ఉపయోగిస్తుంది. API ప్రతిస్పందన నిర్వచిస్తుంది:

  • రెండర్ చేయవలసిన ఇన్‌పుట్ రకం (text, integer, select_one మొదలైనవి)
  • అందుబాటులో ఉన్న ఎంపికలు (select రకాలకు)
  • ధృవీకరణ నియమాలు

ఫీల్డ్ అంతర్గతంగా specialFeature: isDynamicQuestionType తో గుర్తించబడుతుంది, ఇది ఫారం ఇంజిన్‌కు స్థిర ఫారం నిర్వచనం బదులు API ప్రతిస్పందనను ఉపయోగించి విడ్జెట్ నిర్మించమని చెప్తుంది.


సెటప్

దశ 1: ఫీల్డ్ కాన్ఫిగరేషన్ తీసుకోవడం

డైనమిక్ కాన్ఫిగరేషన్ పొందడానికి callapi() తో calculate ఫీల్డ్ ఉపయోగించండి:

typenamelabelappearancecalculation
calculatefield_configcallapicallapi('POST', 'https://api.example.com/field-config', 1, 2, 0, '$.config', 10000, 0, '', '', '{"form_id": "##form_id##", "field_id": "inspection_result"}')

దశ 2: డైనమిక్ ఫీల్డ్‌లో కాన్ఫిగరేషన్ సూచించడం

డైనమిక్ ఫీల్డ్ తీసుకున్న కాన్ఫిగ్‌కు లింక్ చేయడానికి దాని appearance లేదా constraint లో callapi-verify() ఉపయోగిస్తుంది:

typenamelabelappearance
textinspection_resultInspection resultcallapi-verify(dynamicParams)

ఫారం ఇంజిన్ field_config చదివి inspection_result ని text, integer, లేదా select_one ఫీల్డ్‌గా రెండర్ చేయాలో డైనమిక్‌గా నిర్ణయిస్తుంది.


API ప్రతిస్పందన ఫార్మాట్

API ఫీల్డ్ కాన్ఫిగరేషన్ వివరించే JSON ఆబ్జెక్ట్ తిరిగి ఇవ్వాలి. విలక్షణ ప్రతిస్పందన:

  {
  "config": {
    "type": "select_one",
    "choices": [
      {"value": "pass", "label": "Pass"},
      {"value": "fail", "label": "Fail"},
      {"value": "na", "label": "N/A"}
    ],
    "required": true,
    "constraint": ". != ''"
  }
}
  

ఉదాహరణ: కాన్ఫిగర్ చేయగల తనిఖీ ఫారం

తనిఖీ వర్గం ఆధారంగా సర్వర్ నుండి చెక్‌లిస్ట్ అంశాలు మరియు వాటి సమాధాన రకాలు తీసుకున్న తనిఖీ ఫారం:

typenamelabelappearancecalculation
select_one inspection_typeinsp_typeType of inspection
calculatechecklist_configcallapicallapi('POST', 'https://api.example.com/checklist', 1, 2, 0, '$.items', 10000, 0, '', '', '{"type": "##insp_type##"}')
textitem_1Item 1callapi-verify(dynamicParams)
textitem_2Item 2callapi-verify(dynamicParams)
textitem_3Item 3callapi-verify(dynamicParams)

insp_type ఆధారంగా సర్వర్ ప్రతి అంశానికి సరైన విడ్జెట్ రకం, లేబుల్, ఎంపికలు మరియు ధృవీకరణ తిరిగి ఇస్తుంది.


ఉత్తమ పద్ధతులు

  1. ఫీల్డ్ నిర్మాణం నిజంగా రన్‌టైమ్‌లో మారినప్పుడు మాత్రమే డైనమిక్ ప్రశ్న రకాలు ఉపయోగించండి — స్థిర ఫారాలకు ప్రామాణిక ప్రశ్న రకాలు ఉపయోగించండి.
  2. కాన్ఫిగరేషన్ API త్వరగా (2 సెకన్లలో) ప్రతిస్పందిస్తుందని మరియు ఫీల్డ్ నెట్‌వర్క్‌లో అందుబాటులో ఉందని నిర్ధారించుకోండి.
  3. API అందుబాటులో లేని సందర్భానికి ఫారంలో సమంజసమైన ఫాల్‌బ్యాక్ ఎల్లప్పుడూ నిర్వచించండి — నోట్‌తో plain text ఫీల్డ్ విచ్ఛిన్నమైన విడ్జెట్ కంటే మెరుగు.
  4. మీ API ప్రతిస్పందన schema ను వెర్షన్ చేయండి — ప్రతిస్పందన ఫార్మాట్‌లో మార్పులు ఆ endpoint ఉపయోగించే అన్ని సక్రియ ఫారాలను ప్రభావితం చేస్తాయి.
  5. మోహరించే ముందు API తిరిగి ఇవ్వగల అన్ని ఫీల్డ్ రకాల కలయికలు పరీక్షించండి.

పరిమితులు

  • డైనమిక్ ప్రశ్న రకాలు కాన్ఫిగరేషన్ తీసుకోవడానికి నెట్‌వర్క్ కనెక్టివిటీ అవసరం.
  • డైనమిక్‌గా అందుబాటులో ఉన్న విడ్జెట్ రకాల పూర్తి శ్రేణి rtSurvey క్లయింట్ వెర్షన్‌పై ఆధారపడుతుంది — మీ లక్ష్య వెర్షన్ పరీక్షించండి.
  • ఇది ప్రామాణిక XLSForm స్పెసిఫికేషన్‌లో సమానమైనది లేని అధునాతన rtSurvey పొడిగింపు.
  • ఫీల్డ్ నిర్వచనం పాక్షికంగా ఫారంలో మరియు పాక్షికంగా API ప్రతిస్పందనలో ఉన్నందున డీబగ్ లోపాలు గుర్తించడం కష్టం.
ఈ పేజీ సహాయకరంగా ఉందా?