Categorias
TOTVS Fluig

TOTVS FLUIG – Como resolver o erro PKIX path validation failed

Olá, Fluiger!

Atualmente, estou desenvolvendo um projeto Fluig integrado à uma API do SAP, para uma empresa da Colômbia. O primeiro passo para se comunicar com essa API, foi criar um serviço para guardar o Domínio, e depois só invocar esse serviço adicionando o endpoint, e as credenciais no corpo da requisição.

Mas, ao tentar fazer a primeira requisição, neste caso a de LOGIN,

retornou esse erro de segurança do Java “PKIX path validation failed: java.security.cert.CertPathValidatorException”.

Em uma busca rápida no Google, localizamos o motivo desse erro:

O erro acontece porque o servidor Java (JBoss/Wildfly) onde seu Fluig está rodando não confia no certificado SSL/TLS apresentado pela API HTTPS.

Isso geralmente ocorre por dois motivos:

  1. A API está usando um certificado autoassinado (self-signed).
  2. A API está usando um certificado assinado por uma Autoridade Certificadora (CA) interna ou privada, que não está na lista de CAs confiáveis padrão do Java.

Para resolver isso, é necessário “ensinar” o Java do seu Fluig a confiar neste certificado.
Ou seja, precisamos pegar o arquivo do certificado da API e dizer pro Java do Fluig confiar nele.

IMPORTANTE:  As instruções abaixo só são aplicáveis, caso você tenha acesso total ao servidor Fluig da sua empresa (on premise), e se o servidor for Windows. Possa ser que em servidores Linux, as instruções sejam diferentes.

Mas antes de qualquer coisa, precisamos garantir que a variável de ambiente JAVA_HOME esteja configurada corretamente:

  • No servidor do Fluig, acesse Painel de Controle > Sistema e Segurança > Sistema > Configurações avançadas do sistema
  • Em Propriedades do Sistema > aba Avançado > Variáveis de Ambiente
  • Em variáveis do sistema procure pela variável JAVA_HOME e edite a mesma. Deve ser algo como: C:\fluig\jdk-64. Caso não exista, é só criá-la.

Após cadastrado a variável JAVA_HOME, encontre a variável path. Dentro dela, deve existir a variável %JAVA_HOME%\bin Caso não exista, é só adicioná-la.

Agora sim, podemos seguir com os passos do Certificado da API:

  • Acesse a URL da API HTTPS no seu navegador.
  • Clique no cadeado ao lado da URL.
  • Vá em “A conexão é segura” -> “O certificado é válido”.
  • Vá na aba Detalhes.
  • Clique em Exportar (ou “Copiar para Arquivo…”).
  • Salve o certificado. Escolha o formato “Base-64 encoded X.509 (.CER)”.

    Eu salvei na pasta de downloads

Em seguida, precisamos localizar o arquivo CACERTS que fica na pasta de instalação do Java (JDK/JRE) que o meu Fluig (JBoss/Wildfly) está usando. No meu caso, é C:\fluig\jdk-64\lib\security\cacerts. Salve esse caminho.

Agora, abra o Prompt de Comando (CMD) do seu Windows, navegue até a pasta BIN que fica na pasta de instalação do Java (JDK/JRE) que o meu Fluig (JBoss/Wildfly) está usando. Em seguida, digite o comando a seguir, substituindo api_sap pelo nome que você atribuiu ao seu arquivo de certificado, em seguida o caminho que você o salvou, e em seguida o caminho completo até a pasta CACERTS

keytool -import -alias “api_sap” -file “C:\Users\Administrator\Downloads\api_sap.crt” -keystore “C:\fluig\jdk-64\lib\security\cacerts”

Ao pressionar a tecla ENTER, o keytool pedirá a senha da keystore cacerts. A senha padrão de fábrica do Java é changeit
O keytool perguntará se você confia no certificado. Digite yes e pressione a tecla ENTER.
Se tudo der certo, será exibida uma mensagem que o certificado foi adicionado com sucesso à keystore.

Por último, será necessário reiniciar os serviços do Fluig.

