Uploaded image for project: 'OFBiz'
  1. OFBiz
  2. OFBIZ-6919

Birt Report Builder: an enhancement of the Birt component. Easier user possibility of report creation.

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Minor
    • Resolution: Implemented
    • Affects Version/s: Trunk
    • Fix Version/s: Upcoming Release
    • Component/s: birt
    • Labels:
      None

      Description

      This is a new implementation of Birt. It allows the creation of "report masters" by the developer, which will in turn let the user create its own reports. Data connection of report is fully generated by OFBiz based on report master. Design is user made.

      Filtering is made via content forms stored in the database ("FORM_COMBINED") data_resource.

      The patch should be available in a few days.

      Credits: this feature has been designed by Nicolas Malin, Pierre Gaudin and François Wurmser. It has been implemented by François Wurmser as a Neogia addon and ported by Jacques Le Roux to a custom OFBiz R13 version and then to the OFBiz trunk with simple changes in the framework where it was secured using OWASP security policies.

      Note: the BIRT_REPORT_BUILDER_USAGE_POLICY still needs to be completed. For now it's bypassed on "FLEXIBLE_REPORT" contentTypeId, a FIXME exists in Java code

      1. birt.zip
        419 kB
        Jacques Le Roux
      2. flexibleBirt.tar.gz
        275 kB
        Nicolas Malin
      3. OFBIZ-6919.patch
        197 kB
        Nicolas Malin

        Issue Links

          Activity

          Hide
          pfm.smits Pierre Smits added a comment -

          Hi François Wurmser,

          Looking forward to see the patch uploaded.
          Best regards,

          Pierre

          Show
          pfm.smits Pierre Smits added a comment - Hi François Wurmser , Looking forward to see the patch uploaded. Best regards, Pierre
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          I'm also interested about this with the hope that it will also update the vulnerable libs we embed currently because of Birt (axis-1.4.jar, jaxrpc.jar, saaj.jar, Tidy.jar, viewservlets.jar)

          Show
          jacques.le.roux Jacques Le Roux added a comment - I'm also interested about this with the hope that it will also update the vulnerable libs we embed currently because of Birt (axis-1.4.jar, jaxrpc.jar, saaj.jar, Tidy.jar, viewservlets.jar)
          Hide
          fwurmser François Wurmser added a comment -

          Hi,

          Jacques, the current patch does not touch these libs. A first version of the patch is ready, I have now left it to the people at Nereide (I just left there). They should upload it at some point when they think it is ready.

          François

          Show
          fwurmser François Wurmser added a comment - Hi, Jacques, the current patch does not touch these libs. A first version of the patch is ready, I have now left it to the people at Nereide (I just left there). They should upload it at some point when they think it is ready. François
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          OK, thanks François!

          Show
          jacques.le.roux Jacques Le Roux added a comment - OK, thanks François!
          Hide
          soledad Nicolas Malin added a comment -

          I just found this old patch related this issue, I sharing ^^

          Show
          soledad Nicolas Malin added a comment - I just found this old patch related this issue, I sharing ^^
          Hide
          fwurmser François Wurmser added a comment -

          Happy to see it finally forwarded to the community, thanks Nicolas .

          Show
          fwurmser François Wurmser added a comment - Happy to see it finally forwarded to the community, thanks Nicolas .
          Hide
          soledad Nicolas Malin added a comment -

          No worries François, I remove this patch Is incorrect I will review the copy

          Show
          soledad Nicolas Malin added a comment - No worries François, I remove this patch Is incorrect I will review the copy
          Hide
          soledad Nicolas Malin added a comment - - edited

          Hello, with Jacques we finish the code refactoring

          I created a tar gz for testing easily. To test you cant do this following step :

          • download tar
          • remove the current birt component on plugin
          • untar at the ofbiz root
          • ./gradlew loadDefault ofbiz
          • go to https://localhost:8443/birt -> Flexible birt
          • have fun (for this, create a birt flexible report instance, edit your search form, update the rptDesign and reload it, publish your report and play with it)
            I wait some review, and if no objection, I will commit on the trunk
          Show
          soledad Nicolas Malin added a comment - - edited Hello, with Jacques we finish the code refactoring I created a tar gz for testing easily. To test you cant do this following step : download tar remove the current birt component on plugin untar at the ofbiz root ./gradlew loadDefault ofbiz go to https://localhost:8443/birt -> Flexible birt have fun (for this, create a birt flexible report instance, edit your search form, update the rptDesign and reload it, publish your report and play with it) I wait some review, and if no objection, I will commit on the trunk
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          Thanks Nicolas,

          I'll make a last review and ASAP provide the documentation in English

          Show
          jacques.le.roux Jacques Le Roux added a comment - Thanks Nicolas, I'll make a last review and ASAP provide the documentation in English
          Hide
          fwurmser François Wurmser added a comment -

          I made a documentation, in French at least, I don't remember if I did it in english. Nicolas should be able to find it on Néréide's network.

          Show
          fwurmser François Wurmser added a comment - I made a documentation, in French at least, I don't remember if I did it in english. Nicolas should be able to find it on Néréide's network.
          Hide
          jacques.le.roux Jacques Le Roux added a comment - - edited

          Hi François,

          First I'd like to congratulate you for the work you did, really good!

          I know you made a good documentation, without it I'd have needed much more time to understand how things works in the new Birt Report Builder.

          I just need to translate/create in English the same user documentation you made in French (ie "[DOC] Designer un rapport sous Birt.pdf" and "[DOC]Installation de l'interface de requétage.pdf") and Nicolas already gave me all he has. So it should not be a problem

          Show
          jacques.le.roux Jacques Le Roux added a comment - - edited Hi François, First I'd like to congratulate you for the work you did, really good! I know you made a good documentation, without it I'd have needed much more time to understand how things works in the new Birt Report Builder. I just need to translate/create in English the same user documentation you made in French (ie " [DOC] Designer un rapport sous Birt.pdf" and " [DOC] Installation de l'interface de requétage.pdf") and Nicolas already gave me all he has. So it should not be a problem
          Hide
          jacques.le.roux Jacques Le Roux added a comment - - edited

          And yes, you did the technical doc also in English

          Show
          jacques.le.roux Jacques Le Roux added a comment - - edited And yes, you did the technical doc also in English
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          If you use the current "Birt Report Builder" version (WIP...) with another theme (tested with Tomahawk) than a Rainbow theme, to see the new functionnalities (added to current Birt component) look into the dropdown menus for the "Flexible Report" menu (to be renamed "Report Builder")

          Show
          jacques.le.roux Jacques Le Roux added a comment - If you use the current "Birt Report Builder" version (WIP...) with another theme (tested with Tomahawk) than a Rainbow theme, to see the new functionnalities (added to current Birt component) look into the dropdown menus for the "Flexible Report" menu (to be renamed "Report Builder")
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          I committed a small fix (contentId name changed) in the framework and content component at r1779701

          Show
          jacques.le.roux Jacques Le Roux added a comment - I committed a small fix (contentId name changed) in the framework and content component at r1779701
          Hide
          jacques.le.roux Jacques Le Roux added a comment - - edited

          This new birt.zip archive replaces flexibleBirt.tar.gz, small not functional change, same usage (delete the birt component, replace it with the content of the birt.zip archive)

          Show
          jacques.le.roux Jacques Le Roux added a comment - - edited This new birt.zip archive replaces flexibleBirt.tar.gz, small not functional change, same usage (delete the birt component, replace it with the content of the birt.zip archive)
          Hide
          soledad Nicolas Malin added a comment -

          New version with Gil improvement

          • improve java documentation
          • complete missing label
          • optimize birt rptDesign field search generation
          Show
          soledad Nicolas Malin added a comment - New version with Gil improvement improve java documentation complete missing label optimize birt rptDesign field search generation
          Hide
          soledad Nicolas Malin added a comment - - edited

          We approach to a final version , I will check if we can create a beautifull birt rptDesign

          Show
          soledad Nicolas Malin added a comment - - edited We approach to a final version , I will check if we can create a beautifull birt rptDesign
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          Hi,

          I suggest that we have an option to remove the technical fields (timestamps, etc. to be defined) when generating the report design

          Show
          jacques.le.roux Jacques Le Roux added a comment - Hi, I suggest that we have an option to remove the technical fields (timestamps, etc. to be defined) when generating the report design
          Hide
          soledad Nicolas Malin added a comment -

          Are you sure Jacques ?
          I started with this idea, but after some thinking I hadn't use these field for reporting and on most of time it's just noising for end user.
          So I prefer instead add an option, include the needed field like createTxStamp on a dedicate view to rename correctly the field for more explanation.

          Show
          soledad Nicolas Malin added a comment - Are you sure Jacques ? I started with this idea, but after some thinking I hadn't use these field for reporting and on most of time it's just noising for end user. So I prefer instead add an option, include the needed field like createTxStamp on a dedicate view to rename correctly the field for more explanation.
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          Hi Nicolas,

          That's indeed another option that we would then need to document. But I still wonder when end users will need these fields in reports...
          Maybe we could even remove them altogether (all technical field types) but could have them with a (I guess rarely used) property (or maybe a property by type)?

          Show
          jacques.le.roux Jacques Le Roux added a comment - Hi Nicolas, That's indeed another option that we would then need to document. But I still wonder when end users will need these fields in reports... Maybe we could even remove them altogether (all technical field types) but could have them with a (I guess rarely used) property (or maybe a property by type)?
          Hide
          soledad Nicolas Malin added a comment -

          Yes we can add a property birt.properties.

          I prepared a patch from the github branch, I think we can commit this first version

          Show
          soledad Nicolas Malin added a comment - Yes we can add a property birt.properties. I prepared a patch from the github branch, I think we can commit this first version
          Hide
          pfm.smits Pierre Smits added a comment -

          Please consider making these birt properties work in a multi-tenancy setup.

          Show
          pfm.smits Pierre Smits added a comment - Please consider making these birt properties work in a multi-tenancy setup.
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          Hi Nicolas,

          Though because of a power outage I had no chances to make a review today as I expected, I agree we can commit and share with the community. I'll try to translate/migrate the developer documentation ASAP Then I'll do the same for the users documentation, which is actually also much useful for developers.

          About the properties, we 1st need to define the types. We can though obviously begin with the timestamp fields and increase later. Other ideas than timestamp fields already?

          Pierre, of course I see no reasons to not create EntityUtil calls for these properties.

          Show
          jacques.le.roux Jacques Le Roux added a comment - Hi Nicolas, Though because of a power outage I had no chances to make a review today as I expected, I agree we can commit and share with the community. I'll try to translate/migrate the developer documentation ASAP Then I'll do the same for the users documentation, which is actually also much useful for developers. About the properties, we 1st need to define the types. We can though obviously begin with the timestamp fields and increase later. Other ideas than timestamp fields already? Pierre, of course I see no reasons to not create EntityUtil calls for these properties.
          Hide
          soledad Nicolas Malin added a comment -

          Ok it's implemented on the trunk at revision 1780683.
          Now I propose to close this issue and open new issue :

          • complete the documentation
          • move delegator.find call to EntityQuery (because the code came from a project under ofbiz 13.07 )
          • add the possibility to display technical entity field on the report by properties (my preference go to wait a remark from users instead of waste time but )
          Show
          soledad Nicolas Malin added a comment - Ok it's implemented on the trunk at revision 1780683. Now I propose to close this issue and open new issue : complete the documentation move delegator.find call to EntityQuery (because the code came from a project under ofbiz 13.07 ) add the possibility to display technical entity field on the report by properties (my preference go to wait a remark from users instead of waste time but )
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          Thanks Nicolas,

          I created the 2 1st sub-tasks, I'll work on the doc ASAP

          Actually when I think about it, it's easier to document how to get rid of the technical entity fields when binding data set fields in Birt Report Designer. We will indeed see later if getting rif of them automatically is worth properties, YAGNI state of mind...

          Show
          jacques.le.roux Jacques Le Roux added a comment - Thanks Nicolas, I created the 2 1st sub-tasks, I'll work on the doc ASAP Actually when I think about it, it's easier to document how to get rid of the technical entity fields when binding data set fields in Birt Report Designer. We will indeed see later if getting rif of them automatically is worth properties, YAGNI state of mind...
          Hide
          jacques.le.roux Jacques Le Roux added a comment -

          Hi Nicolas,

          I just tested with trunk HEAD (so using Taher last plugins implementation) and all works perfectly, but I noticed the stamps fields are no longer present (which is great OOTB IMo), normal?

          Show
          jacques.le.roux Jacques Le Roux added a comment - Hi Nicolas, I just tested with trunk HEAD (so using Taher last plugins implementation) and all works perfectly, but I noticed the stamps fields are no longer present (which is great OOTB IMo), normal?
          Hide
          jacques.le.roux Jacques Le Roux added a comment - - edited

          I close this issue. We will create bugs and improvements issues rather than subtasks because you can't give a type (bugs, improvements, etc.) to Sub-tasks :/

          We will link these issues to the current one.

          Show
          jacques.le.roux Jacques Le Roux added a comment - - edited I close this issue. We will create bugs and improvements issues rather than subtasks because you can't give a type (bugs, improvements, etc.) to Sub-tasks :/ We will link these issues to the current one.

            People

            • Assignee:
              soledad Nicolas Malin
              Reporter:
              fwurmser François Wurmser
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development