Skip to main content

Case as a universal MRC object - MrcObject

Info

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 usedBusiness
TypeBusiness object
Java InterfaceIMrcObject, IMrcPropertyAttrs
className/typeMrcObject
Java Implementationpro.ibpm.mercury.business.data.api.MrcObject
DTO implementationpro.ibpm.mercury.ws.server.api.returns.DtoMrcObject
XML definitionhgdb-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.

ParameterDescriptionTypeRequiredAllowed values ​​
mrcClassNameThe class name of the universal MRC object.StringYesMrcObject, MrcPagedResult, MrcPagingParams, MrcPage
nameFor dependent cases, this is the name of the field in which the given MrcObject type object appears. For parent cases, the value is not setStringNo/Yes1
mrcCaseHeaderCase headerCaseHeaderYes2
propertyNamesList of case parameter names. List of map keys contained in the propertyMap fieldDtoMrcPropertyNamesYes
propertyMapMap, 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 objectsDtoPropertyMapYes
mrcObjectWithRequiredPositionIs 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.BooleanNotrue 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.
Example of the MrcObject object
<?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.
MrcObject example
{
"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 usedBusiness
TypeBusiness object
Java implementationString[]
DTO implementationpro.ibpm.mercury.ws.server.api.returns.DtoMrcPropertyNames
XML definitionhgdb-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.

ParameterDescriptionTypeRequired?Allowed values ​​
propertyNameName of the list item. There can be multiple items.StringNoNames 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):
Example list of parameter names in XML
<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 usedBusiness
TypeBusiness object
Java interfaceMap<String, DtoMrcProperty>
DTO implementationpro.ibpm.mercury.ws.server.api.returns.DtoPropertyMap
XML definitionhgdb-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).

ParameterDescriptionTypeRequired?
entryThe name of the element of the list representing the map. There can be many elements.DtoPropertyMapEntryNo

DtoPropertyMapEntry

Layers used inBusiness
TypeBusiness object
Java interfaceMap.Entry<String, DtoMrcProperty>
DTO implementationpro.ibpm.mercury.ws.server.api.returns.DtoPropertyMapEntry
XML Definitionhgdb-mrc-object-3.0.xsd

A parameter map element. The object is an element of the DtoPropertyMap object and is an implementation of Entry.

ParameterDescriptionTypeRequired?
keyMap keyStringYes
valueA value representing an object that is an element of the map.DtoMrcProperty in the representation for Yes

MrcSimpleProperty (MrcSimpleItem)

Layers usedBusiness
TypeBusiness Object
Java InterfaceIMrcPropertyAttrs
className/typeMrcSimpleProperty, MrcSimpleItem (List Item implementation)
Java Implementationpro.ibpm.mercury.business.data.api.MrcSimpleProperty, pro.ibpm.mercury.business.data.api.MrcSimpleProperty (List Item implementation)
DTO Implementationpro.ibpm.mercury.ws.server.api.returns.DtoMrcProperty
XML Definitionhgdb-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.

ParameterDescriptionTypeRequired?Allowed values ​​
nameThe name of the case field. Equivalent of the definitionName field in the ParamDefinition entity.StringYes
typeThe 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.
  • For fields containing complex objects (universal MRC objects describing cases), the parameter takes the value of their name, e.g. TestUser.
  • For simple type fields, the values ​​predefined in the system should be used. Otherwise, an attempt will be made to convert the field to the String type, and for lists (name with the [] suffix) to the Lob type. Currently used values ​​include the following (see Case metadata): Boolean, BooleanInteger, Text,String, Password, Number, Decimal, Currency, Integer, Date, DateLong, Time, File, URL, Lob.
