Skip to content
PatrickCavalcantPublic

About

Repositório para armazenamento código utilizado no dia a dia

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

43 Commits

Folders and files

Repository files navigation

Fluig

author contributions welcome

Repositório para armazenamento de código utilizado no dia a dia

Função para pegar a data de aprovação da atividade

function dataAprovacaoUGPDes(data, type, row, meta){
	var solicitacaoID = row["SOLICITACAO"];
	
	try{
		
		if(solicitacaoID != null){

			var c0 = DatasetFactory.createConstraint('processHistoryPK.companyId', '1', '1', ConstraintType.MUST); //Filtro por Código da empresa.
			var c1 = DatasetFactory.createConstraint('processHistoryPK.processInstanceId', solicitacaoID, solicitacaoID, ConstraintType.MUST); //Filtro por Número da solicitação.
			var c2 = DatasetFactory.createConstraint('stateSequence', '167', '167', ConstraintType.MUST); //Filtro por Código da atividade que foi movimentada.

			var colunasHistory = new Array('processHistoryPK.movementSequence'); //Coluna quantidade de movimentações da solicitação

			var ordenacao =  new Array("processHistoryPK.movementSequence;desc"); //Ordena por quantidade de movimentações da solicitação

			var datasetProcessHistory = DatasetFactory.getDataset('processHistory', colunasHistory , new Array(c0, c1, c2), ordenacao);
			
			if(datasetProcessHistory['values'] != ''){
				
				var ultimaSequencia = datasetProcessHistory['values'][0]['processHistoryPK.movementSequence']
	
	
				var c0 = DatasetFactory.createConstraint('processTaskPK.companyId', '1', '1', ConstraintType.MUST);
				var c1 = DatasetFactory.createConstraint('processTaskPK.processInstanceId', solicitacaoID, solicitacaoID, ConstraintType.MUST);
				var c2 = DatasetFactory.createConstraint('processTaskPK.movementSequence', ultimaSequencia, ultimaSequencia, ConstraintType.MUST);
				var colunasTask = new Array('endDate');
	
				var datasetProcessTask = DatasetFactory.getDataset('processTask', colunasTask, new Array(c0, c1, c2), null);
				
				if(datasetProcessTask['values'][0]['endDate'] != null){
				    for(var i = 0; i< datasetProcessTask.values.length; i++){ //preenchendo e conversão da data
				    	var tempo = datasetProcessTask['values'][0]['endDate'] //Data em milisegundo
				    	date = new Date(tempo); //Converte para 'Thu Feb 24 2022 12:41:57 GMT-0300 (Horário Padrão de Brasília)'
				    	dateFormated =  new Intl.DateTimeFormat('pt-BR').format(date) //Converte para 24/02/2022
				    	
					}
//			console.log(dateFormated);
				return dateFormated
			    
				}else{
					return " "
				}
			}else{
				return " "
			}
		}else{
			return " "
		}
		

	}catch(e){
		console.log("erro ao pegar meta")
	}
}

Query para retornar a data de aprovação da atividade

SELECT NVL(TO_CHAR(PROCES.END_DATE,'DD/MM/YYYY', 'nls_date_language = PORTUGUESE'), ' ') AS DATAAPROV
FROM TAR_PROCES PROCES 
WHERE PROCES.NUM_PROCES = '26266' AND PROCES.NUM_SEQ_MOVTO = (SELECT SUM(MAX(PROCESC.NUM_SEQ_MOVTO)+1) 
FROM TAR_PROCES PROCESC 
WHERE PROCESC.NUM_SEQ_ESCOLHID = 10 AND PROCESC.NUM_PROCES = PROCES.NUM_PROCES 
GROUP BY PROCESC.NUM_PROCES)

Atualizar responsável pela atividade

UPDATE TAR_PROCES
SET CD_MATRICULA = '7403652' 
WHERE NUM_PROCES = '41761' AND NUM_SEQ_MOVTO = '12'

Tabelas

EVENT_FICHA - Eventos dos formulários
EVENT_PROCES - Eventos dos processos
PROCES_WORKFLOW - Processos
TAR_PROCES - Responsável Processo
WCM_PAGE - Páginas
FDN_USERTENANT e FDN_USER - Usuários
FDN_GROUPUSERROLE - Grupos
DOCUMENTO - Documentos
SERV_DATASET - Dataset
FDN_ACCESSLOG - Log usuário

FORM
FORM_DATASET
FORM_PROCES__RECORD - Está armazena os registros do formulario, mas fica num campo em JSON
FORM_TABLE_RECORD

Verificar usuários ativos e bloqueados

SELECT * FROM FDN_USERTENANT WHERE USER_STATE = '1' --Ativos
SELECT * FROM FDN_USERTENANT WHERE USER_STATE = '2' --Bloquados

Resetar senha WCMADMIN

select *  
from fdn_usertenant  
where LOGIN = 'wcmadmin' 
and password = HASHBYTES('md5','adm')

UPDATE fdn_usertenant SET password='b09c600fddc573f117449b3723f23d64' WHERE login='wcmadmin'

