Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Im nächsten Abschnitt finden Sie eine Liste von EFS-spezifischen LUA-Funktionen, die eine zusätzliche Manipulation oder Abfrage von Umfragevariablen ermöglichen.

LUA Cheat Sheet

Dies ist eine kurze Übersicht der Syntax und häufig verwendeter Befehle in LUA, die vollständige LUA Dokumentation finden Sie unter https://www.lua.org/manual/5.1/ und https://www.lua.org/pil/contents.html. EFS-spezifische Funktionen finden Sie im nächsten Abschnitt.

Expand
titleLUA Cheat Sheet zeigen...

Kommentare

Code Block
-- Kommentar
--[[ Mehrzeiliges
Kommentar ]]

Variablen

Code Block
local x = 2
x, y = 2, 4

Tabellen / Arrays

Code Block
t = {}
t = { a = 1, b = 2 }
t.a = function() ... end -- Tabellen können auch Funktionen enthalten
t = { ["hello"] = 200 }
t.hello
-- Arrays sind auch Tabellen:
array = { "a", "b", "c", "d" }
setVariableValue("v_1",array[2]) -- "b"
setVariableValue("v_2",#array) -- gibt die Größe des Arrays zurück (hier: 4)

Bedingungen

Code Block
if condition then
  setVariableValue("v_1","yes")
elsif condition then
  setVariableValue("v_1","maybe")
else
  setVariableValue("v_1","no")
end

--[[
  Bedingungen können folgende Operatoren enthalten:
  ==, <, >, <=, >=, ~= (not equal, equal to !=)
]]

Schleifen

Code Block
while condition do
  -- mach was
end

for i = 1,5 do
  -- mach was
end

for i = start,finish,delta do
  -- mach was
end

for k,v in pairs(tab) do
  -- mach was
end

repeat
  -- mach was
until condition

-- Breaking out:
while x do
  -- mach was vor dem Test
  if condition then break end
  -- und/oder mach was nach dem Test, falls nicht abgebrochen
end

-- Schleife über Elemente der Tabelle
array = { ["2"] = "a", ["11"] = "b", ["15"] = "c", ["30"] = "d" }
for key, value in pairs (array) do
  setVariableValue("v_"..key, value)
end

-- Sie können auch diese veraltete Funktion verwenden:
array = { ["2"] = "a", ["11"] = "b", ["15"] = "c", ["30"] = "d" }
table.foreach(array, function(key,value) setVariableValue ("v_"..key, value) end)

Funktionen

Code Block
function myFunction()
  return 1
end

function myFunctionWithArgument(a, b)
  -- ...
end

Nützliche globale Funktionen

Code Block
type(var) -- Gibt den Typ der Variable zurück: "nil" | "number" | "string" | "boolean" | "table" | "function" | "thread" | "userdata"

pairs(t) -- iterierbare Liste von {key, value}
ipairs(t) -- iterierbare Liste von {index, value}

-- Konvertieren von Zeichenketten/unbekannten Formaten zu Zahlen mit tonumber(e [, base]):
x = tonumber("34")
x = tonumber("8f", 16)

-- ...und zu Strings:
x = tostring(101)

String API

Code Block
-- Concat:
y = "world"
s = "hello "..y -- s == "hello world"

s:upper()
s:lower()
s:len() -- gleich zu #s

s:find()
s:gfind()

s:match()
s:gmatch()

s:sub()
s:gsub()

s:rep()
s:char()
s:dump()
s:reverse()
s:byte()
s:format()

Math API

Code Block
math.abs math.acos math.asin math.atan math.atan2
math.ceil math.cos math.cosh math.deg math.exp
math.floor math.fmod math.frexp math.ldexp math.log
math.log10 math.max math.min math.modf math.pow
math.rad math.random math.randomseed math.sin math.sinh
math.sqrt math.tan math.tanh

math.sqrt(144)
math


EFS-spezifische Funktionen in LUA-Filtern und LUA-Fragetyp

Info

Bitte beachten Sie, dass Loop Variablen nicht in der LUA Umgebung unterstützt werden.

setVariableValue(varName, varValue)

Weist den Wert der angegebenen v_, c_ oder p_ Variable zu. Die Variable kann an beliebiger Stelle im Fragebogen ein- oder ausgeblendet sein. Der LUA-Fragetyp selbst stellt Variablen zur Verfügung, die zur Speicherung von Informationen verwendet werden können.

...

  • varName string - Variablenname

  • varValue string - Wert

setMasterDataValue(varName, varValue)

Diese Funktion wird nur bei Panel- und Stammdatenumfragen ausgeführt. Sie weist den Wert der angegebenen Stammdatenvariablen des aktuellen Teilnehmers zu oder überschreibt ihn und speichert die Variable in der Datenbank.

...

  • varName string - Variablenname

  • varValue string - Wert

setQuestionOutput(text)

Setzt die Ausgabe der LUA-Frage. Diese Funktion sollte nur einmal verwendet werden, da nachfolgende Aufrufe frühere Werte überschreiben, außerdem erzeugt diese Funktion nur eine Ausgabe während der Ausführung des Codes beim Rendern der Frage.

...

  • text string - Text, der in der Lua-Frage ausgegeben werden soll

remove_sys_miss(varValue) 

Konvertiert das System-Missing (Code -77) zu 0, um arithmetische Operationen zu erleichtern. Wenn Sie beispielsweise den LUA-Filter "return v_1+v_2+v_3>10" verwenden, werden System-Missings (Code -77) die Berechnungen negativ beeinflussen, daher kann "return remove_sys_miss(v_1)+remove_sys_miss(v_2)+remove_sys_miss(v_3)>10" verwendet werden, um dieses Problem zu vermeiden.

...

  • varValue mixed - die Variable, die verarbeitet werden soll, z. B. remove_sys_missing(_G["v_1"])

  • returns int

get_range_count(values, min_code, max_code)

Gibt zurück, wie oft die angegebenen Werte in dem von min_code und max_code angegebenen Bereich liegen. So ist beispielsweise der Bedingungsrückgabewert get_range_count({v_1,v_2,v_3,v_3,v_4,v_5},1,3)>2 wahr, wenn der Teilnehmer in den ersten drei Kategorien der durch v_1-v_5 dargestellten Matrixfrage mehr als zweimal geantwortet hat.

...

  • values array - Liste der Variablen, z. B. {v_1, v_2, v_3, v_4, v_5}

  • min_code mixed

  • max_code mixed

  • returns int

getQuotaDebitValue(id)

Gibt den Soll-Wert der Quote zurück.

...

  • id int - Quoten-ID

  • returns int

getQuotaCurrentValue(id)

Gibt den Ist-Wert der Quote zurück, z. B. setVariableValue("v_1", getQuotaCurrentValue(1)).

...

  • id int - Quoten-ID

  • returns int

getQuotaFillingDegree(id)

Gibt den Füllgrad der Quote zurück, z. B. setVariableValue("v_1", getQuotaFillingDegree(1)*100 .. " %").

...

  • id int - Quoten-ID

  • returns double

getQuotaIds()

Gibt eine Liste der verfügbaren Quoten-IDs zurück.

Datentypen

  • returns array

count(condition) 

Liefert die Anzahl der Teilnehmer, die der angegebenen Bedingung entsprechen, und kann verwendet werden, um den Teilnehmern Statistiken anzuzeigen oder dynamisch in Filtern zu leiten, abhängig von den Antworten der anderen Teilnehmer. WARNUNG! Diese Funktion hat Auswirkungen auf die EFS-Performance und sollte nur bei Umfragen mit geringer Beteiligung verwendet werden. Für Quotierungen verwenden Sie bitte die in EFS integrierte Quotenfunktionalität, da diese für diese Aufgabe effizienter ist.

...

  • condition string - bedingter Ausdruck, z. B. (v_1=1 AND v_2=2)

  • returns int or bool

in_list(list_id)

Prüft, ob das aktuelle list_element auch in der angegebenen Liste enthalten ist.

...

  • list_id string - Id of a list, e.g. "l_2"

  • returns bool

is_repeated_participation()

Diese Funktion prüft, ob der Teilnehmer bereits an der Umfrage teilgenommen hat, und ist nur bei Panelbefragungen (PA und MD) anwendbar.

...

  • returns int, 0 if false or 1 if true

is_assigned_in_or_below(check_metaname, metanames)

Prüft, ob der Teilnehmer Teil der angegebenen Einheiten oder Untereinheiten in der Orgstruktur des ES-Projekts ist. Gilt nur für die Mitarbeiterbefragung.

...

  • check_metaname string - Metaname

  • metanames array - Liste der Metanamen, die dem Teilnehmer zugerwiesen sind

  • returns bool

is_assigned_in(check_value, codes)

Prüft, ob der Metanamencode des Teilnehmers den angegebenen Unit-Metanamen (Array von Codes) zugeordnet ist. Gilt nur für die Mitarbeiterbefragung.

...

  • check_value string - Metaname

  • codes array - Code-Liste

  • returns bool

is_assigned_in_branch(check_metaname, metanames)

Prüft, ob der Teilnehmer in einem Teil des angegebenen Einheitenzweiges zugeordnet ist. Gilt nur für die Mitarbeiterbefragung.

...

  • check_metaname string - Metaname

  • metanames array - Liste der Metanamen, die dem Teilnehmer zugewiesen sind

  • returns bool

check_character_filter_any(needle, haystack)

Überprüft, ob sich die Needle-Zeichenkette in der Haystack-Liste von Zeichenketten befindet. Zeichenketten in Haystack können folgendermaßen voneinander getrennt werden: |, ",", ; oder -.

...

  • needle string

  • haystack string

  • returns bool

date([format [, time]])

Ersetzt os.date() und gibt eine Zeichenkette oder eine Tabelle zurück, die das Datum und die Uhrzeit enthält (formatiert in Übereinstimmung mit dem vorhandenen Zeichenkettenformat). Weitere Informationen finden Sie unter os.date documentation.

time([table])

Ersetzt os.time() und gibt beim Aufruf ohne Argumente die aktuelle Zeit zurück. Alternativ werden Datum und Uhrzeit zurückgegeben, die in der vorhandenen Tabelle angegeben sind. Weitere Informationen finden Sie unter os.time documentation.

Beispiele für LUA in EFS

Sperren von bestimmten IPs vom Zugriff auf eine Umfrage

Wenn Sie eine überschaubare Liste von IPs haben, die Sie für den Zugriff auf Ihre Umfrage ausschließen möchten, können Sie einen LUA-Filter verwenden, um diese Teilnehmer auszusortieren. Dieser Beispielcode blockiert die IPs 78.34.112.1, 78.34.112.2 und 78.34.112.3 und die Liste kann durch zusätzliche kommagetrennte IPs erweitert werden. Das letzte Element sollte kein Komma hinter sich haben.


Beispielstruktur

Quelltext
Code Block
languagedelphi
function Set (list)
  local set = {}
  for _, l in ipairs(list) do set[l] = true end
  return set
end

local blockedIps = Set {

"78.34.112.1",
"78.34.112.2",
"78.34.112.3" 
 
}
 
if blockedIps[remote_addr] then
  return false
else
  return true
end

Ein zufällig ausgewähltes Element des Tages allen Teilnehmern zeigen

Selektiert einmal täglich, stunden- oder minutenweise ein zufälliges Element aus einer Liste und speichert es in der Variable v_1 für jeden Teilnehmer in der definierten Zeit. Die Funktion math.randomseed setzt die Zufallszahl für die random-Funktion, wird immer die gleiche Zahl verwendet, so wird auch immer der gleiche Zufallswert zurückgegeben. Um die Größe eines Arrays zu erhalten, setzen Sie # vor den Namen des Arrays, z.B. #randomRestaurants.

Quelltext
Code Block
languagedelphi
local randomRestaurants = {
  "Indian Curry Basmati House",
  "Calypso Grillbar",
  "Rim Kong",
  "Hayati",
  "Metzgerei Kremer",
  "Nakwon",
  "KuroMaku Poke",
  "Sushi Ninja",
  "Vina Asia Express",
  "485Grad",
  "Osman Bey"
}
 
-- Initialize the randomiser with the current day, use "%y%m%d%H" for hours or "%y%m%d%H%M" for minutes
math.randomseed( date("%y%m%d") )
setVariableValue("v_1", randomRestaurants[math.random( #randomRestaurants )])

Ermitteln von Vorname, Nachname und Firmenname aus einer E-Mail-Adresse.

Dieses Beispiel nimmt die in v_1 gespeicherte E-Mail-Adresse und weist den Variablen v_10, v_11 und v_12 den Firmen-, Vor- und Nachnamen zu. Dies funktioniert bei E-Mail-Aliasen mit firstname.lastname@company.tld oder firstname_lastname@company.tld als Format. Wenn der Vor- oder Nachname nicht erkannt wird, wird der jeweiligen Variable kein Wert zugewiesen.  

Quelltext
Code Block
languagedelphi
-- pattern for company name
setVariableValue("v_10",_G["v_1"]:match("@([%w+%-_]*)%.?"):gsub("^%l", string.upper))
-- pattern for first name
setVariableValue("v_11",_G["v_1"]:match("^([%w%-]+)[%._]"):gsub("^%l", string.upper))
-- pattern for last name
setVariableValue("v_12",_G["v_1"]:match("[%._]([%w%-]+)@"):gsub("^%l", string.upper))

Auflösen des participant_country Codes

Wenn Sie in den Projekteigenschaften der Umfrage die Einstellung "Standort der Teilnehmer anhand der IP-Adresse ermitteln" aktiviert haben, speichert EFS den Code des Landes der Teilnehmer in der Variable participant_country. Derzeit gibt es keine Möglichkeit, diese Variable in eine andere Variable mit dem Label des Landes zu rekodieren. Mit dem Beispielcode wird der Code in einem Array nachgeschlagen und die Bezeichnung des Landes in v_1 gespeichert. Dies kann verwendet werden, um ein Textfeld vorab auszufüllen, wenn Sie nach dem Standort eines Benutzers fragen, der Beispielcode kann angepasst werden, um participant_country Codes mit Codes eines Auswahlfeldes für die Vorselektion abzugleichen.

Quelltext (aufklappen)
Code Block
languagedelphi
countries = {
            [-99]="Unknown",
            [1]="Satellite Provider",
            [2]="Other Country",
            [3]="Andorra",
            [4]="United Arab Emirates",
            [5]="Afghanistan",
            [6]="Antigua and Barbuda",
            [7]="Anguilla",
            [8]="Albania",
            [9]="Armenia",
            [10]="Angola",
            [11]="Asia/Pacific Region",
            [12]="Antarctica",
            [13]="Argentina",
            [14]="American Samoa",
            [15]="Austria",
            [16]="Australia",
            [17]="Aruba",
            [18]="Aland Islands",
            [19]="Azerbaijan",
            [20]="Bosnia and Herzegovina",
            [21]="Barbados",
            [22]="Bangladesh",
            [23]="Belgium",
            [24]="Burkina Faso",
            [25]="Bulgaria",
            [26]="Bahrain",
            [27]="Burundi",
            [28]="Benin",
            [29]="Saint Barthelemy",
            [30]="Bermuda",
            [31]="Brunei",
            [32]="Bolivia",
            [33]="Bonaire, Saint Eustatius and Saba",
            [34]="Brazil",
            [35]="Bahamas",
            [36]="Bhutan",
            [37]="Bouvet Island",
            [38]="Botswana",
            [39]="Belarus",
            [40]="Belize",
            [41]="Canada",
            [42]="Cocos Islands",
            [43]="Democratic Republic of the Congo",
            [44]="Central African Republic",
            [45]="Republic of the Congo",
            [46]="Switzerland",
            [47]="Ivory Coast",
            [48]="Cook Islands",
            [49]="Chile",
            [50]="Cameroon",
            [51]="China",
            [52]="Colombia",
            [53]="Costa Rica",
            [54]="Cuba",
            [55]="Cape Verde",
            [56]="Curacao",
            [57]="Christmas Island",
            [58]="Cyprus",
            [59]="Czechia",
            [60]="Germany",
            [61]="Djibouti",
            [62]="Denmark",
            [63]="Dominica",
            [64]="Dominican Republic",
            [65]="Algeria",
            [66]="Ecuador",
            [67]="Estonia",
            [68]="Egypt",
            [69]="Western Sahara",
            [70]="Eritrea",
            [71]="Spain",
            [72]="Ethiopia",
            [73]="Europe",
            [74]="Finland",
            [75]="Fiji",
            [76]="Falkland Islands",
            [77]="Micronesia",
            [78]="Faroe Islands",
            [79]="France",
            [80]="Gabon",
            [81]="United Kingdom",
            [82]="Grenada",
            [83]="Georgia",
            [84]="French Guiana",
            [85]="Guernsey",
            [86]="Ghana",
            [87]="Gibraltar",
            [88]="Greenland",
            [89]="Gambia",
            [90]="Guinea",
            [91]="Guadeloupe",
            [92]="Equatorial Guinea",
            [93]="Greece",
            [94]="South Georgia and the South Sandwich Islands",
            [95]="Guatemala",
            [96]="Guam",
            [97]="Guinea-Bissau",
            [98]="Guyana",
            [99]="Hong Kong",
            [100]="Heard Island and McDonald Islands",
            [101]="Honduras",
            [102]="Croatia",
            [103]="Haiti",
            [104]="Hungary",
            [105]="Indonesia",
            [106]="Ireland",
            [107]="Israel",
            [108]="Isle of Man",
            [109]="India",
            [110]="British Indian Ocean Territory",
            [111]="Iraq",
            [112]="Iran",
            [113]="Iceland",
            [114]="Italy",
            [115]="Jersey",
            [116]="Jamaica",
            [117]="Jordan",
            [118]="Japan",
            [119]="Kenya",
            [120]="Kyrgyzstan",
            [121]="Cambodia",
            [122]="Kiribati",
            [123]="Comoros",
            [124]="Saint Kitts and Nevis",
            [125]="North Korea",
            [126]="South Korea",
            [127]="Kuwait",
            [128]="Cayman Islands",
            [129]="Kazakhstan",
            [130]="Laos",
            [131]="Lebanon",
            [132]="Saint Lucia",
            [133]="Liechtenstein",
            [134]="Sri Lanka",
            [135]="Liberia",
            [136]="Lesotho",
            [137]="Lithuania",
            [138]="Luxembourg",
            [139]="Latvia",
            [140]="Libya",
            [141]="Morocco",
            [142]="Monaco",
            [143]="Moldova",
            [144]="Montenegro",
            [145]="Saint Martin",
            [146]="Madagascar",
            [147]="Marshall Islands",
            [148]="Macedonia",
            [149]="Mali",
            [150]="Myanmar",
            [151]="Mongolia",
            [152]="Macao",
            [153]="Northern Mariana Islands",
            [154]="Martinique",
            [155]="Mauritania",
            [156]="Montserrat",
            [157]="Malta",
            [158]="Mauritius",
            [159]="Maldives",
            [160]="Malawi",
            [161]="Mexico",
            [162]="Malaysia",
            [163]="Mozambique",
            [164]="Namibia",
            [165]="New Caledonia",
            [166]="Niger",
            [167]="Norfolk Island",
            [168]="Nigeria",
            [169]="Nicaragua",
            [170]="Netherlands",
            [171]="Norway",
            [172]="Nepal",
            [173]="Nauru",
            [174]="Niue",
            [175]="New Zealand",
            [176]="Oman",
            [177]="Panama",
            [178]="Peru",
            [179]="French Polynesia",
            [180]="Papua New Guinea",
            [181]="Philippines",
            [182]="Pakistan",
            [183]="Poland",
            [184]="Saint Pierre and Miquelon",
            [185]="Pitcairn",
            [186]="Puerto Rico",
            [187]="Palestinian Territory",
            [188]="Portugal",
            [189]="Palau",
            [190]="Paraguay",
            [191]="Qatar",
            [192]="Reunion",
            [193]="Romania",
            [194]="Serbia",
            [195]="Russia",
            [196]="Rwanda",
            [197]="Saudi Arabia",
            [198]="Solomon Islands",
            [199]="Seychelles",
            [200]="Sudan",
            [201]="Sweden",
            [202]="Singapore",
            [203]="Saint Helena",
            [204]="Slovenia",
            [205]="Svalbard and Jan Mayen",
            [206]="Slovakia",
            [207]="Sierra Leone",
            [208]="San Marino",
            [209]="Senegal",
            [210]="Somalia",
            [211]="Suriname",
            [212]="South Sudan",
            [213]="Sao Tome and Principe",
            [214]="El Salvador",
            [215]="Sint Maarten",
            [216]="Syria",
            [217]="Swaziland",
            [218]="Turks and Caicos Islands",
            [219]="Chad",
            [220]="French Southern Territories",
            [221]="Togo",
            [222]="Thailand",
            [223]="Tajikistan",
            [224]="Tokelau",
            [225]="East Timor",
            [226]="Turkmenistan",
            [227]="Tunisia",
            [228]="Tonga",
            [229]="Turkey",
            [230]="Trinidad and Tobago",
            [231]="Tuvalu",
            [232]="Taiwan",
            [233]="Tanzania",
            [234]="Ukraine",
            [235]="Uganda",
            [236]="United States Minor Outlying Islands",
            [237]="United States",
            [238]="Uruguay",
            [239]="Uzbekistan",
            [240]="Vatican",
            [241]="Saint Vincent and the Grenadines",
            [242]="Venezuela",
            [243]="British Virgin Islands",
            [244]="U.S. Virgin Islands",
            [245]="Vietnam",
            [246]="Vanuatu",
            [247]="Wallis and Futuna",
            [248]="Samoa",
            [249]="Yemen",
            [250]="Mayotte",
            [251]="South Africa",
            [252]="Zambia",
            [253]="Zimbabwe",
            [254]="Kosovo",
            [255]="Serbia and Montenegro",
            [256]="Netherlands Antilles"
}
setVariableValue("v_1",countries[_G["participant_country"]])

Aktuelle GMT-Zeit abrufen

Dieser Code gibt die serverseitige Zeit in GMT zurück und kann für datumsbezogene Berechnungen verwendet werden.

Beispielcode
Code Block
languagedelphi
setVariableValue("v_1", date("!%H %M"))

Vergleich der Häufigkeit der abgeschlossenen Teilnahmen

Die folgende alternative Filterbedingung prüft, welche von mehreren Möglichkeiten die Teilnehmer bisher bevorzugt haben:

...

  • Geschwindigkeit: Jedes count belastet den Server. In der obigen alternativen Filterbedingung werden counts für dieselbe Variable wiederholt ausgeführt. In der unteren LUA-Bedingung ist für jede Variable nur eine Zählanforderung erforderlich.

  • Kurz und übersichtlich: Je mehr Variablen zu prüfen sind, desto länger und verwirrender wird die alternative Filterbedingung. Im untenstehenden LUA-Filter werden dem Abschnitt "Konfiguration" einfach zusätzliche Variablen hinzugefügt.

  • Einfachere Wartung und Konfiguration:
    – Wenn Sie Änderungen vornehmen, müssen Sie lediglich die beiden Arrays im Abschnitt "Konfiguration" ändern.
    – Nicht-Programmierer können die Bedingung wiederverwenden, indem sie diese einfach durch Kopieren und Einfügen und ein paar kleine Änderungen übernehmen.

Quelltext
Code Block
languagedelphi
-- configuration
vars={"v_1","v_2","v_3"}
relevant_filter_vars={"v_1","v_2"}

-- no need to change anything below
counts={}
max=nil
max_var=nil
for k,v in ipairs(vars) do
  local count=count(v)
  if max==nil or max<count then
    max_var=v
    max=count
  end
end

for k,v in pairs(relevant_filter_vars) do
  if v==max_var then
    return true
  end
end
return false

Vergleich von Antwortmustern

Der Filter prüft, ob die Summe der Antworten in einem ersten Zweig gleich der Summe der Antworten in einem zweiten Zweig ist. Im folgenden Beispiel wird aus Gründen der Kürze nur eine dieser Summen gebildet. Die Umfrage enthält Variablen im Bereich v_135 bis v_173.

...

Mit LUA kann dies viel einfacher erreicht werden, indem eine for-Schleife erstellt und ein Zähler im Bereich von 135 bis 173 übergeben wird, alternativ kann der for-Schleife ein Array von spezifischen Variablen-IDs zugeführt werden.

Quelltext
Code Block
languagedelphi
sum=0
for i=135,173 do
  if _G["v_"..i]>0 then
    sum=sum+1
  end 
end

Mein Code funktioniert nicht, was soll ich tun?

Überprüfen Sie zunächst, ob im Umfragemenü Triggerfehler gemeldet wurden, EFS zeigt den Umfrageteilnehmern in der Befragung keine LUA-Fehler an. Sie können auch im Menü Test und Validierung -> Projektprüfung, auf Fehler in "Fehler während des Umfragedurchlaufs" klicken, um eine Liste aller Triggerfehler in Ihrer Umfrage zu erhalten. Überprüfen Sie auch den Ausführungszeitpunkt des LUA Codes an, ob dieser beim Laden der Seite oder erst beim Absenden der Seite verarbeitet wird und ob alle benötigten Variablen beim Ausführen des LUA Codes bereits vom Teilnehmer ausgefüllt wurden.

...

Bitte beachten Sie, dass das EFS-Supportteam Ihnen nicht bei der Fehlerbehebung Ihres LUA-Codes helfen kann.

Nützliche LUA-Ressourcen

...