2013-06-11 3 views
2

Я пишу сценарий развертывания и хотел бы программно зарегистрировать простую (и пустую) библиотеку BASE, такую ​​как приведенную ниже, в метаданных.Регистрация библиотеки SAS в метаданных - программно

libname MYLIB 'C:\temp'; 

Пример синтаксис XML можно найти here .. Am просто не знает, как совместить это с метаданными Proc для выполнения обновления (например, как метаданные идентификаторов получить сгенерированный?)

ответ

2

@ user2173800 ли U когда-либо получат решение вышеизложенного вопроса? Вот что я придумал:

Приведенный ниже код создает библиотеку SAS под названием BASE_Metalib в папке метаданных : /Shared Data/Библиотеки/BASE_Metalib (эта папка считается уже существуют в метаданных) , Код также перезагружает все таблицы в этом каталоге, определенные для этой библиотеки. В приведенном ниже коде используются функции метаданных Datastep для интерфейса с метаданными.

/*Creating a Metadata Library with BASE Engine and register all the tables under it */ 


options metaserver="taasasf2" 
     metaport=8561 
     metauser="testuser" 
     metapass="test123" 
     metarepository="Foundation"; 

%Let MetaLibName=BASE_Metalib; /* Name of the SAS Library with BASE Engine to be created */ 


data _null_; 
    length luri uri muri $256; 


    rc=0; 

    Call missing(luri,uri,muri); 

    /* Create a SASLibrary object in the Shared Data folder. */ 

    rc=metadata_newobj("SASLibrary", 
         luri, 
         "&MetaLibname.", 
         "Foundation", 
         "omsobj:[email protected]=%bquote('&Metalibname.')", 
         "Members"); 
    put rc=; 
    put luri=; 

    /* Add PublicType,UsageVersion,Engine,Libref,IsDBMSLibname attribute values. */ 

     rc=metadata_setattr(luri, 
          "PublicType", 
          "Library"); 
     put rc=; 
     put luri=; 

     rc=metadata_setattr(luri, 
          "UsageVersion", 
          "1000000.0"); 
     put rc=; 
     put luri=; 

     rc=metadata_setattr(luri, 
          "Engine", 
          "BASE"); 
     put rc=; 
     put luri=; 

     rc=metadata_setattr(luri, 
          "Libref", 
          "SASTEST"); 
     put rc=; 
     put luri=; 

     rc=metadata_setattr(luri, 
          "IsDBMSLibname", 
          "0"); 
     put rc=; 
     put luri=; 


/* Set Directory Object via UsingPackages Association for the SAS Library Object */ 

      rc=metadata_newobj("Directory", 
         uri, 
         ""); 
     put uri=; 



     rc=metadata_setassn(luri, 
         "UsingPackages", 
         "Replace", 
         uri); 
     put rc=; 

     rc=metadata_setattr(uri,"DirectoryName","/shrproj/files/ANA_AR2_UWCRQ/data"); 

     put rc=; 

/* Set Server Context Object via DeployedComponents Association for the SAS Library Object */ 


    rc=metadata_getnobj("omsobj:[email protected]='SASApp'",1,muri); 

     put muri=; 

     rc=metadata_setassn(luri, 
         "DeployedComponents", 
         "Append", 
         muri); 

     put rc=; 

Run; 



proc metalib; 
    omr (library="&Metalibname."); 
    report; 
run; 

 Смежные вопросы

  • Нет связанных вопросов^_^