E após a reinicialização, a API poderá ser acessada com sucesso!

E ai!? Você gostou do conteúdo de Fluig de hoje? Deixe o seu comentário!
Forte abraço!!!

Fluig é uma marca registrada da Totvs S.A.
Fontes que me ajudaram a chegar na solução deste problema:

Categorias
TOTVS Fluig

TOTVS FLUIG – Como consultar a url do servidor de forma dinâmica (fdn_paramgeral)


Olá, Fluiger!

Se em algum momento, você necessitar desenvolver uma solução dentro do Fluig, que utiliza a URL do Fluig, e a sua empresa diversas bases, como (Dev, Homologação e/ou Produção), você não poderá deixar a url chumbada no código. Senão, terá problemas ao exportar para as diferentes bases.

Para tornar o seu código dinâmico, e trabalhar independente do servidor atual, siga os passos a seguir:

1 – Acesse o menu PAINEL DE CONTROLE >> DESENVOLVIMENTO >> SERVIÇOS, e garanta que existe criado o serviço JDBC – AppDS.

2 – Acesse o menu PAINEL DE CONTROLE >> DESENVOLVIMENTO >> DATASETS, clique no botão NOVO DATASET >> SIMPLES.

3 – Clique em SERVIÇO, e escolha a opção AppDS. Em seguida, clique na lupa para buscar uma tabela.

4 – Clique na caixa de pesquise, e busque por fdn_paramgeral. Em seguida, selecione o resultado.

5 – Insira o CÓDIGO e DESCRIÇÃO do dataset que você criará (eu prefiro repetir o nome da tabela), e clique em SALVAR.

6 – Teste o dataset, e visualize os resultados, buscando por fdn_paramgeral ou o nome que você deu para o seu dataset, clique em MAIS AÇÕES da respectiva linha, e clique em CONSULTAR.

7 – Serão exibidos todos os parâmetros do servidor atual, em especial o que desejamos nesse tutorial, que é o fluig/server.url .

Pronto! Agora, é só consumir a coluna DATA_VALUE desse dataset em qualquer solução, filtrando a coluna DATA_KEY com o valor fluig/server.url, como no exemplo abaixo:

function getServidorAtual(){
		var parametros = []

		var c1 = DatasetFactory.createConstraint("DATA_KEY", 'fluig/server.url', 'fluig/server.url', ConstraintType.MUST);
		var dsParams = DatasetFactory.getDataset("fdn_paramgeral", null, [c1], null);
	
		for (var j = 0; j < dsParams.rowsCount; j++) {
			parametros.push(dsParams.getValue(j, "DATA_VALUE") + "");
		}

		return parametros
	}

E ai!? Você gostou do conteúdo de Fluig de hoje? Deixe o seu comentário!
Forte abraço!!!

Fluig é uma marca registrada da Totvs S.A.

Categorias
TOTVS Fluig

TOTVS FLUIG – Criação de Usuários em Massa via API UserServiceRest

Olá, Fluiger!
Há alguns dias, fechei um contrato com um cliente que contratou o Fluig recentemente, e não possui usuários cadastrados além do Admin.

Como vocês já sabem, não há uma funcionalidade nativa de cadastro de usuários em massa, no Painel de Controle do Fluig.

Imagine que parto, cadastrar 500 usuários manualmente?

Ainda bem que temos a API wcm/user/create que faz parte do recurso UserServiceRest, na api antiga do Fluig.

Este endpoint aceita somente 1 usuário por vez, assim como a rotina do Painel de Controle. Mas, com Javascript, podemos criar um código que declara um array de objetos de usuários, percorre-os em um loop, e chama a API a cada iteração.

Este código pode ser executado no console do seu navegador, mas você deve se atentar as seguintes premissas:

1 – O usuário logado na plataforma deve possuir o papel admin.
2 – Garantir que o contexto javascript do seu console, esteja apontando para uma pagina do Fluig. Dica: Eu sempre abro uma página de um formulário de processo, e executo lá. Sempre dá certo!

Agora, é só colar o código abaixo, e pressionar ENTER.

