Merge with 5c03ce261cf232e12517ed2614d641083e09accb ( iDempiere Head )

This commit is contained in:
Heng Sin Low 2012-05-28 15:01:13 +08:00
commit 4f657aedd9
87 changed files with 4220 additions and 2683 deletions

View File

@ -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
;

View File

@ -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
;

View File

@ -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
;

View File

@ -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
;

View File

@ -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<String> 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<Object> params = new ArrayList<Object>();
params.add(uuid.toString());
for (String s : compositeKeys) {
params.add(rs.getObject(s));
}
DB.executeUpdateEx(updateSQL,params.toArray(),null);
}
}
} catch (SQLException e) {

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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";

View File

@ -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();
}

View File

@ -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";

View File

@ -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 */

View File

@ -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";

View File

@ -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";

View File

@ -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 */

View File

@ -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";

View File

@ -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
@ -64,72 +61,6 @@ public class MPackageExp extends X_AD_Package_Exp
} // 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

View File

@ -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
* <li>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

View File

@ -37,7 +37,6 @@ public class MPackageExpDetail extends X_AD_Package_Exp_Detail
private static final long serialVersionUID = 5110078103695767282L;
/**
* MPackageExpDetail
* @param ctx

View File

@ -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)

View File

@ -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)

View File

@ -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);
}
}

View File

@ -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.

View File

@ -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);

View File

@ -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.

View File

@ -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)

View File

@ -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);

View File

@ -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)

View File

@ -164,6 +164,10 @@
class="org.adempiere.pipo2.handler.ReferenceTableElementHandler"
id="AD_Ref_Table">
</handler>
<handler
class="org.adempiere.pipo2.handler.AttachmentElementHandler"
id="AD_Attachment">
</handler>
<handler
class="org.adempiere.pipo2.handler.CommonTranslationHandler"
id="table.translationHandler">

View File

@ -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<String> 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<String> 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);
}
}

View File

@ -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<Integer> attachments = new ArrayList<Integer>();
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<String> 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<String> 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<String> 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", Integer.toString(recordId));
this.create(packout.getCtx(), packoutHandler);
packout.getCtx().ctx.remove("AD_Attachment_ID");
}
}

View File

@ -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);
}
}

View File

@ -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<String> 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);
}
}

View File

@ -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<String, ArrayList<String>> cacheColumns = new HashMap<String, ArrayList<String>>();//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<String> 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<String> 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<String> translatedColumns = getTranslatedColumns(parentTable);
@ -221,7 +221,7 @@ public class CommonTranslationHandler extends AbstractElementHandler implements
}
}
private void exportRow(Properties ctx, TransformerHandler document, ArrayList<String> columns,
private void exportRow(PIPOContext ctx, TransformerHandler document, ArrayList<String> 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);
}
}

View File

@ -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
}
}

View File

@ -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<Integer> rules = new ArrayList<Integer>();
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<String> 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);
List<String>excludes = 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);
}
}

View File

@ -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;
}
List<String>excludes = 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<String> 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<String> 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);
}
}

View File

@ -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<Integer> processedFieldGroups = new ArrayList<Integer>();
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<String> excludes = defaultExcludeList(X_AD_FieldGroup.Table_Name);
@ -75,6 +75,7 @@ public class FieldGroupElementHandler extends AbstractElementHandler {
List<String> 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);
}
}

View File

@ -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 {
}
}

View File

@ -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<String> 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()
.<MFormAccess>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<String> 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}).<MFormAccess>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}).<MFormAccess>first();
if (po != null) {
PoExporter filler = new PoExporter(ctx, document, po);
List<String> 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<String> 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
}
}

View File

@ -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<Integer> forms = new ArrayList<Integer>();
public void startElement(Properties ctx, Element element) throws SAXException {
public void startElement(PIPOContext ctx, Element element) throws SAXException {
List<String> 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<String> 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<String> 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);
}
}

View File

@ -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,14 @@ 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;
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 +56,115 @@ import org.xml.sax.helpers.AttributesImpl;
*/
public class GenericPOElementHandler extends AbstractElementHandler {
private String tableName;
public GenericPOElementHandler() {
}
public void startElement(Properties ctx, Element element) throws SAXException {
public GenericPOElementHandler(String tableName) {
this.tableName = tableName;
}
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<Object> parameters = new ArrayList<Object>();
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("."));
}
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<Object> parameters = new ArrayList<Object>();
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;
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 +176,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<String> 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 +216,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<String> excludes = defaultExcludeList(tableName);
Statement stmt = null;
ResultSet rs = null;
@ -153,20 +226,45 @@ 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) {
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());
}
}
}
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 +273,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 +284,39 @@ 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<String> 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) {
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<String> 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 +329,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, Integer.toString(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);
}
}

View File

@ -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<Integer> formats = new ArrayList<Integer>();
public void startElement(Properties ctx, Element element)
public void startElement(PIPOContext ctx, Element element)
throws SAXException {
List<String> 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<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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<String> 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);
}
}

View File

@ -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<Integer> messages = new ArrayList<Integer>();
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<String> excludes = defaultExcludeList(X_AD_Message.Table_Name);
@ -57,6 +57,7 @@ public class MessageElementHandler extends AbstractElementHandler {
List<String> 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);
}
}

View File

@ -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<String> 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()
.<X_AD_Role_OrgAccess>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<String> 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}).<X_AD_Role_OrgAccess>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}).<X_AD_Role_OrgAccess>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<String> excludes = defaultExcludeList(X_AD_Role_OrgAccess.Table_Name);

View File

@ -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<String> 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<String> 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<String> 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<String> 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<String> 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);
}
}

View File

