Adds specified metadata in a repository
CALL SEND(i_api, '_ADD_METADATA_', l_rc, l_meta);
|
Parameter |
Type |
Description |
i_api |
Class |
specifies the passed instance of METAAPI.CLASS. See
Using the Metadata API Class. |
l_rc |
N |
specifies the return codes for the method. A nonzero
code indicates failure and means that l_rc is an error list identifier.
For the error list format, see Error Codes. |
l_meta |
L |
specifies the passed metadata property list for the
object that is to be added. For the general format of this list, see Metadata Property List. |
-
l_meta
-
specifies the passed metadata property list
for the object that is to be added.
To create a new instance of a particular type, the ID
value in l_meta should be resposid.typeid. If an
instance ID is passed, it is ignored and replaced with a new instance ID upon
successful addition to the repository.
Not all metadata types (type IDs) can be added. The
documentation for each metadata type indicates whether it can be added or
not. _ADD_METADATA_ will return an error of any type that cannot be added.
Be sure to check the return code of a write
method
call. A nonzero return indicates that a failure has occurred while trying
to write to the metadata. If a nonzero return code is returned, none of the
changes that are indicated by this method call will be made.
l_meta=makelist();
/*
* Set which group to add this new table to.
*/
l_groups=makelist();
l_group=makelist();
l_groups=insertl(l_groups,l_group,-1);
l_group=insertc(l_group,group_id,-1,'ID');
l_meta=insertl(l_meta,l_groups,-1,'GROUP');
/*
* Use the same repository id as the group.
*/
repos_id=scan(group_id,1,'.');
new_type=repos_id||'.WHDETAIL';
l_meta=insertc(l_meta,new_type,-1,'ID');
/*
* Set the name for the display.
*/
l_meta=insertc(l_meta,
'NEW TABLE',-1,'NAME');
/*
* Set the desc for the display.
*/
l_meta=insertc(l_meta,'New table added
through API',-1,'DESC');
/*
* Set an icon for the display.
*/
l_meta=insertc(l_meta,
'SASHELP.I0808.ADD.IMAGE',-1,'ICON');
/*
* Define a column. The COLUMNS property
* contains a sublist per column.
*/
l_cols=makelist();
l_col=makelist();
l_cols=insertl(l_cols,l_col,-1);
l_meta=insertl(l_meta,l_cols,-1,'COLUMNS');
col_id=repos_id||'.'||'WHCOLUMN';
l_col=insertc(l_col,col_id,-1,'ID');
l_col=insertc(l_col,'CUSTOMER',-1,'NAME');
l_col=insertc(l_col,'Name of Customer',-1,
'DESC');
l_col=insertc(l_col,'C',-1,'TYPE');
l_col=insertn(l_col,75,-1,'LENGTH');
/*
* Add any additional properties
* :
* :
*/
/*
* Add the table.
*/
call send(i_api,'_ADD_METADATA_',l_rc,l_meta);
if l_rc = 0 then do;
put 'Table Added successfully';
end; /* if */
else do;
msg=getnitemc(l_rc,'MSG',1,1,'ERROR:
_ADD_METADATA_ FAILED');
put msg;
list_rc=dellist(l_rc);
end; /* else */
l_meta=dellist(l_meta,'Y');
_UPDATE_METADATA_,
_DELETE_METADATA_
Copyright © 2012 by SAS Institute Inc., Cary, NC, USA. All rights reserved.