1

for C#を使用して SAS プロジェクトの出力データセットをナビゲートしようとしましたがSAS.EG.Scripting library、データセットが SAS Server で正しく生成されているにもかかわらず、データセットの空のコレクションを取得し続けます。

この記事で説明されている手順を実行しようとしました。この記事は、SAS オートメーションに関する唯一のリソースであり、Web を調査して見つけたものです: Not Just for Scheduling: Doing More with SAS® Enterprise Guide® Automation .

これまでに書いたコードは次のとおりです。

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) コード オブジェクトのプロパティを設定します (名前、テキスト - 実行される SAS コマンド)。
6) コード オブジェクトを実行します。
7) コード ログとコマンド テキストを .txt ファイルに保存します。
8) コードの OutputDatasets コレクションを反復処理します。コードが正常に実行されても、コレクション項目のカウントがゼロに設定されるため、ここで奇妙な動作が発生します。

誰もがすでにこの種の問題に直面していますか? SAS コマンドにキーワードを書き忘れたり、関連するオブジェクトのプロパティを設定するのを忘れていませんか?

どんな助けにも感謝します。

4

1 に答える 1

4

私はあなたが参照した論文を書きました。

リリース後の 4.3 の SAS Enterprise Guide には、自動化関連の修正がいくつかありました。ここで使用しているバージョンはわかりませんでしたが、この問題は、ホットフィックスについてアドバイスできる SAS テクニカル サポートで追跡するのが最適です。

また、SAS の専門知識をより集中的に利用するには、そのような質問をSAS Enterprise Guide ディスカッション フォーラムに投稿することを検討してください。

于 2012-09-21T17:28:38.927 に答える