在SAS EG以外的SAS企业指南项目中调整project.xml文件

时间:2018-08-22 13:18:17

标签: sas migration enterprise-guide

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

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

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

我们已经有一个代码扫描器,可将.egp文件解压缩并在project.xml文件中检测所有这些功能的使用。

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

谁可以告诉我如何将project.xml文件放回.egp文件中,而又不破坏.egp文件

1 个答案:

答案 0 :(得分:2)

我能够做到这一点。

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;

然后我在输出中添加了一个Query节点,以对cat的r列进行“求和”。

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

保存了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的平均值而不是SUM。