Sas 如何获取Job的源代码

Sas 如何获取Job的源代码,sas,sas-dis,Sas,Sas Dis,对不起,我的英语水平太差了 SAS 9.3版 有必要自动获取作业的源代码。我知道部署/重新部署的方法,但它不适合创建部署元数据 通过宏: data job_source_code; length uri source_uri $256.; length text $1000.; _rc = metadata_getnobj("omsobj:Job?@Name='JOB_NAME'", 1, uri); _rc = METADATA_GETNASN(uri, 'SourceCode

对不起,我的英语水平太差了

SAS 9.3版

有必要自动获取
作业
的源代码。我知道部署/重新部署的方法,但它不适合创建部署元数据

通过宏:

data job_source_code;
  length uri source_uri $256.;
  length text $1000.;
  _rc = metadata_getnobj("omsobj:Job?@Name='JOB_NAME'", 1, uri);
  _rc = METADATA_GETNASN(uri, 'SourceCode', 1, source_uri);
  _rc = METADATA_GETATTR(source_uri, 'StoredText', text);
run;
但是字段
文本
始终为空


我做错了什么?是否有其他方法可以自动获取
作业的源代码?

您可以使用批处理文件从命令行部署作业

我从来没有这样做过。但您可以在DI Stuio用户指南中找到此过程的说明:
我知道现在回答这个问题已经太晚了。最近我收到了同样的请求,在尝试在网络上搜索是否可以得到任何代码之前。但是找不到任何代码,幸运的是我找到了您的代码并完成了剩余的部分。谢谢

data server_details_in_smc_1;
    length uri $256 Name PublicType TransId_uri  $100  text f_Direct SourceCode_Location $1000.;
    nobj=1;
    n=1;

    do while(nobj >= 0);
        n=n+1;
        nobj=metadata_getnobj("omsobj:Job?@Id contains '.'",n,uri);

        if (nobj > 0) then
            do;
                arc=metadata_getattr(uri,"Name",Name);
                arc=metadata_getattr(uri,"PublicType",PublicType);
                TransId_obj=metadata_getnasn(uri,'SourceCode',1,TransId_uri);
                arc = metadata_getnasn(TransId_uri,"Directories",1,f_Direct);
                arc = metadata_getattr(f_Direct,"DirectoryName",SourceCode_Location);
                output ;
                end;
    end;
    keep Name PublicType SourceCode_Location ;
run;

Data Integration Studio作业的源代码未存储在元数据中。您需要DIS来生成和部署它。然后你可以从外部文件中读取它。一个很好的资源:我可以生成的源代码不在DIS中吗?谢谢。我知道。这不适合我。