Giter VIP home page Giter VIP logo

fineract-pentaho's Introduction

Pentaho Reporting Plugin for Apache Fineract

This is a Plugin for Apache Fineract. The original work is this one https://github.com/vorburger/fineract-pentaho.

See TODO for possible future follow-up enhancement work.

The Pentaho reports has been updated to the version 9.5, please use the Pentaho Report Designed version 9.5

For Developers

Add the repository https://mifos.jfrog.io/artifactory/libs-snapshot-local/

Maven

    <dependency>
        <groupId>community.mifos</groupId>
        <artifactId>pentaho-plugin</artifactId>
        <version>1.8.3-SNAPSHOT</version>
    </dependency>

Gradle

    compile(group: 'community.mifos', name: 'pentaho-plugin', version: '1.8.3-SNAPSHOT')

Download, Unzip and Use the binaries

    mkdir fineract-pentaho  && cd fineract-pentaho
    wget https://mifos.jfrog.io/artifactory/libs-snapshot-local/org/mifos/fineract-pentaho/0.0.1-SNAPSHOT/fineract-pentaho-0.0.1-SNAPSHOT.tar
    tar -xvf fineract-pentaho-0.0.1-SNAPSHOT.tar

Build & Use For Linux Users

This project is currently only tested against the very latest and greatest bleeding edge Fineract develop branch on Linux Ubuntu 20.04LTS. Building and using it against other versions may be possible, but is not tested or documented here.

  1. Download and compile
    git clone https://github.com/openMF/fineract-pentaho.git
    cd fineract-pentaho && ./gradlew -x test distZip && cd ..
  1. Export the Location of Pentaho Reports (prpt files) in a variable required by the Plugin
    export FINERACT_PENTAHO_REPORTS_PATH="$PWD/fineract-pentaho/pentahoReports/"
  1. Execute Apache Fineract with the location of the Mifos Pentaho Plugin library for Apache Fineract
java -Dloader.path=$MIFOS_PENTAHO_PLUGIN_HOME/libs/ -jar $APACHE_FINERACT_HOME/fineract-provider.jar
  1. Test the Pentaho Reports Execution using the following curl example or through the Mifos Web App in the Reports Menu
    curl --location --request GET 'https://localhost:8443/fineract-provider/api/v1/runreports/Expected%20Payments%20By%20Date%20-%20Formatted?tenantIdentifier=default&locale=en&dateFormat=dd%20MMMM%20yyyy&R_startDate=01%20January%202022&R_endDate=02%20January%202023&R_officeId=1&output-type=PDF&R_loanOfficerId=-1' \
--header 'Fineract-Platform-TenantId: default' \
--header 'Authorization: Basic bWlmb3M6cGFzc3dvcmQ='
  1. The output must be a PDF with the Expected Payment By Date Formated information in it (maybe it could have blank or zeroes if it is a fresh Fineract Setup)

alt text

The API call (above) should not fail if you follow the steps as shown, and all conditions met for the version of Apache Fineract

If the API call (above) fails with "There is no ReportingProcessService registered in the ReportingProcessServiceProvider for this report type: Pentaho", then this Fineract Pentaho Plugin has not been correctly registered & loaded by Apache Fineract.

What script does

The script basically just creates the following directory structure and download the required files by the Pentaho Report Engine and the Database Connection (In this case MySQL):

    fineract-provider.jar
    lib/
        fineract-pentaho-0.0.1-SNAPSHOT-plain.jar
        mysql-connector-j-8.0.31.jar
        libswing-9.3.0.0-428.jar
        libformat-9.3.0.0-428.jar
        libpixie-9.3.0.0-428.jar
        classic-core-9.3.0.0-428.jar
        flute-9.3.0.0-428.jar
        classic-extensions-scripting-9.3.0.0-428.jar
        libserializer-9.3.0.0-428.jar
        libdocbundle-9.3.0.0-428.jar
        librepository-9.3.0.0-428.jar
        wizard-core-9.3.0.0-428.jar
        libformula-9.3.0.0-428.jar
        libxml-9.3.0.0-428.jar
        libbase-9.3.0.0-428.jar
        classic-extensions-9.3.0.0-428.jar
        libfonts-9.3.0.0-428.jar
        commons-database-model-9.3.0.0-428.jar
        libsparkline-9.3.0.0-428.jar
        libloader-9.3.0.0-428.jar
        js-scriptengine-22.2.0.jar
        commons-vfs2-2.7.0.jar
        groovy-all-2.4.8.jar
        ehcache-core-2.5.1.jar
        barcode4j-2.0.jar
        js-1.7R3.jar
        bsf-2.4.0.jar
        barbecue-1.5-beta1.jar
        graal-sdk-22.2.0.jar
        js-22.2.0.jar

and then it launches Apache Fineract with the Pentaho Plugin and all its dependencias.

See also PentahoReportsTest and the test script.

License

This code used to be part of the Mifos codebase before it became Apache Fineract. During that move, the Pentaho related code had to be removed, because Pentaho's license prevents code using it from being part of an Apache Software Foundation hosted project.

The correct technical solution to resolve such conundrums is to use a plugin architecture - which is what this is.

Note that the code and report templates in this git repo itself are licensed to you under the Mozilla Public License 2.0 (MPL). This is a separate question than the license that Pentaho itself (i.e. the JAR/s of Pentaho) are made available under.

Contribute

If this Fineract plugin project is useful to you, please contribute back to it (and Fineract) by raising Pull Requests yourself with any enhancements you make, and by helping to maintain this project by helping other users on Issues and reviewing PR from others (you will be promoted to committer on this project when you contribute). We recommend that you Watch and Star this project on GitHub to make it easy to get notified.

fineract-pentaho's People

Contributors

iohacker avatar vorburger avatar francisguchie avatar rrpawar96 avatar adonay28 avatar bharathcgowda avatar renovate[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.