| Metadata API Class |
| Category: | Write Methods |
| Syntax | |
| Parameters | |
| Details | |
| Using _ADD_METADATA_ | |
| Example: Add a New Detail Table | |
| See Also |
Syntax |
| 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. |
| Details |
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.
| Using _ADD_METADATA_ |
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.
| Example: Add a New Detail Table |
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');
| See Also |
_UPDATE_METADATA_, _DELETE_METADATA_
Copyright © 2012 by SAS Institute Inc., Cary, NC, USA. All rights reserved.