公開コンテンツだれでも自由に閲覧できるコンテンツです。コンテンツの公開区分が指定されていない場合は、すべて公開コンテンツです。サポーターズコンテンツJPiereサポーターになると閲覧できるコンテンツです。JPiereのサポーターになって、オープンソースのERPのエコシステムを支援して下さい。トレーニングコンテンツ有料トレーニングで同様の内容を提供しているコンテンツです。有料トレーニングを受講する事でiDempiereを効率よく学ぶ事ができます。非公開コンテンツ公開していないコンテンツです。Lab1年以上前に、Compiereでのモデルクラス内でのトランザクション処理の実装について書きましたが、ここで、同じようにiDempiereについてもモデルクラス内でのトランザクション処理の実装について書きたいと思います。Lab】モデルクラス内でのトランザクション処理の実装(2012/6/13)Compiereの場合、モデルクラス内でのトランザクション処理は、トランザクション処理について実装しないといけませんでしたが、iDempiereでは、保存等される時に常にトランザクション処理が行われているようです。そのため、iDempiereでは特にトランザクション処理を意識する必要はありませんが、場合によっては意図時にロールバック処理を行いたい場合もあるかと思います。そのような場合は、afterSave()メソッドなどで下記のように書けばロールバック処理ができると思います。false).rollback();ただ、もっと簡単に行う方法があります。それはafterSave()メソッドの戻り値を"false"にする事です。Compiereではトランザクション処理を意図時に実装しないと、afterSave()の戻り値に関係なくコミットされてデータが登録されてしましましたが、iDempiereでは、afterSave()の戻り値が"true"でないとコミットされない仕様になっているようです。iDempiereの仕様の方がCompiereの仕様より、個人的には良いと思います。Compiereの仕様には実装していて違和感があったので・・・。2012※このサイトは、iDempiereを中心としたOSSのERPに関する調査及び研究の成果を記録しておく事を目的とした個人のサイトです。