如何获取Job源码

How to get the source code of Job

抱歉英语语言能力不好!

SAS version 9.3

需要自动化获取Job源代码的过程。我知道通过deploy/redeploy的方法,但它不适合创建部署元数据。

通过宏:

data job_source_code;
  length uri source_uri 6.;
  length text 00.;
  _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;

但字段 text 始终为空。

我做错了什么? Job?

的源代码获取过程有没有其他方法自动化

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

我从来没有这样做过。但是你可以在 DI Studio 用户指南中找到这个过程的描述: http://support.sas.com/documentation/cdl/en/etlug/65807/HTML/default/viewer.htm#p1jxhqhaz10gj2n1pyr0hbzozv2f.htm

我知道现在回答这个问题已经太晚了。最近我收到了同样的请求,在尝试在网络上搜索以查看是否可以获得任何代码之前。但是找不到任何东西,幸运的是我找到了你的代码并努力完成剩下的部分。谢谢

data server_details_in_smc_1;
    length uri 6 Name PublicType TransId_uri  0  text f_Direct SourceCode_Location 00.;
    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;