有没有办法确定代码是在客户端还是在批处理作业中执行?我想过使用curUserId
并检查用户是否是我们用于批处理作业的用户,但是如果用户被更改,这种方法就会失败。
我试图在运行到客户端时使用“是/否”对话框修改表update
的{{1}}方法,但是当代码作为批处理运行时我不希望发生这种情况
有什么想法吗?
答案 0 :(得分:4)
在扩展runbasebatch
的批次类中,您可以使用this.isInBatch()
。如果代码以批处理方式运行,则返回true;如果未以批处理方式运行,则返回false然后,您可以将此参数作为参数传递给其他类。 (我建议这样做)。
但是请注意,您不应该在update
表的VendTable
方法中显示对话框,因为您应该永远不会在事务中进行用户交互,我认为是这种情况。
如果您希望在用户在表单上写入记录时进行用户交互,请尝试覆盖表单数据源的write方法。这将在写入(插入,更新)记录时执行。您可以在此处询问用户输入。例如,检查purchtable表单(purchtable ds,write方法),它应该包含类似的东西(它要求从头到行复制字段)