Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

Expressão if com mais de 100 If's

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.

Tags (1)
1 Solution

Accepted Solutions
Not applicable

Re: Expressão if com mais de 100 If's

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.

21 Replies
arthur_dom
Contributor III

Re: Expressão if com mais de 100 If's

Você pode tratar isso no Script com um Left join ou Applymap.

Not applicable

Re: Expressão if com mais de 100 If's

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.

arthur_dom
Contributor III

Re: Expressão if com mais de 100 If's

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;

Not applicable

Re: Expressão if com mais de 100 If's

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

arthur_dom
Contributor III

Re: Expressão if com mais de 100 If's

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

Not applicable

Re: Expressão if com mais de 100 If's

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.

arthur_dom
Contributor III

Re: Expressão if com mais de 100 If's

Rafael, vc esta usando o QlikView ou o Qlik Sense, ai monto um passo a passo

Not applicable

Re: Expressão if com mais de 100 If's

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

Not applicable

Re: Expressão if com mais de 100 If's

Ola Arthur,

Estou usando o Qlik Sense...

Atenciosamente,

Rafael Lima.