gpt4 book ai didi

java - 最新文件和文件的动态命名

转载 作者:行者123 更新时间:2023-12-02 10:18:40 29 4
gpt4 key购买 nike

我正在从事一项 talend 工作,该工作发出 HTTP GET 请求来获取多个 PDF 文档。该请求返回一个 JSON 文件,其中包含:documentDate 和 documentLink。我想从 documentDate 获取最新的 documentLink,并使用 FileFetch 组件上传文档,如果最新日期仅存在一个文档,则文件名为“Document_1”。如果 2 个文档具有最新日期,则 FileFetch 组件应上传 2 个文档,其中一个文件名为“Document_1”,另一个文件名为“Document_2”我不确定如何循环 JSON 文件以获取最新日期并命名文档( s) 正确。

到目前为止我做了什么:

 tHTTPRequest_1 --> tExtractJSONFields_1 --> tXMLMap_1 --> tFileFetch_1

这可以上传一个文件,但不会检查 tFileFetch_1 组件中的最新文档日期或文件名命名。

返回的 JSON 如下所示:

{
"documents": [
{
"documentDate ": 200119,
"documentLink": "someLink1",
},
{
"documentDate ": 200119,
"documentLink": "someLink2",
},
{
"documentDate ": 150119,
"documentLink": "someLink3",
}
]
}

你们知道如何解决这个问题吗?

最佳答案

我相信您正在寻找类似于以下内容的内容:

enter image description here

工作的第一部分包括:

tFileInputJson(或者在您的情况下为 tHttpRequest1)-> tSetGlobalVar -> tExtractJsonFields ->tJavaRow

tHttpRequest1 将抓取 JSON 响应(可以排序或不排序)

tsetGlobalVar 会将 JSON 保存在全局变量中,以便在第二部分中使用。

tExtractJson 将从每个 JSON 数组条目中提取 DocumentDate。

tJavaRow 将包含比较不同文档中的日期并在全局变量中设置最大日期的 Java 逻辑:

String maxDate = (String) globalMap.get("MaxDate");

if (maxDate != null && !maxDate.trim().isEmpty() )
//Some Logic here to take the max i.e. Convert it to proper date format and compare them.
globalMap.put("MaxDate", *comparedMaxDate*);
else
globalMap.put("MaxDate", row4.DOCDATE);

完成后,在我们的全局变量中,我们将拥有原始 JSON 响应和最大/最近日期。

第一部分(SubJob)完成后将运行的第二部分将包括:

tJava -> tExtractJsonFields -> tMap -> tFileFetch

tJava 将简单地从第一部分中设置的全局变量中获取 JSON 消息和 MaxDate。

tExtractJsonFields 将为每个数组条目提取 documentLink 和 documentDate 并将它们与最大日期一​​起传递给 tMap 组件。

tMap 组件将简单地执行文档日期和最大日期之间的比较,并检查是否等于将文档链接传递给 tFileFetch,否则它将忽略它。

这允许您仅发送具有最新日期的文档链接。

希望这有帮助,而且已经足够清楚了。

关于java - 最新文件和文件的动态命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54492876/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com