Quem já viu o erro "CRX-API-0005"e conseguiu arrumar, sabe que isso é uma pegadinha da Cognos.
Descrição do erro:
Erro próximo à ou na posição '0'. A variável denominada '[Query].[Campo]' não é válida.
ou
An error on or around the position '0'. The variable named '[Query].[Field]' is invalid.
Isso sugere que o erro está em alguma variável condicional, porém esse mesmo erro pode aparecer em função de uma "Report Expression".
Como funciona:
O motor do ReportStudio tenta otimizar as queries removendo os Query Itens não utilizados no layout, variáveis condicionais e Report Expressions NÃO são considerados itens de layout por não possuirem containers(List, Crosstab, Repeater), ou seja, você pode colocar qualquer coisa neles, de qualquer query.
Então aparece o erro porque o campo não está no layout.
Como resolver:
Se você está com problema numa Lista então selecione-a e abra a propriedade "Propriedades"(genial esse nome), selecione o campo com problema.
No caso de um Crosstab ou Gráfico você deve selecionar o nó(ex.: crosstab node) que deve ter escopo com o campo, pode ser necessário ajusta em mais de um. Com o nó selecionado o procedimento é o mesmo da lista.
Explicação Cognos 8 e possivelmente Cognos 10 aqui.
Blog do Bueno onde você encontra informação sobre Big Data, Analytics, Master Data, e como essa coisas se integram.
Pesquisar este blog
quinta-feira, 18 de agosto de 2011
segunda-feira, 15 de agosto de 2011
Javascript Parte 3 - Declarando javascripts
Muitas coisas são feitas via javascripts, mas já me acostumei a ver uns erros comuns, cometidos por mero desconhecimento.
Um deles é o simples fato de não declarar os parametros corretos na TAG <script>.
Esse simples fato pode fazer tudo ir por agua abaixo.
O jeito que identifiquei ser ideal é o abaixo, funciona para as versões 6, 7, 8, 9 do IE e ainda para as versões 3, 4 e 5 do Firefox.
<script type="text/javascript" language="javascript"></script>
Em browsers mais antigos a propriedade language era aceita sem problemas, mas nos mais novos se consolidou a propriedade type, então não deixe de declará-la.
Abs
Um deles é o simples fato de não declarar os parametros corretos na TAG <script>.
Esse simples fato pode fazer tudo ir por agua abaixo.
O jeito que identifiquei ser ideal é o abaixo, funciona para as versões 6, 7, 8, 9 do IE e ainda para as versões 3, 4 e 5 do Firefox.
<script type="text/javascript" language="javascript"></script>
Em browsers mais antigos a propriedade language era aceita sem problemas, mas nos mais novos se consolidou a propriedade type, então não deixe de declará-la.
Abs
quinta-feira, 4 de agosto de 2011
Dica da semana
Uma dica muito útil para processos de carga.
Você sabe a diferença entre UNION e UNION ALL?
A diferença é bem simples, UNION agrupa dois sources fazendo DISTINCT do resultset, enquanto UNION ALL apenas junta os resultsets de cada source.
Em outras palavras, UNION ALL é mais performático por economizar o overhead da agregação.
Claro que cada um serve para uma coisa diferente, mas se você sabe o cenário em que trabalha, agora pode escolher se vai utilizar um ou outro.
Abs,
Você sabe a diferença entre UNION e UNION ALL?
A diferença é bem simples, UNION agrupa dois sources fazendo DISTINCT do resultset, enquanto UNION ALL apenas junta os resultsets de cada source.
Em outras palavras, UNION ALL é mais performático por economizar o overhead da agregação.
Claro que cada um serve para uma coisa diferente, mas se você sabe o cenário em que trabalha, agora pode escolher se vai utilizar um ou outro.
Abs,
Data Manager 10.1 - Erro no Pivot
Vamos ao primeiro post sobre Data Manager.
Demorou mas por fim apareceu um erro na versão 10.1 do Data Manager, ele aparece com esse síntoma:
DM-HDL-0104 The handle is valid, but not of the correct type.
Acontece ao editar um Datastream que possúi pivots mapeados, sem explicação aparente.
A explicação é simples, BUG!
Como resolver? Instalando o FP 1.
Agora vamos esperar pra ver se não aparece outro.
Demorou mas por fim apareceu um erro na versão 10.1 do Data Manager, ele aparece com esse síntoma:
DM-HDL-0104 The handle is valid, but not of the correct type.
Acontece ao editar um Datastream que possúi pivots mapeados, sem explicação aparente.
A explicação é simples, BUG!
Como resolver? Instalando o FP 1.
Agora vamos esperar pra ver se não aparece outro.
terça-feira, 2 de agosto de 2011
Javascript Parte 2 - Executar relatório
Muitas vezes precisamos executar o relatório com uma opção pré definida, mas sem exibir a página de prompt ao usuário.
Uma solução possível é exibir a página de prompt por uma fração de segundos, só para pegar as informaçõs dos prompts e executar o relatório.
Por eexemplo, você quer que o relatório seja executado com o último ano e mes carregado, mas também quer que seja possivel escolher outros períodos.
Então você configura seu prompt pra para trazer de modo decresce os periodos, remove os ifens e a linha de título e manda rodar o relatório, assim a primeira opção da lista será passada como parametro.
Então para executar o relatório via javascript o comando muda de acordo com a versão, veja abaixo os comandos para cada uma:
8.1 e 8.2 - setTimeout('promptActionFinish()',100);
8.3, 8.4 e 10.1 - setTimeout('promptAction(\'submit\')',100); OU setTimeout('promptAction(\'finish\')',100);
Explanação: o comando setTimeout(arg 1, arg 2) server para chamar a função arg 1 de acordo com o tempo arg 2 em milisegundos.
Lembrando que esse comando deve estar sempre dentro de um HTML Item no rodapé da página, e dentro da TAG <script>
Uma solução possível é exibir a página de prompt por uma fração de segundos, só para pegar as informaçõs dos prompts e executar o relatório.
Por eexemplo, você quer que o relatório seja executado com o último ano e mes carregado, mas também quer que seja possivel escolher outros períodos.
Então você configura seu prompt pra para trazer de modo decresce os periodos, remove os ifens e a linha de título e manda rodar o relatório, assim a primeira opção da lista será passada como parametro.
Então para executar o relatório via javascript o comando muda de acordo com a versão, veja abaixo os comandos para cada uma:
8.1 e 8.2 - setTimeout('promptActionFinish()',100);
8.3, 8.4 e 10.1 - setTimeout('promptAction(\'submit\')',100); OU setTimeout('promptAction(\'finish\')',100);
Explanação: o comando setTimeout(arg 1, arg 2) server para chamar a função arg 1 de acordo com o tempo arg 2 em milisegundos.
Lembrando que esse comando deve estar sempre dentro de um HTML Item no rodapé da página, e dentro da TAG <script>
Assinar:
Postagens (Atom)