JPiereをバージョン13にバージョンアップするためにiDempiereコミュニティーから提供されているマイグレーションスクリプト202405141359_IDEMPIERE-5598.sqlを適用するとエラーになるので、そのエラー原因を調査して対応策を検討しています。
エラーログ
Windows環境だと下記のフォルダにログが入っています。
903行目
ERROR: duplicate key value violates unique constraint "ad_column_name"
DETAIL: Key (ad_table_id, upper(columnname::text))=(226, C_TAX_ID) already exists.
STATEMENT: INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,IsHtml,IsPartitionKey) VALUES (217011,0,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',226,'C_Tax_ID',22,'N','N','N','N','N',0,'N',19,0,0,'Y',TO_TIMESTAMP('2024-12-26 15:30:33','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:30:33','YYYY-MM-DD HH24:MI:SS'),100,213,'Y','N','D','N','N','N','Y','d8043f0d-fce6-4a5d-acf8-2687a43087e4','Y',0,'N','N','N','N')
;
このエラーはGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーです。【JPIERE-0544(v9)】振替仕訳伝票での消費税の自動計算でJPiereとして、GL_JournalLineテーブルにC_Tax_IDカラムを既に登録していたため発生しているエラーです。
アプリケーション辞書のテーブルとカラムの設定で、GL_JournalLineテーブルにC_Tax_IDカラムのレコードをインサートしようとしてエラーになっています。
908行目
ERROR: column "c_tax_id" of relation "gl_journalline" already exists
STATEMENT: ALTER TABLE GL_JournalLine ADD COLUMN C_Tax_ID NUMERIC(10) DEFAULT NULL
このエラーもGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーに付随して発生しているエラーです。PostgreSQLにカラムを追加しようとしてエラーになっています。
911行目
ERROR: constraint "ctax_gljournalline" for relation "gl_journalline" already exists
STATEMENT: ALTER TABLE GL_JournalLine ADD CONSTRAINT CTax_GLJournalLine FOREIGN KEY (C_Tax_ID) REFERENCES c_tax(c_tax_id) DEFERRABLE INITIALLY DEFERRED
;
このエラーもGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーに付随して発生しているエラーです。PostgreSQLに外部キー制約を設定しようとして既に登録されている旨のエラーになっています。
914行目
ERROR: insert or update on table "ad_field" violates foreign key constraint "ad_column_field"
DETAIL: Key (ad_column_id)=(217011) is not present in table "ad_column".
STATEMENT: INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208673,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',200008,217011,'Y',22,420,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-12-26 15:30:48','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:30:48','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c08b3b42-318e-4ea2-9b4b-593937839b53','Y',440,2)
;
このエラーもGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーに付随して発生しているエラーです。振替仕訳伝票明細タブ(AD_Tab_ID=200008)に税金情報フィールドを追加しようとしてエラーになっています。
935行目
ERROR: insert or update on table "ad_field" violates foreign key constraint "ad_column_field"
DETAIL: Key (ad_column_id)=(217011) is not present in table "ad_column".
STATEMENT: INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208678,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',161,217011,'Y',22,440,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-12-26 15:31:57','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:31:57','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','2ede098a-77e5-4ffe-acf6-f1fa10a2c4bf','Y',440,2)
;
このエラーもGL_JournalLineテーブル(AD_Table_ID=226)にC_Tax_IDカラムが既に存在しているというエラーに付随して発生しているエラーです。まとめ振替仕訳伝票ウィンドウの振替仕訳伝票明細タブ(AD_Tab_ID=161)に税金情報フィールドを追加しようとしてエラーになっています。
1025行目
ERROR: duplicate key value violates unique constraint "ad_field_column"
DETAIL: Key (ad_tab_id, ad_column_id)=(242, 15465) already exists.
STATEMENT: INSERT INTO AD_Field (AD_Field_ID,Name,Description,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208694,'Project Phase','Phase of a Project',242,15465,'Y',10,470,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2025-02-17 15:04:01','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2025-02-17 15:04:01','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','4d71ce65-2703-4cb7-a792-c4758a624407','Y',440,2) ;
仕訳帳ウィンドウの仕訳帳タブ(AD_Tab_ID=242)に、C_ProjectPhase_IDカラム(AD_Column_ID=15465)のフィールドが既に登録されている旨のエラーになっています。
1029行目
ERROR: duplicate key value violates unique constraint "ad_field_column"
DETAIL: Key (ad_tab_id, ad_column_id)=(242, 15466) already exists.
STATEMENT: INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208695,'Project Task','Actual Project Task in a Phase','A Project Task in a Project Phase represents the actual work.',242,15466,'Y',10,480,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2025-02-17 15:04:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2025-02-17 15:04:02','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','e88487ce-9443-4cc7-acf4-b0f6860b4e59','Y',450,2)
;
仕訳帳ウィンドウの仕訳帳タブ(AD_Tab_ID=242)に、C_ProjectTask_IDカラム(AD_Column_ID=15466)のフィールドが既に登録されている旨のエラーになっています。
修正案
エラーが再現されることを確認した後で下記のSQLを実行して下さい。
--Line:903
UPDATE adempiere.ad_column
SET ad_column_id=217011, ad_column_uu='d8043f0d-fce6-4a5d-acf8-2687a43087e4',EntityType='D'
WHERE AD_Table_ID=226 and ColumnName='C_Tax_ID';
UPDATE adempiere.ad_column_Trl
SET ad_column_id=217011
WHERE ad_column_id=1009591;
--Line:914
INSERT INTO adempiere.AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208673,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',200008,217011,'Y',22,420,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-12-26 15:30:48','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:30:48','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c08b3b42-318e-4ea2-9b4b-593937839b53','Y',440,2);
--Line:935
INSERT INTO adempiere.AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (208678,'Tax','Tax identifier','The Tax indicates the type of tax used in document line.',161,217011,'Y',22,440,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-12-26 15:31:57','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-12-26 15:31:57','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','2ede098a-77e5-4ffe-acf6-f1fa10a2c4bf','Y',440,2);
--For JPiere add on fileds
UPDATE adempiere.ad_field
SET ad_column_id=217011
WHERE ad_column_id=1009591 and EntityType='JP';
--Line:1025
UPDATE adempiere.ad_field
SET ad_field_id=208694, ad_field_uu='4d71ce65-2703-4cb7-a792-c4758a624407',EntityType='D'
WHERE ad_field_id=1016682;
UPDATE adempiere.ad_field_Trl
SET ad_field_id=208694
WHERE ad_field_id=1016682;
--Line:1029
UPDATE adempiere.ad_field
SET ad_field_id=208695, ad_field_uu='e88487ce-9443-4cc7-acf4-b0f6860b4e59',EntityType='D'
WHERE ad_field_id=1016683;
UPDATE adempiere.ad_field_Trl
SET ad_field_id=208695
WHERE ad_field_id=1016683;
commit;











