Source de données
Un champ déroulant qui vous permet de choisir parmi toutes les sources de données téléchargées sur le centre de commande Frontline. Cela vous permet d'associer dynamiquement votre composant à différentes sources de données.
Exemple
"datasource": {
"noOptionsInfo": "No datasources found!",
"title": "Datasource",
"inputType": "datasource-selection",
"revisionSelection": true,
"required": true,
"info": "Select the datasource you want to use.",
"value": null
}
Exemple d'utilisation
Cette configuration sera généralement utilisée en conjonction avec les datasource-actions. Par exemple, vous pouvez enregistrer la première ligne de la tâche de source de données actuelle dans le contexte, manipuler la ligne selon vos besoins (extraire ou modifier les données), puis enregistrer la ligne modifiée dans la tâche de source de données.
Sauvegarder la première ligne ([0], pourrait être remplacé par une variable d'index) dans votre contexte. La variable supplémentaire contenant la version de la chaîne de caractères de la ligne est pratique pour le débogage mais peut être laissée de côté.
<setvar id="row_to_context">
<context_of>root</context_of>
<context_update>
<param name="current_row" type="object">?{ context.ds_§{ replace validation.datasource.value.id '-' '' }§[0] }?</param>
<param name="current_row_to_string" type="string"><![CDATA[?{JSON.stringify(context.current_row)}?]]></param>
</context_update>
</setvar>
Extraire des données, par exemple pour les afficher dans l'interface utilisateur :
<setvar id="get_row_data">
<context_of>workflow</context_of>
<context_update>
<param name="material" type="string"><![CDATA[ ?{ context.current_row.payload["Material Name"].value }? ]]></param>
</context_update>
</setvar>
Modification des colonnes de données présentes dans votre source de données :
<setvar id="set_counts">
<context_of>root</context_of>
<context_update>
<param name="current_row" type="object"><![CDATA[ ?{
context.current_row.payload["Outcome"].value = context.outcome;
context.current_row.payload["Assigned to User"].value = appcontext.client.user.id;
context.current_row.payload["Assignment Name"].value = appcontext.task.name;
context.current_row.payload["Done Date"].value = new Date(Date.now()).toUTCString();
context.current_row.status = 'DONE';
context.current_row;
}? ]]></param>
<param name="current_row_to_string" type="string"><![CDATA[?{JSON.stringify(context.current_row)}?]]></param>
</context_update>
</setvar>
Propagation de la ligne modifiée vers la tâche de la source de données.
<update_datasource_task id="update_ds_with_row">
<param name="datasource_task_id" type="string">?{context.ds_§{ replace validation.datasource.value.id '-' '' }§_task.id}?</param>
<param name="rows">#{current_row}</param>
<param name="payload_variable_name">ds_§{ replace validation.datasource.value.id '-' '' }§</param>
</update_datasource_task>