Maximo Open Forum

 View Only
  • 1.  Since 7.6.1.3, I have issues with a Birt Report

    Posted 04-04-2025 10:48
      |   view attached

    Good morning,

    Since migrating to 7.6.1.3, we've been having issues running a particular Birt report. In the designer (4.8 version), when I try to view my report in my browser and enter my wonum, I get an error message stating that my fetch method on my main DataSet returns a null value when it should return a Boolean value. This report runs without issue in Birt 4.3.1 but not in version 4.8. Therefore, I'm unable to get it to work in Maximo 7.6.1.3. Could you please provide some possible solutions or how to debug my report to make it work again?

    Thanks!

    Danny


    #Administration
    #Reporting

    ------------------------------
    Danny Cordeau
    Universite de Sherbrooke
    ------------------------------

    Attachment(s)



  • 2.  RE: Since 7.6.1.3, I have issues with a Birt Report

    Posted 04-07-2025 08:37

    Danny, BIRT has issues sometimes with Boolean, IMHO it might be necessary to convert to a string in your SQL using decode.  Just my two cents worth.



    ------------------------------
    Mark Fresa
    ------------------------------



  • 3.  RE: Since 7.6.1.3, I have issues with a Birt Report

    Posted 04-08-2025 08:34

    Try to add in script on dataSet open before running sql :

    context = mxReportScriptContext;
    context.getMXReportContext().put("mxe.report.birt.removeEmoji", false)


    ------------------------------
    Andrey Ilinskiy
    Handz.on
    ------------------------------



  • 4.  RE: Since 7.6.1.3, I have issues with a Birt Report

    Posted 04-08-2025 10:59

    Your nullpointer in the designer is caused by DT DT392958 https://www.ibm.com/mysupport/s/defect/aCIKe000000Ci2UOAS/dt392958?language=en_US. We have fixed this in the MAS versions but it doesn't seem like we have fixed it in 7.6.1.3.

    Essentially, the error is we try to get values from the context map for the mxe.report.birt.escapeEquals & mxe.report.birt.removeEmoji system properties. When we can't get the value from the context map and then try to process it is when we get the null pointer exception. After the fix we treat these coming in as null with a value of false. I would open a support case and try and get a fix (potentially a LA fix) for 7.6.1.3. 



    ------------------------------
    Steven Shull
    IBM
    ------------------------------



  • 5.  RE: Since 7.6.1.3, I have issues with a Birt Report

    Posted 04-08-2025 11:06

    and theoretically it is possible to use java classes for maximo scripted data source from MAS, where this error was fixed, for BIRT Report Designer to create and run reports local for Maximo 7.6.1.3 ? 

    Of Course if not to use functions, that only exists in MAS

    What you think, Steven?



    ------------------------------
    Andrey Ilinskiy
    Handz.on
    ------------------------------



  • 6.  RE: Since 7.6.1.3, I have issues with a Birt Report

    Posted 04-08-2025 11:43

    Yes, the file impacted here (MXReportDataSetImpl in the /applications/maximo/maximouiweb/webmodule/WEB-INF/birt/script/src/com/ibm/tivoli/maximo/report/script directory) you could grab from MAS if you're using Java 11 or higher as your runtime for BIRT (since the MAS version will be built with Java 11 currently, switching to Java 17 in 9.1). I wouldn't recommend ever copying a file from a different version to the Maximo install because it can lead to other problems (changes we have in the classes could require changes in other classes) but for the BIRT preview specifically, the risk is much less significant. 



    ------------------------------
    Steven Shull
    IBM
    ------------------------------



  • 7.  RE: Since 7.6.1.3, I have issues with a Birt Report

    Posted 04-08-2025 11:49

    Good to know, thanks! 

    Maybe add it to the workaround in DT description? 

    Because Maximo 7.6.1.1 doesn't support BIRT 4.8, how I remember? 



    ------------------------------
    Andrey Ilinskiy
    Handz.on
    ------------------------------



  • 8.  RE: Since 7.6.1.3, I have issues with a Birt Report

    Posted 10 days ago

    Danny, this is a known pain point with the 7.6.1.3 upgrade. As Steven mentioned, it's DT392958 - the BIRT scripted data source tries to pull mxe.report.birt.escapeEquals and mxe.report.birt.removeEmoji from the context map, gets null, and throws the NPE.

    Two practical workarounds if you can't wait for an LA fix:

    1. Andrey's approach - add this to your DataSet open script before the SQL runs:
      context = mxReportScriptContext;
      context.getMXReportContext().put("mxe.report.birt.removeEmoji", false);
    2. Steven's suggestion - grab the patched MXReportDataSetImpl.class from a MAS instance (if you have access to one) and use it in your BIRT Designer. Lower risk since it only affects preview, not the Maximo server.

    For what it's worth, this kind of cross-version compatibility issue is exactly why a lot of 7.6 shops are looking at alternative ways to get reporting data out of Maximo without depending on BIRT at all - whether that's direct SQL, custom APIs, or newer AI-based query tools.

    Hope one of these gets you unblocked!



    ------------------------------
    Dusko Delic
    Code Development Limited
    ------------------------------



  • 9.  RE: Since 7.6.1.3, I have issues with a Birt Report

    Posted 9 days ago

    Sorry for the late response to all your comments on my post. The workaround I used was to build a brand new BIRT report, much simpler that does the minimum.

    However, the issue with the original report still persist and my client hopes it will someday be fix.

    As the time flies, I completely forgot it and this morning, I saw Dusko's post and that reminds me that I have to correct this! 

    As we speak, we are planning our migration to MAS. However, I still want to correct the report to make it work in 7.6.1.3 prior to the migration.

    The simpliest way for me is Andrey's approach. The BIRT report has 20 DataSets. I made the changes this morning in each DataSet and sadly, the error persist.

    Our 7.6.1.3 instance runs on Java 8.0.7.20.

    Have a nice day!

    Danny



    ------------------------------
    Danny Cordeau
    Universite de Sherbrooke
    ------------------------------