IDempiere/FullMeeting20140723

From WikiQSS

Table of Contents | Full Meeting Minutes | Full Meeting 2014-07-23

CarlosRuiz: Good Morning
nmicoud: Bonjour !
JanThielemann: hi
nmicoud: Could you have a lok at tickets #2077, #2073, #2072 and #1825 please ? (they all have patches). I also faced issue #1680 but have no idea for fixing it. Any tip ?
abhi_: any place where i can start my learning in idempiere????
adnan_T: hello
CarlosRuiz: ok nmicoud
abhi_: ???????????????
nmicoud: thanks carlos
nmicoud: abhi_ : what do you want to learn ? functional, technical, ...
abhi_: complete idempiere, i want to implement erp in my organisation
nmicoud: if you're a total newbie, you can start with testing the demo instance on demo.idempiere.com. Create business partner, orders, invoices, ...
abhi_: do i need to study accounting too??
nmicoud: accounting is automatically generated
abhi_: and can u refer some sources where i do need to go , to clear my concepts
nmicoud: if you want to implement it in your company, you should have some minimal knowledges
nmicoud: idempiere wiki, adempiere wiki (main concepts are same), adempiere cookbook also seems to have fans (personnaly i've never read it)
abhi_: i can pretty much create a whole organisation structure till now, i just need to know, are there some video tutorials available for it
nmicoud: video ? i guess chuck boecking has do some
nmicoud: http://www.chuckboecking.com/
abhi_: thanks will look into it :)
nmicoud: have fun ;)
CarlosRuiz: Bayu's book can be a good guide
CarlosRuiz: my laptop crashed after I wrote "Bayu's book can be a good guide" :-(
CarlosRuiz: so, I missed any message directed to me after that
nmicoud: you haven't missed anything
CarlosRuiz: nmicoud, about 1680
nmicoud: yes ?
CarlosRuiz: I was able to reproduce it - now testing a breakpoint on GridField.getDefault
nmicoud: ok
nmicoud: seems the tabNo is missing, only window (around line 651)
CarlosRuiz: ah yes - you have window context and tab context
CarlosRuiz: C_OrderLine_ID is on window context just when the order line tab is selected
Deepak__: Namaste!!!
CarlosRuiz: Hi Deepak__
Deepak__: Hello Carlos
Deepak__: Sorry I was not able to contact Steven yet to confirm what is ac-credential policy of them
Deepak__: Are you reached Germany?
CarlosRuiz: nope - flying tomorrow
CarlosRuiz: nmicoud, testing a possible workaround ...
Deepak__: Wish you Happy Journey
nmicoud: on holiday ?
CarlosRuiz: thanks Deepak__ - nmicoud -> business trip
nmicoud: ok, fine
CarlosRuiz: Deepak__, can you please take a look and advice on hiep's finding described with IDEMPIERE-2084
Deepak__: Sure, Let me see
CarlosRuiz: nmicoud, exploring m_vo.TabNo to check if we could try it - but is always set to zero on parameterpanel
nmicoud: ok
Deepak__: CarlosRuiz, cause for IDEMPIERE-2084 is default logic being 'N' for interpenetrated flag
Deepak__: I need to fix scripts to make that working
Deepak__: hieplq, you can default all existing lineMA to have isAutoGenerated='Y'
hieplq: Thanks Deepak__
CarlosRuiz: nmicoud, solution for 1680 doesn't seem easy
Deepak__: Thanks hieplq for reporting this, I missed to think about backward compatibility here
nmicoud: i agree Carlos
CarlosRuiz: I think maybe in AbstractADWindowContent.actionButton0 we could set the context of the tab into the window
CarlosRuiz: and clear that detail context again when the process finish maybe
CarlosRuiz: the reason to clear the detail context is that you have problems when your detail tab have for example a Processed=Y field
CarlosRuiz: suppose your master tab have Processed=N and your detail has Processed=Y - when you load the detail context your master tab becomes read-only
nmicoud: could be annoying :)
nmicoud: or would it be possible to call gridtab from the process param panel ?
nmicoud: AFAIR, it is done this way in forms
CarlosRuiz: ah idea!
nmicoud: ^^
CarlosRuiz: what if we put the default as @1|C_OrderLine_ID@ ... testing
nmicoud: nope, because the process could be called from master or detail tab
CarlosRuiz: it works
CarlosRuiz: the window context is cleared - but the tab context is intact
nmicoud: but the tab no must not changed
CarlosRuiz: ah sure - if you move sales order line to be third tab - then you would need to change the reference
nmicoud: what if in the window i have this structure Main tab sub tab 1 sub tab 2 sub tab 3 (that may be hidden) sub tab 4 -> the one with process
nmicoud: should i write @4... or @3... ??
nmicoud: or maybe i could duplicate the process and put different default values ?
CarlosRuiz: if the tab has not been displayed the tab context is not loaded - but it doesn't make sense to use a default from a different tab
nmicoud: in my case sub tab 3 could be hidden according to a value in main tab
nmicoud: i will try with the notation @x
hieplq: @CarlosRuiz, i have a new patch for IDEMPIERE-2083, please help me review it.
CarlosRuiz: thanks hieplq
CarlosRuiz: please resolve the ticket if that's enough
Deepak__: Carlos
Deepak__: Can you look at LoginPanel.java at line 498?
CarlosRuiz: yep Deepak__ -> Locale.setDefault(loc);
Deepak__: CarlosRuiz, Please note that it is setting loc at JVM level
Deepak__: If there are multiple language used on server
Deepak__: This JVM setting keeps changing as users with different language login and one over ride locale of another
Deepak__: My suggestion, we should not set locale but let JVM to use server locale
CarlosRuiz: sound sensitive
CarlosRuiz: http://docs.oracle.com/javase/6/docs/api/java/util/Locale.html#setDefault(java.util.Locale)
CarlosRuiz: there are other points using Locale.getDefault() that must be reviewed
Deepak__: I thing Locale.getDefault should remain same
CarlosRuiz: and also other points setting Locale.setDefault
Deepak__: as it get system locale
CarlosRuiz: getDefault is getting the JVM locale - you need to review where and how is used in case dropping that line affect the expected way
CarlosRuiz: also in CCachedRowSet.get there is a strange use of Locale.setDefault
CarlosRuiz: it says in comments "Required due to Java Sun bug 393865"
Deepak__: Looking now
Deepak__: Carlos,
Deepak__: Issue tried to fixed in CCachedRowset may be same what I faced and arrise to that line
Deepak__: If you set some locale in JVM, it then postgresql JDBC driver is not able to recieve any data
Deepak__: Even I say that the way CCachedRowSet.get fixing is not perfect in concurrent environment like server
Deepak__: it can be overridden at any time by other thread
CarlosRuiz: yep - I read you opened a ticket about turkish language
Deepak__: CarlosRuiz, I show usage of Locale.getDefault
Deepak__: I don't think we should set default locale manually
CarlosRuiz: yep - agree - I think we can try that
CarlosRuiz: seems that line was inherited from swing
Deepak__: CarlosRuiz, May be
Deepak__: It is from swing
Deepak__: But even in swing, we do not need to set that
Deepak__: As it can use system default
CarlosRuiz: nmicoud, on IDEMPIERE-2072
CarlosRuiz: ideally you must avoid using direct JDBC
CarlosRuiz: and use binding variables (?) whenever possible
CarlosRuiz: all the sql code in that patch can be replaced with just two lines:
CarlosRuiz: final String sql = "SELECT Date1 FROM C_NonBusinessDay WHERE AD_Client_ID=? AND Date1 BETWEEN ? AND ? AND COALESCE(C_Country_ID,0) IN (0, ?)";
CarlosRuiz: List<Object> nbd = DB.getSQLValueObjectsEx(trxName, sql, clientID, startDate, endDate, MCountry.getDefault(Env.getCtx()).getC_Country_ID());
nmicoud: CarlosRuiz, is it for performance issue ?
CarlosRuiz: there have been efforts to replace all jdbc with model methods
CarlosRuiz: not performance - mostly readability - easy maintenance - you don't need to cope with the finally block so less cursor open errors - etc
nmicoud: ok, will think for further patches
CarlosRuiz: the binding variables are important about security
nmicoud: and look at my actual code, there should be things to modify ;)
CarlosRuiz: using binding variables protect against SQL injection - and I think in this case performance can be better
CarlosRuiz: on the db and c3p0 parser - as the parsed statement is the same
nmicoud: ok
CarlosRuiz: nmicoud, I changed the method a little
CarlosRuiz: as said to avoid the jdbc
CarlosRuiz: but also take into account country - and not adding non-business-days from system client
CarlosRuiz: and I think the number of days must be inclusive - I mean including start and end date - so I dropped the nbd-- line at the end
nmicoud: for system client nbd, not sure, afair, TimeUtil used them
nmicoud: for the inclusive, i never if it should take them in account or not :)
CarlosRuiz: I just checked the select on nextbusinessday function and tried to make it consisten
CarlosRuiz: consistent
nmicoud: ah no, it is the countryID, not the client
CarlosRuiz: ah! I forgot to add the Isactive=Y flag
nmicoud: what is a task ?
CarlosRuiz: a menu entry to run shell scripts
CarlosRuiz: seems like nobody uses that :-)
nmicoud: is there an example in System or GardenWorld ?
nmicoud: i think :D
CarlosRuiz: Java Version - DB Export
nmicoud: Ah
nmicoud: i see
CarlosRuiz: I'm done for today - thanks for the meeting
nmicoud: thanks Carlos, and have a nice trip
nmicoud: and don't drink too much beer ;)
CarlosRuiz: :-D the temptation will be on the fridge
nmicoud: :)
CarlosRuiz: cu then - thanks
nmicoud: bye