0

我正在使用 Modeler 18.0,而且我是该工具的新手。

我继承了 30 个流文件。每个流以 30 个 excel 源节点开头,文件名如 \.xlsx(例如 c:\source\regl_sales_01_WI_2017Q3.xlsx)。我需要为 2017Q4 版本的源文件更新所有 900 个节点。

我可以使用可以找到和替换的某种类型的脚本来执行此操作吗?这会是一个独立的脚本吗?似乎我可以使用类似 node.setPropertyValue("full_filename", "c:\source\regl_sales_01_WI_2017Q3.xlsx") 如果我只能识别脚本和节点。

谢谢

4

1 回答 1

0

我认为您的问题可以使用独立脚本和-功能来解决stream.findAll()

你可以这样做:

from os import listdir
from os.path import isfile, join

session = modeler.script.session()
tasks = session.getTaskRunner()
mypath = 'C:\\yourpath'
streams = [f for f in listdir(mypath) if (isfile(join(mypath, f)) and f.endswith(".str"))]
for streamFile in streams:
    print(stream.getName()+" is getting processed.")
    stream = tasks.openStreamFromFile(demosDir + streamFile, True)
    inputNodes = stream.findAll("excelimport", None)
    for in in inputNodes:
        ff = in.getPropertyValue("full_filename")
        ff.replace("2017Q3.xlsx", "2017Q4.xlsx")
        in.setPropertyValue("full_filename", ff)
    print(stream.getName()+" is processed.")
    stream.close()

我没有对此进行测试,但它不需要进行大量调整即可工作。

于 2018-04-12T15:02:46.410 回答