Libero Manufacturing for iDempiere 3.0

1,296 views
Skip to first unread message

redhuan d. oon

unread,
Feb 23, 2015, 2:47:28 AM2/23/15
to idem...@googlegroups.com
Hi all,
I have upgraded Libero plugins for iDempiere 3.0 development branch.  You may take and test it on iDempiere 3.0 (Jetty edition) only:
1. Libero Manufacturing with 2Pack - http://sourceforge.net/projects/red1/files/p2/LiberoMFG/org.libero.manufacturing_3.0.0.201502230749.jar/download
2. Libero Mfg Swing forms - http://sourceforge.net/projects/red1/files/p2/LiberoMFG/org.libero.manufacturing.swing_3.0.0.201502230749.jar/download

Further progress here http://red1.org/adempiere/viewtopic.php?f=45&t=1775&p=8640#p8640

Pritesh Shah

unread,
Jul 1, 2015, 5:47:34 AM7/1/15
to idem...@googlegroups.com
Hello Red1,

I have tried installing libero manufacturing plugin on current development branch of iDempiere and I am getting below error,
org.adempiere.pipo2.exception.POSaveFailedException: Failed to save column Movement Quantity

I have installed plugin downloaded from here http://sourceforge.net/projects/red1/files/p2/LiberoMFG/org.libero.manufacturing_3.0.0.201504221125.jar/download

I had some questions regarding Libero Manufacturing current version org.libero.manufacturing_3.0.0 and older version org.idempiere.LiberoMfg_1.0.0,
  • Does any of the above plugin changes or override the existing code ?
  • Does any of the above plugin changes or override existing db tables ?
  • What is the difference between the above two plugins ?
Similarly, I am trying to install WMS plugin from here http://sourceforge.net/projects/red1/files/p2/WMS/org.idempiere.WMS_1.0.0.201401291846.jar/download and have questions are below,
  • Does above plugin changes or override the existing code ?
  • Does above plugin changes or override existing db tables ?
Thanks,
Pritesh

redhuan d. oon

unread,
Jul 2, 2015, 11:23:31 PM7/2/15
to idem...@googlegroups.com, prites...@knowarth.com
I just tested the same plugin on 2.1 and experienced a clean Pack In. I tried checking 3.0 but the latest source has compilation issue at http://jenkins.idempiere.com/job/iDempiereDaily/ . I will check that when it is green again. But meanwhile you can also do a manual packin with http://sourceforge.net/projects/red1/files/p2/LiberoMFG/LiberoMfg.zip/download

I will also check deeper by restoring a fresh source from my bitbucket and do another ground test pack in via Eclipse as i detected anomalies with the Packins in other DB users.

About your questions:
1. Libero Mfg: there is no model structure change and backward compatibility is maintained. However i done an important naming schema change to replace eevolution as its a commercial vendor name that no longer maintains this package for at least 8 years. I replaced it with Libero as its authoritative FOSS project name. I still maintain chief copyright attribution to Compiere and eEvolution as main package creators.
Such name changes should not affect user data, but mostly code and thus process and form calling from metadata are changed. If you are using an older version of Libero, the PackIn should resolve all that. Otherwise what i written here and in my forum can be a guide.
This time around, as reported in the forum, i also made a good enough completion of the Swing BOM Drop Configurator and am negotiating with Hiep to help in the ZK version of it.

2. WMS: Again, it is just a porting over from ADempiere to iDempiere with new InfoWindow replacing SmartWindow. Of course like in Mfg i tidy up some bugs and spanish wordings to English.
However I was not happy with this work because i did not receive good real world practice as reference. However in my recent trip again to Slovakia and discussed with such a big world reference done by Multimage, Norbert Bede does need help in preparing documentation for his WMS which is used at Kia Motors there. We planned to spend a whole October month this year in Bratislava to do just that, besides trying to contribute also their Magento, Alfresco and Cloud integration works.

