在 SAS EG 之外的 SAS Enterprise Guide 项目中调整 project.xml 文件

adjusting the project.xml file in a SAS Enterprise Guide project outside SAS EG

我们打算将我们的 EG 项目(超过 1000 个项目)迁移到新环境。 在旧环境中,我们使用 "W-Latin" 作为 Teradata 数据库的编码。 在新环境中,我们将开始使用 "UTF-8" 作为 Teradata 数据库的编码。
还有很多我认为与这个问题无关的其他变化。

为了防止数据问题,我们必须用 KREVERSE 等替换 REVERSE 等功能 我们可以通过打开所有项目并单击它来更改表达式构建器中的函数来完成此操作。

考虑到我们有超过 1000 个 .egp 文件,这真的很耗时

我们已经有了一个代码扫描器,可以解压缩 .egp 文件并检测 project.xml 文件中对这些函数的所有使用。

下一步可能是我们找到并替换函数并将 project.xml 文件放回 .egp 文件中。

谁能告诉我如何在不损坏 .egp 文件的情况下将 project.xml 文件放回 .egp 文件

我做到了。

tl;dr -- 将文件压缩备份并将扩展名更改为 .egp。

创建了一个新的 EG 项目并添加了一个代码节点来创建示例数据:

data test;
do cat = "A", "B", "C";
    do i=1 to 10;
        r = rannor(123);
        output;
    end;
end;
drop i;
run;

然后我向输出添加了一个查询节点,以通过 cat 对 r 列执行 "SUM"。

运行 流程并得到预期的输出。

已保存 EG 项目。

在 7zip 中打开 EG 项目并将存档解压缩到一个位置。

在 project.xml 中,我找到了查询部分并将 SUM 更改为 MEAN

                        <Expression>
                            <LHS_TYPE>LHS_FUNCTION</LHS_TYPE>
                            <LHS_DMCOLGROUP>Numeric</LHS_DMCOLGROUP>
                            <RHS_TYPE>RHS_COLUMN</RHS_TYPE>
                            <RHS_DMCOLGROUP>Numeric</RHS_DMCOLGROUP>
                            <InFormat />
                            <LHS_String>MEAN</LHS_String>
                            <LHS_Calc />
                            <OutputType>OPTYPE_NOTSET</OutputType>
                            <RHS_StringOne>r</RHS_StringOne>
                            <RHS_StringTwo />
                        </Expression>

选择文件并将它们添加到使用 7zip 的实现中。选择 "zip" 压缩并以“.egp”扩展名保存文件。

我在 EG 中打开了项目并 运行 流程。输出现在是 R 的 MEAN 而不是 SUM。