User:Trifonnt/MyTrackers
From ADempiere
< User:Trifonnt
Revision as of 05:42, 20 July 2010 by Sarafudheen (Talk) (Created page with '== Submitted by Trifon and Assigned to Trifon == :*{{User:Hengsin/SF_Tracker|Bugs|trifonnt|879332}} :*{{User:Hengsin/SF_Tracker|Contributions|trifonnt|883808}} :*{{User:Hengsin/S…')
This Wiki is read-only for reference purposes to avoid broken links.
Contents
- 1 Submitted by Trifon and Assigned to Trifon
- 2 Assigned to Trifon
- 3 Adempiere contributions
- 3.1 Functionality Contributions
- 3.1.1 EDI @ Adempiere - Sponsored Development: EDI Import/Export
- 3.1.2 Replication @ Adempiere - Sponsored Development: Replication
- 3.1.3 Swing POS @ Adempiere - Sponsored Development: Swing POS
- 3.1.4 Cash Payments @ Adempiere - Sponsored Development: Cash Payments
- 3.1.5 Simplify and Speedup Adempiere development
- 3.1.6 Re-Organize Adempiere menu Items
- 3.1.7 Persistence of swing tables
- 3.1.8 Set proper Field Group of fields
- 3.2 Planned Contributions and Tasks
- 3.1 Functionality Contributions
- 4 Interesting bugs/patches/Feature Requests
Submitted by Trifon and Assigned to Trifon
Assigned to Trifon
Adempiere contributions
Functionality Contributions
EDI @ Adempiere - Sponsored Development: EDI Import/Export
- Convert EDI to XML
- Converting business objects to EDI documents Good functionality.
- EDI Syntax SetsGood description of EDI separators.
- EDI ReaderEDIReader parses EDI input from ANSI X12 and EDIFACT, including documents for HIPAA compliance.
- Supplier Document ConnectorSupplier Document Connector allows automotive suppliers to exchange necessary EDI documents with a major automotive partner/client.
- www.etasoft.com Products for companies working with electronic documents in EDI X12, HIPAA, EDIFACT, XML, flat file and many other formats.
- SmooksSmooks for Mule enables Message Transformation and Routing using the Smooks Engine. Smooks is a Java Framework/Engine for processing XML and non XML data (CSV, EDI etc).
- EDIELThe EAN and Ediel project for invoicing in the downstream electricity power market
- EDI Vendors
- www.directedi.com
- [www.spscommerce.com www.spscommerce.com]
Replication @ Adempiere - Sponsored Development: Replication
- Links:
- http://www.afceurope.com/JMS.html
- Open Source JMS (Java Message Service) Implementations
- Integrating Presence into J2EE Environment
- HermesJMSA console that helps you interact with JMS providers making it easy to browse or seach queues and topics, copy messages around and delete them.
- JMS Examples
JMS @ Salesforce.com:
Swing POS @ Adempiere - Sponsored Development: Swing POS
Cash Payments @ Adempiere - Sponsored Development: Cash Payments
Simplify and Speedup Adempiere development
SF.NET forum post here
Feature Requests:
This enhancement allows Adempiere developers to:
- Speedup thier day to day work and to have more Object friendly code.
- Work with Java Interfaces instead of Java Classes.
For example:
- Adempiere - Old code
Trx trx = Trx.get(Trx.createTrxName("Test"), true); trx.start(); MAlert alertOldWay = new MAlert(Env.getCtx(), 100, trx.getTrxName()); log.info(alertOldWay.toString()); X_AD_AlertProcessor alertProcessorOldWay = new X_AD_AlertProcessor(Env.getCtx(), alertOldWay.getAD_AlertProcessor_ID(), trx.getTrxName()); log.info("alertProcessorOldWay.getAD_AlertProcessor_ID = " + alertProcessorOldWay.getAD_AlertProcessor_ID()); alertOldWay.setDescription("Trifon test"); //--- Save; resultSave = alertOldWay.save(); log.info("resultSave = " + resultSave); System.out.println("New value of Description = " + alertOldWay.getDescription()); trx.commit(); trx.close();
- Adempiere - New code
Trx trx = Trx.get(Trx.createTrxName("Test"), true); trx.start(); I_AD_Alert alert = new MAlert(Env.getCtx(), 100, trx.getTrxName()); log.info(alert.toString()); I_AD_AlertProcessor alertProcessor = alert.getI_AD_AlertProcessor(); log.info("I_AD_AlertProcessor.getAD_AlertProcessor_ID = " + alertProcessor.getAD_AlertProcessor_ID()); alert.setDescription("Trifon Description modified!"); //--- Save; PO.save(PO) must be static method!!! Two way of usage: PO.save(Object) or PO.save(PO) //resultSave = PO.save((PO)alert); resultSave = PO.save(alert); // Overloaded save method; For simple usage! log.info("resultSave = " + resultSave); System.out.println("New value of Description = " + alert.getDescription()); trx.commit(); trx.close();
This modificationas make Adempiere code closer to Hibernate
- Hibernate code. Example code from here.
Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); Event theEvent = new Event(); theEvent.setTitle(title); theEvent.setDate(theDate); session.save(theEvent); session.getTransaction().commit();
Proposed by Hengsin modification:
Add second interface I_Persistent with one method save()
public interface I_Persistent { public boolean save(); }
- Using the coding pattern below instead of the old new MAlert(Env.getCtx(), 100, trx.getTrxName()) approach would ensure your code always using the correct model class.
How to load:
// to load existing record int AD_Alert_ID = 100; MTable table = MTable.get(Env.getCtx(), I_AD_Alert.Table_ID); I_AD_Alert alert = (I_AD_Alert)table.getPO(AD_Alert_ID, trxName);
How to create new record:
// to create new record MTable table = MTable.get(Env.getCtx(), I_AD_Alert.Table_ID); I_AD_Alert alert = (I_AD_Alert)table.getPO(0, trxName); ...
- Classes which override save() method:
org.compiere.process.DocActionTemplate org.compiere.model.MClient org.compiere.model.MClientInfo org.compiere.model.MSystem
Generated Model class must implement both interfaces and extend PO.
Weak sides that need to be improved:
- Hard coded Document Engine
- Hard coded lookup of model class
- Hard coded list of document type for new client
- Incomplete Security Implementation
- No plugin/module support. Both ADCK and 2Pack support dynamic deployment of AD changes but doesn't address the need to deploy java code extension ( especially problematic/messy if your extension needs to use additional third party library).
- Incomplete web client port
- Incomplete workflow engine implementation
- Various swing client bug and limitation
Links
- sf.net forum post
- sf.net Contribution requestFR-2830755 Re-Organize menu items
Persistence of swing tables
- [??? sf.net forum post]
- sf.net Contribution requestFR-2830755 Persistence of swing tables
Set proper Field Group of fields
- [??? sf.net forum post]
- sf.net Contribution requestFR-2831174 Set proper Field Group
Planned Contributions and Tasks
- Restrict form "Generate Invoices (manual)" to show only public records (hide locked records) BUG - 1713337
- Restrict form "Generate Shipments (manual)" to show only public records (hide locked records) BUG - 1713317
Interesting bugs/patches/Feature Requests
- 1721710 Changing BPartner in a completed document should be denied
- 1711594 Workflow is not taking account of "Access All Orgs"
- 1704785 VFile is not firing Vetoable Change
- Sales Tax
- Destination-based Sales Tax
- www.avalara.comEnd to End Sales Tax Automation for Businesses of All Sizes
Feature Requests
- Adempiere A1 enhancement
Adempiere Open Office plug-in by Praneet