var users = [
    {
        login: "jorgebrigliadori", // Usado para logar na plataforma
        firstName: "Jorge",                           
        lastName: "Brigliadori",                      
        fullName: "Jorge Brigliadori",
        password: "MinhaSenh@81",
        email: "jorgebrigliadori@minhaempresa.com.br" 
    },
    {
        login: "mariasilva",
        firstName: "Maria",
        lastName: "Silva",
        fullName: "Maria Silva",
        password: "MinhaSenh@82",
        email: "mariasilva@minhaempresa.com.br"
    }
    // Adicione mais usuários conforme necessário
];

var sucesso = [];
var falhas = [];

async function processarUsuarios() {
    for (let i = 0; i < users.length; i++) {
        let user = users[i];

        try {
            await new Promise((resolve) => {
                $.ajax({
                    method: "POST",
                    url: "https://fluig.minhaempresa.com.br/api/public/wcm/user/create",
                    contentType: "application/json",
                    data: JSON.stringify(user),
                    success: function () {
                        sucesso.push(user.login);
                        console.log(`Usuário ${user.login} criado com sucesso.`);
                    },
                    error: function () {
                        falhas.push(user.login);
                        console.error(`Erro ao criar o usuário ${user.login}`);
                    },
                    complete: function () {
                        resolve(); // Garante que a Promise sempre resolve
                    }
                });
            });
        } catch (erro) {
            console.error(`Erro inesperado:`, erro);
        }

        // Aguardar 5 segundos antes do próximo usuário
        await new Promise(resolve => setTimeout(resolve, 4000));
    }

    console.log("Processo finalizado!");
}

processarUsuarios()

Em caso de sucesso ou de erro, uma das mensagens será apresentada no console.

Em caso de sucesso, confira no Painel de Controle, se os usuários foram cadastrados corretamente, pois alguns erros como “Login inválido” e/ou “Campo pendentes”, podem ser retornadas da chamada da API.

E ai!? Você gostou do conteúdo de Fluig de hoje? Deixe o seu comentário!
Forte abraço!!!

Fluig é uma marca registrada da Totvs S.A.

Categorias
TOTVS Fluig

Bate papo – Como você conheceu o TOTVS Fluig?

Olá, Fluigers!
O vídeo de hoje, não é um tutorial, mas um bate papo que queria realizar a tempos!!!

Consegui juntar algumas referências de TOTVS Fluig de diversos lugares do Brasil, para conversarmos sobre como cada um conheceu a ferramenta, e quais foram os seus desafios.

Quero agradecer mais uma vez ao Sergio, Bruno e a Julia por aceitarem o meu convite!!!
Abaixo, compartilho as redes sociais de cada um deles:
https://www.linkedin.com/in/brunogasparetto/
https://www.linkedin.com/in/sergio-machado-analista-fluig/
https://www.linkedin.com/in/jmrbonifacio/

Gostou do conteúdo? Deixe seu comentário, curta o vídeo e inscreva-se no canal para mais dicas sobre TOTVS Fluig e tecnologia!
Forte abraço!!!

Fluig é uma marca registrada da Totvs S.A.

Categorias
TOTVS Fluig

TOTVS FLUIG – Introdução ao Desenvolvimento de Processos BPM

Olá, Fluiger!

Você que já é meu seguidor, está acostumado a ver conteúdos rápidos de 3 ou 5 minutos sobre uma funcionalidade específica do TOTVS Fluig. Mas, conversando com a comunidade, e até mesmo com os desenvolvedores das empresas que eu presto consultoria, identifico que muita gente ainda tem dúvidas em pontos iniciais da ferramenta.

Sendo assim, o vídeo de hoje será uma introdução sobre o desenvolvimento de processos BPM. Sem integrações com sistemas, sem atividades de serviços, vamos ver o introdutório, ok?

Clique abaixo para assistir:

Gostou do conteúdo? Deixe seu comentário, curta o vídeo e inscreva-se no canal para mais dicas sobre TOTVS Fluig e tecnologia!
Forte abraço!!!

Fluig é uma marca registrada da Totvs S.A.