Я не думаю, что у хранимого процесса есть идентификатор, но он уникален с точки зрения своего местоположения и имени.
Пользовательская макропеременная _PROGRAM для определения запущенной хранимой процедуры. Он будет иметь формат «/Папка SAS/Папка хранимой процедуры/Имя хранимой процедуры».
Что-то вроде A5DF0R0G.B80001L7 ID хранимой процедуры, полезной при запуске приложений IOM, но я не думаю, что это было бы так полезно, когда дело доходит до определения того, какая хранимая процедура что-то создала и где она была сохранена в то время, поэтому я бы пошел с "_ПРОГРАММА".
Если вы все равно используете идентификатор, используйте этот код (кредит: https://support.selerity.com.au/entries/23169736-Example-Data-Step-View-of-Stored-Procedures-in-Metadata):
******************************************************************************
* Purpose: Create a dynamic view of Stored Procedures registered in Metadata
* Notes : You must establish a Metadata connection prior to running
******************************************************************************;
data work.stplist(drop=_: label="SAS Stored Process List") / view=work.stplist;
length id $17 _uri name description _modified _created location _location $256;
length created modified 8;
format created modified datetime.;
label id="Metadata ID"
name="Stored Process Name"
description="Description"
location="Folder Location"
created="Created"
modified="Last Modified";
_nobj=1;
_n=1;
call missing(id, _uri, name, description, _modified, _created, _location);
do while(_n le _nobj);
_nobj=metadata_getnobj("omsobj:ClassifierMap?@PublicType='StoredProcess'",_n,_uri);
_rc=metadata_getattr(_uri,"Id",id);
_rc=metadata_getattr(_uri,"Name",name);
_rc=metadata_getattr(_uri,"Desc",description);
_rc=metadata_getattr(_uri,"MetadataCreated",_created);
_rc=metadata_getattr(_uri,"MetadataUpdated",_modified);
created=input(_created,anydtdtm.);
modified=input(_modified,anydtdtm.);
* Get folder object the current STP is in *;
_rc=metadata_getnasn(_uri,"Trees",1,_uri);
* Get folder name the current STP is in *;
_rc=metadata_getattr(_uri,"Name",location);
_tree=1;
* Loop up the folder hierarchy *;
do while (_tree>0);
* Get the parent folder object *;
_tree=metadata_getnasn(_uri,"ParentTree",1,_uri);
if _tree > 0 then do;
* If there was a parent folder, get the name *;
_rc=metadata_getattr(_uri,"Name",_location);
* Construct the path *;
location=catx('/',_location,location);
end;
end; * Folder Hierachy *;
location = '/'||location;
output;
_n=_n+1;
end;
run;
С уважением, Василий
person
Vasilij Nevlev
schedule
15.07.2015
&_SESSIONID
)? - person Joe   schedule 15.07.2015