在WebSphere Liberty Java Batch中, 是否可以将第一步输出传递给下一步作为输入参数。 例如第一步是Batchlet,第二步是chunk。第一步完成后,其执行输出应传递给第二步运行时..
答案 0 :(得分:1)
我猜你在z / OS JCL术语中考虑这个问题,其中一个步骤会将输出写入传递给后续步骤的临时数据集。 JSR-352没有进入数据集(或文件)分配。这取决于应用程序代码。所以你当然可以有一个步骤将输出写入文件(或数据集),如果它知道相同的话,后面的步骤当然可以从同一个文件(或数据集)中读取。您可以将名称作为作为属性提供给小程序和阅读器的作业属性。您甚至可以将作业属性的值外部化为作业参数 但是在作业结束时没有任何东西会为你删除文件(就像临时数据集会被删除)。您需要自己清理文件。 这就是你问的问题吗?
答案 1 :(得分:1)
您可以使用JobContext用户数据: JobContext.set / getTransientUserData()。
但是,这不允许您以并行方式填充批处理属性(通过 @Inject @BatchProperty ),以便通过替换作业参数从XML提供值。 / p>
我们已经提出issue来考虑批量规范的下一版本的增强,以允许从执行的早期部分动态设置属性值。
与此同时,还可以使用CDI bean作用域跨步骤共享信息,但这也没有与批处理属性注入集成。