高倉さん、はじめまして。
不具合が発生したAdempiereのバージョンはいくつでしょうか?(できればどこからダウンロードしたかも教えてください) Adempiere 3.6.0で1回試してみましたが、同じエラーは出ませんでした。 再現方法の手順を書いていただくことは可能ですか?
1.発注済数量が変化しないという不具合について 設定によって発生している可能性もあります。 例えば、製品ウィンドウ、製品タブの「在庫する」チェックボックスを外すと 発注済数量が増えなくなります。
2.ORA-02291: 整合性制約エラーについて チケットに添付されたログを見ると、 M_ProductPriceテーブルにINSERTしようとしてエラーが発生しているようですが、 どのような操作をしたときにエラーが表示されますか?
kubottiさん、はじめまして。
Adempiere のバージョンは確かVectorからダウンロードした3.6.0です。
なお、手順関連に関しては後ほどExcelファイルを添付しますので、それをご覧ください。 基本的に、この手順通りに行いました。
エラーログにある、M_ProductPriceテーブルは、
Adempiereのメニューツリーにあるウィンドウでいうと、
製品管理 > 製品管理ルール > 価格リスト の製品価格タブのようです。
M_ProductPriceテーブルの参照整合性制約は、
M_PRICELIST_VERSION_IDカラムがM_PRICELIST_VERSIONテーブル、
M_PRODUCT_IDカラムがM_PRODUCTテーブルのようです。
エラーログのSQLは、M_Product_IDの値に0を入れようとしているので、
それが理由で参照整合性制約のエラーになっているように思います。
ひとまず、作業手順書をアップロードしました。 基本的にはこの作業どおりに行っています。 他にも仕訳エラーが発生するとかの件がありますが、これは別チケットであげたいと思います。
はじめまして。高倉と申します。
発注作業に関わる運用テストを行っていたのですが、発注伝票で指定した製品の発注済数量が変化しないという不具合が発生しました。 別のテスターが行った話によると、正常に反映される時も反映されない時もあるとのことです。
なお、環境は WindowsServer2008 + Oracle XE + JDK 1.6.0 です。 また、スタックトレース上に以下のような例外が頻発しています。
===========> DB.saveError: DBExecuteError - ORA-02291: 整合性制約(ADEMPIERE.MPRODUCT_MPRODUCTPRICE)に違反しました - 親キーがありません
===========> DB.executeUpdate: INSERT INTO M_ProductPrice
(AD_Client_ID,AD_Org_ID,Created,CreatedBy,IsActive,M_PriceList_Version_ID,M_Product_ID,PriceLimit,PriceList,PriceStd,Updated,UpdatedBy) VALUES (11,0,TO_DATE('2011-03-15 11:49:27','YYYY-MM-DD HH24:MI:SS'),100,'Y',103,0,0.00,0.00,0.00,TO_DATE('2011-03-15 11:49:27','YYYY-MM-DD HH24:MI:SS'),100) POSave_6866bdd0-3566-49d2-9846-10d208300e8e 16
java.sql.SQLIntegrityConstraintViolationException: ORA-02291: 整合性制約(ADEMPIERE.MPRODUCT_MPRODUCTPRICE)に違反しました - 親キーがありません
; State=23000; ErrorCode=2291
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1008)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307)
at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4628)
at oracle.jdbc.driver.OraclePreparedStatement.doScrollPstmtExecuteUpdate(OraclePreparedStatement.java:10184)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3447)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3530)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at sun.reflect.GeneratedMethodAccessor674.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.compiere.db.StatementProxy.invoke(StatementProxy.java:100)
at $Proxy67.executeUpdate(Unknown Source)
at org.compiere.util.DB.executeUpdate(DB.java:1015)
at org.compiere.util.DB.executeUpdate(DB.java:877)
at org.compiere.util.DB.executeUpdate(DB.java:864)
at org.compiere.model.PO.saveNew(PO.java:2730)
at org.compiere.model.PO.save(PO.java:2081)
at org.compiere.model.GridTable.dataSavePO(GridTable.java:2122)
at org.compiere.model.GridTable.dataSave(GridTable.java:1470)
at org.compiere.model.GridTab.dataSave(GridTab.java:967)