The issues brought forward by Taher have been addressed.

Mvg

Pierre

Op ma 16 mrt. 2020 17:54 schreef Pierre Smits <pierresm...@apache.org>:

> Hi Taher,
>
> Thank you for your review and questions.
>
> Please see in line for specific answers.
>
> Met vriendelijke groet,
>
> Pierre Smits
> *Proud* *contributor** of* Apache OFBiz <https://ofbiz.apache.org/> since
> 2008 (without privileges)
>
> *Apache Trafodion <https://trafodion.apache.org>, Vice President*
> *Apache Directory <https://directory.apache.org>, PMC Member*
> Apache Incubator <https://incubator.apache.org>, committer
> Apache Steve <https://steve.apache.org>, committer
>
>
> On Mon, Mar 16, 2020 at 4:39 PM Taher Alkhateeb <
> slidingfilame...@gmail.com> wrote:
>
>> Hello and thank you for your work. A few review notes:
>>
>> - It would be great if you can briefly explain the new dimensions and
>> what you're triangulating on
>>
>
>
>    - CountryDimension - applicable when doing aggregations of amounts etc
>    of orders/invoices/etc. per country and/or when doing comparisons between
>    countries
>    - CurrencyDimension - applicable when doing aggregations of amounts
>    etc of orders/invoices/etc. per currency and/or when doing comparisons
>    between currencies. Helpful for optimising cost of banking et.c
>    - CustomerDimension - key to be used in conjunction with
>    SalesOrderItemFact and SalesInvoiceItemFact, in order to do aggregation in
>    appropriate schemas  of orders vs invoices per customer, revenues per
>    customer per period and period to period comparison, etc. Currently various
>    fact tables are missing this integration with this dimension. Based on
>    parties with roleTypeId = "CUSTOMER";
>    - DateDimension - based on ISO definitions and derived from various
>    date(time) fields in transactions - used in various schemas in order to be
>    able to do various aggregations of amounts etc per period (consider year,
>    quarter, month, week, day, etc.), and/or comparisons of grouped amounts of
>    invoices/orders/etc between periods
>    - FacilityDimension - based on Facility entity - to be used in
>    conjunction with not only InventoryItemFact and associated schema, but also
>    applicable regarding shipment(Item)Fact and appropriate schema in order to
>    improve warehousing efficiency and shipment routing.
>    - OrganisationDimension - based on the accounting
>    organisations (PartyAcctgPreference) as the counterpart of all 3rd parties
>    in orders, invoices, etc. - key to be used in conjunction with all Fact
>    tables, in order to do aggregations of orders (amounts, etc) invoices (also
>    amounts etc), etc.
>    - TimeDimension - based on ISO definitions and derived from various
>    date(time) fields in transactions.  - e.g. used in various schemas in order
>    to be able to do various aggregations of amounts etc per time slot (day
>    segment e.g. morning, evening, hour, minute)
>
>
>
>> - Can you elaborate on the purpose for having time dimensions values
>> for every minute? What is the data being aggregated here?
>>
>
> This is based on the Data WareHouse Toolkit book. and is intended to
> enable filtering (or roll-up) of periods based on summarised day part
> group, like 15 minutes intervals
>
>
>> - There is some stramge logic in DimensionServices.groovy where
>> essentially you're clearing the input map (effectively passing an
>> empty map) to a bunch of service calls. Why are you using the same map
>> which you keep clearing from one call to the next? Are those services
>> not supposed to take input parameters? If so, why not pass an empty
>> map instead of this logic?
>>
>
> That you for bringing this forward. I will take a look at this, and
> correct where needed.
>
>
>> - There are some files with windows EOL characters. Need to run
>> something like dos2unix on those
>>
>
> Thanks. Will correct this.
>
>
>
>> - There are also tab characters around the code base
>>
>
> Thanks. Will correct this.
>
>
>
>>
>> May I also suggest breaking this work into smaller chunks to start
>> incorporating into the code base to make it easier to review and
>> integrate the work. Perhaps you can isolate the work for each new
>> dimension in a branch / patch / etc
>>
>
>
> Sorry, but at the moment I am not inclined to revert back to individual
> patch files or development branches for each of the underlying sub-tasks
> under OFBIZ-11414.
>  While some may regard the contribution too overwhelming for review
> (and/or testing) at one moment in time, breaking them up into smaller
> chunks would lead to criticism that chunks are too small to review and
> lacking coherence with other chunks. IMO, the history in the feature branch
> in the repo provides enough granulated insights to enable evaluation from
> commit to commit, while at the same time enable community members to test
> the whole without them having to bring all appropriate chunks (patch
> files/development branches per sub-task) together in a correct sequence.
>
> I have done that (providing patch files) in the beginning to each of the
> underlying sub-tasks, and the overhead to maintain the myriad (keeping
> everything synced) is just too time consuming.  As well as increasing the
> risk of merge conflicts dramatically. I experienced that quite a number of
> times and have seen patches go stale.
>
>
>> On Mon, Mar 16, 2020 at 6:09 PM Pierre Smits <pierresm...@apache.org>
>> wrote:
>> >
>> > Following up on recent migrations from minilang to groovy regarding the
>> > functions in the BI component I have made various enhancements to the
>> > component, enabling the project to move from a Proof of Concept state to
>> > something that is starting to provide our (potential) adopters some
>> > additional arguments to use (or select) our product.
>> >
>> > BI (or Business Intelligence) is a key factor to measure the success of
>> a
>> > company (and its underlying departments), whether it is regarding sales,
>> > purchases, inventory ageing, or employer utilisation (e.g. in
>> > project-oriented service orgs). BI often works against a Data Warehouse,
>> > which is fed from the transactions RDBMS using (more or less)
>> sophisticated
>> > ETL solutions. Often these ETL tools are quite expensive to operate, and
>> > require - when talking about development - quite the skill set.
>> > Unfortunately, Small and Medium Enterprises often lack the budget to
>> deploy
>> > such tools and services and make due with exports from the transaction
>> > RDBMS and the use of MS Excel to do their Business Intelligence
>> analysis.
>> >
>> > Given the unique feature set of OFBiz catering to the needs of small and
>> > medium enterprises, an improved BI component can deliver on an easy (and
>> > fairly cheap) means to have a DataWarehouse populated, and - through the
>> > population of dimension and fact tables - get data elements combined
>> into
>> > star schemas for in-component or external (through external tools as
>> Excel)
>> > analysis.
>> >
>> > In order to bring the BI component up to a level of usability in a
>> company,
>> > I have implemented following changes (in a feature branch in my repo)
>> >
>> >    - added and updated dimension tables
>> >       - CustomerDimension, OrganisationDimension (internal
>> organisations),
>> >       and SupplierDimension
>> >       - supporting: DateDimension, TimeDimension, CountryDimension,
>> >       CurrencyDimension
>> >    - updated fact tables to work with the added and improved dimension
>> >    tables
>> >       - SalesInvoiceItemFact
>> >       - InventoryItemFact
>> >    - updated star schemas to bring data elements from dimension and fact
>> >    tables together
>> >       - SalesInvoiceItemStarSchema
>> >       - InventoryItemStarSchema
>> >    - made the Report Builder functionality (screens and such) mode user
>> >    friendly, by applying ajax functionality,  to have selection of the
>> star
>> >    schema, the field selection and the resulting overview in one page
>> >
>> > While there are still a lot of areas (BI-wise) that can be improved,
>> such
>> > as:
>> >
>> >    - SalesOrderItemFact and SalesOrderItemStarSchema - to enhance the
>> >    analysis regarding sales,
>> >    - Purchase (Spend) analysis functionality,
>> >    - Utilisation analysis function (assets, employee),
>> >
>> > enhancements currently available improve the BI component significantly.
>> >
>> > Rather than working alone and see contributions go stale, I would like
>> to
>> > collaborate more via a feature branch in the official plugins
>> repository.
>> > As you can see in JIRA, there already quite a number of improvement
>> tickets
>> > (seeu [1]), and I have already many (up to the point of ready for
>> > incorporation into the plugins code base)  in progress. The improvements
>> > are currently available in my public fork on Github (see [2]). I invite
>> you
>> > to fork or clone and test-drive the enhancements.
>> >
>> > And if you have any suggestions, questions, and/or remarks, feel free to
>> > post them here (or directly to me), or as a comment to the master ticket
>> > (for general aspects) or to a particular sub-task.
>> >
>> >    1. https://issues.apache.org/jira/browse/OFBIZ-11414
>> >    2.
>> >
>> https://github.com/PierreSmits/plugins/tree/OFBIZ-11414_BI-Improvements
>> >
>> >
>> > Looking forward.
>> >
>> > Met vriendelijke groet,
>> >
>> > Pierre Smits
>> > *Proud* *contributor** of* Apache OFBiz <https://ofbiz.apache.org/>
>> since
>> > 2008 (without privileges)
>> >
>> > *Apache Trafodion <https://trafodion.apache.org>, Vice President*
>> > *Apache Directory <https://directory.apache.org>, PMC Member*
>> > Apache Incubator <https://incubator.apache.org>, committer
>> > Apache Steve <https://steve.apache.org>, committer
>>
>

Reply via email to