Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal, preciso de ajuda. Tenho a seguinte situação, tenho os ifs abaixo para setar o nome do funcionario ao setor dele, porém como coloquei mais de 100 ifs o qlik sense me retorna o seguinte erro:
The following error occurred:
Error in expression: Too complex, more than 100 levels nesting
O meu if começa assim:
//Coluna relacionando cada area com seu devido usuario
if(BMCServiceDesk__Incident__c.BMCServiceDesk__Client_Name__c = 'Ana Brito','Compras',
if(BMCServiceDesk__Incident__c.BMCServiceDesk__Client_Name__c = 'Marta Carvalho','Compras',
if(BMCServiceDesk__Incident__c.BMCServiceDesk__Client_Name__c = 'Nelson Mathias','Compras',
if(BMCServiceDesk__Incident__c.BMCServiceDesk__Client_Name__c = 'Luiz Trindade','Compras',
....
tenho mais de 100 desses agora....
Por favor alguem me ajuda a se for o caso mudar a forma de relacionar estes usuários a sua área?
Atenciosamente,
Rafael Lima.
Pessoal, muito obrigado a todos pelas dicas, lendo e relendo as dicas de vocês acabei conseguindo entender a lógica do If com Wildmatch e usei da seguinte forma:
//T.I
if(WildMatch(BMCServiceDesk__Incident__c.BMCServiceDesk__Client_Name__c, 'Marcio X',
'Marcos X','Heberson X','Rafael Lima'),
'T.I',
Com isso diminui de mais de 100 IF's para apenas 18 IF's.
Assim fui fazendo para as demais áreas da empresa. Funcionou perfeitamente!!!
Muito obrigado pelo empenho de todos!!!
Atenciosamente,
Rafael Lima.
Você pode tratar isso no Script com um Left join ou Applymap.
Boa tarde Arthur,
Obrigado por sua resposta. Porém você poderia dar um exemplo de como ficaria com os "if" acima, lembrando que eu tenho somente no banco de dados a informação do nome do usuario/funcionario por isso eu uso o "if" para dizer qual é a area dele.
Atenciosamente,
Rafael Lima.
No script(editor de cargas)
//seria algo assim
DePara:
Load * Inline [ Usuario, Departamento
Ana Brito,Compras
Marta Carvalho,Compras
]; //Coloque todas as posibilidades
<Conexão com o banco de dados>//Substitua pela sua conexão com o banco de dados
BMCServiceDesk__Incident__c:
Load
applymap( 'DePara',BMCServiceDesk__Client_Name__c, 'Dept. Desc' ) as Area,
BMCServiceDesk__Client_Name__c,
<Outros Campos> // Coloque aqui os outros campos
;
SQL SELECT * FROM BMCServiceDesk__Incident__c;
Dúvida rápida sobre o código citado:
Load * Inline [ Usuario, Departamento
Ana Brito,Compras
Marta Carvalho,Compras
]; //Coloque todas as posibilidades
o QV aceita tratar o campo assim?
Load * Inline [ Usuario, Departamento
Ana Brito,Compras as ComprasDePecas
Marta Carvalho,Compras as CompraDeMaterial
]; //Coloque todas as posibilidades
Não... eu estou colocando valores numa tabela de mapping. Se tiver mais complexidade pode trocar para um Join ou algo do tipo. o que você deseja fazer MayconLimaCwb
Arthur boa tarde,
Não ficou muito claro pra mim, desculpe. Eu não sou programador nato, estou aprendendo ainda. Poderia colocar um exemplo mais didatico com o oque eu enviei com mais departamentos e pessoas?
Atenciosamente,
Rafael Lima.
Rafael, vc esta usando o QlikView ou o Qlik Sense, ai monto um passo a passo
Rafael,
Tentar descrever melhor. No Qlikview.
Esta realizando este código, pois voce não tem uma tabela onde identifique o Usuario a cada area, então utiliza o código abaixo como uma tabela.
DePara:
Load * Inline [ Usuario, Departamento
Ana Brito,Compras //Ana Brito Pertence a Compras
Marta Carvalho,Compras
]; //Coloque todas as posibilidades
Ola Arthur,
Estou usando o Qlik Sense...
Atenciosamente,
Rafael Lima.