...
The Common UI Metadata service can be accessed both as an ordinary non-GWT webservice and as a GWT webservice.
...
Non-GWT Webservice API
All Common UI Metadata services are accessed using urls of this form:
http://localhost:8080/pentaho/content/ws-run/metadataService/<method-name>
where <method-name> represents the name of a java method of the org.pentaho.common.ui.metadata.service.MetadataService class.
The non-GWT Webservice API has both XML and JSON capabilities. Application developers can choose to use either JSON or XML, or mix and match as desired.
Methods
For an up-to-date overview of the available methods, refer to the source. At the time of writing, these methods are known:
- listBusinessModels - Returns a list of the available business models ( in XML )format. Parameters:
- domainName - optional domain to limit the results
- context - Area to check for model visibility
- listBusinessModelsJson - Returns a JSON list of the available business models in JSON format. Parameters:
- domainName - optional domain to limit the results
- context - Area to check for model visibility
- loadModel - Returns a model object for the requested model in XML format. The model will include the basic metadata: categories and columns.
- domainId - the internal id of the domain. You can retrieve this using the listBusinessModels and listBusinessModelsJson service calls
- modelId - the internal id of the model. You can retrieve this using the listBusinessModels and listBusinessModelsJson service calls
- loadModelJson - Returns a model object for the requested model in JSON format. The model will include the basic metadata: categories and columns.
- domainId - the internal id of the domain. You can retrieve this using the listBusinessModels and listBusinessModelsJson service calls
- modelId - the internal id of the model. You can retrieve this using the listBusinessModels and listBusinessModelsJson service calls
- doQuery - Executes a query model and returns a serializable result set.
- Query
- rowLimit - An optional integer indicating the maximum number of rows. -1 or null means all rows
- doXmlQuery - Executes a XML query (in MQL Vocabulary) and returns a serializable result set
- Xml Query (in MQL Vocabulary)
- rowLimit - An optional integer indicating the maximum number of rows. -1 or null means all rows
- doXmlQueryToJson - Executes a XML query (in MQL Vocabulary) and returns a JSON serialization of the result set
- Xml Query (in MQL Vocabulary)
- rowLimit - An optional integer indicating the maximum number of rows. -1 or null means all rows
- doXmlQueryToCdaJson - Executes a XML query (in MQL Vocabulary) and returns a CDA compatible JSON serialization of the result set
- Xml Query (in MQL Vocabulary)
- rowLimit - An optional integer indicating the maximum number of rows. -1 or null means all rows
- doJsonQuery - Executes a JSON query and returns a serializable result set
- JSON Query
- rowLimit - An optional integer indicating the maximum number of rows. -1 or null means all rows
- doJsonQueryToJson - Executes a JSON query and returns a JSON serialization of the result set
- JSON Query
- rowLimit - An optional integer indicating the maximum number of rows. -1 or null means all rows
- doJsonQueryToCdaJson - Executes a JSON query and returns a CDA compatible JSON serialization of the result set
- JSON Query
- rowLimit - An optional integer indicating the maximum number of rows. -1 or null means all rows
listBusinessModels
Code Block |
---|
GET http://localhost:8080/pentaho/content/ws-run/metadataService/listBusinessModels
<?xml version="1.0"?>
<ns:listBusinessModelsResponse
xmlns:ns="http://service.metadata.ui.common.pentaho.org"
xmlns:ax2950="http://util.java/xsd"
xmlns:ax2944="http://impl.model.metadata.ui.common.pentaho.org/xsd"
xmlns:ax2942="http://logging.commons.apache.org/xsd"
xmlns:ax2946="http://marshal.connection.commons.pentaho.org/xsd"
xmlns:ax2947="http://connection.commons.pentaho.org/xsd"
xmlns:ax2939="http://io.java/xsd"
>
<return type="org.pentaho.common.ui.metadata.model.impl.ModelInfo">
<domainId>steel-wheels/metadata.xmi</domainId>
<modelDescription>This model contains information about Employees.</modelDescription>
<modelId>BV_HUMAN_RESOURCES</modelId>
<modelName>Human Resources</modelName>
</return>
<return type="org.pentaho.common.ui.metadata.model.impl.ModelInfo">
<domainId>steel-wheels/metadata.xmi</domainId>
<modelDescription>This model contains information about products and product inventory.</modelDescription>
<modelId>BV_INVENTORY</modelId>
<modelName>Inventory</modelName>
</return>
<return type="org.pentaho.common.ui.metadata.model.impl.ModelInfo">
<domainId>steel-wheels/metadata.xmi</domainId>
<modelDescription>This model contains information about customers and their orders.</modelDescription>
<modelId>BV_ORDERS</modelId>
<modelName>Orders</modelName>
</return>
</ns:listBusinessModelsResponse>
|
listBusinessModelsJson
Code Block |
---|
GET http://localhost:8080/pentaho/content/ws-run/metadataService/listBusinessModelsJson
<ns:listBusinessModelsJsonResponse xmlns:ns="http://service.metadata.ui.common.pentaho.org">
<return>
[
{
"class":"org.pentaho.common.ui.metadata.model.impl.ModelInfo",
"domainId":"steel-wheels/metadata.xmi",
"modelDescription":"This model contains information about Employees.",
"modelId":"BV_HUMAN_RESOURCES",
"modelName":"Human Resources"
},
{
"class":"org.pentaho.common.ui.metadata.model.impl.ModelInfo",
"domainId":"steel-wheels/metadata.xmi",
"modelDescription":"This model contains information about products and product inventory.",
"modelId":"BV_INVENTORY",
"modelName":"Inventory"
},
{
"class":"org.pentaho.common.ui.metadata.model.impl.ModelInfo",
"domainId":"steel-wheels/metadata.xmi",
"modelDescription":"This model contains information about customers and their orders.",
"modelId":"BV_ORDERS",
"modelName":"Orders"
}
]
</return>
</ns:listBusinessModelsJsonResponse>
|
loadModel
Code Block |
---|
GET http://localhost:8080/pentaho/content/ws-run/metadataService/loadModel?domainId=steel-wheels%2Fmetadata.xmi&modelId=BV_ORDERS
<?xml version="1.0"?>
<ns:loadModelResponse xmlns:ns="http://service.metadata.ui.common.pentaho.org">
<return type="org.pentaho.common.ui.metadata.model.impl.Model">
<categories type="org.pentaho.common.ui.metadata.model.impl.Category">
<columns type="org.pentaho.common.ui.metadata.model.impl.Column">
<aggTypes>NONE</aggTypes>
<category>CAT_PAYMENTS</category>
<defaultAggType>NONE</defaultAggType>
<description xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<fieldType>FACT</fieldType>
<formatMask>$#,##0.00;($#,##0.00)</formatMask>
<horizontalAlignment>RIGHT</horizontalAlignment>
<id>BC_PAYMENTS_AMOUNT</id>
<name>Amount</name>
<selectedAggType>NONE</selectedAggType>
<type>NUMERIC</type>
</columns>
...many more <columns></columns>...
<description>This category contains details about customer payments.</description>
<id>CAT_PAYMENTS</id>
<name>Payments</name>
</categories>
...more <categories></categories>...
<description>This model contains information about customers and their orders.</description>
<domainId>steel-wheels/metadata.xmi</domainId>
<id>BV_ORDERS</id>
<name>Orders</name>
</return>
</ns:loadModelResponse>
|
loadModelJson
Code Block |
---|
GET http://localhost:8080/pentaho/content/ws-run/metadataService/loadModelJson?domainId=steel-wheels%2Fmetadata.xmi&modelId=BV_ORDERS
<Exception>org.apache.axis2.AxisFault: Error trying to deepSerialize
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:158)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176) |
...
</Exception>
doQuery
doXmlQuery
doXmlQueryToJson
doXmlQueryToCdaJson
doJsonQuery
doJsonQueryToJson
doJsonQueryToCdaJson
GWT Webservice API
This document does not describe the GWT style of the API. (Community, feel free to add this documentation).