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