Função para retorna a quantidade de dias entre as data

function validarData(dataInicio, dataFim){
	const dateI = dataInicio; // dd/mm/yyyy
	const dateF = dataFim; // dd/mm/yyyy

	const [day, month, year] = dateI.split('/');
	const result = [year, month, day].join('-');
	
	const [day1, month1, year1] = dateF.split('/');
	const result1 = [year1, month1, day1].join('-');
	
	// 👉️ cálculo do nº. de dias entre duas datas  
	// Para definir duas datas para duas variáveis
	var date1 = new Date(result); // yyyy-mm-dd
	var date2 = new Date(result1);// yyyy-mm-dd
	  
	// Para calcular a diferença horária de duas datas
	var Difference_In_Time = date2.getTime() - date1.getTime();
	  
	// Para calcular o nº. de dias entre duas datas
	var Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24);
	  
	//Para exibir o nº final. de dias (resultado)
	if(Difference_In_Days >= 100){
		alert("***Existe mais de 100 dias no filtro: "+Difference_In_Days+" dias.***");
		window.location.reload(false);
	}
	
}

E-mail Customizado

Chamada AJAX para consumir API Fluig

Consultar API do Fluig de usuários substitutos - https://{endereço}/api/resource_SubstituteUserServiceRest.html
function obterUsuarioSubstituto(){
	var companyId = "1";  //Empresa
	var userId = "7403470"; //Usuário
	
	for (j = 1; j <= indexsTableComissao.length; j++) {	
		
		$.ajax({
			url: "/api/public/bpm/substituteUser/getSubstitutesOfUser/"+companyId+"/"+userId,		
			async : false,
			method:"GET",
			success: function(data) {
				console.log(data); 
				},error: function() {
					console.log("erro");  
				},
			});
	}
}

Trabalhando com Constraints

//Seleciona as colunas 
DatasetFactory.getDataset("DATASET", colunas, filtro, ordenacao);

//Consulta de Dataset via Browser no console 
var colunas =  new Array("publisherId","documentDescription","documentType"); 
DatasetFactory.getDataset("document", colunas, null, null);

//Criação dos filtros 
var colunas =  new Array("publisherId","documentDescription","documentType"); 
var filtro_1 = DatasetFactory.createConstraint("documentType", 1, 1, ConstraintType.MUST);

var filtros = new Array(filtro_1); 
DatasetFactory.getDataset("document", colunas, filtros, null);

//Criação do filtro 2 
var colunas =  new Array("publisherId","documentDescription","documentType"); 
var filtro_1 = DatasetFactory.createConstraint("documentType", 4, 4, ConstraintType.MUST); 
var filtro_2 = DatasetFactory.createConstraint("documentDescription", "Form02", "Form02", ConstraintType.MUST);

var filtros = new Array(filtro_1, filtro_2);
DatasetFactory.getDataset("document", colunas, filtros, null);

//Ordenação da consulta - Ascendente 
var colunas =  new Array("publisherId","documentDescription","documentType"); 
var filtro_1 = DatasetFactory.createConstraint("documentType", 4, 4, ConstraintType.MUST);

var ordenacao =  new Array("documentDescription;asc");

var filtros = new Array(filtro_1); 
DatasetFactory.getDataset("document", colunas, filtros, ordenacao);

//Ordenação da consulta - Descendente 
var colunas =  new Array("publisherId","documentDescription","documentType"); 
var filtro_1 = DatasetFactory.createConstraint("documentType", 4, 4, ConstraintType.MUST);

var ordenacao =  new Array("documentDescription;desc");

var filtros = new Array(filtro_1); 
DatasetFactory.getDataset("document", colunas, filtros, ordenacao);

//Contar a quantidade de registros
var dataset = DatasetFactory.getDataset("document", colunas, filtros, ordenacao); 
var rowsCount = dataset.values.length; 
rowsCount

Localizar tabela do formulário

Dataset 'document'
Filtrar pelo 'documentPK.documentid', sendo ele o código da pasta.
Pega o número do 'metalistId', sendo adicionado ao final.
ML + 001 = Cód Empresa + 048 = metalistId
ML001042

select owner, table_name, column_name 
from all_tab_columns 
where column_name in ('txtSituacao')

txtSituacao = Campo do Formulário


SELECT TABLE_NAME FROM information_schema.columns WHERE column_name like '%NOMECAMPOFORM%'

SELECT 
case when len(CONVERT(VARCHAR(MAX) , d.COD_LISTA)) <=3 then 'ML00' + CONVERT(char(1),d.COD_EMPRESA)+replicate('0',3- len(CONVERT(VARCHAR(MAX) , d.COD_LISTA) )) +  CONVERT(VARCHAR(MAX) , d.COD_LISTA) 
     else 'ML00' + CONVERT(char(1),d.COD_EMPRESA)+CONVERT(VARCHAR(MAX) , d.COD_LISTA) 
end as tabela     
,*  FROM DOCUMENTO d where d.VERSAO_ATIVA =1 and DS_PRINCIPAL_DOCUMENTO ='[nome form]'

