将上下文变量从 unix shell 传递给父作业,然后在作业之间传递它

Passing context variable from unix shell to Parent Job and then passing it between job

我有一个要求。我正在尝试将 Talend(name=nomeFile, value=context.nome_file) 中定义的上下文变量从 unix 传递到 myParent Job,然后我想在我的作业之间传递它。在这种情况下,变量必须从 mainALF 读取并传递给 subLoad_Alf。我开发了 ParentJob 和 ChildJob,然后我构建了 myParentJob。此时我从 unix 终端写了以下命令:

./myParentJob.sh --context_param nomeFile="myDirectory/FileName.txt" 而且我不工作。我收到“没有这样的文件或目录”。

这是我的主要工作 (myParentJob):

相反,如果我构建 myChildJob(subLoad_Alf) 和 运行 相同的命令:./myChildJob.sh --context_param nomeFile="[=30= .txt" 有效。

我想我无法读取 ParentJob 中的上下文变量 (nomeFile) 并将其值 ("myDirectory/FileName.txt") 发送到 myChildJob。 这是我的 childJob 配置:

有谁能帮我弄清楚如何实现这个要求吗?

问题是当您将 nomeFile 上下文变量传递给子作业时,您正在覆盖它。
您用于覆盖上下文变量的全局变量 (globalMap.get("context.nomeFile")) 不存在,因此传递给您的子作业的空 context.nomeFile
在子作业的 tRunJob 上检查 "Transmit whole context" 将负责传递已传递给父作业的 nomeFile。您不需要显式指定该上下文变量的值,因此您需要将其从上下文参数 table.

中删除