@ -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<Integer> formats = new ArrayList<Integer>();
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<String> excludes = defaultExcludeList(X_AD_PrintFormat.Table_Name);
@ -65,6 +67,7 @@ public class PrintFormatElementHandler extends AbstractElementHandler {
List<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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);
}
}

View File

@ -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<String> 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,39 +82,47 @@ public class ProcessAccessElementHandler extends AbstractElementHandler {
List<String> 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);
}
private void createProcessAccessBinding(Properties ctx, TransformerHandler document,
int process_id, int role_id) {
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, "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<String> excludes = defaultExcludeList(X_AD_Process_Access.Table_Name);
filler.export(excludes);
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(PIPOContext ctx, TransformerHandler document,
X_AD_Process_Access po) {
PoExporter filler = new PoExporter(ctx, document, po);
List<String> excludes = defaultExcludeList(X_AD_Process_Access.Table_Name);
filler.export(excludes);
}
@Override
public void packOut(PackOut packout, TransformerHandler packoutHandler,
TransformerHandler docHandler,

View File

@ -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<Integer> processes = new ArrayList<Integer>();
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<String> 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<X_AD_Process_Para> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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);
}
}

View File

@ -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<Integer> references = new ArrayList<Integer>();
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<String> 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<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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);
}
}

View File

@ -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<String > 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<String> 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<String > 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);
}
}

View File

@ -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<String> 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<String> 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);
}
}

View File

@ -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<Integer> views = new ArrayList<Integer>();
public void startElement(Properties ctx, Element element)
public void startElement(PIPOContext ctx, Element element)
throws SAXException {
List<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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<String> 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);
}
}

View File

@ -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);
}
}

View File

@ -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<String> 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<String> 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<String> 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);
}
}

View File

@ -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 List<Integer>tables = new ArrayList<Integer>();
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<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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<String> excludes = defaultExcludeList(X_AD_Task_Access.Table_Name);
filler.export(excludes);
}
}
@Override
public void packOut(PackOut packout, TransformerHandler packoutHandler,

View File

@ -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<Integer> tasks = new ArrayList<Integer>();
public void startElement(Properties ctx, Element element)
public void startElement(PIPOContext ctx, Element element)
throws SAXException {
List<String> 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<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> excludes = defaultExcludeList(X_AD_User_Roles.Table_Name);
excludes.add("AD_Org_ID");
filler.export(excludes);
}

View File

@ -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<String> 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<String> 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<String> excludes = defaultExcludeList(X_AD_Window_Access.Table_Name);

View File

@ -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<Integer> windows = new ArrayList<Integer>();
public void startElement(Properties ctx, Element element)
public void startElement(PIPOContext ctx, Element element)
throws SAXException {
List<String> 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<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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<String> excludes = defaultExcludeList(X_AD_Workflow_Access.Table_Name);

View File

@ -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<Integer> workflows = new ArrayList<Integer>();
public void startElement(Properties ctx, Element element)
public void startElement(PIPOContext ctx, Element element)
throws SAXException {
List<String> 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<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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<String> 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);
}
}

View File

@ -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<String> 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<String> 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<String> 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);
}
}

View File

@ -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<String> excludes = defaultExcludeList(X_AD_WF_NodeNext.Table_Name);
public void startElement(PIPOContext ctx, Element element) throws SAXException {
List<String> 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<String> 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);
}
}

View File

@ -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

View File

@ -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,9 +157,23 @@ 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());
}
/**
@ -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);
if (from.is_ValueChanged(i)) {
int columnID =findIdByColumnAndParentId (ctx, "AD_Column", "ColumnName", poInfo.getColumnName(i), "AD_Table", tableID);
int referenceID=0;
int referenceID=0;
pstmtReferenceId.setInt(1,columnID);
rs = pstmtReferenceId.executeQuery();
pstmtReferenceId.setInt(1,columnID);
rs = pstmtReferenceId.executeQuery();
if (rs.next())
referenceID = rs.getInt(1);
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);
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.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));
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 extends PO> T findPO(Properties ctx, Element element) {
protected <T extends PO> 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();
}
}

View File

@ -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,7 +42,7 @@ 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

View File

@ -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<Object> paramList = new ArrayList<Object>();
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);

View File

@ -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;
}

View File

@ -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.
@ -51,6 +56,8 @@ public class PackIn {
private String packageName = null;
private String packageVersion = null;
private List<X_AD_Package_Imp_Detail> 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<X_AD_Package_Imp_Detail>();
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 {

View File

@ -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<DeferEntry> defer = new ArrayList<DeferEntry>();
@ -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;
}
@ -457,6 +397,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<String> 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;
boolean startElement = false;

View File

@ -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,15 +119,19 @@ 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());
adPackageImp.setDateProcessed(new Timestamp(System.currentTimeMillis()));
adPackageImp.setP_Msg(msg);
adPackageImp.saveEx();
return msg;
} // doIt

View File

@ -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 = new 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,8 @@ 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);
pipoContext.packOut = this;
}
/**
@ -352,8 +360,8 @@ public class PackOut
}
}
public Properties getCtx() {
return localContext != null ? localContext : Env.getCtx();
public PIPOContext getCtx() {
return pipoContext;
}
/**
@ -422,4 +430,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

View File

@ -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());
Timestamp dateFromValue = packageExp.getDateFrom();
if (dateFromValue != null) {
packOut.setFromDate((Timestamp) dateFromValue);
}
packOut.export(packoutDirectory, null, packoutDocument, packoutItems, get_TrxName());
processedCount = packOut.getExportCount();
exportFile = packOut.getExportFile();

View File

@ -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

View File

@ -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;

View File

@ -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());
List<String>notFounds = new ArrayList<String>();
//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);
}
}

View File

@ -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;
}
}
}
}