<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://globalqss.com/wiki/index.php?action=history&amp;feed=atom&amp;title=IDempiere%2FFullMeeting20121010</id>
	<title>IDempiere/FullMeeting20121010 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://globalqss.com/wiki/index.php?action=history&amp;feed=atom&amp;title=IDempiere%2FFullMeeting20121010"/>
	<link rel="alternate" type="text/html" href="https://globalqss.com/wiki/index.php?title=IDempiere/FullMeeting20121010&amp;action=history"/>
	<updated>2026-04-05T21:13:42Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>https://globalqss.com/wiki/index.php?title=IDempiere/FullMeeting20121010&amp;diff=184&amp;oldid=prev</id>
		<title>CarlosRuiz: full</title>
		<link rel="alternate" type="text/html" href="https://globalqss.com/wiki/index.php?title=IDempiere/FullMeeting20121010&amp;diff=184&amp;oldid=prev"/>
		<updated>2012-10-10T15:25:57Z</updated>

		<summary type="html">&lt;p&gt;full&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!-- breadcrumb --&amp;gt;&lt;br /&gt;
&amp;lt;font size=-2&amp;gt;&lt;br /&gt;
&amp;amp;lArr;&lt;br /&gt;
[[IDempiere|Table of Contents]] |&lt;br /&gt;
[[IDempiere/Full Meeting Minutes|Full Meeting Minutes]] |&lt;br /&gt;
Full Meeting 2012-10-10&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''CarlosRuiz''''': Good Morning&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': Bonjour&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': I have an interesting pull request to review  :)   Fixed Assets from Edwin&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': have fun :d ; just a question : would you recommend to use AD_SysConfig to store a date ; which will be used in a callout ?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': yes - no problem with that - you must respect the format&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': ok, just wanted to have a confirmation, but did not see why it cant be done&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': Hello&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': btw when you have done with Edwin pull request, and if you still have time, you can also review tickets 451 and 448, patches have been prepared and attached in Jira&amp;lt;br&amp;gt;&lt;br /&gt;
'''''FJVR''''': hello all&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': maybe would be worthy to add getTimestampValue to MSysConfig and enforce JDBC timestamp format &amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': Hi earocker, Hi FJVR &amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': ok nmicoud - noted - thanks for the reminder&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': will do this and commit it&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': i would like to know how can i make a new custom &amp;quot;CreateFrom&amp;quot; webform?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''FJVR''''': Like creating a Material Receipt from a Purchase Order?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': yeah, something like that, but for a new model class&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': idempiere or adempiere?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': idempiere&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': let me check - I think we have an extension point for that .....&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': well earocker &amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': yeap?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': the easiest is to copy one of the existant createfrom class and implement for your table&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': is not a straight task&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': so i must modify the WCreateFromWindow class??&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': it needs like 3 classes - one controller and two views for swing and zk&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': sorry i mean WCreateFromFactory&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': no, you must create a new class - you can use the WCreateFromWindow for some common things&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': you can check for example WCreateFromInvoiceUI which extends CreateFromInvoice and uses WCreateFromWindow&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': and you can register your extension using WCreateFromFactory.registerClass&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': i understand by registering my extension might work, but how can i register when the user click the CreateFrom button?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': the button must be called &amp;quot;CreateFrom&amp;quot; - just that&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': in AbstractADWindowPanel there is special code to treat that button name&amp;lt;br&amp;gt;&lt;br /&gt;
'''''FJVR''''': nice&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''':  else if (col.equals(&amp;quot;CreateFrom&amp;quot;))   {    ICreateFrom cf = WCreateFromFactory.create(curTab);     if(cf != null)    {     if(cf.isInitOK())     {      final WCreateFromWindow window = (WCreateFromWindow) cf.getWindow();      window.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);      window.addEventListener(DialogEvents.ON_MODAL_CLOSE, new EventListener&amp;lt;Event&amp;gt;() {       @Override       public void onEvent(Event event) &amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': so in that part i should register my extension?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': no, I would register the extension in a ModelValidator - at initialize maybe&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': great!!!&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': i didn't see that&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': thank u very much&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': you're welcome&amp;lt;br&amp;gt;&lt;br /&gt;
'''''FJVR''''': I started investigating as requested in IDEMPIERE-424 (replace compiere report enging with dynamic jasper) and it looks promising. Here you can fnd their API and the results of test using a software called 'Cobertura' : http://dynamicjasper.com/documentation-examples/api-docs/&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': i have one doubt more, what if i don't have a model validator, i mean, i have a new model class&amp;lt;br&amp;gt;&lt;br /&gt;
'''''FJVR''''': Though I could not tackle that problem, I still would like to participate in the process.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': you can have one model validator just for that&amp;lt;br&amp;gt;&lt;br /&gt;
'''''earocker''''': ok.. i see... thanks&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': Talking about Edwin's Fixed Assets to incorporate, CarlosRuiz i wonder if we can start to do things the plugin way?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': I hope to document it out for other devs to began doing any plugins and publish themselves&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': yes - that's the idea for payroll - and I need to port my LCO as plugin too&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': i be doing the OB POS integration and also the new JavaPOS (if needed)&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': .. as plugins..&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': i will go thru the code on how Hengsin has made 2Pack handler in the MF&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': MF?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': now i have a relevant question: &amp;quot;How do we handle small changes to code?&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': MF = Manifest File that handles the 2Pack automatically&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': Hengsin told me about it some time ago, that it can detect if a 2Pack is in it and extracts it out to the DB&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': ah, I see - it's working now - you just need to add a META-INF/2Pack.zip file&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': but he has not figured out the removal of the plugin to reverse the 2Pack yet&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': no, no reversal&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': so this is clear for a clearly defined 2Pack module&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': my question just now, ... previously we use Custom or Patches .. jars.. how do we do it now in iDempiere?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': (I have quite completed an Upgrade Assistant that will fetch the changes every month&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': such as migration scripts and the user just need to run Ant&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': i am docmenting and publishing it by tomorrow&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': haven't tested still if fragment bundles can solve that - need to study that part&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': Meanwhile, we are changing the code with diffs&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': so can we just replace them with new versions?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': still haven't tested that&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': i guess they are referred to as Revisions (and not official versions)&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': i mean without changing versions, just what diffs that occured in the bitbucket&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': Just tested the latest (last week) bitbucket revision, and it worked via the Kai Windows Installer&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': again discovered the launcher jar is wrongly referred (for the adempiere-client.bat)&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': should i raise a jira ticket for the right launcher full name?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': maybe it was solved on the .sh and not in the .bat ?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': wonder if i can submit a patch for that?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': ah - you mean for swing&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': yes.. and since it happened before i found it right away&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': i now have an installer that upgrades the changes in migration since June 12, 2012&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': so this proves all things are working&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': about your LCO or Payroll as plugin, i can help&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': i mean you have to explain to me what to do and i can help along&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': to then replicate across for the rest&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': the document to explain the process is sponsored by Sysnova&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': yes - I'm still in the process of learning too from Heng Sin  :)&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': haha.. a good hierarchy of trust we have here :)&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': i am glad I am finally tagged to the right person to depend on&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': nmicoud, - still there?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': yep&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': added a comment on IDEMPIERE-451&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': &amp;quot; I think we have a bug (not yours) on all those views.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': I think views are using NULLIF when they must use COALESCE.&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': I have no idea&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': ah no - maybe is right - we don't print the contact name if is the same as the bp name&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': that must be the case - to avoid two lines with the same content&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': i'm not an Oracle Expert, just using it&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': yes - just saw that reviewing the patch&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': but it makes sense&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': When you say &amp;quot;as in some cases it will print a greeting without name.&amp;quot;, when will that come ?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': we need to test&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': but I think it can happen&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': if you are printing the contact name&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': contact has a greeting&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': and the contact name is the same as the bp name&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': it must be printing something like&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': Mr. Carlos Ruiz&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': Mr.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': i've not tested this case : only a bp name different from contact name&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': CarlosRuiz: tested on order and... you're right ! if Joe Block  has a contact named Joe Block, then if i choose to print contact, then i can see : Mr Joe Block \n Mr 123 Oak St...&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': ah, thanks for confirming&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': then I guess is better to check the nullif condition also to print the greeting&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': yes&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': will do that and upload patches&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': thanks&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': Carlos are you still thinking of making an early release?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': Heng Sin just released the master-detail work&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': so, we're close&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': i am calling my latest installer 0.9.d&amp;lt;br&amp;gt;&lt;br /&gt;
'''''red1''''': it is until SQL script 920_&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': hum... Carlos, I'm lost... trying to modify view :&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': Actually, it is : CASE WHEN bp.IsContactPrinted='Y' THEN bpcg.Greeting END AS BPContactGreeting,&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': How can i check NULLIF condition ?&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': must be something like&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': CASE WHEN bp.IsContactPrinted='Y' AND bp.Name&amp;lt;&amp;gt;bpc.Name THEN bpcg.Greeting END AS BPContactGreeting,&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': ok thanks, i'll try this&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': similar case could be done instead of the NULLIF con bpname&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': it's working.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': But... if we had a checkbox to say that we want (or not) print the contact name ; the nullif condition is obsolete ; i mean, you have contact name = bpartner name and checkbox ticked ; you won't have the contact name printed&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': yes - but you could have bp with several contacts and one of them is the same as the bp name&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': correct&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': so, i will update views and upload them&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': gr8&amp;lt;br&amp;gt;&lt;br /&gt;
'''''CarlosRuiz''''': thanks a lot for the meeting - need to move out for a while&amp;lt;br&amp;gt;&lt;br /&gt;
'''''nmicoud''''': bye bye&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>CarlosRuiz</name></author>
		
	</entry>
</feed>