Pega a ML principal

SELECT LISTA_FILHO.COD_TABELA,
case when   len(CONVERT(VARCHAR(MAX) , COD_LISTA_FILHO)) <=3 then  'ML00' + CONVERT(char(1), LISTA_FILHO.COD_EMPRESA)+replicate('0',3- len(CONVERT(VARCHAR(MAX) , COD_LISTA_FILHO) ))+CONVERT(VARCHAR(MAX) , COD_LISTA_FILHO) 
     else 'ML00' + CONVERT(char(1), LISTA_FILHO.COD_EMPRESA)+CONVERT(VARCHAR(MAX) , COD_LISTA_FILHO) 
     end as TABELA    
FROM 
	META_LISTA_REL LISTA_FILHO 
WHERE  
	LISTA_FILHO.COD_EMPRESA = 1 
	AND LISTA_FILHO.COD_LISTA_PAI  = (SELECT COD_LISTA FROM DOCUMENTO d where d.VERSAO_ATIVA =1 and DS_PRINCIPAL_DOCUMENTO ='[nome form ]' )

Pega a ML Filha, quando são os paixfilho

SELECT 
'ML001' + CONVERT(CHAR(10), l.COD_LISTA_PAI)  AS 'TABELA_PRINCIPAL', 
'ML001' + CONVERT(CHAR(10), l.COD_LISTA_FILHO)  AS 'TABELA_PAIxFILHO', 
d.COD_LISTA, 
l.COD_LISTA_PAI, 
l.COD_LISTA_FILHO, 
l.COD_TABELA, 
d.NUM_DOCTO_PROPRIED, 
d.NUM_VERS_PROPRIED 
FROM DEF_PROCES p " 
LEFT JOIN VERS_DEF_PROCES vp ON vp.COD_DEF_PROCES = p.COD_DEF_PROCES AND vp.LOG_ATIV = 1 "
LEFT JOIN DOCUMENTO d ON d.NR_DOCUMENTO = vp.NUM_PASTA_FORM AND d.VERSAO_ATIVA = 1 
LEFT JOIN SERV_DATASET ds ON ds.COD_DATASET = d.NM_DATASET 
LEFT JOIN META_LISTA_REL l ON l.COD_LISTA_PAI = d.COD_LISTA 
WHERE p.COD_DEF_PROCES = 'wf_programa_acao_avaliacao' OR ds.COD_DATASET = '' 
ORDER BY vp.NUM_VERS DESC

Último acesso de usuário

SELECT 
   FDN_USERTENANT.LOGIN,  
   	CASE 
   		FDN_USERTENANT.USER_STATE 
   		WHEN 2 THEN 'Inativo' 
   		WHEN 1 THEN 'Ativo' 
   		ELSE '' 
   		END AS STATUS, 	
   	
   	MAX(ACCESS_DATE) ULTIMO_ACESSO 
   	
   	
FROM FDN_USER
INNER JOIN FDN_USERTENANT ON FDN_USERTENANT.USER_ID = FDN_USER.USER_ID
INNER JOIN FDN_ACCESSLOG ON FDN_ACCESSLOG.LOGIN=FDN_USERTENANT.LOGIN
WHERE
	FDN_USERTENANT.LOGIN NOT IN ('wcmadmin')


GROUP BY FDN_USERTENANT.LOGIN , USER_STATE

Alterar tamanho da coluna do banco oracle

SELECT * FROM FLUIG.ML001024
DESCRIBE FLUIG.ML001024;

ALTER TABLE FLUIG.ML001024
MODIFY SITE  VARCHAR2(4000);

Ocultar páginas do menu lateral

UPDATE  WCM_PAGE SET HIDDEN='true' WHERE PAGE_COD = 'Código da Página'

Tarefas Atrasadas

SELECT 
DATE_FORMAT(DEADLINE, '%d-%m-%Y') DEADLINE, 
DATE_FORMAT(w.END_DATE, '%d-%m-%Y') ENDDATE, 
DATE_FORMAT(w.START_DATE, '%d-%m-%Y') STARTDATE, 
w.COD_DEF_PROCES 
from TAR_PROCES t join PROCES_WORKFLOW w on t.NUM_PROCES = w.NUM_PROCES 
where t.LOG_ATIV = 1 
and t.deadline < sysdate(3)

Controla a versão do formulário

Tabela - DOCUMENTO
Campo - NUM_VERS_PROPRIED
NUM_DOCTO_PROPRIED - Código da Pasta
NR_DOCUMENTO - Código do Fomulário

A função voltarTop() executa a rolagem automática da página para o topo, garantindo compatibilidade tanto quando o código é executado dentro de um iframe quanto quando está na janela principal. Ela aciona o método scrollTo(0, 0) no parent.window e no window atual, assegurando que a navegação retorne ao início da interface independentemente do contexto de execução.

function voltarTop(){
    parent.window.scrollTo(0, 0);
    window.scrollTo(0, 0);
}

About

Repositório para armazenamento código utilizado no dia a dia

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages