If you are unable to create a new account, please email support@bspsoftware.com

 

News:

MetaManager - Administrative Tools for IBM Cognos
Pricing starting at $2,100
Download Now    Learn More

Main Menu

[Update 12.0.4 FP1] Prompt macro error

Started by Xenobiologist, 16 Jan 2025 08:15:58 AM

Previous topic - Next topic

Xenobiologist

HI,

I've just updated to 12.0.4 FP1 and now we are facing this error:

#prompt ('pAuswertungsdatum'; 'date'; '2222-02-22')#
--> Cognos 12.0.4 --> DATE '2025-01-16'
--> before '2025-01-16'
 
DATE '2025-01-16' leads to syntax error:
 
XQE-V5-0011 V5-Syntaxfehler in Ausdruck "IF (cast(DATE '2025-01-16'; date) = cast('2222-02-22'; date))
THEN ( [Technische Sicht SPOT].[JIRA0_D_ISSUE_BEZIEHUNG_HIST_T01].[TSP_GUELTIG_AB] <=  localtimestamp AND [Technische Sicht SPOT].[JIRA0_D_ISSUE_BEZIEHUNG_HIST_T01].[TSP_GUELTIG_BIS]  > localtimestamp)
ELSE (
      (  [Technische Sicht SPOT].[JIRA0_D_ISSUE_BEZIEHUNG_HIST_T01].[TSP_GUELTIG_AB]  <= cast(DATE '2025-01-16'; timestamp)  AND [Technische Sicht SPOT].[JIRA0_D_ISSUE_BEZIEHUNG_HIST_T01].[TSP_GUELTIG_BIS]  > cast(DATE '2025-01-16' ; timestamp)  )
   )" gefunden. Ungültiges Token "DATE" gefunden nach "IF (cast("


Any idea how to fix that?

dougp

So, it works with these?

DATE '2025-01-15'
DATE '2025-01-17'

And I don't understand this code:
--> Cognos 12.0.4 --> DATE '2025-01-16'
--> before '2025-01-16'

dougp

#2
Maybe I'm not understanding something, but if I'm reading the error message correctly, this should not have worked before:

(simplified)
IF val = cast('2222-02-22'; date))
THEN (
      a <= localtimestamp
  AND b > localtimestamp
)
ELSE (
      a <= val
  AND b > val
)

THEN and ELSE should each return a value.  It looks like they are performing comparisons.  Does this actually return TRUE or FALSE as output values?

What RDBMS are you using?

Xenobiologist

Yes, it is all working fine in Cognos 12.0.3.
But now in Cognos 12.0.4 it doesn't work anymore.
We are on DB2LUW DB2 v11.5.9.0 and also the single server installation of Cognos runs on Linux_86.

Yes, the expression returns true/false.