Consultar Dataset via WS por sistema externo

Olá pessoal, existe a possibilidade de consultar um DATASET customizado ou interno do Fluig por um sistema externo via API REST ou Webservice SOAP?

1 curtida

Bom dia Romulo,

Tem sim, você vai precisar consumir a API “/api/public/ecm/dataset/datasets”.
Mas para consumir você vai precisar de uma autenticação oAuth, você pode pelo painel de controle gerar o usuário de autenticação e gerar a “key” e o “secret”.

Exemplo de consumo:
obs.: Precisa da biblioteca “cryptojs”.


//FUNÇÃO DE CHAMADA DE DATASET GENÊRICA
function getDatasetExterno(dataset, filtros, cb) {
        var retorno;
        var oauth = OAuth({
            consumer: {
                'key': '{consumerKey}', // nome do aplicativo que você criou
                'secret': '{consumerSecret}' // nome do aplicativo que você criou
            },
            signature_method: 'HMAC-SHA1',
            hash_function(base_string, key) {
                return CryptoJS.HmacSHA1(base_string, key).toString(CryptoJS.enc.Base64);
            },
            nonce_length: 6
        });

        var request_data = {
            url: WCMAPI.serverURL + '/api/public/ecm/dataset/datasets',
            method: 'POST'
        };
		
        //type of the constraint(1 - MUST, 2 - SHOULD, 3 - MUST_NOT)
        var data = {
            "name": dataset,
            "fields": [],
            "constraints": filtros,
            "order": []
        }

		var token = {
			'key': '{sua key}',
			'secret': '{seu secret}'
		}

        $.ajax({
            url: request_data.url,
            contentType: 'application/json',
            crossDomain: true,
            async: false,
            type: request_data.method,
            data: JSON.stringify(data),
            headers: oauth.toHeader(oauth.authorize(request_data, token))
        }).fail(function(e, f) {
            console.log("deu ruim!");
        }).success(function(f) {
            if (f.content.values.length > 0) {
                console.log(f.content.values);
				cb(f.content);
            } else {
               console.log("Deu ruim tambem!");
            }
        });
		
		
};		

//CONSUMO DA FUNÇÃO GENERICA		
var filtro = [{
	_field: "",
	_initialValue: "",
	_finalValue:"",
	_type: 1, //type of the constraint(1 - MUST, 2 - SHOULD, 3 - MUST_NOT)
	_likeSearch: false
}, {
	_field: "",
	_initialValue: "",
	_finalValue: "",
	_type: 1, //type of the constraint(1 - MUST, 2 - SHOULD, 3 - MUST_NOT)
	_likeSearch: false
}];
getDatasetExterno("colleague", filtro, function(data){
	console.log("EXECUTOU CALLBACK",data);
});
4 curtidas

Excelente Willian, vou tentar dessa forma.

Obs: Gostei do console “deu ruim” kkkk

1 curtida

Boa tarde eu postei aqui fórum os arquivos e um passo a passo vou achar o link e te falo

Bom dia Daniel,

Se puder compartilhar o link lhe agradeço :grinning:

Opa, isso funcionou pra você pessoal?

Eu não precisei utilizar porque fiz a consulta no Datasul com Progress.

Ah entendi, estou com a mesma necessidade que tu tinhas nesse tópico. Mas to tentando fazer funcionar e ta caindo no “deu ruim!” kkk @Willian_Laynes consegue salvar nós mestre?

Você já criou as chaves (token, app e etc) no fluig?

Opa, agora tá funcionando. Tive que mudar alguns parâmetros, mas funcionou!!

1 curtida

Desculpa, vi só agora…não estou conseguindo acompanhar muito essa semana. Que bom que deu certo.

Pessoal,

Alguém tem o arquivo CryptoJS.

Obrigado,

Romulo, boa tarde!
Você poderia mandar um exemplo de como consumir no progress um dataset do fluig por favor.