IDempiere/FullMeeting20130313

From WikiQSS
Revision as of 11:17, 13 March 2013 by CarlosRuiz (talk | contribs) (full meeting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Table of Contents | Full Meeting Minutes | Full Meeting 2013-03-13

CarlosRuiz: Good Morning
nmicoud: Bonjour
a42niem: Guten Tag
nmicoud: Is there a place where we can find a kind of road map ; where we could find the next steps of the development. eg : version 1, then integration of ticket XXX (if a major one like those of Lazy Trees) ?
CarlosRuiz: nmicoud, the roadmap defined in july was this http://jira.idempiere.com/issues/?filter=10201
CarlosRuiz: I think we're basically done - there are maybe a couple of those tickets that won't make it on first release
nmicoud: meybe it can be updated so that we could affect tickets to a prticuliar release ?
nmicoud: eg : "IDEMPIERE-390 Attachments/archives on load balancer scenario " will be done in v 1.2
CarlosRuiz: jira has that feature - to plan roadmaps - but we need to do another round of planning
nmicoud: ok
CarlosRuiz: we're now frantically detecting and solving bugs - you must have noted that :-)
nmicoud: Yep, talking about this, i found an "interesting" bug this morning as described in (IDEMPIERE-731). Could you give me what you think about it
tbayen: Hi
CarlosRuiz: Hi Thomas
CarlosRuiz: nmicoud, interesting bug
nmicoud: yep, i've search a long long time to find it
nmicoud: but not sure of how to fix it
CarlosRuiz: sounds like m_nodes is one of those static variables that are not cleared on reset cache?
nmicoud: m_nodes seems ok, it has only active records
CarlosRuiz: were you testing on idempiere or 361?
nmicoud: 361 and demo.idempiere.com
nmicoud: you can't complete a bank statement by now
CarlosRuiz: cos I think I solved something similar recently on iDempiere - but didn't implement the auto-deactivation of transitions
nmicoud: i think that auto-deactivation should be set
nmicoud: an inactive node cannot be used anywhere, no ?
CarlosRuiz: yep - but maybe is about user configuring the wf being careful
nmicoud: also. But as thers is not a real validation of workflow, it's hard to check. Nevertheless, MWorkflow.getTransitions should not use inactive transitions
CarlosRuiz: when you deactivate a transition usually you need to go and reconnect the nodes that are now disconnected
CarlosRuiz: there is a "Validate workflow" process - maybe we need to check if is working to detect those cases
nmicoud: AFAIK, this process only check ad_workflow table.
CarlosRuiz: must check for loops on transitions
nmicoud: how the bug should be fixed then ? through this check process ?
nmicoud: note that this bug should be found on every kind of workflow (not only document process ones)
CarlosRuiz: yep - definitely a user can mess up the workflow (or other configuration things)
CarlosRuiz: not very easy to cope with that
CarlosRuiz: making the code safer to react on those events - and the validate processes maybe are the way
nmicoud: because i'm not sur that the validating process is mandatory for document workflows
CarlosRuiz: maybe we can run validate process on every event on nodes and transitions
nmicoud: yep
CarlosRuiz: similar to how the validate payment term works - a user can go to payment term and mess up the schema - on every change on schema the validate payment term is ran
nmicoud: but at the very end, the user must know that the WF is not validated
CarlosRuiz: schema -> I mean schedule
CarlosRuiz: yes - the process disable the valid flag if is not valid
nmicoud: or, maybe we can check the validate checkbox before executing the WF ?
CarlosRuiz: yep - that's a good safety measure
CarlosRuiz: and inform properly the user "workflow is invalid, please run validate workflow process and fix"
nmicoud: so 1st step : modification in MWorkflow ; 2nd : a "real" validating check workflow process ; 3 rd : control before executing a wf ?
CarlosRuiz: which modifications to MWorkflow have you in mind?
nmicoud: Modify MWorkflow.getTransitions (int AD_Client_ID) so that it will add the node to the list only if it is activated.
nmicoud: the 2nd modification is on MWFNode : deactivating a node should deactivate its transitions (one modification per class)
CarlosRuiz: not sure about this 2nd
nmicoud: the transition where the node is used
CarlosRuiz: I mean - user must do that consciously
nmicoud: you know users...
nmicoud: deactivating records is so easy
CarlosRuiz: ha - you're right WorkflowValidate is doing nothing - just two minor checks on wf
nmicoud: yep. You always win with that :)
CarlosRuiz: you can have the case where somebody inactivate a node by mistake - and then activate it again - but all transitions are inactivated without the user noting it
nmicoud: correct
CarlosRuiz: for those kind of things spreading in many tables is better to have a process if you want to do that
nmicoud: you mean isActive => Process ?
CarlosRuiz: yes - similarly, I remember somebody proposed that inactivating a menu folder must inactivate all options below that folder
CarlosRuiz: that's not good if done by mistake
CarlosRuiz: so, in such case is better in UX terms to have a process to "inactivate a menu folder and all its options"
CarlosRuiz: at least the user is aware of what is doing when running such process
nmicoud: could also be applied to BPartner ; deactivate one should also inactivate contacts, location, ...
nmicoud: so it means that the inactive checkbox will be hidden ? or set to button ?
CarlosRuiz: in workflow configuration - if you inactivate a middle node - you must connect the two nodes disconnected with a new transition
nmicoud: inactive checkbox = IsActive checkbox
CarlosRuiz: active flag hidden -> probably not - the code must be more careful about those conditions
nmicoud: but if it is set as a button, it can be hidden for some roles ?
nmicoud: easily
CarlosRuiz: ah - yes - if you make that process maybe is good to inactivate the flag in such tab
nmicoud: or use the current IsActive column to call the inactivate process
CarlosRuiz: no, doesn't sound good to use isactive for that
nmicoud: you have the checkbox (for everyone) or the process (for some roles)
CarlosRuiz: the process can have a parameter to "reconnect sibling nodes" - and create a transition for the previous and next node if that transition doesn't exist
CarlosRuiz: that would make life easier when playing with workflows
nmicoud: yes ; but another thing : document workflow'nodes must not be deactivated or altered as there is a lot of things which are hardcoded, no ?
CarlosRuiz: well - those four initial nodes must always exist - maybe validate workflow must check that
nmicoud: yes. If document process => 4 mandatory nodes must be present and active
CarlosRuiz: start prepare complete auto
CarlosRuiz: the validate workflow must check also for loops in the transitions - I thought it was doing that
nmicoud: this apply to all kind of wf
CarlosRuiz: yep
nmicoud: so what do we do ? at least Modify MWorkflow.getTransitions (int AD_Client_ID) so that it will add the node to the list only if it is activated and then after adding control in validate workflow process ?
nmicoud: as this will be consistent with m_nodes
CarlosRuiz: the class is different ...
nmicoud: correc, getTransitions is in MWFNode
nmicoud: it only checks for the AD_Client
CarlosRuiz: so - you propose something like this:
CarlosRuiz: diff -r 59d3c3430c9f org.adempiere.base/src/org/compiere/wf/MWFNode.java
CarlosRuiz: --- a/org.adempiere.base/src/org/compiere/wf/MWFNode.java Wed Mar 13 16:05:29 2013 +0800
CarlosRuiz: +++ b/org.adempiere.base/src/org/compiere/wf/MWFNode.java Wed Mar 13 08:54:20 2013 -0500
CarlosRuiz: @@ -245,7 +245,8 @@
CarlosRuiz: for (int i = 0; i < m_next.size(); i++)
CarlosRuiz: {
CarlosRuiz: MWFNodeNext next = m_next.get(i);
CarlosRuiz: - if (next.getAD_Client_ID() == 0 || next.getAD_Client_ID() == AD_Client_ID)
CarlosRuiz: + MWFNode node = MWFNode.get(getCtx(), next.getAD_WF_Next_ID());
CarlosRuiz: + if (node.isActive() && (next.getAD_Client_ID() == 0 || next.getAD_Client_ID() == AD_Client_ID))
CarlosRuiz: list.add(next);
CarlosRuiz: }
CarlosRuiz: MWFNodeNext[] retValue = new MWFNodeNext [list.size()];
nmicoud: yes
CarlosRuiz: sounds correct - must not bring transitions to inactive nodes
nmicoud: if users know what he is doing, there will not be NPE
nmicoud: elsewhere, there will be the validate process
CarlosRuiz: yep - that actual validate is just a false safety :-D
nmicoud: but a great asset for sales men : "you see there is a great process which controly ou wf!" :))
red1: hola just arrived at airport now.
CarlosRuiz: Hi red1
red1: CarlosRuiz: Edwin and me like to convert the TOC to plugin.
CarlosRuiz: sorry red1 - my machine rebooted
CarlosRuiz: lost your messages after "Edwin and me like to convert ..."
red1: convert the TOC to IDempiere.
red1: we can help review and implement a case.
JanThielemann: hi@all
CarlosRuiz: Hi JanThielemann
CarlosRuiz: red1, for TOC I just have the buffer management part - Gustavo sent us a doc - did you get it?
red1: yes I just saw it q
red1: hi jan
JanThielemann: red1 do you have a step by step tutorial for manufacturing?
nmicoud: I got this requirement from a customer : add a ShowInactiveRecords button on Window Search panel. By default, you only see active records. But you can see also inactive by pushing this button. So, the filters for the panel will be SavedQuery / History Records / ShowInactiveRecords. WDYT ?
red1: JanThielemann: my forum has somewhat but on Libero.
JanThielemann: is libero different from the manufacturing in idempiere?
CarlosRuiz: nmicoud, that sounds like an interesting requirement
nmicoud: i agree ; should it deserves a jira ticket ?
CarlosRuiz: that would mean also that when opening windows the records must be filtered initially to show just active
nmicoud: yes
CarlosRuiz: well - the options sounds good - I would use it - I don't like searching to find inactive records that I'm not interested in
nmicoud: same behaviour as Table fields or Search panel
CarlosRuiz: but maybe the default of such option can be configurable via MSysConfig
nmicoud: it can ; but you can also change it through Find panel
CarlosRuiz: yes - I mean - the default - if that flag is enabled or disabled by default - and use that flag also for the initial search
CarlosRuiz: not sure if MSysConfig or a user preference
CarlosRuiz: sounds more like a user pref
nmicoud: yes
nmicoud: Just to be sure User Preference in webUI are Automatic Commit, Automatic New Record, Dict. maintenance and log migration script ?
CarlosRuiz: JanThielemann, libero mfg was dropped on idempiere - we integrated mfg light from Adaxa
JanThielemann: CarlosRuiz is there any step by step tutorial or documentation about it?
CarlosRuiz: yes - Adaxa published one in their howtos
CarlosRuiz: nmicoud, there is a table called AD_UserPreference
CarlosRuiz: those four that you mention are the modifiable on such little window
CarlosRuiz: but if you open Preference window you'll see that we're using that table to save many more things
CarlosRuiz: i.e. the collapsed status of detail for each window
nmicoud: How the user will set this preference ?
CarlosRuiz: you could save that per window/user there
CarlosRuiz: or - if general then it must be placed on the preference little window
nmicoud: so he can initially see all records on products and only active in bpartner
CarlosRuiz: JanThielemann, here https://docs.google.com/folder/d/0B3bIqlUcP8LccElYY25nNkNCMlU/edit
CarlosRuiz: "HowTo Manufacturing Light v3.pdf"
CarlosRuiz: it depends - you want to make that preference per window - or general?
CarlosRuiz: or both'
JanThielemann: thank you CarlosRuiz
nmicoud: first i though of making it general. But maybe it can be useful to set it per window/tab ?
nmicoud: maybe too complex if set per window. A general setting should be enough. You don't search inactive records everyday
CarlosRuiz: yep - is the default - you can always override the default doing a search
nmicoud: yes ; i will create a ticket for this
hengsin: would that effect advance search as well ?
Not-001: [iDempiere] 1 commit https://bitbucket.org/idempiere/idempiere/commits/
Not-001: [iDempiere] globalqss 359ed11b039f Clean migration scripts - disable log for AD_Preference and UPDATE C_AcctProcessor SET DateNextRun
nmicoud: hum... don't know. It should have the same behaviour as Filter History, no ?
CarlosRuiz: yep - I think it's like a flag besides History -> "Show Active"
nmicoud: "Show Inactive"
CarlosRuiz: hehe - yes - Show Inactive
nmicoud: or a list : Active / Inactive / All ?
CarlosRuiz: and filled by default with the preference set by user
nmicoud: as there is 2 lists
hengsin: And we will hide the active column from advance search ?
CarlosRuiz: I think better a flag - easier
CarlosRuiz: and we can keep the Active column to allow search Active=N
nmicoud: ok
hengsin: Carlos, isn't active =n when the flag is off ?
hengsin: Sorry, I means when it is on.
CarlosRuiz: if you want to drop Active from the column list - then we would need the option as a list - like nmicoud pointed (All / Active / Inactive)
CarlosRuiz: but I think it can be simpler to have a "Show Inactive" flag
CarlosRuiz: when show inactive=Y - then no filter is applied (like actual behavior)
hengsin: Nvm, it is late here :)
CarlosRuiz: when show inactive=N - then isactive=Y filter is applied
buildmaster: Project iDempiere build #887: SUCCESS in 7 min 18 sec: http://jenkins.idempiere.com/job/iDempiere/887/
JanThielemann: can you tell me why the getList web service only returns the identifyer columns? e.g. if i want my webservice to return value and name but only name is marked as identifyer in the table and column window, only the name is returned
CarlosRuiz: yes JanThielemann - it's intended to return what is defined on the reference list
CarlosRuiz: you can get more columns using queryData
JanThielemann: okay, just wondering :)
JanThielemann: hengsin: can you tell me how i have to configure my plugins? they have a 2pack and should use the AdempiereActivator. also they should autostart but if i let them autostart with a start level of 6 or below i get a lot of errors and if i set the start level to 7 or higher it doesn't activate the plugin
JanThielemann: hmm to slow :(
nmicoud: there is no more update when adding or updating a jira ticket on this channel ?
CarlosRuiz: nmicoud, I enabled yesterday full notifications - but I think is too much information
CarlosRuiz: and changed to show just basic information and now is showing nothing
CarlosRuiz: maybe we can ask TkTech about - if JIRA changed something that notifico is not expecting
nmicoud: Who is TkTeck ?
CarlosRuiz: or - if you want I can enable back the full notifications - but is somewhat noisy
CarlosRuiz: TkTech is the provider of free Notifico service http://n.tkte.ch/
nmicoud: ah ok ; no that's is no critical. Just wondering why since this morning there was no notification
nmicoud: it's not a huge task to go to the main page of jira
CarlosRuiz: I usually read it in google reader
nmicoud: will try it
JanThielemann: carlos can you tell me how i have to configure my plugins? they have a 2pack and should use the AdempiereActivator. also they should autostart but if i let them autostart with a start level of 6 or below i get a lot of errors and if i set the start level to 7 or higher it doesn't activate the plugin
JanThielemann: the errors are related to the pipo plugins which seems not to be completly loaded at this time
CarlosRuiz: I've had had problems with the same
CarlosRuiz: usually it works for me install the plugin after the server has started
CarlosRuiz: and then start it
JanThielemann: but whats with the swing client?
CarlosRuiz: but maybe you can report that behavior as a bug better
CarlosRuiz: ah - don't know about swing
JanThielemann: i'll create a ticket
CarlosRuiz: guys - thanks for the meeting
CarlosRuiz: gt
CarlosRuiz: gtg
JanThielemann: who should i assign it?
CarlosRuiz: nobody :-)
CarlosRuiz: bye