Case as a universal MRC object - MrcObject
This article describes the universal MRC object and its components. It is used in SOAP and REST services. Unlike the freedom to create case objects using ANY XML and ANY JSON schemas, the universal MRC object is strictly defined and uniquely describes any MRC object.
MrcObject
Layers used | Business |
Type | Business object |
Java Interface | IMrcObject, IMrcPropertyAttrs |
className/type | MrcObject |
Java Implementation | pro.ibpm.mercury.business.data.api.MrcObject |
DTO implementation | pro.ibpm.mercury.ws.server.api.returns.DtoMrcObject |
XML definition | hgdb-mrc-object-3.0.xsd |
Universal MRC object. Business object used to describe any case instance of any type. The table below describes the DTO object used in SOAP and REST services.
Parameter | Description | Type | Required | Allowed values |
---|---|---|---|---|
mrcClassName | The class name of the universal MRC object. | String | Yes | MrcObject , MrcPagedResult , MrcPagingParams , MrcPage |
name | For dependent cases, this is the name of the field in which the given MrcObject type object appears. For parent cases, the value is not set | String | No/Yes1 | |
mrcCaseHeader | Case header | CaseHeader | Yes2 | |
propertyNames | List of case parameter names. List of map keys contained in the propertyMap field | DtoMrcPropertyNames | Yes | |
propertyMap | Map, whose key (the key field) is the name of the case parameter (taken from the propertyNames field) and whose value (the value field) is an object representing the parameter (along with its value) - see the description of MrcDateProperty objects | DtoPropertyMap | Yes | |
mrcObjectWithRequiredPosition | Is it required that values appearing in the map (propertyMap field) must have an appropriate field indicating the position of the field. If we set it to false , the position number will be assigned automatically. | Boolean | No | true or false |
The example below presents a case with the name of the type TestUser
in the form of a universal MRC object used in SOAP services in the form of XML.
<?xml version="1.0" encoding="utf-8"?>
<dto xmlns="http://business.dto.ws.hgdb.io/mrcObject"
xsi:schemaLocation="http://business.dto.ws.hgdb.io/mrcObject https://hgdb.org/xsd/dto/hgdb-mrc-object-3.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<mrcClassName>MrcObject</mrcClassName>
<mrcCaseHeader>
<headerMetadata>
<className>MrcCaseHeader</className>
</headerMetadata>
<bpmProcessId>1234</bpmProcessId>
<groupId>1001</groupId>
<typeCode>TestUser</typeCode>
<status>A</status>
<storeCount>1</storeCount>
<storeId>1001</storeId>
<className>TestUser</className>
<objectID>TestUser.1</objectID>
<rootVersionContextID>App.1</rootVersionContextID>
<dirty>true</dirty>
</mrcCaseHeader>
<propertyNames>
<propertyName>timeZone^7</propertyName>
<propertyName>isTechnical^5</propertyName>
<propertyName>fullName^3</propertyName>
<propertyName>userName^2</propertyName>
<propertyName>isActive^4</propertyName>
<propertyName>locale^6</propertyName>
<propertyName>id^1</propertyName>
</propertyNames>
<propertyMap>
<entry>
<key>timeZone^7</key>
<value>
<name>timeZone</name>
<type>String</type>
<version>1</version>
<id>7</id>
<position>7</position>
<isEncoded>false</isEncoded>
<valueString>Europe/Warsaw</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>isTechnical^5</key>
<value>
<name>isTechnical</name>
<type>Integer</type>
<version>1</version>
<id>5</id>
<position>5</position>
<isEncoded>false</isEncoded>
<valueString>0</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>fullName^3</key>
<value>
<name>fullName</name>
<type>String</type>
<version>1</version>
<id>3</id>
<position>3</position>
<isEncoded>false</isEncoded>
<valueString>SlawomirCichy</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>userName^2</key>
<value>
<name>userName</name>
<type>String</type>
<version>1</version>
<id>2</id>
<position>2</position>
<isEncoded>false</isEncoded>
<valueString>slawas</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>isActive^4</key>
<value>
<name>isActive</name>
<type>Integer</type>
<version>1</version>
<id>4</id>
<position>4</position>
<isEncoded>false</isEncoded>
<valueString>1</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>locale^6</key>
<value>
<name>locale</name>
<type>String</type>
<version>1</version>
<id>6</id>
<position>6</position>
<isEncoded>false</isEncoded>
<valueString>pl_PL</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>id^1</key>
<value>
<name>id</name>
<type>Integer</type>
<version>1</version>
<id>1</id>
<position>1</position>
<isEncoded>false</isEncoded>
<valueString>2</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
</propertyMap>
<mrcObjectWithRequiredPosition>false</mrcObjectWithRequiredPosition>
</dto>
The following example presents a case with a name of type SampleOrder
as a universal MRC object used in REST services in the form of JSON.
{
"dto": {
"mrcClassName": "SampleOrder",
"name": null,
"status": null,
"mrcCaseHeader": {
"headerMetadata": {
"status": "ALL",
"className": "MrcCaseHeader"
},
"caseId": 835495,
"bpmProcessId": null,
"inventoryCode": null,
"groupId": 303542,
"typeId": 10022,
"typeCode": "SampleOrder",
"endDate": null,
"dueDate": null,
"status": "A",
"previousVersionId": null,
"rootVersionId": 835495,
"priceValue": 0,
"priceValueCode": null,
"priceExchangeDate": null,
"storeCount": 1,
"storeId": 4010,
"createDate": "24-10-2019 02:40:09 +02",
"createdBy": "bpmimpl",
"lastModifyDate": "24-10-2019 02:40:09 +02",
"lastModifiedBy": "bpmimpl",
"modifyComment": null,
"createdByRoleName": "Wnoskodawca",
"lastModifiedByRoleName": "Wnoskodawca",
"subCaseReferenceId": null,
"className": "SampleOrder",
"objectID": "TWClass.2ec37a12-40ff-4d8a-81f1-4d05be9b5156",
"rootVersionContextID": "72658b04-d39c-459c-b765-4ed6f19248cf",
"version": "55013",
"dirty": false,
"pkPropertyName": null
},
"propertyNames": [
"cost^1",
"subject^2",
"invoceNo^3",
"documentNo^4",
"category^5"
],
"propertyMap": {
"entries": [
{
"key": "cost^1",
"value": {
"name": "cost",
"type": "Decimal",
"version": "1",
"label": null,
"id": "1",
"position": 1,
"isRequired": null,
"updateable": null,
"isEncoded": null,
"valueString": "",
"isString": true,
"valueMrcObject": null,
"isMrcObject": false,
"mrcClass": "MrcSimpleProperty",
"lobMetadata": null,
"lobMimeType": null,
"valueMrcList": null,
"isMrcList": false
}
},
{
"key": "subject^2",
"value": {
"name": "subject",
"type": "String",
"version": "1",
"label": null,
"id": "2",
"position": 2,
"isRequired": null,
"updateable": null,
"isEncoded": null,
"valueString": "",
"isString": true,
"valueMrcObject": null,
"isMrcObject": false,
"mrcClass": "MrcSimpleProperty",
"lobMetadata": null,
"lobMimeType": null,
"valueMrcList": null,
"isMrcList": false
}
},
{
"key": "invoceNo^3",
"value": {
"name": "invoceNo",
"type": "String",
"version": "1",
"label": null,
"id": "3",
"position": 3,
"isRequired": null,
"updateable": null,
"isEncoded": null,
"valueString": "",
"isString": true,
"valueMrcObject": null,
"isMrcObject": false,
"mrcClass": "MrcSimpleProperty",
"lobMetadata": null,
"lobMimeType": null,
"valueMrcList": null,
"isMrcList": false
}
},
{
"key": "documentNo^4",
"value": {
"name": "documentNo",
"type": "String",
"version": "1",
"label": null,
"id": "4",
"position": 4,
"isRequired": null,
"updateable": null,
"isEncoded": null,
"valueString": "",
"isString": true,
"valueMrcObject": null,
"isMrcObject": false,
"mrcClass": "MrcSimpleProperty",
"lobMetadata": null,
"lobMimeType": null,
"valueMrcList": null,
"isMrcList": false
}
},
{
"key": "category^5",
"value": {
"name": "category",
"type": "String",
"version": "1",
"label": null,
"id": "5",
"position": 5,
"isRequired": null,
"updateable": null,
"isEncoded": null,
"valueString": "",
"isString": true,
"valueMrcObject": null,
"isMrcObject": false,
"mrcClass": "MrcSimpleProperty",
"lobMetadata": null,
"lobMimeType": null,
"valueMrcList": null,
"isMrcList": false
}
}
],
"empty": false
},
"mrcObjectWithRequiredPosition": true
}
}
DtoMrcPropertyNames
Layers used | Business |
Type | Business object |
Java implementation | String[] |
DTO implementation | pro.ibpm.mercury.ws.server.api.returns.DtoMrcPropertyNames |
XML definition | hgdb-mrc-object-3.0.xsd |
A helper object supporting the implementation of the MrcObject
object, representing the propertyNames
field. List of parameter names and presents a list of parameter names in the universal MRC object, describing any case stored in the Mercury DB (HgDB) database. This is a list of map key values contained in the propertyMap field of the MrcObject
object.
Parameter | Description | Type | Required? | Allowed values |
---|---|---|---|---|
propertyName | Name of the list item. There can be multiple items. | String | No | Names of case parameters (fields) along with (optionally) their XML identifier (most often representing the parameter position, see the TypeParam entity). Format: <field_name>[^xmlId] |
Example list of parameters (values of the map keys of the propertyMap
field):
<propertyNames>
<propertyName>timeZone^7</propertyName>
<propertyName>isTechnical^5</propertyName>
<propertyName>fullName^3</propertyName>
<propertyName>userName^2</propertyName>
<propertyName>isActive^4</propertyName>
<propertyName>locale^6</propertyName>
<propertyName>id^1</propertyName>
</propertyNames>
DtoPropertyMap
Layers used | Business |
Type | Business object |
Java interface | Map<String, DtoMrcProperty> |
DTO implementation | pro.ibpm.mercury.ws.server.api.returns.DtoPropertyMap |
XML definition | hgdb-mrc-object-3.0.xsd |
A helper object supporting the implementation of the MrcObject
object, a parameter map, a representation of the propertyMap
field. It is an implementation of a map (a list of DtoPropertyMapEntry
objects), whose key is the name of the case parameter (see the values of the propertyNames
field of the MrcObject
object) and whose value is an object representing the parameter (along with its value).
Parameter | Description | Type | Required? |
---|---|---|---|
entry | The name of the element of the list representing the map. There can be many elements. | DtoPropertyMapEntry | No |
DtoPropertyMapEntry
Layers used in | Business |
Type | Business object |
Java interface | Map.Entry<String, DtoMrcProperty> |
DTO implementation | pro.ibpm.mercury.ws.server.api.returns.DtoPropertyMapEntry |
XML Definition | hgdb-mrc-object-3.0.xsd |
A parameter map element. The object is an element of the DtoPropertyMap
object and is an implementation of Entry
.
Parameter | Description | Type | Required? |
---|---|---|---|
key | Map key | String | Yes |
value | A value representing an object that is an element of the map. | DtoMrcProperty in the representation for | Yes |
MrcSimpleProperty (MrcSimpleItem)
Layers used | Business |
Type | Business Object |
Java Interface | IMrcPropertyAttrs |
className/type | MrcSimpleProperty , MrcSimpleItem (List Item implementation) |
Java Implementation | pro.ibpm.mercury.business.data.api.MrcSimpleProperty , pro.ibpm.mercury.business.data.api.MrcSimpleProperty (List Item implementation) |
DTO Implementation | pro.ibpm.mercury.ws.server.api.returns.DtoMrcProperty |
XML Definition | hgdb-mrc-object-3.0.xsd |
Case parameter. The basic representation of a field in the universal MRC object describing any case stored in the Mercury DB (HgDB) database. The object contains the value of the parameter, depending on its type in different fields.
Parameter | Description | Type | Required? | Allowed values |
---|---|---|---|---|
name | The name of the case field. Equivalent of the definitionName field in the ParamDefinition entity. | String | Yes | |
type | The name of the case field type. Equivalent of the subType field in the ParamDefinition entity. For field types that are a list of elements represented by MrcList , the suffix [] must be added to the type name, e.g. Date[] , TestUser[] , etc., clearly indicating that the parameter is a list.
| String | Yes | |
version | The version of the case field definition. Equivalent to the version field in the ParamDefinition entity. | String | No | |
label | The parameter label. Please note that the Mercury system is also used to generate forms – a field with a label value, equivalent to the label field in the TypeParam entity. | String | No | |
id | XML identifier of the field in the case type. Equivalent to the xmlId field in the TypeParam entity. If the field is not set in the system, it takes the position value (the position field). | String | Yes | |
position | Field position in the case. Equivalent to the position field in the composite key of the TypeParam entity (TypeParamPK ). | Integer | Yes3 | |
isRequired | Is the field value required? Equivalent of the isRequired field in the TypeParam entity | String | No | Representation of the Boolean field: true or false |
updateable | Is it permissible to change the field value? Equivalent of the updateable field in the TypeParam entity. | String | No | One of the values: READWRITE , READONLY , ONCREATE , ONCREATEVISIBLE , OTHER |
isEncoded | Whether the field is encoded to the form stored in the Mercury database. If the field has a value set to false it means that the value is a presentational value. A simple example. The value of the Date field in the Mercury database is stored as a number of milliseconds. If isEncoded=”true” a number will be sent, if isEncoded=”false” a date formatted according to the given format in the context of the action. | String | No | Representation of the Boolean field: true or false |
valueString | The parameter value in the form of a string. | String | No | |
isString | Is the value sent as a string? If true , we look for the value in the valueString field. | Boolean | Yes | true or false |
valueMrcObject | The value of the parameter in the form of a dependent case represented by a universal MRC object (MrcObject ). | MrcObject | No | |
isMrcObject | Is the value sent as a universal MRC object? If true , we look for the value in the valueMrcObject field. | Boolean | Yes | true or false |
mrcClass | The name of the class/type of the universal MRC object element. | String | Yes | One of the values: MrcSimpleProperty , MrcDateProperty , MrcObject , MrcList , MrcPage , MrcPagingParams |
lobMetadata | LOB object metadata, applies only to case parameters representing a LOB type field. | String | No | Values representing the format of LOB values: JSON , ANY , FILE , XML , HTML , TEXT |
lobMimeType | MIME type of LOB object, applies only to case parameters representing a LOB type field. | String | No | Values representing the format of LOB values: application/json , application/xml , text/html , application/octet-stream , text/plain |
valueMrcList | Parameter value in the form of a list of other values. | MrcList | No | |
isMrcList | Is the value a list of other values? If true then we look for the value in the valueMrcList field | Boolean | Yes | true or false |
Below is an example representation of a simple type field. Based on the previously presented examples of a case named TestUser
, the field object named fullName
will be transformed to the following form:
<entry>
<key>fullName^3</key>
<!-- Reprezentacja MrcSimpleProperty - START -->
<value>
<name>fullName</name>
<type>String</type>
<version>1</version>
<id>3</id>
<position>3</position>
<valueString>Slawomir Cichy</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
<!-- Reprezentacja MrcSimpleProperty - KONIEC -->
</entry>
<entry>
<key>startDate^4</key>
<!-- Reprezentacja MrcDateProperty - START-->
<value>
<name>startDate</name>
<type>Date</type>
<version>1</version>
<id>4</id>
<position>4</position>
<isEncoded>false</isEncoded>
<valueString>2017/04/23 22:58:24.842 CEST</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcDateProperty</mrcClass>
</value>
<!-- Reprezentacja MrcDateProperty - KONIEC-->
</entry>
Example of presentation of a parameter representing a list (MrcList):
<entry>
<key>listDates^8</key>
<!-- Reprezentacja MrcList - START -->
<value>
<name>listDates</name>
<type>Date[]</type>
<version>1</version>
<id>8</id>
<position>8</position>
<isEncoded>false</isEncoded>
<valueMrcList>
<mrcClassName>Date</mrcClassName>
<name>listDates</name>
<arraySize>2</arraySize>
<items>
<item>
<isEncoded>false</isEncoded>
<valueString>2017/02/04 21:58:24.842 CET</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcDateProperty</mrcClass>
</item>
<item>
<isEncoded>false</isEncoded>
<valueString>2017/02/03 21:58:24.842 CET</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcDateProperty</mrcClass>
</item>
</items>
</valueMrcList>
<isString>false</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>true</isMrcList>
<mrcClass>MrcList</mrcClass>
</value>
<!-- Reprezentacja MrcList - KONIEC -->
</entry>
MrcDateProperty (MrcDateItem)
Layers used | Business |
Type | Business Object |
Java Interface | IMrcPropertyAttrs |
className/type | MrcDateProperty , MrcDateItem (List Item implementation) |
Java Implementation | pro.ibpm.mercury.business.data.api.MrcDateProperty , pro.ibpm.mercury.business.data.api.MrcDateItem (List Item implementation) |
DTO Implementation | pro.ibpm.mercury.ws.server.api.returns.DtoMrcProperty |
XML Definition | hgdb-mrc-object-3.0.xsd |
A specific implementation of the MrcSimpleProperty object designed to transfer data related to the date and time type.
MrcObjectMetadata
Layers used in | Business |
Type | Business object |
Java interface | IMrcObjectMetadata |
className/type | MrcObjectMetadata |
Java implementation | pro.ibpm.mercury.business.data.api.MrcObjectMetadata |
DTO implementation | pro.ibpm.mercury.business.data.api.MrcObjectMetadata |
XML Definition | hgdb-mrc-object-3.0.xsd |
A metadata object. Originally intended to support parameter type identification (both complex objects and simple types), but currently used exclusively as the headerMetadata
field in the MrcCaseHeader
object (see Context and CaseHeader).
Parameter | Description | Type | Required | Allowed values |
---|---|---|---|---|
className | The name of the case type or simple type. | String | Yes | MrcCaseHeader |
status | Status of the object being sent.. | String | No |
|
MrcList
Layers used | Business |
Type | Business object |
Java interface | IMrcList |
className/type | MrcList |
Java implementation | pro.ibpm.mercury.business.data.api.MrcList |
DTO implementation | pro.ibpm.mercury.ws.server.api.returns.DtoMrcList |
XML definition | hgdb-mrc-object-3.0.xsd |
Universal MRC list. The list can contain elements of the following types:
- MrcSimpleItem (representation of the
MrcSimpleProperty
object in the list) - MrcDateItem (representation of the
MrcDateProperty
object in the list) - MrcObject (universal representation of the case object)
Field description:
Parameter | Description | Type | Required | Allowed values |
---|---|---|---|---|
mrcClassName | Name of the type of the list items/values. | String | Yes | Examples of type names: String , ElixAddress , etc. |
name | Name of the case field that is represented by the list of values. | String | Yes | |
arraySize | Size of the list, the number of list items. | Integer | Yes | Integer |
items | List items/values. | MrcListItems | No |
Example of a list of simple values of type String
:
<?xml version="1.0" encoding="UTF-8"?>
<valueMrcList
xmlns="http://business.dto.ws.hgdb.io/mrcObject"
xsi:schemaLocation="http://business.dto.ws.hgdb.io/mrcObject http://hgdb.io/xsd/dto/hgdb-mrc-object-3.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<mrcClassName>String</mrcClassName>
<name>users</name>
<arraySize>5</arraySize>
<items>
<item>
<type>String</type>
<valueString>slawa1233</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</item>
<item>
<type>String</type>
<valueString>slawas2</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</item>
<item>
<type>String</type>
<valueString>slawas3</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</item>
<item>
<type>String</type>
<valueString>slawas4</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</item>
<item>
<type>String</type>
<valueString>ttest2345</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</item>
</items>
</valueMrcList>
Example of a list of universal MRC objects describing cases of different types (Quarter
and Month
):
<?xml version="1.0" encoding="UTF-8"?>
<valueMrcList
xmlns="http://business.dto.ws.hgdb.io/mrcObject"
xsi:schemaLocation="http://business.dto.ws.hgdb.io/mrcObject http://hgdb.io/xsd/dto/hgdb-mrc-object-3.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<mrcClassName>ANY</mrcClassName>
<name>result</name>
<arraySize>2</arraySize>
<items>
<item>
<name>item</name>
<valueMrcObject>
<name>item</name>
<mrcCaseHeader>
<headerMetadata>
<status>ALL</status>
<className>MrcCaseHeader</className>
</headerMetadata>
<caseId>808289</caseId>
<groupId>301037</groupId>
<typeId>5012</typeId>
<typeCode>Quarter</typeCode>
<status>A</status>
<rootVersionId>808289</rootVersionId>
<priceValue>0.0</priceValue>
<storeCount>1</storeCount>
<storeId>2507</storeId>
<createDate type="Date" isEncoded="false">21-01-2019 15:05:54 +01:00</createDate>
<createdBy>slawas</createdBy>
<lastModifyDate type="Date" isEncoded="false">21-01-2019 15:05:54 +01:00</lastModifyDate>
<lastModifiedBy>slawas</lastModifiedBy>
<modifyComment>SOAP request</modifyComment>
<createdByRoleName>CKBPM-Team</createdByRoleName>
<lastModifiedByRoleName>CKBPM-Team</lastModifiedByRoleName>
<className>Quarter</className>
<objectID>?.Quarter</objectID>
<rootVersionContextID>SoapUI.001</rootVersionContextID>
<version>50917</version>
<dirty>false</dirty>
<pkPropertyName>id</pkPropertyName>
</mrcCaseHeader>
<propertyNames>
<propertyName>status^1</propertyName>
<propertyName>id^2</propertyName>
<propertyName>name^3</propertyName>
<propertyName>months^4</propertyName>
</propertyNames>
<propertyMap>
<entry>
<key>status^1</key>
<value>
<name>status</name>
<type>String</type>
<version>1</version>
<id>1</id>
<position>1</position>
<valueString>Closed</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>id^2</key>
<value>
<name>id</name>
<type>String</type>
<version>2</version>
<id>2</id>
<position>2</position>
<valueString>2018.Q1</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>name^3</key>
<value>
<name>name</name>
<type>String</type>
<version>1</version>
<id>3</id>
<position>3</position>
<valueString>Kwartał 1'2018</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>months^4</key>
<value>
<name>months</name>
<type>Month[]</type>
<version>1</version>
<id>4</id>
<position>4</position>
<isEncoded>false</isEncoded>
<valueMrcList>
<mrcClassName>Month</mrcClassName>
<name>months</name>
<status>TRUNCATED</status>
<arraySize>0</arraySize>
</valueMrcList>
<isString>false</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>true</isMrcList>
<mrcClass>MrcList</mrcClass>
</value>
</entry>
</propertyMap>
<mrcObjectWithRequiredPosition>true</mrcObjectWithRequiredPosition>
</valueMrcObject>
<isString>false</isString>
<isMrcObject>true</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcObject</mrcClass>
</item>
<item>
<name>item</name>
<valueMrcObject>
<name>item</name>
<mrcCaseHeader>
<headerMetadata>
<status>ALL</status>
<className>MrcCaseHeader</className>
</headerMetadata>
<caseId>808300</caseId>
<groupId>301039</groupId>
<typeId>5014</typeId>
<typeCode>Month</typeCode>
<status>A</status>
<previousVersionId>808298</previousVersionId>
<rootVersionId>808298</rootVersionId>
<priceValue>0.0</priceValue>
<storeCount>1</storeCount>
<storeId>2507</storeId>
<createDate type="Date" isEncoded="false">21-01-2019 18:51:05 +01:00</createDate>
<createdBy>slawas</createdBy>
<lastModifyDate type="Date" isEncoded="false">17-12-2019 13:04:22 +01:00</lastModifyDate>
<lastModifiedBy>slawas</lastModifiedBy>
<createdByRoleName>mrc-user</createdByRoleName>
<lastModifiedByRoleName>mrc-user</lastModifiedByRoleName>
<className>Month</className>
<objectID>?.Month</objectID>
<rootVersionContextID>SoapUI.001</rootVersionContextID>
<version>1</version>
<dirty>false</dirty>
<pkPropertyName>id</pkPropertyName>
</mrcCaseHeader>
<propertyNames>
<propertyName>id^1</propertyName>
<propertyName>displayName^2</propertyName>
<propertyName>revenue^3</propertyName>
<propertyName>costs^4</propertyName>
<propertyName>vat^5</propertyName>
</propertyNames>
<propertyMap>
<entry>
<key>id^1</key>
<value>
<name>id</name>
<type>Number</type>
<version>3</version>
<id>1</id>
<position>1</position>
<valueString>2018.04</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>displayName^2</key>
<value>
<name>displayName</name>
<type>String</type>
<version>1</version>
<id>2</id>
<position>2</position>
<valueString>kwiecień'2018</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>revenue^3</key>
<value>
<name>revenue</name>
<type>Double</type>
<version>1</version>
<id>3</id>
<position>3</position>
<valueString>134564.34</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>costs^4</key>
<value>
<name>costs</name>
<type>Double</type>
<version>1</version>
<id>4</id>
<position>4</position>
<valueString>155344.34</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>vat^5</key>
<value>
<name>vat</name>
<type>Double</type>
<version>1</version>
<id>5</id>
<position>5</position>
<valueString>73432.23</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
</propertyMap>
<mrcObjectWithRequiredPosition>true</mrcObjectWithRequiredPosition>
</valueMrcObject>
<isString>false</isString>
<isMrcObject>true</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcObject</mrcClass>
</item>
</items>
</valueMrcList>
MrcListItems
Layers used | Business |
Type | Business object |
Java interface | Serializable |
className/type | MrcListItems |
DTO implementation | pro.ibpm.mercury.ws.server.api.returns.DtoMrcListItems |
XML definition | hgdb-mrc-object-3.0.xsd |
A helper object supporting the implementation of the MrcList object. Represents the implementation of the list of items. The list contains items named item
.
Parameter | Description | Type |
---|---|---|
item | List item/value. Multiple items possible. | MrcSimpleItem |
MrcPagedResult
Layers used | Business |
Type | Business object |
Java interface | IMrcPagedResult, IMrcObject |
className/type | MrcPagedResult |
Java implementation | pro.ibpm.mercury.business.data.api.MrcPagedResult |
DTO implementation | pro.ibpm.mercury.ws.server.api.returns.DtoMrcObject |
XML definition | hgdb-mrc-object-3.0.xsd |
Paged query result. The application and detailed description can be found in the article PagedResult as a list of downloaded data. This is a special representation of the MrcObject
object, which represents search results (downloading lists of large-volume data). Despite its universal structure, this object has predefined parameters with specific names. Unlike the general definition of the universal MRC object, the mrcCaseHeader
field, characteristic for the representation of any case object instance, is not set. Other predefined values of the fields of this object:
- the
mrcClassName
field always takes the valueMrcPagedResult
. - the
name
field always takes the valuevariable
. - the
propertyNames
field is a list of values specific to this object, representing the fields:resultSize
,result
,message
,executionTime
,currentPageInfo
,firstPageInfo
,previousPageInfo
,nextPageInfo
,lastPageInfo
,allPages
,pagingParams
- the
propertyMap
field is a map whose keys are the values contained in thepropertyNames
parameter.
<propertyNames>
<propertyName>resultSize</propertyName>
<propertyName>result</propertyName>
<propertyName>message</propertyName>
<propertyName>executionTime</propertyName>
<propertyName>currentPageInfo</propertyName>
<propertyName>firstPageInfo</propertyName>
<propertyName>previousPageInfo</propertyName>
<propertyName>nextPageInfo</propertyName>
<propertyName>lastPageInfo</propertyName>
<propertyName>allPages</propertyName>
<propertyName>pagingParams</propertyName>
</propertyNames>
The following table describes the meaning of each parameter:
Parameter | Description | mrcClass | Position |
---|---|---|---|
resultSize | Total size of the result. | MrcSimpleProperty | 1 |
result | List of elements (cases) returned as a result of the query corresponding to the given page. | MrcList | 2 |
message | Message related to the result. Allowed values:
| MrcSimpleProperty | 3 |
executionTime | Query execution time (in milliseconds) | MrcSimpleProperty | 4 |
currentPageInfo | Information about the current page of the returned result (current page number) | MrcPage | 5 |
firstPageInfo | Information about the first page of the returned result (first page number) | MrcPage | 6 |
previousPageInfo | Information about the previous page of the returned result (previous page number) | MrcPage | 7 |
nextPageInfo | Information about the next page of the returned result (next page number) | MrcPage | 8 |
lastPageInfo | Information about the last page of the returned result (last page number) | MrcPage | 9 |
allPages | List of pages. For optimization purposes, it represents 10 consecutive pages "around" the paged result page retrieved using the service. | MrcList | 10 |
pagingParams | Paging parameters (criteria used to divide the result into pages) | MrcPagingParams | 11 |
MrcPage
Layers used | Business |
Type | Business object |
Java interface | IMrcPage, IMrcObject |
className/type | MrcPage |
Java implementation | pro.ibpm.mercury.business.data.api.MrcPage |
DTO implementation | pro.ibpm.mercury.ws.server.api.returns.DtoMrcObject |
XML definition | hgdb-mrc-object-3.0.xsd |
An object describing the page of a paged query result. It is a special representation of the MrcObject
object. It is used to represent the fields currentPageInfo
, firstPageInfo
, previousPageInfo
, nextPageInfo
and lastPageInfo
of a paged result of case search/retrieval services. Despite its universal structure, this object has predefined parameters with specific names. Unlike the general definition of the universal MRC object, the mrcCaseHeader field, characteristic for the representation of any case object instance, is not set. Other predefined values of the fields of this object:
- the
mrcClassName
field always takes the valueMrcPage
. - the
propertyNames
field is a list of values characteristic of this object, representing the fields:number
,size
- the
propertyMap
field is a map whose keys are the values contained in thepropertyNames
parameter.
<propertyNames>
<propertyName>size</propertyName>
<propertyName>number</propertyName>
</propertyNames>
The following table describes the meaning of each parameter:
Parameter | Description | mrcClass | Position |
---|---|---|---|
size | Page size | MrcSimpleProperty | 1 |
number | Page number | MrcSimpleProperty | 2 |
MrcPagingParams
Layers used in | Business |
Type | Business object |
Java interface | IMrcPagingParams, IMrcObject |
className/type | MrcPagingParams |
Java implementation | pro.ibpm.mercury.business.data.api.MrcPagingParams |
DTO implementation | pro.ibpm.mercury.ws.server.api.returns.DtoMrcObject |
XML definition | hgdb-mrc-object-3.0.xsd |
Query result paging parameters. It is used in the pagingParams
field of the paged result of the search/retrieval case services MrcPagedResult
. It is a special representation of the MrcObject
object. In its case, there is no possibility of adding your own parameters, because it is not a predefined object by the system, unlike the definition of case objects. Despite its universal structure, this object has predefined parameters with specific names. Unlike the general definition of the universal MRC object, the mrcCaseHeader
field, characteristic for the representation of any case object instance, is not set. Other predefined values of the fields of this object:
- the
mrcClassName
field always takes the valueMrcPagingParams
. - the
name
field always takes the valuepagingParams
. - the
propertyNames
field is a list of values characteristic of this object, representing the fields:offset
,cursorOfPage
,maxPageSize
,maxCount
,pageSize
,page
,valid
andisReadOnly
. - the
propertyMap
field is a map whose keys are the values contained in thepropertyNames
parameter.
<propertyNames>
<propertyName>offset</propertyName>
<propertyName>cursorOfPage</propertyName>
<propertyName>maxPageSize</propertyName>
<propertyName>maxCount</propertyName>
<propertyName>pageSize</propertyName>
<propertyName>page</propertyName>
<propertyName>valid</propertyName>
<propertyName>isReadOnly</propertyName>
</propertyNames>
The following table describes the meaning of each parameter:
Parameter | Description | mrcClass | Position |
---|---|---|---|
offset | The position of the result (item number) from which the first page of the result starts. | MrcSimpleProperty | 1 |
cursorOfPage | The position of the result (item number) from which the current page starts | MrcSimpleProperty | 2 |
maxPageSize | The maximum page size that can be set for a given result. | MrcSimpleProperty | 3 |
maxCount | The maximum number of items in the result | MrcSimpleProperty | 4 |
pageSize | The current page size | MrcSimpleProperty | 5 |
page | The object representing the definition of the current page | MrcPage | 6 |
valid | Are the pagination parameters correct? The idea is that, for example, the page size cannot be greater than the maximum number of items in the result, or the result position cannot be greater than the maximum value. If these parameters do not match, the field will take a value corresponding to false. | MrcSimpleProperty | 7 |
isReadOnly | Can the parameters be changed? | MrcSimpleProperty | 8 |
Example representing information about the current page of the paged result in XML:
<?xml version="1.0" encoding="utf-8"?>
<valueMrcObject xmlns="http://business.dto.ws.hgdb.io/mrcObject"
xsi:schemaLocation="http://business.dto.ws.hgdb.io/mrcObject http://hgdb.io/xsd/dto/hgdb-mrc-object-3.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<mrcClassName>MrcPagingParams</mrcClassName>
<name>pagingParams</name>
<propertyNames>
<propertyName>offset</propertyName>
<propertyName>cursorOfPage</propertyName>
<propertyName>maxPageSize</propertyName>
<propertyName>maxCount</propertyName>
<propertyName>pageSize</propertyName>
<propertyName>page</propertyName>
<propertyName>valid</propertyName>
<propertyName>isReadOnly</propertyName>
</propertyNames>
<propertyMap>
<entry>
<key>offset</key>
<value>
<name>offset</name>
<type>Integer</type>
<position>1</position>
<valueString>0</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>cursorOfPage</key>
<value>
<name>cursorOfPage</name>
<type>Integer</type>
<position>2</position>
<valueString>0</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>maxPageSize</key>
<value>
<name>maxPageSize</name>
<type>Integer</type>
<position>3</position>
<valueString>100</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>maxCount</key>
<value>
<name>maxCount</name>
<type>Integer</type>
<position>4</position>
<valueString>1000</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>pageSize</key>
<value>
<name>pageSize</name>
<type>Integer</type>
<position>5</position>
<valueString>100</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>page</key>
<value>
<name>page</name>
<type>MrcPage</type>
<position>6</position>
<valueMrcObject>
<mrcClassName>MrcPage</mrcClassName>
<name>page</name>
<propertyNames>
<propertyName>size</propertyName>
<propertyName>number</propertyName>
</propertyNames>
<propertyMap>
<entry>
<key>size</key>
<value>
<name>size</name>
<type>Integer</type>
<position>1</position>
<valueString>100</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>number</key>
<value>
<name>number</name>
<type>Integer</type>
<position>2</position>
<valueString>1</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
</propertyMap>
<mrcObjectWithRequiredPosition>false</mrcObjectWithRequiredPosition>
</valueMrcObject>
<isString>false</isString>
<isMrcObject>true</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcPage</mrcClass>
</value>
</entry>
<entry>
<key>valid</key>
<value>
<name>valid</name>
<type>Boolean</type>
<position>7</position>
<valueString>true</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
<entry>
<key>isReadOnly</key>
<value>
<name>isReadOnly</name>
<type>Boolean</type>
<position>8</position>
<valueString>false</valueString>
<isString>true</isString>
<isMrcObject>false</isMrcObject>
<isMrcList>false</isMrcList>
<mrcClass>MrcSimpleProperty</mrcClass>
</value>
</entry>
</propertyMap>
<mrcObjectWithRequiredPosition>false</mrcObjectWithRequiredPosition>
</valueMrcObject>
MrcCaseDate (CaseDate)
Layers used | Business |
Type | Business object |
Java implementation | pro.ibpm.mercury.attrs.javax.CaseDate |
DTO implementation | pro.ibpm.mercury.attrs.javax.CaseDate |
XML definition | hgdb-mrc-case-date-3.0.xsd |
Date object. It is used in business services to uniquely identify a Date type field.
As a date definition in the universal MrcObject
object, it occurs only in services compatible with the Mercury 2.0 product. The object has been replaced in the Mercury DB (HgDB) API by MrcDateProperty
.
However, it appears as an argument to methods that accept a date-type criterion argument as input.
Parameter | Description | Type | Required | Allowed values |
---|---|---|---|---|
fullYear | Full year | Integer | Yes | Integers |
month | Month number | Integer | Yes | Integers in the range [1..12] |
date | Day of month number | Integer | Yes | Integers in the range [1..31] |
dayOfWeek | Day of week number | Integer | No | Integers in the range [1..7] |
hours | Hour for time | Integer | No | Integers in the range [0..24] |
minutes | Minute for time | Integer | No | Integers in the range [0..59] |
seconds | Second for time | Integer | No | Integers in the range [0..59] |
milliseconds | Millisecond for time | Integer | No | Integers in the range [0..1000] |
timeZone | User time zone definition | String | No | Example: Europe/Warsaw |
<?xml version="1.0" encoding="UTF-8"?>
<dateFrom type="MrcCaseHeader" xmlns="http://business.dto.ws.hgdb.io/caseDate"
xsi:schemaLocation="http://business.dto.ws.hgdb.io/caseDate http://hgdb.io/xsd/dto/hgdb-mrc-case-date-3.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<fullYear>2017</fullYear>
<month>6</month>
<date>17</date>
<dayOfWeek>7</dayOfWeek>
<hours>1</hours>
<minutes>16</minutes>
<seconds>33</seconds>
<milliseconds>847</milliseconds>
<timeZone>Europe/Belgrade</timeZone>
</dateFrom>
Footnotes
-
No/Yes - required means that the parameter is required when the object defines a dependent case. ↩
-
Yes - required means that the parameter is required when the object has the parameter
mrcClassName = MrcObject
set. ↩ -
Required field
position
- Yes - the parameter is required when the object represents a field in the universal MRC case object (MrcObject) with themrcObjectWithRequiredPosition
attribute set totrue
. ↩