8

ドキュメントの拡張属性に関する問題に直面しています (ドキュメント テーブルを拡張しようとしています)。元のテーブルの PK (FDOC_NBR) を拡張テーブルに作成し、カスタマイズされた元のテーブルの ojb エントリのforeignKey を介して (「拡張」参照記述子として) 2 つをリンクしました。拡張子の bo と dd を作成し、元のドキュメントの dd をカスタマイズして新しい属性を追加しました。拡張された BO 自体に、2 つの新しい列 + documentNumber の PK 列のメンバー (セッターとゲッターを使用) も追加しました。また、ドキュメントの jsp に新しい属性を追加しました。関連するモジュール定義は、カスタム dd、ojb などのファイルを含むように拡張されています。

確かに、ドキュメントを開くと新しいフィールドが表示されます-ただし、ドキュメントを送信しようとすると(新しいフィールドで何かをしても)、エラーが発生します-

エラーの詳細: OJB 操作。SQL []; ORA-01400: ("KFSTEM"."TEM_TRVL_ARRANGER_DOC_EXT_T"."FDOC_NBR") に NULL を挿入できません。ネストされた例外は java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("KFSTEM"."TEM_TRVL_ARRANGER_DOC_EXT_T"."FDOC_NBR") です

どういうわけか、システムが実際のドキュメント番号ではなく、拡張機能の PK フィールドに NULL の値を挿入しようとしているようです。これをデバッグしようとすると、アクションのルート メソッドで DocumentDaoOjb.save まで (これは私ができる限り下にあります)、実際のドキュメント番号が渡されているドキュメントが表示されるので、問題は純粋にojb はこの番号を拡張テーブルに設定しようとします。

これを明らかにするのに役立つドキュメントの拡張属性を使用した経験がある人はいますか?

4

1 に答える 1

5

KFS は KNS を使用しており、クアリ神経系では、拡張属性オブジェクトの主キーを手動で設定する必要があります。

この場合、トランザクション ドキュメントである Travel Arranger ドキュメント (TAA) に拡張属性を追加しているように見え、物事が単純化されます。基本的に、org.kuali.kfs.module.tem.document.TravelArrangerDocument を拡張し、prepareForSave をオーバーライドしてそこにドキュメント番号を設定する必要があります (ルーティング プロセス中に prepareForSave を数回呼び出す必要があるため、既に設定されている可能性がありますが、基本文書の番号は同じままなので、その情報を上書きしても実際の害はありません)。

お役に立てれば!

于 2014-08-14T15:53:36.930 に答える