Ausgabesteuerungen für Mehrfachantwort
Implementieren Sie Steuerungen, die mehrere Schritte umfassen, um Benutzereingaben zu erhalten.
Verwenden Sie die folgende API, um Kontextdaten für Steuerelemente mit mehreren Ausgaben zu konfigurieren.
Häufige Anwendungsfälle
- So erreichen Sie die Paginierung von Auswahlen: „page_no“, „pagination_length“, aktualisiert im eingehenden, basierend auf der Schaltfläche „Weiter/Zurück“, wird ausgehend gelesen.
- Schrittweise Antwort der Datumsauswahl, z. B. erstes Jahr, dann Monat und dann Datumsauswahl.
Die folgenden APIs sind nur in eingehenden und ausgehenden Umwandlern verfügbar.
sn_cs.VASystemObject.setProviderUserContext( key, contextData, providerAppId, providerUserId);
sn_cs.VASystemObject.getProviderUserContext(key, providerAppId, providerUserId);
sn_cs.VASystemObject.removeProviderUserContext(key, providerAppId, providerUserId);
sn_cs.VASystemObject.removeAllProviderUserContext(providerAppId, providerUserId)Der ausgehende Umwandler des Auswahlsteuerelements kann aktuelle Seitendetails in Benutzer-contextData speichern.
var paginationData = {
"page_index": 1,
"pagination_length": 2
}
};
sn_cs.VASystemObject.setProviderUserContext("picker_pagination", paginationData, providerAppId, providerUserId, );Der eingehende Umwandler des Auswahlsteuerelements kann aktuelle Seitendetails aus dem Benutzerkontext abrufen.
var paginationData = sn_cs.VASystemObject.getProviderUserContext("picker_pagination", providerAppId, providerUserId);Beispielcode für ausgehenden Umwandler für Auswahlsteuerelement
(function execute(inputs, outputs) {
var control = inputs.rich_control;
var payload = inputs.payload;
var appId = payload.appId;
var userId = payload.userId;
var paginationData = sn_cs.VASystemObject.getProviderUserContext('picker_control', appId, userId);
paginationData = JSON.parse(paginationData);
//First time when the outbound picker is called when selecting the topic.
if (paginationData == null) {
paginationData = {
'page_index': 1,
'pagination_length': 5
};
sn_cs.VASystemObject.setProviderUserContext('picker_control', paginationData, appId, userId);
}
var page_index = paginationData['page_index'];
var pagination_length = paginationData['pagination_length'];
var start = (page_index - 1) * pagination_length;
var end = page_index * pagination_length;
if (control['options']) {
var options = control['options'];
var optionsLength = options.length;
if (end > optionsLength)
end = optionsLength;
var picker = control["label"] + ":";
if (start > 0)
picker += "\n" + "*" + ": " + "prev";
for (var x = start; x < end; x++) {
gs.log("here " + x + " : " + options[x]);
picker += "\n" + (x + 1) + ": " + options[x].label;
}
if (end < optionsLength)
picker += "\n" + "#" + ": " + "next";
}
outputs.text_message = picker;
})(inputs, outputs);
Example Picker Control Inbound Tranformer
(function execute(inputs, outputs) {
var request_context = inputs.request_context;
var rich_control = inputs.rich_control;
var appId = request_context.appId;
var userId = request_context.userId;
var selectedValue = request_context["typed_value"];
var result = {};
result["value"] = "";
result["search_text"] = selectedValue;
var options = rich_control['options'];
var paginationData = sn_cs.VASystemObject.getProviderUserContext('picker_control', appId, userId);
paginationData = JSON.parse(paginationData);
switch (selectedValue) {
case 'prev': {
--paginationData["page_index"];
result["send_prev_control"] = true;
}
break;
case 'next': {
++paginationData["page_index"];
result["send_prev_control"] = true;
}
break;
default: {
var selectedIndex = Number(selectedValue) - 1;
if (paginationData["page_index"] != undefined && paginationData["pagination_length"] != undefined) {
var highestOptionInPage = paginationData["page_index"] * paginationData["pagination_length"];
if (selectedIndex >= 0 && selectedIndex < highestOptionInPage) {
var selectedOption = options[selectedIndex];
result["value"] = selectedOption.value;
result["search_text"] = "";
}
} else {
var selectedOption = options[selectedIndex];
result["value"] = selectedOption.value;
result["search_text"] = "";
}
}
}
sn_cs.VASystemObject.setProviderUserContext('picker_control', paginationData, appId, userId);
outputs.result = result;
})(inputs, outputs);