Hoje vamos falar sobre "como chamar uma action no Script Include". Se você já precisou fazer uma integração via IntegrationHub, deve estar se perguntando porque você chamaria uma action via Script Include ao inves de usar direto a action na chamada de um flow designer. Sabemos que o comum é usar actions dentro do flow designer, chamar fora é apenas mais uma das possibilidades para atender algum requisito. Um exemplo disso é quando toda a estrutura de integração foi construida no IntegrationHub, mas você precisa de chamar uma integração no Service Portal (dentro do widget), onde não terá a necessidade de seguir um fluxo no flow designer, ao invés de colocar o script direto no widget, como boas praticas você cria o Script Include que poderá ser reutilizado para o mesmo proposito. Lembrando que existem outras possibilidades e você deve sempre considerar o licenciamento do cliente para integrações via IntegrationHub.
Abaixo temos alguns exemplos da estrutura dentro do Script Include.
Exemplo 1 - Retorna todo output conforme criação da action.
getCompanyQuote: function(symbol) {
try {
var inputs = {};
inputs['symbol'] = symbol; //todos input(s) criado(s) dentro da action
seguem esse padrão ao ser inserido aqui.
//Executa de forma síncrona: Executa em primeiro plano. O código snippet tem
acesso aos outputs.
//var que chama a action criado no flow designer e seta parametro dentro
do(s) input(s).
var outputs = sn_fd.FlowAPI.executeAction('global.get_company_quote', inputs);
//retorna dados via output(s) conforme definido na action.
return outputs;
} catch (ex) {
var message = ex.getMessage();
gs.error("ERROR getCompanySearch: " + message);
}
},
Exemplo 2 - Retorna apenas o response_body, caso tenha criado algum objeto especifico na action, você pode trocar o response_body pelo seu output que o atenda. E se necessário retorne todos os outputs e dê um dot walking conforme requisito.
getCompanySearch: function(keyword) {
try {
var inputs = {};
inputs['keyword'] = keyword; //todos input(s) criado(s) dentro da action
seguem esse padrão ao ser inserido aqui.
//Executa de forma síncrona: Executa em primeiro plano. O código snippet
tem acesso aos outputs.
//var que chama a action criado no flow designer e seta parametro dentro
do(s) input(s).
var outputs = sn_fd.FlowAPI.executeAction('global.get_company_search', inputs);
//Nota: os outputs só podem ser recuperados quando a execução é sincronizada.
//converte output em JSON e dá um dot walking no 'response_body'
(conversão necessária apenas não tenha feito nenhum tratamento no payload direto na action e
ela ainda estiver como string).
outputs = JSON.parse(outputs['response_body']);
//retorna dados conforme definido na var outputs da linha anterior.
return outputs;
} catch (ex) {
var message = ex.getMessage();
gs.error("ERROR getCompanySearch: " + message);
}
},
Para mais informações consulte FlowAPI Methods Scripting with Flows, Subflows, and Actions | ServiceNow Developer
Nenhum comentário:
Postar um comentário