Fonte de dados
Um campo suspenso que permite selecionar de todas as fontes de dados carregados no Frontline Command Center. Isto permite associar dinamicamente seu componente a diferentes fontes de dados.
Exemplo
"datasource": {
"noOptionsInfo": "No datasources found!",
"title": "Datasource",
"inputType": "datasource-selection",
"revisionSelection": true,
"required": true,
"info": "Select the datasource you want to use.",
"value": null
}
Exemplo de uso
Esta configuração será tipicamente usada em conjunto com as ações da fonte de dados. Por exemplo, você poderia salvar a primeira linha da tarefa atual da fonte de dados no contexto, manipular a linha de acordo com suas necessidades (extrair ou alterar dados), e então salvar a linha alterada de volta para a tarefa da fonte de dados.
Salvando a primeira linha ([0], poderia ser substituída por uma variável de índice) para seu contexto. A variável adicional contendo a versão em cadeia da linha é conveniente para depuração, mas pode ser deixada de fora.
<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>
Extrair dados, por exemplo, para mostrá-los na UI:
<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>
Alteração das colunas de dados presentes em sua fonte de dados:
<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>
Propagando a linha alterada de volta à tarefa de fonte de dados.
<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>