StringYes
versionThe version of the case field definition. Equivalent to the version field in the ParamDefinition entity.StringNo
labelThe 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.StringNo
idXML 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).StringYes
positionField position in the case. Equivalent to the position field in the composite key of the TypeParam entity (TypeParamPK).IntegerYes3
isRequiredIs the field value required? Equivalent of the isRequired field in the TypeParam entityStringNoRepresentation of the Boolean field: true or false
updateableIs it permissible to change the field value? Equivalent of the updateable field in the TypeParam entity.StringNoOne of the values: READWRITE, READONLY, ONCREATE, ONCREATEVISIBLE, OTHER
isEncodedWhether 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.StringNoRepresentation of the Boolean field: true or false
valueStringThe parameter value in the form of a string.StringNo
isStringIs the value sent as a string? If true, we look for the value in the valueString field.BooleanYestrue or false
valueMrcObjectThe value of the parameter in the form of a dependent case represented by a universal MRC object (MrcObject).MrcObjectNo
isMrcObjectIs the value sent as a universal MRC object? If true, we look for the value in the valueMrcObject field.BooleanYestrue or false
mrcClassThe name of the class/type of the universal MRC object element.StringYesOne of the values: MrcSimpleProperty, MrcDateProperty, MrcObject, MrcList, MrcPage, MrcPagingParams
lobMetadataLOB object metadata, applies only to case parameters representing a LOB type field.StringNoValues ​​representing the format of LOB values: JSON, ANY, FILE, XML, HTML, TEXT
lobMimeTypeMIME type of LOB object, applies only to case parameters representing a LOB type field.StringNoValues ​​representing the format of LOB values: application/json, application/xml, text/html, application/octet-stream, text/plain
valueMrcListParameter value in the form of a list of other values.MrcListNo
isMrcListIs the value a list of other values? If true then we look for the value in the valueMrcList fieldBooleanYestrue 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:

Example for a simple type case parameter (mrcClass=MrcSimpleProperty)
<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>
Example for a simple type case parameter (mrcClass=MrcDateProperty)
<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):
Example for a list type case parameter (mrcClass=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 usedBusiness
TypeBusiness Object
Java InterfaceIMrcPropertyAttrs
className/typeMrcDateProperty, MrcDateItem (List Item implementation)
Java Implementationpro.ibpm.mercury.business.data.api.MrcDateProperty, pro.ibpm.mercury.business.data.api.MrcDateItem (List Item implementation)
DTO Implementationpro.ibpm.mercury.ws.server.api.returns.DtoMrcProperty
XML Definitionhgdb-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 inBusiness
TypeBusiness object
Java interfaceIMrcObjectMetadata
className/typeMrcObjectMetadata
Java implementationpro.ibpm.mercury.business.data.api.MrcObjectMetadata
DTO implementationpro.ibpm.mercury.business.data.api.MrcObjectMetadata
XML Definitionhgdb-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).

ParameterDescriptionTypeRequiredAllowed values ​​
classNameThe name of the case type or simple type.StringYesMrcCaseHeader
statusStatus of the object being sent..StringNo
  • ALL - all data sent
  • ONLY_HEADER - only the case header sent

MrcList

Layers usedBusiness
TypeBusiness object
Java interfaceIMrcList
className/typeMrcList
Java implementationpro.ibpm.mercury.business.data.api.MrcList
DTO implementationpro.ibpm.mercury.ws.server.api.returns.DtoMrcList
XML definitionhgdb-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:

ParameterDescriptionTypeRequiredAllowed values ​​
mrcClassNameName of the type of the list items/values.StringYesExamples of type names: String, ElixAddress, etc.
nameName of the case field that is represented by the list of values.StringYes
arraySizeSize of the list, the number of list items.IntegerYesInteger
itemsList items/values.MrcListItemsNo
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 usedBusiness
TypeBusiness object
Java interfaceSerializable
className/typeMrcListItems
DTO implementationpro.ibpm.mercury.ws.server.api.returns.DtoMrcListItems
XML definitionhgdb-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.

ParameterDescriptionType
itemList item/value. Multiple items possible.MrcSimpleItem

MrcPagedResult

Layers usedBusiness
TypeBusiness object
Java interfaceIMrcPagedResult, IMrcObject
className/typeMrcPagedResult
Java implementationpro.ibpm.mercury.business.data.api.MrcPagedResult
DTO implementationpro.ibpm.mercury.ws.server.api.returns.DtoMrcObject
XML definitionhgdb-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 value MrcPagedResult.
  • the name field always takes the value variable.
  • 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 the propertyNames parameter.
Fixed list of parameters in the XML definition in the MrcObject implementation
<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:

ParameterDescriptionmrcClassPosition
resultSizeTotal size of the result.MrcSimpleProperty1
resultList of elements (cases) returned as a result of the query corresponding to the given page.MrcList2
messageMessage related to the result. Allowed values:
  • FRAGMENT – the result presents a fragment, not all values.
  • ALL – the result presents all values ​​(when all results fit on one page or it is the last page of the retrieved result).
  • NO_DATA_FOUND – no data found.
