Previous Page | Next Page

Metadata API Class

_ADD_METADATA_



Adds specified metadata in a repository
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);

Parameters

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

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.


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_

Previous Page | Next Page | Top of Page