扩展Kuali文档业务对象

时间:2014-08-13 16:35:19

标签: ojb kuali

我面临着文档扩展属性的问题(尝试扩展文档表)。我在扩展表中创建了原始表的PK(FDOC_NBR),并通过自定义原始表的ojb条目的foreignKey(作为“扩展”引用描述符)链接了两者。我为扩展创建了bo和dd,并自定义了原始文档的dd以添加新属性。在扩展BO本身上,我还为documentNumber的PK列添加了2个新列+的成员(带有setter和getter)。我还将新属性添加到了documet的jsp中。相关的模块定义已经扩展到包括自定义dd,ojb等文件。

实际上,在打开文档时会显示新字段 - 但是,在尝试提交文档时(无论对新字段做什么)我都会收到错误 -

  

错误详情:OJB操作; SQL []; ORA-01400:无法插入NULL   进入(" KFSTEM"。" TEM_TRVL_ARRANGER_DOC_EXT_T"。" FDO​​C_NBR");嵌套   异常是java.sql.SQLIntegrityConstraintViolationException:   ORA-01400:无法插入NULL   (" KFSTEM"" TEM_TRVL_ARRANGER_DOC_EXT_T"" FDO​​C_NBR&#34)

似乎某种程度上系统试图在扩展名的PK字段中插入NULL值,而不是实际的文档编号。尝试调试这个,在action的路由方法中,一直到DocumentDaoOjb.save(这是我可以去的那么远)我看到带有真实doc号的文件被传递,所以问题似乎纯粹使用ojb尝试将此数字设置为扩展表。

有没有人对文档的扩展属性有任何经验可以帮助解释一下?

1 个答案:

答案 0 :(得分:5)

KFS正在使用KNS,而在Kuali神经系统中,扩展属性对象的主键必须通过手动干预来设置。

在这种情况下,看起来好像您正在为交易文档添加扩展属性,Travel Arranger文档(TAA),这简化了事情。基本上,您需要扩展org.kuali.kfs.module.tem.document.TravelArrangerDocument并覆盖prepareForSave以在那里设置文档编号(它可能已经设置,因为在路由过程中应该多次调用prepareForSave,但覆盖该信息并没有真正的伤害,因为基本文件的编号将保持不变。)

希望这有帮助!