繁体   English   中英

使用C#浏览SAS Project的OutputDatasets

[英]Navigate through SAS Project's OutputDatasets using C#

我一直在尝试使用C#的SAS.EG.Scripting library浏览SAS Project的输出数据集,但我仍然获得一个空的数据集集合,即使数据集在SAS服务器上正确生成。

我尝试按照本文中解释的步骤进行操作,这篇文章是关于SAS自动化的唯一资源我发现我正在研究网络: 不仅仅是为了安排:使用SAS®EnterpriseGuide®Eutomation做更多事情

我到目前为止写的代码如下:

public static void RunSASProject()
{
    SAS.EG.Scripting.Application EGApp = new SAS.EG.Scripting.Application();
    EGApp.SetActiveProfile("almarci");

    SAS.EG.Scripting.Project EGProject = (SAS.EG.Scripting.Project)EGApp.New();
    SAS.EG.Scripting.Code oCode = (SAS.EG.Scripting.Code)EGProject.CodeCollection.Add();

    try
    {
        oCode.Server = "SASCORP";
        oCode.UseApplicationOptions = false;
        oCode.GenSasReport = false;
        oCode.Name = "Testing";
        oCode.Text = "LIBNAME SRC '/home/cau004/aj/dccvoj/sotcpc/giad/workgroup/Apoio'; DATA SRC.CARS; SET SASHELP.CARS; OUTPUT; RUN;";

        oCode.Run();
        oCode.Log.SaveAs(@"C:\Users\almarci\Desktop\SAS\LogSAS" + DateTime.Now.ToString("ddmmyyyy HHmmss") + ".log");
        oCode.TaskCode.SaveAs(@"C:\Users\almarci\Desktop\SAS\TaskSAS" + DateTime.Now.ToString("ddmmyyyy HHmmss") + ".txt");

        SAS.EG.Scripting.OutputDatasets outputDatasets = (SAS.EG.Scripting.OutputDatasets)oCode.OutputDatasets;
        foreach (SAS.EG.Scripting.OutputData outputData in outputDatasets)
        {
            Console.Write(outputData.Name.ToString());
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine("\n" + ex.Message.ToString());
    }
    finally
    {
        EGApp.Quit();
    }
}

它执行的基本步骤如下:
1)实例化Application对象;
2)定义将用于连接服务器的配置文件;
3)创建一个新项目;
4)将Code对象添加到最近创建的项目中;
5)设置Code对象属性(Name,Text - 这是将要执行的SAS命令);
6)运行Code对象;
7)将代码日志和命令文本保存在.txt文件中;
8)迭代Code的OutputDatasets集合。 这是我得到奇怪行为的地方,因为即使代码成功运行,集合项的计数也设置为零。

有人已经遇到过这种问题吗? 我是否忘记在SAS命令上写一些关键字或设置所涉及对象的某些属性?

感谢任何帮助。

我写了你引用的论文。

SAS发布后的4.3版SAS企业指南中有一些与自动化相关的修复程序。 您没有说明这里有哪个版本,但最好跟踪SAS技术支持人员,他们可以提供有关修补程序的建议。

此外,对于更高集中度的SAS专业知识,请考虑将此类问题发布到SAS Enterprise Guide讨论论坛

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM