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

Ani*_*iel 5 migration sas enterprise-guide

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

为了防止数据问题,我们必须将 REVERSE 等函数替换为 KREVERSE 等函数。我们可以通过打开所有项目并单击它来更改表达式生成器中的函数来做到这一点。

考虑到我们有超过 1000 个 .egp 文件,这确实非常耗时

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

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

谁能告诉我如何将project.xml文件放回到.egp文件中而不损坏.egp文件

Dom*_*azz 3

我能够做到这一点。

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;
Run Code Online (Sandbox Code Playgroud)

然后,我在输出中添加了一个查询节点,以通过 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>
Run Code Online (Sandbox Code Playgroud)

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

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