| Quintiq file version 2.0 | 
| #parent: #root | 
| Method CreateUpdateLocationLevel (String setId_i, String id_i, String name_i,  | 
|   Number level_i) as LibDMC_LocationLevel | 
| { | 
|   Description: | 
|   [* | 
|     Logic to check if a location level exists before creating/updating it | 
|     1) We handle checking logic here as it minimizes the risk of forgetting to check if an instance exists before creating it | 
|     2) Instance exists checking is not done in static create as it violates model metrics | 
|   *] | 
|   TextBody: | 
|   [* | 
|     locationlevel := LibDMC_LocationLevel::FindLocationLevel( setId_i, id_i ); | 
|      | 
|     if( isnull( locationlevel ) ) | 
|     { | 
|       locationlevel := LibDMC_LocationLevel::Create( this, setId_i, id_i ); | 
|     } | 
|      | 
|     locationlevel.Update( name_i, level_i ); | 
|      | 
|     return locationlevel; | 
|   *] | 
| } |