今天在测试开发的一个流程时,当走到一步叫做“Patent Director of Engineering Approval”的步骤,死活报错:“String or binary data would be truncated”,按照这个错误提示,通常来讲这个错误是数据库的表字段长度太短,而添加到此字段的字符长度超过本身定义的长度而造成的。经过不停的调试修改当前步骤涉及到的字段,始终不得解决,反而还造成了流程进入到一个“空白区”,卡在了2个步骤中间,后来只能通过后台修改表BPMInstProcSteps的FinishAt为Null,为避免此问题再次发生,在咨询官方技术人员后,还修改了服务器上的server.config中DTC的设定,开启了事务支持。
附上手工修正的SQL语句:
Update [BPMDB].[dbo].[BPMInstProcSteps] Set FinishAt=Null Where StepID=26403
在排除了本身的流程表单的数据表没问题之后,我重新把目光转回到表BPMInstProcSteps,终于找到原因:其中几个字段长度是30,而流程当前步骤节点名称超过了30。
所以,希望用到Flowportal.Net 3.5版本的朋友,注意你的流程节点的长度。不过把流程节点的字段长度从30增加到50,相对比较安全。