From ae747cd47cac6b37d0f35169e11d26e615e56d01 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Wed, 2 May 2012 14:44:19 +0800 Subject: [PATCH 1/5] IDEMPIERE-254 2Pack Stabilization and Enhancement --- .../src/org/compiere/model/PO.java | 2 +- org.adempiere.pipo.handlers/plugin.xml | 4 + .../pipo2/handler/AdElementHandler.java | 43 ++-- .../handler/AttachmentElementHandler.java | 178 +++++++++++++ .../handler/CodeSnippetElementHandler.java | 46 ++-- .../pipo2/handler/ColumnElementHandler.java | 42 ++-- .../handler/CommonTranslationHandler.java | 34 +-- .../pipo2/handler/DistFileElementHandler.java | 42 ++-- .../handler/DynValRuleElementHandler.java | 32 ++- .../pipo2/handler/FieldElementHandler.java | 111 ++++++--- .../handler/FieldGroupElementHandler.java | 33 ++- .../pipo2/handler/FileElementHandler.java | 6 +- .../handler/FormAccessElementHandler.java | 64 +++-- .../pipo2/handler/FormElementHandler.java | 32 ++- .../handler/GenericPOElementHandler.java | 235 +++++++++++++----- .../handler/ImpFormatElementHandler.java | 50 ++-- .../handler/ImpFormatRowElementHandler.java | 41 +-- .../pipo2/handler/MenuElementHandler.java | 70 +++--- .../pipo2/handler/MessageElementHandler.java | 32 ++- .../pipo2/handler/OrgRoleElementHandler.java | 59 +++-- .../handler/PreferenceElementHandler.java | 36 ++- .../handler/PrintFormatElementHandler.java | 76 ++++-- .../PrintFormatItemElementHandler.java | 44 ++-- .../handler/PrintPaperElementHandler.java | 30 ++- .../handler/ProcessAccessElementHandler.java | 75 +++--- .../pipo2/handler/ProcessElementHandler.java | 50 ++-- .../handler/ProcessParaElementHandler.java | 48 ++-- .../handler/ReferenceElementHandler.java | 56 +++-- .../handler/ReferenceListElementHandler.java | 36 +-- .../handler/ReferenceTableElementHandler.java | 64 +++-- .../handler/ReportViewColElementHandler.java | 51 ++-- .../handler/ReportViewElementHandler.java | 90 ++++--- .../pipo2/handler/RoleElementHandler.java | 123 +++++---- .../handler/SQLStatementElementHandler.java | 36 ++- .../pipo2/handler/TabElementHandler.java | 68 +++-- .../pipo2/handler/TableElementHandler.java | 56 +++-- .../handler/TaskAccessElementHandler.java | 61 +++-- .../pipo2/handler/TaskElementHandler.java | 30 ++- .../pipo2/handler/UserRoleElementHandler.java | 83 +++++-- .../handler/WindowAccessElementHandler.java | 49 ++-- .../pipo2/handler/WindowElementHandler.java | 85 +++++-- .../handler/WorkflowAccessElementHandler.java | 64 +++-- .../pipo2/handler/WorkflowElementHandler.java | 97 +++++--- .../handler/WorkflowNodeElementHandler.java | 45 ++-- ...rkflowNodeNextConditionElementHandler.java | 94 ++++--- .../WorkflowNodeNextElementHandler.java | 53 ++-- org.adempiere.pipo/META-INF/MANIFEST.MF | 4 +- .../pipo2/AbstractElementHandler.java | 176 ++++++------- .../org/adempiere/pipo2/ElementHandler.java | 8 +- .../src/org/adempiere/pipo2/IDFinder.java | 139 +++++++++-- .../src/org/adempiere/pipo2/PIPOContext.java | 15 ++ .../src/org/adempiere/pipo2/PackIn.java | 25 +- .../org/adempiere/pipo2/PackInHandler.java | 179 ++++++------- .../org/adempiere/pipo2/PackInProcess.java | 33 ++- .../src/org/adempiere/pipo2/PackOut.java | 70 ++++-- .../org/adempiere/pipo2/PackOutProcess.java | 32 ++- .../src/org/adempiere/pipo2/PoExporter.java | 58 +++-- .../src/org/adempiere/pipo2/PoFiller.java | 56 +++-- .../org/adempiere/pipo2/ReferenceUtils.java | 71 +++++- 59 files changed, 2309 insertions(+), 1313 deletions(-) create mode 100644 org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AttachmentElementHandler.java create mode 100644 org.adempiere.pipo/src/org/adempiere/pipo2/PIPOContext.java diff --git a/org.adempiere.base/src/org/compiere/model/PO.java b/org.adempiere.base/src/org/compiere/model/PO.java index 7e08c57cd3..572cdcd177 100644 --- a/org.adempiere.base/src/org/compiere/model/PO.java +++ b/org.adempiere.base/src/org/compiere/model/PO.java @@ -863,7 +863,7 @@ public abstract class PO * @param value value * @return true if value set */ - protected final boolean set_ValueNoCheck (String ColumnName, Object value) + public final boolean set_ValueNoCheck (String ColumnName, Object value) { int index = get_ColumnIndex(ColumnName); if (index < 0) diff --git a/org.adempiere.pipo.handlers/plugin.xml b/org.adempiere.pipo.handlers/plugin.xml index 0286b73627..dfe05878c0 100644 --- a/org.adempiere.pipo.handlers/plugin.xml +++ b/org.adempiere.pipo.handlers/plugin.xml @@ -164,6 +164,10 @@ class="org.adempiere.pipo2.handler.ReferenceTableElementHandler" id="AD_Ref_Table"> + + diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AdElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AdElementHandler.java index 612ae824a0..3b77579416 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AdElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AdElementHandler.java @@ -19,11 +19,11 @@ package org.adempiere.pipo2.handler; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -44,19 +44,19 @@ public class AdElementHandler extends AbstractElementHandler { private final String AD_ELEMENT = "AD_Element"; - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { String action = null; String entitytype = getStringValue(element, "EntityType"); String ColumnName = getStringValue(element, "ColumnName"); - if (isProcessElement(ctx, entitytype)) { - + if (isProcessElement(ctx.ctx, entitytype)) { + M_Element mElement = findPO(ctx, element); if (mElement == null) { - int id = findIdByColumn(ctx, X_AD_Element.Table_Name, X_AD_Element.COLUMNNAME_ColumnName, ColumnName); - mElement = new M_Element(ctx, id, getTrxName(ctx)); + int id = findIdByColumn(ctx, X_AD_Element.Table_Name, X_AD_Element.COLUMNNAME_ColumnName, ColumnName, /*ignorecase=*/true); + mElement = new M_Element(ctx.ctx, id, getTrxName(ctx)); } List excludes = defaultExcludeList(X_AD_Element.Table_Name); if (mElement.getAD_Element_ID() == 0 && isOfficialId(element, "AD_Element_ID")) @@ -71,6 +71,7 @@ public class AdElementHandler extends AbstractElementHandler { List notfounds = pf.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -94,7 +95,7 @@ public class AdElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mElement.getName(), mElement.get_ID(), action); - throw new POSaveFailedException("Reference"); + throw new POSaveFailedException("Failed to save Element " + mElement.getName()); } } } else { @@ -102,14 +103,14 @@ public class AdElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - protected void create(Properties ctx, TransformerHandler document) + protected void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int adElement_id = Env.getContextAsInt(ctx, + int adElement_id = Env.getContextAsInt(ctx.ctx, X_AD_Element.COLUMNNAME_AD_Element_ID); if (processedElements.contains(adElement_id)) @@ -117,18 +118,22 @@ public class AdElementHandler extends AbstractElementHandler { processedElements.add(adElement_id); - X_AD_Element m_AdElement = new X_AD_Element(ctx, adElement_id, null); + X_AD_Element mAdElement = new X_AD_Element(ctx.ctx, adElement_id, null); + + if (ctx.packOut.getFromDate() != null) { + if (mAdElement.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("", "", "AD_Element", atts); - createAdElementBinding(ctx, document, m_AdElement); - - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); - + createAdElementBinding(ctx, document, mAdElement); + PackOut packOut = ctx.packOut; try{ - new CommonTranslationHandler().packOut(packOut,document,null,m_AdElement.get_ID()); + new CommonTranslationHandler().packOut(packOut,document,null,mAdElement.get_ID()); } catch(Exception e) { @@ -139,7 +144,7 @@ public class AdElementHandler extends AbstractElementHandler { } - private void createAdElementBinding(Properties ctx, TransformerHandler document, + private void createAdElementBinding(PIPOContext ctx, TransformerHandler document, X_AD_Element m_AdElement) { PoExporter filler = new PoExporter(ctx, document, m_AdElement); @@ -152,8 +157,8 @@ public class AdElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Element.COLUMNNAME_AD_Element_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Element.COLUMNNAME_AD_Element_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Element.COLUMNNAME_AD_Element_ID); + packout.getCtx().ctx.remove(X_AD_Element.COLUMNNAME_AD_Element_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AttachmentElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AttachmentElementHandler.java new file mode 100644 index 0000000000..0246aceb10 --- /dev/null +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AttachmentElementHandler.java @@ -0,0 +1,178 @@ +/****************************************************************************** + * This program is free software; you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program; if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * + * Copyright (C) 2005 Robert Klein. robeklein@hotmail.com + * Contributor(s): Low Heng Sin hengsin@avantz.com + *****************************************************************************/ +package org.adempiere.pipo2.handler; + + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.transform.sax.TransformerHandler; + +import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.Element; +import org.adempiere.pipo2.ElementHandler; +import org.adempiere.pipo2.PIPOContext; +import org.adempiere.pipo2.PackOut; +import org.adempiere.pipo2.PoExporter; +import org.adempiere.pipo2.PoFiller; +import org.adempiere.pipo2.ReferenceUtils; +import org.adempiere.pipo2.exception.POSaveFailedException; +import org.compiere.model.MAttachment; +import org.compiere.model.PO; +import org.compiere.model.X_AD_Attachment; +import org.compiere.model.X_AD_AttachmentNote; +import org.compiere.model.X_AD_Package_Imp_Detail; +import org.compiere.util.DB; +import org.compiere.util.Env; + +import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; + +public class AttachmentElementHandler extends AbstractElementHandler { + + private List attachments = new ArrayList(); + + public void startElement(PIPOContext ctx, Element element) + throws SAXException { + String action = null; + + MAttachment mAttachment = findPO(ctx, element); + if (mAttachment == null) { + int AD_Table_ID = ReferenceUtils.resolveReference(ctx.ctx, element.properties.get("AD_Table_ID"), getTrxName(ctx)); + if (AD_Table_ID <= 0) { + element.defer = true; + element.unresolved = "AD_Table_ID"; + return; + } + Element recordElement = element.properties.get("Record_ID"); + int Record_ID = ReferenceUtils.resolveReference(ctx.ctx, recordElement, getTrxName(ctx)); + if (Record_ID <= 0) { + element.defer = true; + element.unresolved = "Record_ID"; + return; + } + + int id = DB.getSQLValue(getTrxName(ctx), "SELECT AD_Attachment_ID FROM AD_Attachment WHERE Record_ID="+Record_ID+" AND AD_Table_ID="+AD_Table_ID); + mAttachment = new MAttachment(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); + if (mAttachment.is_new()) { + mAttachment.setAD_Table_ID(AD_Table_ID); + mAttachment.setRecord_ID(Record_ID); + } + } + List excludes = defaultExcludeList(X_AD_Attachment.Table_Name); + excludes.add("AD_Table_ID"); + excludes.add("Record_ID"); + if (mAttachment.getAD_Attachment_ID() == 0 && isOfficialId(element, "AD_Attachment_ID")) + mAttachment.setAD_Attachment_ID(getIntValue(element, "AD_Attachment_ID")); + + if (attachments.contains(mAttachment.getAD_Attachment_ID())) { + element.skip = true; + return; + } + + PoFiller pf = new PoFiller(ctx, mAttachment, element, this); + List notfounds = pf.autoFill(excludes); + if (notfounds.size() > 0) { + element.defer = true; + element.unresolved = notfounds.toString(); + return; + } + + mAttachment.getEntries(); + if (mAttachment.is_new() || mAttachment.is_Changed()) { + X_AD_Package_Imp_Detail impDetail = createImportDetail(ctx, element.qName, X_AD_Attachment.Table_Name, X_AD_Attachment.Table_ID); + if (!mAttachment.is_new()) { + backupRecord(ctx, impDetail.getAD_Package_Imp_Detail_ID(), X_AD_Attachment.Table_Name, mAttachment); + action = "Update"; + } else { + action = "New"; + } + + if (mAttachment.save(getTrxName(ctx)) == true) { + logImportDetail(ctx, impDetail, 1, mAttachment.toString(), + mAttachment.get_ID(), action); + + element.recordId = mAttachment.getAD_Attachment_ID(); + + attachments.add(mAttachment.getAD_Attachment_ID()); + + } else { + logImportDetail(ctx, impDetail, 0, mAttachment.toString(), + mAttachment.get_ID(), action); + throw new POSaveFailedException("Failed to save Attachment " + mAttachment.toString()); + } + } + } + + public void endElement(PIPOContext ctx, Element element) throws SAXException { + } + + protected void create(PIPOContext ctx, TransformerHandler document) + throws SAXException { + + + int AD_Attachment_ID = Env.getContextAsInt(ctx.ctx, "AD_Attachment_ID"); + + if (attachments.contains(AD_Attachment_ID)) + return; + + attachments.add(AD_Attachment_ID); + + MAttachment mAttachment = new MAttachment(ctx.ctx, AD_Attachment_ID, getTrxName(ctx)); + + if (ctx.packOut.getFromDate() != null) { + if (mAttachment.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", "AD_Attachment", atts); + createAttachmentBinding(ctx, document, mAttachment); + + int[] ids = PO.getAllIDs(X_AD_AttachmentNote.Table_Name, "AD_Attachment_ID="+AD_Attachment_ID, getTrxName(ctx)); + if (ids != null && ids.length > 0) { + ElementHandler handler = ctx.packOut.getHandler(X_AD_AttachmentNote.Table_Name); + for (int AD_AttachmentNote_ID : ids ) { + try { + handler.packOut(ctx.packOut, document, null, AD_AttachmentNote_ID); + } catch (Exception e) { + throw new SAXException(e); + } + } + } + document.endElement("", "", "AD_Attachment"); + } + + + private void createAttachmentBinding(PIPOContext ctx, TransformerHandler document, + MAttachment mAttachment) { + + PoExporter filler = new PoExporter(ctx, document, mAttachment); + if (mAttachment.getAD_Attachment_ID() <= PackOut.MAX_OFFICIAL_ID) + filler.add("AD_Attachment_ID", new AttributesImpl()); + + List excludes = defaultExcludeList(X_AD_Attachment.Table_Name); + filler.export(excludes); + } + + public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception + { + packout.getCtx().ctx.put("AD_Attachment_ID", recordId); + this.create(packout.getCtx(), packoutHandler); + packout.getCtx().ctx.remove("AD_Attachment_ID"); + } +} diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/CodeSnippetElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/CodeSnippetElementHandler.java index 182cb72e5e..dd6cbc1697 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/CodeSnippetElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/CodeSnippetElementHandler.java @@ -28,7 +28,6 @@ import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; @@ -44,12 +43,13 @@ import org.xml.sax.helpers.AttributesImpl; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.CodeSnippetElementParameters; import org.adempiere.pipo2.Element; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PackoutItem; public class CodeSnippetElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { String action = null; action = "Update"; String releaseNumber = getStringValue(element, "ReleaseNo"); @@ -68,7 +68,7 @@ public class CodeSnippetElementHandler extends AbstractElementHandler { //get adempiere-all directory try { - packagePath = getPackageDirectory(ctx); + packagePath = getPackageDirectory(ctx.ctx); File parentDirectory = new File(packagePath); while (!parentDirectory.getName().equals("packages")){ parentDirectory = parentDirectory.getParentFile(); @@ -144,9 +144,9 @@ public class CodeSnippetElementHandler extends AbstractElementHandler { } //Record in transaction file - X_AD_Package_Imp_Backup backup = new X_AD_Package_Imp_Backup(ctx, 0, getTrxName(ctx)); - backup.setAD_Org_ID(Env.getAD_Org_ID(ctx)); - backup.setAD_Package_Imp_ID(getPackageImpId(ctx)); + X_AD_Package_Imp_Backup backup = new X_AD_Package_Imp_Backup(ctx.ctx, 0, getTrxName(ctx)); + backup.setAD_Org_ID(Env.getAD_Org_ID(ctx.ctx)); + backup.setAD_Package_Imp_ID(getPackageImpId(ctx.ctx)); backup.setAD_Package_Imp_Org_Dir(targetDirectoryModified+sourceName ); backup.setAD_Package_Imp_Bck_Dir(packagePath+File.separator+"backup"+File.separator+fileDate+"_"+sourceName); backup.saveEx(); @@ -189,18 +189,18 @@ public class CodeSnippetElementHandler extends AbstractElementHandler { } - public void endElement(Properties ctx, Element element) + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext pipoContext, TransformerHandler document) throws SAXException { - String FileDir = Env.getContext(ctx, CodeSnippetElementParameters.DESTINATION_DIRECTORY); - String FileName = Env.getContext(ctx, CodeSnippetElementParameters.DESTINATION_FILE_NAME); - String OldCode = Env.getContext(ctx, CodeSnippetElementParameters.AD_Package_Code_Old); - String NewCode = Env.getContext(ctx, CodeSnippetElementParameters.AD_Package_Code_New); - String ReleaseNo = Env.getContext(ctx, CodeSnippetElementParameters.RELEASE_NO); + String FileDir = Env.getContext(pipoContext.ctx, CodeSnippetElementParameters.DESTINATION_DIRECTORY); + String FileName = Env.getContext(pipoContext.ctx, CodeSnippetElementParameters.DESTINATION_FILE_NAME); + String OldCode = Env.getContext(pipoContext.ctx, CodeSnippetElementParameters.AD_Package_Code_Old); + String NewCode = Env.getContext(pipoContext.ctx, CodeSnippetElementParameters.AD_Package_Code_New); + String ReleaseNo = Env.getContext(pipoContext.ctx, CodeSnippetElementParameters.RELEASE_NO); AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "custom"); createSnipitBinding(atts, FileDir, FileName, OldCode, NewCode, ReleaseNo); @@ -232,16 +232,16 @@ public class CodeSnippetElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { PackoutItem detail = packout.getCurrentPackoutItem(); - Env.setContext(packout.getCtx(), CodeSnippetElementParameters.DESTINATION_DIRECTORY, (String)detail.getProperty(CodeSnippetElementParameters.DESTINATION_DIRECTORY)); - Env.setContext(packout.getCtx(), CodeSnippetElementParameters.DESTINATION_FILE_NAME, (String)detail.getProperty(CodeSnippetElementParameters.DESTINATION_FILE_NAME)); - Env.setContext(packout.getCtx(), CodeSnippetElementParameters.AD_Package_Code_Old, (String)detail.getProperty(CodeSnippetElementParameters.AD_Package_Code_Old)); - Env.setContext(packout.getCtx(), CodeSnippetElementParameters.AD_Package_Code_New, (String)detail.getProperty(CodeSnippetElementParameters.AD_Package_Code_New)); - Env.setContext(packout.getCtx(), CodeSnippetElementParameters.RELEASE_NO, (String)detail.getProperty(CodeSnippetElementParameters.RELEASE_NO)); + Env.setContext(packout.getCtx().ctx, CodeSnippetElementParameters.DESTINATION_DIRECTORY, (String)detail.getProperty(CodeSnippetElementParameters.DESTINATION_DIRECTORY)); + Env.setContext(packout.getCtx().ctx, CodeSnippetElementParameters.DESTINATION_FILE_NAME, (String)detail.getProperty(CodeSnippetElementParameters.DESTINATION_FILE_NAME)); + Env.setContext(packout.getCtx().ctx, CodeSnippetElementParameters.AD_Package_Code_Old, (String)detail.getProperty(CodeSnippetElementParameters.AD_Package_Code_Old)); + Env.setContext(packout.getCtx().ctx, CodeSnippetElementParameters.AD_Package_Code_New, (String)detail.getProperty(CodeSnippetElementParameters.AD_Package_Code_New)); + Env.setContext(packout.getCtx().ctx, CodeSnippetElementParameters.RELEASE_NO, (String)detail.getProperty(CodeSnippetElementParameters.RELEASE_NO)); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(CodeSnippetElementParameters.DESTINATION_DIRECTORY); - packout.getCtx().remove(CodeSnippetElementParameters.DESTINATION_FILE_NAME); - packout.getCtx().remove(CodeSnippetElementParameters.AD_Package_Code_Old); - packout.getCtx().remove(CodeSnippetElementParameters.AD_Package_Code_New); - packout.getCtx().remove(CodeSnippetElementParameters.RELEASE_NO); + packout.getCtx().ctx.remove(CodeSnippetElementParameters.DESTINATION_DIRECTORY); + packout.getCtx().ctx.remove(CodeSnippetElementParameters.DESTINATION_FILE_NAME); + packout.getCtx().ctx.remove(CodeSnippetElementParameters.AD_Package_Code_Old); + packout.getCtx().ctx.remove(CodeSnippetElementParameters.AD_Package_Code_New); + packout.getCtx().ctx.remove(CodeSnippetElementParameters.RELEASE_NO); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ColumnElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ColumnElementHandler.java index 5b52b0dfeb..f0d5a530b3 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ColumnElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ColumnElementHandler.java @@ -21,12 +21,12 @@ import java.sql.DatabaseMetaData; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -49,11 +49,11 @@ import org.xml.sax.helpers.AttributesImpl; public class ColumnElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { int success = 0; String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { if (isParentDefer(element, I_AD_Table.Table_Name)) { element.defer = true; return; @@ -68,13 +68,13 @@ public class ColumnElementHandler extends AbstractElementHandler { if (getParentId(element, I_AD_Table.Table_Name) > 0) { tableid = getParentId(element, I_AD_Table.Table_Name); } else { - mColumn = new MColumn(ctx, 0, getTrxName(ctx)); + mColumn = new MColumn(ctx.ctx, 0, getTrxName(ctx)); PoFiller filler = new PoFiller(ctx, mColumn, element, this); filler.setTableReference("AD_Table_ID"); tableid = mColumn.getAD_Table_ID(); } - int AD_Column_ID = findIdByColumnAndParentId(ctx, "AD_Column", "ColumnName", columnName, "AD_Table", tableid); - mColumn = new MColumn(ctx, AD_Column_ID > 0 ? AD_Column_ID : 0, getTrxName(ctx)); + int AD_Column_ID = findIdByColumnAndParentId(ctx, "AD_Column", "ColumnName", columnName, "AD_Table", tableid, /*ignorecase=*/true); + mColumn = new MColumn(ctx.ctx, AD_Column_ID > 0 ? AD_Column_ID : 0, getTrxName(ctx)); if (mColumn.getAD_Column_ID() == 0 && isOfficialId(element, "AD_Column_ID")) { mColumn.setAD_Column_ID(getIntValue(element, "AD_Column_ID")); } @@ -87,6 +87,7 @@ public class ColumnElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -104,7 +105,7 @@ public class ColumnElementHandler extends AbstractElementHandler { // Setup Element. if (mColumn.getAD_Element_ID() == 0) { - X_AD_Element adElement = new X_AD_Element(ctx, 0, getTrxName(ctx)); + X_AD_Element adElement = new X_AD_Element(ctx.ctx, 0, getTrxName(ctx)); adElement.setColumnName(mColumn.getColumnName()); adElement.setEntityType(mColumn.getEntityType()); adElement.setPrintName(mColumn.getColumnName()); @@ -164,11 +165,11 @@ public class ColumnElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mColumn.getName(), mColumn .get_ID(), action); - throw new POSaveFailedException("Failed to import column."); + throw new POSaveFailedException("Failed to save column " + mColumn.getName()); } if (recreateColumn || syncDatabase) { - MTable table = new MTable(ctx, mColumn.getAD_Table_ID(), getTrxName(ctx)); + MTable table = new MTable(ctx.ctx, mColumn.getAD_Table_ID(), getTrxName(ctx)); if (!table.isView() && !mColumn.isVirtualColumn()) { success = createColumn(ctx, table, mColumn, recreateColumn); @@ -199,7 +200,7 @@ public class ColumnElementHandler extends AbstractElementHandler { * @param v_IsMandatory * */ - private int createColumn(Properties ctx, MTable table, MColumn column, boolean doAlter) { + private int createColumn(PIPOContext ctx, MTable table, MColumn column, boolean doAlter) { int no = 0; @@ -297,23 +298,30 @@ public class ColumnElementHandler extends AbstractElementHandler { return 1; } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Column_ID = Env.getContextAsInt(ctx, + int AD_Column_ID = Env.getContextAsInt(ctx.ctx, X_AD_Column.COLUMNNAME_AD_Column_ID); AttributesImpl atts = new AttributesImpl(); - X_AD_Column m_Column = new X_AD_Column(ctx, AD_Column_ID, + X_AD_Column m_Column = new X_AD_Column(ctx.ctx, AD_Column_ID, getTrxName(ctx)); + + if (ctx.packOut.getFromDate() != null) { + if (m_Column.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + addTypeName(atts, "table"); document.startElement("", "", I_AD_Column.Table_Name, atts); createColumnBinding(ctx, document, m_Column); document.endElement("", "", I_AD_Column.Table_Name); } - private void createColumnBinding(Properties ctx, TransformerHandler document, + private void createColumnBinding(PIPOContext ctx, TransformerHandler document, X_AD_Column m_Column) { PoExporter filler = new PoExporter(ctx, document, m_Column); @@ -337,8 +345,8 @@ public class ColumnElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_Column.COLUMNNAME_AD_Column_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_Column.COLUMNNAME_AD_Column_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_Column.COLUMNNAME_AD_Column_ID); + packout.getCtx().ctx.remove(I_AD_Column.COLUMNNAME_AD_Column_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/CommonTranslationHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/CommonTranslationHandler.java index 427b883ced..f7517799f2 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/CommonTranslationHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/CommonTranslationHandler.java @@ -5,12 +5,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.exceptions.DBException; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.ElementHandler; @@ -30,9 +30,9 @@ public class CommonTranslationHandler extends AbstractElementHandler implements private HashMap> cacheColumns = new HashMap>();//Key: table name. Value: set of PIPO columns - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { - if(! isHandleTranslations(ctx)){ + if(! isHandleTranslations(ctx.ctx)){ return;//translation import option is disabled } @@ -64,7 +64,7 @@ public class CommonTranslationHandler extends AbstractElementHandler implements private boolean isRecordExists(String tableName, int parentID, - String language, Properties ctx) { + String language, PIPOContext ctx) { String sql = "SELECT AD_Client_ID FROM " + tableName +" WHERE " + @@ -79,7 +79,7 @@ public class CommonTranslationHandler extends AbstractElementHandler implements private void insertTranslation(String tableName, int parentID, - Properties ctx, Element element) throws SAXException{ + PIPOContext ctx, Element element) throws SAXException{ String parentTable = tableName.substring(0, tableName.length()-4); ArrayList columns = getTranslatedColumns(parentTable); @@ -133,7 +133,7 @@ public class CommonTranslationHandler extends AbstractElementHandler implements private void updateTranslation(String tableName, int parentID, - Properties ctx, Element element) throws SAXException{ + PIPOContext ctx, Element element) throws SAXException{ String parentTable = tableName.substring(0, tableName.length()-4); ArrayList columns = getTranslatedColumns(parentTable); StringBuffer buffer = new StringBuffer("UPDATE "+tableName+" SET "); @@ -173,22 +173,22 @@ public class CommonTranslationHandler extends AbstractElementHandler implements } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) throws SAXException { + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - String parenTableName = Env.getContext(ctx, CONTEXT_KEY_PARENT_TABLE); + String parenTableName = Env.getContext(ctx.ctx, CONTEXT_KEY_PARENT_TABLE); - int parentRecordID = Env.getContextAsInt(ctx, CONTEXT_KEY_PARENT_RECORD_ID); + int parentRecordID = Env.getContextAsInt(ctx.ctx, CONTEXT_KEY_PARENT_RECORD_ID); createTranslationTags(ctx, parenTableName, parentRecordID, document); } - private void createTranslationTags(Properties ctx, String parentTable, + private void createTranslationTags(PIPOContext ctx, String parentTable, int parentRecordID, TransformerHandler document) throws SAXException { ArrayList translatedColumns = getTranslatedColumns(parentTable); @@ -221,7 +221,7 @@ public class CommonTranslationHandler extends AbstractElementHandler implements } } - private void exportRow(Properties ctx, TransformerHandler document, ArrayList columns, + private void exportRow(PIPOContext ctx, TransformerHandler document, ArrayList columns, ResultSet rs) throws Exception { PoExporter af = new PoExporter(ctx, document, null); @@ -289,12 +289,12 @@ public class CommonTranslationHandler extends AbstractElementHandler implements public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - if("true".equals(packout.getCtx().getProperty("isHandleTranslations"))){ - Env.setContext(packout.getCtx(), CommonTranslationHandler.CONTEXT_KEY_PARENT_TABLE,X_AD_Element.Table_Name); - Env.setContext(packout.getCtx(), CommonTranslationHandler.CONTEXT_KEY_PARENT_RECORD_ID,recordId); + if("true".equals(packout.getCtx().ctx.getProperty("isHandleTranslations"))){ + Env.setContext(packout.getCtx().ctx, CommonTranslationHandler.CONTEXT_KEY_PARENT_TABLE,X_AD_Element.Table_Name); + Env.setContext(packout.getCtx().ctx, CommonTranslationHandler.CONTEXT_KEY_PARENT_RECORD_ID,recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(CommonTranslationHandler.CONTEXT_KEY_PARENT_TABLE); - packout.getCtx().remove(CommonTranslationHandler.CONTEXT_KEY_PARENT_RECORD_ID); + packout.getCtx().ctx.remove(CommonTranslationHandler.CONTEXT_KEY_PARENT_TABLE); + packout.getCtx().ctx.remove(CommonTranslationHandler.CONTEXT_KEY_PARENT_RECORD_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/DistFileElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/DistFileElementHandler.java index 72c6110b8d..f3ea3b23b9 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/DistFileElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/DistFileElementHandler.java @@ -22,12 +22,12 @@ import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.Element; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PackoutItem; import org.compiere.Adempiere; @@ -53,7 +53,7 @@ public class DistFileElementHandler extends AbstractElementHandler { this.fileDest=fileDest; } - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { String action = null; String releaseNumber = getStringValue(element,"ReleaseNo"); @@ -72,7 +72,7 @@ public class DistFileElementHandler extends AbstractElementHandler { //get adempiere-all directory try { - packagePath = getPackageDirectory(ctx); + packagePath = getPackageDirectory(ctx.ctx); File parentDirectory = new File(packagePath); while (!parentDirectory.getName().equals("packages")){ parentDirectory = parentDirectory.getParentFile(); @@ -165,25 +165,25 @@ public class DistFileElementHandler extends AbstractElementHandler { } } //Record in transaction file - X_AD_Package_Imp_Backup backup = new X_AD_Package_Imp_Backup(ctx, 0, getTrxName(ctx)); - backup.setAD_Org_ID(Env.getAD_Org_ID(ctx)); + X_AD_Package_Imp_Backup backup = new X_AD_Package_Imp_Backup(ctx.ctx, 0, getTrxName(ctx)); + backup.setAD_Org_ID(Env.getAD_Org_ID(ctx.ctx)); backup.setAD_Package_Imp_Org_Dir(fullTargetPath+fileName); backup.setAD_Package_Imp_Bck_Dir(packagePath+File.separator+"backup"+File.separator+fileDate+"_"+fileName); - backup.setAD_Package_Imp_ID(getPackageImpId(ctx)); + backup.setAD_Package_Imp_ID(getPackageImpId(ctx.ctx)); backup.saveEx(); } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - String FileName = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_FileName); - String Source_Directory = Env.getContext(ctx, "Source_Directory"); - String Target_Directory = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory); - String ReleaseNo = Env.getContext(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo); + String FileName = Env.getContext(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_FileName); + String Source_Directory = Env.getContext(ctx.ctx, "Source_Directory"); + String Target_Directory = Env.getContext(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory); + String ReleaseNo = Env.getContext(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo); AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "custom"); document.startElement("","","Dist_File",atts); @@ -197,22 +197,20 @@ public class DistFileElementHandler extends AbstractElementHandler { public void doPackout(PackOut packout, MPackageExp header, PackoutItem detail,TransformerHandler packOutDocument,TransformerHandler packageDocument,AttributesImpl atts,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_FileName, (String)detail.getProperty("FileName")); - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo, (String)detail.getProperty("ReleaseNo")); - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory, (String)detail.getProperty("TargetDirectory")); - Env.setContext(packout.getCtx(), "Source_Directory", fileDest); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_FileName, (String)detail.getProperty("FileName")); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo, (String)detail.getProperty("ReleaseNo")); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory, (String)detail.getProperty("TargetDirectory")); + Env.setContext(packout.getCtx().ctx, "Source_Directory", fileDest); this.create(packout.getCtx(), packOutDocument); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_FileName); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory); - packout.getCtx().remove("Source_Directory"); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_FileName); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_ReleaseNo); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_Target_Directory); + packout.getCtx().ctx.remove("Source_Directory"); } @Override public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - // TODO Auto-generated method stub - } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/DynValRuleElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/DynValRuleElementHandler.java index 1e640e73a6..e87476484b 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/DynValRuleElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/DynValRuleElementHandler.java @@ -18,11 +18,11 @@ package org.adempiere.pipo2.handler; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -40,16 +40,16 @@ public class DynValRuleElementHandler extends AbstractElementHandler { private List rules = new ArrayList(); - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { String name = getStringValue(element, "Name"); X_AD_Val_Rule mValRule = findPO(ctx, element); if (mValRule == null) { int id = findIdByColumn(ctx, "AD_Val_Rule", "Name", name); - mValRule = new X_AD_Val_Rule(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mValRule = new X_AD_Val_Rule(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } if (mValRule.getAD_Val_Rule_ID() == 0 && isOfficialId(element, "AD_Val_Rule_ID")) mValRule.setAD_Val_Rule_ID(getIntValue(element, "AD_Val_Rule_ID")); @@ -60,6 +60,7 @@ public class DynValRuleElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -80,7 +81,7 @@ public class DynValRuleElementHandler extends AbstractElementHandler { } else{ logImportDetail (ctx, impDetail, 0, mValRule.getName(), mValRule.get_ID(),action); - throw new POSaveFailedException("Failed to save dynamic validation rule."); + throw new POSaveFailedException("Failed to save dynamic validation rule " + mValRule.getName()); } } } else { @@ -89,16 +90,23 @@ public class DynValRuleElementHandler extends AbstractElementHandler { } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - protected void create(Properties ctx, TransformerHandler document) + protected void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Val_Rule_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID); + int AD_Val_Rule_ID = Env.getContextAsInt(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID); if (rules.contains(AD_Val_Rule_ID)) return; rules.add(AD_Val_Rule_ID); - X_AD_Val_Rule m_ValRule = new X_AD_Val_Rule (ctx, AD_Val_Rule_ID, null); + X_AD_Val_Rule m_ValRule = new X_AD_Val_Rule (ctx.ctx, AD_Val_Rule_ID, null); + + if (ctx.packOut.getFromDate() != null) { + if (m_ValRule.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("","",I_AD_Val_Rule.Table_Name, atts); @@ -107,7 +115,7 @@ public class DynValRuleElementHandler extends AbstractElementHandler { } - private void createDynamicValidationRuleBinding(Properties ctx, TransformerHandler document, X_AD_Val_Rule m_ValRule) + private void createDynamicValidationRuleBinding(PIPOContext ctx, TransformerHandler document, X_AD_Val_Rule m_ValRule) { PoExporter filler = new PoExporter(ctx, document, m_ValRule); Listexcludes = defaultExcludeList(X_AD_Val_Rule.Table_Name); @@ -122,9 +130,9 @@ public class DynValRuleElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Val_Rule_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FieldElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FieldElementHandler.java index 6aa853c930..c4b29f82ba 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FieldElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FieldElementHandler.java @@ -17,12 +17,12 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.ElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -33,7 +33,6 @@ import org.compiere.model.I_AD_Field; import org.compiere.model.I_AD_FieldGroup; import org.compiere.model.I_AD_Reference; import org.compiere.model.I_AD_Tab; -import org.compiere.model.I_AD_Val_Rule; import org.compiere.model.MField; import org.compiere.model.X_AD_Field; import org.compiere.model.X_AD_Package_Imp_Detail; @@ -44,32 +43,47 @@ import org.xml.sax.helpers.AttributesImpl; public class FieldElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { if (isParentDefer(element, I_AD_Tab.Table_Name)) { element.defer = true; return; } Listexcludes = defaultExcludeList(X_AD_Field.Table_Name); + excludes.add("AD_Window_ID"); + excludes.add("AD_Tab_ID"); int tabid = getParentId(element, I_AD_Tab.Table_Name) ; + if (tabid <= 0) { + Element tabElement = element.properties.get("AD_Tab_ID"); + if (ReferenceUtils.isIDLookup(tabElement) || ReferenceUtils.isUUIDLookup(tabElement)) { + tabid = ReferenceUtils.resolveReference(ctx.ctx, tabElement, getTrxName(ctx)); + } else { + String tabName = getStringValue(element, "AD_Tab_ID"); + int AD_Window_ID = ReferenceUtils.resolveReference(ctx.ctx, element.properties.get("AD_Window_ID"), getTrxName(ctx)); + if (AD_Window_ID > 0) { + tabid = findIdByNameAndParentId(ctx, "AD_Tab", tabName, "AD_Window", AD_Window_ID); + } + } + } if (tabid <= 0) { element.defer = true; + element.unresolved = "AD_Tab_ID"; return; } - MField mField = findPO(ctx, element); - if (mField == null) - { - int AD_Table_ID = ReferenceUtils.resolveReference(ctx, element.parent.properties.get("AD_Table_ID"), getTrxName(ctx)); + excludes.add("AD_Table_ID"); + excludes.add("AD_Column_ID"); + + int AD_Table_ID = ReferenceUtils.resolveReference(ctx.ctx, element.properties.get("AD_Table_ID"), getTrxName(ctx)); Element columnElement = element.properties.get("AD_Column_ID"); int AD_Column_ID = 0; if (ReferenceUtils.isIDLookup(columnElement) || ReferenceUtils.isUUIDLookup(columnElement)) { - AD_Column_ID = ReferenceUtils.resolveReference(ctx, columnElement, getTrxName(ctx)); + AD_Column_ID = ReferenceUtils.resolveReference(ctx.ctx, columnElement, getTrxName(ctx)); } else { @@ -79,20 +93,32 @@ public class FieldElementHandler extends AbstractElementHandler { if (AD_Column_ID == 0) { element.defer = true; + element.unresolved = "AD_Column_ID"; return; } + MField mField = findPO(ctx, element); + if (mField == null) + { StringBuffer sqlB = new StringBuffer( "select AD_Field_ID from AD_Field where AD_Column_ID = ") .append(AD_Column_ID) .append(" and AD_Tab_ID = ?"); int id = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), tabid); - mField = new MField(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mField = new MField(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); if (mField.is_new()) { mField.setAD_Column_ID(AD_Column_ID); mField.setAD_Tab_ID(tabid); } + } else { + if (mField.getAD_Tab_ID() != tabid) { + mField.setAD_Tab_ID(tabid); } + if (mField.getAD_Column_ID() != AD_Column_ID) { + mField.setAD_Column_ID(AD_Column_ID); + } + } + PoFiller filler = new PoFiller(ctx, mField, element, this); if (mField.getAD_Field_ID() == 0 && isOfficialId(element, "AD_Field_ID")) { @@ -102,6 +128,7 @@ public class FieldElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -124,7 +151,7 @@ public class FieldElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mField.getName(), mField .get_ID(), action); - throw new POSaveFailedException("Failed to save field definition."); + throw new POSaveFailedException("Failed to save field definition " + mField.getName()); } } } else { @@ -132,20 +159,16 @@ public class FieldElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Field_ID = Env.getContextAsInt(ctx, + int AD_Field_ID = Env.getContextAsInt(ctx.ctx, X_AD_Field.COLUMNNAME_AD_Field_ID); - X_AD_Field m_Field = new X_AD_Field(ctx, AD_Field_ID, null); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Field.Table_Name, atts); - createFieldBinding(ctx, document, m_Field); + X_AD_Field m_Field = new X_AD_Field(ctx.ctx, AD_Field_ID, null); - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); + PackOut packOut = ctx.packOut; try { @@ -160,28 +183,26 @@ public class FieldElementHandler extends AbstractElementHandler { ElementHandler handler = packOut.getHandler(I_AD_Reference.Table_Name); handler.packOut(packOut,document,null,m_Field.getAD_Reference_ID()); } - - if (m_Field.getAD_Reference_Value_ID()>0) - { - ElementHandler handler = packOut.getHandler(I_AD_Reference.Table_Name); - handler.packOut(packOut,document,null,m_Field.getAD_Reference_Value_ID()); - } - - if (m_Field.getAD_Val_Rule_ID()>0) - { - ElementHandler handler = packOut.getHandler(I_AD_Val_Rule.Table_Name); - handler.packOut(packOut,document,null,m_Field.getAD_Val_Rule_ID()); - } } catch(Exception e) - { - log.info(e.toString()); + { + throw new SAXException(e); + } + + if (ctx.packOut.getFromDate() != null) { + if (m_Field.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } } - document.endElement("", "", I_AD_Field.Table_Name); + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", X_AD_Field.Table_Name, atts); + createFieldBinding(ctx, document, m_Field); + document.endElement("", "", X_AD_Field.Table_Name); } - private void createFieldBinding(Properties ctx, TransformerHandler document, + private void createFieldBinding(PIPOContext ctx, TransformerHandler document, X_AD_Field m_Field) { List excludes = defaultExcludeList(X_AD_Field.Table_Name); @@ -190,6 +211,20 @@ public class FieldElementHandler extends AbstractElementHandler { filler.add("AD_Field_ID", new AttributesImpl()); } + int AD_Table_ID = DB.getSQLValue(getTrxName(ctx), "SELECT AD_Table_ID FROM AD_Column WHERE AD_Column_ID=?", m_Field.getAD_Column_ID()); + if (AD_Table_ID > 0) { + AttributesImpl atts = new AttributesImpl(); + filler.addTableReference("AD_Table_ID", "AD_Table", "TableName", AD_Table_ID, atts); + } + + excludes.add("AD_Tab_ID"); + AttributesImpl atts = new AttributesImpl(); + filler.addTableReference("AD_Tab_ID", "AD_Tab", "Name", m_Field.getAD_Tab_ID(), atts); + if (atts.getValue("reference").equals("table")) { + int AD_Window_ID = DB.getSQLValue(getTrxName(ctx), "SELECT AD_Window_ID FROM AD_Tab WHERE AD_Tab_ID=?", m_Field.getAD_Tab_ID()); + filler.addTableReference("AD_Window_ID", "AD_Window", "Name", AD_Window_ID, new AttributesImpl()); + } + filler.export(excludes); } @@ -197,8 +232,8 @@ public class FieldElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_Field.COLUMNNAME_AD_Field_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_Field.COLUMNNAME_AD_Field_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_Field.COLUMNNAME_AD_Field_ID); + packout.getCtx().ctx.remove(I_AD_Field.COLUMNNAME_AD_Field_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FieldGroupElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FieldGroupElementHandler.java index b4080fb3a1..b05aa06bab 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FieldGroupElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FieldGroupElementHandler.java @@ -19,11 +19,11 @@ package org.adempiere.pipo2.handler; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -42,7 +42,7 @@ public class FieldGroupElementHandler extends AbstractElementHandler { private List processedFieldGroups = new ArrayList(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { String elementValue = element.getElementValue(); String action = null; @@ -52,13 +52,13 @@ public class FieldGroupElementHandler extends AbstractElementHandler { String entitytype = getStringValue(element, "EntityType"); String name = getStringValue(element, "Name"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { X_AD_FieldGroup fieldGroup = findPO(ctx, element); if (fieldGroup == null) { int id = findIdByColumn(ctx, X_AD_FieldGroup.Table_Name, X_AD_FieldGroup.COLUMNNAME_Name, name); - fieldGroup = new X_AD_FieldGroup(ctx, id > 0 ? id : 0, getTrxName(ctx)); + fieldGroup = new X_AD_FieldGroup(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } PoFiller pf = new PoFiller(ctx, fieldGroup, element, this); List excludes = defaultExcludeList(X_AD_FieldGroup.Table_Name); @@ -75,6 +75,7 @@ public class FieldGroupElementHandler extends AbstractElementHandler { List notfounds = pf.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -99,7 +100,7 @@ public class FieldGroupElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, fieldGroup.getName(), fieldGroup.get_ID(), action); - throw new POSaveFailedException("Reference"); + throw new POSaveFailedException("Failed to save Field Group " + fieldGroup.getName()); } } } else { @@ -107,14 +108,14 @@ public class FieldGroupElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - protected void create(Properties ctx, TransformerHandler document) + protected void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int fieldGroup_id = Env.getContextAsInt(ctx, + int fieldGroup_id = Env.getContextAsInt(ctx.ctx, X_AD_FieldGroup.COLUMNNAME_AD_FieldGroup_ID); if (processedFieldGroups.contains(fieldGroup_id)) @@ -122,7 +123,13 @@ public class FieldGroupElementHandler extends AbstractElementHandler { processedFieldGroups.add(fieldGroup_id); - X_AD_FieldGroup fieldGroup = new X_AD_FieldGroup(ctx, fieldGroup_id, null); + X_AD_FieldGroup fieldGroup = new X_AD_FieldGroup(ctx.ctx, fieldGroup_id, null); + + if (ctx.packOut.getFromDate() != null) { + if (fieldGroup.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); @@ -130,7 +137,7 @@ public class FieldGroupElementHandler extends AbstractElementHandler { createAdElementBinding(ctx, document, fieldGroup); - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); + PackOut packOut = ctx.packOut; try{ new CommonTranslationHandler().packOut(packOut,document,null,fieldGroup.get_ID()); @@ -143,7 +150,7 @@ public class FieldGroupElementHandler extends AbstractElementHandler { } - private void createAdElementBinding(Properties ctx, TransformerHandler document, + private void createAdElementBinding(PIPOContext ctx, TransformerHandler document, X_AD_FieldGroup fieldGroup) { PoExporter filler = new PoExporter(ctx, document, fieldGroup); @@ -157,9 +164,9 @@ public class FieldGroupElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_FieldGroup.COLUMNNAME_AD_FieldGroup_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_FieldGroup.COLUMNNAME_AD_FieldGroup_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_FieldGroup.COLUMNNAME_AD_FieldGroup_ID); + packout.getCtx().ctx.remove(X_AD_FieldGroup.COLUMNNAME_AD_FieldGroup_ID); } } \ No newline at end of file diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FileElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FileElementHandler.java index 1a88609c43..0da89781b0 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FileElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FileElementHandler.java @@ -1,7 +1,6 @@ package org.adempiere.pipo2.handler; import java.io.File; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; @@ -10,6 +9,7 @@ import org.adempiere.exceptions.AdempiereException; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.ElementHandler; import org.adempiere.pipo2.FileElementParameters; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PackoutDocument; import org.adempiere.pipo2.PackoutItem; @@ -88,11 +88,11 @@ public class FileElementHandler implements ElementHandler { } @Override - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { } @Override - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FormAccessElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FormAccessElementHandler.java index 0a3f424eee..25f2a78be3 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FormAccessElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FormAccessElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; @@ -40,7 +40,7 @@ import org.xml.sax.helpers.AttributesImpl; public class FormAccessElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Form_Access.Table_Name); MFormAccess po = findPO(ctx, element); @@ -49,28 +49,30 @@ public class FormAccessElementHandler extends AbstractElementHandler { if (getParentId(element, I_AD_Role.Table_Name) > 0) { AD_Role_ID = getParentId(element, I_AD_Role.Table_Name); } else { - AD_Role_ID = ReferenceUtils.resolveReference(ctx, element.properties.get("AD_Role_ID"), getTrxName(ctx)); + AD_Role_ID = ReferenceUtils.resolveReference(ctx.ctx, element.properties.get("AD_Role_ID"), getTrxName(ctx)); } if (AD_Role_ID <= 0) { element.defer = true; + element.unresolved = "AD_Role_ID"; return; } - int AD_Form_ID = ReferenceUtils.resolveReference(ctx, element.properties.get("AD_Form_ID"), getTrxName(ctx)); + int AD_Form_ID = ReferenceUtils.resolveReference(ctx.ctx, element.properties.get("AD_Form_ID"), getTrxName(ctx)); if (AD_Form_ID <= 0) { element.defer = true; + element.unresolved = "AD_Form_ID"; return; } - Query query = new Query(ctx, "AD_Form_Access", "AD_Form_ID = ? AND AD_Role_ID = ?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, "AD_Form_Access", "AD_Form_ID = ? AND AD_Role_ID = ?", getTrxName(ctx)); po = query.setParameters(new Object[]{AD_Form_ID, AD_Role_ID}) .setClient_ID() .first(); if (po == null) { - po = new MFormAccess(ctx, 0, null); + po = new MFormAccess(ctx.ctx, 0, getTrxName(ctx)); po.setAD_Form_ID(AD_Form_ID); po.setAD_Role_ID(AD_Role_ID); } @@ -83,43 +85,51 @@ public class FormAccessElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } po.saveEx(); } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Form_ID = Env.getContextAsInt(ctx, X_AD_Form.COLUMNNAME_AD_Form_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Form_Access.Table_Name, atts); - createFormAccessBinding(ctx, document, AD_Form_ID, AD_Role_ID); - document.endElement("", "", I_AD_Form_Access.Table_Name); + int AD_Form_ID = Env.getContextAsInt(ctx.ctx, X_AD_Form.COLUMNNAME_AD_Form_ID); + int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); + + MFormAccess po = null; + Query query = new Query(ctx.ctx, "AD_Form_Access", "AD_Form_ID = ? AND AD_Role_ID = ?", getTrxName(ctx)); + po = query.setParameters(new Object[]{AD_Form_ID, AD_Role_ID}).first(); + + if (po != null) { + + if (ctx.packOut.getFromDate() != null) { + if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", I_AD_Form_Access.Table_Name, atts); + createFormAccessBinding(ctx, document, po); + document.endElement("", "", I_AD_Form_Access.Table_Name); + } } - private void createFormAccessBinding(Properties ctx, TransformerHandler document, - int formId, int roleId) { - MFormAccess po = null; - Query query = new Query(ctx, "AD_Form_Access", "AD_Form_ID = ? AND AD_Role_ID = ?", getTrxName(ctx)); - po = query.setParameters(new Object[]{formId, roleId}).first(); - if (po != null) { - PoExporter filler = new PoExporter(ctx, document, po); - List excludes = defaultExcludeList(X_AD_Form_Access.Table_Name); - filler.export(excludes); - } + private void createFormAccessBinding(PIPOContext ctx, TransformerHandler document, + MFormAccess po) { + PoExporter filler = new PoExporter(ctx, document, po); + List excludes = defaultExcludeList(X_AD_Form_Access.Table_Name); + filler.export(excludes); } @Override public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - // TODO Auto-generated method stub - } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FormElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FormElementHandler.java index f838389294..a037691d60 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FormElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/FormElementHandler.java @@ -19,11 +19,11 @@ package org.adempiere.pipo2.handler; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -42,16 +42,16 @@ public class FormElementHandler extends AbstractElementHandler { private List forms = new ArrayList(); - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Form.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { MForm mForm = findPO(ctx, element); if (mForm == null) { String name = getStringValue(element, "Name"); int id = findIdByName(ctx, "AD_Form", name); - mForm = new MForm(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mForm = new MForm(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } PoFiller filler = new PoFiller(ctx, mForm, element, this); @@ -63,6 +63,7 @@ public class FormElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -83,7 +84,7 @@ public class FormElementHandler extends AbstractElementHandler { } else{ logImportDetail (ctx, impDetail, 0, mForm.getName(), mForm.get_ID(), action); - throw new POSaveFailedException("Failed to save form definition"); + throw new POSaveFailedException("Failed to save form definition " + mForm.getName()); } } } else { @@ -91,16 +92,23 @@ public class FormElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - protected void create(Properties ctx, TransformerHandler document) + protected void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Form_ID = Env.getContextAsInt(ctx, "AD_Form_ID"); + int AD_Form_ID = Env.getContextAsInt(ctx.ctx, "AD_Form_ID"); if (forms.contains(AD_Form_ID)) return; forms.add(AD_Form_ID); - X_AD_Form m_Form = new X_AD_Form (ctx, AD_Form_ID, null); + X_AD_Form m_Form = new X_AD_Form (ctx.ctx, AD_Form_ID, null); + + if (ctx.packOut.getFromDate() != null) { + if (m_Form.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("","",I_AD_Form.Table_Name,atts); @@ -108,7 +116,7 @@ public class FormElementHandler extends AbstractElementHandler { document.endElement("","",I_AD_Form.Table_Name); } - private void createFormBinding(Properties ctx, TransformerHandler document, X_AD_Form m_Form) + private void createFormBinding(PIPOContext ctx, TransformerHandler document, X_AD_Form m_Form) { PoExporter filler = new PoExporter(ctx, document, m_Form); List excludes = defaultExcludeList(X_AD_Form.Table_Name); @@ -121,8 +129,8 @@ public class FormElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Form_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Form_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Form_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Form_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java index 38db379171..1254469bf7 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java @@ -21,7 +21,6 @@ import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; @@ -29,11 +28,13 @@ import org.adempiere.exceptions.AdempiereException; import org.adempiere.model.GenericPO; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.DataElementParameters; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackoutItem; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoFiller; +import org.adempiere.pipo2.ReferenceUtils; import org.compiere.model.MColumn; import org.compiere.model.MRole; import org.compiere.model.MTable; @@ -54,56 +55,112 @@ import org.xml.sax.helpers.AttributesImpl; */ public class GenericPOElementHandler extends AbstractElementHandler { - public GenericPOElementHandler() { + private String tableName; + + public GenericPOElementHandler(String tableName) { + this.tableName = tableName; } - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { String tableName = element.getElementValue(); PO po = findPO(ctx, element); if (po == null) { - MTable table = MTable.get(ctx, tableName); - POInfo info = POInfo.getPOInfo(ctx, table.getAD_Table_ID()); - MColumn columns[] = table.getColumns(false); - StringBuffer whereClause = new StringBuffer(); - List parameters = new ArrayList(); - for(int i = 0; i < columns.length; i++) { - MColumn column = columns[i]; - if (column.isIdentifier()) { - if (whereClause.length() > 0) - whereClause.append(" AND "); - whereClause.append(column.getColumnName()).append(" = ? "); - parameters.add(getStringValue(element, column.getColumnName())); - } else if (column.isParent()) { - int parentId = 0; - String parentTableName = null; - if (column.getAD_Reference_ID() == DisplayType.TableDir) { - parentTableName = column.getColumnName().substring(0, column.getColumnName().length() - 3); - } else { - String searchColumn = info.getColumnLookup(i).getColumnName(); - parentTableName = searchColumn.substring(0, searchColumn.indexOf(".")); - } - - Element parent = element.parent; - while (parent != null) { - if (parent.getElementValue().equalsIgnoreCase(parentTableName)) { - parentId = parent.recordId; + String uuidColumn = PO.getUUIDColumnName(tableName); + String idColumn = tableName + "_ID"; + MTable table = MTable.get(ctx.ctx, tableName); + if ((!element.properties.containsKey(uuidColumn) || element.properties.get(uuidColumn).contents == null || element.properties.get(uuidColumn).contents.toString().trim().length() > 0) + && (!element.properties.containsKey(idColumn) || element.properties.get(idColumn).contents == null || element.properties.get(idColumn).contents.toString().trim().length() > 0)) { + POInfo info = POInfo.getPOInfo(ctx.ctx, table.getAD_Table_ID()); + MColumn columns[] = table.getColumns(false); + StringBuffer whereClause = new StringBuffer(); + List parameters = new ArrayList(); + boolean search = true; + for(int i = 0; i < columns.length; i++) { + MColumn column = columns[i]; + if (column.isParent()) { + int parentId = 0; + String parentTableName = null; + if (column.getAD_Reference_ID() == DisplayType.TableDir) { + parentTableName = column.getColumnName().substring(0, column.getColumnName().length() - 3); + } else { + String searchColumn = info.getColumnLookup(i).getColumnName(); + parentTableName = searchColumn.substring(0, searchColumn.indexOf(".")); + } + + Element parent = element.parent; + while (parent != null) { + if (parent.getElementValue().equalsIgnoreCase(parentTableName)) { + parentId = parent.recordId; + break; + } + parent = parent.parent; + } + + if (parentId == 0) { + Element parentElement = element.properties.get(column.getColumnName()); + if (parentElement != null) { + parentId = ReferenceUtils.resolveReference(ctx.ctx, parentElement, getTrxName(ctx)); + } + } + if (parentId > 0) { + if (whereClause.length() > 0) + whereClause.append(" AND "); + whereClause.append(column.getColumnName()).append(" = ?"); + parameters.add(parentId); + } else { + search = false; break; } - parent = parent.parent; - } - if (parentId > 0) { + } else if (column.isIdentifier()) { if (whereClause.length() > 0) whereClause.append(" AND "); - whereClause.append(column.getColumnName()).append(" = ?"); - parameters.add(parentId); + whereClause.append(column.getColumnName()).append(" = ? "); + + String refTableName = null; + if (column.getAD_Reference_ID() == DisplayType.TableDir) { + refTableName = column.getColumnName().substring(0, column.getColumnName().length() - 3); + } else if (column.getAD_Reference_ID() == DisplayType.Table || + column.getAD_Reference_ID() == DisplayType.Search) { + String searchColumn = info.getColumnLookup(i).getColumnName(); + refTableName = searchColumn.substring(0, searchColumn.indexOf(".")); + } + + if (refTableName == null) { + parameters.add(getStringValue(element, column.getColumnName())); + } else { + int refId = 0; + Element parent = element.parent; + while (parent != null) { + if (parent.getElementValue().equalsIgnoreCase(refTableName)) { + refId = parent.recordId; + break; + } + parent = parent.parent; + } + + if (refId == 0) { + Element refElement = element.properties.get(column.getColumnName()); + if (refElement != null) { + refId = ReferenceUtils.resolveReference(ctx.ctx, refElement, getTrxName(ctx)); + } + } + if (refId > 0) { + parameters.add(refId); + } else { + search = false; + break; + } + } } } - } - Query query = new Query(ctx, table, whereClause.toString(), getTrxName(ctx)); - po = query.setParameters(parameters).first(); + if (whereClause.length() > 0 && search) { + Query query = new Query(ctx.ctx, table, whereClause.toString(), getTrxName(ctx)); + po = query.setParameters(parameters).setApplyAccessFilter(true).first(); + } + } if (po == null) { - po = new GenericPO(tableName, ctx, 0); + po = table.getPO(0, getTrxName(ctx)); } } PoFiller filler = new PoFiller(ctx, po, element, this); @@ -115,27 +172,39 @@ public class GenericPOElementHandler extends AbstractElementHandler { try { id = Integer.parseInt(idElement.contents.toString()); if (id > 0 && id <= PackOut.MAX_OFFICIAL_ID) { - po.set_ValueOfColumn(tableName + "_ID", id); + po.set_ValueNoCheck(tableName + "_ID", id); } } catch (Exception e) {} } } List notfounds = filler.autoFill(excludes); + /* Verify if the table has entitytype and check dictionary maintenance */ + int idxet = po.get_ColumnIndex("EntityType"); + if (idxet >= 0) { + String entityType = (String) po.get_Value(idxet); + if (! isProcessElement(ctx.ctx, entityType)) { + log.info("Generic PO not processed as it's official " + po.toString()); + element.skip = true; + return; + } + } + if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } po.saveEx(); } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { AttributesImpl atts = new AttributesImpl(); - String sql = Env.getContext(ctx, DataElementParameters.SQL_STATEMENT); + String sql = Env.getContext(ctx.ctx, DataElementParameters.SQL_STATEMENT); String components[] = null; if (sql.indexOf(";") > 0) { components = sql.split("[;]"); @@ -143,8 +212,8 @@ public class GenericPOElementHandler extends AbstractElementHandler { } else { components = new String[]{sql}; } - int tableId = Env.getContextAsInt(ctx, DataElementParameters.AD_TABLE_ID); - String tableName = MTable.getTableName(ctx, tableId); + int tableId = Env.getContextAsInt(ctx.ctx, DataElementParameters.AD_TABLE_ID); + String tableName = MTable.getTableName(ctx.ctx, tableId); List excludes = defaultExcludeList(tableName); Statement stmt = null; ResultSet rs = null; @@ -153,20 +222,36 @@ public class GenericPOElementHandler extends AbstractElementHandler { stmt = DB.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { - GenericPO po = new GenericPO(tableName, ctx, rs); + GenericPO po = new GenericPO(tableName, ctx.ctx, rs, getTrxName(ctx)); int AD_Client_ID = po.getAD_Client_ID(); - if (AD_Client_ID != Env.getAD_Client_ID(ctx)) + if (AD_Client_ID != Env.getAD_Client_ID(ctx.ctx)) continue; - addTypeName(atts, "table"); - document.startElement("","", tableName, atts); - PoExporter filler = new PoExporter(ctx, document, po); - filler.export(excludes, true); + + boolean createElement = true; + if (ctx.packOut.getFromDate() != null) { + if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + + if (createElement) { + addTypeName(atts, "table"); + document.startElement("","", tableName, atts); + PoExporter filler = new PoExporter(ctx, document, po); + filler.export(excludes, true); + if (po.get_ID() > 0 && po.get_ID() < 1000000) { + filler.add(tableName+"_ID", new AttributesImpl()); + } + } for (int i = 1; i < components.length; i++) { String tables[] = components[i].split("[>]"); exportDetail(ctx, document, po, 0, tables); } - document.endElement("","",tableName); + + if (createElement) { + document.endElement("","",tableName); + } } } catch (Exception e) { throw new AdempiereException(e); @@ -175,7 +260,7 @@ public class GenericPOElementHandler extends AbstractElementHandler { } } - private void exportDetail(Properties ctx, TransformerHandler document, GenericPO parent, int index, String[] tables) { + private void exportDetail(PIPOContext ctx, TransformerHandler document, GenericPO parent, int index, String[] tables) { AttributesImpl atts = new AttributesImpl(); String sql = "SELECT * FROM " + tables[index] + " WHERE " + parent.get_TableName() + "_ID = ?"; PreparedStatement pstmt = null; @@ -186,18 +271,30 @@ public class GenericPOElementHandler extends AbstractElementHandler { pstmt.setInt(1, parent.get_ID()); rs = pstmt.executeQuery(); while (rs.next()) { - GenericPO po = new GenericPO(tables[index], ctx, rs); + GenericPO po = new GenericPO(tables[index], ctx.ctx, rs, getTrxName(ctx)); int AD_Client_ID = po.getAD_Client_ID(); - if (AD_Client_ID != Env.getAD_Client_ID(ctx)) + if (AD_Client_ID != Env.getAD_Client_ID(ctx.ctx)) continue; - List excludes = defaultExcludeList(tables[index]); - document.startElement("", "", tables[index], atts); - PoExporter filler = new PoExporter(ctx, document, po); - filler.export(excludes, true); + + boolean createElement = true; + if (ctx.packOut.getFromDate() != null) { + if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + if (createElement) { + List excludes = defaultExcludeList(tables[index]); + addTypeName(atts, "table"); + document.startElement("", "", tables[index], atts); + PoExporter filler = new PoExporter(ctx, document, po); + filler.export(excludes, true); + } if (index + 1 < tables.length) { exportDetail(ctx, document, po, index+1, tables); } - document.endElement("","",tables[index]); + if (createElement) { + document.endElement("","",tables[index]); + } } } catch (Exception e) { throw new AdempiereException(e); @@ -210,10 +307,22 @@ public class GenericPOElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { PackoutItem detail = packout.getCurrentPackoutItem(); - Env.setContext(packout.getCtx(), DataElementParameters.AD_TABLE_ID, (Integer)detail.getProperty(DataElementParameters.AD_TABLE_ID)); - Env.setContext(packout.getCtx(), DataElementParameters.SQL_STATEMENT, (String)detail.getProperty(DataElementParameters.SQL_STATEMENT)); + int tableId = 0; + String sql = null; + if (detail.getProperty(DataElementParameters.AD_TABLE_ID) != null) + { + tableId = (Integer)detail.getProperty(DataElementParameters.AD_TABLE_ID); + sql = (String)detail.getProperty(DataElementParameters.SQL_STATEMENT); + } + else + { + tableId = MTable.get(packout.getCtx().ctx, tableName).getAD_Table_ID(); + sql = "SELECT * FROM " + tableName + " WHERE " + tableName + "_ID=" + recordId; + } + packout.getCtx().ctx.put(DataElementParameters.AD_TABLE_ID, tableId); + packout.getCtx().ctx.put(DataElementParameters.SQL_STATEMENT, sql); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(DataElementParameters.AD_TABLE_ID); - packout.getCtx().remove(DataElementParameters.SQL_STATEMENT); + packout.getCtx().ctx.remove(DataElementParameters.AD_TABLE_ID); + packout.getCtx().ctx.remove(DataElementParameters.SQL_STATEMENT); } } \ No newline at end of file diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ImpFormatElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ImpFormatElementHandler.java index 50a5bd205f..dbc9538ea3 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ImpFormatElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ImpFormatElementHandler.java @@ -20,12 +20,12 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -48,7 +48,7 @@ public class ImpFormatElementHandler extends AbstractElementHandler { private List formats = new ArrayList(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_ImpFormat.Table_Name); @@ -57,7 +57,7 @@ public class ImpFormatElementHandler extends AbstractElementHandler { X_AD_ImpFormat mImpFormat = findPO(ctx, element); if (mImpFormat == null) { int id = findIdByName(ctx, "AD_ImpFormat", name); - mImpFormat = new X_AD_ImpFormat(ctx, id > 0 ? id : 0, + mImpFormat = new X_AD_ImpFormat(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } PoFiller filler = new PoFiller(ctx, mImpFormat, element, this); @@ -70,6 +70,7 @@ public class ImpFormatElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -89,27 +90,37 @@ public class ImpFormatElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mImpFormat.getName(), mImpFormat .get_ID(), action); - throw new POSaveFailedException("Failed to save Import Format."); + throw new POSaveFailedException("Failed to save Import Format " + mImpFormat.getName()); } } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - protected void create(Properties ctx, TransformerHandler document) + protected void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int import_id = Env.getContextAsInt(ctx, + int import_id = Env.getContextAsInt(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_ImpFormat_ID); if (formats.contains(import_id)) return; formats.add(import_id); AttributesImpl atts = new AttributesImpl(); - X_AD_ImpFormat m_ImpFormat = new X_AD_ImpFormat(ctx, import_id, null); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_ImpFormat.Table_Name, atts); - createImpFormatBinding(ctx, document, m_ImpFormat); + X_AD_ImpFormat m_ImpFormat = new X_AD_ImpFormat(ctx.ctx, import_id, null); + + boolean createElement = true; + if (ctx.packOut.getFromDate() != null) { + if (m_ImpFormat.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + + if (createElement) { + addTypeName(atts, "table"); + document.startElement("", "", I_AD_ImpFormat.Table_Name, atts); + createImpFormatBinding(ctx, document, m_ImpFormat); + } String sql = "SELECT * FROM AD_ImpFormat_Row WHERE AD_ImpFormat_ID= " + import_id; @@ -130,20 +141,23 @@ public class ImpFormatElementHandler extends AbstractElementHandler { } finally { DB.close(rs, pstmt); } - document.endElement("", "", I_AD_ImpFormat.Table_Name); + + if (createElement) { + document.endElement("", "", I_AD_ImpFormat.Table_Name); + } } - private void createImpFormatRow(Properties ctx, + private void createImpFormatRow(PIPOContext ctx, TransformerHandler document, int AD_ImpFormat_Row_ID) throws SAXException { - Env.setContext(ctx, X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID, + Env.setContext(ctx.ctx, X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID, AD_ImpFormat_Row_ID); rowHandler.create(ctx, document); - ctx.remove(X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID); + ctx.ctx.remove(X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID); } - private void createImpFormatBinding(Properties ctx, TransformerHandler document, + private void createImpFormatBinding(PIPOContext ctx, TransformerHandler document, X_AD_ImpFormat m_ImpFormat) { PoExporter filler = new PoExporter(ctx, document, m_ImpFormat); List excludes = defaultExcludeList(X_AD_ImpFormat.Table_Name); @@ -156,8 +170,8 @@ public class ImpFormatElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_ImpFormat_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_ImpFormat_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ImpFormat_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ImpFormat_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ImpFormatRowElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ImpFormatRowElementHandler.java index 7538aa4932..7f57b62980 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ImpFormatRowElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ImpFormatRowElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -39,7 +39,7 @@ import org.xml.sax.helpers.AttributesImpl; public class ImpFormatRowElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { String action = null; List excludes = defaultExcludeList(X_AD_ImpFormat_Row.Table_Name); @@ -57,20 +57,21 @@ public class ImpFormatRowElementHandler extends AbstractElementHandler { } else { Element e = element.properties.get(I_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_ID); if (ReferenceUtils.isIDLookup(e) || ReferenceUtils.isUUIDLookup(e)) - impFormatId = ReferenceUtils.resolveReference(ctx, e, getTrxName(ctx)); + impFormatId = ReferenceUtils.resolveReference(ctx.ctx, e, getTrxName(ctx)); else impFormatId = findIdByName(ctx, "AD_ImpFormat", e.contents.toString()); } if (impFormatId <= 0) { element.defer = true; + element.unresolved = "AD_ImpFormat_ID"; return; } Element tableElement = element.properties.get(I_AD_ImpFormat.COLUMNNAME_AD_Table_ID); int tableId = 0; if (ReferenceUtils.isIDLookup(tableElement) || ReferenceUtils.isUUIDLookup(tableElement)) { - tableId = ReferenceUtils.resolveReference(ctx, tableElement, getTrxName(ctx)); + tableId = ReferenceUtils.resolveReference(ctx.ctx, tableElement, getTrxName(ctx)); } else { String tableName = getStringValue(element, I_AD_ImpFormat.COLUMNNAME_AD_Table_ID, excludes); @@ -79,6 +80,7 @@ public class ImpFormatRowElementHandler extends AbstractElementHandler { } if (tableId <= 0) { element.defer = true; + element.unresolved = "AD_Table_ID"; return; } } @@ -86,7 +88,7 @@ public class ImpFormatRowElementHandler extends AbstractElementHandler { Element columnElement = element.properties.get(I_AD_ImpFormat_Row.COLUMNNAME_AD_Column_ID); int columnId = 0; if (ReferenceUtils.isIDLookup(columnElement) || ReferenceUtils.isUUIDLookup(columnElement)) { - columnId = ReferenceUtils.resolveReference(ctx, columnElement, getTrxName(ctx)); + columnId = ReferenceUtils.resolveReference(ctx.ctx, columnElement, getTrxName(ctx)); } else { String columnName = getStringValue(element, I_AD_ImpFormat_Row.COLUMNNAME_AD_Column_ID, excludes); @@ -95,13 +97,14 @@ public class ImpFormatRowElementHandler extends AbstractElementHandler { } if (columnId <= 0) { element.defer = true; + element.unresolved = "AD_Column_ID"; return; } } StringBuffer sqlB = new StringBuffer ("SELECT AD_ImpFormat_Row_ID FROM AD_ImpFormat_Row WHERE AD_Column_ID=? AND AD_ImpFormat_ID=?"); int id = DB.getSQLValue(getTrxName(ctx),sqlB.toString(),columnId,impFormatId); - mImpFormatRow = new X_AD_ImpFormat_Row(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mImpFormatRow = new X_AD_ImpFormat_Row(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mImpFormatRow.setAD_Column_ID(columnId); mImpFormatRow.setAD_ImpFormat_ID(impFormatId); @@ -115,6 +118,7 @@ public class ImpFormatRowElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -133,18 +137,25 @@ public class ImpFormatRowElementHandler extends AbstractElementHandler { } else{ logImportDetail (ctx, impDetail, 0, mImpFormatRow.getName(), mImpFormatRow.get_ID(),action); - throw new POSaveFailedException("Failed to import Import Format Row."); + throw new POSaveFailedException("Failed to save Import Format Row " + mImpFormatRow.getName()); } } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_ImpFormat_Row_ID = Env.getContextAsInt(ctx, X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID); - X_AD_ImpFormat_Row m_ImpFormat_Row = new X_AD_ImpFormat_Row (ctx, AD_ImpFormat_Row_ID, getTrxName(ctx)); + int AD_ImpFormat_Row_ID = Env.getContextAsInt(ctx.ctx, X_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID); + X_AD_ImpFormat_Row m_ImpFormat_Row = new X_AD_ImpFormat_Row (ctx.ctx, AD_ImpFormat_Row_ID, getTrxName(ctx)); + + if (ctx.packOut.getFromDate() != null) { + if (m_ImpFormat_Row.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("","",I_AD_ImpFormat_Row.Table_Name,atts); @@ -152,12 +163,12 @@ public class ImpFormatRowElementHandler extends AbstractElementHandler { document.endElement("","",I_AD_ImpFormat_Row.Table_Name); } - private void createImpFormatRowBinding(Properties ctx, TransformerHandler document, X_AD_ImpFormat_Row m_ImpFormat_Row) + private void createImpFormatRowBinding(PIPOContext ctx, TransformerHandler document, X_AD_ImpFormat_Row m_ImpFormat_Row) { PoExporter filler = new PoExporter(ctx, document, m_ImpFormat_Row); List excludes = defaultExcludeList(X_AD_ImpFormat_Row.Table_Name); - String sql = null; + String sql = "SELECT AD_Table_ID FROM AD_Column WHERE AD_Column_ID=?"; int tableId = DB.getSQLValue(null, sql,m_ImpFormat_Row.getAD_Column_ID()); filler.addTableReference("AD_Table_ID", "AD_Table", "TableName", tableId, new AttributesImpl()); @@ -174,8 +185,8 @@ public class ImpFormatRowElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID); + packout.getCtx().ctx.remove(I_AD_ImpFormat_Row.COLUMNNAME_AD_ImpFormat_Row_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/MenuElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/MenuElementHandler.java index 1d9dd54337..25a64d74ad 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/MenuElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/MenuElementHandler.java @@ -20,7 +20,6 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.util.List; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; @@ -28,6 +27,7 @@ import javax.xml.transform.sax.TransformerHandler; import org.adempiere.exceptions.DBException; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.ElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -52,7 +52,7 @@ import org.xml.sax.helpers.AttributesImpl; public class MenuElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Menu.Table_Name); @@ -61,7 +61,7 @@ public class MenuElementHandler extends AbstractElementHandler { if (mMenu == null) { String menuName = getStringValue(element, "Name"); int menuId = findIdByColumn(ctx, "AD_Menu", "Name", menuName); - mMenu = new X_AD_Menu(ctx, menuId > 0 ? menuId : 0, getTrxName(ctx)); + mMenu = new X_AD_Menu(ctx.ctx, menuId > 0 ? menuId : 0, getTrxName(ctx)); } PoFiller filler = new PoFiller(ctx, mMenu, element, this); @@ -73,6 +73,7 @@ public class MenuElementHandler extends AbstractElementHandler { List notFounds = filler.autoFill(excludes); if (notFounds.size() > 0) { element.defer = true; + element.unresolved = notFounds.toString(); return; } @@ -108,7 +109,7 @@ public class MenuElementHandler extends AbstractElementHandler { int parentId = 0; if (parentElement != null) { if (ReferenceUtils.isIDLookup(parentElement) || ReferenceUtils.isUUIDLookup(parentElement)) { - parentId = ReferenceUtils.resolveReference(ctx, parentElement, getTrxName(ctx)); + parentId = ReferenceUtils.resolveReference(ctx.ctx, parentElement, getTrxName(ctx)); } else { String parent = getStringValue(element, "Parent_ID"); parentId = findIdByName(ctx, "AD_Menu", parent); @@ -116,11 +117,12 @@ public class MenuElementHandler extends AbstractElementHandler { } StringBuffer updateSQL = null; - String sql = "SELECT count(Parent_ID) FROM AD_TREENODEMM WHERE AD_Tree_ID = 10" + int AD_Tree_ID = getDefaultMenuTreeId(); + String sql = "SELECT count(Parent_ID) FROM AD_TREENODEMM WHERE AD_Tree_ID = "+AD_Tree_ID + " AND Node_ID = " + mMenu.getAD_Menu_ID(); int countRecords = DB.getSQLValue(getTrxName(ctx), sql); if (countRecords > 0) { - sql = "select * from AD_TREENODEMM where AD_Tree_ID = 10 and " + sql = "select * from AD_TREENODEMM where AD_Tree_ID = "+AD_Tree_ID+" and " + " Node_ID =?"; PreparedStatement pstmt = null; ResultSet rs = null; @@ -154,9 +156,9 @@ public class MenuElementHandler extends AbstractElementHandler { colValue = obj == null ? "" : obj.toString(); } - X_AD_Package_Imp_Backup backup = new X_AD_Package_Imp_Backup(ctx, 0, getTrxName(ctx)); + X_AD_Package_Imp_Backup backup = new X_AD_Package_Imp_Backup(ctx.ctx, 0, getTrxName(ctx)); backup.setAD_Package_Imp_Detail_ID(impDetail.getAD_Package_Imp_Detail_ID()); - backup.setAD_Package_Imp_ID(getPackageImpId(ctx)); + backup.setAD_Package_Imp_ID(getPackageImpId(ctx.ctx)); backup.setAD_Table_ID(tableID); backup.setAD_Column_ID(columnID); backup.setAD_Reference_ID(referenceID); @@ -175,26 +177,30 @@ public class MenuElementHandler extends AbstractElementHandler { updateSQL = new StringBuffer("UPDATE AD_TREENODEMM ").append( "SET Parent_ID = " + parentId).append( " , SeqNo = " + getStringValue(element, "SeqNo")).append( - " WHERE AD_Tree_ID = 10").append( + " WHERE AD_Tree_ID = "+AD_Tree_ID).append( " AND Node_ID = " + mMenu.getAD_Menu_ID()); } else { updateSQL = new StringBuffer("Insert INTO AD_TREENODEMM").append( "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, ").append( "Parent_ID, SeqNo, AD_Tree_ID, Node_ID)").append( "VALUES(0, 0, 0, 0, ").append( - parentId + "," + getStringValue(element, "SeqNo") + ", 10, " + parentId + "," + getStringValue(element, "SeqNo") + ", "+AD_Tree_ID+", " + mMenu.getAD_Menu_ID() + ")"); } - DB.executeUpdateEx(updateSQL.toString(), getTrxName(ctx)); + DB.executeUpdate(updateSQL.toString(), getTrxName(ctx)); } - public void endElement(Properties ctx, Element element) throws SAXException { + private int getDefaultMenuTreeId() { + return DB.getSQLValue(null, "SELECT MIN(AD_Tree_ID) FROM AD_Tree WHERE IsDefault='Y' AND TreeType='MM' AND AD_Client_ID=0"); } - public void create(Properties ctx, TransformerHandler document) + public void endElement(PIPOContext ctx, Element element) throws SAXException { + } + + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Menu_ID = Env.getContextAsInt(ctx, "AD_Menu_ID"); - X_AD_Menu m_Menu = new X_AD_Menu(ctx, AD_Menu_ID, null); + int AD_Menu_ID = Env.getContextAsInt(ctx.ctx, "AD_Menu_ID"); + X_AD_Menu m_Menu = new X_AD_Menu(ctx.ctx, AD_Menu_ID, null); if (m_Menu.isSummary() == false) { createApplication(ctx, document, AD_Menu_ID); } else { @@ -207,17 +213,18 @@ public class MenuElementHandler extends AbstractElementHandler { } } - private void createMenuBinding(Properties ctx, TransformerHandler document, + private void createMenuBinding(PIPOContext ctx, TransformerHandler document, X_AD_Menu m_Menu) { PoExporter filler = new PoExporter(ctx, document, m_Menu); List excludes = defaultExcludeList(X_AD_Menu.Table_Name); - String sql = "SELECT Parent_ID FROM AD_TreeNoDemm WHERE AD_Tree_ID = 10 and Node_ID=?"; + int AD_Tree_ID = getDefaultMenuTreeId(); + String sql = "SELECT Parent_ID FROM AD_TreeNoDemm WHERE AD_Tree_ID = "+AD_Tree_ID+" and Node_ID=?"; int id = DB.getSQLValue(null, sql, m_Menu.getAD_Menu_ID()); if (id > 0) { filler.addTableReference("Parent_ID", "AD_Menu", "Name", id, new AttributesImpl()); } - sql = "SELECT SeqNo FROM AD_TreeNoDemm WHERE AD_Tree_ID = 10 and Node_ID=?"; + sql = "SELECT SeqNo FROM AD_TreeNoDemm WHERE AD_Tree_ID = "+AD_Tree_ID+" and Node_ID=?"; int seqNo = DB.getSQLValue(null, sql, m_Menu.getAD_Menu_ID()); filler.addString("SeqNo", Integer.toString(seqNo), new AttributesImpl()); if (m_Menu.getAD_Menu_ID() <= PackOut.MAX_OFFICIAL_ID) @@ -226,16 +233,16 @@ public class MenuElementHandler extends AbstractElementHandler { filler.export(excludes); } - private void createApplication(Properties ctx, TransformerHandler document, + private void createApplication(PIPOContext ctx, TransformerHandler document, int AD_Menu_ID) throws SAXException { - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); + PackOut packOut = ctx.packOut; String sql = null; - // int x = 0; + int AD_Tree_ID = getDefaultMenuTreeId(); sql = "SELECT A.Node_ID, B.AD_Menu_ID, B.Name, B.AD_WINDOW_ID, B.AD_WORKFLOW_ID, B.AD_TASK_ID, " + "B.AD_PROCESS_ID, B.AD_FORM_ID, B.AD_WORKBENCH_ID " - + "FROM AD_TreeNoDemm A, AD_Menu B " + + "FROM AD_TreeNodeMM A, AD_Menu B " + "WHERE A.Node_ID = " - + AD_Menu_ID + " AND A.Node_ID = B.AD_Menu_ID"; + + AD_Menu_ID + " AND A.Node_ID = B.AD_Menu_ID" + " AND A.AD_Tree_ID="+AD_Tree_ID; PreparedStatement pstmt = null; ResultSet rs = null; @@ -244,7 +251,7 @@ public class MenuElementHandler extends AbstractElementHandler { rs = pstmt.executeQuery(); while (rs.next()) { - X_AD_Menu m_Menu = new X_AD_Menu(ctx, rs.getInt("AD_Menu_ID"), + X_AD_Menu m_Menu = new X_AD_Menu(ctx.ctx, rs.getInt("AD_Menu_ID"), null); AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); @@ -294,15 +301,16 @@ public class MenuElementHandler extends AbstractElementHandler { } } - public void createModule(Properties ctx, TransformerHandler document, + public void createModule(PIPOContext ctx, TransformerHandler document, int menu_id) throws SAXException { - PackOut packOut = (PackOut)ctx.get("PackOutProcess"); + PackOut packOut = ctx.packOut; String sql = null; + int AD_Tree_ID = getDefaultMenuTreeId(); sql = "SELECT A.Node_ID, B.AD_Menu_ID, B.Name, B.AD_WINDOW_ID, B.AD_WORKFLOW_ID, B.AD_TASK_ID, " + "B.AD_PROCESS_ID, B.AD_FORM_ID, B.AD_WORKBENCH_ID " - + "FROM AD_TreeNoDemm A, AD_Menu B " + + "FROM AD_TreeNodeMM A, AD_Menu B " + "WHERE A.Parent_ID = " - + menu_id + " AND A.Node_ID = B.AD_Menu_ID"; + + menu_id + " AND A.Node_ID = B.AD_Menu_ID" + " AND A.AD_Tree_ID="+AD_Tree_ID; PreparedStatement pstmt = null; ResultSet rs = null; @@ -311,7 +319,7 @@ public class MenuElementHandler extends AbstractElementHandler { rs = pstmt.executeQuery(); while (rs.next()) { // Menu tag Start. - X_AD_Menu m_Menu = new X_AD_Menu(ctx, rs.getInt("AD_Menu_ID"), + X_AD_Menu m_Menu = new X_AD_Menu(ctx.ctx, rs.getInt("AD_Menu_ID"), null); AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); @@ -364,9 +372,9 @@ public class MenuElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Menu_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Menu_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Menu_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Menu_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/MessageElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/MessageElementHandler.java index d59fa87a7e..ffdf1b8c07 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/MessageElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/MessageElementHandler.java @@ -18,11 +18,11 @@ package org.adempiere.pipo2.handler; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -41,15 +41,15 @@ public class MessageElementHandler extends AbstractElementHandler { private List messages = new ArrayList(); - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { MMessage mMessage = findPO(ctx, element); if (mMessage == null) { String value = getStringValue(element, "Value"); int id = findIdByColumn(ctx, "AD_Message", "value", value); - mMessage = new MMessage(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mMessage = new MMessage(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } PoFiller filler = new PoFiller(ctx, mMessage, element, this); List excludes = defaultExcludeList(X_AD_Message.Table_Name); @@ -57,6 +57,7 @@ public class MessageElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -79,7 +80,7 @@ public class MessageElementHandler extends AbstractElementHandler { } else{ logImportDetail (ctx, impDetail, 0, mMessage.getValue(), mMessage.get_ID(),action); - throw new POSaveFailedException("Failed to save message."); + throw new POSaveFailedException("Failed to save message " + mMessage.getValue()); } } } else { @@ -88,24 +89,31 @@ public class MessageElementHandler extends AbstractElementHandler { } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Message_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID); + int AD_Message_ID = Env.getContextAsInt(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID); if (messages.contains(AD_Message_ID)) return; messages.add(AD_Message_ID); AttributesImpl atts = new AttributesImpl(); - X_AD_Message m_Message = new X_AD_Message (ctx, AD_Message_ID, null); + X_AD_Message m_Message = new X_AD_Message (ctx.ctx, AD_Message_ID, null); + + if (ctx.packOut.getFromDate() != null) { + if (m_Message.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + addTypeName(atts, "table"); document.startElement("","",I_AD_Message.Table_Name,atts); createMessageBinding(ctx,document,m_Message); document.endElement("","",I_AD_Message.Table_Name); } - private void createMessageBinding(Properties ctx, TransformerHandler document, X_AD_Message m_Message) + private void createMessageBinding(PIPOContext ctx, TransformerHandler document, X_AD_Message m_Message) { PoExporter filler = new PoExporter(ctx, document, m_Message); if (m_Message.getAD_Message_ID() <= PackOut.MAX_OFFICIAL_ID) @@ -117,8 +125,8 @@ public class MessageElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Message_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/OrgRoleElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/OrgRoleElementHandler.java index b947375dd7..bd60879237 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/OrgRoleElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/OrgRoleElementHandler.java @@ -17,12 +17,12 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.Element; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.PoFiller; @@ -38,7 +38,7 @@ import org.xml.sax.helpers.AttributesImpl; public class OrgRoleElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Role_OrgAccess.Table_Name); X_AD_Role_OrgAccess po = findPO(ctx, element); @@ -48,19 +48,25 @@ public class OrgRoleElementHandler extends AbstractElementHandler { roleId = getParentId(element, I_AD_Role.Table_Name); } else { Element roleElement = element.properties.get("AD_Role_ID"); - roleId = ReferenceUtils.resolveReference(ctx, roleElement, getTrxName(ctx)); + roleId = ReferenceUtils.resolveReference(ctx.ctx, roleElement, getTrxName(ctx)); + } + + if (roleId <= 0) { + element.defer = true; + element.unresolved = "AD_Role_ID"; + return; } Element orgElement = element.properties.get("AD_Org_ID"); - int orgId = ReferenceUtils.resolveReference(ctx, orgElement, getTrxName(ctx)); + int orgId = ReferenceUtils.resolveReference(ctx.ctx, orgElement, getTrxName(ctx)); - Query query = new Query(ctx, "AD_Role_OrgAccess", "AD_Role_ID=? and AD_Org_ID=?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, "AD_Role_OrgAccess", "AD_Role_ID=? and AD_Org_ID=?", getTrxName(ctx)); po = query.setParameters(new Object[]{roleId, orgId}) .setClient_ID() .first(); if (po == null) { - po = new X_AD_Role_OrgAccess(ctx, 0, getTrxName(ctx)); + po = new X_AD_Role_OrgAccess(ctx.ctx, 0, getTrxName(ctx)); po.setAD_Org_ID(orgId); po.setAD_Role_ID(roleId); } @@ -72,37 +78,46 @@ public class OrgRoleElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } po.saveEx(); } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Org_ID = Env.getContextAsInt(ctx, "AD_Org_ID"); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Role_OrgAccess.Table_Name, atts); - createOrgAccessBinding(ctx, document, AD_Org_ID, AD_Role_ID); - document.endElement("", "", I_AD_Role_OrgAccess.Table_Name); - + int AD_Org_ID = Env.getContextAsInt(ctx.ctx, "AD_Org_ID"); + int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); + + Query query = new Query(ctx.ctx, "AD_Role_OrgAccess", "AD_Role_ID=? and AD_Org_ID=?", getTrxName(ctx)); + X_AD_Role_OrgAccess po = query.setParameters(new Object[]{AD_Role_ID, AD_Org_ID}).first(); + if (po != null) { + if (ctx.packOut.getFromDate() != null) { + if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", I_AD_Role_OrgAccess.Table_Name, atts); + createOrgAccessBinding(ctx, document, po); + document.endElement("", "", I_AD_Role_OrgAccess.Table_Name); + } } - private void createOrgAccessBinding(Properties ctx, TransformerHandler document, - int orgId, int roleId) { - Query query = new Query(ctx, "AD_Role_OrgAccess", "AD_Role_ID=? and AD_Org_ID=?", getTrxName(ctx)); - X_AD_Role_OrgAccess po = query.setParameters(new Object[]{roleId, orgId}).first(); + private void createOrgAccessBinding(PIPOContext ctx, TransformerHandler document, + X_AD_Role_OrgAccess po) { PoExporter filler = new PoExporter(ctx, document, po); AttributesImpl orgRefAtts = new AttributesImpl(); - String orgReference = ReferenceUtils.getTableReference("AD_Org", "Name", orgId, orgRefAtts); + String orgReference = ReferenceUtils.getTableReference("AD_Org", "Name", po.getAD_Org_ID(), orgRefAtts); filler.addString("AD_Org_ID", orgReference, orgRefAtts); AttributesImpl roleRefAtts = new AttributesImpl(); - String roleReference = ReferenceUtils.getTableReference("AD_Role", "Name", roleId, roleRefAtts); + String roleReference = ReferenceUtils.getTableReference("AD_Role", "Name", po.getAD_Role_ID(), roleRefAtts); filler.addString("AD_Role_ID", roleReference, roleRefAtts); List excludes = defaultExcludeList(X_AD_Role_OrgAccess.Table_Name); diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PreferenceElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PreferenceElementHandler.java index 341156315d..296935d75f 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PreferenceElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PreferenceElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -38,21 +38,22 @@ import org.xml.sax.helpers.AttributesImpl; public class PreferenceElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Preference.Table_Name); MPreference mPreference = findPO(ctx, element); if (mPreference == null) { - mPreference = new MPreference(ctx, 0, getTrxName(ctx)); + mPreference = new MPreference(ctx.ctx, 0, getTrxName(ctx)); PoFiller filler = new PoFiller(ctx, mPreference, element, this); List notFounds = filler.autoFill(excludes); if (notFounds.size() > 0) { element.defer = true; + element.unresolved = notFounds.toString(); return; } - Query query = new Query(ctx, "AD_Preference", "Attribute = ? AND coalesce(AD_User_ID,0) = ? AND coalesce(AD_Window_ID,0) = ?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, "AD_Preference", "Attribute = ? AND coalesce(AD_User_ID,0) = ? AND coalesce(AD_Window_ID,0) = ?", getTrxName(ctx)); MPreference tmp = query .setParameters(new Object[]{mPreference.getAttribute(), mPreference.getAD_User_ID(), mPreference.getAD_Window_ID()}) .first(); @@ -61,6 +62,7 @@ public class PreferenceElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } mPreference = tmp; @@ -70,6 +72,7 @@ public class PreferenceElementHandler extends AbstractElementHandler { List notFounds = filler.autoFill(excludes); if (notFounds.size() > 0) { element.defer = true; + element.unresolved = notFounds.toString(); return; } } @@ -94,28 +97,35 @@ public class PreferenceElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mPreference.getAttribute(), mPreference.get_ID(), action); - throw new POSaveFailedException("Failed to save Preference"); + throw new POSaveFailedException("Failed to save Preference " + mPreference.getAttribute()); } } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Preference_ID = Env.getContextAsInt(ctx, + int AD_Preference_ID = Env.getContextAsInt(ctx.ctx, X_AD_Preference.COLUMNNAME_AD_Preference_ID); - X_AD_Preference m_Preference = new X_AD_Preference(ctx, + X_AD_Preference m_Preference = new X_AD_Preference(ctx.ctx, AD_Preference_ID, getTrxName(ctx)); + + if (ctx.packOut.getFromDate() != null) { + if (m_Preference.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); - document.startElement("", "", I_AD_Preference.Table_Name, atts); + document.startElement("", "", X_AD_Preference.Table_Name, atts); createPreferenceBinding(ctx, document, m_Preference); document.endElement("", "", I_AD_Preference.Table_Name); } - private void createPreferenceBinding(Properties ctx, TransformerHandler document, + private void createPreferenceBinding(PIPOContext ctx, TransformerHandler document, X_AD_Preference m_Preference) { PoExporter filler = new PoExporter(ctx, document, m_Preference); List excludes = defaultExcludeList(X_AD_Preference.Table_Name); @@ -130,9 +140,9 @@ public class PreferenceElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_Preference.COLUMNNAME_AD_Preference_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_Preference.COLUMNNAME_AD_Preference_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_Preference.COLUMNNAME_AD_Preference_ID); + packout.getCtx().ctx.remove(I_AD_Preference.COLUMNNAME_AD_Preference_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintFormatElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintFormatElementHandler.java index be5134684c..d7c6ced3bc 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintFormatElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintFormatElementHandler.java @@ -21,24 +21,26 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.exceptions.DBException; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoFiller; import org.adempiere.pipo2.exception.POSaveFailedException; import org.compiere.model.I_AD_PrintFormat; -import org.compiere.model.I_AD_PrintFormatItem; import org.compiere.model.I_AD_PrintPaper; +import org.compiere.model.I_AD_Table; import org.compiere.model.X_AD_Package_Exp_Detail; import org.compiere.model.X_AD_Package_Imp_Detail; import org.compiere.model.X_AD_PrintFormat; import org.compiere.model.X_AD_PrintFormatItem; +import org.compiere.print.MPrintFormat; +import org.compiere.print.MPrintFormatItem; import org.compiere.util.DB; import org.compiere.util.Env; import org.xml.sax.SAXException; @@ -48,14 +50,14 @@ public class PrintFormatElementHandler extends AbstractElementHandler { private List formats = new ArrayList(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { X_AD_PrintFormat mPrintFormat = findPO(ctx, element); if (mPrintFormat == null) { String name = getStringValue(element, "Name"); int id = findIdByColumn(ctx, "AD_PrintFormat", "Name", name); - mPrintFormat = new X_AD_PrintFormat(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mPrintFormat = new X_AD_PrintFormat(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } PoFiller filler = new PoFiller(ctx, mPrintFormat, element, this); List excludes = defaultExcludeList(X_AD_PrintFormat.Table_Name); @@ -65,6 +67,7 @@ public class PrintFormatElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -85,17 +88,17 @@ public class PrintFormatElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mPrintFormat.getName(), mPrintFormat.get_ID(), action); - throw new POSaveFailedException("Failed to save Print Format"); + throw new POSaveFailedException("Failed to save Print Format " + mPrintFormat.getName()); } } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_PrintFormat_ID = Env.getContextAsInt(ctx, + int AD_PrintFormat_ID = Env.getContextAsInt(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_PrintFormat_ID); if (formats.contains(AD_PrintFormat_ID)) @@ -103,17 +106,48 @@ public class PrintFormatElementHandler extends AbstractElementHandler { formats.add(AD_PrintFormat_ID); AttributesImpl atts = new AttributesImpl(); - X_AD_PrintFormat m_Printformat = new X_AD_PrintFormat(ctx, AD_PrintFormat_ID, null); + MPrintFormat m_Printformat = new MPrintFormat(ctx.ctx, AD_PrintFormat_ID, null); if (m_Printformat.getAD_PrintPaper_ID() > 0) { try { - getPackOut(ctx).getHandler(I_AD_PrintPaper.Table_Name).packOut(getPackOut(ctx), document, getLogDocument(ctx), m_Printformat.getAD_PrintPaper_ID()); + ctx.packOut.getHandler(I_AD_PrintPaper.Table_Name).packOut(ctx.packOut, document, ctx.logDocument, m_Printformat.getAD_PrintPaper_ID()); } catch (Exception e) { throw new SAXException(e); } } - addTypeName(atts, "table"); - document.startElement("", "", I_AD_PrintFormat.Table_Name, atts); - createPrintFormatBinding(ctx, document, m_Printformat); + + if (m_Printformat.getAD_Client_ID() == 0 && m_Printformat.getAD_Table_ID() > 0) { + try { + ctx.packOut.getHandler(I_AD_Table.Table_Name).packOut(ctx.packOut, document, ctx.logDocument, m_Printformat.getAD_Table_ID()); + } catch (Exception e) { + throw new SAXException(e); + } + } + + boolean createElement = true; + if (ctx.packOut.getFromDate() != null) { + if (m_Printformat.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + + int size = m_Printformat.getItemCount(); + for(int i = 0; i < size; i++) { + MPrintFormatItem item = m_Printformat.getItem(i); + if (item.getAD_PrintFormatChild_ID() > 0) + { + try { + this.packOut(ctx.packOut, document, null, item.getAD_PrintFormatChild_ID()); + } catch (Exception e) { + throw new SAXException(e); + } + } + } + + if (createElement) { + addTypeName(atts, "table"); + document.startElement("", "", I_AD_PrintFormat.Table_Name, atts); + createPrintFormatBinding(ctx, document, m_Printformat); + } String sql = "SELECT AD_PrintFormatItem_ID FROM AD_PrintFormatItem WHERE AD_PrintFormat_ID= " + m_Printformat.getAD_PrintFormat_ID() @@ -131,21 +165,23 @@ public class PrintFormatElementHandler extends AbstractElementHandler { } finally { DB.close(rs, pstmt); } - document.endElement("", "", I_AD_PrintFormat.Table_Name); + if (createElement) { + document.endElement("", "", X_AD_PrintFormat.Table_Name); + } } - private void createItem(Properties ctx, TransformerHandler document, + private void createItem(PIPOContext ctx, TransformerHandler document, int AD_PrintFormatItem_ID) throws SAXException { try { - getPackOut(ctx).getHandler(I_AD_PrintFormatItem.Table_Name).packOut(getPackOut(ctx), document, getLogDocument(ctx), AD_PrintFormatItem_ID); + ctx.packOut.getHandler(X_AD_PrintFormatItem.Table_Name).packOut(ctx.packOut, document, ctx.logDocument, AD_PrintFormatItem_ID); } catch (Exception e) { throw new SAXException(e); } } - private void createPrintFormatBinding(Properties ctx, TransformerHandler document, - X_AD_PrintFormat m_Printformat) { + private void createPrintFormatBinding(PIPOContext ctx, TransformerHandler document, + MPrintFormat m_Printformat) { PoExporter filler = new PoExporter(ctx, document, m_Printformat); List excludes = defaultExcludeList(X_AD_PrintFormat.Table_Name); @@ -158,9 +194,9 @@ public class PrintFormatElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_PrintFormat_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_PrintFormat_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_PrintFormat_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_PrintFormat_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintFormatItemElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintFormatItemElementHandler.java index 3b317d9218..8ab6dd648f 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintFormatItemElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintFormatItemElementHandler.java @@ -18,11 +18,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -39,7 +39,7 @@ import org.xml.sax.helpers.AttributesImpl; public class PrintFormatItemElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_PrintFormatItem.Table_Name); @@ -56,16 +56,17 @@ public class PrintFormatItemElementHandler extends AbstractElementHandler { parentId = getParentId(element, I_AD_PrintFormatItem.Table_Name); } else { Element pfElement = element.properties.get(I_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormat_ID); - parentId = ReferenceUtils.resolveReference(ctx, pfElement, getTrxName(ctx)); + parentId = ReferenceUtils.resolveReference(ctx.ctx, pfElement, getTrxName(ctx)); } if (parentId <= 0) { element.defer = true; + element.unresolved = "AD_PrintFormat_ID"; return; } String name = getStringValue(element, "Name"); int id = findIdByNameAndParentId(ctx, "AD_PrintFormatItem", name, "AD_PrintFormat", parentId); - mPrintFormatItem = new X_AD_PrintFormatItem(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mPrintFormatItem = new X_AD_PrintFormatItem(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mPrintFormatItem.setAD_PrintFormat_ID(parentId); excludes.add(I_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormat_ID); } @@ -79,10 +80,10 @@ public class PrintFormatItemElementHandler extends AbstractElementHandler { int columnId = 0; Element columnElement = element.properties.get("AD_Column_ID"); if (ReferenceUtils.isIDLookup(columnElement) || ReferenceUtils.isUUIDLookup(columnElement)) { - columnId = ReferenceUtils.resolveReference(ctx, columnElement, getTrxName(ctx)); + columnId = ReferenceUtils.resolveReference(ctx.ctx, columnElement, getTrxName(ctx)); } else { Element tableElement = element.properties.get("AD_Table_ID"); - int tableId = ReferenceUtils.resolveReference(ctx, tableElement, getTrxName(ctx)); + int tableId = ReferenceUtils.resolveReference(ctx.ctx, tableElement, getTrxName(ctx)); String columnName = getStringValue(element, "AD_Column_ID"); columnId = findIdByColumnAndParentId(ctx, "AD_Column", "ColumnName", columnName, "AD_Table", tableId); @@ -92,7 +93,7 @@ public class PrintFormatItemElementHandler extends AbstractElementHandler { excludes.add("AD_PrintFormatChild_ID"); Element pfchildElement = element.properties.get(I_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatChild_ID); - int AD_PrintFormatChild_ID = ReferenceUtils.resolveReference(ctx, pfchildElement, getTrxName(ctx)); + int AD_PrintFormatChild_ID = ReferenceUtils.resolveReference(ctx.ctx, pfchildElement, getTrxName(ctx)); if (AD_PrintFormatChild_ID > 0) { mPrintFormatItem.setAD_PrintFormatChild_ID(AD_PrintFormatChild_ID); } else if (pfchildElement.contents != null && pfchildElement.contents.length() > 0) { @@ -105,6 +106,7 @@ public class PrintFormatItemElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -124,20 +126,27 @@ public class PrintFormatItemElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mPrintFormatItem.getName(), mPrintFormatItem.get_ID(), action); - throw new POSaveFailedException("PrintFormatItem"); + throw new POSaveFailedException("Failed to save PrintFormatItem " + mPrintFormatItem.getName()); } } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_PrintFormatItem_ID = Env.getContextAsInt(ctx, + int AD_PrintFormatItem_ID = Env.getContextAsInt(ctx.ctx, X_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatItem_ID); - X_AD_PrintFormatItem m_PrintFormatItem = new X_AD_PrintFormatItem(ctx, + X_AD_PrintFormatItem m_PrintFormatItem = new X_AD_PrintFormatItem(ctx.ctx, AD_PrintFormatItem_ID, null); + + if (ctx.packOut.getFromDate() != null) { + if (m_PrintFormatItem.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("", "", I_AD_PrintFormatItem.Table_Name, atts); @@ -145,7 +154,7 @@ public class PrintFormatItemElementHandler extends AbstractElementHandler { document.endElement("", "", I_AD_PrintFormatItem.Table_Name); } - private void createPrintFormatItemBinding(Properties ctx, TransformerHandler document, + private void createPrintFormatItemBinding(PIPOContext ctx, TransformerHandler document, X_AD_PrintFormatItem mPrintformatItem) { PoExporter filler = new PoExporter(ctx, document, mPrintformatItem); @@ -154,12 +163,11 @@ public class PrintFormatItemElementHandler extends AbstractElementHandler { if (mPrintformatItem.getAD_PrintFormatItem_ID() <= PackOut.MAX_OFFICIAL_ID) filler.add("AD_PrintFormatItem_ID", new AttributesImpl()); - if (mPrintformatItem.getAD_Column_ID() > 0) { + if (mPrintformatItem.getAD_Client_ID() == 0 && mPrintformatItem.getAD_Column_ID() > 0) { String sql = "SELECT AD_Table_ID FROM AD_Column WHERE AD_Column_ID=?"; int tableID = DB.getSQLValue(null, sql, mPrintformatItem.getAD_Column_ID()); AttributesImpl referenceAtts = new AttributesImpl(); - String value = ReferenceUtils.getTableReference("AD_Table", "TableName", tableID, referenceAtts); - filler.addString("AD_Table.TableName", value, referenceAtts); + filler.addTableReference("AD_Table_ID", "AD_Table", "TableName", tableID, referenceAtts); } filler.export(excludes); @@ -169,9 +177,9 @@ public class PrintFormatItemElementHandler extends AbstractElementHandler { TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatItem_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatItem_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatItem_ID); + packout.getCtx().ctx.remove(X_AD_PrintFormatItem.COLUMNNAME_AD_PrintFormatItem_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintPaperElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintPaperElementHandler.java index c6ac7876b3..f94b9b6ab2 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintPaperElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/PrintPaperElementHandler.java @@ -18,11 +18,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -37,7 +37,7 @@ import org.xml.sax.helpers.AttributesImpl; public class PrintPaperElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_PrintPaper.Table_Name); @@ -48,7 +48,7 @@ public class PrintPaperElementHandler extends AbstractElementHandler { String printPaperName = getStringValue(element, "Name", excludes); int id = findIdByName(ctx, "AD_PrintPaper", printPaperName); - printPaper = new X_AD_PrintPaper(ctx, id > 0 ? id : 0, getTrxName(ctx)); + printPaper = new X_AD_PrintPaper(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } PoFiller filler = new PoFiller(ctx, printPaper, element, this); @@ -58,6 +58,7 @@ public class PrintPaperElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -76,20 +77,27 @@ public class PrintPaperElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, printPaper.getName(), printPaper.get_ID(), action); - throw new POSaveFailedException("PrintPaper"); + throw new POSaveFailedException("Failed to save PrintPaper " + printPaper.getName()); } } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_PrintPaper_ID = Env.getContextAsInt(ctx, + int AD_PrintPaper_ID = Env.getContextAsInt(ctx.ctx, X_AD_PrintPaper.COLUMNNAME_AD_PrintPaper_ID); - X_AD_PrintPaper printPaper = new X_AD_PrintPaper(ctx, + X_AD_PrintPaper printPaper = new X_AD_PrintPaper(ctx.ctx, AD_PrintPaper_ID, null); + + if (ctx.packOut.getFromDate() != null) { + if (printPaper.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("", "", I_AD_PrintPaper.Table_Name, atts); @@ -97,7 +105,7 @@ public class PrintPaperElementHandler extends AbstractElementHandler { document.endElement("", "", I_AD_PrintPaper.Table_Name); } - private void createPrintPaperBinding(Properties ctx, TransformerHandler document, + private void createPrintPaperBinding(PIPOContext ctx, TransformerHandler document, X_AD_PrintPaper printPaper) { PoExporter filler = new PoExporter(ctx, document, printPaper); @@ -112,9 +120,9 @@ public class PrintPaperElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_PrintPaper.COLUMNNAME_AD_PrintPaper_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_PrintPaper.COLUMNNAME_AD_PrintPaper_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_PrintPaper.COLUMNNAME_AD_PrintPaper_ID); + packout.getCtx().ctx.remove(X_AD_PrintPaper.COLUMNNAME_AD_PrintPaper_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessAccessElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessAccessElementHandler.java index 873a8009af..08b0ce4db1 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessAccessElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessAccessElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; @@ -39,7 +39,7 @@ import org.xml.sax.helpers.AttributesImpl; public class ProcessAccessElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { int roleid =0; int processid =0; List excludes = defaultExcludeList(X_AD_Process_Access.Table_Name); @@ -49,18 +49,29 @@ public class ProcessAccessElementHandler extends AbstractElementHandler { if (getParentId(element, I_AD_Role.Table_Name) > 0) { roleid = getParentId(element, I_AD_Role.Table_Name); } else { - Element roleElement = element.properties.get(I_AD_Process_Access.COLUMNNAME_AD_Role_ID); - roleid = ReferenceUtils.resolveReference(ctx, roleElement, getTrxName(ctx)); + Element roleElement = element.properties.get("AD_Role_ID"); + roleid = ReferenceUtils.resolveReference(ctx.ctx, roleElement, getTrxName(ctx)); + } + + if (roleid <= 0) { + element.defer = true; + element.unresolved = "AD_Role_ID"; + return; } Element processElement = element.properties.get(I_AD_Process_Access.COLUMNNAME_AD_Process_ID); - processid = ReferenceUtils.resolveReference(ctx, processElement, getTrxName(ctx)); + processid = ReferenceUtils.resolveReference(ctx.ctx, processElement, getTrxName(ctx)); + if (processid <= 0) { + element.defer = true; + element.unresolved = "AD_Process_ID " + (processElement.contents != null ? processElement.contents.toString() : ""); + return; + } - Query query = new Query(ctx, "AD_Process_Access", "AD_Role_ID=? and AD_Process_ID=?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, "AD_Process_Access", "AD_Role_ID=? and AD_Process_ID=?", getTrxName(ctx)); po = query.setParameters(new Object[]{roleid, processid}).first(); if (po == null) { - po = new X_AD_Process_Access(ctx, 0, getTrxName(ctx)); + po = new X_AD_Process_Access(ctx.ctx, 0, getTrxName(ctx)); po.setAD_Process_ID(processid); po.setAD_Role_ID(roleid); } @@ -71,37 +82,45 @@ public class ProcessAccessElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } po.saveEx(); } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Process_ID = Env.getContextAsInt(ctx, X_AD_Process.COLUMNNAME_AD_Process_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Process_Access.Table_Name, atts); - createProcessAccessBinding(ctx, document, AD_Process_ID, AD_Role_ID); - document.endElement("", "", I_AD_Process_Access.Table_Name); + int AD_Process_ID = Env.getContextAsInt(ctx.ctx, X_AD_Process.COLUMNNAME_AD_Process_ID); + int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); + + X_AD_Process_Access po = null; + Query query = new Query(ctx.ctx, "AD_Process_Access", "AD_Role_ID=? and AD_Process_ID=?", getTrxName(ctx)); + po = query.setParameters(new Object[]{AD_Role_ID, AD_Process_ID}).first(); + + if (po != null) { + + if (ctx.packOut.getFromDate() != null) { + if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", I_AD_Process_Access.Table_Name, atts); + createProcessAccessBinding(ctx, document, po); + document.endElement("", "", I_AD_Process_Access.Table_Name); + } } - private void createProcessAccessBinding(Properties ctx, TransformerHandler document, - int process_id, int role_id) { - - X_AD_Process_Access po = null; - Query query = new Query(ctx, "AD_Process_Access", "AD_Role_ID=? and AD_Process_ID=?", getTrxName(ctx)); - po = query.setParameters(new Object[]{role_id, process_id}).first(); - if (po != null) - { - PoExporter filler = new PoExporter(ctx, document, po); - List excludes = defaultExcludeList(X_AD_Process_Access.Table_Name); - filler.export(excludes); - } + private void createProcessAccessBinding(PIPOContext ctx, TransformerHandler document, + X_AD_Process_Access po) { + PoExporter filler = new PoExporter(ctx, document, po); + List excludes = defaultExcludeList(X_AD_Process_Access.Table_Name); + filler.export(excludes); } @Override diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessElementHandler.java index 9fd7cb9162..d1f2feb539 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessElementHandler.java @@ -18,13 +18,13 @@ package org.adempiere.pipo2.handler; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.exceptions.AdempiereException; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.ElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -51,17 +51,17 @@ public class ProcessElementHandler extends AbstractElementHandler { private List processes = new ArrayList(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { X_AD_Process mProcess = findPO(ctx, element); if (mProcess == null) { String value = getStringValue(element, "Value"); // Get New process. int id = findIdByColumn(ctx, "AD_Process", "Value", value); - mProcess = new X_AD_Process(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mProcess = new X_AD_Process(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } if (mProcess.getAD_Process_ID() == 0 && isOfficialId(element, "AD_Process_ID")) @@ -73,6 +73,7 @@ public class ProcessElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -94,7 +95,7 @@ public class ProcessElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mProcess.getName(), mProcess .get_ID(), action); - throw new POSaveFailedException("Process"); + throw new POSaveFailedException("Failed to save Process " + mProcess.getName()); } } } else { @@ -102,18 +103,18 @@ public class ProcessElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Process_ID = Env.getContextAsInt(ctx, "AD_Process_ID"); + int AD_Process_ID = Env.getContextAsInt(ctx.ctx, "AD_Process_ID"); if (processes.contains(AD_Process_ID)) return; processes.add(AD_Process_ID); - PackOut packOut = getPackOut(ctx); + PackOut packOut = ctx.packOut; - X_AD_Process m_Process = new X_AD_Process(ctx, AD_Process_ID, getTrxName(ctx)); + X_AD_Process m_Process = new X_AD_Process(ctx.ctx, AD_Process_ID, getTrxName(ctx)); AttributesImpl atts = new AttributesImpl(); @@ -132,11 +133,22 @@ public class ProcessElementHandler extends AbstractElementHandler { ElementHandler handler = packOut.getHandler(I_AD_Workflow.Table_Name); handler.packOut(packOut,document,null,m_Process.getAD_Workflow_ID()); } + + boolean createElement = true; + + if (ctx.packOut.getFromDate() != null) { + if (m_Process.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + + if (createElement) { addTypeName(atts, "table"); document.startElement("", "", I_AD_Process.Table_Name, atts); createProcessBinding(ctx, document, m_Process); + } - Query query = new Query(ctx, "AD_Process_PARA", "AD_Process_ID = ?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, "AD_Process_PARA", "AD_Process_ID = ?", getTrxName(ctx)); List paralist = query.setParameters(new Object[]{AD_Process_ID}).list(); for (X_AD_Process_Para para : paralist) { if (para.getAD_Reference_ID()>0) @@ -160,22 +172,24 @@ public class ProcessElementHandler extends AbstractElementHandler { createProcessPara(ctx, document, para.getAD_Process_Para_ID()); } - document.endElement("", "", I_AD_Process.Table_Name); + if (createElement) { + document.endElement("", "", X_AD_Process.Table_Name); + } } catch (Exception e) { throw new AdempiereException(e); } } - private void createProcessPara(Properties ctx, TransformerHandler document, + private void createProcessPara(PIPOContext ctx, TransformerHandler document, int AD_Process_Para_ID) throws SAXException { - Env.setContext(ctx, X_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID, + Env.setContext(ctx.ctx, X_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID, AD_Process_Para_ID); paraHandler.create(ctx, document); - ctx.remove(X_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID); + ctx.ctx.remove(X_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID); } - private void createProcessBinding(Properties ctx, TransformerHandler document, + private void createProcessBinding(PIPOContext ctx, TransformerHandler document, X_AD_Process m_Process) { PoExporter filler = new PoExporter(ctx, document, m_Process); List excludes = defaultExcludeList(X_AD_Process.Table_Name); @@ -188,8 +202,8 @@ public class ProcessElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Process_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Process_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Process_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Process_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessParaElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessParaElementHandler.java index 8cf8e6e074..692c54b3d0 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessParaElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ProcessParaElementHandler.java @@ -17,13 +17,12 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; -import org.adempiere.exceptions.AdempiereException; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.ElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -41,12 +40,12 @@ import org.xml.sax.helpers.AttributesImpl; public class ProcessParaElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Process_Para.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { if (isParentDefer(element, I_AD_Process.Table_Name)) { element.defer = true; return; @@ -54,15 +53,15 @@ public class ProcessParaElementHandler extends AbstractElementHandler { X_AD_Process_Para mProcessPara = findPO(ctx, element); if (mProcessPara == null) { - String name = getStringValue(element, "Name"); + String name = getStringValue(element, "ColumnName"); int id = 0; int masterId = 0; if (getParentId(element, I_AD_Process.Table_Name) > 0) { - masterId = getParentId(element, "process"); + masterId = getParentId(element, I_AD_Process.Table_Name); } else { Element processElement = element.properties.get(I_AD_Process_Para.COLUMNNAME_AD_Process_ID); - masterId = ReferenceUtils.resolveReference(ctx, processElement, getTrxName(ctx)); + masterId = ReferenceUtils.resolveReference(ctx.ctx, processElement, getTrxName(ctx)); } if (masterId <= 0) { element.defer = true; @@ -70,8 +69,8 @@ public class ProcessParaElementHandler extends AbstractElementHandler { return; } - id = findIdByColumnAndParentId(ctx, "AD_Process_Para", "Name", name, "AD_Process", masterId); - mProcessPara = new X_AD_Process_Para(ctx, id > 0 ? id : 0, getTrxName(ctx)); + id = findIdByColumnAndParentId(ctx, "AD_Process_Para", "ColumnName", name, "AD_Process", masterId); + mProcessPara = new X_AD_Process_Para(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mProcessPara.setAD_Process_ID(masterId); excludes.add(I_AD_Process_Para.COLUMNNAME_AD_Process_ID); } @@ -84,6 +83,7 @@ public class ProcessParaElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -99,12 +99,12 @@ public class ProcessParaElementHandler extends AbstractElementHandler { action = "New"; } if (mProcessPara.save(getTrxName(ctx)) == true) { - logImportDetail(ctx, impDetail, 1, mProcessPara.getName(), + logImportDetail(ctx, impDetail, 1, mProcessPara.getColumnName(), mProcessPara.get_ID(), action); } else { - logImportDetail(ctx, impDetail, 0, mProcessPara.getName(), + logImportDetail(ctx, impDetail, 0, mProcessPara.getColumnName(), mProcessPara.get_ID(), action); - throw new POSaveFailedException("ProcessPara"); + throw new POSaveFailedException("Failed to save ProcessPara " + mProcessPara.getColumnName()); } } } else { @@ -112,23 +112,29 @@ public class ProcessParaElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Process_Para_ID = Env.getContextAsInt(ctx, + int AD_Process_Para_ID = Env.getContextAsInt(ctx.ctx, X_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID); - X_AD_Process_Para m_Processpara = new X_AD_Process_Para(ctx, + X_AD_Process_Para m_Processpara = new X_AD_Process_Para(ctx.ctx, AD_Process_Para_ID, getTrxName(ctx)); if (m_Processpara.getAD_Element_ID() > 0) { - PackOut packOut = getPackOut(ctx); + PackOut packOut = ctx.packOut; ElementHandler handler = packOut.getHandler(I_AD_Element.Table_Name); try { handler.packOut(packOut,document,null,m_Processpara.getAD_Element_ID()); } catch (Exception e) { - throw new AdempiereException(e); + throw new RuntimeException(e); + } + } + + if (ctx.packOut.getFromDate() != null) { + if (m_Processpara.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; } } AttributesImpl atts = new AttributesImpl(); @@ -138,7 +144,7 @@ public class ProcessParaElementHandler extends AbstractElementHandler { document.endElement("", "", I_AD_Process_Para.Table_Name); } - private void createProcessParaBinding(Properties ctx, TransformerHandler document, + private void createProcessParaBinding(PIPOContext ctx, TransformerHandler document, X_AD_Process_Para m_Processpara) { PoExporter filler = new PoExporter(ctx, document, m_Processpara); @@ -153,8 +159,8 @@ public class ProcessParaElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID); + packout.getCtx().ctx.remove(I_AD_Process_Para.COLUMNNAME_AD_Process_Para_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceElementHandler.java index 82011f0f43..0a7a19fe1a 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceElementHandler.java @@ -21,12 +21,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -51,17 +51,17 @@ public class ReferenceElementHandler extends AbstractElementHandler { private List references = new ArrayList(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { String entitytype = getStringValue(element, "EntityType"); String name = getStringValue(element, "Name"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { X_AD_Reference mReference = findPO(ctx, element); if (mReference == null) { int id = findIdByName(ctx, "AD_Reference", name); - mReference = new X_AD_Reference(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mReference = new X_AD_Reference(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } List excludes = defaultExcludeList(X_AD_Reference.Table_Name); if (mReference.getAD_Reference_ID() == 0 && isOfficialId(element, "AD_Reference_ID")) @@ -71,6 +71,7 @@ public class ReferenceElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -96,7 +97,7 @@ public class ReferenceElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mReference.getName(), mReference.get_ID(), action); - throw new POSaveFailedException("Reference"); + throw new POSaveFailedException("Failed to save Reference " + mReference.getName()); } } } else { @@ -104,12 +105,12 @@ public class ReferenceElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int Reference_id = Env.getContextAsInt(ctx, + int Reference_id = Env.getContextAsInt(ctx.ctx, X_AD_Reference.COLUMNNAME_AD_Reference_ID); if (references.contains(Reference_id)) @@ -118,11 +119,20 @@ public class ReferenceElementHandler extends AbstractElementHandler { references.add(Reference_id); AttributesImpl atts = new AttributesImpl(); - X_AD_Reference m_Reference = new X_AD_Reference(ctx, Reference_id, getTrxName(ctx)); + X_AD_Reference m_Reference = new X_AD_Reference(ctx.ctx, Reference_id, getTrxName(ctx)); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Reference.Table_Name, atts); - createReferenceBinding(ctx, document, m_Reference); + boolean createElement = true; + if (ctx.packOut.getFromDate() != null) { + if (m_Reference.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + + if (createElement) { + addTypeName(atts, "table"); + document.startElement("", "", I_AD_Reference.Table_Name, atts); + createReferenceBinding(ctx, document, m_Reference); + } if (m_Reference.getValidationType().compareTo("L") == 0) { String sql1 = "SELECT AD_REF_LIST_ID FROM AD_Ref_List WHERE AD_Reference_ID= " @@ -156,27 +166,29 @@ public class ReferenceElementHandler extends AbstractElementHandler { } else if (m_Reference.getValidationType().compareTo("T") == 0) { createReferenceTable(ctx, document, Reference_id); } - document.endElement("", "", I_AD_Reference.Table_Name); + if (createElement) { + document.endElement("", "", X_AD_Reference.Table_Name); + } } - private void createReferenceTable(Properties ctx, TransformerHandler document, + private void createReferenceTable(PIPOContext ctx, TransformerHandler document, int reference_id) throws SAXException { - Env.setContext(ctx, X_AD_Ref_Table.COLUMNNAME_AD_Reference_ID, reference_id); + Env.setContext(ctx.ctx, X_AD_Ref_Table.COLUMNNAME_AD_Reference_ID, reference_id); tableHandler.create(ctx, document); - ctx.remove(X_AD_Ref_Table.COLUMNNAME_AD_Reference_ID); + ctx.ctx.remove(X_AD_Ref_Table.COLUMNNAME_AD_Reference_ID); } - private void createReferenceList(Properties ctx, + private void createReferenceList(PIPOContext ctx, TransformerHandler document, int AD_Ref_List_ID) throws SAXException { - Env.setContext(ctx, X_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID, + Env.setContext(ctx.ctx, X_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID, AD_Ref_List_ID); listHandler.create(ctx, document); - ctx.remove(X_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID); + ctx.ctx.remove(X_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID); } - private void createReferenceBinding(Properties ctx, TransformerHandler document, + private void createReferenceBinding(PIPOContext ctx, TransformerHandler document, X_AD_Reference m_Reference) { List excludes = defaultExcludeList(X_AD_Reference.Table_Name); PoExporter filler = new PoExporter(ctx, document, m_Reference); @@ -188,8 +200,8 @@ public class ReferenceElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Reference_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Reference_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Reference_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Reference_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceListElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceListElementHandler.java index c7c1774fb2..0fe4dffd66 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceListElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceListElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -38,15 +38,15 @@ import org.xml.sax.helpers.AttributesImpl; public class ReferenceListElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { - if (isParentSkip(element, null)) { + if (isProcessElement(ctx.ctx, entitytype)) { + /*if (isParentSkip(element, null)) { element.skip = true; return; - } + }*/ X_AD_Ref_List mRefList = findPO(ctx, element); if (mRefList == null) { @@ -56,11 +56,11 @@ public class ReferenceListElementHandler extends AbstractElementHandler { AD_Reference_ID = getParentId(element, I_AD_Reference.Table_Name); } else { Element referenceElement = element.properties.get(I_AD_Ref_List.COLUMNNAME_AD_Reference_ID); - AD_Reference_ID = ReferenceUtils.resolveReference(ctx, referenceElement, getTrxName(ctx)); + AD_Reference_ID = ReferenceUtils.resolveReference(ctx.ctx, referenceElement, getTrxName(ctx)); } int AD_Ref_List_ID = findIdByColumnAndParentId(ctx, "AD_Ref_List", "Value", value, "AD_Reference", AD_Reference_ID); - mRefList = new X_AD_Ref_List(ctx, AD_Ref_List_ID, getTrxName(ctx)); + mRefList = new X_AD_Ref_List(ctx.ctx, AD_Ref_List_ID, getTrxName(ctx)); } if (mRefList.getAD_Ref_List_ID() == 0 && isOfficialId(element, "AD_Ref_List_ID")) @@ -71,6 +71,7 @@ public class ReferenceListElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -90,7 +91,7 @@ public class ReferenceListElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mRefList.getName(), mRefList.get_ID(), action); - throw new POSaveFailedException("ReferenceList"); + throw new POSaveFailedException("Failed to save ReferenceList " + mRefList.getName()); } } } else { @@ -98,15 +99,20 @@ public class ReferenceListElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Ref_List_ID = Env.getContextAsInt(ctx, + int AD_Ref_List_ID = Env.getContextAsInt(ctx.ctx, X_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID); - X_AD_Ref_List m_Ref_List = new X_AD_Ref_List(ctx, AD_Ref_List_ID, + X_AD_Ref_List m_Ref_List = new X_AD_Ref_List(ctx.ctx, AD_Ref_List_ID, getTrxName(ctx)); + if (ctx.packOut.getFromDate() != null) { + if (m_Ref_List.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("", "", I_AD_Ref_List.Table_Name, atts); @@ -114,7 +120,7 @@ public class ReferenceListElementHandler extends AbstractElementHandler { document.endElement("", "", I_AD_Ref_List.Table_Name); } - private void createRefListBinding(Properties ctx, TransformerHandler document, + private void createRefListBinding(PIPOContext ctx, TransformerHandler document, X_AD_Ref_List m_Ref_List) { List excludes = defaultExcludeList(X_AD_Ref_List.Table_Name); PoExporter filler = new PoExporter(ctx, document, m_Ref_List); @@ -128,8 +134,8 @@ public class ReferenceListElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID); + packout.getCtx().ctx.remove(I_AD_Ref_List.COLUMNNAME_AD_Ref_List_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceTableElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceTableElementHandler.java index 11d72e123a..0563369cf8 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceTableElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReferenceTableElementHandler.java @@ -19,12 +19,12 @@ package org.adempiere.pipo2.handler; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.List; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -35,6 +35,7 @@ import org.compiere.model.I_AD_Ref_Table; import org.compiere.model.I_AD_Reference; import org.compiere.model.X_AD_Package_Imp_Detail; import org.compiere.model.X_AD_Ref_Table; +import org.compiere.model.X_AD_Reference; import org.compiere.util.DB; import org.compiere.util.Env; import org.xml.sax.SAXException; @@ -42,13 +43,13 @@ import org.xml.sax.helpers.AttributesImpl; public class ReferenceTableElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Ref_Table.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { if (isParentSkip(element, null)) { element.skip = true; return; @@ -61,7 +62,7 @@ public class ReferenceTableElementHandler extends AbstractElementHandler { AD_Reference_ID = getParentId(element, I_AD_Reference.Table_Name); } else { Element referenceElement = element.properties.get(I_AD_Ref_Table.COLUMNNAME_AD_Reference_ID); - AD_Reference_ID = ReferenceUtils.resolveReference(ctx, referenceElement, getTrxName(ctx)); + AD_Reference_ID = ReferenceUtils.resolveReference(ctx.ctx, referenceElement, getTrxName(ctx)); } if (AD_Reference_ID <= 0 && isOfficialId(element, "AD_Reference_ID")) AD_Reference_ID = getIntValue(element, "AD_Reference_ID"); @@ -74,9 +75,9 @@ public class ReferenceTableElementHandler extends AbstractElementHandler { pstmt.setInt(1, AD_Reference_ID); rs = pstmt.executeQuery(); if (rs.next()) { - refTable = new X_AD_Ref_Table(ctx, rs, getTrxName(ctx)); + refTable = new X_AD_Ref_Table(ctx.ctx, rs, getTrxName(ctx)); } else { - refTable = new X_AD_Ref_Table(ctx, 0, getTrxName(ctx)); + refTable = new X_AD_Ref_Table(ctx.ctx, 0, getTrxName(ctx)); } } catch (Exception e) { throw new DatabaseAccessException(e.getLocalizedMessage(), e); @@ -89,13 +90,14 @@ public class ReferenceTableElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } int tableId = refTable.getAD_Table_ID(); Element displayElement = element.properties.get("AD_Display"); int displayColumnId = 0; if (ReferenceUtils.isIDLookup(displayElement) || ReferenceUtils.isUUIDLookup(displayElement)) { - displayColumnId = ReferenceUtils.resolveReference(ctx, displayElement, getTrxName(ctx)); + displayColumnId = ReferenceUtils.resolveReference(ctx.ctx, displayElement, getTrxName(ctx)); } else { displayColumnId = findIdByColumnAndParentId(ctx, "AD_Column", "ColumnName", displayElement.contents.toString(), "AD_Table", tableId); } @@ -105,7 +107,7 @@ public class ReferenceTableElementHandler extends AbstractElementHandler { Element keyElement = element.properties.get("AD_Key"); int keyColumnId = 0; if (ReferenceUtils.isIDLookup(keyElement) || ReferenceUtils.isUUIDLookup(keyElement)) { - keyColumnId = ReferenceUtils.resolveReference(ctx, keyElement, getTrxName(ctx)); + keyColumnId = ReferenceUtils.resolveReference(ctx.ctx, keyElement, getTrxName(ctx)); } else { keyColumnId = findIdByColumnAndParentId(ctx, "AD_Column", "ColumnName", keyElement.contents.toString(), "AD_Table", tableId); } @@ -117,35 +119,27 @@ public class ReferenceTableElementHandler extends AbstractElementHandler { X_AD_Package_Imp_Detail impDetail = createImportDetail(ctx, element.qName, X_AD_Ref_Table.Table_Name, X_AD_Ref_Table.Table_ID); - logImportDetail(ctx, impDetail, 1, refTable.getAD_Reference().getName(), refTable.getAD_Reference_ID(), action); + int AD_Reference_ID = refTable.getAD_Reference_ID(); + X_AD_Reference adReference = new X_AD_Reference(ctx.ctx, AD_Reference_ID, getTrxName(ctx)); + logImportDetail(ctx, impDetail, 1, adReference.getName(), refTable.getAD_Reference_ID(), action); } } else { element.skip = true; } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int Reference_id = Env.getContextAsInt(ctx, - X_AD_Ref_Table.COLUMNNAME_AD_Reference_ID); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Ref_Table.Table_Name, atts); + int Reference_id = Env.getContextAsInt(ctx.ctx, "AD_Reference_ID"); createReferenceTableBinding(ctx, document, Reference_id); - document.endElement("", "", I_AD_Ref_Table.Table_Name); } - private void createReferenceTableBinding(Properties ctx, + private void createReferenceTableBinding(PIPOContext ctx, TransformerHandler document, int reference_ID) { - if (reference_ID <= PackOut.MAX_OFFICIAL_ID) - { - PoExporter filler = new PoExporter(ctx,document,null); - filler.addString("AD_Reference_ID", Integer.toString(reference_ID), new AttributesImpl()); - } String sql = "SELECT * FROM AD_Ref_Table WHERE AD_Reference_ID= " + reference_ID; @@ -155,7 +149,23 @@ public class ReferenceTableElementHandler extends AbstractElementHandler { pstmt = DB.prepareStatement(sql, getTrxName(ctx)); rs = pstmt.executeQuery(); if (rs.next()) { - X_AD_Ref_Table refTable = new X_AD_Ref_Table(ctx, rs, getTrxName(ctx)); + X_AD_Ref_Table refTable = new X_AD_Ref_Table(ctx.ctx, rs, getTrxName(ctx)); + if (ctx.packOut.getFromDate() != null) { + if (refTable.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", X_AD_Ref_Table.Table_Name, atts); + + if (reference_ID <= PackOut.MAX_OFFICIAL_ID) + { + PoExporter filler = new PoExporter(ctx,document,null); + filler.addString("AD_Reference_ID", Integer.toString(reference_ID), new AttributesImpl()); + } + PoExporter filler = new PoExporter(ctx,document,refTable); List excludes = defaultExcludeList(X_AD_Ref_Table.Table_Name); excludes.add("ad_display"); @@ -163,6 +173,8 @@ public class ReferenceTableElementHandler extends AbstractElementHandler { filler.export(excludes); filler.addTableReference("AD_Display", "AD_Column", "ColumnName", new AttributesImpl()); filler.addTableReference("AD_Key", "AD_Column", "ColumnName", new AttributesImpl()); + + document.endElement("", "", X_AD_Ref_Table.Table_Name); } } catch (Exception e) { log.log(Level.SEVERE, e.getLocalizedMessage(), e); @@ -176,8 +188,8 @@ public class ReferenceTableElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_Ref_Table.COLUMNNAME_AD_Reference_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_Ref_Table.COLUMNNAME_AD_Reference_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_Ref_Table.COLUMNNAME_AD_Reference_ID); + packout.getCtx().ctx.remove(I_AD_Ref_Table.COLUMNNAME_AD_Reference_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReportViewColElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReportViewColElementHandler.java index 9bf1ec3301..d48260fa19 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReportViewColElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReportViewColElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -30,6 +30,7 @@ import org.adempiere.pipo2.ReferenceUtils; import org.adempiere.pipo2.exception.POSaveFailedException; import org.compiere.model.I_AD_ReportView; import org.compiere.model.I_AD_ReportView_Col; +import org.compiere.model.MColumn; import org.compiere.model.X_AD_Package_Imp_Detail; import org.compiere.model.X_AD_ReportView_Col; import org.compiere.util.DB; @@ -39,12 +40,12 @@ import org.xml.sax.helpers.AttributesImpl; public class ReportViewColElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_ReportView_Col.Table_Name); String entitytype = getStringValue(element,"EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { excludes.add("AD_Table_ID"); X_AD_ReportView_Col mReportviewCol = findPO(ctx, element); if (mReportviewCol == null) { @@ -53,25 +54,27 @@ public class ReportViewColElementHandler extends AbstractElementHandler { AD_ReportView_ID = getParentId(element, I_AD_ReportView.Table_Name); } else { Element rvElement = element.properties.get(I_AD_ReportView_Col.COLUMNNAME_AD_ReportView_ID); - AD_ReportView_ID = ReferenceUtils.resolveReference(ctx, rvElement, getTrxName(ctx)); + AD_ReportView_ID = ReferenceUtils.resolveReference(ctx.ctx, rvElement, getTrxName(ctx)); } if (AD_ReportView_ID <= 0) { element.defer = true; + element.unresolved = "AD_ReportView_ID"; return; } int AD_Column_ID = 0; Element columnElement = element.properties.get(I_AD_ReportView_Col.COLUMNNAME_AD_Column_ID); if (ReferenceUtils.isIDLookup(columnElement) || ReferenceUtils.isUUIDLookup(columnElement)) { - AD_Column_ID = ReferenceUtils.resolveReference(ctx, columnElement, getTrxName(ctx)); + AD_Column_ID = ReferenceUtils.resolveReference(ctx.ctx, columnElement, getTrxName(ctx)); } else { if (columnElement.contents != null && columnElement.contents.length() > 0) { Element tableElement = element.properties.get("AD_Table_ID"); - int AD_Table_ID = ReferenceUtils.resolveReference(ctx, tableElement, getTrxName(ctx)); + int AD_Table_ID = ReferenceUtils.resolveReference(ctx.ctx, tableElement, getTrxName(ctx)); AD_Column_ID = findIdByColumnAndParentId(ctx, "AD_Column", "ColumnName", columnElement.contents.toString(), "AD_Table", AD_Table_ID); if (AD_Column_ID <= 0) { element.defer = true; + element.unresolved = "AD_Column_ID"; return; } } @@ -88,10 +91,10 @@ public class ReportViewColElementHandler extends AbstractElementHandler { sql.append(" AND AD_ReportView_ID = ?"); int id = DB.getSQLValue(getTrxName(ctx), sql.toString(), functionColumn, AD_ReportView_ID); - mReportviewCol = new X_AD_ReportView_Col(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mReportviewCol = new X_AD_ReportView_Col(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mReportviewCol.setAD_ReportView_ID(AD_ReportView_ID); if (AD_Column_ID > 0) { - mReportviewCol.setAD_Column_ID(id); + mReportviewCol.setAD_Column_ID(AD_Column_ID); } mReportviewCol.setFunctionColumn(functionColumn); excludes.add("FunctionColumn"); @@ -106,6 +109,7 @@ public class ReportViewColElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -126,7 +130,7 @@ public class ReportViewColElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, "" + mReportviewCol.getAD_ReportView_ID(), mReportviewCol.get_ID(),action); - throw new POSaveFailedException("ReportViewCol"); + throw new POSaveFailedException("Failed to save ReportViewCol"); } } } else { @@ -134,23 +138,30 @@ public class ReportViewColElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_ReportView_Col_ID = Env.getContextAsInt(ctx, + int AD_ReportView_Col_ID = Env.getContextAsInt(ctx.ctx, X_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID); - X_AD_ReportView_Col m_Reportview_Col = new X_AD_ReportView_Col(ctx, + X_AD_ReportView_Col m_Reportview_Col = new X_AD_ReportView_Col(ctx.ctx, AD_ReportView_Col_ID, getTrxName(ctx)); + + if (ctx.packOut.getFromDate() != null) { + if (m_Reportview_Col.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); - document.startElement("", "", I_AD_ReportView_Col.Table_Name, atts); + document.startElement("", "", X_AD_ReportView_Col.Table_Name, atts); createReportViewColBinding(ctx, document, m_Reportview_Col); - document.endElement("", "", I_AD_ReportView_Col.Table_Name); + document.endElement("", "", X_AD_ReportView_Col.Table_Name); } - private void createReportViewColBinding(Properties ctx, TransformerHandler document, + private void createReportViewColBinding(PIPOContext ctx, TransformerHandler document, X_AD_ReportView_Col m_Reportview_Col) { PoExporter filler = new PoExporter(ctx, document, m_Reportview_Col); @@ -159,7 +170,9 @@ public class ReportViewColElementHandler extends AbstractElementHandler { filler.add("AD_ReportView_Col_ID", new AttributesImpl()); if (m_Reportview_Col.getAD_Column_ID() > 0) { - int AD_Table_ID = m_Reportview_Col.getAD_Column().getAD_Table_ID(); + int AD_Column_ID = m_Reportview_Col.getAD_Column_ID(); + MColumn mColumn = new MColumn(ctx.ctx, AD_Column_ID, getTrxName(ctx)); + int AD_Table_ID = mColumn.getAD_Table_ID(); AttributesImpl tableAtts = new AttributesImpl(); String value = ReferenceUtils.getTableReference("AD_Table", "TableName", AD_Table_ID, tableAtts); filler.addString("AD_Table_ID", value, tableAtts); @@ -172,8 +185,8 @@ public class ReportViewColElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID); + packout.getCtx().ctx.remove(I_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReportViewElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReportViewElementHandler.java index dd685d49ba..701a63edd4 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReportViewElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/ReportViewElementHandler.java @@ -20,13 +20,13 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.exceptions.AdempiereException; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.ElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -50,7 +50,7 @@ public class ReportViewElementHandler extends AbstractElementHandler { private List views = new ArrayList(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_ReportView.Table_Name); @@ -59,7 +59,7 @@ public class ReportViewElementHandler extends AbstractElementHandler { if (mReportview == null) { String name = getStringValue(element, "Name"); int id = findIdByName(ctx, "AD_ReportView", name); - mReportview = new X_AD_ReportView(ctx, id, getTrxName(ctx)); + mReportview = new X_AD_ReportView(ctx.ctx, id, getTrxName(ctx)); } PoFiller filler = new PoFiller(ctx, mReportview, element, this); if (mReportview.getAD_ReportView_ID() == 0 && isOfficialId(element, "AD_ReportView_ID")) @@ -68,6 +68,7 @@ public class ReportViewElementHandler extends AbstractElementHandler { List notfound = filler.autoFill(excludes); if (notfound.size() > 0) { element.defer = true; + element.unresolved = notfound.toString(); return; } @@ -88,60 +89,50 @@ public class ReportViewElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mReportview.getName(), mReportview.get_ID(), action); - throw new POSaveFailedException("ReportView"); + throw new POSaveFailedException("Failed to save ReportView " + mReportview.getName()); } } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - PackOut packOut = getPackOut(ctx); - int AD_ReportView_ID = Env.getContextAsInt(ctx, "AD_ReportView_ID"); + PackOut packOut = ctx.packOut; + int AD_ReportView_ID = Env.getContextAsInt(ctx.ctx, "AD_ReportView_ID"); if (views.contains(AD_ReportView_ID)) return; views.add(AD_ReportView_ID); AttributesImpl atts = new AttributesImpl(); - X_AD_ReportView m_Reportview = new X_AD_ReportView(ctx, AD_ReportView_ID, getTrxName(ctx)); + X_AD_ReportView m_Reportview = new X_AD_ReportView(ctx.ctx, AD_ReportView_ID, getTrxName(ctx)); // Export Table if neccessary ElementHandler tableHandler = packOut.getHandler(I_AD_Table.Table_Name); try { tableHandler.packOut(packOut, document, null, m_Reportview.getAD_Table_ID()); } catch (Exception e) { - throw new AdempiereException(e); + throw new RuntimeException(e); } - addTypeName(atts, "table"); - document.startElement("", "", I_AD_ReportView.Table_Name, atts); - createReportViewBinding(ctx, document, m_Reportview); - document.endElement("", "", I_AD_ReportView.Table_Name); + boolean createElement = true; + if (ctx.packOut.getFromDate() != null) { + if (m_Reportview.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } - String sql = "SELECT AD_PrintFormat_ID FROM AD_PrintFormat WHERE AD_ReportView_ID= " + if (createElement) { + addTypeName(atts, "table"); + document.startElement("", "", I_AD_ReportView.Table_Name, atts); + createReportViewBinding(ctx, document, m_Reportview); + } + + String sql = "SELECT AD_ReportView_Col_ID FROM AD_ReportView_Col WHERE AD_Reportview_ID= " + AD_ReportView_ID; PreparedStatement pstmt = null; ResultSet rs = null; - try { - pstmt = DB.prepareStatement(sql, getTrxName(ctx)); - rs = pstmt.executeQuery(); - while (rs.next()) { - ElementHandler pftHandler = packOut.getHandler(I_AD_PrintFormat.Table_Name); - pftHandler.packOut(packOut, document, null, rs.getInt(1)); - - } - } catch (Exception e) { - throw new AdempiereException(e); - } finally { - DB.close(rs, pstmt); - } - - sql = "SELECT AD_ReportView_Col_ID FROM AD_ReportView_Col WHERE AD_Reportview_ID= " - + AD_ReportView_ID; - pstmt = null; - rs = null; try { pstmt = DB.prepareStatement(sql, getTrxName(ctx)); rs = pstmt.executeQuery(); @@ -153,19 +144,40 @@ public class ReportViewElementHandler extends AbstractElementHandler { } finally { DB.close(rs, pstmt); } + + if (createElement) { + document.endElement("", "", X_AD_ReportView.Table_Name); + } + + sql = "SELECT AD_PrintFormat_ID FROM AD_PrintFormat WHERE AD_ReportView_ID= " + + AD_ReportView_ID; + pstmt = null; + rs = null; + try { + pstmt = DB.prepareStatement(sql, getTrxName(ctx)); + rs = pstmt.executeQuery(); + while (rs.next()) { + ElementHandler pftHandler = packOut.getHandler(I_AD_PrintFormat.Table_Name); + pftHandler.packOut(packOut, document, null, rs.getInt(1)); + } + } catch (Exception e) { + throw new AdempiereException(e); + } finally { + DB.close(rs, pstmt); + } } - private void createReportViewCol(Properties ctx, + private void createReportViewCol(PIPOContext ctx, TransformerHandler document, int AD_ReportView_Col_ID) throws SAXException { - Env.setContext(ctx, + Env.setContext(ctx.ctx, X_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID, AD_ReportView_Col_ID); columnHandler.create(ctx, document); - ctx.remove(X_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID); + ctx.ctx.remove(X_AD_ReportView_Col.COLUMNNAME_AD_ReportView_Col_ID); } - private void createReportViewBinding(Properties ctx, TransformerHandler document, + private void createReportViewBinding(PIPOContext ctx, TransformerHandler document, X_AD_ReportView m_Reportview) { PoExporter filler = new PoExporter(ctx, document, m_Reportview); @@ -177,8 +189,8 @@ public class ReportViewElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_ReportView_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_ReportView_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ReportView_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_ReportView_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/RoleElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/RoleElementHandler.java index a9e3ba397d..f9ddbecb66 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/RoleElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/RoleElementHandler.java @@ -20,12 +20,12 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -61,7 +61,7 @@ public class RoleElementHandler extends AbstractElementHandler { private TaskAccessElementHandler taskHandler = new TaskAccessElementHandler(); private WorkflowAccessElementHandler workflowHandler = new WorkflowAccessElementHandler(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Role.Table_Name); @@ -70,7 +70,7 @@ public class RoleElementHandler extends AbstractElementHandler { if (mRole == null) { String name = getStringValue(element, "Name", excludes); int id = findIdByName(ctx, "AD_Role", name); - mRole = new MRole(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mRole = new MRole(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mRole.setName(name); } @@ -81,6 +81,7 @@ public class RoleElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -101,26 +102,36 @@ public class RoleElementHandler extends AbstractElementHandler { logImportDetail(ctx, impDetail, 0, mRole.getName(), mRole.get_ID(), action); - throw new POSaveFailedException("Role"); + throw new POSaveFailedException("Failed to save Role " + mRole.getName()); } } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int Role_id = Env.getContextAsInt(ctx, + int Role_id = Env.getContextAsInt(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Role_ID); if (roles.contains(Role_id)) return; roles.add(Role_id); - X_AD_Role m_Role = new X_AD_Role(ctx, Role_id, null); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Role.Table_Name, atts); - createRoleBinding(ctx, document, m_Role); + + boolean createElement = true; + X_AD_Role m_Role = new X_AD_Role(ctx.ctx, Role_id, null); + if (ctx.packOut.getFromDate() != null) { + if (m_Role.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + + if (createElement) { + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", I_AD_Role.Table_Name, atts); + createRoleBinding(ctx, document, m_Role); + } // Process org access String sql = "SELECT AD_Org_ID, AD_Role_ID FROM AD_Role_OrgAccess WHERE AD_Role_ID= " @@ -141,7 +152,8 @@ public class RoleElementHandler extends AbstractElementHandler { } // Process user assignment access - sql = "SELECT AD_User_ID, AD_Role_ID, AD_Org_ID FROM AD_User_Roles WHERE AD_Role_ID= " + Role_id; + sql = "SELECT AD_User_ID, AD_Role_ID, AD_Org_ID FROM AD_User_Roles WHERE AD_Role_ID= " + Role_id + + " AND AD_User_ID > 0 "; pstmt = null; rs = null; try { @@ -241,75 +253,78 @@ public class RoleElementHandler extends AbstractElementHandler { } finally { DB.close(rs, pstmt); } - document.endElement("", "", I_AD_Role.Table_Name); + + if (createElement) { + document.endElement("", "", X_AD_Role.Table_Name); + } } - private void createTaskAccess(Properties ctx, TransformerHandler document, + private void createTaskAccess(PIPOContext ctx, TransformerHandler document, int AD_Task_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Task.COLUMNNAME_AD_Task_ID, AD_Task_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); + Env.setContext(ctx.ctx, X_AD_Task.COLUMNNAME_AD_Task_ID, AD_Task_ID); + Env.setContext(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); taskHandler.create(ctx, document); - ctx.remove(X_AD_Task.COLUMNNAME_AD_Task_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); + ctx.ctx.remove(X_AD_Task.COLUMNNAME_AD_Task_ID); + ctx.ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); } - private void createWorkflowAccess(Properties ctx, + private void createWorkflowAccess(PIPOContext ctx, TransformerHandler document, int AD_Workflow_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Workflow.COLUMNNAME_AD_Workflow_ID, AD_Workflow_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); + Env.setContext(ctx.ctx, X_AD_Workflow.COLUMNNAME_AD_Workflow_ID, AD_Workflow_ID); + Env.setContext(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); workflowHandler.create(ctx, document); - ctx.remove(X_AD_Workflow.COLUMNNAME_AD_Workflow_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); + ctx.ctx.remove(X_AD_Workflow.COLUMNNAME_AD_Workflow_ID); + ctx.ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); } - private void createFormAccess(Properties ctx, TransformerHandler document, + private void createFormAccess(PIPOContext ctx, TransformerHandler document, int AD_Form_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Form.COLUMNNAME_AD_Form_ID, AD_Form_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); + Env.setContext(ctx.ctx, X_AD_Form.COLUMNNAME_AD_Form_ID, AD_Form_ID); + Env.setContext(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); formHandler.create(ctx, document); - ctx.remove(X_AD_Form.COLUMNNAME_AD_Form_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); + ctx.ctx.remove(X_AD_Form.COLUMNNAME_AD_Form_ID); + ctx.ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); } - private void createProcessAccess(Properties ctx, + private void createProcessAccess(PIPOContext ctx, TransformerHandler document, int AD_Process_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Process.COLUMNNAME_AD_Process_ID, AD_Process_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); + Env.setContext(ctx.ctx, X_AD_Process.COLUMNNAME_AD_Process_ID, AD_Process_ID); + Env.setContext(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); processHandler.create(ctx, document); - ctx.remove(X_AD_Process.COLUMNNAME_AD_Process_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); + ctx.ctx.remove(X_AD_Process.COLUMNNAME_AD_Process_ID); + ctx.ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); } - private void createWindowAccess(Properties ctx, + private void createWindowAccess(PIPOContext ctx, TransformerHandler document, int AD_Window_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, X_AD_Window.COLUMNNAME_AD_Window_ID, AD_Window_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); + Env.setContext(ctx.ctx, X_AD_Window.COLUMNNAME_AD_Window_ID, AD_Window_ID); + Env.setContext(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); windowHandler.create(ctx, document); - ctx.remove(X_AD_Window.COLUMNNAME_AD_Window_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); + ctx.ctx.remove(X_AD_Window.COLUMNNAME_AD_Window_ID); + ctx.ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); } - private void createUserRole(Properties ctx, TransformerHandler document, + private void createUserRole(PIPOContext ctx, TransformerHandler document, int AD_User_ID, int AD_Role_ID, int AD_Org_ID) throws SAXException { - Env.setContext(ctx, X_AD_User.COLUMNNAME_AD_User_ID, AD_User_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); - Env.setContext(ctx, "AD_Org_ID", AD_Org_ID); + Env.setContext(ctx.ctx, X_AD_User.COLUMNNAME_AD_User_ID, AD_User_ID); + Env.setContext(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); + Env.setContext(ctx.ctx, "AD_Org_ID", AD_Org_ID); userHandler.create(ctx, document); - ctx.remove(X_AD_User.COLUMNNAME_AD_User_ID); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); - ctx.remove("AD_Org_ID"); + ctx.ctx.remove(X_AD_User.COLUMNNAME_AD_User_ID); + ctx.ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); + ctx.ctx.remove("AD_Org_ID"); } - private void createOrgAccess(Properties ctx, TransformerHandler document, + private void createOrgAccess(PIPOContext ctx, TransformerHandler document, int AD_Org_ID, int AD_Role_ID) throws SAXException { - Env.setContext(ctx, "AD_Org_ID", AD_Org_ID); - Env.setContext(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); + Env.setContext(ctx.ctx, "AD_Org_ID", AD_Org_ID); + Env.setContext(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, AD_Role_ID); orgHandler.create(ctx, document); - ctx.remove("AD_Org_ID"); - ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); + ctx.ctx.remove("AD_Org_ID"); + ctx.ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID); } - private void createRoleBinding(Properties ctx, TransformerHandler document, + private void createRoleBinding(PIPOContext ctx, TransformerHandler document, X_AD_Role m_Role) { PoExporter filler = new PoExporter(ctx, document, m_Role); List excludes = defaultExcludeList(X_AD_Role.Table_Name); @@ -329,8 +344,8 @@ public class RoleElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Role_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Role_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Role_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Role_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java index db147fe781..815c3e9ab0 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/SQLStatementElementHandler.java @@ -19,16 +19,17 @@ package org.adempiere.pipo2.handler; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.Statement; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.Element; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PackoutItem; import org.adempiere.pipo2.SQLElementParameters; +import org.compiere.model.X_AD_Package_Imp_Detail; import org.compiere.util.DB; import org.compiere.util.Env; import org.xml.sax.SAXException; @@ -36,13 +37,13 @@ import org.xml.sax.helpers.AttributesImpl; public class SQLStatementElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { String elementValue = element.getElementValue(); log.info(elementValue); String DBType = getStringValue(element, "DBType"); String sql = getStringValue(element, "statement"); - if (sql.endsWith(";")) + if (sql.endsWith(";") && !(sql.toLowerCase().endsWith("end;"))) sql = sql.substring(0, sql.length() - 1); PreparedStatement pstmt = null; try { @@ -52,8 +53,8 @@ public class SQLStatementElementHandler extends AbstractElementHandler { log.info("Executed SQL Statement: "+ getStringValue(element, "statement") + " ReturnValue="+n); } else if(DB.isOracle() == true && DBType.equals("Oracle")) { - pstmt.executeUpdate(); - log.info("Executed SQL Statement for Oracle: "+ getStringValue(element, "statement")); + int n = pstmt.executeUpdate(); + log.info("Executed SQL Statement for Oracle: "+ getStringValue(element, "statement") + " ReturnValue="+n); } else if ( DB.isPostgreSQL() && ( DBType.equals("Postgres") @@ -78,20 +79,27 @@ public class SQLStatementElementHandler extends AbstractElementHandler { m_con.close(); } } + + X_AD_Package_Imp_Detail impDetail = createImportDetail(ctx, element.qName, "", + 0); + logImportDetail (ctx, impDetail, 1, "SQLStatement",1,"Execute"); } catch (Exception e) { log.log(Level.SEVERE,"SQLSatement", e); + X_AD_Package_Imp_Detail impDetail = createImportDetail(ctx, element.qName, "", + 0); + logImportDetail (ctx, impDetail, 0, "SQLStatement",1,"Execute"); } finally { DB.close(pstmt); } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - String SQLStatement = Env.getContext(ctx, SQLElementParameters.SQL_STATEMENT); - String DBType = Env.getContext(ctx, SQLElementParameters.DB_TYPE); + String SQLStatement = Env.getContext(ctx.ctx, SQLElementParameters.SQL_STATEMENT); + String DBType = Env.getContext(ctx.ctx, SQLElementParameters.DB_TYPE); AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "custom"); document.startElement("","","SQLStatement",atts); @@ -108,7 +116,9 @@ public class SQLStatementElementHandler extends AbstractElementHandler { document.startElement("","","statement", new AttributesImpl()); contents = sqlStatement.toCharArray(); + document.startCDATA(); document.characters(contents,0,contents.length); + document.endCDATA(); document.endElement("","","statement"); } @@ -116,10 +126,10 @@ public class SQLStatementElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int field) throws Exception { PackoutItem detail = packout.getCurrentPackoutItem(); - Env.setContext(packout.getCtx(), SQLElementParameters.SQL_STATEMENT, (String)detail.getProperty(SQLElementParameters.SQL_STATEMENT)); - Env.setContext(packout.getCtx(), SQLElementParameters.DB_TYPE, (String)detail.getProperty(SQLElementParameters.DB_TYPE)); + Env.setContext(packout.getCtx().ctx, SQLElementParameters.SQL_STATEMENT, (String)detail.getProperty(SQLElementParameters.SQL_STATEMENT)); + Env.setContext(packout.getCtx().ctx, SQLElementParameters.DB_TYPE, (String)detail.getProperty(SQLElementParameters.DB_TYPE)); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(SQLElementParameters.SQL_STATEMENT); - packout.getCtx().remove(SQLElementParameters.DB_TYPE); + packout.getCtx().ctx.remove(SQLElementParameters.SQL_STATEMENT); + packout.getCtx().ctx.remove(SQLElementParameters.DB_TYPE); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TabElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TabElementHandler.java index 6f73cca2c3..c4e8cffcae 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TabElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TabElementHandler.java @@ -19,7 +19,6 @@ package org.adempiere.pipo2.handler; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.List; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; @@ -27,6 +26,7 @@ import javax.xml.transform.sax.TransformerHandler; import org.adempiere.exceptions.AdempiereException; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.ElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -50,11 +50,11 @@ public class TabElementHandler extends AbstractElementHandler { private FieldElementHandler fieldHandler = new FieldElementHandler(); - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Tab.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { if (isParentDefer(element, I_AD_Window.Table_Name)) { element.defer = true; return; @@ -69,17 +69,19 @@ public class TabElementHandler extends AbstractElementHandler { windowId = getParentId(element, I_AD_Window.Table_Name); } else { Element windowElement = element.properties.get(I_AD_Tab.COLUMNNAME_AD_Window_ID); - windowId = ReferenceUtils.resolveReference(ctx, windowElement, getTrxName(ctx)); + windowId = ReferenceUtils.resolveReference(ctx.ctx, windowElement, getTrxName(ctx)); } if (windowId <= 0) { element.defer = true; + element.unresolved = "AD_Window_ID"; return; } Element tableElement = element.properties.get(I_AD_Tab.COLUMNNAME_AD_Table_ID); - int tableId = ReferenceUtils.resolveReference(ctx, tableElement, getTrxName(ctx)); + int tableId = ReferenceUtils.resolveReference(ctx.ctx, tableElement, getTrxName(ctx)); if (tableId <= 0) { element.defer = true; + element.unresolved = "AD_Table_ID"; return; } @@ -88,7 +90,7 @@ public class TabElementHandler extends AbstractElementHandler { + " AND AD_Table_ID = ?"; int id = DB.getSQLValue(getTrxName(ctx), sql, windowId, name, tableId); - mTab = new MTab(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mTab = new MTab(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mTab.setAD_Table_ID(tableId); mTab.setName(name); mTab.setAD_Window_ID(windowId); @@ -101,7 +103,7 @@ public class TabElementHandler extends AbstractElementHandler { Element columnElement = element.properties.get(I_AD_Tab.COLUMNNAME_AD_Column_ID); int AD_Column_ID = 0; if (ReferenceUtils.isIDLookup(columnElement) || ReferenceUtils.isUUIDLookup(columnElement)) { - AD_Column_ID = ReferenceUtils.resolveReference(ctx, columnElement, getTrxName(ctx)); + AD_Column_ID = ReferenceUtils.resolveReference(ctx.ctx, columnElement, getTrxName(ctx)); } else if (columnElement.contents != null && columnElement.contents.length() > 0){ AD_Column_ID = findIdByColumnAndParentId (ctx, "AD_Column","ColumnName", columnElement.contents.toString(), "AD_Table", mTab.getAD_Table_ID()); @@ -111,7 +113,7 @@ public class TabElementHandler extends AbstractElementHandler { columnElement = element.properties.get(I_AD_Tab.COLUMNNAME_AD_ColumnSortOrder_ID); AD_Column_ID = 0; if (ReferenceUtils.isIDLookup(columnElement) || ReferenceUtils.isUUIDLookup(columnElement)) { - AD_Column_ID = ReferenceUtils.resolveReference(ctx, columnElement, getTrxName(ctx)); + AD_Column_ID = ReferenceUtils.resolveReference(ctx.ctx, columnElement, getTrxName(ctx)); } else if (columnElement.contents != null && columnElement.contents.length() > 0){ AD_Column_ID = findIdByColumnAndParentId (ctx, "AD_Column","ColumnName", columnElement.contents.toString(), "AD_Table", mTab.getAD_Table_ID()); @@ -121,7 +123,7 @@ public class TabElementHandler extends AbstractElementHandler { columnElement = element.properties.get(I_AD_Tab.COLUMNNAME_AD_ColumnSortYesNo_ID); AD_Column_ID = 0; if (ReferenceUtils.isIDLookup(columnElement) || ReferenceUtils.isUUIDLookup(columnElement)) { - AD_Column_ID = ReferenceUtils.resolveReference(ctx, columnElement, getTrxName(ctx)); + AD_Column_ID = ReferenceUtils.resolveReference(ctx.ctx, columnElement, getTrxName(ctx)); } else if (columnElement.contents != null && columnElement.contents.length() > 0){ AD_Column_ID = findIdByColumnAndParentId (ctx, "AD_Column","ColumnName", columnElement.contents.toString(), "AD_Table", mTab.getAD_Table_ID()); @@ -131,6 +133,7 @@ public class TabElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -150,7 +153,7 @@ public class TabElementHandler extends AbstractElementHandler { element.recordId = mTab.getAD_Tab_ID(); } else { logImportDetail (ctx, impDetail, 0, mTab.getName(), mTab.get_ID(),action); - throw new POSaveFailedException("Tab"); + throw new POSaveFailedException("Failed to save Tab " + mTab.getName()); } } } else { @@ -159,18 +162,28 @@ public class TabElementHandler extends AbstractElementHandler { } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - PackOut packOut = getPackOut(ctx); - int AD_Tab_ID = Env.getContextAsInt(ctx, X_AD_Tab.COLUMNNAME_AD_Tab_ID); - X_AD_Tab m_Tab = new X_AD_Tab (ctx, AD_Tab_ID, getTrxName(ctx)); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("","",I_AD_Tab.Table_Name,atts); - createTabBinding(ctx,document,m_Tab); + PackOut packOut = ctx.packOut; + int AD_Tab_ID = Env.getContextAsInt(ctx.ctx, "AD_Tab_ID"); + + boolean createElement = true; + X_AD_Tab m_Tab = new X_AD_Tab (ctx.ctx, AD_Tab_ID, getTrxName(ctx)); + if (ctx.packOut.getFromDate() != null) { + if (m_Tab.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + if (createElement) { + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("","",I_AD_Tab.Table_Name,atts); + createTabBinding(ctx,document,m_Tab); + } + //Fields tags. String sql = "SELECT AD_Field_ID FROM AD_FIELD WHERE AD_TAB_ID = " + AD_Tab_ID + "ORDER BY SEQNO asc"; @@ -193,7 +206,10 @@ public class TabElementHandler extends AbstractElementHandler { { DB.close(rs, pstmt); } - document.endElement("","",I_AD_Tab.Table_Name); + + if (createElement) { + document.endElement("","",X_AD_Tab.Table_Name); + } if(m_Tab.getAD_Process_ID() > 0 ) { @@ -210,14 +226,14 @@ public class TabElementHandler extends AbstractElementHandler { } - private void createField(Properties ctx, TransformerHandler document, + private void createField(PIPOContext ctx, TransformerHandler document, int AD_Field_ID) throws SAXException { - Env.setContext(ctx, X_AD_Field.COLUMNNAME_AD_Field_ID, AD_Field_ID); + Env.setContext(ctx.ctx, X_AD_Field.COLUMNNAME_AD_Field_ID, AD_Field_ID); fieldHandler.create(ctx, document); - ctx.remove(X_AD_Field.COLUMNNAME_AD_Field_ID); + ctx.ctx.remove(X_AD_Field.COLUMNNAME_AD_Field_ID); } - private void createTabBinding(Properties ctx, TransformerHandler document, X_AD_Tab m_Tab) + private void createTabBinding(PIPOContext ctx, TransformerHandler document, X_AD_Tab m_Tab) { PoExporter filler = new PoExporter(ctx, document, m_Tab); List excludes = defaultExcludeList(X_AD_Tab.Table_Name); @@ -232,8 +248,8 @@ public class TabElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_Tab.COLUMNNAME_AD_Tab_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_Tab.COLUMNNAME_AD_Tab_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_Tab.COLUMNNAME_AD_Tab_ID); + packout.getCtx().ctx.remove(I_AD_Tab.COLUMNNAME_AD_Tab_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TableElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TableElementHandler.java index 2fba140560..7c1bc576ca 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TableElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TableElementHandler.java @@ -20,13 +20,13 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.exceptions.AdempiereException; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.ElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackIn; @@ -49,12 +49,12 @@ public class TableElementHandler extends AbstractElementHandler { private Listtables = new ArrayList(); - public void startElement(Properties ctx, Element element) throws SAXException { - PackIn packIn = getPackIn(ctx); + public void startElement(PIPOContext ctx, Element element) throws SAXException { + PackIn packIn = ctx.packIn; List excludes = defaultExcludeList(X_AD_Table.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { MTable mTable = findPO(ctx, element); if (mTable == null) { @@ -70,7 +70,7 @@ public class TableElementHandler extends AbstractElementHandler { return; } - mTable = new MTable(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mTable = new MTable(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mTable.setTableName(tableName); } @@ -83,6 +83,7 @@ public class TableElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -105,7 +106,7 @@ public class TableElementHandler extends AbstractElementHandler { } else{ logImportDetail (ctx, impDetail, 0, mTable.getName(), mTable.get_ID(),action); - throw new POSaveFailedException("Table"); + throw new POSaveFailedException("Failed to save Table " + mTable.getName()); } } } else { @@ -113,22 +114,30 @@ public class TableElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Table_ID = Env.getContextAsInt(ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID); - PackOut packOut = getPackOut(ctx); + int AD_Table_ID = Env.getContextAsInt(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID); + PackOut packOut = ctx.packOut; boolean exported = isTableProcess(ctx, AD_Table_ID); AttributesImpl atts = new AttributesImpl(); //Export table if not already done so if (!exported){ - X_AD_Table m_Table = new X_AD_Table (ctx, AD_Table_ID, null); - addTypeName(atts, "table"); - document.startElement("","",I_AD_Table.Table_Name,atts); - createTableBinding(ctx,document,m_Table); + boolean createElement = true; + X_AD_Table m_Table = new X_AD_Table (ctx.ctx, AD_Table_ID, null); + if (ctx.packOut.getFromDate() != null) { + if (m_Table.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + if (createElement) { + addTypeName(atts, "table"); + document.startElement("","",I_AD_Table.Table_Name,atts); + createTableBinding(ctx,document,m_Table); + } String sql = "SELECT * FROM AD_Column WHERE AD_Table_ID = ? " + " ORDER BY IsKey DESC, AD_Column_ID"; // Export key column as the first one @@ -176,18 +185,21 @@ public class TableElementHandler extends AbstractElementHandler { } finally { DB.close(rs, pstmt); } - document.endElement("","",I_AD_Table.Table_Name); + + if (createElement) { + document.endElement("","",X_AD_Table.Table_Name); + } } } - private void createColumn(Properties ctx, TransformerHandler document, int AD_Column_ID) throws SAXException { - Env.setContext(ctx, X_AD_Column.COLUMNNAME_AD_Column_ID, AD_Column_ID); + private void createColumn(PIPOContext ctx, TransformerHandler document, int AD_Column_ID) throws SAXException { + Env.setContext(ctx.ctx, X_AD_Column.COLUMNNAME_AD_Column_ID, AD_Column_ID); columnHandler.create(ctx, document); - ctx.remove(X_AD_Column.COLUMNNAME_AD_Column_ID); + ctx.ctx.remove(X_AD_Column.COLUMNNAME_AD_Column_ID); } - private boolean isTableProcess(Properties ctx, int AD_Table_ID) { + private boolean isTableProcess(PIPOContext ctx, int AD_Table_ID) { if (tables.contains(AD_Table_ID)) return true; else { @@ -196,7 +208,7 @@ public class TableElementHandler extends AbstractElementHandler { } } - private void createTableBinding(Properties ctx, TransformerHandler document, X_AD_Table m_Table) + private void createTableBinding(PIPOContext ctx, TransformerHandler document, X_AD_Table m_Table) { PoExporter filler = new PoExporter(ctx, document, m_Table); if (m_Table.getAD_Table_ID() <= PackOut.MAX_OFFICIAL_ID) @@ -210,8 +222,8 @@ public class TableElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Table_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TaskAccessElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TaskAccessElementHandler.java index d70179aed9..db069d9a6a 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TaskAccessElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TaskAccessElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; @@ -39,7 +39,7 @@ import org.xml.sax.helpers.AttributesImpl; public class TaskAccessElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { int roleid =0; int taskid =0; List excludes = defaultExcludeList(X_AD_Task_Access.Table_Name); @@ -49,17 +49,28 @@ public class TaskAccessElementHandler extends AbstractElementHandler { if (getParentId(element, I_AD_Role.Table_Name) > 0) { roleid = getParentId(element, I_AD_Role.Table_Name); } else { - Element roleElement = element.properties.get(I_AD_Task_Access.COLUMNNAME_AD_Role_ID); - roleid = ReferenceUtils.resolveReference(ctx, roleElement, getTrxName(ctx)); + Element roleElement = element.properties.get("AD_Role_ID"); + roleid = ReferenceUtils.resolveReference(ctx.ctx, roleElement, getTrxName(ctx)); + } + + if (roleid <= 0) { + element.defer = true; + element.unresolved = "AD_Role_ID"; + return; } Element taskElement = element.properties.get(I_AD_Task_Access.COLUMNNAME_AD_Task_ID); - taskid = ReferenceUtils.resolveReference(ctx, taskElement, getTrxName(ctx)); + taskid = ReferenceUtils.resolveReference(ctx.ctx, taskElement, getTrxName(ctx)); + if (taskid <= 0) { + element.defer = true; + element.unresolved = "AD_Task_ID"; + return; + } - Query query = new Query(ctx, "AD_Task_Access", "AD_Role_ID=? and AD_Task_ID=?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, "AD_Task_Access", "AD_Role_ID=? and AD_Task_ID=?", getTrxName(ctx)); po = query.setParameters(new Object[]{roleid, taskid}).first(); if (po == null){ - po = new X_AD_Task_Access(ctx, 0, getTrxName(ctx)); + po = new X_AD_Task_Access(ctx.ctx, 0, getTrxName(ctx)); po.setAD_Role_ID(roleid); po.setAD_Task_ID(taskid); } @@ -70,35 +81,41 @@ public class TaskAccessElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } po.saveEx(); } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Task_ID = Env.getContextAsInt(ctx, X_AD_Task.COLUMNNAME_AD_Task_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Task_Access.Table_Name, atts); - createTaskAccessBinding(ctx, document, AD_Task_ID, AD_Role_ID); - document.endElement("", "", I_AD_Task_Access.Table_Name); + int AD_Task_ID = Env.getContextAsInt(ctx.ctx, X_AD_Task.COLUMNNAME_AD_Task_ID); + int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); + Query query = new Query(ctx.ctx, "AD_Task_Access", "AD_Role_ID=? and AD_Task_ID=?", getTrxName(ctx)); + X_AD_Task_Access po = query.setParameters(new Object[]{AD_Role_ID, AD_Task_ID}).first(); + if (po != null) { + if (ctx.packOut.getFromDate() != null) { + if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", I_AD_Task_Access.Table_Name, atts); + createTaskAccessBinding(ctx, document, po); + document.endElement("", "", I_AD_Task_Access.Table_Name); + } } - private void createTaskAccessBinding(Properties ctx, TransformerHandler document, - int taskid, int roleid) { - Query query = new Query(ctx, "AD_Task_Access", "AD_Role_ID=? and AD_Task_ID=?", getTrxName(ctx)); - X_AD_Task_Access po = query.setParameters(new Object[]{roleid, taskid}).first(); - if (po != null) { + private void createTaskAccessBinding(PIPOContext ctx, TransformerHandler document, + X_AD_Task_Access po) { PoExporter filler = new PoExporter(ctx, document, po); List excludes = defaultExcludeList(X_AD_Task_Access.Table_Name); filler.export(excludes); } - } @Override public void packOut(PackOut packout, TransformerHandler packoutHandler, diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TaskElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TaskElementHandler.java index 9037a06148..fdfdbd2325 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TaskElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/TaskElementHandler.java @@ -19,11 +19,11 @@ package org.adempiere.pipo2.handler; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -41,18 +41,18 @@ public class TaskElementHandler extends AbstractElementHandler { private List tasks = new ArrayList(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Task.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { MTask mTask = findPO(ctx, element); if (mTask == null) { String name = getStringValue(element, "Name"); int id = findIdByName(ctx, "AD_Task", name); - mTask = new MTask(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mTask = new MTask(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); } if (mTask.getAD_Task_ID() == 0 && isOfficialId(element, "AD_Task_ID")) @@ -62,6 +62,7 @@ public class TaskElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -81,7 +82,7 @@ public class TaskElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mTask.getName(), mTask.get_ID(), action); - throw new POSaveFailedException("Task"); + throw new POSaveFailedException("Failed to save Task " + mTask.getName()); } } } else { @@ -89,16 +90,21 @@ public class TaskElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Task_ID = Env.getContextAsInt(ctx, "AD_Task_ID"); + int AD_Task_ID = Env.getContextAsInt(ctx.ctx, "AD_Task_ID"); if (tasks.contains(AD_Task_ID)) return; tasks.add(AD_Task_ID); - X_AD_Task m_Task = new X_AD_Task(ctx, AD_Task_ID, null); + X_AD_Task m_Task = new X_AD_Task(ctx.ctx, AD_Task_ID, null); + if (ctx.packOut.getFromDate() != null) { + if (m_Task.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("", "", I_AD_Task.Table_Name, atts); @@ -107,7 +113,7 @@ public class TaskElementHandler extends AbstractElementHandler { } - private void createTaskBinding(Properties ctx, TransformerHandler document, + private void createTaskBinding(PIPOContext ctx, TransformerHandler document, X_AD_Task m_Task) { PoExporter filler = new PoExporter(ctx, document, m_Task); List excludes = defaultExcludeList(X_AD_Task.Table_Name); @@ -118,9 +124,9 @@ public class TaskElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Task.COLUMNNAME_AD_Task_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Task.COLUMNNAME_AD_Task_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Task.COLUMNNAME_AD_Task_ID); + packout.getCtx().ctx.remove(X_AD_Task.COLUMNNAME_AD_Task_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/UserRoleElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/UserRoleElementHandler.java index de676bb06b..9f6cabdc9b 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/UserRoleElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/UserRoleElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; @@ -38,7 +38,8 @@ import org.xml.sax.helpers.AttributesImpl; public class UserRoleElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) + throws SAXException { int roleid =0; int userid =0; int orgid =0; @@ -48,22 +49,34 @@ public class UserRoleElementHandler extends AbstractElementHandler { X_AD_User_Roles po = findPO(ctx, element); if (po == null) { Element userElement = element.properties.get(I_AD_User_Roles.COLUMNNAME_AD_User_ID); - userid = ReferenceUtils.resolveReference(ctx, userElement, getTrxName(ctx)); - - if (getParentId(element, "role") > 0) { - roleid = getParentId(element, "role"); + userid = ReferenceUtils.resolveReference(ctx.ctx, userElement, getTrxName(ctx)); + if (userid <= 0) { + element.defer = true; + element.unresolved = "AD_User_ID " + (userElement.contents != null ? userElement.contents.toString() : ""); + return; + } + if (getParentId(element, X_AD_Role.Table_Name) > 0) { + roleid = getParentId(element, X_AD_Role.Table_Name); } else { - Element roleElement = element.properties.get(I_AD_User_Roles.COLUMNNAME_AD_Role_ID); - roleid = ReferenceUtils.resolveReference(ctx, roleElement, getTrxName(ctx)); + Element roleElement = element.properties.get("AD_Role_ID"); + roleid = ReferenceUtils.resolveReference(ctx.ctx, roleElement, + getTrxName(ctx)); + } + + if (roleid <= 0) + { + element.defer = true; + element.unresolved = "AD_Role_ID"; + return; } Element orgElement = element.properties.get(I_AD_User_Roles.COLUMNNAME_AD_Org_ID); - orgid = ReferenceUtils.resolveReference(ctx, orgElement, getTrxName(ctx)); + orgid = ReferenceUtils.resolveReference(ctx.ctx, orgElement, getTrxName(ctx)); - Query query = new Query(ctx, "AD_User_Roles", "AD_User_ID = ? AND AD_Role_ID = ? AND AD_Org_ID = ?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, "AD_User_Roles", "AD_User_ID = ? AND AD_Role_ID = ? AND AD_Org_ID = ?", getTrxName(ctx)); po = query.setParameters(new Object[]{userid, roleid, orgid}).first(); if (po == null) { - po = new X_AD_User_Roles(ctx, 0, getTrxName(ctx)); + po = new X_AD_User_Roles(ctx.ctx, 0, getTrxName(ctx)); po.setAD_Org_ID(orgid); po.setAD_Role_ID(roleid); po.setAD_User_ID(userid); @@ -76,33 +89,49 @@ public class UserRoleElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } po.saveEx(); } - public void endElement(Properties ctx, Element element) throws SAXException { - } - - public void create(Properties ctx, TransformerHandler document) + public void endElement(PIPOContext ctx, Element element) throws SAXException { - int AD_User_ID = Env.getContextAsInt(ctx, X_AD_User.COLUMNNAME_AD_User_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - int AD_Org_ID = Env.getContextAsInt(ctx, "AD_Org_ID"); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_User_Roles.Table_Name, atts); - createUserAssignBinding(ctx, document, AD_User_ID,AD_Role_ID, AD_Org_ID); - document.endElement("", "", I_AD_User_Roles.Table_Name); } - private void createUserAssignBinding(Properties ctx, TransformerHandler document, - int user_id, int role_id, int org_id) { + public void create(PIPOContext ctx, TransformerHandler document) + throws SAXException { + int AD_User_ID = Env.getContextAsInt(ctx.ctx, X_AD_User.COLUMNNAME_AD_User_ID); + int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); + int AD_Org_ID = Env.getContextAsInt(ctx.ctx, "AD_Org_ID"); + Query query = new Query(ctx.ctx, "AD_User_Roles", + "AD_User_ID = ? AND AD_Role_ID = ? AND AD_Org_ID = ?", getTrxName(ctx)); + X_AD_User_Roles po = query.setParameters( + new Object[] { AD_User_ID, AD_Role_ID, AD_Org_ID }).first(); + if (po != null) { + if (ctx.packOut.getFromDate() != null) { + if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", I_AD_User_Roles.Table_Name, atts); + createUserAssignBinding(ctx, document, po); + document.endElement("", "", I_AD_User_Roles.Table_Name); + } + } - Query query = new Query(ctx, "AD_User_Roles", "AD_User_ID = ? AND AD_Role_ID = ? AND AD_Org_ID = ?", getTrxName(ctx)); - X_AD_User_Roles po = query.setParameters(new Object[]{user_id, role_id, org_id}).first(); + private void createUserAssignBinding(PIPOContext ctx, + TransformerHandler document, X_AD_User_Roles po) { PoExporter filler = new PoExporter(ctx, document, po); + + AttributesImpl orgRefAtts = new AttributesImpl(); + String orgReference = ReferenceUtils.getTableReference("AD_Org", "Name", po.getAD_Org_ID(), orgRefAtts); + filler.addString("AD_Org_ID", orgReference, orgRefAtts); + List excludes = defaultExcludeList(X_AD_User_Roles.Table_Name); + excludes.add("AD_Org_ID"); filler.export(excludes); } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WindowAccessElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WindowAccessElementHandler.java index 423fefabb4..f4820baeb4 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WindowAccessElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WindowAccessElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; @@ -39,7 +39,7 @@ import org.xml.sax.helpers.AttributesImpl; public class WindowAccessElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { int roleid =0; int windowid =0; List excludes = defaultExcludeList(X_AD_Window_Access.Table_Name); @@ -50,24 +50,26 @@ public class WindowAccessElementHandler extends AbstractElementHandler { roleid = getParentId(element, I_AD_Role.Table_Name); } else { Element roleElement = element.properties.get(I_AD_Window_Access.COLUMNNAME_AD_Role_ID); - roleid = ReferenceUtils.resolveReference(ctx, roleElement, getTrxName(ctx)); + roleid = ReferenceUtils.resolveReference(ctx.ctx, roleElement, getTrxName(ctx)); } if (roleid <= 0) { element.defer = true; + element.unresolved = "AD_Role_ID"; return; } Element windowElement = element.properties.get(I_AD_Window_Access.COLUMNNAME_AD_Window_ID); - windowid = ReferenceUtils.resolveReference(ctx, windowElement, getTrxName(ctx)); + windowid = ReferenceUtils.resolveReference(ctx.ctx, windowElement, getTrxName(ctx)); if (windowid <= 0) { element.defer = true; + element.unresolved = "AD_Window_ID"; return; } - Query query = new Query(ctx, "AD_Window_Access", "AD_Role_ID=? and AD_Window_ID=?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, "AD_Window_Access", "AD_Role_ID=? and AD_Window_ID=?", getTrxName(ctx)); po = query.setParameters(new Object[]{roleid, windowid}).first(); if (po == null) { - po = new X_AD_Window_Access(ctx, 0, getTrxName(ctx)); + po = new X_AD_Window_Access(ctx.ctx, 0, getTrxName(ctx)); po.setAD_Role_ID(roleid); po.setAD_Window_ID(windowid); } @@ -76,30 +78,37 @@ public class WindowAccessElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } po.saveEx(); } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Window_ID = Env.getContextAsInt(ctx, X_AD_Window.COLUMNNAME_AD_Window_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Window_Access.Table_Name, atts); - createWindowAccessBinding(ctx, document, AD_Window_ID, AD_Role_ID); - document.endElement("", "", I_AD_Window_Access.Table_Name); + int AD_Window_ID = Env.getContextAsInt(ctx.ctx, X_AD_Window.COLUMNNAME_AD_Window_ID); + int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); + Query query = new Query(ctx.ctx, "AD_Window_Access", "AD_Role_ID=? and AD_Window_ID=?", getTrxName(ctx)); + X_AD_Window_Access po = query.setParameters(new Object[]{AD_Role_ID, AD_Window_ID}).first(); + if (po != null) { + if (ctx.packOut.getFromDate() != null) { + if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", I_AD_Window_Access.Table_Name, atts); + createWindowAccessBinding(ctx, document, po); + document.endElement("", "", I_AD_Window_Access.Table_Name); + } } - private void createWindowAccessBinding(Properties ctx, TransformerHandler document, - int window_id, int role_id) { - - Query query = new Query(ctx, "AD_Window_Access", "AD_Role_ID=? and AD_Window_ID=?", getTrxName(ctx)); - X_AD_Window_Access po = query.setParameters(new Object[]{role_id, window_id}).first(); + private void createWindowAccessBinding(PIPOContext ctx, TransformerHandler document, + X_AD_Window_Access po) { PoExporter filler = new PoExporter(ctx, document, po); List excludes = defaultExcludeList(X_AD_Window_Access.Table_Name); diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WindowElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WindowElementHandler.java index f3b9730516..a5b9b2b41c 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WindowElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WindowElementHandler.java @@ -21,19 +21,21 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import java.util.logging.Level; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.ElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoFiller; import org.adempiere.pipo2.exception.DatabaseAccessException; import org.adempiere.pipo2.exception.POSaveFailedException; +import org.compiere.model.I_AD_Color; +import org.compiere.model.I_AD_Image; import org.compiere.model.I_AD_Window; import org.compiere.model.MWindow; import org.compiere.model.X_AD_Package_Exp_Detail; @@ -53,12 +55,12 @@ public class WindowElementHandler extends AbstractElementHandler { private List windows = new ArrayList(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Window.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { MWindow mWindow = findPO(ctx, element); if (mWindow == null) { String name = getStringValue(element, "Name", excludes); @@ -67,7 +69,7 @@ public class WindowElementHandler extends AbstractElementHandler { return; } - mWindow = new MWindow(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mWindow = new MWindow(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mWindow.setName(name); } else { if (windows.contains(mWindow.getAD_Window_ID())) { @@ -83,6 +85,7 @@ public class WindowElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -104,7 +107,7 @@ public class WindowElementHandler extends AbstractElementHandler { } else { logImportDetail(ctx, impDetail, 0, mWindow.getName(), mWindow .get_ID(), action); - throw new POSaveFailedException("Window"); + throw new POSaveFailedException("Failed to save Window " + mWindow.getName()); } } } else { @@ -112,19 +115,48 @@ public class WindowElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Window_ID = Env.getContextAsInt(ctx, "AD_Window_ID"); - PackOut packOut = (PackOut) ctx.get("PackOutProcess"); + int AD_Window_ID = Env.getContextAsInt(ctx.ctx, "AD_Window_ID"); + PackOut packOut = ctx.packOut; - X_AD_Window m_Window = new X_AD_Window(ctx, AD_Window_ID, null); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Window.Table_Name, atts); - createWindowBinding(ctx, document, m_Window); + boolean createElement = true; + X_AD_Window m_Window = new X_AD_Window(ctx.ctx, AD_Window_ID, null); + if (ctx.packOut.getFromDate() != null) { + if (m_Window.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + createElement = false; + } + } + + //export color + if (m_Window.getAD_Color_ID() > 0) { + ElementHandler handler = ctx.packOut.getHandler(I_AD_Color.Table_Name); + try { + handler.packOut(ctx.packOut, document, null, m_Window.getAD_Color_ID()); + } catch (Exception e) { + throw new SAXException(e); + } + } + + //export image + if (m_Window.getAD_Image_ID() > 0) { + ElementHandler handler = ctx.packOut.getHandler(I_AD_Image.Table_Name); + try { + handler.packOut(ctx.packOut, document, null, m_Window.getAD_Image_ID()); + } catch (Exception e) { + throw new SAXException(e); + } + } + + if (createElement) { + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", I_AD_Window.Table_Name, atts); + createWindowBinding(ctx, document, m_Window); + } // Tab Tag String sql = "SELECT AD_Tab_ID, AD_Table_ID FROM AD_TAB WHERE AD_WINDOW_ID = " + AD_Window_ID; @@ -153,10 +185,9 @@ public class WindowElementHandler extends AbstractElementHandler { DB.close(rs, pstmt); } - //TODO: export of ad_image and ad_color use - - // Loop tags. - document.endElement("", "", I_AD_Window.Table_Name); + if (createElement) { + document.endElement("", "", X_AD_Window.Table_Name); + } // Preference Tag sql = "SELECT AD_Preference_ID FROM AD_PREFERENCE WHERE AD_WINDOW_ID = ?"; @@ -184,22 +215,22 @@ public class WindowElementHandler extends AbstractElementHandler { } } - private void createPreference(Properties ctx, TransformerHandler document, + private void createPreference(PIPOContext ctx, TransformerHandler document, int AD_Preference_ID) throws SAXException { - Env.setContext(ctx, X_AD_Preference.COLUMNNAME_AD_Preference_ID, + Env.setContext(ctx.ctx, X_AD_Preference.COLUMNNAME_AD_Preference_ID, AD_Preference_ID); preferenceHandler.create(ctx, document); - ctx.remove(X_AD_Preference.COLUMNNAME_AD_Preference_ID); + ctx.ctx.remove(X_AD_Preference.COLUMNNAME_AD_Preference_ID); } - private void createTab(Properties ctx, TransformerHandler document, + private void createTab(PIPOContext ctx, TransformerHandler document, int AD_Tab_ID) throws SAXException { - Env.setContext(ctx, X_AD_Tab.COLUMNNAME_AD_Tab_ID, AD_Tab_ID); + Env.setContext(ctx.ctx, X_AD_Tab.COLUMNNAME_AD_Tab_ID, AD_Tab_ID); tabHandler.create(ctx, document); - ctx.remove(X_AD_Tab.COLUMNNAME_AD_Tab_ID); + ctx.ctx.remove(X_AD_Tab.COLUMNNAME_AD_Tab_ID); } - private void createWindowBinding(Properties ctx, TransformerHandler document, + private void createWindowBinding(PIPOContext ctx, TransformerHandler document, X_AD_Window m_Window) { PoExporter filler = new PoExporter(ctx, document, m_Window); List excludes = defaultExcludeList(X_AD_Window.Table_Name); @@ -212,8 +243,8 @@ public class WindowElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Window_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Window_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Window_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Window_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowAccessElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowAccessElementHandler.java index 0cfe314acf..0a39808222 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowAccessElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowAccessElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackOut; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; @@ -34,32 +34,43 @@ import org.compiere.model.X_AD_Role; import org.compiere.model.X_AD_Workflow; import org.compiere.model.X_AD_Workflow_Access; import org.compiere.util.Env; +import org.compiere.wf.MWorkflowAccess; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; public class WorkflowAccessElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { + public void startElement(PIPOContext ctx, Element element) throws SAXException { int roleid =0; int workflowid =0; List excludes = defaultExcludeList(X_AD_Workflow_Access.Table_Name); - X_AD_Workflow_Access po = findPO(ctx, element); + MWorkflowAccess po = findPO(ctx, element); if (po == null) { if (getParentId(element, I_AD_Role.Table_Name) > 0) { roleid = getParentId(element, I_AD_Role.Table_Name); } else { Element roleElement = element.properties.get(I_AD_Workflow_Access.COLUMNNAME_AD_Role_ID); - roleid = ReferenceUtils.resolveReference(ctx, roleElement, getTrxName(ctx)); + roleid = ReferenceUtils.resolveReference(ctx.ctx, roleElement, getTrxName(ctx)); + } + + if (roleid <= 0) { + element.defer = true; + element.unresolved = "AD_Role_ID"; + return; } Element wfElement = element.properties.get(I_AD_Workflow_Access.COLUMNNAME_AD_Workflow_ID); - workflowid = ReferenceUtils.resolveReference(ctx, wfElement, getTrxName(ctx)); + workflowid = ReferenceUtils.resolveReference(ctx.ctx, wfElement, getTrxName(ctx)); + if (workflowid <= 0) { + element.defer = true; + element.unresolved = "AD_Workflow_ID"; + } - Query query = new Query(ctx, "AD_Workflow_Access", "AD_Role_ID=? and AD_Workflow_ID=?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, "AD_Workflow_Access", "AD_Role_ID=? and AD_Workflow_ID=?", getTrxName(ctx)); po = query.setParameters(new Object[]{roleid, workflowid}).first(); if (po == null) { - po = new X_AD_Workflow_Access(ctx, 0, getTrxName(ctx)); + po = new MWorkflowAccess(ctx.ctx, 0, getTrxName(ctx)); po.setAD_Role_ID(roleid); po.setAD_Workflow_ID(workflowid); } @@ -71,31 +82,38 @@ public class WorkflowAccessElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } po.saveEx(); } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Workflow_ID = Env.getContextAsInt(ctx, X_AD_Workflow.COLUMNNAME_AD_Workflow_ID); - int AD_Role_ID = Env.getContextAsInt(ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); - AttributesImpl atts = new AttributesImpl(); - addTypeName(atts, "table"); - document.startElement("", "", I_AD_Workflow_Access.Table_Name, atts); - createWorkflowAccessBinding(ctx, document, AD_Workflow_ID, AD_Role_ID); - document.endElement("", "", I_AD_Workflow_Access.Table_Name); + int AD_Workflow_ID = Env.getContextAsInt(ctx.ctx, X_AD_Workflow.COLUMNNAME_AD_Workflow_ID); + int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID); + MWorkflowAccess po = null; + Query query = new Query(ctx.ctx, "AD_Workflow_Access", "AD_Role_ID=? and AD_Workflow_ID=?", getTrxName(ctx)); + po = query.setParameters(new Object[]{AD_Role_ID, AD_Workflow_ID}).first(); + if (po != null) { + if (ctx.packOut.getFromDate() != null) { + if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } + AttributesImpl atts = new AttributesImpl(); + addTypeName(atts, "table"); + document.startElement("", "", I_AD_Workflow_Access.Table_Name, atts); + createWorkflowAccessBinding(ctx, document, po); + document.endElement("", "", I_AD_Workflow_Access.Table_Name); + } } - - private void createWorkflowAccessBinding(Properties ctx, TransformerHandler document, - int workflow_id, int role_id) { - - X_AD_Workflow_Access po = null; - Query query = new Query(ctx, "AD_Workflow_Access", "AD_Role_ID=? and AD_Workflow_ID=?", getTrxName(ctx)); - po = query.setParameters(new Object[]{role_id, workflow_id}).first(); + + private void createWorkflowAccessBinding(PIPOContext ctx, TransformerHandler document, + MWorkflowAccess po) { PoExporter filler = new PoExporter(ctx, document, po); List excludes = defaultExcludeList(X_AD_Workflow_Access.Table_Name); diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowElementHandler.java index 22824fba3e..39a2dbec01 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowElementHandler.java @@ -20,12 +20,12 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.exceptions.DBException; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -52,12 +52,12 @@ public class WorkflowElementHandler extends AbstractElementHandler { private List workflows = new ArrayList(); - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_Workflow.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { + if (isProcessElement(ctx.ctx, entitytype)) { MWorkflow mWorkflow = findPO(ctx, element); if (mWorkflow == null) { @@ -68,7 +68,7 @@ public class WorkflowElementHandler extends AbstractElementHandler { return; } - mWorkflow = new MWorkflow(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mWorkflow = new MWorkflow(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mWorkflow.setValue(workflowValue); } @@ -78,6 +78,7 @@ public class WorkflowElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -102,7 +103,7 @@ public class WorkflowElementHandler extends AbstractElementHandler { log.info("m_Workflow save failure"); logImportDetail(ctx, impDetail, 0, mWorkflow.getName(), mWorkflow .get_ID(), action); - throw new POSaveFailedException("MWorkflow"); + throw new POSaveFailedException("Failed to save MWorkflow " + mWorkflow.getName()); } } } else { @@ -114,12 +115,12 @@ public class WorkflowElementHandler extends AbstractElementHandler { * @param ctx * @param element */ - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { if (!element.defer && !element.skip && element.recordId > 0) { //set start node String value = getStringValue(element, "AD_WF_Node.Value"); if (value != null && value.trim().length() > 0) { - MWorkflow m_Workflow = new MWorkflow(ctx, element.recordId, getTrxName(ctx)); + MWorkflow m_Workflow = new MWorkflow(ctx.ctx, element.recordId, getTrxName(ctx)); int id = findIdByColumnAndParentId(ctx, "AD_WF_Node", "Value", value, "AD_Workflow", m_Workflow.getAD_Workflow_ID()); if (id <= 0) { log.warning("Failed to resolve start node reference for workflow element. Workflow=" @@ -141,15 +142,15 @@ public class WorkflowElementHandler extends AbstractElementHandler { log.info("m_Workflow update fail"); logImportDetail(ctx, impDetail, 0, m_Workflow.getName(), m_Workflow .get_ID(), "Update"); - throw new POSaveFailedException("MWorkflow"); + throw new POSaveFailedException("Failed to save MWorkflow " + m_Workflow.getName()); } } } } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_Workflow_ID = Env.getContextAsInt(ctx, + int AD_Workflow_ID = Env.getContextAsInt(ctx.ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Workflow_ID); if (workflows.contains(AD_Workflow_ID)) return; @@ -159,18 +160,30 @@ public class WorkflowElementHandler extends AbstractElementHandler { int ad_wf_nodenextcondition_id = 0; AttributesImpl atts = new AttributesImpl(); - X_AD_Workflow m_Workflow = new X_AD_Workflow(ctx, + boolean creatElement = true; + MWorkflow m_Workflow = new MWorkflow(ctx.ctx, AD_Workflow_ID, null); + if (ctx.packOut.getFromDate() != null) { + if (m_Workflow.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + creatElement = false; + } + } + if (creatElement) { + atts.addAttribute("", "", "type", "CDATA", "object"); + atts.addAttribute("", "", "type-name", "CDATA", "ad.workflow"); + document.startElement("", "", I_AD_Workflow.Table_Name, atts); + createWorkflowBinding(ctx, document, m_Workflow); + } - atts.addAttribute("", "", "type", "CDATA", "object"); - atts.addAttribute("", "", "type-name", "CDATA", "ad.workflow"); - document.startElement("", "", I_AD_Workflow.Table_Name, atts); - createWorkflowBinding(ctx, document, m_Workflow); String sql = "SELECT AD_WF_Node_ID FROM AD_WF_Node WHERE AD_Workflow_ID = " + AD_Workflow_ID; PreparedStatement pstmt = null; + PreparedStatement psNodeNext = null; + PreparedStatement psNCondition = null; ResultSet rs = null; + ResultSet nodeNextrs = null; + ResultSet nodeNConditionrs = null; try { pstmt = DB.prepareStatement(sql, getTrxName(ctx)); // Generated workflowNodeNext(s) and @@ -179,20 +192,18 @@ public class WorkflowElementHandler extends AbstractElementHandler { while (rs.next()) { int nodeId = rs.getInt("AD_WF_Node_ID"); createNode(ctx, document, nodeId); - - ad_wf_nodenext_id = 0; - - sql = "SELECT ad_wf_nodenext_id from ad_wf_nodenext WHERE ad_wf_node_id = ?"; - ad_wf_nodenext_id = DB.getSQLValue(null, sql, nodeId); - if (ad_wf_nodenext_id > 0) { + sql = "SELECT ad_wf_nodenext_id from ad_wf_nodenext WHERE ad_wf_node_id =" +nodeId; + psNodeNext = DB.prepareStatement(sql, getTrxName(ctx)); + nodeNextrs = psNodeNext.executeQuery(); + while (nodeNextrs.next()){ + ad_wf_nodenext_id = nodeNextrs.getInt("AD_WF_NodeNext_ID"); createNodeNext(ctx, document, ad_wf_nodenext_id); - - ad_wf_nodenextcondition_id = 0; - sql = "SELECT ad_wf_nextcondition_id from ad_wf_nextcondition WHERE ad_wf_nodenext_id = ?"; - ad_wf_nodenextcondition_id = DB.getSQLValue(null, sql, nodeId); - log.info("ad_wf_nodenextcondition_id: " - + String.valueOf(ad_wf_nodenextcondition_id)); - if (ad_wf_nodenextcondition_id > 0) { + sql = "SELECT ad_wf_nextcondition_id from ad_wf_nextcondition WHERE ad_wf_nodenext_id =" + ad_wf_nodenext_id; + psNCondition = DB.prepareStatement(sql, getTrxName(ctx)); + nodeNConditionrs = psNCondition.executeQuery(); + while (nodeNConditionrs.next()) { + ad_wf_nodenextcondition_id= nodeNConditionrs.getInt("AD_WF_NextCondition_ID"); + log.info("ad_wf_nodenextcondition_id: "+ String.valueOf(ad_wf_nodenextcondition_id)); createNodeNextCondition(ctx, document, ad_wf_nodenextcondition_id); } } @@ -201,37 +212,41 @@ public class WorkflowElementHandler extends AbstractElementHandler { throw new DBException(e); } finally { DB.close(rs, pstmt); - document.endElement("", "", I_AD_Workflow.Table_Name); + DB.close(nodeNextrs, psNodeNext); + DB.close(nodeNConditionrs,psNCondition); + if (creatElement) { + document.endElement("", "", MWorkflow.Table_Name); + } } } - private void createNodeNextCondition(Properties ctx, + private void createNodeNextCondition(PIPOContext ctx, TransformerHandler document, int ad_wf_nodenextcondition_id) throws SAXException { - Env.setContext(ctx, + Env.setContext(ctx.ctx, X_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID, ad_wf_nodenextcondition_id); nextConditionHandler.create(ctx, document); - ctx.remove(X_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID); + ctx.ctx.remove(X_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID); } - private void createNodeNext(Properties ctx, TransformerHandler document, + private void createNodeNext(PIPOContext ctx, TransformerHandler document, int ad_wf_nodenext_id) throws SAXException { - Env.setContext(ctx, X_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID, + Env.setContext(ctx.ctx, X_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID, ad_wf_nodenext_id); nodeNextHandler.create(ctx, document); - ctx.remove(X_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID); + ctx.ctx.remove(X_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID); } - private void createNode(Properties ctx, TransformerHandler document, + private void createNode(PIPOContext ctx, TransformerHandler document, int AD_WF_Node_ID) throws SAXException { - Env.setContext(ctx, X_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID, + Env.setContext(ctx.ctx, X_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID, AD_WF_Node_ID); nodeHandler.create(ctx, document); - ctx.remove(X_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID); + ctx.ctx.remove(X_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID); } - private void createWorkflowBinding(Properties ctx, TransformerHandler document, X_AD_Workflow m_Workflow) { + private void createWorkflowBinding(PIPOContext ctx, TransformerHandler document, MWorkflow m_Workflow) { PoExporter filler = new PoExporter(ctx, document, m_Workflow); List excludes = defaultExcludeList(X_AD_Workflow.Table_Name); @@ -244,8 +259,8 @@ public class WorkflowElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - Env.setContext(packout.getCtx(), X_AD_Package_Exp_Detail.COLUMNNAME_AD_Workflow_ID, recordId); + Env.setContext(packout.getCtx().ctx, X_AD_Package_Exp_Detail.COLUMNNAME_AD_Workflow_ID, recordId); this.create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Workflow_ID); + packout.getCtx().ctx.remove(X_AD_Package_Exp_Detail.COLUMNNAME_AD_Workflow_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeElementHandler.java index 8fbe739a71..b641aa561f 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeElementHandler.java @@ -18,11 +18,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -35,35 +35,37 @@ import org.compiere.model.X_AD_Package_Imp_Detail; import org.compiere.model.X_AD_WF_Node; import org.compiere.util.DB; import org.compiere.util.Env; +import org.compiere.wf.MWFNode; +import org.compiere.wf.MWorkflow; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; public class WorkflowNodeElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_WF_Node.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { - if (isParentSkip(element, null)) { + if (isProcessElement(ctx.ctx, entitytype)) { + /*if (isParentSkip(element, null)) { element.skip = true; return; - } - if (isParentDefer(element, I_AD_Workflow.Table_Name)) { + }*/ + if (isParentDefer(element, MWorkflow.Table_Name)) { element.unresolved = "Parent element mark as defer: " + getStringValue(element, "AD_Workflow.Value"); element.defer = true; return; } - X_AD_WF_Node mWFNode = findPO(ctx, element); + MWFNode mWFNode = findPO(ctx, element); if (mWFNode == null) { int workflowId = 0; Element wfElement = element.properties.get(I_AD_WF_Node.COLUMNNAME_AD_Workflow_ID); if (getParentId(element, I_AD_Workflow.Table_Name) > 0) { workflowId = getParentId(element, I_AD_Workflow.Table_Name); } else { - workflowId = ReferenceUtils.resolveReference(ctx, wfElement, getTrxName(ctx)); + workflowId = ReferenceUtils.resolveReference(ctx.ctx, wfElement, getTrxName(ctx)); } if (workflowId <= 0) { element.defer = true; @@ -76,7 +78,7 @@ public class WorkflowNodeElementHandler extends AbstractElementHandler { "SELECT AD_WF_Node_ID FROM AD_WF_Node WHERE AD_Workflow_ID=? and Value =?"); int id = DB.getSQLValue(getTrxName(ctx), sqlB.toString(), workflowId, workflowNodeValue); - mWFNode = new X_AD_WF_Node(ctx, id > 0 ? id : 0, getTrxName(ctx)); + mWFNode = new MWFNode(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); mWFNode.setValue(workflowNodeValue); mWFNode.setAD_Workflow_ID(workflowId); excludes.add(I_AD_WF_Node.COLUMNNAME_AD_Workflow_ID); @@ -87,6 +89,7 @@ public class WorkflowNodeElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -110,7 +113,7 @@ public class WorkflowNodeElementHandler extends AbstractElementHandler { log.info("m_WFNode save failure"); logImportDetail(ctx, impDetail, 0, mWFNode.getName(), mWFNode .get_ID(), action); - throw new POSaveFailedException("WorkflowNode"); + throw new POSaveFailedException("Failed to save WorkflowNode " + mWFNode.getName()); } } } else { @@ -118,25 +121,29 @@ public class WorkflowNodeElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int AD_WF_Node_ID = Env.getContextAsInt(ctx, + int AD_WF_Node_ID = Env.getContextAsInt(ctx.ctx, X_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID); AttributesImpl atts = new AttributesImpl(); - X_AD_WF_Node m_WF_Node = new X_AD_WF_Node(ctx, AD_WF_Node_ID, + MWFNode m_WF_Node = new MWFNode(ctx.ctx, AD_WF_Node_ID, getTrxName(ctx)); - + if (ctx.packOut.getFromDate() != null) { + if (m_WF_Node.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } addTypeName(atts, "table"); document.startElement("", "", I_AD_WF_Node.Table_Name, atts); createWorkflowNodeBinding(ctx, document, m_WF_Node); document.endElement("", "", I_AD_WF_Node.Table_Name); } - private void createWorkflowNodeBinding(Properties ctx, TransformerHandler document, - X_AD_WF_Node m_WF_Node) { + private void createWorkflowNodeBinding(PIPOContext ctx, TransformerHandler document, + MWFNode m_WF_Node) { PoExporter filler = new PoExporter(ctx, document, m_WF_Node); List excludes = defaultExcludeList(X_AD_WF_Node.Table_Name); @@ -150,8 +157,8 @@ public class WorkflowNodeElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID); + packout.getCtx().ctx.remove(I_AD_WF_Node.COLUMNNAME_AD_WF_Node_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeNextConditionElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeNextConditionElementHandler.java index dfb516f451..fd92a9494c 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeNextConditionElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeNextConditionElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -30,27 +30,30 @@ import org.adempiere.pipo2.ReferenceUtils; import org.adempiere.pipo2.exception.POSaveFailedException; import org.compiere.model.I_AD_WF_NextCondition; import org.compiere.model.I_AD_Workflow; +import org.compiere.model.MColumn; import org.compiere.model.X_AD_Package_Imp_Detail; import org.compiere.model.X_AD_WF_NextCondition; import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.wf.MWFNextCondition; +import org.compiere.wf.MWFNode; +import org.compiere.wf.MWFNodeNext; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; public class WorkflowNodeNextConditionElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) + public void startElement(PIPOContext ctx, Element element) throws SAXException { List excludes = defaultExcludeList(X_AD_WF_NextCondition.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { - if (isParentSkip(element, null)) { + if (isProcessElement(ctx.ctx, entitytype)) { + /* if (isParentSkip(element, null)) { element.skip = true; return; - } + }*/ MWFNextCondition mWFNodeNextCondition = findPO(ctx, element); if (mWFNodeNextCondition == null) { @@ -59,7 +62,7 @@ public class WorkflowNodeNextConditionElementHandler extends if (getParentId(element, I_AD_Workflow.Table_Name) > 0) { workflowId = getParentId(element, I_AD_Workflow.Table_Name); } else { - workflowId = ReferenceUtils.resolveReference(ctx, wfElement, getTrxName(ctx)); + workflowId = ReferenceUtils.resolveReference(ctx.ctx, wfElement, getTrxName(ctx)); } if (workflowId <= 0) { element.defer = true; @@ -67,36 +70,20 @@ public class WorkflowNodeNextConditionElementHandler extends return; } - int AD_WF_NodeNext_ID = 0; - Element nodeNextElement = element.properties.get(I_AD_WF_NextCondition.COLUMNNAME_AD_WF_NodeNext_ID); - if (ReferenceUtils.isIDLookup(nodeNextElement) || ReferenceUtils.isUUIDLookup(nodeNextElement)) { - AD_WF_NodeNext_ID = ReferenceUtils.resolveReference(ctx, nodeNextElement, getTrxName(ctx)); - } else { - Element wfnElement = element.properties.get("AD_WF_Node_ID"); - int wfNodeId = ReferenceUtils.resolveReference(ctx, wfnElement, getTrxName(ctx)); - if (wfNodeId <= 0) { - element.unresolved = "AD_WF_Node=" + wfnElement.contents; - element.defer = true; - return; - } - - Element nextElement = element.properties.get("AD_WF_Next_ID"); - int wfNodeNextId = ReferenceUtils.resolveReference(ctx, nextElement, getTrxName(ctx)); - if (wfNodeNextId <= 0) { - element.unresolved = "AD_WF_Node=" + nextElement.contents; - element.defer = true; - return; - } - - String sql = "SELECT AD_WF_NodeNext_ID FROM AD_WF_NodeNext WHERE AD_WF_Node_ID =? and AD_WF_Next_ID =?"; - AD_WF_NodeNext_ID = DB.getSQLValue(getTrxName(ctx), sql, wfNodeId, wfNodeNextId); + Element nextElement = element.properties.get("AD_WF_NodeNext_ID"); + int wfNodeNextId = ReferenceUtils.resolveReference(ctx.ctx, nextElement, getTrxName(ctx)); + if (wfNodeNextId <= 0) { + element.unresolved = "AD_WF_NodeNext=" + nextElement.contents; + element.defer = true; + return; } - String sql = "SELECT AD_WF_NextCondition_ID FROM AD_WF_NextCondition WHERE AD_WF_NodeNext_ID =?"; - int id = DB.getSQLValue(getTrxName(ctx), sql, AD_WF_NodeNext_ID); + int seqNo = getIntValue(element, "SeqNo"); + String sql = "SELECT AD_WF_NextCondition_ID FROM AD_WF_NextCondition WHERE AD_WF_NodeNext_ID =? AND SeqNo=?"; + int id = DB.getSQLValue(getTrxName(ctx), sql, new Object[] {wfNodeNextId, seqNo}); - mWFNodeNextCondition = new MWFNextCondition(ctx, id > 0 ? id : 0, getTrxName(ctx)); - mWFNodeNextCondition.setAD_WF_NodeNext_ID(AD_WF_NodeNext_ID); + mWFNodeNextCondition = new MWFNextCondition(ctx.ctx, id > 0 ? id : 0, getTrxName(ctx)); + mWFNodeNextCondition.setAD_WF_NodeNext_ID(wfNodeNextId); } PoFiller filler = new PoFiller(ctx, mWFNodeNextCondition, element, this); @@ -107,9 +94,9 @@ public class WorkflowNodeNextConditionElementHandler extends Element columnElement = element.properties.get("AD_Column_ID"); int columnId = 0; if (ReferenceUtils.isIDLookup(columnElement) || ReferenceUtils.isUUIDLookup(columnElement)) { - columnId = ReferenceUtils.resolveReference(ctx, columnElement, getTrxName(ctx)); + columnId = ReferenceUtils.resolveReference(ctx.ctx, columnElement, getTrxName(ctx)); } else { - int AD_Table_ID = ReferenceUtils.resolveReference(ctx, tableElement, getTrxName(ctx)); + int AD_Table_ID = ReferenceUtils.resolveReference(ctx.ctx, tableElement, getTrxName(ctx)); columnId = findIdByColumnAndParentId(ctx, "AD_Column", "ColumnName", columnElement.contents.toString(), "AD_Table", AD_Table_ID); } mWFNodeNextCondition.setAD_Column_ID(columnId); @@ -117,6 +104,7 @@ public class WorkflowNodeNextConditionElementHandler extends List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -149,7 +137,7 @@ public class WorkflowNodeNextConditionElementHandler extends String.valueOf(mWFNodeNextCondition.get_ID()), mWFNodeNextCondition.get_ID(), action); - throw new POSaveFailedException("WorkflowNodeNextCondition"); + throw new POSaveFailedException("Failed to save WorkflowNodeNextCondition"); } } } else { @@ -157,15 +145,19 @@ public class WorkflowNodeNextConditionElementHandler extends } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int ad_wf_nodenextcondition_id = Env.getContextAsInt(ctx, - X_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID); - X_AD_WF_NextCondition m_WF_NodeNextCondition = new X_AD_WF_NextCondition( - ctx, ad_wf_nodenextcondition_id, null); + int ad_wf_nodenextcondition_id = Env.getContextAsInt(ctx.ctx, "AD_WF_NextCondition_ID"); + MWFNextCondition m_WF_NodeNextCondition = new MWFNextCondition( + ctx.ctx, ad_wf_nodenextcondition_id, null); + if (ctx.packOut.getFromDate() != null) { + if (m_WF_NodeNextCondition.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("", "", I_AD_WF_NextCondition.Table_Name, atts); @@ -173,30 +165,34 @@ public class WorkflowNodeNextConditionElementHandler extends document.endElement("", "", I_AD_WF_NextCondition.Table_Name); } - private void createWorkflowNodeNextConditionBinding(Properties ctx, TransformerHandler document, X_AD_WF_NextCondition mWFNodeNextCondition) { + private void createWorkflowNodeNextConditionBinding(PIPOContext ctx, TransformerHandler document, MWFNextCondition mWFNodeNextCondition) { PoExporter filler = new PoExporter(ctx, document, mWFNodeNextCondition); List excludes = defaultExcludeList(X_AD_WF_NextCondition.Table_Name); if (mWFNodeNextCondition.getAD_WF_NextCondition_ID() <= PackOut.MAX_OFFICIAL_ID) filler.add("AD_WF_NextCondition_ID", new AttributesImpl()); - int AD_workflow_ID = mWFNodeNextCondition.getAD_WF_NodeNext().getAD_WF_Node().getAD_Workflow_ID(); + MWFNodeNext mWFNodeNext = new MWFNodeNext(ctx.ctx, mWFNodeNextCondition.getAD_WF_NodeNext_ID(), getTrxName(ctx)); + MWFNode mWFNode = new MWFNode(ctx.ctx, mWFNodeNext.getAD_WF_Node_ID(), getTrxName(ctx)); + int AD_workflow_ID = mWFNode.getAD_Workflow_ID(); AttributesImpl wfAttributes = new AttributesImpl(); String value = ReferenceUtils.getTableReference("AD_Workflow", "Value", AD_workflow_ID, wfAttributes); filler.addString("AD_Workflow_ID", value, wfAttributes); - int AD_WF_Node_ID = mWFNodeNextCondition.getAD_WF_NodeNext().getAD_WF_Node_ID(); + int AD_WF_Node_ID = mWFNodeNext.getAD_WF_Node_ID(); AttributesImpl wfnAttributes = new AttributesImpl(); value = ReferenceUtils.getTableReference("AD_WF_Node", "Value", AD_WF_Node_ID, wfnAttributes); filler.addString("AD_WF_Node_ID", value, wfnAttributes); - int AD_WF_Next_ID = mWFNodeNextCondition.getAD_WF_NodeNext().getAD_WF_Next_ID(); + int AD_WF_Next_ID = mWFNodeNext.getAD_WF_Next_ID(); AttributesImpl nextAttributes = new AttributesImpl(); value = ReferenceUtils.getTableReference("AD_WF_Node", "Value", AD_WF_Next_ID, nextAttributes); filler.addString("AD_WF_Next_ID", value, nextAttributes); if (mWFNodeNextCondition.getAD_Column_ID() > 0) { - int AD_Table_ID = mWFNodeNextCondition.getAD_Column().getAD_Table_ID(); + int AD_Column_ID = mWFNodeNextCondition.getAD_Column_ID(); + MColumn mColumn = new MColumn(ctx.ctx, AD_Column_ID, getTrxName(ctx)); + int AD_Table_ID = mColumn.getAD_Table_ID(); AttributesImpl tableAttributes = new AttributesImpl(); value = ReferenceUtils.getTableReference("AD_Table", "TableName", AD_Table_ID, tableAttributes); filler.addString("AD_Table_ID", value, tableAttributes); @@ -209,9 +205,9 @@ public class WorkflowNodeNextConditionElementHandler extends public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID); + packout.getCtx().ctx.remove(I_AD_WF_NextCondition.COLUMNNAME_AD_WF_NextCondition_ID); } } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeNextElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeNextElementHandler.java index 4ca338d6a6..02e5a90ffa 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeNextElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/WorkflowNodeNextElementHandler.java @@ -17,11 +17,11 @@ package org.adempiere.pipo2.handler; import java.util.List; -import java.util.Properties; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.pipo2.AbstractElementHandler; +import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PoExporter; import org.adempiere.pipo2.Element; import org.adempiere.pipo2.PackOut; @@ -41,15 +41,15 @@ import org.xml.sax.helpers.AttributesImpl; public class WorkflowNodeNextElementHandler extends AbstractElementHandler { - public void startElement(Properties ctx, Element element) throws SAXException { - List excludes = defaultExcludeList(X_AD_WF_NodeNext.Table_Name); + public void startElement(PIPOContext ctx, Element element) throws SAXException { + List excludes = defaultExcludeList(MWFNodeNext.Table_Name); String entitytype = getStringValue(element, "EntityType"); - if (isProcessElement(ctx, entitytype)) { - if (isParentSkip(element, null)) { + if (isProcessElement(ctx.ctx, entitytype)) { + /*if (isParentSkip(element, null)) { element.skip = true; return; - } + }*/ MWFNodeNext mWFNodeNext = findPO(ctx, element); if (mWFNodeNext == null) { @@ -58,7 +58,7 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { if (getParentId(element, I_AD_Workflow.Table_Name) > 0) { workflowId = getParentId(element, I_AD_Workflow.Table_Name); } else { - workflowId = ReferenceUtils.resolveReference(ctx, wfElement, getTrxName(ctx)); + workflowId = ReferenceUtils.resolveReference(ctx.ctx, wfElement, getTrxName(ctx)); } if (workflowId <= 0) { element.defer = true; @@ -69,10 +69,10 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { int wfNodeId = 0; Element wfnElement = element.properties.get(I_AD_WF_NodeNext.COLUMNNAME_AD_WF_Node_ID); if (ReferenceUtils.isIDLookup(wfnElement) || ReferenceUtils.isUUIDLookup(wfnElement)) { - wfNodeId = ReferenceUtils.resolveReference(ctx, wfnElement, getTrxName(ctx)); + wfNodeId = ReferenceUtils.resolveReference(ctx.ctx, wfnElement, getTrxName(ctx)); } else { wfNodeId = DB.getSQLValue(getTrxName(ctx), "SELECT AD_WF_Node_Id FROM AD_WF_Node WHERE AD_Workflow_ID=? AND Value=? AND AD_Client_ID=?", - workflowId, wfnElement.contents.toString(), Env.getAD_Client_ID(ctx)); + workflowId, wfnElement.contents.toString(), Env.getAD_Client_ID(ctx.ctx)); } if (wfNodeId <= 0) { element.defer = true; @@ -83,10 +83,10 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { int AD_WF_Next_ID = 0; Element nextElement = element.properties.get(I_AD_WF_NodeNext.COLUMNNAME_AD_WF_Next_ID); if (ReferenceUtils.isIDLookup(nextElement) || ReferenceUtils.isUUIDLookup(nextElement)) { - AD_WF_Next_ID = ReferenceUtils.resolveReference(ctx, nextElement, getTrxName(ctx)); + AD_WF_Next_ID = ReferenceUtils.resolveReference(ctx.ctx, nextElement, getTrxName(ctx)); } else { AD_WF_Next_ID = DB.getSQLValue(getTrxName(ctx), "SELECT AD_WF_Node_Id FROM AD_WF_Node WHERE AD_Workflow_ID=? AND Value=? AND AD_Client_ID=?", - workflowId, nextElement.contents.toString(), Env.getAD_Client_ID(ctx)); + workflowId, nextElement.contents.toString(), Env.getAD_Client_ID(ctx.ctx)); } if (AD_WF_Next_ID <= 0) { element.defer = true; @@ -96,7 +96,7 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { int AD_WF_NodeNext_ID = DB.getSQLValue(getTrxName(ctx), "SELECT AD_WF_NodeNext_ID FROM AD_WF_NodeNext WHERE AD_WF_Node_ID=? and AD_WF_NEXT_ID =?", wfNodeId, AD_WF_Next_ID); - mWFNodeNext = new MWFNodeNext(ctx, AD_WF_NodeNext_ID, getTrxName(ctx)); + mWFNodeNext = new MWFNodeNext(ctx.ctx, AD_WF_NodeNext_ID, getTrxName(ctx)); mWFNodeNext.setAD_WF_Node_ID(wfNodeId); mWFNodeNext.setAD_WF_Next_ID(AD_WF_Next_ID); } @@ -108,6 +108,7 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { List notfounds = filler.autoFill(excludes); if (notfounds.size() > 0) { element.defer = true; + element.unresolved = notfounds.toString(); return; } @@ -127,7 +128,7 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { } else{ log.info("m_WFNodeNext save failure"); logImportDetail (ctx, impDetail, 0, String.valueOf(mWFNodeNext.get_ID()), mWFNodeNext.get_ID(), action); - throw new POSaveFailedException("WorkflowNodeNext"); + throw new POSaveFailedException("Failed to save WorkflowNodeNext"); } } } else { @@ -135,14 +136,19 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { } } - public void endElement(Properties ctx, Element element) throws SAXException { + public void endElement(PIPOContext ctx, Element element) throws SAXException { } - public void create(Properties ctx, TransformerHandler document) + public void create(PIPOContext ctx, TransformerHandler document) throws SAXException { - int ad_wf_nodenext_id = Env.getContextAsInt(ctx, X_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID); - X_AD_WF_NodeNext m_WF_NodeNext = new X_AD_WF_NodeNext( - ctx, ad_wf_nodenext_id, null); + int ad_wf_nodenext_id = Env.getContextAsInt(ctx.ctx, "AD_WF_NodeNext_ID"); + MWFNodeNext m_WF_NodeNext = new MWFNodeNext( + ctx.ctx, ad_wf_nodenext_id, null); + if (ctx.packOut.getFromDate() != null) { + if (m_WF_NodeNext.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { + return; + } + } AttributesImpl atts = new AttributesImpl(); addTypeName(atts, "table"); document.startElement("", "", I_AD_WF_NodeNext.Table_Name, atts); @@ -151,8 +157,8 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { } - private void createWorkflowNodeNextBinding(Properties ctx, TransformerHandler document, - X_AD_WF_NodeNext m_WF_NodeNext) + private void createWorkflowNodeNextBinding(PIPOContext ctx, TransformerHandler document, + MWFNodeNext m_WF_NodeNext) { PoExporter filler = new PoExporter(ctx, document, m_WF_NodeNext); @@ -161,6 +167,9 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { if (m_WF_NodeNext.getAD_WF_NodeNext_ID() <= PackOut.MAX_OFFICIAL_ID) filler.add("AD_WF_NodeNext_ID", new AttributesImpl()); + int AD_Workflow_ID = DB.getSQLValue(getTrxName(ctx), "SELECT AD_Workflow_ID FROM AD_WF_Node WHERE AD_WF_Node_ID=?", m_WF_NodeNext.getAD_WF_Node_ID()); + filler.addTableReference("AD_Workflow_ID", "AD_Workflow", "Value", AD_Workflow_ID, new AttributesImpl()); + filler.export(excludes); } @@ -168,8 +177,8 @@ public class WorkflowNodeNextElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception { - Env.setContext(packout.getCtx(), I_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID, recordId); + Env.setContext(packout.getCtx().ctx, I_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID, recordId); create(packout.getCtx(), packoutHandler); - packout.getCtx().remove(I_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID); + packout.getCtx().ctx.remove(I_AD_WF_NodeNext.COLUMNNAME_AD_WF_NodeNext_ID); } } diff --git a/org.adempiere.pipo/META-INF/MANIFEST.MF b/org.adempiere.pipo/META-INF/MANIFEST.MF index 0771926de6..3987c75f95 100644 --- a/org.adempiere.pipo/META-INF/MANIFEST.MF +++ b/org.adempiere.pipo/META-INF/MANIFEST.MF @@ -4,7 +4,9 @@ Bundle-Name: PiPo Bundle-SymbolicName: org.adempiere.pipo;singleton:=true Bundle-Version: 1.0.0.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Import-Package: org.apache.tools.ant, +Import-Package: org.apache.commons.codec;version="1.3.0", + org.apache.commons.codec.binary;version="1.3.0", + org.apache.tools.ant, org.apache.tools.ant.taskdefs, org.apache.xerces.jaxp;version="2.9.0", org.osgi.framework diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/AbstractElementHandler.java b/org.adempiere.pipo/src/org/adempiere/pipo2/AbstractElementHandler.java index 39280d9f3d..92bee91180 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/AbstractElementHandler.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/AbstractElementHandler.java @@ -61,8 +61,8 @@ public abstract class AbstractElementHandler implements ElementHandler { * @param name * */ - public int findIdByName (Properties ctx, String tableName, String name) { - return IDFinder.findIdByName(tableName, name, getClientId(ctx), getTrxName(ctx)); + public int findIdByName (PIPOContext ctx, String tableName, String name) { + return IDFinder.findIdByName(tableName, name, getClientId(ctx.ctx), ctx.trx.getTrxName()); } /** @@ -72,22 +72,25 @@ public abstract class AbstractElementHandler implements ElementHandler { * @param columName * @param name */ - public int findIdByColumn (Properties ctx, String tableName, String columnName, Object value) { + public int findIdByColumn (PIPOContext ctx, String tableName, String columnName, Object value, boolean ignorecase) { int id = 0; if ("AD_Table".equals(tableName) && "TableName".equals(columnName) && value != null) { - id = getPackIn(ctx).getTableId(value.toString()); + id = ctx.packIn.getTableId(value.toString()); if (id <= 0) { - id = IDFinder.findIdByColumn(tableName, columnName, value, getClientId(ctx), getTrxName(ctx)); + id = IDFinder.findIdByColumn(tableName, columnName, value, getClientId(ctx.ctx), ignorecase, ctx.trx.getTrxName()); if (id > 0) { - getPackIn(ctx).addTable(value.toString(), id); + ctx.packIn.addTable(value.toString(), id); } } } else { - id = IDFinder.findIdByColumn(tableName, columnName, value, getClientId(ctx), getTrxName(ctx)); + id = IDFinder.findIdByColumn(tableName, columnName, value, getClientId(ctx.ctx), ignorecase, ctx.trx.getTrxName()); } return id; } + public int findIdByColumn (PIPOContext ctx, String tableName, String columnName, Object value) { + return findIdByColumn (ctx, tableName, columnName, value, false); + } /** * @param ctx * @param type @@ -95,17 +98,17 @@ public abstract class AbstractElementHandler implements ElementHandler { * @param tableId * @return X_AD_Package_Imp_Detail */ - public X_AD_Package_Imp_Detail createImportDetail(Properties ctx, String type, String tableName, int tableId) { - X_AD_Package_Imp_Detail impDetail = new X_AD_Package_Imp_Detail(ctx, 0, getTrxName(ctx)); - impDetail.setAD_Package_Imp_ID(getPackageImpId(ctx)); - impDetail.setAD_Org_ID(Env.getAD_Org_ID(ctx) ); + public X_AD_Package_Imp_Detail createImportDetail(PIPOContext ctx, String type, String tableName, int tableId) { + X_AD_Package_Imp_Detail impDetail = new X_AD_Package_Imp_Detail(ctx.ctx, 0, ctx.trx.getTrxName()); + impDetail.setAD_Package_Imp_ID(getPackageImpId(ctx.ctx)); + impDetail.setAD_Org_ID(Env.getAD_Org_ID(ctx.ctx) ); impDetail.setType(type); impDetail.setName(""); impDetail.setAction(""); impDetail.setAD_Original_ID(1); impDetail.setTableName(tableName); impDetail.setAD_Table_ID(tableId); - impDetail.saveEx(getTrxName(ctx)); + impDetail.saveEx(ctx.trx.getTrxName()); return impDetail; } @@ -122,33 +125,15 @@ public abstract class AbstractElementHandler implements ElementHandler { * @throws SAXException * */ - public void logImportDetail (Properties ctx, X_AD_Package_Imp_Detail detail, int success, String objectName, int objectID, + public void logImportDetail (PIPOContext ctx, X_AD_Package_Imp_Detail detail, int success, String objectName, int objectID, String action) throws SAXException{ - StringBuffer recordLayout = new StringBuffer(); - TransformerHandler hd_document = getLogDocument(ctx); - AttributesImpl attsOut = new AttributesImpl(); String result = success == 1 ? "Success" : "Failure"; - //hd_documemt.startElement("","","Successful",attsOut); - recordLayout.append("Type:") - .append(detail.getType()) - .append(" - Name:") - .append(objectName) - .append(" - ID:") - .append(objectID) - .append(" - Action:") - .append(action) - .append(" - " + result); - - hd_document.startElement("","",result,attsOut); - hd_document.characters(recordLayout.toString().toCharArray(),0,recordLayout.length()); - hd_document.endElement("","",result); - detail.setName(objectName); detail.setAction(action); detail.setSuccess(result); detail.setAD_Original_ID(objectID); - detail.saveEx(getTrxName(ctx)); + ctx.packIn.addImportDetail(detail); } /** @@ -159,8 +144,8 @@ public abstract class AbstractElementHandler implements ElementHandler { * @param tableNameMaster * @param nameMaster */ - public int findIdByNameAndParentName (Properties ctx, String tableName, String name, String tableNameMaster, String nameMaster) { - return IDFinder.findIdByNameAndParentName(tableName, name, tableNameMaster, nameMaster, getTrxName(ctx)); + public int findIdByNameAndParentName (PIPOContext ctx, String tableName, String name, String tableNameMaster, String nameMaster) { + return IDFinder.findIdByNameAndParentName(tableName, name, tableNameMaster, nameMaster, getClientId(ctx.ctx), ctx.trx.getTrxName()); } /** @@ -172,11 +157,25 @@ public abstract class AbstractElementHandler implements ElementHandler { * @param nameMaster */ - public int findIdByColumnAndParentId (Properties ctx, String tableName, String columnName, String name, String tableNameMaster, int masterID) { - return IDFinder.findIdByColumnAndParentId(tableName, columnName, name, tableNameMaster, masterID, - getTrxName(ctx)); + public int findIdByColumnAndParentId (PIPOContext ctx, String tableName, String columnName, String name, String tableNameMaster, int masterID) { + return IDFinder.findIdByColumnAndParentId(tableName, columnName, name, tableNameMaster, masterID, getClientId(ctx.ctx), + ctx.trx.getTrxName()); } + /** + * Get ID from column value for a table with a parent id reference. + * + * @param tableName + * @param name + * @param tableNameMaster + * @param nameMaster + * @param ignoreCase + */ + public int findIdByColumnAndParentId (PIPOContext ctx, String tableName, String columnName, String name, String tableNameMaster, int masterID, boolean ignoreCase) { + return IDFinder.findIdByColumnAndParentId(tableName, columnName, name, tableNameMaster, masterID, getClientId(ctx.ctx), + ignoreCase, ctx.trx.getTrxName()); + } + /** * Get ID from Name for a table with a parent reference ID. * @@ -185,8 +184,8 @@ public abstract class AbstractElementHandler implements ElementHandler { * @param tableNameMaster * @param masterID */ - public int findIdByNameAndParentId (Properties ctx, String tableName, String name, String tableNameMaster, int masterID) { - return IDFinder.findIdByNameAndParentId(tableName, name, tableNameMaster, masterID, getTrxName(ctx)); + public int findIdByNameAndParentId (PIPOContext ctx, String tableName, String name, String tableNameMaster, int masterID) { + return IDFinder.findIdByNameAndParentId(tableName, name, tableNameMaster, masterID, getClientId(ctx.ctx), ctx.trx.getTrxName()); } /** @@ -198,40 +197,42 @@ public abstract class AbstractElementHandler implements ElementHandler { * */ - public void backupRecord(Properties ctx, int AD_Package_Imp_Detail_ID, String tableName,PO from){ + public void backupRecord(PIPOContext ctx, int AD_Package_Imp_Detail_ID, String tableName,PO from){ // Create new record int tableID = findIdByColumn(ctx, "AD_Table", "TableName", tableName); - POInfo poInfo = POInfo.getPOInfo(ctx, tableID, getTrxName(ctx)); + POInfo poInfo = POInfo.getPOInfo(ctx.ctx, tableID); - PreparedStatement pstmtReferenceId = DB.prepareStatement("SELECT AD_Reference_ID FROM AD_COLUMN WHERE AD_Column_ID = ?", getTrxName(ctx)); + PreparedStatement pstmtReferenceId = DB.prepareStatement("SELECT AD_Reference_ID FROM AD_COLUMN WHERE AD_Column_ID = ?", ctx.trx.getTrxName()); ResultSet rs=null; try{ for (int i = 0; i < poInfo.getColumnCount(); i++){ - int columnID =findIdByColumnAndParentId (ctx, "AD_Column", "ColumnName", poInfo.getColumnName(i), "AD_Table", tableID); - - int referenceID=0; - - pstmtReferenceId.setInt(1,columnID); - rs = pstmtReferenceId.executeQuery(); - - if (rs.next()) - referenceID = rs.getInt(1); - - X_AD_Package_Imp_Backup backup = new X_AD_Package_Imp_Backup(ctx, 0, getTrxName(ctx)); - backup.setAD_Org_ID(Env.getAD_Org_ID(ctx)); - backup.setAD_Package_Imp_ID(getPackageImpId(ctx)); - backup.setAD_Package_Imp_Detail_ID(AD_Package_Imp_Detail_ID); - backup.setAD_Table_ID(tableID); - - backup.setAD_Column_ID(columnID); - backup.setAD_Reference_ID(referenceID); - Object value = from.get_ValueOld(i); - backup.setColValue(value != null ? value.toString() : null); - - backup.saveEx(getTrxName(ctx)); + if (from.is_ValueChanged(i)) { + int columnID =findIdByColumnAndParentId (ctx, "AD_Column", "ColumnName", poInfo.getColumnName(i), "AD_Table", tableID); + + int referenceID=0; + + pstmtReferenceId.setInt(1,columnID); + rs = pstmtReferenceId.executeQuery(); + + if (rs.next()) + referenceID = rs.getInt(1); + + X_AD_Package_Imp_Backup backup = new X_AD_Package_Imp_Backup(ctx.ctx, 0, ctx.trx.getTrxName()); + backup.setAD_Org_ID(Env.getAD_Org_ID(ctx.ctx)); + backup.setAD_Package_Imp_ID(getPackageImpId(ctx.ctx)); + backup.setAD_Package_Imp_Detail_ID(AD_Package_Imp_Detail_ID); + backup.setAD_Table_ID(tableID); + + backup.setAD_Column_ID(columnID); + backup.setAD_Reference_ID(referenceID); + Object value = from.get_ValueOld(i); + backup.setColValue(value != null ? value.toString() : null); + + backup.saveEx(); + } } } catch(Exception e) @@ -306,7 +307,7 @@ public abstract class AbstractElementHandler implements ElementHandler { } source.close(); target.close(); - //System.out.println("Successfully copied " + byteCount + " bytes."); + log.finer("Successfully copied " + byteCount + " bytes."); } catch (Exception e) { log.log(Level.SEVERE, e.getLocalizedMessage(), e); @@ -347,21 +348,8 @@ public abstract class AbstractElementHandler implements ElementHandler { * @param ctx * @return transaction name */ - protected String getTrxName(Properties ctx) { - String trxName = Env.getContext(ctx, "TrxName"); - if (trxName != null && trxName.trim().length() > 0) - return trxName; - else - return null; - } - - /** - * Get share document - * @param ctx - * @return TransformerHandler - */ - protected TransformerHandler getLogDocument(Properties ctx) { - return (TransformerHandler)ctx.get("LogDocument"); + protected String getTrxName(PIPOContext ctx) { + return ctx.trx != null ? ctx.trx.getTrxName() : null; } /** @@ -472,24 +460,6 @@ public abstract class AbstractElementHandler implements ElementHandler { return excludes; } - /** - * - * @param ctx - * @return PackIn instance - */ - protected PackIn getPackIn(Properties ctx) { - return (PackIn)ctx.get(PackInHandler.PACK_IN_PROCESS_CTX_KEY); - } - - /** - * - * @param ctx - * @return PackOut instance - */ - protected PackOut getPackOut(Properties ctx) { - return (PackOut) ctx.get(PackOut.PACK_OUT_PROCESS_CTX_KEY); - } - /** * * @param element @@ -582,7 +552,7 @@ public abstract class AbstractElementHandler implements ElementHandler { * @param element * @return T */ - protected T findPO(Properties ctx, Element element) { + protected T findPO(PIPOContext ctx, Element element) { T po = null; String tableName = element.getElementValue(); String uuidColumn = PO.getUUIDColumnName(tableName); @@ -590,13 +560,15 @@ public abstract class AbstractElementHandler implements ElementHandler { if (element.properties.containsKey(uuidColumn)) { String uuid = element.properties.get(uuidColumn).contents.toString(); if (uuid != null && uuid.trim().length() == 36) { - Query query = new Query(ctx, tableName, uuidColumn+"=?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, tableName, uuidColumn+"=?", ctx.trx.getTrxName()); po = query.setParameters(uuid.trim()).firstOnly(); } - } else if (element.properties.containsKey(idColumn)) { + } + + if (po == null && element.properties.containsKey(idColumn)) { String id = element.properties.get(idColumn).contents.toString(); if (id != null && id.trim().length() > 0) { - Query query = new Query(ctx, tableName, idColumn+"=?", getTrxName(ctx)); + Query query = new Query(ctx.ctx, tableName, idColumn+"=?", ctx.trx.getTrxName()); po = query.setParameters(id.trim()).firstOnly(); } } diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/ElementHandler.java b/org.adempiere.pipo/src/org/adempiere/pipo2/ElementHandler.java index 8994416ddf..fe9bab225a 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/ElementHandler.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/ElementHandler.java @@ -16,8 +16,6 @@ *****************************************************************************/ package org.adempiere.pipo2; -import java.util.Properties; - import javax.xml.transform.sax.TransformerHandler; import org.xml.sax.SAXException; @@ -35,7 +33,7 @@ public interface ElementHandler { * @param element * @throws org.xml.sax.SAXException */ - public void startElement (Properties ctx, Element element) + public void startElement (PIPOContext ctx, Element element) throws org.xml.sax.SAXException; /** @@ -44,8 +42,8 @@ public interface ElementHandler { * @param element * @throws SAXException */ - public void endElement (Properties ctx, Element element) throws SAXException; - + public void endElement (PIPOContext ctx, Element element) throws SAXException; + /** * @param packout * @param packoutHandler diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/IDFinder.java b/org.adempiere.pipo/src/org/adempiere/pipo2/IDFinder.java index 55864da438..e65dfa11bf 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/IDFinder.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/IDFinder.java @@ -16,14 +16,24 @@ *****************************************************************************/ package org.adempiere.pipo2; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.adempiere.pipo2.exception.DatabaseAccessException; +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Hex; +import org.compiere.model.MColumn; +import org.compiere.model.MTable; import org.compiere.util.CLogger; import org.compiere.util.DB; +import org.compiere.util.DisplayType; import org.compiere.util.Env; /** @@ -46,7 +56,7 @@ public class IDFinder { * @param AD_Client_ID * @param trxName */ - public static int findIdByColumn (String tableName, String columnName, Object value, int AD_Client_ID, String trxName) { + public static int findIdByColumn (String tableName, String columnName, Object value, int AD_Client_ID, boolean ignorecase, String trxName) { int id = 0; if (value == null) @@ -70,24 +80,81 @@ public class IDFinder { .append("_ID FROM ") .append(tableName) .append(" WHERE ") - .append(columnName) - .append(" = ?") - .append(" AND AD_Client_ID IN (0, ?)") - .append(" Order By AD_Client_ID Desc, ") + .append(" AD_Client_ID IN (0, ?) AND "); + + Object[] params = null; + String[] columns = null; + if (columnName.indexOf(",") > 0 && value instanceof String) { + columns = columnName.split("[,]"); + String[] values = ((String)value).split("[,]"); + List paramList = new ArrayList(); + for (int i = 0; i < columns.length; i++) { + if (i > 0) + sqlB.append(" AND "); + if (ignorecase) { + sqlB.append("UPPER(").append(columns[i]).append(")=? "); + } else { + sqlB.append(columns[i]).append("=? "); + } + try { + byte[] bytes = Hex.decodeHex(values[i].toCharArray()); + String s = new String(bytes, "UTF-8"); + if (ignorecase) { + paramList.add(s.toUpperCase()); + } else { + paramList.add(s); + } + } catch (DecoderException e) { + throw new RuntimeException(e); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + } + params = paramList.toArray(); + } else { + if (ignorecase && value != null && value instanceof String) { + sqlB.append("UPPER(").append(columnName).append(") =? "); + params = new Object[]{ ((String)value).toUpperCase()}; + } else { + sqlB.append(columnName).append(" =? "); + params = new Object[]{value}; + } + columns = new String[]{columnName}; + } + + sqlB.append(" Order By AD_Client_ID Desc, ") .append(tableName) .append("_ID"); + MTable table = MTable.get(Env.getCtx(), tableName); PreparedStatement pstmt = null; ResultSet rs = null; try { pstmt = DB.prepareStatement(sqlB.toString(), trxName); - if (value instanceof String) - pstmt.setString(1, (String)value); - else if (value instanceof Integer) - pstmt.setInt(1, ((Integer)value).intValue()); - else - pstmt.setObject(1, value); - pstmt.setInt(2, AD_Client_ID); + pstmt.setInt(1, AD_Client_ID); + for (int i = 0; i < params.length; i++) { + Object param = params[i]; + if (param instanceof String) { + String s = (String)param; + MColumn column = table.getColumn(columns[i]); + if (column.getAD_Reference_ID() == DisplayType.Amount + || column.getAD_Reference_ID() == DisplayType.Number + || column.getAD_Reference_ID() == DisplayType.CostPrice + || column.getAD_Reference_ID() == DisplayType.Quantity) + pstmt.setBigDecimal(i+2, new BigDecimal(s)); + else if (column.getAD_Reference_ID() == DisplayType.Date + || column.getAD_Reference_ID() == DisplayType.DateTime) + pstmt.setTimestamp(i+2, Timestamp.valueOf(s)); + else if (column.getAD_Reference_ID() == DisplayType.Integer) + pstmt.setInt(i+2, Integer.parseInt(s)); + else + pstmt.setString(i+2, s); + } else if (param instanceof Integer) { + pstmt.setInt(i+2, ((Integer)param).intValue()); + } else { + pstmt.setObject(i+2, param); + } + } rs = pstmt.executeQuery(); if (rs.next()) @@ -106,6 +173,10 @@ public class IDFinder { return id; } + public static int findIdByColumn(String tableName, String columnName, Object value, int clientId, String trxName) { + return findIdByColumn(tableName, columnName, value, clientId, false, trxName); + } + /** * Get ID from Name for a table with a parent name reference. * @@ -115,7 +186,7 @@ public class IDFinder { * @param nameMaster * @param trxName */ - public static int findIdByNameAndParentName (String tableName, String name, String tableNameMaster, String nameMaster, String trxName) { + public static int findIdByNameAndParentName (String tableName, String name, String tableNameMaster, String nameMaster, int AD_Client_ID, String trxName) { int id = 0; //construct cache key StringBuffer key = new StringBuffer(); @@ -179,10 +250,24 @@ public class IDFinder { * @param name * @param tableNameMaster * @param masterID + * @param trx + */ + + public static int findIdByColumnAndParentId (String tableName, String columnName, String name, String tableNameMaster, int masterID, int AD_Client_ID, String trxName) { + return findIdByColumnAndParentId(tableName, columnName, name, tableNameMaster, masterID, AD_Client_ID, false, trxName); + } + + /** + * Get ID from column value for a table with a parent id reference. + * + * @param tableName + * @param name + * @param tableNameMaster + * @param masterID * @param trxName */ - public static int findIdByColumnAndParentId (String tableName, String columnName, String name, String tableNameMaster, int masterID, String trxName) { + public static int findIdByColumnAndParentId (String tableName, String columnName, String name, String tableNameMaster, int masterID, int AD_Client_ID, boolean ignoreCase, String trxName) { int id = 0; //check cache @@ -195,10 +280,16 @@ public class IDFinder { .append(tableName) .append("_ID FROM ") .append(tableName) - .append(" WHERE ") - .append(columnName) - .append(" = ? and ") - .append(tableNameMaster+"_ID = ? AND AD_Client_ID IN (0, ?) ") + .append(" WHERE "); + if (ignoreCase) { + sqlB.append("Upper(") + .append(columnName) + .append(") = ? and "); + } else { + sqlB.append(columnName) + .append(" = ? and "); + } + sqlB.append(tableNameMaster+"_ID = ? AND AD_Client_ID IN (0, ?) ") .append("ORDER BY AD_Client_ID Desc "); log.info(sqlB.toString()); @@ -208,9 +299,13 @@ public class IDFinder { try { pstmt = DB.prepareStatement(sqlB.toString(), trxName); - pstmt.setString(1, name); + if (ignoreCase) { + pstmt.setString(1, name.toUpperCase()); + } else { + pstmt.setString(1, name); + } pstmt.setInt(2, masterID); - pstmt.setInt(3, Env.getAD_Client_ID(Env.getCtx())); + pstmt.setInt(3, AD_Client_ID); rs = pstmt.executeQuery(); if (rs.next()) { @@ -239,7 +334,7 @@ public class IDFinder { * @param masterID * @param trxName */ - public static int findIdByNameAndParentId (String tableName, String name, String tableNameMaster, int masterID, String trxName) { + public static int findIdByNameAndParentId (String tableName, String name, String tableNameMaster, int masterID, int AD_Client_ID, String trxName) { int id = 0; //construct cache key @@ -273,7 +368,7 @@ public class IDFinder { pstmt = DB.prepareStatement(sqlB.toString(), trxName); pstmt.setString(1, name); pstmt.setInt(2, masterID); - pstmt.setInt(3, Env.getAD_Client_ID(Env.getCtx())); + pstmt.setInt(3, AD_Client_ID); rs = pstmt.executeQuery(); if (rs.next()) id = rs.getInt(1); diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PIPOContext.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PIPOContext.java new file mode 100644 index 0000000000..63a6dc9869 --- /dev/null +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PIPOContext.java @@ -0,0 +1,15 @@ +package org.adempiere.pipo2; + +import java.util.Properties; + +import javax.xml.transform.sax.TransformerHandler; + +import org.compiere.util.Trx; + +public class PIPOContext { + public Properties ctx; + public Trx trx; + public PackIn packIn; + public PackOut packOut; + public TransformerHandler logDocument; +} diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PackIn.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PackIn.java index 1357bb11ca..5752a50a26 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PackIn.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PackIn.java @@ -23,7 +23,9 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Properties; import java.util.logging.Level; @@ -31,7 +33,10 @@ import java.util.logging.Level; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; +import org.compiere.model.PO; +import org.compiere.model.X_AD_Package_Imp_Detail; import org.compiere.util.CLogger; +import org.compiere.util.Trx; /** * IntPackIn Tool. @@ -50,6 +55,8 @@ public class PackIn { private Map columnCache = new HashMap(); private String packageName = null; private String packageVersion = null; + + private List importDetails; public PackIn() { super(); @@ -123,6 +130,10 @@ public class PackIn { } } + public void addImportDetail(X_AD_Package_Imp_Detail importDetail) { + importDetails.add(importDetail); + } + /** * * @param input @@ -135,20 +146,29 @@ public class PackIn { log.info("starting"); // clear cache of previous runs IDFinder.clearIDCache(); + importDetails = new ArrayList(); System.setProperty("javax.xml.parsers.SAXParserFactory", "org.apache.xerces.jaxp.SAXParserFactoryImpl"); PackInHandler handler = new PackInHandler(); - handler.set_TrxName(trxName); - handler.setCtx(ctx); + PIPOContext context = new PIPOContext(); + context.trx = Trx.get(trxName, true); + context.packIn = this; + context.ctx = ctx; + handler.setCtx(context); handler.setProcess(this); SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); String msg = "Start Parser"; log.info(msg); parser.parse(input, handler); + for (PO importDetail : importDetails) { + importDetail.saveEx(); + } msg = "End Parser"; log.info(msg); + if (handler.getUnresolvedCount() > 0) + handler.dumpUnresolvedElements(); return "Processed="+handler.getElementsProcessed()+" Un-Resolved="+handler.getUnresolvedCount(); } catch (Exception e) { log.log(Level.SEVERE, "importXML:", e); @@ -188,6 +208,7 @@ public class PackIn { else baos.write(b); } + data = baos.toByteArray(); } finally { if (fis != null) { try { diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PackInHandler.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PackInHandler.java index f8697303dd..d9a69298e6 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PackInHandler.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PackInHandler.java @@ -19,27 +19,14 @@ package org.adempiere.pipo2; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.OutputStream; import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.List; -import java.util.Properties; +import java.util.Set; import java.util.Stack; import java.util.logging.Level; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.sax.SAXTransformerFactory; -import javax.xml.transform.sax.TransformerHandler; -import javax.xml.transform.stream.StreamResult; - import org.adempiere.pipo2.exception.DatabaseAccessException; import org.compiere.model.X_AD_Package_Imp; import org.compiere.model.X_AD_Package_Imp_Inst; @@ -77,17 +64,9 @@ public class PackInHandler extends DefaultHandler { private int AD_Package_Imp_ID=0; private int AD_Package_Imp_Inst_ID=0; private CLogger log = CLogger.getCLogger(PackInHandler.class); - private OutputStream logOutputStream = null; - private TransformerHandler logDocument = null; - private StreamResult loStreamResult = null; - private SAXTransformerFactory transformerFactory = null; - private Transformer logTransformer = null; private boolean isInit = false; - private String logDate = null; private String packageStatus = "Installing"; - // transaction name - private String m_trxName = null; - private Properties m_ctx = null; + private PIPOContext m_ctx = null; private IHandlerRegistry handlerRegistry = null; private List defer = new ArrayList(); @@ -99,41 +78,11 @@ public class PackInHandler extends DefaultHandler { packageDirectory = packIn.getPackageDirectory(); m_updateDictionary = packIn.isUpdateDictionary(); - SimpleDateFormat formatter_file = new SimpleDateFormat("yyMMddHHmmssZ"); - SimpleDateFormat formatter_log = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); - Date today = new Date(); - String fileDate = formatter_file.format(today); - logDate = formatter_log.format(today); - String logFileName = packageDirectory+File.separator+"doc"+File.separator+"Importlog_"+fileDate+".xml"; - log.info("packin log file="+logFileName); - try { - logOutputStream = new FileOutputStream (logFileName, false); - } catch (FileNotFoundException e1) { - log.warning ("Failed to create log file. error="+e1+" file="+logFileName); - } - loStreamResult = new StreamResult(logOutputStream); - transformerFactory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); - - try { - logDocument = transformerFactory.newTransformerHandler(); - } catch (TransformerConfigurationException e2) { - log.info ("startElement:"+e2); - } - logTransformer = logDocument.getTransformer(); - logTransformer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1"); - logTransformer.setOutputProperty(OutputKeys.INDENT,"yes"); - logDocument.setResult(loStreamResult); - logDocument.startDocument(); - logDocument.processingInstruction("xml-stylesheet","type=\"text/css\" href=\"adempiereDocument.css\""); - Properties tmp = new Properties(); - if (m_ctx != null) - tmp.putAll(m_ctx); - else - tmp.putAll(Env.getCtx()); - m_ctx = tmp; - if (m_trxName == null) - m_trxName = Trx.createTrxName("PackIn"); + if (m_ctx == null) + m_ctx = new PIPOContext(); + if (m_ctx.trx == null) + m_ctx.trx = Trx.get("PackIn", true); isInit=true; } @@ -164,10 +113,17 @@ public class PackInHandler extends DefaultHandler { { log.info("adempiereAD updateMode="+m_updateDictionary); - createLogHeader(atts); + //check client + String clientAttribute = atts.getValue("Client"); + String[] clientComponent = clientAttribute.split("[-]"); + int clientId = Integer.parseInt(clientComponent[0]); + if (clientId == 0 && Env.getAD_Client_ID(m_ctx.ctx) > 0) { + throw new RuntimeException("Package is created for System, not Tenant"); + } else if (clientId > 0 && Env.getAD_Client_ID(m_ctx.ctx) == 0) { + throw new RuntimeException("Package is created for Tenant, not System"); + } // Update Summary Package History Table - int PK_preInstalled=0; String packageName = packIn.getPackageName(); @@ -199,8 +155,8 @@ public class PackInHandler extends DefaultHandler { DB.close(rs, pstmt); } - X_AD_Package_Imp packageImp = new X_AD_Package_Imp(m_ctx, 0, null); - packageImp.setAD_Org_ID(Env.getAD_Org_ID(m_ctx)); + X_AD_Package_Imp packageImp = new X_AD_Package_Imp(m_ctx.ctx, 0, null); + packageImp.setAD_Org_ID(Env.getAD_Org_ID(m_ctx.ctx)); packageImp.setReleaseNo(atts.getValue("CompVer")); packageImp.setPK_Version(packageVersion); packageImp.setVersion(atts.getValue("DataBase")); @@ -216,8 +172,8 @@ public class PackInHandler extends DefaultHandler { if ( PK_preInstalled <= 0){ //Insert Package into package install log - X_AD_Package_Imp_Inst packageInst = new X_AD_Package_Imp_Inst(m_ctx, 0, null); - packageInst.setAD_Org_ID(Env.getAD_Org_ID(m_ctx)); + X_AD_Package_Imp_Inst packageInst = new X_AD_Package_Imp_Inst(m_ctx.ctx, 0, null); + packageInst.setAD_Org_ID(Env.getAD_Org_ID(m_ctx.ctx)); packageInst.setReleaseNo(atts.getValue("CompVer")); packageInst.setPK_Version(atts.getValue("Version")); packageInst.setVersion(atts.getValue("DataBase")); @@ -232,17 +188,15 @@ public class PackInHandler extends DefaultHandler { //Update package list with package status AD_Package_Imp_Inst_ID = PK_preInstalled; - X_AD_Package_Imp_Inst packageInst = new X_AD_Package_Imp_Inst(m_ctx, AD_Package_Imp_Inst_ID, null); + X_AD_Package_Imp_Inst packageInst = new X_AD_Package_Imp_Inst(m_ctx.ctx, AD_Package_Imp_Inst_ID, null); packageInst.setPK_Status(packageStatus); packageInst.saveEx(); } - Env.setContext(m_ctx, "AD_Package_Imp_ID", AD_Package_Imp_ID); - Env.setContext(m_ctx, "UpdateMode", m_updateDictionary); - Env.setContext(m_ctx, "TrxName", m_trxName); - Env.setContext(m_ctx, "PackageDirectory", packageDirectory); - m_ctx.put("LogDocument", logDocument); - m_ctx.put(PACK_IN_PROCESS_CTX_KEY, packIn); + m_ctx.ctx.put("AD_Package_Imp_ID", AD_Package_Imp_ID); + m_ctx.ctx.put("UpdateMode", m_updateDictionary); + m_ctx.ctx.put("PackageDirectory", packageDirectory); + m_ctx.packIn = packIn; } else { Element e = new Element(uri, localName, qName, new AttributesImpl(atts)); if (stack.size() > 0) @@ -292,22 +246,6 @@ public class PackInHandler extends DefaultHandler { } } - private void createLogHeader(Attributes atts) throws SAXException { - AttributesImpl attsOut = new AttributesImpl(); - logDocument.startElement("","","adempiereDocument",attsOut); - PackOut.addTextElement(logDocument, "header", atts.getValue("Name")+" Install Log", attsOut); - PackOut.addTextElement(logDocument, "H3", "Package Name:", attsOut); - PackOut.addTextElement(logDocument, "packagename4log", atts.getValue("Name"), attsOut); - PackOut.addTextElement(logDocument, "H3", "Version:", attsOut); - PackOut.addTextElement(logDocument, "Version", atts.getValue("Version"), attsOut); - PackOut.addTextElement(logDocument, "H3", "Package Install Date:", attsOut); - PackOut.addTextElement(logDocument, "installDate", logDate, attsOut); - PackOut.addTextElement(logDocument, "H3", "Min. Version:", attsOut); - PackOut.addTextElement(logDocument, "AdempiereVersion", atts.getValue("AdempiereVersion"), attsOut); - PackOut.addTextElement(logDocument, "H3", "Min. Database Date:", attsOut); - PackOut.addTextElement(logDocument, "Database", atts.getValue("Database"), attsOut); - } - /** * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int) */ @@ -343,30 +281,38 @@ public class PackInHandler extends DefaultHandler { packageStatus = "Completed successfully"; //Update package history log with package status - X_AD_Package_Imp packageImp = new X_AD_Package_Imp(m_ctx, AD_Package_Imp_ID, null); + X_AD_Package_Imp packageImp = new X_AD_Package_Imp(m_ctx.ctx, AD_Package_Imp_ID, null); packageImp.setPK_Status(packageStatus); packageImp.saveEx(); //Update package list with package status - X_AD_Package_Imp_Inst packageInst = new X_AD_Package_Imp_Inst(m_ctx, AD_Package_Imp_Inst_ID, null); + X_AD_Package_Imp_Inst packageInst = new X_AD_Package_Imp_Inst(m_ctx.ctx, AD_Package_Imp_Inst_ID, null); packageInst.setPK_Status(packageStatus); packageInst.saveEx(); - logDocument.endElement("","","adempiereDocument"); - logDocument.endDocument(); - try { - logOutputStream.close(); - } - catch (Exception e) - {} - //reset setupHandlers(); } else { Element e = stack.pop(); if (stack.isEmpty()) { - processElement(e); + try { + processElement(e); + } catch (RuntimeException re) { + packageStatus = "Import Failed"; + //Update package history log with package status + X_AD_Package_Imp packageImp = new X_AD_Package_Imp(m_ctx.ctx, AD_Package_Imp_ID, null); + packageImp.setPK_Status(packageStatus); + packageImp.save(); + throw re; + } catch (SAXException se) { + packageStatus = "Import Failed"; + //Update package history log with package status + X_AD_Package_Imp packageImp = new X_AD_Package_Imp(m_ctx.ctx, AD_Package_Imp_ID, null); + packageImp.setPK_Status(packageStatus); + packageImp.save(); + throw se; + } } } } // endElement @@ -391,7 +337,7 @@ public class PackInHandler extends DefaultHandler { } } if (log.isLoggable(Level.INFO)) { - log.info("Processeing Element: " + d.element.getElementValue() + " - " + log.info("Processing Element: " + d.element.getElementValue() + " - " + d.element.attributes.getValue(0)); } ElementHandler handler = handlerRegistry.getHandler(d.element); @@ -419,13 +365,7 @@ public class PackInHandler extends DefaultHandler { } while (defer.size() > 0); } - // globalqss - add support for trx in 3.1.2 - public void set_TrxName(String trxName) { - m_trxName = trxName; - } - - // globalqss - add support for trx in 3.1.2 - public void setCtx(Properties ctx) { + public void setCtx(PIPOContext ctx) { m_ctx = ctx; } @@ -456,6 +396,35 @@ public class PackInHandler extends DefaultHandler { } return count; } + + public void dumpUnresolvedElements() { + if (defer != null && !defer.isEmpty()) { + for(DeferEntry entry : defer) { + if (!entry.startElement) + { + Element e = entry.element; + StringBuffer s = new StringBuffer(e.qName); + s.append(" ["); + Set keys = e.properties.keySet(); + int i = 0; + for(String key : keys) + { + Element value = e.properties.get(key); + if (i > 0) + s.append(", "); + s.append(key).append("="); + if (value.contents != null) + s.append(value.contents); + i++; + } + s.append("]"); + if (e.unresolved != null && e.unresolved.length() > 0) + s.append(" unresolved ").append(e.unresolved); + log.warning(s.toString()); + } + } + } + } class DeferEntry { Element element; diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PackInProcess.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PackInProcess.java index fe5a34429c..f3e56159fa 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PackInProcess.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PackInProcess.java @@ -18,8 +18,11 @@ package org.adempiere.pipo2; import java.io.File; +import java.sql.Timestamp; import org.compiere.Adempiere; +import org.compiere.model.MAttachment; +import org.compiere.model.MAttachmentEntry; import org.compiere.model.X_AD_Package_Imp_Proc; import org.compiere.process.ProcessInfoParameter; import org.compiere.process.SvrProcess; @@ -70,7 +73,7 @@ public class PackInProcess extends SvrProcess { protected String doIt() throws Exception { X_AD_Package_Imp_Proc adPackageImp = new X_AD_Package_Imp_Proc(getCtx(), - p_PackIn_ID, null); + p_PackIn_ID, get_TrxName()); // Create Target directory if required String packageDirectory = adPackageImp.getAD_Package_Dir(); @@ -78,7 +81,7 @@ public class PackInProcess extends SvrProcess { packageDirectory = Adempiere.getAdempiereHome(); } - String targetDirName = packageDirectory + File.separator + "packages"; + String targetDirName = packageDirectory + File.separator + "packin"; File targetDir = new File(targetDirName); if (!targetDir.exists()) { @@ -88,14 +91,24 @@ public class PackInProcess extends SvrProcess { } } + MAttachment attachment = adPackageImp.getAttachment(); + if (attachment == null) { + return "Please attach the pack out archive before running the process"; + } + + MAttachmentEntry entry = attachment.getEntry(0); + if (entry == null) { + return "Please attach the pack out archive before running the process"; + } + // Unzip package - File zipFilepath = new File(adPackageImp.getAD_Package_Source()); + File zipFilepath = entry.getFile(); log.info("zipFilepath->" + zipFilepath); String parentDir = Zipper.getParentDir(zipFilepath); Zipper.unpackFile(zipFilepath, targetDir); String dict_file = packageDirectory + File.separator - + "packages" + File.separator + parentDir + File.separator + + "packin" + File.separator + parentDir + File.separator + "dict" + File.separator + "PackOut.xml"; log.info("dict file->" + dict_file); @@ -106,16 +119,24 @@ public class PackInProcess extends SvrProcess { m_UpdateDictionary = false; m_packageDirectory = packageDirectory + File.separator - + "packages" + File.separator + parentDir + File.separator; + + "packin" + File.separator + parentDir + File.separator; PackIn packIn = new PackIn(); packIn.setPackageDirectory(m_packageDirectory); packIn.setPackageName(packageName); packIn.setPackageVersion(packageVersion); packIn.setUpdateDictionary(m_UpdateDictionary); + // call XML Handler String msg = packIn.importXML(dict_file, getCtx(), get_TrxName()); - + if (adPackageImp.get_ColumnIndex("DateProcessed") > 0) { + adPackageImp.set_ValueOfColumn("DateProcessed", new Timestamp(System.currentTimeMillis())); + } + if (adPackageImp.get_ColumnIndex("P_Msg") > 0) { + adPackageImp.set_ValueOfColumn("P_Msg", msg); + } + adPackageImp.saveEx(); + return msg; } // doIt } // PackInProcess diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PackOut.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PackOut.java index 44d83c71f7..a1f7b35f6c 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PackOut.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PackOut.java @@ -27,6 +27,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; +import java.sql.Timestamp; import java.util.List; import java.util.Properties; import java.util.logging.Level; @@ -41,7 +42,7 @@ import javax.xml.transform.stream.StreamResult; import org.compiere.model.MClient; import org.compiere.model.MTable; import org.compiere.util.CLogger; -import org.compiere.util.Env; +import org.compiere.util.Trx; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; @@ -66,10 +67,6 @@ public class PackOut public final static String PackOutVersion = "100"; private final static CLogger log = CLogger.getCLogger(PackOut.class); - private static final String TRX_NAME_CTX_KEY = "TrxName"; - public static final String PACK_OUT_PROCESS_CTX_KEY = "PackOutProcess"; - - private Properties localContext = null; private String packageDirectory; private int blobCount = 0; @@ -80,6 +77,8 @@ public class PackOut private int processedCount; private String exportFile; private String packoutDirectory; + private PIPOContext pipoContext; + private Timestamp fromDate; public static final int MAX_OFFICIAL_ID = MTable.MAX_OFFICIAL_ID; @@ -192,26 +191,33 @@ public class PackOut OutputStream packoutStream) throws UnsupportedEncodingException, TransformerConfigurationException, SAXException { StreamResult packoutStreamResult = new StreamResult(new OutputStreamWriter(packoutStream,"UTF-8")); SAXTransformerFactory packoutFactory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); - packoutFactory.setAttribute("indent-number", new Integer(4)); + //indent-number attribute support is not guarantee + try { + packoutFactory.setAttribute("indent-number", new Integer(4)); + } catch (Exception e) {} TransformerHandler packoutHandler = packoutFactory.newTransformerHandler(); Transformer packoutTransformer = packoutHandler.getTransformer(); packoutTransformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); packoutTransformer.setOutputProperty(OutputKeys.INDENT,"yes"); + //indent-amount property support is not guarantee + try { + packoutTransformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount","4"); + } catch (Exception e) {} packoutHandler.setResult(packoutStreamResult); packoutHandler.startDocument(); AttributesImpl atts = new AttributesImpl(); atts.addAttribute("","","Name","CDATA",packoutDocument.getPackageName()); atts.addAttribute("","","Version","CDATA",packoutDocument.getPackageVersion()); - atts.addAttribute("","","AdempiereVersion","CDATA",packoutDocument.getAdempiereVersion()); - atts.addAttribute("","","DataBaseVersion","CDATA",packoutDocument.getDatabaseVersion()); + atts.addAttribute("","","AdempiereVersion","CDATA",emptyIfNull(packoutDocument.getAdempiereVersion())); + atts.addAttribute("","","DataBaseVersion","CDATA",emptyIfNull(packoutDocument.getDatabaseVersion())); atts.addAttribute("","","Description","CDATA",emptyIfNull(packoutDocument.getDescription())); - atts.addAttribute("","","Author","CDATA",packoutDocument.getAuthor()); + atts.addAttribute("","","Author","CDATA",emptyIfNull(packoutDocument.getAuthor())); atts.addAttribute("","","AuthorEmail","CDATA",emptyIfNull(packoutDocument.getAuthorEmail())); atts.addAttribute("","","CreatedDate","CDATA",packoutDocument.getCreated().toString()); atts.addAttribute("","","UpdatedDate","CDATA",packoutDocument.getUpdated().toString()); atts.addAttribute("","","PackOutVersion","CDATA",PackOutVersion); - MClient client = MClient.get(localContext); + MClient client = MClient.get(pipoContext.ctx); StringBuffer sb = new StringBuffer () .append(client.get_ID()) .append("-") @@ -231,11 +237,18 @@ public class PackOut private TransformerHandler createDocHandler(OutputStream docStream) throws UnsupportedEncodingException, TransformerConfigurationException, SAXException { StreamResult docStreamResult = new StreamResult(new OutputStreamWriter(docStream,"UTF-8")); SAXTransformerFactory transformerFactory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); - transformerFactory.setAttribute("indent-number", new Integer(4)); + //indent-number attribute support is not guarantee + try { + transformerFactory.setAttribute("indent-number", new Integer(4)); + } catch (Exception e) {} TransformerHandler docHandler = transformerFactory.newTransformerHandler(); Transformer transformer = docHandler.getTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING,"UTF-8"); transformer.setOutputProperty(OutputKeys.INDENT,"yes"); + //indent-amount property support is not guarantee + try { + transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount","4"); + } catch (Exception e) {} docHandler.setResult(docStreamResult); docHandler.startDocument(); docHandler.processingInstruction("xml-stylesheet","type=\"text/css\" href=\"adempiereDocument.css\""); @@ -261,7 +274,7 @@ public class PackOut addTextElement(docHandler, "filedirectory", "Directory: \\dict\\", atts); addTextElement(docHandler, "filenotes", "Notes: Contains all application/object settings for package", atts); - MClient client = MClient.get(localContext); + MClient client = MClient.get(pipoContext.ctx); StringBuffer sb = new StringBuffer () .append(client.get_ID()) .append("-") @@ -281,13 +294,7 @@ public class PackOut } private void initContext() { - Properties tmp = new Properties(); - if (getCtx() != null) - tmp.putAll(getCtx()); - if (trxName != null) - tmp.put(TRX_NAME_CTX_KEY, trxName); - tmp.put(PACK_OUT_PROCESS_CTX_KEY, this); - localContext = tmp; + pipoContext.trx = Trx.get(trxName, true); } /** @@ -352,8 +359,8 @@ public class PackOut } } - public Properties getCtx() { - return localContext != null ? localContext : Env.getCtx(); + public PIPOContext getCtx() { + return pipoContext; } /** @@ -422,4 +429,25 @@ public class PackOut public String getExportFile() { return exportFile; } + + /** + * @param fromDate + */ + public void setFromDate(Timestamp fromDate) { + this.fromDate = fromDate; + } + + /** + * @return from date + */ + public Timestamp getFromDate() { + return fromDate; + } + + /** + * @param ctx + */ + public void setCtx(Properties ctx) { + pipoContext.ctx = ctx; + } } // PackOut diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PackOutProcess.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PackOutProcess.java index f7c5a137a9..953a34a8b3 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PackOutProcess.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PackOutProcess.java @@ -19,12 +19,14 @@ package org.adempiere.pipo2; import java.io.File; +import java.sql.Timestamp; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; +import org.compiere.Adempiere; import org.compiere.model.I_AD_Form; import org.compiere.model.I_AD_ImpFormat; import org.compiere.model.I_AD_Menu; @@ -95,9 +97,27 @@ public class PackOutProcess extends SvrProcess if (packageExp.getAD_Package_Exp_ID() == p_PackOut_ID){ //Create the package documentation - packoutDirectory = packageExp.getFile_Directory().trim(); - if (!packoutDirectory.endsWith("/") && !packoutDirectory.endsWith("\\")) - packoutDirectory+= File.separator; + packoutDirectory = packageExp.getFile_Directory(); + if (packoutDirectory == null || packoutDirectory.trim().length() == 0) { + packoutDirectory = Adempiere.getAdempiereHome().trim(); + if (!packoutDirectory.endsWith("/") && !packoutDirectory.endsWith("\\")) + packoutDirectory+= File.separator; + packoutDirectory = packoutDirectory + "packout" + File.separator; + } else { + packoutDirectory = packoutDirectory.trim(); + if (!packoutDirectory.endsWith("/") && !packoutDirectory.endsWith("\\")) + packoutDirectory+= File.separator; + } + + //create packout folder if needed + File packoutDirectoryFile = new File(packoutDirectory); + if (!packoutDirectoryFile.exists()) { + boolean success = packoutDirectoryFile.mkdirs(); + if (!success) { + log.warning("Failed to create target directory. " + packoutDirectory); + } + } + PackoutDocument packoutDocument = new PackoutDocument(packageExp.getName(), packageExp.getPK_Version(), packageExp.getReleaseNo(), packageExp.getVersion(), packageExp.getDescription(), packageExp.getInstructions(), packageExp.getUserName(), packageExp.getEMail(), packageExp.getCreated(), packageExp.getUpdated()); @@ -115,6 +135,12 @@ public class PackOutProcess extends SvrProcess } PackOut packOut = new PackOut(); + packOut.setCtx(getCtx()); + Object dateFromValue = packageExp.get_Value("DateFrom"); + if (dateFromValue != null && dateFromValue instanceof Timestamp) { + packOut.setFromDate((Timestamp) dateFromValue); + } + packOut.export(packoutDirectory, null, packoutDocument, packoutItems, get_TrxName()); processedCount = packOut.getExportCount(); exportFile = packOut.getExportFile(); diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PoExporter.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PoExporter.java index 0e7e0ef0bb..7c116a39b8 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PoExporter.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PoExporter.java @@ -2,18 +2,17 @@ package org.adempiere.pipo2; import java.math.BigDecimal; import java.util.List; -import java.util.Properties; -import java.util.UUID; import javax.xml.transform.sax.TransformerHandler; import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.I_AD_Client; -import org.compiere.model.I_AD_Org; import org.compiere.model.MTable; import org.compiere.model.PO; import org.compiere.model.POInfo; +import org.compiere.model.X_AD_Client; +import org.compiere.model.X_AD_Org; import org.compiere.util.CLogger; +import org.compiere.util.DB; import org.compiere.util.DisplayType; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; @@ -24,7 +23,7 @@ public class PoExporter { @SuppressWarnings("unused") private CLogger log = CLogger.getCLogger(getClass()); - private Properties ctx; + private PIPOContext ctx; private TransformerHandler transformerHandler; @@ -48,7 +47,7 @@ public class PoExporter { * @param ctx * @param po */ - public PoExporter(Properties ctx, TransformerHandler handler, PO po){ + public PoExporter(PIPOContext ctx, TransformerHandler handler, PO po){ this.ctx = ctx; this.po = po; transformerHandler = handler; @@ -180,22 +179,27 @@ public class PoExporter { int AD_Client_ID = po.getAD_Client_ID(); if (AD_Client_ID == 0) { - addString("AD_Org_ID", "0", new AttributesImpl()); + addString("AD_Client_ID", "0", new AttributesImpl()); + if (excludes == null || !excludes.contains("AD_Org_ID")) + addString("AD_Org_ID", "0", new AttributesImpl()); } else { - int AD_Org_ID = po.getAD_Org_ID(); - if (AD_Org_ID == 0) + if (excludes == null || !excludes.contains("AD_Org_ID")) { - addString("AD_Org_ID", "0", new AttributesImpl()); - } - else - { - if (!preservedOrg) - addString("AD_Org_ID", "@AD_Org_ID@", new AttributesImpl()); - else { - addTableReference(I_AD_Client.Table_Name, I_AD_Client.COLUMNNAME_Value, new AttributesImpl()); - addTableReference(I_AD_Org.Table_Name, I_AD_Org.COLUMNNAME_Value, new AttributesImpl()); + int AD_Org_ID = po.getAD_Org_ID(); + if (AD_Org_ID == 0) + { + addString("AD_Org_ID", "0", new AttributesImpl()); + } + else + { + if (!preservedOrg) + addString("AD_Org_ID", "@AD_Org_ID@", new AttributesImpl()); + else { + addTableReference(X_AD_Client.Table_Name, "Value", new AttributesImpl()); + addTableReference(X_AD_Org.Table_Name, "Value", new AttributesImpl()); + } } } } @@ -225,8 +229,18 @@ public class PoExporter { if ("Record_ID".equalsIgnoreCase(columnName) && po.get_ColumnIndex("AD_Table_ID") >= 0) { int AD_Table_ID = po.get_Value(po.get_ColumnIndex("AD_Table_ID")) != null ? (Integer)po.get_Value(po.get_ColumnIndex("AD_Table_ID")) : 0; - tableName = MTable.getTableName(ctx, AD_Table_ID); + tableName = MTable.getTableName(ctx.ctx, AD_Table_ID); searchColumn = tableName + "_ID"; + } else if (po.get_TableName().equals("AD_TreeNode") && columnName.equals("Parent_ID")) { + int AD_Tree_ID = po.get_ValueAsInt("AD_Tree_ID"); + int AD_Table_ID = DB.getSQLValue(po.get_TrxName(), "SELECT AD_Table_ID From AD_Tree WHERE AD_Tree_ID="+AD_Tree_ID); + tableName = MTable.getTableName(po.getCtx(), AD_Table_ID); + searchColumn = tableName+"_ID"; + } else if (po.get_TableName().equals("AD_TreeNode") && columnName.equals("Node_ID")) { + int AD_Tree_ID = po.get_ValueAsInt("AD_Tree_ID"); + int AD_Table_ID = DB.getSQLValue(po.get_TrxName(), "SELECT AD_Table_ID From AD_Tree WHERE AD_Tree_ID="+AD_Tree_ID); + tableName = MTable.getTableName(po.getCtx(), AD_Table_ID); + searchColumn = tableName+"_ID"; } else { //remove _ID searchColumn = columnName; @@ -257,7 +271,7 @@ public class PoExporter { if ("Record_ID".equalsIgnoreCase(columnName) && po.get_ColumnIndex("AD_Table_ID") >= 0) { int AD_Table_ID = po.get_Value(po.get_ColumnIndex("AD_Table_ID")) != null ? (Integer)po.get_Value(po.get_ColumnIndex("AD_Table_ID")) : 0; - tableName = MTable.getTableName(ctx, AD_Table_ID); + tableName = MTable.getTableName(ctx.ctx, AD_Table_ID); searchColumn = tableName + "_ID"; } else if (info.getColumnLookup(i) != null){ searchColumn = info.getColumnLookup(i).getColumnName(); @@ -286,6 +300,8 @@ public class PoExporter { addTableReference(columnName, tableName, searchColumn, new AttributesImpl()); } else if (DisplayType.isLOB(displayType)) { addBlob(columnName); + } else if (columnName.equals(po.getUUIDColumnName()) && po.get_Value(columnName) == null) { + continue; } else { add(columnName, "", new AttributesImpl()); } @@ -299,7 +315,7 @@ public class PoExporter { return; } - PackOut packOut = (PackOut) ctx.get(PackOut.PACK_OUT_PROCESS_CTX_KEY); + PackOut packOut = ctx.packOut; byte[] data = null; String dataType = null; String fileName = null; diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PoFiller.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PoFiller.java index 30c29b10f8..7e23e4b39b 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PoFiller.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PoFiller.java @@ -5,7 +5,6 @@ import java.math.BigDecimal; import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; -import java.util.Properties; import org.adempiere.exceptions.AdempiereException; import org.compiere.model.PO; @@ -16,8 +15,9 @@ import org.compiere.util.Env; public class PoFiller{ PO po = null; + @SuppressWarnings("unused") private AbstractElementHandler handler; - private Properties ctx; + private PIPOContext ctx; private Element element; /** @@ -26,7 +26,7 @@ public class PoFiller{ * @param atts * @param handler */ - public PoFiller(Properties ctx, PO po, Element element, AbstractElementHandler handler){ + public PoFiller(PIPOContext ctx, PO po, Element element, AbstractElementHandler handler){ this.ctx = ctx; this.po = po; @@ -51,7 +51,7 @@ public class PoFiller{ else if (oldValue != null && oldValue.toString().equals(value)) return; else - po.set_ValueOfColumn(columnName, value); + po.set_ValueNoCheck(columnName, value); } /** @@ -68,7 +68,7 @@ public class PoFiller{ if (po.get_Value(columnName) != null && po.get_ValueAsBoolean(columnName) == bool) return; else - po.set_ValueOfColumn(columnName, bool); + po.set_ValueNoCheck(columnName, bool); } /** @@ -89,7 +89,7 @@ public class PoFiller{ else if (oldValue != null && oldValue.equals(ts)) return; else - po.set_ValueOfColumn(qName, ts); + po.set_ValueNoCheck(qName, ts); } /** @@ -110,7 +110,7 @@ public class PoFiller{ else if (oldValue != null && oldValue.equals(i)) return; else - po.set_ValueOfColumn(qName, i); + po.set_ValueNoCheck(qName, i); } /** @@ -131,10 +131,10 @@ public class PoFiller{ else if (oldValue != null && oldValue.equals(bd)) return; else - po.set_ValueOfColumn(qName, bd); + po.set_ValueNoCheck(qName, bd); } - public static int findTableReference(Properties ctx, AbstractElementHandler handler, Element element, String qName) { + public static int findTableReference(PIPOContext ctx, AbstractElementHandler handler, Element element, String qName) { Element propertyElement = element.properties.get(qName); if (propertyElement == null) return 0; @@ -169,16 +169,16 @@ public class PoFiller{ String value = e.contents.toString(); String columnName = qName; if (value != null && value.trim().length() > 0) { - int id = ReferenceUtils.resolveReference(ctx, e, po.get_TrxName()); + int id = ReferenceUtils.resolveReference(ctx.ctx, e, po.get_TrxName()); if (columnName.equals("AD_Client_ID") && id > 0) { - if (id != Env.getAD_Client_ID(ctx)) { + if (id != Env.getAD_Client_ID(ctx.ctx)) { return -1; } } if (po.get_ColumnIndex(columnName) >= 0) { if (id > 0) { if (po.get_ValueAsInt(columnName) != id) { - po.set_ValueOfColumn(columnName, id); + po.set_ValueNoCheck(columnName, id); } return id; } @@ -199,16 +199,26 @@ public class PoFiller{ POInfo info = POInfo.getPOInfo(po.getCtx(), po.get_Table_ID()); ListnotFounds = new ArrayList(); - //special treatment for ad_org_id - Element orgElement = element.properties.get("AD_Org_ID"); - String sAD_Org_ID = orgElement != null ? orgElement.contents.toString() : null; - if (sAD_Org_ID != null && sAD_Org_ID.equals("0")) + //special treatment for ad_client_id and ad_org_id + Element clientElement = element.properties.get("AD_Client_ID"); + String sAD_Client_ID = clientElement != null ? clientElement.contents.toString() : null; + if (sAD_Client_ID != null && sAD_Client_ID.equals("0")) + { + po.set_ValueNoCheck("AD_Client_ID", 0); po.setAD_Org_ID(0); - else if (sAD_Org_ID != null && sAD_Org_ID.equals("@AD_Org_ID@")) - po.setAD_Org_ID(Env.getAD_Org_ID(ctx)); - else { - if (setTableReference("AD_Client_ID") >= 0) - setTableReference("AD_Org_ID"); + } + else + { + Element orgElement = element.properties.get("AD_Org_ID"); + String sAD_Org_ID = orgElement != null ? orgElement.contents.toString() : null; + if (sAD_Org_ID != null && sAD_Org_ID.equals("0")) + po.setAD_Org_ID(0); + else if (sAD_Org_ID != null && sAD_Org_ID.equals("@AD_Org_ID@")) + po.setAD_Org_ID(Env.getAD_Org_ID(ctx.ctx)); + else { + if (setTableReference("AD_Client_ID") >= 0) + setTableReference("AD_Org_ID"); + } } for(String qName : element.properties.keySet()) { @@ -262,7 +272,7 @@ public class PoFiller{ if (component.length == 2) { String fileName = component[0]; String dataType = component[1]; - PackIn packIn = handler.getPackIn(ctx); + PackIn packIn = ctx.packIn; try { byte[] bytes = packIn.readBlob(fileName); if ("byte[]".equals(dataType)) { @@ -275,6 +285,6 @@ public class PoFiller{ } } } - po.set_ValueOfColumn(qName, data); + po.set_ValueNoCheck(qName, data); } } diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/ReferenceUtils.java b/org.adempiere.pipo/src/org/adempiere/pipo2/ReferenceUtils.java index 1226738d14..5740c51411 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/ReferenceUtils.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/ReferenceUtils.java @@ -1,7 +1,13 @@ package org.adempiere.pipo2; +import java.io.UnsupportedEncodingException; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.Properties; +import org.adempiere.exceptions.DBException; +import org.apache.commons.codec.binary.Hex; import org.compiere.model.MTable; import org.compiere.model.PO; import org.compiere.util.DB; @@ -79,25 +85,29 @@ public class ReferenceUtils { public static String getTableReference(String tableName, String searchColumn, int id, AttributesImpl atts) { String keyColumn = tableName + "_ID"; - String sql = "SELECT " + searchColumn + " FROM " - + tableName + " WHERE " + keyColumn + " = ?"; if (id > 0 && id <= PackOut.MAX_OFFICIAL_ID) { + //official id atts.addAttribute("", "", "reference", "CDATA", "id"); String value = Integer.toString(id); return value; } else if (id == 0) { + //no id, should never happen atts.addAttribute("", "", "reference", "CDATA", "id"); return ""; } else { MTable table = MTable.get(Env.getCtx(), tableName); - if (table.getColumn(PO.getUUIDColumnName(tableName)) != null) + if (table == null) + throw new RuntimeException("Table Not Found. TableName="+tableName); + String uuidColumnName = PO.getUUIDColumnName(tableName); + if (table.getColumn(uuidColumnName) != null) { - sql = "SELECT " + PO.getUUIDColumnName(tableName) + " FROM " + //uuid + String sql = "SELECT " + uuidColumnName + " FROM " + tableName + " WHERE " + keyColumn + " = ?"; String value = DB.getSQLValueString(null, sql, id); if (value != null && value.trim().length() > 0) @@ -108,12 +118,53 @@ public class ReferenceUtils { } } - String value = DB.getSQLValueString(null, sql, id); - StringBuffer buffer = new StringBuffer(); - buffer.append(tableName).append(".").append(searchColumn); - atts.addAttribute("", "", "reference", "CDATA", "table"); - atts.addAttribute("", "", "reference-key", "CDATA", buffer.toString()); - return value; + //search column + if (searchColumn.indexOf(",") > 0) { + //composite search column + String value = ""; + String[] columns = searchColumn.split("[,]"); + PreparedStatement stmt = null; + ResultSet rs = null; + try { + stmt = DB.prepareStatement("SELECT " + searchColumn + " FROM " + tableName, null); + rs = stmt.executeQuery(); + if (rs.next()) { + for(int i = 0; i < columns.length; i++) { + Object o = rs.getObject(i+1); + String s = o != null ? o.toString() : ""; + if (s.length() > 0) { + char[] chars = Hex.encodeHex(s.getBytes("UTF-8")); + s = new String(chars); + } + if (i == 0) { + value = s; + } else { + value = value+","+s; + } + } + } + } catch (SQLException e) { + throw new DBException(e); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } finally { + DB.close(rs, stmt); + } + StringBuffer buffer = new StringBuffer(); + buffer.append(tableName).append(".").append(searchColumn); + atts.addAttribute("", "", "reference", "CDATA", "table"); + atts.addAttribute("", "", "reference-key", "CDATA", buffer.toString()); + return value; + } else { + String sql = "SELECT " + searchColumn + " FROM " + + tableName + " WHERE " + keyColumn + " = ?"; + String value = DB.getSQLValueString(null, sql, id); + StringBuffer buffer = new StringBuffer(); + buffer.append(tableName).append(".").append(searchColumn); + atts.addAttribute("", "", "reference", "CDATA", "table"); + atts.addAttribute("", "", "reference-key", "CDATA", buffer.toString()); + return value; + } } } } From 2b2281707c00ed69ed5361835332819cd66f4b50 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 28 May 2012 14:15:36 +0800 Subject: [PATCH 2/5] IDEMPIERE-274 Database seed missing Generate_UUID function --- .../oracle/840_IDEMPIERE-274.sql | 16 ++++++++++++++++ .../postgresql/840_IDEMPIERE-274.sql | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 migration/360lts-release/oracle/840_IDEMPIERE-274.sql create mode 100644 migration/360lts-release/postgresql/840_IDEMPIERE-274.sql diff --git a/migration/360lts-release/oracle/840_IDEMPIERE-274.sql b/migration/360lts-release/oracle/840_IDEMPIERE-274.sql new file mode 100644 index 0000000000..c776d28aea --- /dev/null +++ b/migration/360lts-release/oracle/840_IDEMPIERE-274.sql @@ -0,0 +1,16 @@ +-- May 28, 2012 02:05:39 PM MYT +-- IDEMPIERE-274 Database seed missing Generate_UUID function +create or replace function generate_uuid return varchar as +guid varchar(32); +uuid varchar(36); +begin + guid := lower(sys_guid()); + uuid := substr(guid, 1, 8) || '-' || substr(guid, 9, 4) || '-' || substr(guid, 13, 4) || '-' || substr(guid, 17, 4) || '-' || substr(guid, 21, 12); + return uuid; +end; + +UPDATE AD_System + SET LastMigrationScriptApplied='840_IDEMPIERE-274.sql' +WHERE LastMigrationScriptApplied<'840_IDEMPIERE-274.sql' + OR LastMigrationScriptApplied IS NULL +; diff --git a/migration/360lts-release/postgresql/840_IDEMPIERE-274.sql b/migration/360lts-release/postgresql/840_IDEMPIERE-274.sql new file mode 100644 index 0000000000..4dbc1b8ca5 --- /dev/null +++ b/migration/360lts-release/postgresql/840_IDEMPIERE-274.sql @@ -0,0 +1,18 @@ +-- You must activate the uuid-ossp extension before running this script. +-- For PostgreSQL 9.0 and earlier, run contrib/uuid-ossp.sql to activate the extension. +-- For Postgresql 9.1, run the CREATE EXTENSION "uuid-ossp" sql command t activate the extension. + +-- May 28, 2012 02:05:39 PM MYT +-- IDEMPIERE-274 Database seed missing Generate_UUID function +CREATE OR REPLACE FUNCTION generate_uuid() +RETURNS char(36) AS $$ +BEGIN + return uuid_generate_v4()::char(36); +END; +$$ LANGUAGE plpgsql IMMUTABLE STRICT; + +UPDATE AD_System + SET LastMigrationScriptApplied='840_IDEMPIERE-274.sql' +WHERE LastMigrationScriptApplied<'840_IDEMPIERE-274.sql' + OR LastMigrationScriptApplied IS NULL +; From 35e51e9bb5e41c565306867c1fda131d7cf78a20 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 28 May 2012 14:23:09 +0800 Subject: [PATCH 3/5] IDEMPIERE-275 ModelGeneratorDialog: EntityTypeFilter not working --- .../src/org/adempiere/util/ModelClassGenerator.java | 2 +- .../src/org/adempiere/util/ModelGeneratorDialog.java | 6 +++--- .../src/org/adempiere/util/ModelInterfaceGenerator.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/org.adempiere.base/src/org/adempiere/util/ModelClassGenerator.java b/org.adempiere.base/src/org/adempiere/util/ModelClassGenerator.java index db7f0187dc..098283f374 100644 --- a/org.adempiere.base/src/org/adempiere/util/ModelClassGenerator.java +++ b/org.adempiere.base/src/org/adempiere/util/ModelClassGenerator.java @@ -843,7 +843,7 @@ public class ModelClassGenerator if (entityType != null && entityType.trim().length() > 0) { entityTypeFilter = "EntityType IN ("; - StringTokenizer tokenizer = new StringTokenizer(entityType); + StringTokenizer tokenizer = new StringTokenizer(entityType, ","); int i = 0; while(tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken().trim(); diff --git a/org.adempiere.base/src/org/adempiere/util/ModelGeneratorDialog.java b/org.adempiere.base/src/org/adempiere/util/ModelGeneratorDialog.java index 7945b18392..2feae96773 100644 --- a/org.adempiere.base/src/org/adempiere/util/ModelGeneratorDialog.java +++ b/org.adempiere.base/src/org/adempiere/util/ModelGeneratorDialog.java @@ -127,12 +127,12 @@ public class ModelGeneratorDialog extends JDialog implements ActionListener { return; } this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - if (fGenerateClass.isSelected()) { - ModelClassGenerator.generateSource(folder, packageName, entityType, tableName); - } if (fGenerateInterface.isSelected()) { ModelInterfaceGenerator.generateSource(folder, packageName, entityType, tableName); } + if (fGenerateClass.isSelected()) { + ModelClassGenerator.generateSource(folder, packageName, entityType, tableName); + } this.dispose(); } else if (e.getSource() == bCancel) { this.dispose(); diff --git a/org.adempiere.base/src/org/adempiere/util/ModelInterfaceGenerator.java b/org.adempiere.base/src/org/adempiere/util/ModelInterfaceGenerator.java index 8b95d36d28..b57c55a2de 100644 --- a/org.adempiere.base/src/org/adempiere/util/ModelInterfaceGenerator.java +++ b/org.adempiere.base/src/org/adempiere/util/ModelInterfaceGenerator.java @@ -778,7 +778,7 @@ public class ModelInterfaceGenerator if (entityType != null && entityType.trim().length() > 0) { entityTypeFilter = "EntityType IN ("; - StringTokenizer tokenizer = new StringTokenizer(entityType); + StringTokenizer tokenizer = new StringTokenizer(entityType, ","); int i = 0; while(tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken().trim(); From 86b846eb987f9aecff10d3c9d0f33ad578c99c29 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 28 May 2012 14:27:03 +0800 Subject: [PATCH 4/5] IDEMPIERE-276 UUIDGenerator - remove use of proprietary oracle and postgresql feature for table using composite key --- .../org/adempiere/process/UUIDGenerator.java | 40 ++++++++++++++----- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java b/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java index f88d4dddc9..2a62be3354 100644 --- a/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java +++ b/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java @@ -19,6 +19,9 @@ import java.sql.DatabaseMetaData; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.UUID; import org.adempiere.exceptions.DBException; @@ -132,16 +135,31 @@ public class UUIDGenerator extends SvrProcess { int AD_Column_ID = DB.getSQLValue(null, "SELECT AD_Column_ID FROM AD_Column WHERE AD_Table_ID=? AND ColumnName=?", table.getAD_Table_ID(), table.getTableName()+"_ID"); StringBuffer sql = new StringBuffer("SELECT "); String keyColumn = null; + List compositeKeys = null; if (AD_Column_ID > 0) { keyColumn = table.getTableName()+"_ID"; - } else if (DB.isOracle()) { - keyColumn = "rowid"; - } else if (DB.isPostgreSQL()) { - keyColumn = "ctid"; + } else { + compositeKeys = Arrays.asList(table.getKeyColumns()); } - sql.append(keyColumn).append(" FROM ").append(table.getTableName()); + if (compositeKeys == null) { + sql.append(keyColumn); + } else { + for(String s : compositeKeys) { + sql.append(s).append(","); + } + sql.deleteCharAt(sql.length()-1); + } + sql.append(" FROM ").append(table.getTableName()); sql.append(" WHERE ").append(column.getColumnName()).append(" IS NULL "); - String updateSQL = "UPDATE "+table.getTableName()+" SET "+column.getColumnName()+"=? WHERE "+keyColumn+"="; + String updateSQL = "UPDATE "+table.getTableName()+" SET "+column.getColumnName()+"=? WHERE "; + if (AD_Column_ID > 0) { + updateSQL = updateSQL + keyColumn + "=?"; + } else { + for(String s : compositeKeys) { + updateSQL = updateSQL + s + "=? AND "; + } + updateSQL = updateSQL.substring(0, updateSQL.length() - " AND ".length()); + } PreparedStatement stmt = null; ResultSet rs = null; Trx trx = null; @@ -156,12 +174,16 @@ public class UUIDGenerator extends SvrProcess { int recordId = rs.getInt(1); if (recordId > MTable.MAX_OFFICIAL_ID) { UUID uuid = UUID.randomUUID(); - DB.executeUpdateEx(updateSQL+recordId,new Object[]{uuid.toString()},null); + DB.executeUpdateEx(updateSQL,new Object[]{uuid.toString(), recordId},null); } } else { UUID uuid = UUID.randomUUID(); - String rowId = rs.getString(1); - DB.executeUpdateEx(updateSQL+"'"+rowId+"'",new Object[]{uuid.toString()},null); + List params = new ArrayList(); + params.add(uuid.toString()); + for (String s : compositeKeys) { + params.add(rs.getObject(s)); + } + DB.executeUpdateEx(updateSQL,params.toArray(),null); } } } catch (SQLException e) { From b7c3d48f2dc4007c3e2ca7478466ebae5da594be Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Mon, 28 May 2012 14:33:04 +0800 Subject: [PATCH 5/5] IDEMPIERE-254 2Pack Stabilization and Enhancement --- .../oracle/841_IDEMPIERE-254.sql | 706 ++++++++++++++++++ .../postgresql/841_IDEMPIERE-254.sql | 706 ++++++++++++++++++ .../org/compiere/model/I_AD_Package_Exp.java | 32 +- .../model/I_AD_Package_Exp_Common.java | 409 ---------- .../model/I_AD_Package_Exp_Detail.java | 47 +- .../org/compiere/model/I_AD_Package_Imp.java | 19 +- .../model/I_AD_Package_Imp_Backup.java | 19 +- .../model/I_AD_Package_Imp_Detail.java | 15 +- .../compiere/model/I_AD_Package_Imp_Inst.java | 19 +- .../compiere/model/I_AD_Package_Imp_Proc.java | 46 +- .../src/org/compiere/model/MPackageExp.java | 69 -- .../org/compiere/model/MPackageExpCommon.java | 78 -- .../org/compiere/model/MPackageExpDetail.java | 1 - .../org/compiere/model/X_AD_Package_Exp.java | 69 +- .../model/X_AD_Package_Exp_Common.java | 659 ---------------- .../model/X_AD_Package_Exp_Detail.java | 88 ++- .../org/compiere/model/X_AD_Package_Imp.java | 27 +- .../model/X_AD_Package_Imp_Backup.java | 26 +- .../model/X_AD_Package_Imp_Detail.java | 18 +- .../compiere/model/X_AD_Package_Imp_Inst.java | 26 +- .../compiere/model/X_AD_Package_Imp_Proc.java | 68 +- .../handler/AttachmentElementHandler.java | 2 +- .../handler/GenericPOElementHandler.java | 48 +- .../org/adempiere/pipo2/PackInProcess.java | 8 +- .../src/org/adempiere/pipo2/PackOut.java | 3 +- .../org/adempiere/pipo2/PackOutProcess.java | 4 +- .../org/adempiere/pipo2/PackRollProcess.java | 33 +- 27 files changed, 1865 insertions(+), 1380 deletions(-) create mode 100644 migration/360lts-release/oracle/841_IDEMPIERE-254.sql create mode 100644 migration/360lts-release/postgresql/841_IDEMPIERE-254.sql delete mode 100644 org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp_Common.java delete mode 100644 org.adempiere.base/src/org/compiere/model/MPackageExpCommon.java delete mode 100644 org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp_Common.java diff --git a/migration/360lts-release/oracle/841_IDEMPIERE-254.sql b/migration/360lts-release/oracle/841_IDEMPIERE-254.sql new file mode 100644 index 0000000000..ad4feb522b --- /dev/null +++ b/migration/360lts-release/oracle/841_IDEMPIERE-254.sql @@ -0,0 +1,706 @@ +-- May 25, 2012 11:19:49 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 11:19:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50096 +; + +-- May 25, 2012 11:20:25 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 11:20:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50084 +; + +-- May 25, 2012 11:21:02 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 11:21:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50085 +; + +-- May 25, 2012 11:21:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 11:21:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50097 +; + +-- May 25, 2012 11:22:04 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY Description NVARCHAR2(1000) DEFAULT NULL +; + +-- May 25, 2012 11:22:04 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY Description NULL +; + +-- May 25, 2012 11:22:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY EMail NVARCHAR2(30) DEFAULT NULL +; + +-- May 25, 2012 11:22:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY EMail NULL +; + +-- May 25, 2012 11:22:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY File_Directory NVARCHAR2(255) DEFAULT NULL +; + +-- May 25, 2012 11:22:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY File_Directory NULL +; + +-- May 25, 2012 11:23:12 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY Instructions NVARCHAR2(1000) DEFAULT NULL +; + +-- May 25, 2012 11:23:12 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY Instructions NULL +; + +-- May 25, 2012 11:23:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 11:23:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50088 +; + +-- May 25, 2012 11:23:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY ReleaseNo NVARCHAR2(20) DEFAULT NULL +; + +-- May 25, 2012 11:23:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY ReleaseNo NULL +; + +-- May 25, 2012 11:26:32 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column (AD_Table_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,Description,Name,FieldLength,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsAllowLogging,IsAutocomplete,ColumnName,IsUpdateable,IsAllowCopy,IsAlwaysUpdateable,CreatedBy,Updated,IsParent,IsSelectionColumn,IsSyncDatabase,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Column_ID) VALUES (50005,'U',1,'N','N','N',0,'The Date From indicates the starting date of a range.','Starting date for a range','Date From',7,15,'N',1581,'fcecd481-35b0-4aaa-a9b5-78b08cec99b9','Y','N','DateFrom','Y','Y','N',100,TO_DATE('2012-05-25 11:26:19','YYYY-MM-DD HH24:MI:SS'),'N','N','N','N',0,0,'Y',TO_DATE('2012-05-25 11:26:19','YYYY-MM-DD HH24:MI:SS'),100,200166) +; + +-- May 25, 2012 11:26:32 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200166 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- May 25, 2012 11:27:16 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET EntityType='D',Updated=TO_DATE('2012-05-25 11:27:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200166 +; + +-- May 25, 2012 11:29:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window SET Name='Pack Out', Description='Create 2pack package',Updated=TO_DATE('2012-05-25 11:29:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Window_ID=50003 +; + +-- May 25, 2012 11:29:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window_Trl SET IsTranslated='N' WHERE AD_Window_ID=50003 +; + +-- May 25, 2012 11:29:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Menu SET Name='Pack Out', IsActive='Y', Description='Create 2pack package',Updated=TO_DATE('2012-05-25 11:29:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Menu_ID=50004 +; + +-- May 25, 2012 11:29:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Menu_Trl SET IsTranslated='N' WHERE AD_Menu_ID=50004 +; + +-- May 25, 2012 11:32:56 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50077 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50076 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50075 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50084 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50080 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50081 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50073 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50079 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50078 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=50,IsDisplayed='Y' WHERE AD_Field_ID=50074 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=60,IsDisplayed='Y' WHERE AD_Field_ID=50082 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=70,IsDisplayed='Y' WHERE AD_Field_ID=50083 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=50085 +; + +-- May 25, 2012 11:33:23 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (Description,AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,Help,IsActive) VALUES ('Starting date for a range',200118,'Y','N',200166,'N','Y','N','545534d7-5a66-45d1-bf55-5947a6aaad31','D',100,'Date From',100,0,TO_DATE('2012-05-25 11:33:20','YYYY-MM-DD HH24:MI:SS'),0,TO_DATE('2012-05-25 11:33:20','YYYY-MM-DD HH24:MI:SS'),0,'N',50005,0,'N',90,'The Date From indicates the starting date of a range.','Y') +; + +-- May 25, 2012 11:33:23 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200118 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 11:33:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=200118 +; + +-- May 25, 2012 11:33:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=90,IsDisplayed='Y' WHERE AD_Field_ID=50085 +; + +-- May 25, 2012 11:33:47 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 11:33:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50089 +; + +-- May 25, 2012 11:33:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY Version NVARCHAR2(20) DEFAULT NULL +; + +-- May 25, 2012 11:33:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY Version NULL +; + +-- May 25, 2012 11:34:36 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 11:34:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50090 +; + +-- May 25, 2012 11:34:39 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY UserName NVARCHAR2(30) DEFAULT NULL +; + +-- May 25, 2012 11:34:39 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp MODIFY UserName NULL +; + +-- May 25, 2012 11:38:17 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 11:38:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50114 +; + +-- May 25, 2012 11:38:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp_Detail MODIFY Description NVARCHAR2(1000) DEFAULT NULL +; + +-- May 25, 2012 11:38:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp_Detail MODIFY Description NULL +; + +-- May 25, 2012 2:37:53 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp ADD DateFrom DATE DEFAULT NULL +; + +-- May 25, 2012 3:55:40 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET DefaultValue='@SQL=SELECT COALESCE(MAX(Line),0)+10 AS DefaultValue FROM AD_Package_Exp_Detail WHERE AD_Package_Exp_ID=@AD_Package_Exp_ID@',Updated=TO_DATE('2012-05-25 15:55:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50128 +; + +-- May 25, 2012 3:56:15 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Ref_List SET IsActive='N',Updated=TO_DATE('2012-05-25 15:56:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Ref_List_ID=50020 +; + +-- May 25, 2012 3:59:25 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 15:59:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50170 +; + +-- May 25, 2012 3:59:29 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp_Proc MODIFY AD_Package_Dir NVARCHAR2(255) DEFAULT NULL +; + +-- May 25, 2012 3:59:51 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 15:59:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50172 +; + +-- May 25, 2012 3:59:54 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp_Proc MODIFY AD_Package_Source NVARCHAR2(255) DEFAULT NULL +; + +-- May 25, 2012 4:00:51 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET DefaultValue='''File''',Updated=TO_DATE('2012-05-25 16:00:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50173 +; + +-- May 25, 2012 4:11:51 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Element (ColumnName,Name,PrintName,AD_Element_UU,EntityType,AD_Client_ID,AD_Element_ID,Updated,AD_Org_ID,CreatedBy,UpdatedBy,Created,IsActive) VALUES ('DateProcessed','Date Processed','Date Processed','beba52cc-977e-4f2f-b77e-eb9582bd09c0','D',0,200035,TO_DATE('2012-05-25 16:11:29','YYYY-MM-DD HH24:MI:SS'),0,100,100,TO_DATE('2012-05-25 16:11:29','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- May 25, 2012 4:11:51 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Name,PrintName,PO_PrintName,PO_Description,PO_Name,PO_Help,Help,Description, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Name,t.PrintName,t.PO_PrintName,t.PO_Description,t.PO_Name,t.PO_Help,t.Help,t.Description, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200035 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID) +; + +-- May 25, 2012 4:12:59 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column (AD_Table_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Name,FieldLength,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsAllowLogging,IsAutocomplete,ColumnName,IsUpdateable,IsAllowCopy,IsAlwaysUpdateable,CreatedBy,Updated,IsParent,IsSelectionColumn,IsSyncDatabase,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Column_ID) VALUES (50008,'D',1,'N','N','N',0,'Date Processed',7,16,'N',200035,'6a425741-bf77-4d17-8fd0-771e6afd9390','Y','N','DateProcessed','Y','N','N',100,TO_DATE('2012-05-25 16:12:58','YYYY-MM-DD HH24:MI:SS'),'N','N','N','N',0,0,'Y',TO_DATE('2012-05-25 16:12:58','YYYY-MM-DD HH24:MI:SS'),100,200167) +; + +-- May 25, 2012 4:12:59 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200167 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- May 25, 2012 4:13:09 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp_Proc ADD DateProcessed DATE DEFAULT NULL +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50151 +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50150 +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50149 +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=30,IsDisplayed='Y' WHERE AD_Field_ID=50152 +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=40,IsDisplayed='Y' WHERE AD_Field_ID=50153 +; + +-- May 25, 2012 4:16:46 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (Description,AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,Help,IsActive) VALUES ('Date this record was created',200119,'Y','N',50174,'N','Y','Y','c5ad7875-81a3-4b18-a2c5-39949dd1b031','U',100,'Created',100,0,TO_DATE('2012-05-25 16:16:39','YYYY-MM-DD HH24:MI:SS'),0,TO_DATE('2012-05-25 16:16:39','YYYY-MM-DD HH24:MI:SS'),0,'N',50008,0,'N',50,'The Created field indicates the date that this record was created.','Y') +; + +-- May 25, 2012 4:16:46 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200119 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 4:16:53 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET EntityType='D',Updated=TO_DATE('2012-05-25 16:16:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200119 +; + +-- May 25, 2012 4:17:59 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,IsActive) VALUES (200120,'Y','N',200167,'N','Y','Y','073f64b7-c535-4812-8346-3fe40d5e8e1a','D',100,'Date Processed',100,0,TO_DATE('2012-05-25 16:17:47','YYYY-MM-DD HH24:MI:SS'),0,TO_DATE('2012-05-25 16:17:47','YYYY-MM-DD HH24:MI:SS'),0,'N',50008,0,'N',60,'Y') +; + +-- May 25, 2012 4:17:59 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200120 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 4:20:38 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column (AD_Table_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Name,FieldLength,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsAllowLogging,IsAutocomplete,ColumnName,IsUpdateable,IsAllowCopy,IsAlwaysUpdateable,CreatedBy,Updated,IsParent,IsSelectionColumn,IsSyncDatabase,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Column_ID) VALUES (50008,'U',1,'N','N','N',0,'Process Message',2000,14,'N',2068,'538030f1-d937-4a37-b573-466560fba693','Y','N','P_Msg','Y','N','N',100,TO_DATE('2012-05-25 16:20:37','YYYY-MM-DD HH24:MI:SS'),'N','N','N','N',0,0,'Y',TO_DATE('2012-05-25 16:20:37','YYYY-MM-DD HH24:MI:SS'),100,200168) +; + +-- May 25, 2012 4:20:38 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200168 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- May 25, 2012 4:20:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp_Proc ADD P_Msg NVARCHAR2(2000) DEFAULT NULL +; + +-- May 25, 2012 4:21:40 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET EntityType='D',Updated=TO_DATE('2012-05-25 16:21:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200168 +; + +-- May 25, 2012 4:22:08 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,IsActive) VALUES (200121,'Y','N',200168,'N','Y','Y','03d4a015-1245-40e8-abde-46b696034059','D',100,'Process Message',100,0,TO_DATE('2012-05-25 16:22:07','YYYY-MM-DD HH24:MI:SS'),0,TO_DATE('2012-05-25 16:22:07','YYYY-MM-DD HH24:MI:SS'),0,'N',50008,255,'N',70,'Y') +; + +-- May 25, 2012 4:22:08 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200121 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 4:25:50 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column (AD_Table_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,Description,Name,FieldLength,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsAllowLogging,IsAutocomplete,ColumnName,IsUpdateable,IsAllowCopy,IsAlwaysUpdateable,CreatedBy,Updated,IsParent,IsSelectionColumn,IsSyncDatabase,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Column_ID) VALUES (50008,'U',1,'Y','N','Y',0,'The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.','Alphanumeric identifier of the entity','Name',60,10,'N',469,'9165c781-852e-4479-9a1f-7976c560b5ec','Y','N','Name','Y','Y','N',100,TO_DATE('2012-05-25 16:25:49','YYYY-MM-DD HH24:MI:SS'),'N','Y','N','N',0,0,'Y',TO_DATE('2012-05-25 16:25:49','YYYY-MM-DD HH24:MI:SS'),100,200169) +; + +-- May 25, 2012 4:25:50 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200169 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- May 25, 2012 4:25:56 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp_Proc ADD Name NVARCHAR2(60) NOT NULL +; + +-- May 25, 2012 4:26:38 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET EntityType='D',Updated=TO_DATE('2012-05-25 16:26:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200169 +; + +-- May 25, 2012 4:26:58 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (Description,AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,Help,IsActive) VALUES ('Alphanumeric identifier of the entity',200122,'Y','N',200169,'N','Y','N','ac8db584-463f-48e4-915e-18a77fa6e4e4','D',100,'Name',100,0,TO_DATE('2012-05-25 16:26:56','YYYY-MM-DD HH24:MI:SS'),0,TO_DATE('2012-05-25 16:26:56','YYYY-MM-DD HH24:MI:SS'),0,'N',50008,40,'N',80,'The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.','Y') +; + +-- May 25, 2012 4:26:58 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200122 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 4:27:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=30,IsDisplayed='Y' WHERE AD_Field_ID=200122 +; + +-- May 25, 2012 4:27:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=40,IsDisplayed='Y' WHERE AD_Field_ID=200119 +; + +-- May 25, 2012 4:27:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=50,IsDisplayed='Y' WHERE AD_Field_ID=50152 +; + +-- May 25, 2012 4:27:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=50153 +; + +-- May 25, 2012 4:28:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_DATE('2012-05-25 16:28:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50008 +; + +-- May 25, 2012 4:30:31 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET DisplayLogic='@AD_Client_ID@=0',Updated=TO_DATE('2012-05-25 16:30:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50152 +; + +-- May 25, 2012 4:32:14 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_DATE('2012-05-25 16:32:14','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50005 +; + +-- May 25, 2012 4:39:43 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_DATE('2012-05-25 16:39:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50007 +; + +-- May 25, 2012 4:40:30 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_DATE('2012-05-25 16:40:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50006 +; + +-- May 25, 2012 4:41:33 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6', Name='Package Import Log',Updated=TO_DATE('2012-05-25 16:41:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50003 +; + +-- May 25, 2012 4:41:33 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table_Trl SET IsTranslated='N' WHERE AD_Table_ID=50003 +; + +-- May 25, 2012 4:42:34 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_DATE('2012-05-25 16:42:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50002 +; + +-- May 25, 2012 4:45:16 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_DATE('2012-05-25 16:45:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50004 +; + +-- May 25, 2012 4:45:32 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_DATE('2012-05-25 16:45:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50001 +; + +-- May 25, 2012 5:02:20 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_DATE('2012-05-25 17:02:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50058 +; + +-- May 25, 2012 5:02:24 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp MODIFY Description NVARCHAR2(1000) DEFAULT NULL +; + +-- May 25, 2012 5:02:24 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp MODIFY Description NULL +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Element SET Name='Package Status', PrintName='Package Status',Updated=TO_DATE('2012-05-28 11:33:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=50006 +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=50006 +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET ColumnName='PK_Status', Name='Package Status', Description=NULL, Help=NULL WHERE AD_Element_ID=50006 +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Process_Para SET ColumnName='PK_Status', Name='Package Status', Description=NULL, Help=NULL, AD_Element_ID=50006 WHERE UPPER(ColumnName)='PK_STATUS' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Process_Para SET ColumnName='PK_Status', Name='Package Status', Description=NULL, Help=NULL WHERE AD_Element_ID=50006 AND IsCentrallyMaintained='Y' +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET Name='Package Status', Description=NULL, Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=50006) AND IsCentrallyMaintained='Y' +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_PrintFormatItem pi SET PrintName='Package Status', Name='Package Status' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=pi.AD_Column_ID AND c.AD_Element_ID=50006) +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50044 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50046 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50047 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50048 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50049 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=70,IsDisplayed='Y' WHERE AD_Field_ID=50032 +; + +-- May 28, 2012 11:34:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=50041 +; + +-- May 28, 2012 11:34:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=90,IsDisplayed='Y' WHERE AD_Field_ID=50042 +; + +-- May 28, 2012 11:34:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=100,IsDisplayed='Y' WHERE AD_Field_ID=50043 +; + +-- May 28, 2012 11:34:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=50045 +; + +-- May 28, 2012 11:35:12 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET Name='Pack Out',Updated=TO_DATE('2012-05-28 11:35:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50005 +; + +-- May 28, 2012 11:35:12 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table_Trl SET IsTranslated='N' WHERE AD_Table_ID=50005 +; + +-- May 28, 2012 11:35:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET Name='Pack Out', IsUpdateable='N',Updated=TO_DATE('2012-05-28 11:35:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50080 +; + +-- May 28, 2012 11:35:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=50080 +; + +-- May 28, 2012 11:35:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET Name='Pack Out', Description=NULL, Help=NULL WHERE AD_Column_ID=50080 AND IsCentrallyMaintained='Y' +; + +-- May 28, 2012 11:35:26 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET Name='Pack Out UUID',Updated=TO_DATE('2012-05-28 11:35:26','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=60443 +; + +-- May 28, 2012 11:35:26 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=60443 +; + +-- May 28, 2012 11:35:26 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET Name='Pack Out UUID', Description=NULL, Help=NULL WHERE AD_Column_ID=60443 AND IsCentrallyMaintained='Y' +; + +-- May 28, 2012 11:35:53 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window SET Name='Pack In',Updated=TO_DATE('2012-05-28 11:35:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Window_ID=50005 +; + +-- May 28, 2012 11:35:53 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window_Trl SET IsTranslated='N' WHERE AD_Window_ID=50005 +; + +-- May 28, 2012 11:35:53 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Menu SET Name='Pack In', Description='Imports a package', IsActive='Y',Updated=TO_DATE('2012-05-28 11:35:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Menu_ID=50006 +; + +-- May 28, 2012 11:35:53 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Menu_Trl SET IsTranslated='N' WHERE AD_Menu_ID=50006 +; + +-- May 28, 2012 11:36:34 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsInsertRecord='N',Updated=TO_DATE('2012-05-28 11:36:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50003 +; + +-- May 28, 2012 11:36:39 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsInsertRecord='N',Updated=TO_DATE('2012-05-28 11:36:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50004 +; + +-- May 28, 2012 11:36:43 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsInsertRecord='N',Updated=TO_DATE('2012-05-28 11:36:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50002 +; + +-- May 28, 2012 11:37:02 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsReadOnly='Y',Updated=TO_DATE('2012-05-28 11:37:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50002 +; + +-- May 28, 2012 11:37:05 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsReadOnly='Y',Updated=TO_DATE('2012-05-28 11:37:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50004 +; + +-- May 28, 2012 11:37:09 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsReadOnly='Y',Updated=TO_DATE('2012-05-28 11:37:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50003 +; + +-- May 28, 2012 11:45:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +DELETE FROM AD_Menu_Trl WHERE AD_Menu_ID=50005 +; + +-- May 28, 2012 11:45:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +DELETE FROM AD_Menu WHERE AD_Menu_ID=50005 +; + +-- May 28, 2012 11:45:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +DELETE FROM AD_TreeNodeMM n WHERE Node_ID=50005 AND EXISTS (SELECT * FROM AD_Tree t WHERE t.AD_Tree_ID=n.AD_Tree_ID AND t.TreeType='MM') +; + +-- May 28, 2012 11:47:17 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window SET IsActive='N',Updated=TO_DATE('2012-05-28 11:47:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Window_ID=50004 +; + +-- May 28, 2012 11:47:39 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET IsActive='N',Updated=TO_DATE('2012-05-28 11:47:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50007 +; + +UPDATE AD_System + SET LastMigrationScriptApplied='841_IDEMPIERE-254.sql' +WHERE LastMigrationScriptApplied<'841_IDEMPIERE-254.sql' + OR LastMigrationScriptApplied IS NULL +; + diff --git a/migration/360lts-release/postgresql/841_IDEMPIERE-254.sql b/migration/360lts-release/postgresql/841_IDEMPIERE-254.sql new file mode 100644 index 0000000000..9ee59cb57c --- /dev/null +++ b/migration/360lts-release/postgresql/841_IDEMPIERE-254.sql @@ -0,0 +1,706 @@ +-- May 25, 2012 11:19:49 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 11:19:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50096 +; + +-- May 25, 2012 11:20:25 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 11:20:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50084 +; + +-- May 25, 2012 11:21:02 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 11:21:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50085 +; + +-- May 25, 2012 11:21:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 11:21:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50097 +; + +-- May 25, 2012 11:22:04 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','Description','VARCHAR(1000)',null,'NULL') +; + +-- May 25, 2012 11:22:04 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','Description',null,'NULL',null) +; + +-- May 25, 2012 11:22:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','EMail','VARCHAR(30)',null,'NULL') +; + +-- May 25, 2012 11:22:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','EMail',null,'NULL',null) +; + +-- May 25, 2012 11:22:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','File_Directory','VARCHAR(255)',null,'NULL') +; + +-- May 25, 2012 11:22:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','File_Directory',null,'NULL',null) +; + +-- May 25, 2012 11:23:12 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','Instructions','VARCHAR(1000)',null,'NULL') +; + +-- May 25, 2012 11:23:12 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','Instructions',null,'NULL',null) +; + +-- May 25, 2012 11:23:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 11:23:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50088 +; + +-- May 25, 2012 11:23:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','ReleaseNo','VARCHAR(20)',null,'NULL') +; + +-- May 25, 2012 11:23:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','ReleaseNo',null,'NULL',null) +; + +-- May 25, 2012 11:26:32 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column (AD_Table_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,Description,Name,FieldLength,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsAllowLogging,IsAutocomplete,ColumnName,IsUpdateable,IsAllowCopy,IsAlwaysUpdateable,CreatedBy,Updated,IsParent,IsSelectionColumn,IsSyncDatabase,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Column_ID) VALUES (50005,'U',1,'N','N','N',0,'The Date From indicates the starting date of a range.','Starting date for a range','Date From',7,15,'N',1581,'fcecd481-35b0-4aaa-a9b5-78b08cec99b9','Y','N','DateFrom','Y','Y','N',100,TO_TIMESTAMP('2012-05-25 11:26:19','YYYY-MM-DD HH24:MI:SS'),'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2012-05-25 11:26:19','YYYY-MM-DD HH24:MI:SS'),100,200166) +; + +-- May 25, 2012 11:26:32 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200166 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- May 25, 2012 11:27:16 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET EntityType='D',Updated=TO_TIMESTAMP('2012-05-25 11:27:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200166 +; + +-- May 25, 2012 11:29:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window SET Name='Pack Out', Description='Create 2pack package',Updated=TO_TIMESTAMP('2012-05-25 11:29:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Window_ID=50003 +; + +-- May 25, 2012 11:29:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window_Trl SET IsTranslated='N' WHERE AD_Window_ID=50003 +; + +-- May 25, 2012 11:29:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Menu SET Name='Pack Out', IsActive='Y', Description='Create 2pack package',Updated=TO_TIMESTAMP('2012-05-25 11:29:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Menu_ID=50004 +; + +-- May 25, 2012 11:29:38 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Menu_Trl SET IsTranslated='N' WHERE AD_Menu_ID=50004 +; + +-- May 25, 2012 11:32:56 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50077 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50076 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50075 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50084 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50080 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50081 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50073 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50079 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50078 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=50,IsDisplayed='Y' WHERE AD_Field_ID=50074 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=60,IsDisplayed='Y' WHERE AD_Field_ID=50082 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=70,IsDisplayed='Y' WHERE AD_Field_ID=50083 +; + +-- May 25, 2012 11:32:57 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=50085 +; + +-- May 25, 2012 11:33:23 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (Description,AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,Help,IsActive) VALUES ('Starting date for a range',200118,'Y','N',200166,'N','Y','N','545534d7-5a66-45d1-bf55-5947a6aaad31','D',100,'Date From',100,0,TO_TIMESTAMP('2012-05-25 11:33:20','YYYY-MM-DD HH24:MI:SS'),0,TO_TIMESTAMP('2012-05-25 11:33:20','YYYY-MM-DD HH24:MI:SS'),0,'N',50005,0,'N',90,'The Date From indicates the starting date of a range.','Y') +; + +-- May 25, 2012 11:33:23 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200118 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 11:33:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=200118 +; + +-- May 25, 2012 11:33:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=90,IsDisplayed='Y' WHERE AD_Field_ID=50085 +; + +-- May 25, 2012 11:33:47 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 11:33:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50089 +; + +-- May 25, 2012 11:33:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','Version','VARCHAR(20)',null,'NULL') +; + +-- May 25, 2012 11:33:52 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','Version',null,'NULL',null) +; + +-- May 25, 2012 11:34:36 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 11:34:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50090 +; + +-- May 25, 2012 11:34:39 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','UserName','VARCHAR(30)',null,'NULL') +; + +-- May 25, 2012 11:34:39 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp','UserName',null,'NULL',null) +; + +-- May 25, 2012 11:38:17 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 11:38:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50114 +; + +-- May 25, 2012 11:38:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp_detail','Description','VARCHAR(1000)',null,'NULL') +; + +-- May 25, 2012 11:38:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_exp_detail','Description',null,'NULL',null) +; + +-- May 25, 2012 2:37:53 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Exp ADD COLUMN DateFrom TIMESTAMP DEFAULT NULL +; + +-- May 25, 2012 3:55:40 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET DefaultValue='@SQL=SELECT COALESCE(MAX(Line),0)+10 AS DefaultValue FROM AD_Package_Exp_Detail WHERE AD_Package_Exp_ID=@AD_Package_Exp_ID@',Updated=TO_TIMESTAMP('2012-05-25 15:55:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50128 +; + +-- May 25, 2012 3:56:15 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Ref_List SET IsActive='N',Updated=TO_TIMESTAMP('2012-05-25 15:56:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Ref_List_ID=50020 +; + +-- May 25, 2012 3:59:25 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 15:59:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50170 +; + +-- May 25, 2012 3:59:29 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_imp_proc','AD_Package_Dir','VARCHAR(255)',null,'NULL') +; + +-- May 25, 2012 3:59:51 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 15:59:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50172 +; + +-- May 25, 2012 3:59:54 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_imp_proc','AD_Package_Source','VARCHAR(255)',null,'NULL') +; + +-- May 25, 2012 4:00:51 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET DefaultValue='''File''',Updated=TO_TIMESTAMP('2012-05-25 16:00:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50173 +; + +-- May 25, 2012 4:11:51 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Element (ColumnName,Name,PrintName,AD_Element_UU,EntityType,AD_Client_ID,AD_Element_ID,Updated,AD_Org_ID,CreatedBy,UpdatedBy,Created,IsActive) VALUES ('DateProcessed','Date Processed','Date Processed','beba52cc-977e-4f2f-b77e-eb9582bd09c0','D',0,200035,TO_TIMESTAMP('2012-05-25 16:11:29','YYYY-MM-DD HH24:MI:SS'),0,100,100,TO_TIMESTAMP('2012-05-25 16:11:29','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- May 25, 2012 4:11:51 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Name,PrintName,PO_PrintName,PO_Description,PO_Name,PO_Help,Help,Description, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Element_ID, t.Name,t.PrintName,t.PO_PrintName,t.PO_Description,t.PO_Name,t.PO_Help,t.Help,t.Description, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=200035 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID) +; + +-- May 25, 2012 4:12:59 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column (AD_Table_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Name,FieldLength,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsAllowLogging,IsAutocomplete,ColumnName,IsUpdateable,IsAllowCopy,IsAlwaysUpdateable,CreatedBy,Updated,IsParent,IsSelectionColumn,IsSyncDatabase,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Column_ID) VALUES (50008,'D',1,'N','N','N',0,'Date Processed',7,16,'N',200035,'6a425741-bf77-4d17-8fd0-771e6afd9390','Y','N','DateProcessed','Y','N','N',100,TO_TIMESTAMP('2012-05-25 16:12:58','YYYY-MM-DD HH24:MI:SS'),'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2012-05-25 16:12:58','YYYY-MM-DD HH24:MI:SS'),100,200167) +; + +-- May 25, 2012 4:12:59 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy,AD_Column_Trl_UU ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200167 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- May 25, 2012 4:13:09 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp_Proc ADD COLUMN DateProcessed TIMESTAMP DEFAULT NULL +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50151 +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50150 +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50149 +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=30,IsDisplayed='Y' WHERE AD_Field_ID=50152 +; + +-- May 25, 2012 4:15:48 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=40,IsDisplayed='Y' WHERE AD_Field_ID=50153 +; + +-- May 25, 2012 4:16:46 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (Description,AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,Help,IsActive) VALUES ('Date this record was created',200119,'Y','N',50174,'N','Y','Y','c5ad7875-81a3-4b18-a2c5-39949dd1b031','U',100,'Created',100,0,TO_TIMESTAMP('2012-05-25 16:16:39','YYYY-MM-DD HH24:MI:SS'),0,TO_TIMESTAMP('2012-05-25 16:16:39','YYYY-MM-DD HH24:MI:SS'),0,'N',50008,0,'N',50,'The Created field indicates the date that this record was created.','Y') +; + +-- May 25, 2012 4:16:46 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200119 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 4:16:53 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET EntityType='D',Updated=TO_TIMESTAMP('2012-05-25 16:16:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200119 +; + +-- May 25, 2012 4:17:59 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,IsActive) VALUES (200120,'Y','N',200167,'N','Y','Y','073f64b7-c535-4812-8346-3fe40d5e8e1a','D',100,'Date Processed',100,0,TO_TIMESTAMP('2012-05-25 16:17:47','YYYY-MM-DD HH24:MI:SS'),0,TO_TIMESTAMP('2012-05-25 16:17:47','YYYY-MM-DD HH24:MI:SS'),0,'N',50008,0,'N',60,'Y') +; + +-- May 25, 2012 4:17:59 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200120 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 4:20:38 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column (AD_Table_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Name,FieldLength,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsAllowLogging,IsAutocomplete,ColumnName,IsUpdateable,IsAllowCopy,IsAlwaysUpdateable,CreatedBy,Updated,IsParent,IsSelectionColumn,IsSyncDatabase,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Column_ID) VALUES (50008,'U',1,'N','N','N',0,'Process Message',2000,14,'N',2068,'538030f1-d937-4a37-b573-466560fba693','Y','N','P_Msg','Y','N','N',100,TO_TIMESTAMP('2012-05-25 16:20:37','YYYY-MM-DD HH24:MI:SS'),'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2012-05-25 16:20:37','YYYY-MM-DD HH24:MI:SS'),100,200168) +; + +-- May 25, 2012 4:20:38 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200168 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- May 25, 2012 4:20:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp_Proc ADD COLUMN P_Msg VARCHAR(2000) DEFAULT NULL +; + +-- May 25, 2012 4:21:40 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET EntityType='D',Updated=TO_TIMESTAMP('2012-05-25 16:21:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200168 +; + +-- May 25, 2012 4:22:08 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,IsActive) VALUES (200121,'Y','N',200168,'N','Y','Y','03d4a015-1245-40e8-abde-46b696034059','D',100,'Process Message',100,0,TO_TIMESTAMP('2012-05-25 16:22:07','YYYY-MM-DD HH24:MI:SS'),0,TO_TIMESTAMP('2012-05-25 16:22:07','YYYY-MM-DD HH24:MI:SS'),0,'N',50008,255,'N',70,'Y') +; + +-- May 25, 2012 4:22:08 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200121 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 4:25:50 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column (AD_Table_ID,EntityType,Version,IsMandatory,IsTranslated,IsIdentifier,SeqNo,Help,Description,Name,FieldLength,AD_Reference_ID,IsKey,AD_Element_ID,AD_Column_UU,IsAllowLogging,IsAutocomplete,ColumnName,IsUpdateable,IsAllowCopy,IsAlwaysUpdateable,CreatedBy,Updated,IsParent,IsSelectionColumn,IsSyncDatabase,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,UpdatedBy,AD_Column_ID) VALUES (50008,'U',1,'Y','N','Y',0,'The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.','Alphanumeric identifier of the entity','Name',60,10,'N',469,'9165c781-852e-4479-9a1f-7976c560b5ec','Y','N','Name','Y','Y','N',100,TO_TIMESTAMP('2012-05-25 16:25:49','YYYY-MM-DD HH24:MI:SS'),'N','Y','N','N',0,0,'Y',TO_TIMESTAMP('2012-05-25 16:25:49','YYYY-MM-DD HH24:MI:SS'),100,200169) +; + +-- May 25, 2012 4:25:50 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=200169 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- May 25, 2012 4:25:56 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +ALTER TABLE AD_Package_Imp_Proc ADD COLUMN Name VARCHAR(60) NOT NULL +; + +-- May 25, 2012 4:26:38 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET EntityType='D',Updated=TO_TIMESTAMP('2012-05-25 16:26:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=200169 +; + +-- May 25, 2012 4:26:58 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field (Description,AD_Field_ID,IsDisplayed,IsSameLine,AD_Column_ID,IsFieldOnly,IsCentrallyMaintained,IsReadOnly,AD_Field_UU,EntityType,UpdatedBy,Name,CreatedBy,AD_Org_ID,Created,AD_Client_ID,Updated,SortNo,IsEncrypted,AD_Tab_ID,DisplayLength,IsHeading,SeqNo,Help,IsActive) VALUES ('Alphanumeric identifier of the entity',200122,'Y','N',200169,'N','Y','N','ac8db584-463f-48e4-915e-18a77fa6e4e4','D',100,'Name',100,0,TO_TIMESTAMP('2012-05-25 16:26:56','YYYY-MM-DD HH24:MI:SS'),0,TO_TIMESTAMP('2012-05-25 16:26:56','YYYY-MM-DD HH24:MI:SS'),0,'N',50008,40,'N',80,'The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.','Y') +; + +-- May 25, 2012 4:26:58 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Name,Help, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy ) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Name,t.Help, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=200122 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- May 25, 2012 4:27:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=30,IsDisplayed='Y' WHERE AD_Field_ID=200122 +; + +-- May 25, 2012 4:27:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=40,IsDisplayed='Y' WHERE AD_Field_ID=200119 +; + +-- May 25, 2012 4:27:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=50,IsDisplayed='Y' WHERE AD_Field_ID=50152 +; + +-- May 25, 2012 4:27:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=50153 +; + +-- May 25, 2012 4:28:52 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_TIMESTAMP('2012-05-25 16:28:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50008 +; + +-- May 25, 2012 4:30:31 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET DisplayLogic='@AD_Client_ID@=0',Updated=TO_TIMESTAMP('2012-05-25 16:30:31','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50152 +; + +-- May 25, 2012 4:32:14 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_TIMESTAMP('2012-05-25 16:32:14','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50005 +; + +-- May 25, 2012 4:39:43 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_TIMESTAMP('2012-05-25 16:39:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50007 +; + +-- May 25, 2012 4:40:30 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_TIMESTAMP('2012-05-25 16:40:30','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50006 +; + +-- May 25, 2012 4:41:33 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6', Name='Package Import Log',Updated=TO_TIMESTAMP('2012-05-25 16:41:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50003 +; + +-- May 25, 2012 4:41:33 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table_Trl SET IsTranslated='N' WHERE AD_Table_ID=50003 +; + +-- May 25, 2012 4:42:34 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_TIMESTAMP('2012-05-25 16:42:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50002 +; + +-- May 25, 2012 4:45:16 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_TIMESTAMP('2012-05-25 16:45:16','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50004 +; + +-- May 25, 2012 4:45:32 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET AccessLevel='6',Updated=TO_TIMESTAMP('2012-05-25 16:45:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50001 +; + +-- May 25, 2012 5:02:20 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2012-05-25 17:02:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50058 +; + +-- May 25, 2012 5:02:24 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_imp','Description','VARCHAR(1000)',null,'NULL') +; + +-- May 25, 2012 5:02:24 PM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +INSERT INTO t_alter_column values('ad_package_imp','Description',null,'NULL',null) +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Element SET Name='Package Status', PrintName='Package Status',Updated=TO_TIMESTAMP('2012-05-28 11:33:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=50006 +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Element_Trl SET IsTranslated='N' WHERE AD_Element_ID=50006 +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET ColumnName='PK_Status', Name='Package Status', Description=NULL, Help=NULL WHERE AD_Element_ID=50006 +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Process_Para SET ColumnName='PK_Status', Name='Package Status', Description=NULL, Help=NULL, AD_Element_ID=50006 WHERE UPPER(ColumnName)='PK_STATUS' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Process_Para SET ColumnName='PK_Status', Name='Package Status', Description=NULL, Help=NULL WHERE AD_Element_ID=50006 AND IsCentrallyMaintained='Y' +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET Name='Package Status', Description=NULL, Help=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=50006) AND IsCentrallyMaintained='Y' +; + +-- May 28, 2012 11:33:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_PrintFormatItem SET PrintName='Package Status', Name='Package Status' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=AD_PrintFormatItem.AD_Column_ID AND c.AD_Element_ID=50006) +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50044 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50046 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50047 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50048 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=0,IsDisplayed='N' WHERE AD_Field_ID=50049 +; + +-- May 28, 2012 11:34:27 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=70,IsDisplayed='Y' WHERE AD_Field_ID=50032 +; + +-- May 28, 2012 11:34:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=80,IsDisplayed='Y' WHERE AD_Field_ID=50041 +; + +-- May 28, 2012 11:34:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=90,IsDisplayed='Y' WHERE AD_Field_ID=50042 +; + +-- May 28, 2012 11:34:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=100,IsDisplayed='Y' WHERE AD_Field_ID=50043 +; + +-- May 28, 2012 11:34:28 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET SeqNo=130,IsDisplayed='Y' WHERE AD_Field_ID=50045 +; + +-- May 28, 2012 11:35:12 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET Name='Pack Out',Updated=TO_TIMESTAMP('2012-05-28 11:35:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50005 +; + +-- May 28, 2012 11:35:12 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table_Trl SET IsTranslated='N' WHERE AD_Table_ID=50005 +; + +-- May 28, 2012 11:35:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET Name='Pack Out', IsUpdateable='N',Updated=TO_TIMESTAMP('2012-05-28 11:35:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=50080 +; + +-- May 28, 2012 11:35:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=50080 +; + +-- May 28, 2012 11:35:21 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET Name='Pack Out', Description=NULL, Help=NULL WHERE AD_Column_ID=50080 AND IsCentrallyMaintained='Y' +; + +-- May 28, 2012 11:35:26 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column SET Name='Pack Out UUID',Updated=TO_TIMESTAMP('2012-05-28 11:35:26','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=60443 +; + +-- May 28, 2012 11:35:26 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Column_Trl SET IsTranslated='N' WHERE AD_Column_ID=60443 +; + +-- May 28, 2012 11:35:26 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Field SET Name='Pack Out UUID', Description=NULL, Help=NULL WHERE AD_Column_ID=60443 AND IsCentrallyMaintained='Y' +; + +-- May 28, 2012 11:35:53 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window SET Name='Pack In',Updated=TO_TIMESTAMP('2012-05-28 11:35:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Window_ID=50005 +; + +-- May 28, 2012 11:35:53 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window_Trl SET IsTranslated='N' WHERE AD_Window_ID=50005 +; + +-- May 28, 2012 11:35:53 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Menu SET Name='Pack In', Description='Imports a package', IsActive='Y',Updated=TO_TIMESTAMP('2012-05-28 11:35:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Menu_ID=50006 +; + +-- May 28, 2012 11:35:53 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Menu_Trl SET IsTranslated='N' WHERE AD_Menu_ID=50006 +; + +-- May 28, 2012 11:36:34 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsInsertRecord='N',Updated=TO_TIMESTAMP('2012-05-28 11:36:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50003 +; + +-- May 28, 2012 11:36:39 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsInsertRecord='N',Updated=TO_TIMESTAMP('2012-05-28 11:36:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50004 +; + +-- May 28, 2012 11:36:43 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsInsertRecord='N',Updated=TO_TIMESTAMP('2012-05-28 11:36:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50002 +; + +-- May 28, 2012 11:37:02 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsReadOnly='Y',Updated=TO_TIMESTAMP('2012-05-28 11:37:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50002 +; + +-- May 28, 2012 11:37:05 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsReadOnly='Y',Updated=TO_TIMESTAMP('2012-05-28 11:37:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50004 +; + +-- May 28, 2012 11:37:09 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Tab SET IsReadOnly='Y',Updated=TO_TIMESTAMP('2012-05-28 11:37:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=50003 +; + +-- May 28, 2012 11:45:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +DELETE FROM AD_Menu_Trl WHERE AD_Menu_ID=50005 +; + +-- May 28, 2012 11:45:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +DELETE FROM AD_Menu WHERE AD_Menu_ID=50005 +; + +-- May 28, 2012 11:45:59 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +DELETE FROM AD_TreeNodeMM WHERE Node_ID=50005 AND EXISTS (SELECT * FROM AD_Tree t WHERE t.AD_Tree_ID=AD_TreeNodeMM.AD_Tree_ID AND t.TreeType='MM') +; + +-- May 28, 2012 11:47:17 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Window SET IsActive='N',Updated=TO_TIMESTAMP('2012-05-28 11:47:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Window_ID=50004 +; + +-- May 28, 2012 11:47:39 AM MYT +-- IDEMPIERE-254 2Pack Stabilization and Enhancement +UPDATE AD_Table SET IsActive='N',Updated=TO_TIMESTAMP('2012-05-28 11:47:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=50007 +; + +UPDATE AD_System + SET LastMigrationScriptApplied='841_IDEMPIERE-254.sql' +WHERE LastMigrationScriptApplied<'841_IDEMPIERE-254.sql' + OR LastMigrationScriptApplied IS NULL +; + diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp.java b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp.java index 6347395801..f7a08a7855 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp.java @@ -31,13 +31,13 @@ public interface I_AD_Package_Exp public static final String Table_Name = "AD_Package_Exp"; /** AD_Table_ID=50005 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = 50005; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); - /** AccessLevel = 4 - System + /** AccessLevel = 6 - System - Client */ - BigDecimal accessLevel = BigDecimal.valueOf(4); + BigDecimal accessLevel = BigDecimal.valueOf(6); /** Load Meta Data */ @@ -65,12 +65,21 @@ public interface I_AD_Package_Exp /** Column name AD_Package_Exp_ID */ public static final String COLUMNNAME_AD_Package_Exp_ID = "AD_Package_Exp_ID"; - /** Set Package Exp. */ + /** Set Pack Out */ public void setAD_Package_Exp_ID (int AD_Package_Exp_ID); - /** Get Package Exp. */ + /** Get Pack Out */ public int getAD_Package_Exp_ID(); + /** Column name AD_Package_Exp_UU */ + public static final String COLUMNNAME_AD_Package_Exp_UU = "AD_Package_Exp_UU"; + + /** Set Pack Out UUID */ + public void setAD_Package_Exp_UU (String AD_Package_Exp_UU); + + /** Get Pack Out UUID */ + public String getAD_Package_Exp_UU(); + /** Column name AD_Package_Type */ public static final String COLUMNNAME_AD_Package_Type = "AD_Package_Type"; @@ -96,6 +105,19 @@ public interface I_AD_Package_Exp */ public int getCreatedBy(); + /** Column name DateFrom */ + public static final String COLUMNNAME_DateFrom = "DateFrom"; + + /** Set Date From. + * Starting date for a range + */ + public void setDateFrom (Timestamp DateFrom); + + /** Get Date From. + * Starting date for a range + */ + public Timestamp getDateFrom(); + /** Column name Description */ public static final String COLUMNNAME_Description = "Description"; diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp_Common.java b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp_Common.java deleted file mode 100644 index b2256d161b..0000000000 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp_Common.java +++ /dev/null @@ -1,409 +0,0 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2007 ComPiere, Inc. All Rights Reserved. * - * This program is free software, you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY, without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program, if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * For the text or an alternative of this public license, you may reach us * - * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * - * or via info@compiere.org or http://www.compiere.org/license.html * - *****************************************************************************/ -package org.compiere.model; - -import java.math.BigDecimal; -import java.sql.Timestamp; -import org.compiere.util.KeyNamePair; - -/** Generated Interface for AD_Package_Exp_Common - * @author Adempiere (generated) - * @version Release 3.6.0LTS - */ -public interface I_AD_Package_Exp_Common -{ - - /** TableName=AD_Package_Exp_Common */ - public static final String Table_Name = "AD_Package_Exp_Common"; - - /** AD_Table_ID=50007 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); - - KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); - - /** AccessLevel = 4 - System - */ - BigDecimal accessLevel = BigDecimal.valueOf(4); - - /** Load Meta Data */ - - /** Column name AD_Client_ID */ - public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID"; - - /** Get Client. - * Client/Tenant for this installation. - */ - public int getAD_Client_ID(); - - /** Column name AD_Form_ID */ - public static final String COLUMNNAME_AD_Form_ID = "AD_Form_ID"; - - /** Set Special Form. - * Special Form - */ - public void setAD_Form_ID (int AD_Form_ID); - - /** Get Special Form. - * Special Form - */ - public int getAD_Form_ID(); - - public I_AD_Form getAD_Form() throws RuntimeException; - - /** Column name AD_ImpFormat_ID */ - public static final String COLUMNNAME_AD_ImpFormat_ID = "AD_ImpFormat_ID"; - - /** Set Import Format */ - public void setAD_ImpFormat_ID (int AD_ImpFormat_ID); - - /** Get Import Format */ - public int getAD_ImpFormat_ID(); - - public I_AD_ImpFormat getAD_ImpFormat() throws RuntimeException; - - /** Column name AD_Menu_ID */ - public static final String COLUMNNAME_AD_Menu_ID = "AD_Menu_ID"; - - /** Set Menu. - * Identifies a Menu - */ - public void setAD_Menu_ID (int AD_Menu_ID); - - /** Get Menu. - * Identifies a Menu - */ - public int getAD_Menu_ID(); - - public I_AD_Menu getAD_Menu() throws RuntimeException; - - /** Column name AD_Org_ID */ - public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; - - /** Set Organization. - * Organizational entity within client - */ - public void setAD_Org_ID (int AD_Org_ID); - - /** Get Organization. - * Organizational entity within client - */ - public int getAD_Org_ID(); - - /** Column name AD_Package_Exp_Common_ID */ - public static final String COLUMNNAME_AD_Package_Exp_Common_ID = "AD_Package_Exp_Common_ID"; - - /** Set Common Package Exp. */ - public void setAD_Package_Exp_Common_ID (int AD_Package_Exp_Common_ID); - - /** Get Common Package Exp. */ - public int getAD_Package_Exp_Common_ID(); - - /** Column name AD_Process_ID */ - public static final String COLUMNNAME_AD_Process_ID = "AD_Process_ID"; - - /** Set Process. - * Process or Report - */ - public void setAD_Process_ID (int AD_Process_ID); - - /** Get Process. - * Process or Report - */ - public int getAD_Process_ID(); - - public I_AD_Process getAD_Process() throws RuntimeException; - - /** Column name AD_ReportView_ID */ - public static final String COLUMNNAME_AD_ReportView_ID = "AD_ReportView_ID"; - - /** Set Report View. - * View used to generate this report - */ - public void setAD_ReportView_ID (int AD_ReportView_ID); - - /** Get Report View. - * View used to generate this report - */ - public int getAD_ReportView_ID(); - - public I_AD_ReportView getAD_ReportView() throws RuntimeException; - - /** Column name AD_Role_ID */ - public static final String COLUMNNAME_AD_Role_ID = "AD_Role_ID"; - - /** Set Role. - * Responsibility Role - */ - public void setAD_Role_ID (int AD_Role_ID); - - /** Get Role. - * Responsibility Role - */ - public int getAD_Role_ID(); - - public I_AD_Role getAD_Role() throws RuntimeException; - - /** Column name AD_Table_ID */ - public static final String COLUMNNAME_AD_Table_ID = "AD_Table_ID"; - - /** Set Table. - * Database Table information - */ - public void setAD_Table_ID (int AD_Table_ID); - - /** Get Table. - * Database Table information - */ - public int getAD_Table_ID(); - - public I_AD_Table getAD_Table() throws RuntimeException; - - /** Column name AD_Window_ID */ - public static final String COLUMNNAME_AD_Window_ID = "AD_Window_ID"; - - /** Set Window. - * Data entry or display window - */ - public void setAD_Window_ID (int AD_Window_ID); - - /** Get Window. - * Data entry or display window - */ - public int getAD_Window_ID(); - - public I_AD_Window getAD_Window() throws RuntimeException; - - /** Column name AD_Workbench_ID */ - public static final String COLUMNNAME_AD_Workbench_ID = "AD_Workbench_ID"; - - /** Set Workbench. - * Collection of windows, reports - */ - public void setAD_Workbench_ID (int AD_Workbench_ID); - - /** Get Workbench. - * Collection of windows, reports - */ - public int getAD_Workbench_ID(); - - public I_AD_Workbench getAD_Workbench() throws RuntimeException; - - /** Column name AD_Workflow_ID */ - public static final String COLUMNNAME_AD_Workflow_ID = "AD_Workflow_ID"; - - /** Set Workflow. - * Workflow or combination of tasks - */ - public void setAD_Workflow_ID (int AD_Workflow_ID); - - /** Get Workflow. - * Workflow or combination of tasks - */ - public int getAD_Workflow_ID(); - - public I_AD_Workflow getAD_Workflow() throws RuntimeException; - - /** Column name Created */ - public static final String COLUMNNAME_Created = "Created"; - - /** Get Created. - * Date this record was created - */ - public Timestamp getCreated(); - - /** Column name CreatedBy */ - public static final String COLUMNNAME_CreatedBy = "CreatedBy"; - - /** Get Created By. - * User who created this records - */ - public int getCreatedBy(); - - /** Column name DBType */ - public static final String COLUMNNAME_DBType = "DBType"; - - /** Set DBType */ - public void setDBType (String DBType); - - /** Get DBType */ - public String getDBType(); - - /** Column name Description */ - public static final String COLUMNNAME_Description = "Description"; - - /** Set Description. - * Optional short description of the record - */ - public void setDescription (String Description); - - /** Get Description. - * Optional short description of the record - */ - public String getDescription(); - - /** Column name Destination_Directory */ - public static final String COLUMNNAME_Destination_Directory = "Destination_Directory"; - - /** Set Destination_Directory */ - public void setDestination_Directory (String Destination_Directory); - - /** Get Destination_Directory */ - public String getDestination_Directory(); - - /** Column name File_Directory */ - public static final String COLUMNNAME_File_Directory = "File_Directory"; - - /** Set File_Directory */ - public void setFile_Directory (String File_Directory); - - /** Get File_Directory */ - public String getFile_Directory(); - - /** Column name FileName */ - public static final String COLUMNNAME_FileName = "FileName"; - - /** Set File Name. - * Name of the local file or URL - */ - public void setFileName (String FileName); - - /** Get File Name. - * Name of the local file or URL - */ - public String getFileName(); - - /** Column name IsActive */ - public static final String COLUMNNAME_IsActive = "IsActive"; - - /** Set Active. - * The record is active in the system - */ - public void setIsActive (boolean IsActive); - - /** Get Active. - * The record is active in the system - */ - public boolean isActive(); - - /** Column name Line */ - public static final String COLUMNNAME_Line = "Line"; - - /** Set Line No. - * Unique line for this document - */ - public void setLine (int Line); - - /** Get Line No. - * Unique line for this document - */ - public int getLine(); - - /** Column name Name */ - public static final String COLUMNNAME_Name = "Name"; - - /** Set Name. - * Alphanumeric identifier of the entity - */ - public void setName (String Name); - - /** Get Name. - * Alphanumeric identifier of the entity - */ - public String getName(); - - /** Column name Name2 */ - public static final String COLUMNNAME_Name2 = "Name2"; - - /** Set Name 2. - * Additional Name - */ - public void setName2 (String Name2); - - /** Get Name 2. - * Additional Name - */ - public String getName2(); - - /** Column name Processed */ - public static final String COLUMNNAME_Processed = "Processed"; - - /** Set Processed. - * The document has been processed - */ - public void setProcessed (boolean Processed); - - /** Get Processed. - * The document has been processed - */ - public boolean isProcessed(); - - /** Column name Processing */ - public static final String COLUMNNAME_Processing = "Processing"; - - /** Set Process Now */ - public void setProcessing (boolean Processing); - - /** Get Process Now */ - public boolean isProcessing(); - - /** Column name SQLStatement */ - public static final String COLUMNNAME_SQLStatement = "SQLStatement"; - - /** Set SQLStatement */ - public void setSQLStatement (String SQLStatement); - - /** Get SQLStatement */ - public String getSQLStatement(); - - /** Column name Target_Directory */ - public static final String COLUMNNAME_Target_Directory = "Target_Directory"; - - /** Set Target_Directory */ - public void setTarget_Directory (String Target_Directory); - - /** Get Target_Directory */ - public String getTarget_Directory(); - - /** Column name Type */ - public static final String COLUMNNAME_Type = "Type"; - - /** Set Type. - * Type of Validation (SQL, Java Script, Java Language) - */ - public void setType (String Type); - - /** Get Type. - * Type of Validation (SQL, Java Script, Java Language) - */ - public String getType(); - - /** Column name Updated */ - public static final String COLUMNNAME_Updated = "Updated"; - - /** Get Updated. - * Date this record was updated - */ - public Timestamp getUpdated(); - - /** Column name UpdatedBy */ - public static final String COLUMNNAME_UpdatedBy = "UpdatedBy"; - - /** Get Updated By. - * User who updated this records - */ - public int getUpdatedBy(); -} diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp_Detail.java b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp_Detail.java index fbe7a6b8b7..2722710b97 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp_Detail.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Exp_Detail.java @@ -31,13 +31,13 @@ public interface I_AD_Package_Exp_Detail public static final String Table_Name = "AD_Package_Exp_Detail"; /** AD_Table_ID=50006 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = 50006; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); - /** AccessLevel = 4 - System + /** AccessLevel = 6 - System - Client */ - BigDecimal accessLevel = BigDecimal.valueOf(4); + BigDecimal accessLevel = BigDecimal.valueOf(6); /** Load Meta Data */ @@ -62,7 +62,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_EntityType_ID(); - public I_AD_EntityType getAD_EntityType() throws RuntimeException; + public org.compiere.model.I_AD_EntityType getAD_EntityType() throws RuntimeException; /** Column name AD_Form_ID */ public static final String COLUMNNAME_AD_Form_ID = "AD_Form_ID"; @@ -77,7 +77,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Form_ID(); - public I_AD_Form getAD_Form() throws RuntimeException; + public org.compiere.model.I_AD_Form getAD_Form() throws RuntimeException; /** Column name AD_ImpFormat_ID */ public static final String COLUMNNAME_AD_ImpFormat_ID = "AD_ImpFormat_ID"; @@ -88,7 +88,7 @@ public interface I_AD_Package_Exp_Detail /** Get Import Format */ public int getAD_ImpFormat_ID(); - public I_AD_ImpFormat getAD_ImpFormat() throws RuntimeException; + public org.compiere.model.I_AD_ImpFormat getAD_ImpFormat() throws RuntimeException; /** Column name AD_Menu_ID */ public static final String COLUMNNAME_AD_Menu_ID = "AD_Menu_ID"; @@ -103,7 +103,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Menu_ID(); - public I_AD_Menu getAD_Menu() throws RuntimeException; + public org.compiere.model.I_AD_Menu getAD_Menu() throws RuntimeException; /** Column name AD_Message_ID */ public static final String COLUMNNAME_AD_Message_ID = "AD_Message_ID"; @@ -118,7 +118,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Message_ID(); - public I_AD_Message getAD_Message() throws RuntimeException; + public org.compiere.model.I_AD_Message getAD_Message() throws RuntimeException; /** Column name AD_ModelValidator_ID */ public static final String COLUMNNAME_AD_ModelValidator_ID = "AD_ModelValidator_ID"; @@ -129,7 +129,7 @@ public interface I_AD_Package_Exp_Detail /** Get Model Validator */ public int getAD_ModelValidator_ID(); - public I_AD_ModelValidator getAD_ModelValidator() throws RuntimeException; + public org.compiere.model.I_AD_ModelValidator getAD_ModelValidator() throws RuntimeException; /** Column name AD_Org_ID */ public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; @@ -171,6 +171,15 @@ public interface I_AD_Package_Exp_Detail /** Get Package Exp. Detail */ public int getAD_Package_Exp_Detail_ID(); + /** Column name AD_Package_Exp_Detail_UU */ + public static final String COLUMNNAME_AD_Package_Exp_Detail_UU = "AD_Package_Exp_Detail_UU"; + + /** Set AD_Package_Exp_Detail_UU */ + public void setAD_Package_Exp_Detail_UU (String AD_Package_Exp_Detail_UU); + + /** Get AD_Package_Exp_Detail_UU */ + public String getAD_Package_Exp_Detail_UU(); + /** Column name AD_Package_Exp_ID */ public static final String COLUMNNAME_AD_Package_Exp_ID = "AD_Package_Exp_ID"; @@ -180,6 +189,8 @@ public interface I_AD_Package_Exp_Detail /** Get Package Exp. */ public int getAD_Package_Exp_ID(); + public org.compiere.model.I_AD_Package_Exp getAD_Package_Exp() throws RuntimeException; + /** Column name AD_PrintFormat_ID */ public static final String COLUMNNAME_AD_PrintFormat_ID = "AD_PrintFormat_ID"; @@ -193,7 +204,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_PrintFormat_ID(); - public I_AD_PrintFormat getAD_PrintFormat() throws RuntimeException; + public org.compiere.model.I_AD_PrintFormat getAD_PrintFormat() throws RuntimeException; /** Column name AD_Process_ID */ public static final String COLUMNNAME_AD_Process_ID = "AD_Process_ID"; @@ -208,7 +219,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Process_ID(); - public I_AD_Process getAD_Process() throws RuntimeException; + public org.compiere.model.I_AD_Process getAD_Process() throws RuntimeException; /** Column name AD_Reference_ID */ public static final String COLUMNNAME_AD_Reference_ID = "AD_Reference_ID"; @@ -223,7 +234,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Reference_ID(); - public I_AD_Reference getAD_Reference() throws RuntimeException; + public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException; /** Column name AD_ReportView_ID */ public static final String COLUMNNAME_AD_ReportView_ID = "AD_ReportView_ID"; @@ -238,7 +249,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_ReportView_ID(); - public I_AD_ReportView getAD_ReportView() throws RuntimeException; + public org.compiere.model.I_AD_ReportView getAD_ReportView() throws RuntimeException; /** Column name AD_Role_ID */ public static final String COLUMNNAME_AD_Role_ID = "AD_Role_ID"; @@ -253,7 +264,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Role_ID(); - public I_AD_Role getAD_Role() throws RuntimeException; + public org.compiere.model.I_AD_Role getAD_Role() throws RuntimeException; /** Column name AD_Table_ID */ public static final String COLUMNNAME_AD_Table_ID = "AD_Table_ID"; @@ -268,7 +279,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Table_ID(); - public I_AD_Table getAD_Table() throws RuntimeException; + public org.compiere.model.I_AD_Table getAD_Table() throws RuntimeException; /** Column name AD_Val_Rule_ID */ public static final String COLUMNNAME_AD_Val_Rule_ID = "AD_Val_Rule_ID"; @@ -296,7 +307,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Window_ID(); - public I_AD_Window getAD_Window() throws RuntimeException; + public org.compiere.model.I_AD_Window getAD_Window() throws RuntimeException; /** Column name AD_Workbench_ID */ public static final String COLUMNNAME_AD_Workbench_ID = "AD_Workbench_ID"; @@ -311,7 +322,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Workbench_ID(); - public I_AD_Workbench getAD_Workbench() throws RuntimeException; + public org.compiere.model.I_AD_Workbench getAD_Workbench() throws RuntimeException; /** Column name AD_Workflow_ID */ public static final String COLUMNNAME_AD_Workflow_ID = "AD_Workflow_ID"; @@ -326,7 +337,7 @@ public interface I_AD_Package_Exp_Detail */ public int getAD_Workflow_ID(); - public I_AD_Workflow getAD_Workflow() throws RuntimeException; + public org.compiere.model.I_AD_Workflow getAD_Workflow() throws RuntimeException; /** Column name Created */ public static final String COLUMNNAME_Created = "Created"; diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp.java b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp.java index f54c90ff14..57937e48f2 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp.java @@ -31,13 +31,13 @@ public interface I_AD_Package_Imp public static final String Table_Name = "AD_Package_Imp"; /** AD_Table_ID=50003 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = 50003; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); - /** AccessLevel = 4 - System + /** AccessLevel = 6 - System - Client */ - BigDecimal accessLevel = BigDecimal.valueOf(4); + BigDecimal accessLevel = BigDecimal.valueOf(6); /** Load Meta Data */ @@ -71,6 +71,15 @@ public interface I_AD_Package_Imp /** Get Package Imp. */ public int getAD_Package_Imp_ID(); + /** Column name AD_Package_Imp_UU */ + public static final String COLUMNNAME_AD_Package_Imp_UU = "AD_Package_Imp_UU"; + + /** Set AD_Package_Imp_UU */ + public void setAD_Package_Imp_UU (String AD_Package_Imp_UU); + + /** Get AD_Package_Imp_UU */ + public String getAD_Package_Imp_UU(); + /** Column name Created */ public static final String COLUMNNAME_Created = "Created"; @@ -169,10 +178,10 @@ public interface I_AD_Package_Imp /** Column name PK_Status */ public static final String COLUMNNAME_PK_Status = "PK_Status"; - /** Set PK_Status */ + /** Set Package Status */ public void setPK_Status (String PK_Status); - /** Get PK_Status */ + /** Get Package Status */ public String getPK_Status(); /** Column name PK_Version */ diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Backup.java b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Backup.java index a016605da4..eaea89db02 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Backup.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Backup.java @@ -31,13 +31,13 @@ public interface I_AD_Package_Imp_Backup public static final String Table_Name = "AD_Package_Imp_Backup"; /** AD_Table_ID=50002 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = 50002; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); - /** AccessLevel = 4 - System + /** AccessLevel = 6 - System - Client */ - BigDecimal accessLevel = BigDecimal.valueOf(4); + BigDecimal accessLevel = BigDecimal.valueOf(6); /** Load Meta Data */ @@ -62,7 +62,7 @@ public interface I_AD_Package_Imp_Backup */ public int getAD_Column_ID(); - public I_AD_Column getAD_Column() throws RuntimeException; + public org.compiere.model.I_AD_Column getAD_Column() throws RuntimeException; /** Column name AD_Org_ID */ public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; @@ -86,6 +86,15 @@ public interface I_AD_Package_Imp_Backup /** Get Imp. Package Backup */ public int getAD_Package_Imp_Backup_ID(); + /** Column name AD_Package_Imp_Backup_UU */ + public static final String COLUMNNAME_AD_Package_Imp_Backup_UU = "AD_Package_Imp_Backup_UU"; + + /** Set AD_Package_Imp_Backup_UU */ + public void setAD_Package_Imp_Backup_UU (String AD_Package_Imp_Backup_UU); + + /** Get AD_Package_Imp_Backup_UU */ + public String getAD_Package_Imp_Backup_UU(); + /** Column name AD_Package_Imp_Bck_Dir */ public static final String COLUMNNAME_AD_Package_Imp_Bck_Dir = "AD_Package_Imp_Bck_Dir"; @@ -135,7 +144,7 @@ public interface I_AD_Package_Imp_Backup */ public int getAD_Reference_ID(); - public I_AD_Reference getAD_Reference() throws RuntimeException; + public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException; /** Column name AD_Table_ID */ public static final String COLUMNNAME_AD_Table_ID = "AD_Table_ID"; diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Detail.java b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Detail.java index 1d7328b4dd..b4f7a7e75a 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Detail.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Detail.java @@ -31,13 +31,13 @@ public interface I_AD_Package_Imp_Detail public static final String Table_Name = "AD_Package_Imp_Detail"; /** AD_Table_ID=50004 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = 50004; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); - /** AccessLevel = 4 - System + /** AccessLevel = 6 - System - Client */ - BigDecimal accessLevel = BigDecimal.valueOf(4); + BigDecimal accessLevel = BigDecimal.valueOf(6); /** Load Meta Data */ @@ -102,6 +102,15 @@ public interface I_AD_Package_Imp_Detail /** Get Imp. Package Detail */ public int getAD_Package_Imp_Detail_ID(); + /** Column name AD_Package_Imp_Detail_UU */ + public static final String COLUMNNAME_AD_Package_Imp_Detail_UU = "AD_Package_Imp_Detail_UU"; + + /** Set AD_Package_Imp_Detail_UU */ + public void setAD_Package_Imp_Detail_UU (String AD_Package_Imp_Detail_UU); + + /** Get AD_Package_Imp_Detail_UU */ + public String getAD_Package_Imp_Detail_UU(); + /** Column name AD_Package_Imp_ID */ public static final String COLUMNNAME_AD_Package_Imp_ID = "AD_Package_Imp_ID"; diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Inst.java b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Inst.java index cd52e0bbd7..0250126ca3 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Inst.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Inst.java @@ -31,13 +31,13 @@ public interface I_AD_Package_Imp_Inst public static final String Table_Name = "AD_Package_Imp_Inst"; /** AD_Table_ID=50001 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = 50001; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); - /** AccessLevel = 4 - System + /** AccessLevel = 6 - System - Client */ - BigDecimal accessLevel = BigDecimal.valueOf(4); + BigDecimal accessLevel = BigDecimal.valueOf(6); /** Load Meta Data */ @@ -71,6 +71,15 @@ public interface I_AD_Package_Imp_Inst /** Get Package Imp. Inst. */ public int getAD_Package_Imp_Inst_ID(); + /** Column name AD_Package_Imp_Inst_UU */ + public static final String COLUMNNAME_AD_Package_Imp_Inst_UU = "AD_Package_Imp_Inst_UU"; + + /** Set AD_Package_Imp_Inst_UU */ + public void setAD_Package_Imp_Inst_UU (String AD_Package_Imp_Inst_UU); + + /** Get AD_Package_Imp_Inst_UU */ + public String getAD_Package_Imp_Inst_UU(); + /** Column name Created */ public static final String COLUMNNAME_Created = "Created"; @@ -169,10 +178,10 @@ public interface I_AD_Package_Imp_Inst /** Column name PK_Status */ public static final String COLUMNNAME_PK_Status = "PK_Status"; - /** Set PK_Status */ + /** Set Package Status */ public void setPK_Status (String PK_Status); - /** Get PK_Status */ + /** Get Package Status */ public String getPK_Status(); /** Column name PK_Version */ diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Proc.java b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Proc.java index 941ea1541c..77dd525774 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Proc.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Package_Imp_Proc.java @@ -31,13 +31,13 @@ public interface I_AD_Package_Imp_Proc public static final String Table_Name = "AD_Package_Imp_Proc"; /** AD_Table_ID=50008 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = 50008; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); - /** AccessLevel = 4 - System + /** AccessLevel = 6 - System - Client */ - BigDecimal accessLevel = BigDecimal.valueOf(4); + BigDecimal accessLevel = BigDecimal.valueOf(6); /** Load Meta Data */ @@ -93,6 +93,15 @@ public interface I_AD_Package_Imp_Proc /** Get Package Imp. Proc. */ public int getAD_Package_Imp_Proc_ID(); + /** Column name AD_Package_Imp_Proc_UU */ + public static final String COLUMNNAME_AD_Package_Imp_Proc_UU = "AD_Package_Imp_Proc_UU"; + + /** Set AD_Package_Imp_Proc_UU */ + public void setAD_Package_Imp_Proc_UU (String AD_Package_Imp_Proc_UU); + + /** Get AD_Package_Imp_Proc_UU */ + public String getAD_Package_Imp_Proc_UU(); + /** Column name AD_Package_Source */ public static final String COLUMNNAME_AD_Package_Source = "AD_Package_Source"; @@ -135,6 +144,15 @@ public interface I_AD_Package_Imp_Proc */ public int getCreatedBy(); + /** Column name DateProcessed */ + public static final String COLUMNNAME_DateProcessed = "DateProcessed"; + + /** Set Date Processed */ + public void setDateProcessed (Timestamp DateProcessed); + + /** Get Date Processed */ + public Timestamp getDateProcessed(); + /** Column name IsActive */ public static final String COLUMNNAME_IsActive = "IsActive"; @@ -148,6 +166,28 @@ public interface I_AD_Package_Imp_Proc */ public boolean isActive(); + /** Column name Name */ + public static final String COLUMNNAME_Name = "Name"; + + /** Set Name. + * Alphanumeric identifier of the entity + */ + public void setName (String Name); + + /** Get Name. + * Alphanumeric identifier of the entity + */ + public String getName(); + + /** Column name P_Msg */ + public static final String COLUMNNAME_P_Msg = "P_Msg"; + + /** Set Process Message */ + public void setP_Msg (String P_Msg); + + /** Get Process Message */ + public String getP_Msg(); + /** Column name Processing */ public static final String COLUMNNAME_Processing = "Processing"; diff --git a/org.adempiere.base/src/org/compiere/model/MPackageExp.java b/org.adempiere.base/src/org/compiere/model/MPackageExp.java index 31e4d4d491..db9af6ea33 100644 --- a/org.adempiere.base/src/org/compiere/model/MPackageExp.java +++ b/org.adempiere.base/src/org/compiere/model/MPackageExp.java @@ -17,13 +17,10 @@ *****************************************************************************/ package org.compiere.model; -import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Properties; -import java.util.logging.Level; import org.compiere.util.DB; -import org.compiere.util.Env; /** * Package Export Model @@ -63,73 +60,7 @@ public class MPackageExp extends X_AD_Package_Exp super(ctx, rs, trxName); } // MPackageExp - - - /** - * After Save - * @param newRecord new - * @param success success - * @return success - */ - protected boolean afterSave (boolean newRecord, boolean success) - { - if (!success) - return false; - // - String sql = "SELECT count(*) FROM AD_Package_Exp_Detail WHERE AD_Package_Exp_ID = ?"; - int recordCount = DB.getSQLValue(get_TrxName(), sql, getAD_Package_Exp_ID()); - if (recordCount == 0){ - sql = "SELECT * FROM AD_Package_Exp_Common"; - - PreparedStatement pstmt = null; - ResultSet rs = null; - try - { - pstmt = DB.prepareStatement (sql, get_TrxName()); - rs = pstmt.executeQuery (); - int i = 1; - while (rs.next()) { - X_AD_Package_Exp_Detail PackDetail =new X_AD_Package_Exp_Detail(Env.getCtx(), 0, null); - PackDetail.setAD_Client_ID(this.getAD_Client_ID()); - PackDetail.setAD_Org_ID(this.getAD_Org_ID()); - PackDetail.setAD_Package_Exp_ID(getAD_Package_Exp_ID()); - PackDetail.setType(rs.getString("TYPE")); - PackDetail.setFileName(rs.getString("FILENAME")); - PackDetail.setDescription(rs.getString("DESCRIPTION")); - PackDetail.setTarget_Directory(rs.getString("TARGET_DIRECTORY")); - PackDetail.setFile_Directory(rs.getString("FILE_DIRECTORY")); - PackDetail.setDestination_Directory(rs.getString("DESTINATION_DIRECTORY")); - PackDetail.setSQLStatement(rs.getString("SQLSTATEMENT")); - PackDetail.setAD_Workflow_ID(rs.getInt("AD_WORKFLOW_ID")); - PackDetail.setAD_Window_ID(rs.getInt("AD_WINDOW_ID")); - PackDetail.setAD_Role_ID(rs.getInt("AD_ROLE_ID")); - PackDetail.setAD_Process_ID(rs.getInt("AD_PROCESS_ID")); - PackDetail.setAD_Menu_ID(rs.getInt("AD_MENU_ID")); - PackDetail.setDBType(rs.getString("DBTYPE")); - PackDetail.setAD_ImpFormat_ID(rs.getInt("AD_IMPFORMAT_ID")); - PackDetail.setAD_Workbench_ID(rs.getInt("AD_WORKBENCH_ID")); - PackDetail.setAD_Table_ID(rs.getInt("AD_TABLE_ID")); - PackDetail.setAD_Form_ID(rs.getInt("AD_FORM_ID")); - PackDetail.setAD_ReportView_ID(rs.getInt("AD_REPORTVIEW_ID")); - PackDetail.setLine(i*10); - PackDetail.saveEx(); - i++; - } - } - catch (Exception e) - { - log.log(Level.SEVERE, sql, e); - } - finally { - DB.close(rs, pstmt); - rs = null; pstmt = null; - } - } - - return true; - } // afterSave - /** * Before Delete * @param success diff --git a/org.adempiere.base/src/org/compiere/model/MPackageExpCommon.java b/org.adempiere.base/src/org/compiere/model/MPackageExpCommon.java deleted file mode 100644 index 27f1905706..0000000000 --- a/org.adempiere.base/src/org/compiere/model/MPackageExpCommon.java +++ /dev/null @@ -1,78 +0,0 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * - * This program is free software; you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program; if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * For the text or an alternative of this public license, you may reach us * - * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * - * or via info@compiere.org or http://www.compiere.org/license.html * - * Contributor(s): ______________________________________. * - *****************************************************************************/ -package org.compiere.model; - -import java.sql.ResultSet; -import java.util.Properties; - -import org.compiere.util.DB; - -/** - * Package Export Commons - * - * @author Rob Klein - * @author Teo Sarca, SC ARHIPAC SERVICE SRL - *
  • BF [ 1826279 ] MPackageExpCommon.afterSave: bad implementation - */ -public class MPackageExpCommon extends X_AD_Package_Exp_Common -{ - - /** - * - */ - private static final long serialVersionUID = 5909037163754280398L; - - - /** - * MPackageExpDetail - * @param ctx - * @param int - */ - public MPackageExpCommon (Properties ctx, int AD_Package_Exp_Common_ID, String trxName) - { - super(ctx, AD_Package_Exp_Common_ID, trxName); - - } // MPackageExp - - /** - * MPackageExp - * @param ctx - * @param rs - */ - public MPackageExpCommon (Properties ctx, ResultSet rs, String trxName) - { - super(ctx, rs, trxName); - - } // MPackageExp - - - /* (non-Javadoc) - * @see org.compiere.model.PO#beforeSave(boolean) - */ - @Override - protected boolean beforeSave(boolean newRecord) { - if (getLine() == 0) { - String sql = "SELECT max(Line) FROM AD_Package_Exp_Common" - + " WHERE AD_Package_Exp_Common_ID<>?"; - int lineNo = DB.getSQLValue(get_TrxName(), sql, getAD_Package_Exp_Common_ID()); - if (lineNo >= 0) - setLine(lineNo+10); - } - return true; - } -} // MPackageExpCommon diff --git a/org.adempiere.base/src/org/compiere/model/MPackageExpDetail.java b/org.adempiere.base/src/org/compiere/model/MPackageExpDetail.java index 6c32f41b63..201aeea012 100644 --- a/org.adempiere.base/src/org/compiere/model/MPackageExpDetail.java +++ b/org.adempiere.base/src/org/compiere/model/MPackageExpDetail.java @@ -37,7 +37,6 @@ public class MPackageExpDetail extends X_AD_Package_Exp_Detail private static final long serialVersionUID = 5110078103695767282L; - /** * MPackageExpDetail * @param ctx diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp.java b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp.java index 552e3373cd..9907368457 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp.java @@ -18,6 +18,7 @@ package org.compiere.model; import java.sql.ResultSet; +import java.sql.Timestamp; import java.util.Properties; import org.compiere.util.KeyNamePair; @@ -30,7 +31,7 @@ public class X_AD_Package_Exp extends PO implements I_AD_Package_Exp, I_Persiste /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20120528L; /** Standard Constructor */ public X_AD_Package_Exp (Properties ctx, int AD_Package_Exp_ID, String trxName) @@ -39,16 +40,9 @@ public class X_AD_Package_Exp extends PO implements I_AD_Package_Exp, I_Persiste /** if (AD_Package_Exp_ID == 0) { setAD_Package_Exp_ID (0); - setDescription (null); - setEMail (null); - setFile_Directory (null); - setInstructions (null); setName (null); setPK_Version (null); setProcessing (false); - setReleaseNo (null); - setUserName (null); - setVersion (null); } */ } @@ -59,7 +53,7 @@ public class X_AD_Package_Exp extends PO implements I_AD_Package_Exp, I_Persiste } /** AccessLevel - * @return 4 - System + * @return 6 - System - Client */ protected int get_AccessLevel() { @@ -80,18 +74,18 @@ public class X_AD_Package_Exp extends PO implements I_AD_Package_Exp, I_Persiste return sb.toString(); } - /** Set Package Exp.. - @param AD_Package_Exp_ID Package Exp. */ + /** Set Pack Out. + @param AD_Package_Exp_ID Pack Out */ public void setAD_Package_Exp_ID (int AD_Package_Exp_ID) { if (AD_Package_Exp_ID < 1) - set_Value (COLUMNNAME_AD_Package_Exp_ID, null); + set_ValueNoCheck (COLUMNNAME_AD_Package_Exp_ID, null); else - set_Value (COLUMNNAME_AD_Package_Exp_ID, Integer.valueOf(AD_Package_Exp_ID)); + set_ValueNoCheck (COLUMNNAME_AD_Package_Exp_ID, Integer.valueOf(AD_Package_Exp_ID)); } - /** Get Package Exp.. - @return Package Exp. */ + /** Get Pack Out. + @return Pack Out */ public int getAD_Package_Exp_ID () { Integer ii = (Integer)get_Value(COLUMNNAME_AD_Package_Exp_ID); @@ -100,13 +94,19 @@ public class X_AD_Package_Exp extends PO implements I_AD_Package_Exp, I_Persiste return ii.intValue(); } - /** Get Record ID/ColumnName - @return ID/ColumnName pair - */ - public KeyNamePair getKeyNamePair() - { - return new KeyNamePair(get_ID(), String.valueOf(getAD_Package_Exp_ID())); - } + /** Set Pack Out UUID. + @param AD_Package_Exp_UU Pack Out UUID */ + public void setAD_Package_Exp_UU (String AD_Package_Exp_UU) + { + set_Value (COLUMNNAME_AD_Package_Exp_UU, AD_Package_Exp_UU); + } + + /** Get Pack Out UUID. + @return Pack Out UUID */ + public String getAD_Package_Exp_UU () + { + return (String)get_Value(COLUMNNAME_AD_Package_Exp_UU); + } /** AD_Package_Type AD_Reference_ID=50001 */ public static final int AD_PACKAGE_TYPE_AD_Reference_ID=50001; @@ -131,6 +131,23 @@ public class X_AD_Package_Exp extends PO implements I_AD_Package_Exp, I_Persiste return (String)get_Value(COLUMNNAME_AD_Package_Type); } + /** Set Date From. + @param DateFrom + Starting date for a range + */ + public void setDateFrom (Timestamp DateFrom) + { + set_Value (COLUMNNAME_DateFrom, DateFrom); + } + + /** Get Date From. + @return Starting date for a range + */ + public Timestamp getDateFrom () + { + return (Timestamp)get_Value(COLUMNNAME_DateFrom); + } + /** Set Description. @param Description Optional short description of the record @@ -210,6 +227,14 @@ public class X_AD_Package_Exp extends PO implements I_AD_Package_Exp, I_Persiste return (String)get_Value(COLUMNNAME_Name); } + /** Get Record ID/ColumnName + @return ID/ColumnName pair + */ + public KeyNamePair getKeyNamePair() + { + return new KeyNamePair(get_ID(), getName()); + } + /** Set Package Version. @param PK_Version Package Version */ public void setPK_Version (String PK_Version) diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp_Common.java b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp_Common.java deleted file mode 100644 index 251b3b1c17..0000000000 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp_Common.java +++ /dev/null @@ -1,659 +0,0 @@ -/****************************************************************************** - * Product: Adempiere ERP & CRM Smart Business Solution * - * Copyright (C) 1999-2007 ComPiere, Inc. All Rights Reserved. * - * This program is free software, you can redistribute it and/or modify it * - * under the terms version 2 of the GNU General Public License as published * - * by the Free Software Foundation. This program is distributed in the hope * - * that it will be useful, but WITHOUT ANY WARRANTY, without even the implied * - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * - * See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along * - * with this program, if not, write to the Free Software Foundation, Inc., * - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * - * For the text or an alternative of this public license, you may reach us * - * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * - * or via info@compiere.org or http://www.compiere.org/license.html * - *****************************************************************************/ -/** Generated Model - DO NOT CHANGE */ -package org.compiere.model; - -import java.sql.ResultSet; -import java.util.Properties; -import org.compiere.util.KeyNamePair; - -/** Generated Model for AD_Package_Exp_Common - * @author Adempiere (generated) - * @version Release 3.6.0LTS - $Id$ */ -public class X_AD_Package_Exp_Common extends PO implements I_AD_Package_Exp_Common, I_Persistent -{ - - /** - * - */ - private static final long serialVersionUID = 20100614L; - - /** Standard Constructor */ - public X_AD_Package_Exp_Common (Properties ctx, int AD_Package_Exp_Common_ID, String trxName) - { - super (ctx, AD_Package_Exp_Common_ID, trxName); - /** if (AD_Package_Exp_Common_ID == 0) - { - setAD_Package_Exp_Common_ID (0); - } */ - } - - /** Load Constructor */ - public X_AD_Package_Exp_Common (Properties ctx, ResultSet rs, String trxName) - { - super (ctx, rs, trxName); - } - - /** AccessLevel - * @return 4 - System - */ - protected int get_AccessLevel() - { - return accessLevel.intValue(); - } - - /** Load Meta Data */ - protected POInfo initPO (Properties ctx) - { - POInfo poi = POInfo.getPOInfo (ctx, Table_ID, get_TrxName()); - return poi; - } - - public String toString() - { - StringBuffer sb = new StringBuffer ("X_AD_Package_Exp_Common[") - .append(get_ID()).append("]"); - return sb.toString(); - } - - public I_AD_Form getAD_Form() throws RuntimeException - { - return (I_AD_Form)MTable.get(getCtx(), I_AD_Form.Table_Name) - .getPO(getAD_Form_ID(), get_TrxName()); } - - /** Set Special Form. - @param AD_Form_ID - Special Form - */ - public void setAD_Form_ID (int AD_Form_ID) - { - if (AD_Form_ID < 1) - set_Value (COLUMNNAME_AD_Form_ID, null); - else - set_Value (COLUMNNAME_AD_Form_ID, Integer.valueOf(AD_Form_ID)); - } - - /** Get Special Form. - @return Special Form - */ - public int getAD_Form_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_Form_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - public I_AD_ImpFormat getAD_ImpFormat() throws RuntimeException - { - return (I_AD_ImpFormat)MTable.get(getCtx(), I_AD_ImpFormat.Table_Name) - .getPO(getAD_ImpFormat_ID(), get_TrxName()); } - - /** Set Import Format. - @param AD_ImpFormat_ID Import Format */ - public void setAD_ImpFormat_ID (int AD_ImpFormat_ID) - { - if (AD_ImpFormat_ID < 1) - set_Value (COLUMNNAME_AD_ImpFormat_ID, null); - else - set_Value (COLUMNNAME_AD_ImpFormat_ID, Integer.valueOf(AD_ImpFormat_ID)); - } - - /** Get Import Format. - @return Import Format */ - public int getAD_ImpFormat_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_ImpFormat_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - public I_AD_Menu getAD_Menu() throws RuntimeException - { - return (I_AD_Menu)MTable.get(getCtx(), I_AD_Menu.Table_Name) - .getPO(getAD_Menu_ID(), get_TrxName()); } - - /** Set Menu. - @param AD_Menu_ID - Identifies a Menu - */ - public void setAD_Menu_ID (int AD_Menu_ID) - { - if (AD_Menu_ID < 1) - set_Value (COLUMNNAME_AD_Menu_ID, null); - else - set_Value (COLUMNNAME_AD_Menu_ID, Integer.valueOf(AD_Menu_ID)); - } - - /** Get Menu. - @return Identifies a Menu - */ - public int getAD_Menu_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_Menu_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Common Package Exp.. - @param AD_Package_Exp_Common_ID Common Package Exp. */ - public void setAD_Package_Exp_Common_ID (int AD_Package_Exp_Common_ID) - { - if (AD_Package_Exp_Common_ID < 1) - set_ValueNoCheck (COLUMNNAME_AD_Package_Exp_Common_ID, null); - else - set_ValueNoCheck (COLUMNNAME_AD_Package_Exp_Common_ID, Integer.valueOf(AD_Package_Exp_Common_ID)); - } - - /** Get Common Package Exp.. - @return Common Package Exp. */ - public int getAD_Package_Exp_Common_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_Package_Exp_Common_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Get Record ID/ColumnName - @return ID/ColumnName pair - */ - public KeyNamePair getKeyNamePair() - { - return new KeyNamePair(get_ID(), String.valueOf(getAD_Package_Exp_Common_ID())); - } - - public I_AD_Process getAD_Process() throws RuntimeException - { - return (I_AD_Process)MTable.get(getCtx(), I_AD_Process.Table_Name) - .getPO(getAD_Process_ID(), get_TrxName()); } - - /** Set Process. - @param AD_Process_ID - Process or Report - */ - public void setAD_Process_ID (int AD_Process_ID) - { - if (AD_Process_ID < 1) - set_Value (COLUMNNAME_AD_Process_ID, null); - else - set_Value (COLUMNNAME_AD_Process_ID, Integer.valueOf(AD_Process_ID)); - } - - /** Get Process. - @return Process or Report - */ - public int getAD_Process_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_Process_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - public I_AD_ReportView getAD_ReportView() throws RuntimeException - { - return (I_AD_ReportView)MTable.get(getCtx(), I_AD_ReportView.Table_Name) - .getPO(getAD_ReportView_ID(), get_TrxName()); } - - /** Set Report View. - @param AD_ReportView_ID - View used to generate this report - */ - public void setAD_ReportView_ID (int AD_ReportView_ID) - { - if (AD_ReportView_ID < 1) - set_Value (COLUMNNAME_AD_ReportView_ID, null); - else - set_Value (COLUMNNAME_AD_ReportView_ID, Integer.valueOf(AD_ReportView_ID)); - } - - /** Get Report View. - @return View used to generate this report - */ - public int getAD_ReportView_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_ReportView_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - public I_AD_Role getAD_Role() throws RuntimeException - { - return (I_AD_Role)MTable.get(getCtx(), I_AD_Role.Table_Name) - .getPO(getAD_Role_ID(), get_TrxName()); } - - /** Set Role. - @param AD_Role_ID - Responsibility Role - */ - public void setAD_Role_ID (int AD_Role_ID) - { - if (AD_Role_ID < 0) - set_Value (COLUMNNAME_AD_Role_ID, null); - else - set_Value (COLUMNNAME_AD_Role_ID, Integer.valueOf(AD_Role_ID)); - } - - /** Get Role. - @return Responsibility Role - */ - public int getAD_Role_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_Role_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - public I_AD_Table getAD_Table() throws RuntimeException - { - return (I_AD_Table)MTable.get(getCtx(), I_AD_Table.Table_Name) - .getPO(getAD_Table_ID(), get_TrxName()); } - - /** Set Table. - @param AD_Table_ID - Database Table information - */ - public void setAD_Table_ID (int AD_Table_ID) - { - if (AD_Table_ID < 1) - set_Value (COLUMNNAME_AD_Table_ID, null); - else - set_Value (COLUMNNAME_AD_Table_ID, Integer.valueOf(AD_Table_ID)); - } - - /** Get Table. - @return Database Table information - */ - public int getAD_Table_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_Table_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - public I_AD_Window getAD_Window() throws RuntimeException - { - return (I_AD_Window)MTable.get(getCtx(), I_AD_Window.Table_Name) - .getPO(getAD_Window_ID(), get_TrxName()); } - - /** Set Window. - @param AD_Window_ID - Data entry or display window - */ - public void setAD_Window_ID (int AD_Window_ID) - { - if (AD_Window_ID < 1) - set_Value (COLUMNNAME_AD_Window_ID, null); - else - set_Value (COLUMNNAME_AD_Window_ID, Integer.valueOf(AD_Window_ID)); - } - - /** Get Window. - @return Data entry or display window - */ - public int getAD_Window_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_Window_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - public I_AD_Workbench getAD_Workbench() throws RuntimeException - { - return (I_AD_Workbench)MTable.get(getCtx(), I_AD_Workbench.Table_Name) - .getPO(getAD_Workbench_ID(), get_TrxName()); } - - /** Set Workbench. - @param AD_Workbench_ID - Collection of windows, reports - */ - public void setAD_Workbench_ID (int AD_Workbench_ID) - { - if (AD_Workbench_ID < 1) - set_Value (COLUMNNAME_AD_Workbench_ID, null); - else - set_Value (COLUMNNAME_AD_Workbench_ID, Integer.valueOf(AD_Workbench_ID)); - } - - /** Get Workbench. - @return Collection of windows, reports - */ - public int getAD_Workbench_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_Workbench_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - public I_AD_Workflow getAD_Workflow() throws RuntimeException - { - return (I_AD_Workflow)MTable.get(getCtx(), I_AD_Workflow.Table_Name) - .getPO(getAD_Workflow_ID(), get_TrxName()); } - - /** Set Workflow. - @param AD_Workflow_ID - Workflow or combination of tasks - */ - public void setAD_Workflow_ID (int AD_Workflow_ID) - { - if (AD_Workflow_ID < 1) - set_Value (COLUMNNAME_AD_Workflow_ID, null); - else - set_Value (COLUMNNAME_AD_Workflow_ID, Integer.valueOf(AD_Workflow_ID)); - } - - /** Get Workflow. - @return Workflow or combination of tasks - */ - public int getAD_Workflow_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_AD_Workflow_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** DBType AD_Reference_ID=50003 */ - public static final int DBTYPE_AD_Reference_ID=50003; - /** All Database Types = ALL */ - public static final String DBTYPE_AllDatabaseTypes = "ALL"; - /** DB2 = DB2 */ - public static final String DBTYPE_DB2 = "DB2"; - /** Firebird = Firebird */ - public static final String DBTYPE_Firebird = "Firebird"; - /** MySQL = MySQL */ - public static final String DBTYPE_MySQL = "MySQL"; - /** Oracle = Oracle */ - public static final String DBTYPE_Oracle = "Oracle"; - /** Postgres = Postgres */ - public static final String DBTYPE_Postgres = "Postgres"; - /** SQL Server = SQL */ - public static final String DBTYPE_SQLServer = "SQL"; - /** Sybase = Sybase */ - public static final String DBTYPE_Sybase = "Sybase"; - /** Set DBType. - @param DBType DBType */ - public void setDBType (String DBType) - { - - set_Value (COLUMNNAME_DBType, DBType); - } - - /** Get DBType. - @return DBType */ - public String getDBType () - { - return (String)get_Value(COLUMNNAME_DBType); - } - - /** Set Description. - @param Description - Optional short description of the record - */ - public void setDescription (String Description) - { - set_Value (COLUMNNAME_Description, Description); - } - - /** Get Description. - @return Optional short description of the record - */ - public String getDescription () - { - return (String)get_Value(COLUMNNAME_Description); - } - - /** Set Destination_Directory. - @param Destination_Directory Destination_Directory */ - public void setDestination_Directory (String Destination_Directory) - { - set_Value (COLUMNNAME_Destination_Directory, Destination_Directory); - } - - /** Get Destination_Directory. - @return Destination_Directory */ - public String getDestination_Directory () - { - return (String)get_Value(COLUMNNAME_Destination_Directory); - } - - /** Set File_Directory. - @param File_Directory File_Directory */ - public void setFile_Directory (String File_Directory) - { - set_Value (COLUMNNAME_File_Directory, File_Directory); - } - - /** Get File_Directory. - @return File_Directory */ - public String getFile_Directory () - { - return (String)get_Value(COLUMNNAME_File_Directory); - } - - /** Set File Name. - @param FileName - Name of the local file or URL - */ - public void setFileName (String FileName) - { - set_Value (COLUMNNAME_FileName, FileName); - } - - /** Get File Name. - @return Name of the local file or URL - */ - public String getFileName () - { - return (String)get_Value(COLUMNNAME_FileName); - } - - /** Set Line No. - @param Line - Unique line for this document - */ - public void setLine (int Line) - { - set_Value (COLUMNNAME_Line, Integer.valueOf(Line)); - } - - /** Get Line No. - @return Unique line for this document - */ - public int getLine () - { - Integer ii = (Integer)get_Value(COLUMNNAME_Line); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Name. - @param Name - Alphanumeric identifier of the entity - */ - public void setName (String Name) - { - set_Value (COLUMNNAME_Name, Name); - } - - /** Get Name. - @return Alphanumeric identifier of the entity - */ - public String getName () - { - return (String)get_Value(COLUMNNAME_Name); - } - - /** Set Name 2. - @param Name2 - Additional Name - */ - public void setName2 (String Name2) - { - set_Value (COLUMNNAME_Name2, Name2); - } - - /** Get Name 2. - @return Additional Name - */ - public String getName2 () - { - return (String)get_Value(COLUMNNAME_Name2); - } - - /** Set Processed. - @param Processed - The document has been processed - */ - public void setProcessed (boolean Processed) - { - set_Value (COLUMNNAME_Processed, Boolean.valueOf(Processed)); - } - - /** Get Processed. - @return The document has been processed - */ - public boolean isProcessed () - { - Object oo = get_Value(COLUMNNAME_Processed); - if (oo != null) - { - if (oo instanceof Boolean) - return ((Boolean)oo).booleanValue(); - return "Y".equals(oo); - } - return false; - } - - /** Set Process Now. - @param Processing Process Now */ - public void setProcessing (boolean Processing) - { - set_Value (COLUMNNAME_Processing, Boolean.valueOf(Processing)); - } - - /** Get Process Now. - @return Process Now */ - public boolean isProcessing () - { - Object oo = get_Value(COLUMNNAME_Processing); - if (oo != null) - { - if (oo instanceof Boolean) - return ((Boolean)oo).booleanValue(); - return "Y".equals(oo); - } - return false; - } - - /** Set SQLStatement. - @param SQLStatement SQLStatement */ - public void setSQLStatement (String SQLStatement) - { - set_Value (COLUMNNAME_SQLStatement, SQLStatement); - } - - /** Get SQLStatement. - @return SQLStatement */ - public String getSQLStatement () - { - return (String)get_Value(COLUMNNAME_SQLStatement); - } - - /** Set Target_Directory. - @param Target_Directory Target_Directory */ - public void setTarget_Directory (String Target_Directory) - { - set_Value (COLUMNNAME_Target_Directory, Target_Directory); - } - - /** Get Target_Directory. - @return Target_Directory */ - public String getTarget_Directory () - { - return (String)get_Value(COLUMNNAME_Target_Directory); - } - - /** Type AD_Reference_ID=50004 */ - public static final int TYPE_AD_Reference_ID=50004; - /** Workbench = B */ - public static final String TYPE_Workbench = "B"; - /** File - Code or other = C */ - public static final String TYPE_File_CodeOrOther = "C"; - /** Data = D */ - public static final String TYPE_Data = "D"; - /** Workflow = F */ - public static final String TYPE_Workflow = "F"; - /** Import Format = IMP */ - public static final String TYPE_ImportFormat = "IMP"; - /** Application or Module = M */ - public static final String TYPE_ApplicationOrModule = "M"; - /** Process/Report = P */ - public static final String TYPE_ProcessReport = "P"; - /** ReportView = R */ - public static final String TYPE_ReportView = "R"; - /** Role = S */ - public static final String TYPE_Role = "S"; - /** Code Snipit = SNI */ - public static final String TYPE_CodeSnipit = "SNI"; - /** SQL Statement = SQL */ - public static final String TYPE_SQLStatement = "SQL"; - /** Table = T */ - public static final String TYPE_Table = "T"; - /** Window = W */ - public static final String TYPE_Window = "W"; - /** Form = X */ - public static final String TYPE_Form = "X"; - /** Dynamic Validation Rule = V */ - public static final String TYPE_DynamicValidationRule = "V"; - /** Message = MSG */ - public static final String TYPE_Message = "MSG"; - /** PrintFormat = PFT */ - public static final String TYPE_PrintFormat = "PFT"; - /** Reference = REF */ - public static final String TYPE_Reference = "REF"; - /** Model Validator = MV */ - public static final String TYPE_ModelValidator = "MV"; - /** Entity Type = ET */ - public static final String TYPE_EntityType = "ET"; - /** Set Type. - @param Type - Type of Validation (SQL, Java Script, Java Language) - */ - public void setType (String Type) - { - - set_Value (COLUMNNAME_Type, Type); - } - - /** Get Type. - @return Type of Validation (SQL, Java Script, Java Language) - */ - public String getType () - { - return (String)get_Value(COLUMNNAME_Type); - } -} \ No newline at end of file diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp_Detail.java b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp_Detail.java index a2b8c21ea4..5396e5e3fc 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp_Detail.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Exp_Detail.java @@ -30,7 +30,7 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20120528L; /** Standard Constructor */ public X_AD_Package_Exp_Detail (Properties ctx, int AD_Package_Exp_Detail_ID, String trxName) @@ -40,7 +40,6 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta { setAD_Package_Exp_Detail_ID (0); setAD_Package_Exp_ID (0); - setDescription (null); setProcessing (false); setType (null); } */ @@ -53,7 +52,7 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta } /** AccessLevel - * @return 4 - System + * @return 6 - System - Client */ protected int get_AccessLevel() { @@ -74,9 +73,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return sb.toString(); } - public I_AD_EntityType getAD_EntityType() throws RuntimeException + public org.compiere.model.I_AD_EntityType getAD_EntityType() throws RuntimeException { - return (I_AD_EntityType)MTable.get(getCtx(), I_AD_EntityType.Table_Name) + return (org.compiere.model.I_AD_EntityType)MTable.get(getCtx(), org.compiere.model.I_AD_EntityType.Table_Name) .getPO(getAD_EntityType_ID(), get_TrxName()); } /** Set Entity Type. @@ -102,9 +101,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Form getAD_Form() throws RuntimeException + public org.compiere.model.I_AD_Form getAD_Form() throws RuntimeException { - return (I_AD_Form)MTable.get(getCtx(), I_AD_Form.Table_Name) + return (org.compiere.model.I_AD_Form)MTable.get(getCtx(), org.compiere.model.I_AD_Form.Table_Name) .getPO(getAD_Form_ID(), get_TrxName()); } /** Set Special Form. @@ -130,9 +129,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_ImpFormat getAD_ImpFormat() throws RuntimeException + public org.compiere.model.I_AD_ImpFormat getAD_ImpFormat() throws RuntimeException { - return (I_AD_ImpFormat)MTable.get(getCtx(), I_AD_ImpFormat.Table_Name) + return (org.compiere.model.I_AD_ImpFormat)MTable.get(getCtx(), org.compiere.model.I_AD_ImpFormat.Table_Name) .getPO(getAD_ImpFormat_ID(), get_TrxName()); } /** Set Import Format. @@ -155,9 +154,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Menu getAD_Menu() throws RuntimeException + public org.compiere.model.I_AD_Menu getAD_Menu() throws RuntimeException { - return (I_AD_Menu)MTable.get(getCtx(), I_AD_Menu.Table_Name) + return (org.compiere.model.I_AD_Menu)MTable.get(getCtx(), org.compiere.model.I_AD_Menu.Table_Name) .getPO(getAD_Menu_ID(), get_TrxName()); } /** Set Menu. @@ -183,9 +182,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Message getAD_Message() throws RuntimeException + public org.compiere.model.I_AD_Message getAD_Message() throws RuntimeException { - return (I_AD_Message)MTable.get(getCtx(), I_AD_Message.Table_Name) + return (org.compiere.model.I_AD_Message)MTable.get(getCtx(), org.compiere.model.I_AD_Message.Table_Name) .getPO(getAD_Message_ID(), get_TrxName()); } /** Set Message. @@ -211,9 +210,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_ModelValidator getAD_ModelValidator() throws RuntimeException + public org.compiere.model.I_AD_ModelValidator getAD_ModelValidator() throws RuntimeException { - return (I_AD_ModelValidator)MTable.get(getCtx(), I_AD_ModelValidator.Table_Name) + return (org.compiere.model.I_AD_ModelValidator)MTable.get(getCtx(), org.compiere.model.I_AD_ModelValidator.Table_Name) .getPO(getAD_ModelValidator_ID(), get_TrxName()); } /** Set Model Validator. @@ -292,14 +291,33 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return new KeyNamePair(get_ID(), String.valueOf(getAD_Package_Exp_Detail_ID())); } + /** Set AD_Package_Exp_Detail_UU. + @param AD_Package_Exp_Detail_UU AD_Package_Exp_Detail_UU */ + public void setAD_Package_Exp_Detail_UU (String AD_Package_Exp_Detail_UU) + { + set_Value (COLUMNNAME_AD_Package_Exp_Detail_UU, AD_Package_Exp_Detail_UU); + } + + /** Get AD_Package_Exp_Detail_UU. + @return AD_Package_Exp_Detail_UU */ + public String getAD_Package_Exp_Detail_UU () + { + return (String)get_Value(COLUMNNAME_AD_Package_Exp_Detail_UU); + } + + public org.compiere.model.I_AD_Package_Exp getAD_Package_Exp() throws RuntimeException + { + return (org.compiere.model.I_AD_Package_Exp)MTable.get(getCtx(), org.compiere.model.I_AD_Package_Exp.Table_Name) + .getPO(getAD_Package_Exp_ID(), get_TrxName()); } + /** Set Package Exp.. @param AD_Package_Exp_ID Package Exp. */ public void setAD_Package_Exp_ID (int AD_Package_Exp_ID) { if (AD_Package_Exp_ID < 1) - set_Value (COLUMNNAME_AD_Package_Exp_ID, null); + set_ValueNoCheck (COLUMNNAME_AD_Package_Exp_ID, null); else - set_Value (COLUMNNAME_AD_Package_Exp_ID, Integer.valueOf(AD_Package_Exp_ID)); + set_ValueNoCheck (COLUMNNAME_AD_Package_Exp_ID, Integer.valueOf(AD_Package_Exp_ID)); } /** Get Package Exp.. @@ -312,9 +330,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_PrintFormat getAD_PrintFormat() throws RuntimeException + public org.compiere.model.I_AD_PrintFormat getAD_PrintFormat() throws RuntimeException { - return (I_AD_PrintFormat)MTable.get(getCtx(), I_AD_PrintFormat.Table_Name) + return (org.compiere.model.I_AD_PrintFormat)MTable.get(getCtx(), org.compiere.model.I_AD_PrintFormat.Table_Name) .getPO(getAD_PrintFormat_ID(), get_TrxName()); } /** Set Print Format. @@ -340,9 +358,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Process getAD_Process() throws RuntimeException + public org.compiere.model.I_AD_Process getAD_Process() throws RuntimeException { - return (I_AD_Process)MTable.get(getCtx(), I_AD_Process.Table_Name) + return (org.compiere.model.I_AD_Process)MTable.get(getCtx(), org.compiere.model.I_AD_Process.Table_Name) .getPO(getAD_Process_ID(), get_TrxName()); } /** Set Process. @@ -368,9 +386,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Reference getAD_Reference() throws RuntimeException + public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException { - return (I_AD_Reference)MTable.get(getCtx(), I_AD_Reference.Table_Name) + return (org.compiere.model.I_AD_Reference)MTable.get(getCtx(), org.compiere.model.I_AD_Reference.Table_Name) .getPO(getAD_Reference_ID(), get_TrxName()); } /** Set Reference. @@ -396,9 +414,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_ReportView getAD_ReportView() throws RuntimeException + public org.compiere.model.I_AD_ReportView getAD_ReportView() throws RuntimeException { - return (I_AD_ReportView)MTable.get(getCtx(), I_AD_ReportView.Table_Name) + return (org.compiere.model.I_AD_ReportView)MTable.get(getCtx(), org.compiere.model.I_AD_ReportView.Table_Name) .getPO(getAD_ReportView_ID(), get_TrxName()); } /** Set Report View. @@ -424,9 +442,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Role getAD_Role() throws RuntimeException + public org.compiere.model.I_AD_Role getAD_Role() throws RuntimeException { - return (I_AD_Role)MTable.get(getCtx(), I_AD_Role.Table_Name) + return (org.compiere.model.I_AD_Role)MTable.get(getCtx(), org.compiere.model.I_AD_Role.Table_Name) .getPO(getAD_Role_ID(), get_TrxName()); } /** Set Role. @@ -452,9 +470,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Table getAD_Table() throws RuntimeException + public org.compiere.model.I_AD_Table getAD_Table() throws RuntimeException { - return (I_AD_Table)MTable.get(getCtx(), I_AD_Table.Table_Name) + return (org.compiere.model.I_AD_Table)MTable.get(getCtx(), org.compiere.model.I_AD_Table.Table_Name) .getPO(getAD_Table_ID(), get_TrxName()); } /** Set Table. @@ -503,9 +521,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Window getAD_Window() throws RuntimeException + public org.compiere.model.I_AD_Window getAD_Window() throws RuntimeException { - return (I_AD_Window)MTable.get(getCtx(), I_AD_Window.Table_Name) + return (org.compiere.model.I_AD_Window)MTable.get(getCtx(), org.compiere.model.I_AD_Window.Table_Name) .getPO(getAD_Window_ID(), get_TrxName()); } /** Set Window. @@ -531,9 +549,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Workbench getAD_Workbench() throws RuntimeException + public org.compiere.model.I_AD_Workbench getAD_Workbench() throws RuntimeException { - return (I_AD_Workbench)MTable.get(getCtx(), I_AD_Workbench.Table_Name) + return (org.compiere.model.I_AD_Workbench)MTable.get(getCtx(), org.compiere.model.I_AD_Workbench.Table_Name) .getPO(getAD_Workbench_ID(), get_TrxName()); } /** Set Workbench. @@ -559,9 +577,9 @@ public class X_AD_Package_Exp_Detail extends PO implements I_AD_Package_Exp_Deta return ii.intValue(); } - public I_AD_Workflow getAD_Workflow() throws RuntimeException + public org.compiere.model.I_AD_Workflow getAD_Workflow() throws RuntimeException { - return (I_AD_Workflow)MTable.get(getCtx(), I_AD_Workflow.Table_Name) + return (org.compiere.model.I_AD_Workflow)MTable.get(getCtx(), org.compiere.model.I_AD_Workflow.Table_Name) .getPO(getAD_Workflow_ID(), get_TrxName()); } /** Set Workflow. diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp.java b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp.java index 2a3315fbe7..11dbb6b043 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp.java @@ -30,7 +30,7 @@ public class X_AD_Package_Imp extends PO implements I_AD_Package_Imp, I_Persiste /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20120528L; /** Standard Constructor */ public X_AD_Package_Imp (Properties ctx, int AD_Package_Imp_ID, String trxName) @@ -39,7 +39,6 @@ public class X_AD_Package_Imp extends PO implements I_AD_Package_Imp, I_Persiste /** if (AD_Package_Imp_ID == 0) { setAD_Package_Imp_ID (0); - setDescription (null); setName (null); setProcessing (false); } */ @@ -52,7 +51,7 @@ public class X_AD_Package_Imp extends PO implements I_AD_Package_Imp, I_Persiste } /** AccessLevel - * @return 4 - System + * @return 6 - System - Client */ protected int get_AccessLevel() { @@ -101,6 +100,20 @@ public class X_AD_Package_Imp extends PO implements I_AD_Package_Imp, I_Persiste return new KeyNamePair(get_ID(), String.valueOf(getAD_Package_Imp_ID())); } + /** Set AD_Package_Imp_UU. + @param AD_Package_Imp_UU AD_Package_Imp_UU */ + public void setAD_Package_Imp_UU (String AD_Package_Imp_UU) + { + set_Value (COLUMNNAME_AD_Package_Imp_UU, AD_Package_Imp_UU); + } + + /** Get AD_Package_Imp_UU. + @return AD_Package_Imp_UU */ + public String getAD_Package_Imp_UU () + { + return (String)get_Value(COLUMNNAME_AD_Package_Imp_UU); + } + /** Set CreatedDate. @param CreatedDate CreatedDate */ public void setCreatedDate (String CreatedDate) @@ -194,15 +207,15 @@ public class X_AD_Package_Imp extends PO implements I_AD_Package_Imp, I_Persiste return (String)get_Value(COLUMNNAME_Name); } - /** Set PK_Status. - @param PK_Status PK_Status */ + /** Set Package Status. + @param PK_Status Package Status */ public void setPK_Status (String PK_Status) { set_Value (COLUMNNAME_PK_Status, PK_Status); } - /** Get PK_Status. - @return PK_Status */ + /** Get Package Status. + @return Package Status */ public String getPK_Status () { return (String)get_Value(COLUMNNAME_PK_Status); diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Backup.java b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Backup.java index e199bea6ac..cce149d18e 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Backup.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Backup.java @@ -30,7 +30,7 @@ public class X_AD_Package_Imp_Backup extends PO implements I_AD_Package_Imp_Back /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20120528L; /** Standard Constructor */ public X_AD_Package_Imp_Backup (Properties ctx, int AD_Package_Imp_Backup_ID, String trxName) @@ -51,7 +51,7 @@ public class X_AD_Package_Imp_Backup extends PO implements I_AD_Package_Imp_Back } /** AccessLevel - * @return 4 - System + * @return 6 - System - Client */ protected int get_AccessLevel() { @@ -72,9 +72,9 @@ public class X_AD_Package_Imp_Backup extends PO implements I_AD_Package_Imp_Back return sb.toString(); } - public I_AD_Column getAD_Column() throws RuntimeException + public org.compiere.model.I_AD_Column getAD_Column() throws RuntimeException { - return (I_AD_Column)MTable.get(getCtx(), I_AD_Column.Table_Name) + return (org.compiere.model.I_AD_Column)MTable.get(getCtx(), org.compiere.model.I_AD_Column.Table_Name) .getPO(getAD_Column_ID(), get_TrxName()); } /** Set Column. @@ -128,6 +128,20 @@ public class X_AD_Package_Imp_Backup extends PO implements I_AD_Package_Imp_Back return new KeyNamePair(get_ID(), String.valueOf(getAD_Package_Imp_Backup_ID())); } + /** Set AD_Package_Imp_Backup_UU. + @param AD_Package_Imp_Backup_UU AD_Package_Imp_Backup_UU */ + public void setAD_Package_Imp_Backup_UU (String AD_Package_Imp_Backup_UU) + { + set_Value (COLUMNNAME_AD_Package_Imp_Backup_UU, AD_Package_Imp_Backup_UU); + } + + /** Get AD_Package_Imp_Backup_UU. + @return AD_Package_Imp_Backup_UU */ + public String getAD_Package_Imp_Backup_UU () + { + return (String)get_Value(COLUMNNAME_AD_Package_Imp_Backup_UU); + } + /** Set Package Imp. Bck. Directory. @param AD_Package_Imp_Bck_Dir Package Imp. Bck. Directory */ public void setAD_Package_Imp_Bck_Dir (String AD_Package_Imp_Bck_Dir) @@ -196,9 +210,9 @@ public class X_AD_Package_Imp_Backup extends PO implements I_AD_Package_Imp_Back return (String)get_Value(COLUMNNAME_AD_Package_Imp_Org_Dir); } - public I_AD_Reference getAD_Reference() throws RuntimeException + public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException { - return (I_AD_Reference)MTable.get(getCtx(), I_AD_Reference.Table_Name) + return (org.compiere.model.I_AD_Reference)MTable.get(getCtx(), org.compiere.model.I_AD_Reference.Table_Name) .getPO(getAD_Reference_ID(), get_TrxName()); } /** Set Reference. diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Detail.java b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Detail.java index 70912cccf9..5e9558552d 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Detail.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Detail.java @@ -29,7 +29,7 @@ public class X_AD_Package_Imp_Detail extends PO implements I_AD_Package_Imp_Deta /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20120528L; /** Standard Constructor */ public X_AD_Package_Imp_Detail (Properties ctx, int AD_Package_Imp_Detail_ID, String trxName) @@ -50,7 +50,7 @@ public class X_AD_Package_Imp_Detail extends PO implements I_AD_Package_Imp_Deta } /** AccessLevel - * @return 4 - System + * @return 6 - System - Client */ protected int get_AccessLevel() { @@ -148,6 +148,20 @@ public class X_AD_Package_Imp_Detail extends PO implements I_AD_Package_Imp_Deta return ii.intValue(); } + /** Set AD_Package_Imp_Detail_UU. + @param AD_Package_Imp_Detail_UU AD_Package_Imp_Detail_UU */ + public void setAD_Package_Imp_Detail_UU (String AD_Package_Imp_Detail_UU) + { + set_Value (COLUMNNAME_AD_Package_Imp_Detail_UU, AD_Package_Imp_Detail_UU); + } + + /** Get AD_Package_Imp_Detail_UU. + @return AD_Package_Imp_Detail_UU */ + public String getAD_Package_Imp_Detail_UU () + { + return (String)get_Value(COLUMNNAME_AD_Package_Imp_Detail_UU); + } + /** Set Package Imp.. @param AD_Package_Imp_ID Package Imp. */ public void setAD_Package_Imp_ID (int AD_Package_Imp_ID) diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Inst.java b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Inst.java index 757d8f9bb1..6b7d668d9d 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Inst.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Inst.java @@ -30,7 +30,7 @@ public class X_AD_Package_Imp_Inst extends PO implements I_AD_Package_Imp_Inst, /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20120528L; /** Standard Constructor */ public X_AD_Package_Imp_Inst (Properties ctx, int AD_Package_Imp_Inst_ID, String trxName) @@ -49,7 +49,7 @@ public class X_AD_Package_Imp_Inst extends PO implements I_AD_Package_Imp_Inst, } /** AccessLevel - * @return 4 - System + * @return 6 - System - Client */ protected int get_AccessLevel() { @@ -90,6 +90,20 @@ public class X_AD_Package_Imp_Inst extends PO implements I_AD_Package_Imp_Inst, return ii.intValue(); } + /** Set AD_Package_Imp_Inst_UU. + @param AD_Package_Imp_Inst_UU AD_Package_Imp_Inst_UU */ + public void setAD_Package_Imp_Inst_UU (String AD_Package_Imp_Inst_UU) + { + set_Value (COLUMNNAME_AD_Package_Imp_Inst_UU, AD_Package_Imp_Inst_UU); + } + + /** Get AD_Package_Imp_Inst_UU. + @return AD_Package_Imp_Inst_UU */ + public String getAD_Package_Imp_Inst_UU () + { + return (String)get_Value(COLUMNNAME_AD_Package_Imp_Inst_UU); + } + /** Set CreatedDate. @param CreatedDate CreatedDate */ public void setCreatedDate (String CreatedDate) @@ -191,15 +205,15 @@ public class X_AD_Package_Imp_Inst extends PO implements I_AD_Package_Imp_Inst, return new KeyNamePair(get_ID(), getName()); } - /** Set PK_Status. - @param PK_Status PK_Status */ + /** Set Package Status. + @param PK_Status Package Status */ public void setPK_Status (String PK_Status) { set_Value (COLUMNNAME_PK_Status, PK_Status); } - /** Get PK_Status. - @return PK_Status */ + /** Get Package Status. + @return Package Status */ public String getPK_Status () { return (String)get_Value(COLUMNNAME_PK_Status); diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Proc.java b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Proc.java index a062d8651b..e8f9a98b9f 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Proc.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Package_Imp_Proc.java @@ -18,6 +18,7 @@ package org.compiere.model; import java.sql.ResultSet; +import java.sql.Timestamp; import java.util.Properties; /** Generated Model for AD_Package_Imp_Proc @@ -29,7 +30,7 @@ public class X_AD_Package_Imp_Proc extends PO implements I_AD_Package_Imp_Proc, /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20120528L; /** Standard Constructor */ public X_AD_Package_Imp_Proc (Properties ctx, int AD_Package_Imp_Proc_ID, String trxName) @@ -37,10 +38,10 @@ public class X_AD_Package_Imp_Proc extends PO implements I_AD_Package_Imp_Proc, super (ctx, AD_Package_Imp_Proc_ID, trxName); /** if (AD_Package_Imp_Proc_ID == 0) { - setAD_Package_Dir (null); setAD_Package_Imp_Proc_ID (0); - setAD_Package_Source (null); setAD_Package_Source_Type (null); +// 'File' + setName (null); } */ } @@ -51,7 +52,7 @@ public class X_AD_Package_Imp_Proc extends PO implements I_AD_Package_Imp_Proc, } /** AccessLevel - * @return 4 - System + * @return 6 - System - Client */ protected int get_AccessLevel() { @@ -130,6 +131,20 @@ public class X_AD_Package_Imp_Proc extends PO implements I_AD_Package_Imp_Proc, return ii.intValue(); } + /** Set AD_Package_Imp_Proc_UU. + @param AD_Package_Imp_Proc_UU AD_Package_Imp_Proc_UU */ + public void setAD_Package_Imp_Proc_UU (String AD_Package_Imp_Proc_UU) + { + set_Value (COLUMNNAME_AD_Package_Imp_Proc_UU, AD_Package_Imp_Proc_UU); + } + + /** Get AD_Package_Imp_Proc_UU. + @return AD_Package_Imp_Proc_UU */ + public String getAD_Package_Imp_Proc_UU () + { + return (String)get_Value(COLUMNNAME_AD_Package_Imp_Proc_UU); + } + /** Set Package Source. @param AD_Package_Source Fully qualified package source file name @@ -171,6 +186,51 @@ public class X_AD_Package_Imp_Proc extends PO implements I_AD_Package_Imp_Proc, return (String)get_Value(COLUMNNAME_AD_Package_Source_Type); } + /** Set Date Processed. + @param DateProcessed Date Processed */ + public void setDateProcessed (Timestamp DateProcessed) + { + set_Value (COLUMNNAME_DateProcessed, DateProcessed); + } + + /** Get Date Processed. + @return Date Processed */ + public Timestamp getDateProcessed () + { + return (Timestamp)get_Value(COLUMNNAME_DateProcessed); + } + + /** Set Name. + @param Name + Alphanumeric identifier of the entity + */ + public void setName (String Name) + { + set_Value (COLUMNNAME_Name, Name); + } + + /** Get Name. + @return Alphanumeric identifier of the entity + */ + public String getName () + { + return (String)get_Value(COLUMNNAME_Name); + } + + /** Set Process Message. + @param P_Msg Process Message */ + public void setP_Msg (String P_Msg) + { + set_Value (COLUMNNAME_P_Msg, P_Msg); + } + + /** Get Process Message. + @return Process Message */ + public String getP_Msg () + { + return (String)get_Value(COLUMNNAME_P_Msg); + } + /** Set Process Now. @param Processing Process Now */ public void setProcessing (boolean Processing) diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AttachmentElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AttachmentElementHandler.java index 0246aceb10..c9dd58bdd5 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AttachmentElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/AttachmentElementHandler.java @@ -171,7 +171,7 @@ public class AttachmentElementHandler extends AbstractElementHandler { public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception { - packout.getCtx().ctx.put("AD_Attachment_ID", recordId); + packout.getCtx().ctx.put("AD_Attachment_ID", Integer.toString(recordId)); this.create(packout.getCtx(), packoutHandler); packout.getCtx().ctx.remove("AD_Attachment_ID"); } diff --git a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java index 1254469bf7..768d4b941b 100644 --- a/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java +++ b/org.adempiere.pipo.handlers/src/org/adempiere/pipo2/handler/GenericPOElementHandler.java @@ -28,6 +28,7 @@ import org.adempiere.exceptions.AdempiereException; import org.adempiere.model.GenericPO; import org.adempiere.pipo2.AbstractElementHandler; import org.adempiere.pipo2.DataElementParameters; +import org.adempiere.pipo2.ElementHandler; import org.adempiere.pipo2.PIPOContext; import org.adempiere.pipo2.PackoutItem; import org.adempiere.pipo2.PoExporter; @@ -57,6 +58,9 @@ public class GenericPOElementHandler extends AbstractElementHandler { private String tableName; + public GenericPOElementHandler() { + } + public GenericPOElementHandler(String tableName) { this.tableName = tableName; } @@ -226,7 +230,7 @@ public class GenericPOElementHandler extends AbstractElementHandler { int AD_Client_ID = po.getAD_Client_ID(); if (AD_Client_ID != Env.getAD_Client_ID(ctx.ctx)) continue; - + boolean createElement = true; if (ctx.packOut.getFromDate() != null) { if (po.getUpdated().compareTo(ctx.packOut.getFromDate()) < 0) { @@ -235,12 +239,21 @@ public class GenericPOElementHandler extends AbstractElementHandler { } if (createElement) { - addTypeName(atts, "table"); - document.startElement("","", tableName, atts); - PoExporter filler = new PoExporter(ctx, document, po); - filler.export(excludes, true); - if (po.get_ID() > 0 && po.get_ID() < 1000000) { - filler.add(tableName+"_ID", new AttributesImpl()); + if (po.get_ID() > 0) { + ElementHandler handler = ctx.packOut.getHandler(po.get_TableName()); + if (handler != null && !handler.getClass().equals(this.getClass()) ) { + handler.packOut(ctx.packOut, document, ctx.logDocument, po.get_ID()); + createElement = false; + } + } + if (createElement) { + addTypeName(atts, "table"); + document.startElement("","", tableName, atts); + PoExporter filler = new PoExporter(ctx, document, po); + filler.export(excludes, true); + if (po.get_ID() > 0 && po.get_ID() < 1000000) { + filler.add(tableName+"_ID", new AttributesImpl()); + } } } @@ -283,11 +296,20 @@ public class GenericPOElementHandler extends AbstractElementHandler { } } if (createElement) { - List excludes = defaultExcludeList(tables[index]); - addTypeName(atts, "table"); - document.startElement("", "", tables[index], atts); - PoExporter filler = new PoExporter(ctx, document, po); - filler.export(excludes, true); + if (po.get_ID() > 0) { + ElementHandler handler = ctx.packOut.getHandler(po.get_TableName()); + if (handler != null && !handler.getClass().equals(this.getClass()) ) { + handler.packOut(ctx.packOut, document, ctx.logDocument, po.get_ID()); + createElement = false; + } + } + if (createElement) { + List excludes = defaultExcludeList(tables[index]); + addTypeName(atts, "table"); + document.startElement("", "", tables[index], atts); + PoExporter filler = new PoExporter(ctx, document, po); + filler.export(excludes, true); + } } if (index + 1 < tables.length) { exportDetail(ctx, document, po, index+1, tables); @@ -319,7 +341,7 @@ public class GenericPOElementHandler extends AbstractElementHandler { tableId = MTable.get(packout.getCtx().ctx, tableName).getAD_Table_ID(); sql = "SELECT * FROM " + tableName + " WHERE " + tableName + "_ID=" + recordId; } - packout.getCtx().ctx.put(DataElementParameters.AD_TABLE_ID, tableId); + packout.getCtx().ctx.put(DataElementParameters.AD_TABLE_ID, Integer.toString(tableId)); packout.getCtx().ctx.put(DataElementParameters.SQL_STATEMENT, sql); this.create(packout.getCtx(), packoutHandler); packout.getCtx().ctx.remove(DataElementParameters.AD_TABLE_ID); diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PackInProcess.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PackInProcess.java index f3e56159fa..81b28a57d5 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PackInProcess.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PackInProcess.java @@ -129,12 +129,8 @@ public class PackInProcess extends SvrProcess { // call XML Handler String msg = packIn.importXML(dict_file, getCtx(), get_TrxName()); - if (adPackageImp.get_ColumnIndex("DateProcessed") > 0) { - adPackageImp.set_ValueOfColumn("DateProcessed", new Timestamp(System.currentTimeMillis())); - } - if (adPackageImp.get_ColumnIndex("P_Msg") > 0) { - adPackageImp.set_ValueOfColumn("P_Msg", msg); - } + adPackageImp.setDateProcessed(new Timestamp(System.currentTimeMillis())); + adPackageImp.setP_Msg(msg); adPackageImp.saveEx(); return msg; diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PackOut.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PackOut.java index a1f7b35f6c..3f933556a1 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PackOut.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PackOut.java @@ -77,7 +77,7 @@ public class PackOut private int processedCount; private String exportFile; private String packoutDirectory; - private PIPOContext pipoContext; + private PIPOContext pipoContext = new PIPOContext(); private Timestamp fromDate; public static final int MAX_OFFICIAL_ID = MTable.MAX_OFFICIAL_ID; @@ -295,6 +295,7 @@ public class PackOut private void initContext() { pipoContext.trx = Trx.get(trxName, true); + pipoContext.packOut = this; } /** diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PackOutProcess.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PackOutProcess.java index 953a34a8b3..b10291b569 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PackOutProcess.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PackOutProcess.java @@ -136,8 +136,8 @@ public class PackOutProcess extends SvrProcess PackOut packOut = new PackOut(); packOut.setCtx(getCtx()); - Object dateFromValue = packageExp.get_Value("DateFrom"); - if (dateFromValue != null && dateFromValue instanceof Timestamp) { + Timestamp dateFromValue = packageExp.getDateFrom(); + if (dateFromValue != null) { packOut.setFromDate((Timestamp) dateFromValue); } diff --git a/org.adempiere.pipo/src/org/adempiere/pipo2/PackRollProcess.java b/org.adempiere.pipo/src/org/adempiere/pipo2/PackRollProcess.java index 634daad5f6..9337ba3469 100644 --- a/org.adempiere.pipo/src/org/adempiere/pipo2/PackRollProcess.java +++ b/org.adempiere.pipo/src/org/adempiere/pipo2/PackRollProcess.java @@ -24,6 +24,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.sql.Timestamp; import java.util.List; import java.util.logging.Level; @@ -31,7 +32,6 @@ import org.compiere.model.MTable; import org.compiere.model.Query; import org.compiere.model.X_AD_Package_Imp_Backup; import org.compiere.model.X_AD_Package_Imp_Detail; -import org.compiere.process.ProcessInfoParameter; import org.compiere.process.SvrProcess; import org.compiere.util.DB; import org.compiere.util.Env; @@ -45,7 +45,6 @@ import org.compiere.util.Env; public class PackRollProcess extends SvrProcess { /** Package from Record */ private int m_AD_Package_Imp_ID = 0; - private String m_Processing = null; StringBuffer sql = null; StringBuffer sqlB = null; String columnIDName = null; @@ -56,16 +55,6 @@ public class PackRollProcess extends SvrProcess { * Prepare - e.g., get Parameters. */ protected void prepare() { - ProcessInfoParameter[] para = getParameter(); - for (int i = 0; i < para.length; i++) { - String name = para[i].getParameterName(); - if (para[i].getParameter() == null) - ; - else if (name.equals("Processing")) - m_Processing = (String) para[i].getParameter(); - else - log.log(Level.SEVERE, "prepare - Unknown Parameter: " + name); - } m_AD_Package_Imp_ID = getRecord_ID(); } // prepare @@ -280,9 +269,23 @@ public class PackRollProcess extends SvrProcess { // Update columns that are dates else if (v_AD_Reference_ID == 15 || v_AD_Reference_ID == 16) - // TODO Develop portable code to update - // date columns - ;// ignore + { + Timestamp ts = null; + try { + ts = Timestamp.valueOf(backup.getColValue()); + } catch (Exception e) {} + if (ts != null) + { + sqlC = new StringBuffer("UPDATE " + + tableName + + " SET " + + columnName + + " = ?" + + " WHERE " + columnIDName + + " = " + recordID); + parameters = new Object[]{ts}; + } + } else // 23-Binary, 24-Radio, 26-RowID, // 32-Image not supported