20150915 - Open Discussion - Germany World Conference Discussion Notes

2015-09-15 Open Discussion - Germany World Conference Discussion Notes

Adenda: Project is growing - 700 commits for the year to date - 100+ committers - level of discuss is very different from last year - have first distribution - jpiere - wiki is getting bigger and better organized (organizatino and quality of info is still a concern) - category work by thomas thielman Everyone (who gains value from the project) has a responsibility to publish the iDempiere community New Features: - every table (with primary key) can have a tree - can have value auto table create 001 0011 - Landed cost - can now be created at PO (automatically applied at the MR/Invoice) - need to verify - landed cost distribution - Info window now be defined completely in Application Dictionary (pack out does not work for it yet...) - Status in any window - Much better search abilities in 3.0 - see search tab in menu search drop down - Call csv import from web services or scheduler (see csv import template window - system) - very cool because uses key for key to replicate user entry and execute callouts Thomas Bayen spent much much time creating transcripts !!Much discussion about performance!! pgbadger needs more attention and videos Look for issues top down - browser - apache/nginx - app server - app serer os - db - db os Temporary sequence - can be called later in the document workflow process (??) Debugging locking - ad_changelog - add PID column with default value pg_backend_pid() Discussed using native sequences - ACTION Discussed (big project) moving to uuid ID instead of integer IDs Server manager has good database info (pool size, active transactions, etc...) (ServerApplication.java) Most models that have a cache will have a .get(ctx, id) - create for read only - improves load performance c3po manages connection pool in idempiere "initialpoolsize" - exists in pool.properties in postgreSQL folder always use Query or DB.get this way you never need to manage closing a resultset or prepared statement if create jdbc connection manually, always put close statements in finally block See Diego's best practices https://drive.google.com/a/boecking.net/file/d/0B3BBY3ihhqbiRlhsa0N4V08yWkE/view Performance metrics client bandwidth - see idempiere URL link for chrome in bookmark - action server memory - what is the profile - first is biggest incremental jump. database usage - connections per server, connections per user, etc... Deepak's load testing with jmeter !!Security!! Advanced User - no end user should be - only advanced user can export Be very careful about using someone else's jasper. It has direct access to the DB and the code. It can bypass just about anything. Some password and credit card fields can be logged Change all default passwords iDempiere uses the same byte array to encrypt data. Consider changing yours. (changed in code) - action to document Enable password rules configure a reverse proxy and make sure it has SSL enabled - See video for more details Do not give end users a window where they can open server directory (example: import COA) - Chuck to figure out how to limit to /tmp directory !!General Utility!! @Date@ + 7 - currently only on parameters - I have volunteered to better document context capabilities Command line start flags used to control iDempiere behavior specify properties (system.getProperty) - THIS IS BIG "-Dorg.idempiere.db.prostrgresql.debug=true" (link) "-DLogLevel=FINE" (link) Be sure to review the migration notes (wiki.idempiere.org/en/migration_notes) !!PriceList discussion!! Most important - potential discussions behaviour notice - removing product from current price list version does not make it not-sellable. Must make not active. - instead - new versions override previous value. UOM breaks - best implemented in ProductPriceBreak - not perfect - other implementations - create UOM or M_AttributeSetInstance on M_ProductPrice - Make Discount Schema available to an "Org". Currently limited to a BP or BPGroup. See transcript for improved behaviour (includes adding ASI and UOM to PriceList) !!Developer Notes!! No longer user default activator - always use incremental activator... View name Deepak presented tokenized webservices - VERY GOOD Explore jackragbit (jackrabbit - apache project)- doc management - also explore openkm Alain PrimeFaces (tomcat or jetty plugin/library - not iDempiere plugin) OpenKM - used as document management Discussion about making grid toggle a drop down where you can plug in your own view - Much discussion and the presentation of data (cards, tiles, feed, etc...) - ADSortTab.java is an example of a different view on the same screen !!!!!!!!!!!!!! MOrder m_order = (MOrder) MTable.get(getCtx(), MOrder.Table_ID).getPO(getRecord(), get_TrxName()); Plan to add view names (used in code) as a system configurator entry so that you can easily use replace the view without overwriting it. Currently the only way to add a 2pack from the command line is via empty plugin. Carlos wants to fix. help.sap.com - referenced during discussions !!Testing!! jmeter load testing - deepak Fitness Recorder ++ junit (test.properties from template) !!Translation topics!! altovaxml - best tool for translation - BEST XML copy editor - best for linux VIM - best for geeks omegat - translation tool oneskyap.com - Norbert discusse (1) start with element list - see my post to the iDempiere forum !!distro!! branch for distro release 2pack for additions migration scripts for removals (when simplifying or removing default iDempiere functionality) dbsolo - compares databases (schema and data) !!Wiki!! english is the dominant langauge other languages are used for localization and local interesting topics If you write in another language - create english pointer so that others can have a reference. !!Replication!! Cassandra is an interesting discussion - stable over unstable network consider creating new replication strategy - CSV+cassandra !!jpiere!! - multi-line grid - window X - matrix - window x2 - editable pivot table - uses fragment to patch (replace class) - (1) extend the base (your manifest => build tab - add your) - (2) in org.adempiere.base => runtime tab - add your jar to the top !!Distribution!! Theory of Constriants (TOC) - presented by Carlos - applied in manufacturing !!Document Automation!! Discussed at great length. PO works out fo the box work is needed in the model - core - need to make private method protected (so that you can extend the model while keeping your own package) Discussed removing all beforeSave(), etc... logic and moving to a plugin that you can replace NOTE: there is a new way to load models !!Plugins!! Carlos colombia plugin - worth discussing JPiere matrix window - offers pivot table Special editor - available plugin - good tool to change fields after completed - offers pre and post processing Adaxa has a nice time logging solution (ADempiere - not really a plugin) Adaxa has a nice revenue recognition solution (ADempiere - not really a plugin) Adaxa has a nice report to create unrealized gain/loss GL Journal (ADempiere - not really a plugin) Adaxa created solution for automatic consolidation counter entries !!SmartPOS!! New version coming out in a couple of weeks. 4th generation. Uses casandra as replication engine and big data repository