To repeat what i have presented in my forum postings, Libero packages are poorly documented and even coded (and i still welcome other peer reviews to challenge my findings). There are great works in concept and even design. But in ERP space, without documentation, you are as good as in the stone age without a map. What we are doing and still at it is writing out the first maps. Few months back in Denmark, a reference who is a manufacturer of wind turbines and truck bodies gave me better insight into what Libero should be. He also showed me other proprietary software. I already wrote about it in the same forum thread linked above. A month prior to that, in Laos, Nakarat who has ERP and Mfg experience from Thailand shared with me how other MFGs does it. I am also guided by my French partner, Andre Legendre who did French branded automotive shopfloor systems. But my frustration has been, you guess it, poor documentation or in better sense, an analysis of what the gap is with Libero and how to bring it forward. The exception been the finest analytical and constructive critique thus far by Chuck Boecking in another thread. Nevertheless if you come across anything further, i be glad to have them.
I am delayed to release the Libero Mfg 3.0 due to present work occupying me in Russia to upgrade the SFAndroid to SpinSuite, so i reckon i have to wrap it up before 2015 ends.
But thank you for testing at your end. And i will get back on further testing this side soonest possible.

Pritesh Shah

unread,
Jul 3, 2015, 2:37:25 AM7/3/15
to idem...@googlegroups.com, prites...@knowarth.com
Hello Red1,

Thank you for your response. Its great to hear from you.
Thank you for responding to you my questions, but I am not getting to the point like libero manufacturing and libero wms is overriding the existing code and db tables or not?

redhuan d. oon

unread,
Jul 3, 2015, 11:22:31 AM7/3/15
to idem...@googlegroups.com, prites...@knowarth.com
I don't think so. In fact, Libero changes has gone into the core way back during ADempiere 360 days and was just made InActive in this present iDempiere. This Libero plugin 2Pack merely reactivate them back.

The important advancement in the OSGi plugin approach is to keep as clean a decoupled module where it extends core either as fragments or wrappers and never changing core without the best team review and permission. You can follow our JIRA trackers particularly submitted by me (not many) towards the core thanks to some discovery during the making of such modules. This is so important in terms of lowest worry over the long term and lowest maintenance cost possible. That is why i strongly recommend for ERPs to follow this iDempiere project. It is technically most sound and open with no direct commercial ownership.

redhuan d. oon

unread,
Dec 8, 2015, 4:24:01 AM12/8/15
to iDempiere
To anyone watching Libero. I just tested the new iDempiere 3.1 with Libero MFG plugin and it packs in easily and tested OK http://red1.org/adempiere/viewtopic.php?f=45&t=1816

Ferry Irawan

unread,
Dec 11, 2015, 12:07:39 AM12/11/15
to iDempiere
Hi Red1,

