The REST API's Metadata API provides services to support search and autocompletion scenarios, for example, to retrieve metadata from runtime, design-time and other metadata locations. The typical location of runtime metadata is the so called SAP HANA database catalog. Currently it is possible to retrieve metadata for tables, views, procedures, functions, sequnces, and schemas. The design-time location for metadata is the SAP HANA Repository. Also accessible is the metadata location used by Core Data Services (CDS). All provided services are available at the following (single) access point:
/sap/hana/xs/dt/base/metadata
The specific services are called by setting the HTTP parameter Service-Name to the appropriate value. This part of the interface only supports HTTP GET requests.
In SP09 the access mechanism for SP08 is still supported. In addition have be introduced new access mechanisms by new access points and support of metadata access based on URL. The documentation contains in addition to SP08 specification the SP09 specification in the related chapter.
The URL based metadata access documentation can ber found here..
checkMetadataExistence
Checks for the existence of a provided set of entities and returns an array of entries which specify if a specified entity exists or not.
The following contexts ares supported:
- Runtime ( HANA DB Catalog)
- Design Time ( HANA XS Repository)
- Core data Services MetaData (CDS)
The following entity types are supported:
Runtime: Table, View( OLAP, Calculation, DB ), Sequence, UserDefined TableType, Procedure, Function, Schema, Role, Priviledge
Designtime: all design time artifacts for runtime entities, xsodata, xsjs, package
CDS: CDS_Entity
SP08
Example Request
var strPayloadFromJava = "{\"isSynonymSearchRequired\":false,\"isCaseInsensitiveSearchRequired\":false,\"metadata\ {\"localName\":\"home.hana.xs.dt.base.work.wolfgang.ContentToBeChecked::ROVYMETAENTITY\",\"scope\":[{\"baseLocalName\":\"ROVY\",\"type\":[\"TABLE\"],\"mode\":[\"RT\"]}]}]}";
var strHeaderServiceName = "checkMetadataExistence";
var strSapBackPack = strPayloadFromJava;
var request = new $.net.http.Request($.net.http.GET, cMetaDataAccessP);
request.headers.set('SapBackPack', strSapBackPack);
request.headers.set('Service-Name', strHeaderServiceName);
var response = client.request(request, destination).getResponse();
Input and Output Parameters
Input Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
isSynonymSearchRequired [1] | Yes | true | Synonym is implicitly searched (for all types) |
isCaseInsensitiveSearchRequired [1],[2] | Yes | true | Case-insensitive search |
workspaceName [1],[3] | Relevant for DT_INACTIVE Metadata mode | ||
List | Yes | Metadata for existence check | |
localName | Yes | Metadata Object name | |
List | Yes | Metadata search scope | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
baseLocalName [5] | Metadata Scope: Based-Object name | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Mode |
JSON Representation
{
{
"isSynonymSearchRequired": false,
"isCaseInsensitiveSearchRequired": false,
"workspaceName": "MyWorkspace",
"metadata": [
{
"localName": "MyObjectName",
"scope": [
{
"namespace": "MyNameSpace",
"baseLocalName": "MyBaseLocalName",
"baseType": [
"TABLE",
"VIEW"
],
"type": [
"COLUMN"
],
"mode": [
"RT",
"DT_INACTIVE"
]
}
]
}
]
}
Output Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
List | Y | Metadata that is checked; size is equal to the input metadata list | |
localName | Y | Metadata Object name | |
isExist | Y | true | Metadata exist |
List | Y | Metadata exist | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
separator [7] | Metadata: separator between namespace and localName or baseLocalName | ||
baseLocalName | Metadata Scope: Based-Object name | ||
baseType | Metadata: Based-Object type | ||
type | Metadata: Object type | ||
mode [8] | Metadata: Mode | ||
desc | Metadata: Description |
JSON Representation
{
"metadata": [
{
"localName": "MyLocalName",
"isExist": true,
"exist": [
{
"namespace": "MyNamespace",
"separator": ".",
"baseLocalName": "MyLocalName",
"baseType": "TABLE",
"type": "COLUMN",
"mode": "RT"
}
]
}
]
}
[1] artifactType
, artifactSubType
: based on artifact's file name <artifactType
>-<artifactSubType
>
[1] Client-side user aspect: Parameters which usually are fixed for multiple user (scenario) requests;
this configuration could be set in advance, and user does not have to set it explicitly for each request
[2] isCaseInsensitiveSearchRequired
: it can be used for searching the original object names
[3] workspaceName
: an additional filter for DT_INACTIVE mode; user
is mandatory (implicit) filter
Based on: _SYS_REPO.INACTIVE_OBJECT table - OWNER and WORKSPACE fields
[4] scope
: if empty: no scope limit
[5] baseLocalName
and baseType
: supports scope dependency with other object, for example, column depending on table
[6] scopeExclude
: avoid scope that is being covered by client-side search (based on local files)
[7] separator
: RT - ".", DT - "::" or "\" (according to MetadataType)
[8] mode
: output mode resolution depends on input mode resolution
For example, if RT mode is requested, no distinction is made between RT_DIRECT
and RT_INDIRECT
Note the following differences compared to the checkMetadataExistence
API:
Based on full names (localName
or / and namespace
- not necessarily a fully qualified name), no sort, no limit on the maximum result.
SP09
Access Point
/sap/hana/xs/dt/base/metadata/validation_result
Example Request
var strPayloadFromJava = "{\"isSynonymSearch\":false,\"isCaseInsensitiveSearch\":false,\"metadata\":[{\"name\":\"P_USERS_\",\"context\":[{\"schema\":\"SYS\",\"mode\":[{\"main\":\"RT\"},{\"main\":\"DT\"}],\"type\":[{\"main\":\"TABLE\"},{\"main\":\"VIEW\"},{\"main\":\"PROCEDURE\"}]}]}]}";;
var strSapBackPack = strPayloadFromJava;
var request = new $.net.http.Request($.net.http.GET, "/sap/hana/xs/dt/base/metadata/validation_result");
request.headers.set('SapBackPack', strSapBackPack);
request.headers.set('Service-Name', strHeaderServiceName);
var response = client.request(request, destination).getResponse();
Input and Output Parameters
Input Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
isSynonymSearchRequired [1] | Yes | true | Synonym is implicitly searched (for all types) |
isCaseInsensitiveSearchRequired [1],[2] | Yes | true | Case-insensitive search |
workspaceName [1],[3] | Relevant for DT_INACTIVE Metadata mode | ||
List | Yes | Metadata for existence check | |
localName | Yes | Metadata Object name | |
List | Yes | Metadata search scope | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
baseLocalName [5] | Metadata Scope: Based-Object name | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Mode |
JSON Representation
{
"isSynonymSearch": false,
"isCaseInsensitiveSearch": false,
"workspaceName": "MyWorkspace",
"isUriExclude": false,
"metadata": [
{
"name": "USERS",
"context": [
{
"schema": "SYS",
"mode": [
{
"main": "RT"
},
{
"main": "DT"
}
],
"type": [
{
"main": "TABLE"
},
{
"main": "VIEW"
},
{
"main": "PROCEDURE"
}
]
}
]
},
{
"name": "ZZZUSERS",
"context": [
{
"schema": "SYS",
"mode": [
{
"main": "RT"
}
],
"type": [
{
"main": "TABLE"
},
{
"main": "VIEW"
}
]
}
]
},
{
"name": "GET_OBJECT_VERSION",
"context": [
{
"schema": "SYS",
"mode": [
{
"main": "RT"
}
],
"type": [
{
"main": "TABLE"
},
{
"main": "PROCEDURE"
}
]
}
]
}
]
}
Output Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
List | Y | Metadata that is checked; size is equal to the input metadata list | |
localName | Y | Metadata Object name | |
isExist | Y | true | Metadata exist |
List | Y | Metadata exist | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
separator [7] | Metadata: separator between namespace and localName or baseLocalName | ||
baseLocalName | Metadata Scope: Based-Object name | ||
baseType | Metadata: Based-Object type | ||
type | Metadata: Object type | ||
mode [8] | Metadata: Mode | ||
desc | Metadata: Description |
JSON Representation
{
"metadata": [
{
"name": "USERS",
"isExist": true,
"exist": [
{
"uri": "http://host:port/sap/hana/xs/dt/base/metadata?schema=SYS&objectName=USERS&mainMode=RT&mainType=VIEW",
"schema": "SYS",
"separator": ".",
"objectName": "USERS",
"mainMode": "RT",
"subMode": "DIRECT",
"mainType": "VIEW",
"subType": "ROW",
"description": "MyDescription"
}
]
},
{
"name": "ZZZUSERS",
"isExist": false
},
{
"name": "GET_OBJECT_VERSION",
"isExist": true,
"exist": [
{
"uri": "http://host:port/sap/hana/xs/dt/base/metadata?schema=SYS&objectName=GET_OBJECT_VERSION&mainMode=RT&mainType=PROCEDURE",
"schema": "SYS",
"separator": ".",
"objectName": "GET_OBJECT_VERSION",
"mainMode": "RT",
"subMode": "DIRECT",
"mainType": "PROCEDURE",
"subType": "BULITIN",
"description": "MyDescription"
}
]
}
]
}
[1] artifactType
, artifactSubType
: based on artifact's file name <artifactType
>-<artifactSubType
>
[1] Client-side user aspect: Parameters which usually are fixed for multiple user (scenario) requests;
this configuration could be set in advance, and user does not have to set it explicitly for each request
[2] isCaseInsensitiveSearchRequired
: it can be used for searching the original object names
[3] workspaceName
: an additional filter for DT_INACTIVE
mode; user
is mandatory (implicit) filter
Based on: _SYS_REPO.INACTIVE_OBJECT table - OWNER and WORKSPACE fields
[4] scope
: if empty: no scope limit
[5] baseLocalName
and baseType
: supports scope dependency with other object, for example, column depending on table
[6] scopeExclude
: avoid scope that is being covered by client-side search (based on local files)
[7] separator
: RT - ".", DT - "::" or "\" (according to MetadataType)
[8] mode
: output mode resolution depends on input mode resolution
For example, if RT mode is requested, no distinction is made between RT_DIRECT
and RT_INDIRECT
Note the following differences compared to the checkMetadataExistence
API:
Based on full names (localName
or / and namespace
- not necessarily a fully qualified name), no sort, no limit on the maximum result.
checkMetadataExistence URI
Checks for the existence of a specifc resource (entity) uniqly expressed as an HTTP universal resource indicator (URI). checkMetadataExistence URI
returns an array of entries which specify if a given entity is exists or not.
SP08
Example Request
var strPayloadFromJava = "{}";
var strHeaderServiceName = "checkMetadataExistence";
var strSapBackPack = strPayloadFromJava;
var strAccessPath = cMetaDataAccessP + '/VIEW/RT/TABLES';
var request = new $.net.http.Request($.net.http.GET, strAccessPath);
request.headers.set('SapBackPack', strSapBackPack);
request.headers.set('Service-Name', strHeaderServiceName);
var response = client.request(request, destination).getResponse();
Example Response
List
localName
isExist
List [6]
namespace
separator [7]
baseLocalName
baseType
type
mode [8]
desc
getMetadataSuggestion
The getMetadataSuggestion
service provides the functionality required to retrieve metadata from a set of entities whose names match a specified text pattern. The get-metadata tool can be used to support autocompletion functionality in a related text editor or to support advanced search functionality provided in other parts of the tool.
SP08
Example Request
var strPayloadFromJava = "{\"isFullNameSearchRequired\":false,\"isSynonymSearchRequired\":false,\"isCaseInsensitiveSearchRequired\":false,\"metadataStringSearchMode\":false,\"metadataNamePart\":\"S\",\"maxResultsNumber\":20}";
var strHeaderServiceName = "getMetadataSuggestion";
var strSapBackPack = strPayloadFromJava;
var request = new $.net.http.Request($.net.http.GET, cMetaDataAccessP);
request.headers.set('SapBackPack', strSapBackPack);
request.headers.set('Service-Name', strHeaderServiceName);
var response = client.request(request, destination).getResponse();
Input and Output Parameters
Input Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
isSynonymSearchRequired [1] | Yes | true | Synonym is implicitly searched (for all types) |
isCaseInsensitiveSearchRequired [1],[2] | Yes | true | Case-insensitive search |
workspaceName [1],[3] | Relevant for DT_INACTIVE Metadata mode | ||
List | Yes | Metadata for existence check | |
localName | Yes | Metadata Object name | |
List | Yes | Metadata search scope | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
baseLocalName [5] | Metadata Scope: Based-Object name | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Mode |
JSON Representation
{
"isFullNameSearchRequired": false,
"isSynonymSearchRequired": false,
"isCaseInsensitiveSearchRequired": false,
"metadataStringSearchMode": "PATTERN",
"workspaceName": "MyWorkspace",
"metadataSort": [
"METADATA_TYPE",
"ALPHABET_LOCAL_NAME"
],
"metadataModePriorityFilter": [
"RT",
"DT_ACTIVE"
],
"maxResultsNumber": 10,
"metadataNamePart": "abc",
"metadataScope": [
{
"namespace": "MyNameSpace",
"baseLocalName": "MyBaseLocalName",
"baseType": [
"TABLE",
"VIEW"
],
"type": [
"COLUMN"
],
"mode": [
"RT",
"DT_ACTIVE",
"DT_INACTIVE"
]
}
]
}
Output Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
List | Y | Metadata that is checked; size is equal to the input metadata list | |
localName | Y | Metadata Object name | |
isExist | Y | true | Metadata exist |
List | Y | Metadata exist | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
separator [7] | Metadata: separator between namespace and localName or baseLocalName | ||
baseLocalName | Metadata Scope: Based-Object name | ||
baseType | Metadata: Based-Object type | ||
type | Metadata: Object type | ||
mode [8] | Metadata: Mode | ||
desc | Metadata: Description |
JSON Representation
{
"isPartialResult": false,
"metadata": [
{
"localName": "MyLocalName",
"namespace": "MyNamespace",
"separator": ".",
"baseLocalName": "MyBaseLocalName",
"baseType": "TABLE",
"type": "COLUMN",
"mode": "RT",
"desc": "MyDescription",
"fuzzyScore": 0.8
}
]
}
[1] Client-side user aspect: Parameters which usually are fixed for multiple user (scenario) requests;
therefore, these configuration could be set in advance, and user doesn't have to set it explicitly for each request
[2] isFullNameSearchRequired
: not relevant for SCHEMA and PACKAGE artifact type (in this case: namespace
= localName
)
[3] isCaseInsensitiveSearchRequired
: it can be used for searching the original object names
[4] Search modes.
[5] workspaceName
: an additional filter for DT_INACTIVE mode; user is mandatory (implicit) filter
Based on: _SYS_REPO.INACTIVE_OBJECT table - OWNER and WORKSPACE fields
[6] metadataSort
: if empty: no result sort; Supports sorting according to multiple prioritized parameters (similar to SQL ORDER BY
)
typical editor request would not use sorting as results should be combined with local search results (which done in parallel on the client-side)
For fuzzy search the sorting is done anyway according to the fuzzy score; if metadataSort provided then fuzzy score search is the last sort step
[7] metadataModePriorityFilter: if provided then duplicated objects output are being filtered according the provided priority list
e.g. DT, RT: remove (filter) RT object which exists also as DT object in output
[8] metadataNamePart: input data from user; it can also be with empty value, although result would be too "vague"
[9] metadataScope: if empty: no scope limit
[10] baseLocalName and baseType: supports scope dependency with other object, e.g. column dependend on table
[11] metadataScopeExclude: avoid scope that is being covered by client-side search (based on local files)
[12] separator: RT - ".", DT - "::" or "\" (according to MetadataType)
[13] mode: output mode resolution depends on input mode resolution
e.g. if RT mode requested then there will not be a distinguish between RT_DIRECT and RT_INDIRECT
[14] fuzzyScore: used for potential client-side cache support
Special implicit behavior
a Balanced search When possible results exceeds the limit - results spreads (distributed) equally (as much as possible) between the different channels (mode and type)
b Complex search Complex search: full name search while input text includes name separators ("::",".")
SP09
Access Point
/sap/hana/xs/dt/base/metadata/search_result
Example Request
var strPayloadFromJava = "{\"metadataNamePart\":\"TT_TEST_WP\",\"metadataStringSearchMode\":\"PATTERN\",\"maxResultsNumber\":10,\"isFullNameSearch\":false,\"isSynonymSearch\":false,\"isCaseInsensitiveSearch\":true,\"metadataSort\":[\"ALPHABET_OBJECT_NAME\",\"ALPHABET_SCHEMA_NAMESPACE\"],\"metadataContext\":[{\"mode\":[{\"main\":\"RT\"}],\"type\":[{\"main\":\"TABLE\"}]}]}";
var strSapBackPack = strPayloadFromJava;
var request = new $.net.http.Request($.net.http.GET, "/sap/hana/xs/dt/base/metadata/search_result");
request.headers.set('SapBackPack', strSapBackPack);
request.headers.set('Service-Name', strHeaderServiceName);
var response = client.request(request, destination).getResponse();
Input and Output Parameters
Input Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
isSynonymSearchRequired [1] | Yes | true | Synonym is implicitly searched (for all types) |
isCaseInsensitiveSearchRequired [1],[2] | Yes | true | Case-insensitive search |
workspaceName [1],[3] | Relevant for DT_INACTIVE Metadata mode | ||
List | Yes | Metadata for existence check | |
localName | Yes | Metadata Object name | |
List | Yes | Metadata search scope | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
baseLocalName [5] | Metadata Scope: Based-Object name | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Mode |
JSON Representation
{
"metadataContext": [
{
"mode": [
{
"main": "RT"
},
{
"main": "DT"
}
],
"type": [
{
"main": "TABLE_TYPE"
},
{
"main": "SCHEMA"
}
]
},
{
"mode": [
{
"main": "RT"
}
],
"type": [
{
"main": "PROCEDURE"
},
{
"main": "TABLE",
"sub": "COLUMN"
},
{
"main": "FUNCTION",
"property": [
{
"key": "TABLE_FUNCTION"
}
]
}
]
},
{
"mode": [
{
"main": "DT"
}
],
"type": [
{
"main": "VIEW",
"sub": "ANALYTICVIEW"
},
{
"main": "CDS_DD",
"sub": "SCALAR"
},
{
"main": "CDS_DD",
"sub": "STRUCTURE"
}
]
}
]
}
Output Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
List | Y | Metadata that is checked; size is equal to the input metadata list | |
localName | Y | Metadata Object name | |
isExist | Y | true | Metadata exist |
List | Y | Metadata exist | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
separator [7] | Metadata: separator between namespace and localName or baseLocalName | ||
baseLocalName | Metadata Scope: Based-Object name | ||
baseType | Metadata: Based-Object type | ||
type | Metadata: Object type | ||
mode [8] | Metadata: Mode | ||
desc | Metadata: Description |
JSON Representation
{
"isPartialResult": false,
"metadata": [
{
"uri": "http://host:port/sap/hana/xs/dt/base/metadata?schema=SYS&objectName=CACHE_P_AUDITEDUSERS_&mainMode=RT&mainType=TABLE",
"schema": "SYS",
"separator": ".",
"objectName": "CACHE_P_AUDITEDUSERS_",
"mainMode": "RT",
"subMode": "DIRECT",
"mainType": "TABLE",
"subType": "ROW",
"description": "MyDescription",
"searchScore": 0.8
},
{
"uri": "http://host:port/sap/hana/xs/dt/base/metadata?schema=SYS&objectName=CACHE_P_USERS_&mainMode=RT&mainType=TABLE",
"schema": "SYS",
"separator": ".",
"objectName": "CACHE_P_USERS_",
"mainMode": "RT",
"subMode": "DIRECT",
"mainType": "TABLE",
"subType": "ROW",
"description": "MyDescription",
"searchScore": 0.8
}
]
}
[1] Client-side user aspect: Parameters which usually are fixed for multiple user (scenario) requests;
therefore, these configuration could be set in advance, and user doesn't have to set it explicitly for each request
[2] isFullNameSearchRequired
: not relevant for SCHEMA and PACKAGE artifact type (in this case: namespace
= localName
)
[3] isCaseInsensitiveSearchRequired
: it can be used for searching the original object names
[4] Search modes.
[5] workspaceName
: an additional filter for DT_INACTIVE
mode; user is mandatory (implicit) filter
Based on: _SYS_REPO.INACTIVE_OBJECT
table - OWNER
and WORKSPACE
fields
[6] metadataSort
: if empty: no result sort; Supports sorting according to multiple prioritized parameters (similar to SQL ORDER BY
)
typical editor request would not use sorting as results should be combined with local search results (which done in parallel on the client-side)
For fuzzy search the sorting is done anyway according to the fuzzy score; if metadataSort provided then fuzzy score search is the last sort step
[7] metadataModePriorityFilter: if provided then duplicated objects output are being filtered according the provided priority list
e.g. DT, RT: remove (filter) RT object which exists also as DT object in output
[8] metadataNamePart: input data from user; it can also be with empty value, although result would be too "vague"
[9] metadataScope: if empty: no scope limit
[10] baseLocalName and baseType: supports scope dependency with other object, e.g. column dependend on table
[11] metadataScopeExclude: avoid scope that is being covered by client-side search (based on local files)
[12] separator: RT - ".", DT - "::" or "\" (according to MetadataType)
[13] mode: output mode resolution depends on input mode resolution
e.g. if RT mode requested then there will not be a distinguish between RT_DIRECT and RT_INDIRECT
[14] fuzzyScore: used for potential client-side cache support
Special implicit behavior a Balanced search When possible results exceeds the limit - results spreads (distributed) equally (as much as possible) between the different channels (mode and type) b Complex search Complex search: full name search while input text includes name separators ("::",".")
URL based metadata access
Checks for the existence of a provided URL parameters and returns an array of entries which contain the expected metadata in various formats..
Additional expand values: BI, BI&DATA. Types supported: TABLE, VIEW(ANALYTICAL, DB View, Calculation View), Procedure, Function, CDS_ENTITY.
SP09 only.
Example Request
geturl = $.ajax({
url: "/sap/hana/xs/dt/base/metadata?expand=DATA&namespace=sap.hana.xs.dt.base.server.DTAccess&objectName=dtaa&mainMode=DT&subMode=ACTIVE&mainType=VIEW",
type: 'GET',
headers:{
"Content-Type": strheaderContenttType,
"X-CSRF-Token": frames.securityToken
},
Input and Output Parameters
URL Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
isSynonymSearchRequired [1] | Yes | true | Synonym is implicitly searched (for all types) |
isCaseInsensitiveSearchRequired [1],[2] | Yes | true | Case-insensitive search |
workspaceName [1],[3] | Relevant for DT_INACTIVE Metadata mode | ||
List | Yes | Metadata for existence check | |
localName | Yes | Metadata Object name | |
List | Yes | Metadata search scope | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
baseLocalName [5] | Metadata Scope: Based-Object name | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Object type | ||
List | Metadata Scope: Mode |
Output Parameters
Name | Mandatory | Default | Description |
---|---|---|---|
List | Y | Metadata that is checked; size is equal to the input metadata list | |
localName | Y | Metadata Object name | |
isExist | Y | true | Metadata exist |
List | Y | Metadata exist | |
namespace | Metadata Scope: RT: Schema name; DT: Full package name | ||
separator [7] | Metadata: separator between namespace and localName or baseLocalName | ||
baseLocalName | Metadata Scope: Based-Object name | ||
baseType | Metadata: Based-Object type | ||
type | Metadata: Object type | ||
mode [8] | Metadata: Mode | ||
desc | Metadata: Description |
JSON Representation
{
"metadata": [
{
"uri": "http://iltlvl700.emea.global.corp.sap:8000/sap/hana/xs/dt/base/metadata?objectName=SYSTEM&mainMode=RT&mainType=SCHEMA",
"objectName": "SYSTEM",
"mainMode": "RT",
"subMode": "DIRECT",
"mainType": "SCHEMA",
"owner": "SYSTEM",
"version": "133146"
}
]
}
[1] artifactType
, artifactSubType
: based on artifact's file name <artifactType
>-<artifactSubType
>
[1] Client-side user aspect: Parameters which usually are fixed for multiple user (scenario) requests;
this configuration could be set in advance, and user does not have to set it explicitly for each request
[2] isCaseInsensitiveSearchRequired
: it can be used for searching the original object names
[3] workspaceName
: an additional filter for DT_INACTIVE mode; user is mandatory (implicit) filter
Based on: _SYS_REPO.INACTIVE_OBJECT table - OWNER and WORKSPACE fields
[4] scope
: if empty: no scope limit
[5] baseLocalName
and baseType
: supports scope dependency with other object, for example, column depending on table
[6] scopeExclude
: avoid scope that is being covered by client-side search (based on local files)
[7] separator
: RT - ".", DT - "::" or "\" (according to MetadataType)
[8] mode
: output mode resolution depends on input mode resolution
For example, if RT mode is requested, no distinction is made between RT_DIRECT and RT_INDIRECT
Note the following differences compared to the checkMetadataExistence
API:
Based on full names (localName
or / and namespace
- not necessarily a fully qualified name), no sort, no limit on the maximum result.