MrcSimpleProperty3
executionTimeQuery execution time (in milliseconds)MrcSimpleProperty4
currentPageInfoInformation about the current page of the returned result (current page number)MrcPage5
firstPageInfoInformation about the first page of the returned result (first page number)MrcPage6
previousPageInfoInformation about the previous page of the returned result (previous page number)MrcPage7
nextPageInfoInformation about the next page of the returned result (next page number)MrcPage8
lastPageInfoInformation about the last page of the returned result (last page number)MrcPage9
allPagesList of pages. For optimization purposes, it represents 10 consecutive pages "around" the paged result page retrieved using the service.MrcList10
pagingParamsPaging parameters (criteria used to divide the result into pages)MrcPagingParams11

MrcPage

Layers usedBusiness
TypeBusiness object
Java interfaceIMrcPage, IMrcObject
className/typeMrcPage
Java implementationpro.ibpm.mercury.business.data.api.MrcPage
DTO implementationpro.ibpm.mercury.ws.server.api.returns.DtoMrcObject
XML definitionhgdb-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 value MrcPage.
  • 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 the propertyNames parameter.
Fixed list of parameters in the XML definition in the MrcObject implementation
<propertyNames>
<propertyName>size</propertyName>
<propertyName>number</propertyName>
</propertyNames>

The following table describes the meaning of each parameter:

ParameterDescriptionmrcClassPosition
sizePage sizeMrcSimpleProperty1
numberPage numberMrcSimpleProperty2

MrcPagingParams

Layers used inBusiness
TypeBusiness object
Java interfaceIMrcPagingParams, IMrcObject
className/typeMrcPagingParams
Java implementationpro.ibpm.mercury.business.data.api.MrcPagingParams
DTO implementationpro.ibpm.mercury.ws.server.api.returns.DtoMrcObject
XML definitionhgdb-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 value MrcPagingParams.
  • the name field always takes the value pagingParams.
  • the propertyNames field is a list of values ​​characteristic of this object, representing the fields: offset, cursorOfPage, maxPageSize, maxCount, pageSize, page, valid and isReadOnly.
  • the propertyMap field is a map whose keys are the values ​​contained in the propertyNames parameter.
Fixed list of parameters in the XML definition in the MrcObject implementation
<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:

ParameterDescriptionmrcClassPosition
offsetThe position of the result (item number) from which the first page of the result starts.MrcSimpleProperty1
cursorOfPageThe position of the result (item number) from which the current page startsMrcSimpleProperty2
maxPageSizeThe maximum page size that can be set for a given result.MrcSimpleProperty3
maxCountThe maximum number of items in the resultMrcSimpleProperty4
pageSizeThe current page sizeMrcSimpleProperty5
pageThe object representing the definition of the current pageMrcPage6
validAre 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.MrcSimpleProperty7
isReadOnlyCan the parameters be changed?MrcSimpleProperty8
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 usedBusiness
TypeBusiness object
Java implementationpro.ibpm.mercury.attrs.javax.CaseDate
DTO implementationpro.ibpm.mercury.attrs.javax.CaseDate
XML definitionhgdb-mrc-case-date-3.0.xsd

Date object. It is used in business services to uniquely identify a Date type field.

Info

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.

ParameterDescriptionTypeRequiredAllowed values ​​
fullYearFull yearIntegerYesIntegers
monthMonth numberIntegerYesIntegers in the range [1..12]
dateDay of month numberIntegerYesIntegers in the range [1..31]
dayOfWeekDay of week numberIntegerNoIntegers in the range [1..7]
hoursHour for timeIntegerNoIntegers in the range [0..24]
minutesMinute for timeIntegerNoIntegers in the range [0..59]
secondsSecond for timeIntegerNoIntegers in the range [0..59]
millisecondsMillisecond for timeIntegerNoIntegers in the range [0..1000]
timeZoneUser time zone definitionStringNoExample: Europe/Warsaw
MrcCaseDate object example
<?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

  1. No/Yes - required means that the parameter is required when the object defines a dependent case.

  2. Yes - required means that the parameter is required when the object has the parameter mrcClassName = MrcObject set.

  3. Required field position - Yes - the parameter is required when the object represents a field in the universal MRC case object (MrcObject) with the mrcObjectWithRequiredPosition attribute set to true.