Bloco de código |
---|
|
function createDataset(fields, constraints, sortFields)
{
var NOME_DATASERVER = "FisEtdDataBR";
try
{
// carrega o webservice...
var authService = getWebService( |
Deck of Cards |
---|
id | Criação de Script Manual |
---|
|
Card |
---|
|
|
Cadastrar um serviço do tipo Web Services dentro do Fluig pelo Fluig Studio (opção Incluir Serviços na aba Visualizar Serviços) apontando para WSDL do Web Service RM disponibilizado para integração.
Nota: A criação de DataSets que consomem WebServices do RM pode ser obtidos modificando o template abaixo:
Bloco de código |
---|
|
function createDataset(fields, constraints, sortFields)
{
var NOME_DATASERVER = "FisEtdDataBR";
try
{
// carrega o webservice...
var authService = getWebService();
// monta o filtro...
var parsedConstraints = parseConstraints(constraints, true);
// faz a leitura...
var result = authService.readView(NOME_DATASERVER, parsedConstraints.filter, parsedConstraints.context);
// carrega o xml...
var xmlResultados = new XML(result);
// verifica se a tabela é válida...
if(xmlResultados.GETD == null){
return logError("A tabela GETD nao foi encontrada: " + NOME_SERVICO + " - " + CAMINHO_SERVICO);
}
// inicializa o dataset do resultado...
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("DESCRICAO");
dataset.addColumn("CODETD");
//
preenchemonta o
datasetfiltro...
for each(item in xmlResultados.GETD)
{
dataset.addRow(new Array(
item.DESCRICAO.toString()
, item.CODETD.toString()
)var parsedConstraints = parseConstraints(constraints, true);
// faz a leitura...
var result = authService.readView(NOME_DATASERVER, parsedConstraints.filter, parsedConstraints.context);
}
//
retorna.carrega o xml...
return datasetvar xmlResultados = new XML(result);
}
catch (e)
{ // verifica se a tabela é válida...
if
(
exmlResultados.GETD == null){
e = "Erro desconhecido!";
var mensagemErro = "Ocorreu um erro ao ler dados do RM:return logError("A tabela GETD nao foi encontrada: " + NOME_SERVICO + " - " +
eCAMINHO_SERVICO);
return logError(mensagemErro);
}
}
function logError(mensagemErro)
{
var dataset }
// inicializa o dataset do resultado...
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("
erroDESCRICAO");
dataset.
addRow(new Array(mensagemErro)addColumn("CODETD");
log.error(mensagemErro);
return dataset;
}
//
carregapreenche o
web service
function getWebService(){
var NOME_SERVICO = "WSDATASERVER";
var CAMINHO_SERVICO = "com.totvs.WsDataServer";
var dataServerService = ServiceManager.getServiceInstance(NOME_SERVICO);
if(dataServerService == null){
throw "Servico nao encontrado: " + NOME_SERVICOdataset...
for each(item in xmlResultados.GETD)
{
dataset.addRow(new Array(
item.DESCRICAO.toString()
, item.CODETD.toString()
));
}
// retorna...
return dataset;
}
var serviceLocator = dataServerService.instantiate(CAMINHO_SERVICO);
if(serviceLocatorcatch (e)
{
if (e == null)
{ e = "Erro desconhecido!";
throwvar
"InstanciamensagemErro
do=
servico"Ocorreu
naoum
encontrada:erro
"ao
+ler
NOME_SERVICOdados
+do
"RM:
- " +
CAMINHO_SERVICOe;
return logError(mensagemErro);
}
}
function logError(mensagemErro)
{
var
servicedataset =
serviceLocatorDatasetBuilder.
getRMIwsDataServernewDataset();
dataset.addColumn("erro");
ifdataset.addRow(
service == null){
throw "Instancia do dataserver do invalida: " +new Array(mensagemErro));
log.error(mensagemErro);
return dataset;
}
// carrega o web service
function getWebService(){
var NOME_SERVICO
+= "
- " +WSDATASERVER";
var CAMINHO_SERVICO = "com.totvs.WsDataServer";
}
var
serviceHelperdataServerService =
dataServerServiceServiceManager.
getBeangetServiceInstance(NOME_SERVICO);
if(
serviceHelperdataServerService == null){
throw "
InstanciaServico
do service helper invalidanao encontrado: " + NOME
_SERVICO + " - " + CAMINHO_SERVICO;
}
var
authServiceserviceLocator =
serviceHelper.getBasicAuthenticatedClient(service, "com.totvs.IwsDataServer", 'mestre', 'totvs');
if(serviceHelper == null)dataServerService.instantiate(CAMINHO_SERVICO);
if(serviceLocator == null){
throw "Instancia do
authservico
servicenao
invalidaencontrada: " + NOME_SERVICO + " - " + CAMINHO_SERVICO;
}
return authService;
}
//Transforma o conceito de constraints do Fluig para o Filtro do TBC.
function parseConstraints(constraints, filterRequired)
{
// inicializa o resultado...
var result = [];
result.context = "";
// inicializa o filtro...
var filter = "";
// varre as contraints...
for each(con in constraints) {
var fieldName = con.getFieldName().toUpperCase();
if (fieldName == "RMSCONTEXT")
{
result.context = con.getInitialValue();
continue;
}
filter += "(";
if (fieldName == "RMSFILTER")
{
filter += con.getInitialValue();
}
else
{
if (con.getInitialValue() == con.getFinalValue() || isEmpty(con.getFinalValue()))
{
filter += con.getFieldName();
var isLike = false;
switch(con.getConstraintType())
{
case ConstraintType.MUST:
filter += " = ";
break;
case ConstraintType.MUST_NOT:
filter += " = ";
break;
case ConstraintType.SHOULD:
filter += " LIKE ";
isLike = true;
break;var service = serviceLocator.getRMIwsDataServer();
if(service == null){
throw "Instancia do dataserver do invalida: " + NOME_SERVICO + " - " + CAMINHO_SERVICO;
}
var serviceHelper = dataServerService.getBean();
if(serviceHelper == null){
throw "Instancia do service helper invalida: " + NOME_SERVICO + " - " + CAMINHO_SERVICO;
}
var authService = serviceHelper.getBasicAuthenticatedClient(service, "com.totvs.IwsDataServer", 'mestre', 'totvs');
if(serviceHelper == null){
throw "Instancia do auth service invalida: " + NOME_SERVICO + " - " + CAMINHO_SERVICO;
}
return authService;
}
//Transforma o conceito de constraints do Fluig para o Filtro do TBC.
function parseConstraints(constraints, filterRequired)
{
// inicializa o resultado...
var result = [];
result.context = "";
// inicializa o filtro...
var filter = "";
// varre as contraints...
for each(con in constraints) {
var fieldName = con.getFieldName().toUpperCase();
if (fieldName == "RMSCONTEXT")
{
result.context = con.getInitialValue();
continue;
}
filter += "(";
if (fieldName == "RMSFILTER")
{
filter += con.getInitialValue();
}
else
{
if (con.getInitialValue() == con.getFinalValue() || isEmpty(con.getFinalValue()))
{
filter += con.getFieldName();
var isLike = false;
switch(con.getConstraintType())
{
case ConstraintType.
SHOULD_NOTMUST:
filter += "
NOT=
LIKE ";
isLike = truebreak;
break;
case ConstraintType.MUST_NOT:
}
filter +=
getFormattedValue(con.getInitialValue(), isLike)" = ";
}
break;
else
{
case ConstraintType.SHOULD:
filter += con.getFieldName();
filter += "
BETWEENLIKE ";
filterisLike
+=
getFormattedValue(con.getInitialValue(), false);
true;
break;
case ConstraintType.SHOULD_NOT:
filter += " NOT
ANDLIKE ";
isLike
= true;
break;
}
filter += getFormattedValue(con.
getFinalValuegetInitialValue(),
falseisLike);
}
else
}{
filter +=
") AND ";
}
con.getFieldName();
filter += " BETWEEN ";
if (filter.length == 0)
{ filter += getFormattedValue(con.getInitialValue(), false);
if(filterRequired){
filter += "
1=2 AND ";
}
filter +=
else{getFormattedValue(con.getFinalValue(), false);
}
}
filter += "
1=1) AND ";
}
}
else
filter = filter.substring(0, filter.length-5);if (filter.length == 0)
{
// guarda o filtro...
result. if(filterRequired){
filter =
filter"1=2";
}
// retorna o resultado...
return result;
}
function isEmpty(str) {
return (!str || 0 === str.length);
}
function getFormattedValue(value, isLike){
if(isLike){
return "'%" + value + "%'";
}
else{
return "'" + value + "'";
}
} Card |
---|
id | p2 |
---|
label | Passo 2 |
---|
title | Passo 2 |
---|
|
Utilizar o serviço cadastrado nos pontos requeridos no escopo da integração. Exemplo: eventos de formulário, eventos de workflow e datasets. |