Have you ever seen this error every time completing a sales order ?
50001: Grand Total=100.0 (#1) - SaveError


50001 is sales order document  with organization Fertilizer with product Fertilizer#50 with BOM type Current Active. If I change BOM type becomes Make-To-Order or Make-To-Kit, these error is gone and new manufacturing order is created.

But my requirement is not "make to order",let MRP calculation run and create manufacturing order then (not automatically from sales order).

Any suggestion for me?

Thanks before.

redhuan d. oon

unread,
Dec 11, 2015, 11:44:44 AM12/11/15
to iDempiere
You should give some more info or error stack. Thanks.

Ferry Irawan

unread,
Dec 12, 2015, 3:49:59 AM12/12/15
to iDempiere


Hi Red1,

Thank you for your feedback.
I will try to add some screenshots and log. FYI this error also apply for idempiere 2.1 also.

1. Firstly BOM type is "Current Active" (screenshot 1)
2. Complete a Sales Order and get error (screenshot 2)
3. Server log
15:14:27.930-----------> Msg.translate: NOT found: PP_ProductBOM_ID [182]
15:14:27.930-----------> Msg.translate: NOT found: PP_ProductBOM_ID [182]
15:14:27.930===========> MOrder.saveError: Error - * Not found * PP_ProductBOM_I
D [182]
15:14:27.930===========> MOrder.saveError: Error - * Not found * PP_ProductBOM_I
D [182]
15:14:27.930-----------> MWFActivity.run: MWFNode[185-(DocPrepare),Action=Docume
ntAction=PR] [182]
java.lang.Exception: SaveError
        at org.compiere.wf.MWFActivity.performWork(MWFActivity.java:1047)
        at org.compiere.wf.MWFActivity.run(MWFActivity.java:874)
        at org.compiere.wf.MWFProcess.startNext(MWFProcess.java:373)
        at org.compiere.wf.MWFProcess.checkActivities(MWFProcess.java:283)
        at org.compiere.wf.MWFActivity.setWFState(MWFActivity.java:277)
        at org.compiere.wf.MWFActivity.run(MWFActivity.java:891)
        at org.compiere.wf.MWFProcess.startWork(MWFProcess.java:505)
        at org.compiere.wf.MWorkflow.start(MWorkflow.java:687)
        at org.adempiere.util.ProcessUtil.startWorkFlow(ProcessUtil.java:313)
        at org.compiere.apps.AbstractProcessCtl.startWorkflow(AbstractProcessCtl
.java:391)
        at org.compiere.apps.AbstractProcessCtl.run(AbstractProcessCtl.java:209)


4. Change BOM type is "Make-To-Order"(screenshot 3)
5. Complete a Sales Order and success creating manufacturing order.(screenshot 4)
6. MRP info(screenshot 5)

Thanks,

Ferry


redhuan d. oon

unread,
Dec 14, 2015, 8:02:13 PM12/14/15
to iDempiere
OK thanks again Ferry for the good stack trace catch (that is all i need as i base on the exact source code). The code in question is in org.libero.model.MPPMRP:
                    if( bom != null
                       
&& !MPPProductBOM.BOMTYPE_Make_To_Order.equals(bom.getBOMType())
                       
&& !MPPProductBOM.BOMTYPE_Make_To_Kit.equals(bom.getBOMType()) )
                   
{
                       
throw new AdempiereException("@NotFound@ @PP_ProductBOM_ID@");
                   
}

It seems to be a purposely done code where only two BOM types are allowed above. Please review if such feature is wrong in subject matter. It is best to look through the whole class as it is very elaborate and complex in its logic. So outright objection to the above snip is not recommended without a subject matter analysis of the whole class at least. (It involves more classes later).

ferry.ir...@gmail.com

unread,
Dec 15, 2015, 9:22:27 PM12/15/15
to iDempiere

Hi Red1,

Thanks for your feedback, as I know that manufacturing module must support 2 types of manufacturing order.
First, manufacturing order created to fulfill the stock and achieve level of availability ( called Make To Stock or MTS), requirement can be taken from monthly demand or forecasting.

Second, manufacturing order created base on order(called Make To Order or MTO).

In Libero, I see MTO scenario is supported but not MTS.

So I try MTS scenario by using bom type "Current Active" because "Make-To-Stock" or "Make-To-Kit" is already designed to support MTO scenario only.

I change MMPMRP.java at line 127 becomes


                        //Validate BOM

                                                if(bom == null && pp != null)

                                                {

                                                                                bom = new MPPProductBOM(ol.getCtx(), pp.getPP_Product_BOM_ID(), ol.get_TrxName());

                                                                                if( bom != null

                                                                                                && !MPPProductBOM.BOMTYPE_Make_To_Order.equals(bom.getBOMType())

                                                                                                && !MPPProductBOM.BOMTYPE_Make_To_Kit.equals(bom.getBOMType()) )

                                                                                {

                                                                                                /*FERRY 12.12.2015

                                                                                                 * If BOM Type is current active not need to create MO

                                                                                                 */

                                                                                                if ( MPPProductBOM.BOMTYPE_CurrentActive.equals(bom.getBOMType()) )

                                                                                                {

                                                                                                                return null;

                                                                                                }

                                                                                                else

                                                                                                {             

                                                                                                                throw new AdempiereException("@NotFound@ @PP_ProductBOM_ID@");

                                                                                                }

                                                                                }

                                                }

 

I test it and so far it works. I can create sales order well, the it created "DEMAND" on MRP View, then I run Calculate Material Plan and system creates draft of manufacturing order base on totally demand(check on screenshot).

Demand Qty: 5 + 4 + 3 + 250 = 262

On Hand Qty: 160

New Manufacturing Order = 262 - 160 = 102 , because on my setting a manufacturing order must be multiplied by 24 (1 lot = 24) then system proposes 144 ( 6 x @24)


Thanks,


Ferry Irawan






redhuan d. oon

unread,
Dec 15, 2015, 9:40:04 PM12/15/15
to iDempiere
Hi Ferry,
Thanks for the subject matter explanation and real life usage on this. If you can confirm that this must be part of the Libero MFG universally, and others who are using it have no objection, then i will incorporate your change into it.

ferry.ir...@gmail.com

unread,
Dec 16, 2015, 12:40:51 AM12/16/15
to iDempiere
Hi Red1,

In my opinion, MTS scenario must be supported too. Because not every case must be implemented with MTO, especially with high demand finish good (better to stock previously).
MTO more to specific finish good because the demand is not regular(example product with specific formula).

I try to compare libero with another commercial ERP, if both scenario work with Libero. I think Idempiere + Libero can be nice and attract many industries to use.

Thank you.


Reply all
Reply to author
Forward
0 new messages