Cyscom Software-as-a-Service Application Platform Web Services Guide

Cyscom Software-as-a-Service Application Platform Web Services Guide

Introduction

    Cyscom Software-as-a-Service application platform provides a set of xml web services for the purpose of integration with other applications. These web services provide both read and write access to Software-as-a-Service application data allowing to implement different interoperability scenarios.

 

Web service access

Cyscom Software-as-a-Service application web service is available for each individual application at the following url

	http://<site domain name>/_vti_bin/CommonCssa/GeneralCatalogService.asmx

where <site domain name> is the Cyscom Software-as-a-Service application site address, e.g.

	http://mycompany.saas.cyscom.net/_vti_bin/CommonCssa/GeneralCatalogService.asmx

The same credentials as for application site access should be used when accessing GeneralCatalogService.asmx.

 

Web service methods

GeneralCatalogService.asmx has the following methods

GetItemByEntityCategoryName

public string GetItemByEntityCategoryName(string entityCategoryName, string itemId);

Retrieves specific record from Cyscom SaaS application database.

Parameters:
    entityCategoryName - name of the root category which should define the type of record to retrieve. E.g. Accounts, Tasks, Cases, Users etc.
    itemId - string representation of the record guid (globally unique identifier) which identifies record in Cyscom SaaS database within given record type. E.g. A52D62C7-D9D3-4266-8E0B-487D480AE4F2

Result:
    Record xml. See Item Xml section below.

Example:

string caseRecordXml = catalogServiceProxy.GetItemByEntityCategoryName( "Cases", "A52D62C7-D9D3-4266-8E0B-487D480AE4F2"); 

GetItemByCategoryGroupId

public string GetItemByCategoryGroupId(string categoryGroupId, string itemId); 

Retrieves specific record from Cyscom SaaS application database.

Parameters:
    categoryGroupId - string representation of category group guid(globally unique identifier). Category group defines the type of record to retrieve. E.g. 8fb8615f-c23f-4495-b8ca-299988d018b2.
    itemId - string representation of the record guid (globally unique identifier) which identifies record in Cyscom SaaS database within given category group (entity). E.g. A52D62C7-D9D3-4266-8E0B-487D480AE4F2

Result:
    Record xml. See Item Xml section below.

Example:

string caseRecordXml = catalogServiceProxy.GetItemByCategoryGroupId( "8fb8615f-c23f-4495-b8ca-299988d018b2", "A52D62C7-D9D3-4266-8E0B-487D480AE4F2"); 

GetItemsByEntityCategoryNameAndFilter

public string GetItemsByEntityCategoryNameAndFilter(string entityCategoryName, string filterXml);

Retrieves list of records of certain from Cyscom SaaS application database that meet given criteria.

Parameters:
    entityCategoryName - name of the root category which should define the type of record to retrieve. E.g. Accounts, Tasks, Cases, Users etc.
    filterXml - string representation of the filter xml that defines criteria to select records of given type. See Filter Xml section below.

Result:
    Records list xml. See Records List Xml section below.

Example:

string accountsXml = catalogServiceProxy.GetItemsByEntityCategoryNameAndFilter( "Accounts", "<filter CoreType=\"SinglePropertyValueFilter\" PropertyName=\"Company Name\" Type=\"Equality\"><Value>My Company</Value></filter>"); 

GetPropertyById

public string GetPropertyById(string propertyId);

Retrieves information on specific property from Cyscom SaaS application database.

Parameters:
    propertyId - string representation of property guid (globally unique identifier) which identifies property in Cyscom SaaS application database. E.g. 4462e80b-6b47-4f7f-950c-f247d23a7780.

Result:
    Property xml. See Property Xml section below.

Example:

string propertyXml = catalogServiceProxy.GetPropertyById( "4462e80b-6b47-4f7f-950c-f247d23a7780"); 

GetPropertyByName

public string GetPropertyByName(string propertyName);

Retrieves information on specific property from Cyscom SaaS application database.

Parameters:
    propertyName - name of the property to retrieve from Cyscom SaaS application database. E.g. Subject (for Cases), Company Name, Priority (for Cases).

Result:
    Property xml. See Property Xml section below.

Example:

string propertyXml = catalogServiceProxy.GetPropertyByName( "Subject (for Cases)"); 

GetCategoryById

public string GetCategoryById(string categoryId);

Retrieves information on specific category from Cyscom SaaS application database.

Parameters:
    categoryId - string representation of category guid (globally unique identifier) which identifies category in Cyscom SaaS application database. E.g. 0980dcb8-8ac4-4323-8d3b-cc942829b96f.

Result:
    Category xml. See Category Xml section below.

Example:

string categoryXml = catalogServiceProxy.GetCategoryById( "0980dcb8-8ac4-4323-8d3b-cc942829b96f" ); 

GetCategoryByName

public string GetCategoryByName(string categoryName);

Retrieves information on specific category from Cyscom SaaS application database.

Parameters:
    categoryName - name of the category to retrieve from Cyscom SaaS application database. E.g. Accounts, Cases, Products & Services.

Result:
    Category xml. See Category Xml section below.

Example:

string categoryXml = catalogServiceProxy.GetCategoryByName( "Products & Services"); 

GetListSetById

public string GetListSetById(string listSetId);

Retrieves information on specific list set from Cyscom SaaS application database.

Parameters:
    listSetId - string representation of list set guid (globally unique identifier) which identifies list set in Cyscom SaaS application database. E.g. 758fbcb3-bcab-4114-ade5-8d87918bd287.

Result:
    List set xml. See List Set Xml section below.

Example:

string listSetXml = catalogServiceProxy.GetListSetById( "758fbcb3-bcab-4114-ade5-8d87918bd287" ); 

GetListSetByName

public string GetListSetByName(string listSetName) 

Retrieves information on specific list set from Cyscom SaaS application database.

Parameters:
    listSetName - name of the list set to retrieve from Cyscom SaaS application database. E.g. Priority List, Role Approval List.

Result:
    List Set xml. See List Set Xml section below.

Example:

string listSetXml = catalogServiceProxy.GetListSetByName( "Priority List"); 

GetUnitSetById

public string GetUnitSetById(string unitSetId);

Retrieves information on specific unit set from Cyscom SaaS application database.

Parameters:
    unitSetId - string representation of unit set guid (globally unique identifier) which identifies unit set in Cyscom SaaS application database. E.g. 4765e80b-6b47-4f7f-951c-f647a23c7605.

Result:
    Unit set xml. See Unit Set Xml section below.

Example:

string unitSetXml = catalogServiceProxy.GetUnitSetById( "4765e80b-6b47-4f7f-951c-f647a23c7605" ); 

GetUnitSetByName

public string GetUnitSetByName(string unitSetName) 

Retrieves information on specific unit set from Cyscom SaaS application database.

Parameters:
    unitSetName - name of the unit set to retrieve from Cyscom SaaS application database. E.g. Weight Unit, currency etc.

Result:
    Unit Set xml. See Unit Set Xml section below.

Example:

string unitSetXml = catalogServiceProxy.GetUnitSetByName( "currency"); 

GetSubsetById

public string GetSubsetById(string subsetId);

Retrieves information on specific subset from Cyscom SaaS application database.

Parameters:
    subsetId - string representation of subset guid (globally unique identifier) which identifies subset in Cyscom SaaS application database. E.g. 8B42B6B9-026C-4cf2-B774-3077FD3E3DD3.

Result:
    Subset xml. See Subset Xml section below.

Example:

string subsetXml = catalogServiceProxy.GetSubsetById( "8B42B6B9-026C-4cf2-B774-3077FD3E3DD3" ); 

GetSubsetByName

public string GetSubsetByName(string subsetName) 

Retrieves information on specific subset from Cyscom SaaS application database.

Parameters:
    subsetName - name of the subset to retrieve from Cyscom SaaS application database. E.g. Open Events, My Workspaces etc.

Result:
    Subset xml. See Subset Xml section below.

Example:

string subsetXml = catalogServiceProxy.GetSubsetByName( "Open Events"); 

GetSubCategories

public string GetSubCategories(string parentCategoryName);

Retrieves the list of subcategories for the given category identified by name.

Parameters:
    parentCategoryName - name of the category to retrieve subcategories for. E.g. Accounts, Cases, Products & Services.

Result:
    Category list xml. See Category List Xml section below.

Example:

string categoryListXml = catalogServiceProxy.GetSubCategories( "Products & Services"); 

DeleteItem

public void DeleteItem(string entityCategoryName, string itemId);

Deletes specific record from Cyscom SaaS application database.

Parameters:
    entityCategoryName - name of the root category which should define the type of record to delete. E.g. Accounts, Tasks, Cases, Users etc.
    itemId - string representation of the record guid (globally unique identifier) which identifies record in Cyscom SaaS database within given record type that has to be deleted. E.g. A52D62C7-D9D3-4266-8E0B-487D480AE4F2

Example:

catalogServiceProxy.DeleteItem( "Cases", "A52D62C7-D9D3-4266-8E0B-487D480AE4F2"); 

CommitNewItem

public void CommitNewItem(string itemXml);

Creates new record in Cyscom SaaS application database from given xml definition.

Parameters:
    itemXml - xml definition of the record that has to be created. See Item Xml section below.

Example:

catalogServiceProxy.CommitNewItem( @"
	<Item CoreType=""Item"" Id=""A52D62C7-D9D3-4266-8E0B-487D480AE4F2"" CategoryName=""Cases"">
		<PropertyValues>
			<PropertyValue CoreType=""StringPropertyValue"" PropertyName=""ID (for Cases)"">1</PropertyValue>
			<PropertyValue CoreType=""StringPropertyValue"" PropertyName=""Subject (for Cases)"">Server is unavailable</PropertyValue>
		</PropertyValues>
	</Item>"); 

UpdateItem

public void UpdateItem(string itemXml);

Updates existing record in Cyscom SaaS application database using given xml definition.

Parameters:
    itemXml - xml definition of the record that has to be updated. See Item Xml section below.

Note. The record in database gets fully overwritten with supplied data in xml. E.g. if there is a missing field in xml it will get erased in database. Therefore the correct way to update records is to download existing record xml, modify it and invoke UpdateItem.

Example:

catalogServiceProxy.UpdateItem( @"
	<Item CoreType=""Item"" Id=""A52D62C7-D9D3-4266-8E0B-487D480AE4F2"" CategoryName=""Cases"">
		<PropertyValues>
			<PropertyValue CoreType=""StringPropertyValue"" PropertyName=""ID (for Cases)"">1</PropertyValue>
			<PropertyValue CoreType=""StringPropertyValue"" PropertyName=""Subject (for Cases)"">Server is unavailable</PropertyValue>
		</PropertyValues>
	</Item>"); 

 

Xml schemas

Item Xml

Item xml contains data for one record from Cyscom Software-as-a-Service application database.

Example

<Item
    CoreType="Item"
    Id="a52d62c7-d9d3-4266-8e0b-487d480ae4f2"
    Category="0980dcb8-8ac4-4323-8d3b-cc932829b95f"
    CategoryName="Cases"
    CategoryPath="Cases"
    SecurityDescriptor="O:BAG:BAD:AI(A;CI;LCSW;;;S-1-5-21-914621048-366205296-3782579767-1226)(A;CIID;LCSW;;;S-1-9-6)(A;CIID;CCDCLCSW;;;BA)(A;CIID;CCDCLCSW;;;S-1-9-0)(A;CIID;CCDC;;;S-1-9-1)(A;CIID;CCLC;;;S-1-9-2)(A;CIID;CCDCLCSW;;;S-1-9-3)(A;CIID;CC;;;S-1-9-11)">
        <PropertyValues>
            <PropertyValue
                CoreType="StringPropertyValue"
                Property="4462e80b-6b47-4f7f-950c-f247d23a7780"
                PropertyName="ID (for Cases)">2510-01</PropertyValue>
            <PropertyValue
                CoreType="StringPropertyValue"
                Property="4462e80b-6b47-4f7f-950c-f247d23a7781"
                PropertyName="Subject (for Cases)">Web Server does not respond</PropertyValue>
        </PropertyValues>
        <IncludeSubsets />
        <ExcludeSubsets />
</Item>

General remarks

Records are the main form representation of user information in Cyscom SaaS application. Item Xml contains data about one record including reference to containing category, property values and explicit relations with subsets.

Elements and Attributes

Item element

Root element of the item xml schema, contains information about one record.

Item element attributes

Attribute Type Comments
CoreType string Should be fixed to 'Item'
Id guid Id of the record in Cyscom SaaS application database.
Category guid Id of the record category
CategoryName string Name of the category (informational attribute)
CategoryPath string Path of the category in the tree of categories(informational attribute)
SecurityDescriptor string Sddl representation of record security descriptor which controls access this record

Item element sub elements

Element Comments
PropertyValues Contains list of property values for the record as a sequence of PropertyValue elements. PropertyValue element should follow DataValue Xml schema for appropriate data value type determined by CoreType attribute. See DataValue Xml section for details. PropertyValue also contains additional elements Property and PropertyName which identify record property for the property value.
IncludedSubsets Contains a list of subsets which is current record is explicitly included into (overriding subset filter) as a sequence of Subset elements each of which contains Id attribute determining the id of subset
ExcludedSubsets Contains a list of subsets which is current record is explicitly excluded from (overriding subset filter) as a sequence of Subset elements each of which contains Id attribute determining the id of subset

Property Xml

Property xml contains a definition for one record property in Cyscom Software-as-a-Service application database.

Example

<Property 
    CoreType="StringProperty" 
    Id="4462e80b-6b47-4f7f-950c-f247d23a7780" 
    System="False" 
    Fixed="False" 
    Constant="False" 
    Name="ID (for Cases)" 
    Searcheable="True" 
    Sortable="True" 
    NotNull="False" 
    SecurityDescriptor="O:BAG:BAD:AI" 
    PropertyGroup="4462e80b-6b47-4f7f-950c-f647a23c4344">
        <Label CoreType="LocalizedStringDataValue">
            <ValueLanguage="1033">ID</Value>
            <ValueLanguage="1049">ID</Value>
            <ValueLanguage="1031">ID</Value>
            <Synonyms/>
        </Label>
        <Description CoreType="LocalizedTextDataValue" />
        <DefaultValue IsNull="True" />
</Property>

General remarks

Cyscom Software-as-a-Service application database supports several data types for properties. Property data type is determined by CoreType attribute of Property element.

The following property types are supported:

Elements and Attributes

Property element

Root element of the property xml schema, contains information about one property.

Property element attributes

Attribute Type Allowed for
property types
Comments
CoreType string All Defines property type. See possible values above in General Remarks.
Id guid All Id of the property in Cyscom SaaS application database.
System boolean All True if property is system (not available to user in UI)
Fixed boolean All Used for internal purposes
Constant boolean All Used for internal purposes
Name string All Name of the property
Searcheable boolean All If property allowed to be searched by in filter UI
Sortable boolean All If property is allowed to be sorted by
NotNull boolean All If property value is mandatory for record
SecurityDescriptor string All Sddl representation of property security descriptor which controls access to property values in records
PropertyGroup guid All Guid of the property group which property belongs to
RootCategory guid CategoryProperty Guid of the root of the allowed referenced categories by the property
CategoryGroup guid ItemReferenceProperty, MultipleItemReferenceProperty, SubsetProperty Guid of the category group that contains records allowed to be referenced by current item reference property. For subset property this is category group for allowed subsets to be referenced.
AssociatedProperty guid ItemReferenceProperty, MultipleItemReferenceProperty Guid of the property which is associated with current one. Association of item reference properties allow to maintain back references within records. Example for associated property is Owner property for Tasks entityi and Owned Tasks for User entity.
Composite bool ItemReferenceProperty, MultipleItemReferenceProperty If property composite or not. Composite means referenced items are treated as the part of referencing item. This affects how deleting, permissions and other features work.
DefaultCurrency guid PriceProperty Guid of the default currency unit for price values
UnitSet guid QuantityProperty, PriceProperty Guid of the unit set which contains list of units of measure (UnitSet) (currency for PriceProperty)
Set guid ListProperty, MultipleListProperty Guid of the predefined list of values for list property (ListSet)

Property element sub elements

Element Allowed for
property types
Comments
Label All Contains label for property. Label is used in UI to identify property for user. Label sub element should follow DataValue Xml Schema with CoreType = LocalizedStringDataValue. See DataValue Xml section below.
Description All Contains description for property. Description sub element should follow DataValue Xml Schema with CoreType = LocalizedTextDataValue. See DataValue Xml section below.
DefaultValue All Contains default value for property. DefaultValue sub element should follow DataValue Xml Schema with CoreType appropriate for the property type. See DataValue Xml section below.
TrueString BooleanProperty Contains localized string used to represent "true" value of the property in UI. TrueString sub element should follow DataValue Xml Schema with CoreType = StringDataValue. See DataValue Xml section below.
FalseString BooleanProperty Contains localized string used to represent "false" value of the property in UI. FalseString sub element should follow DataValue Xml Schema with CoreType = StringDataValue. See DataValue Xml section below.

Category Xml

Category xml contains a definition for one record category in Cyscom Software-as-a-Service application database.

Example

<Category 
	CoreType="Category" 
	Id="0980dcb8-8ac4-4323-8d3b-cc822829b93f" 
	System="False" 
	Fixed="False" 
	Constant="False" 
	Name="Territories" 
	CategoryGroup="1fe6a3a9-916b-47c2-a047-47d752901850" 
	SecurityDescriptor="O:BAG:BAD:AI(A;CI;LC;;;S-1-9-1)(A;CI;LCSW;;;S-1-9-4)(A;CI;LCSW;;;S-1-9-8)(A;CIID;CCDCLCSW;;;BA)(A;CIID;CCDCLCSW;;;S-1-9-0)(A;CIID;CCDC;;;S-1-9-1)(A;CIID;CCLC;;;S-1-9-2)(A;CIID;CCDCLCSW;;;S-1-9-3)(A;CIID;CC;;;S-1-9-11)">
		<Label CoreType="LocalizedStringDataValue">
			<Value Language="1033">Territories</Value>
			<Value Language="1049">Территории</Value>
			<Value Language="1031">Gebiete</Value>
			<Synonyms />
		</Label>
		<Description CoreType="LocalizedTextDataValue" />
		<BriefDescriptionTemplate CoreType="LocalizedTextDataValue" />
		<CaptionDescriptionTemplate CoreType="LocalizedStringDataValue">
			<Value Language="1033">&lt;4462E80B-6B47-4f7f-950C-F247D23A7696&gt;</Value>
			<Value Language="1049">&lt;4462E80B-6B47-4f7f-950C-F247D23A7696&gt;</Value>
			<Value Language="1031">&lt;4462E80B-6B47-4f7f-950C-F247D23A7696&gt;</Value>
		</CaptionDescriptionTemplate>
		<Properties>
			<Property IsPersonal="True" Id="4462e80b-6b47-4f7f-950c-f247d23a7696" />
			<Property IsPersonal="True" Id="4462e80b-6b47-4f7f-950c-f247d23a7697" />
			<Property IsPersonal="True" Id="4462e80b-6b47-4f7f-950c-f247d23a7698" />
			<Property IsPersonal="True" Id="4462e80b-6b47-4f7f-950c-f247d23a7699" />
			<Property IsPersonal="True" Id="4462e80b-6b47-4f7f-950c-f247d23a7702" />
			<Property IsPersonal="True" Id="4422e40b-6b47-4f7f-950c-f647a23c4566" />
			<Property IsPersonal="True" Id="4462e80b-6b47-4f7f-950c-f247d23a7700" />
			<Property IsPersonal="True" Id="4462e80b-6b47-4f7f-950c-f247d23a7803" />
		</Properties>
</Category>

General remarks

Cyscom Software-as-a-Service application database contains a hierarchy of categories which define possible entity types and subtypes of records with entity. Categories are grouped into category groups based on first level categories. Each category group represents an entity. Category defines a set of properties which are available for records within the category. Properties are inherited according to the hierarchy of the categories.

Elements and Attributes

Category element

Root element of the category xml schema, contains information about one category.

Category element attributes

Attribute Type Comments
CoreType string Should be fixed to 'Category'
Id guid Id of the category in Cyscom SaaS application database.
System boolean True if category is system (not available to user in UI)
Fixed boolean Used for internal purposes
Constant boolean Used for internal purposes
Name string Name of the category
CategoryGroup guid Id of the category group the category belongs to
SecurityDescriptor string Sddl representation of category security descriptor which controls access to records within this category group

Category element sub elements

Element Comments
Label Contains label for the category. Label is used in UI to identify category for user. Label sub element should follow DataValue Xml Schema with CoreType = LocalizedStringDataValue. See DataValue Xml section below.
Description Contains description for the category. Description sub element should follow DataValue Xml Schema with CoreType = LocalizedTextDataValue. See DataValue Xml section below.
BriefDescriptionTemplate Used for internal purposes
CaptionDescriptionTemplate Contains template for record description. This element should follow DataValue Xml Schema with CoreType = LocalizedStringDataValue. See DataValue Xml section below. Record description template can contain any text and placeholders for record's properties. Record property placeholder is a string representation of property guid surrounded by '<>' brackets. Example: Case from <4462e80b-6b47-4f7f-950c-f247d23a7803>
Properties Contains list of properties assigned to the category as a sequence of Property elements each containing Id attribute (which is the guid of property) and IsPersonal attribute (true if property assigned to category directly and false if it is inherited from parent category)

Category List Xml

Category xml contains a list of category definitions.

Elements and Attributes

Categories element

Root element of the category list xml schema, contains sub elements for each category.

Categories element sub elements

Element Comments
Category Contains definition for one category from the list. Should follow Category Xml schema. See Category Xml section.

List Set Xml

List Set xml contains a definition for one list set from Cyscom Software-as-a-Service application database. List Set is an object which contains a named predefined list of values to be used

Example

<ListSet 
	CoreType="LocalizedStringValueListSet"
	Id="758fbcb3-bcab-4114-ade5-8d87918bd287" 
	System="False" 
	Fixed="False"
	Constant="False" 
	Name="Role Approval List">
		<Label CoreType="LocalizedStringDataValue">
			<Synonyms />
		</Label>
		<Description CoreType="LocalizedTextDataValue" />
		<Items>
			<Item CoreType="LocalizedStringDataValue" Id="b358d51f-0f82-424f-92a2-cc54d875b177">
				<Value Language="1033">Pending</Value>
				<Value Language="1049">На рассмотрении</Value>
				<Value Language="1031">Ausstehend</Value>
				<Synonyms />
			</Item>
			<Item CoreType="LocalizedStringDataValue" Id="b358d51f-0f82-424f-92a2-cc54d875b178">
				<Value Language="1033">Approved</Value>
				<Value Language="1049">Согласовано</Value>
				<Value Language="1031">Genehmigt</Value>
				<Synonyms />
			</Item>
			<Item CoreType="LocalizedStringDataValue" Id="b358d51f-0f82-424f-92a2-cc54d875b179">
				<Value Language="1033">Declined</Value>
				<Value Language="1049">Отклонено</Value>
				<Value Language="1031">Abgelehnt</Value>
				<Synonyms />
			</Item>
		</Items>
</ListSet>

General remarks

List Set object contains a predefined list of elements that can be referenced by list property values. It is possible to have List Sets of values of different types. The type of elements of the list is determined by CoreType attribute of ListSet element. The following CoreTypes values are available.

Elements and Attributes

ListSet element

Root element of the ListSet xml schema, contains information about one List Set.

ListSet element attributes

Attribute Type Allowed for List Set types Comments
CoreType string All Determines List Set type
Id guid All Id of the List Set in Cyscom SaaS application database.
System boolean All True if List Set is system (not available to user in UI)
Fixed boolean All Used for internal purposes
Constant boolean All Used for internal purposes
Name string All Name of the List Set
UnitSet guid QuantityValueListSet Id of the unit set which provides units of measure for list quantity values

List Set element sub elements

Element Comments
Label Contains label for the List Set. Label is used in UI to identify List Set for user. Label sub element should follow DataValue Xml Schema with CoreType = LocalizedStringDataValue. See DataValue Xml section below.
Description Contains description for the List Set. Description sub element should follow DataValue Xml Schema with CoreType = LocalizedTextDataValue. See DataValue Xml section below.
Items Contains list of List Set values as a sequence of Item elements each of which should follow DataValue Xml Schema with CoreType appropriate to List Set type. See DataValue Xml section below

Unit Set Xml

Unit Set xml contains a definition for one unit set from Cyscom Software-as-a-Service application database. Unit Set is an object which contains a named predefined list of units of measure and conversion rules for them.

Example

<UnitSet 
	Id="7c1eaa7d-70bd-4d48-a450-ac00156334a9" 
	System="False" 
	Fixed="True" 
	Constant="False" 
	Name="currency" 
	CoreType="UnitSet">
		<Label CoreType="LocalizedStringDataValue">
			<Value Language="1033">Currency</Value>
			<Value Language="1049">Валюта</Value>
			<Value Language="1031">Wahrung</Value>
			<Synonyms />
		</Label>
		<Description CoreType="LocalizedTextDataValue">
			<Value Language="1033">currency unitset</Value>
			<Value Language="1049">денежная единица измерения</Value>
		</Description>
		<Units>
			<Unit CoreType="UnitElement" Id="f59b6cf0-f8f1-412e-b5b9-5bfdb270050c" Name="Euro">
				<BriefName CoreType="LocalizedStringDataValue">
					<Value Language="1033">?</Value>
					<Value Language="1049">?</Value>
					<Value Language="1031">Euro</Value>
					<Synonyms />
				</BriefName>
				<FullName CoreType="LocalizedStringDataValue">
					<Value Language="1033">dollar</Value>
					<Value Language="1049">доллар</Value>
				</FullName>
			</Unit>
			<Unit CoreType="UnitElement" Id="407ab1ec-48e7-449b-b82a-381ba10bafef" Name="$">
				<BriefName CoreType="LocalizedStringDataValue">
					<Value Language="1033">$</Value>
					<Value Language="1049">$</Value>
					<Value Language="1031">$</Value>
					<Synonyms />
				</BriefName>
				<FullName CoreType="LocalizedStringDataValue" />
			</Unit>
			<Unit CoreType="UnitElement" Id="26de4044-ed45-4fc5-b0d3-e11dfc8c3f46" Name="RUR">
				<BriefName CoreType="LocalizedStringDataValue">
					<Value Language="1033">RUR</Value>
					<Value Language="1049">RUR</Value>
					<Value Language="1031">RUR</Value>
					<Synonyms />
				</BriefName>
				<FullName CoreType="LocalizedStringDataValue" />
			</Unit>
			<Unit CoreType="UnitElement" Id="31e1c458-f754-4055-8c2a-d9651f04eb9c" Name="GBP">
				<BriefName CoreType="LocalizedStringDataValue">
					<Value Language="1033">GBP</Value>
					<Value Language="1049">GBP</Value>
					<Value Language="1031">GBP</Value>
					<Synonyms />
				</BriefName>
				<FullName CoreType="LocalizedStringDataValue" />
			</Unit>
		</Units>
		<Rules>
			<Rule 
				CoreType="LinearUnitConvertionRule" 
				Id="0fdac39e-d75a-43a8-ae8d-66346120b30c" 
				SourceUnit="f59b6cf0-f8f1-412e-b5b9-5bfdb270050c" 
				TargetUnit="26de4044-ed45-4fc5-b0d3-e11dfc8c3f46" 
				Addend="0" 
				Multiplier="36" />
			<Rule 
				CoreType="LinearUnitConvertionRule" 
				Id="4c9ac216-ccd0-414d-8b28-98da35ee85ac" 
				SourceUnit="f59b6cf0-f8f1-412e-b5b9-5bfdb270050c" 
				TargetUnit="31e1c458-f754-4055-8c2a-d9651f04eb9c" 
				Addend="0" 
				Multiplier="1.32" />
			<Rule 
				CoreType="LinearUnitConvertionRule" 
				Id="e1df14f8-8485-40c1-a708-2129238732a9"
				SourceUnit="f59b6cf0-f8f1-412e-b5b9-5bfdb270050c" 
				TargetUnit="407ab1ec-48e7-449b-b82a-381ba10bafef" 
				Addend="0" 
				Multiplier="1.5" />
		</Rules>
</UnitSet>

General remarks

Unit Set object contains a predefined list of unit of measures and conversion rules for them. Unit set can be used as a base for quantity property or quantity type list set.

Elements and Attributes

UnitSet element

Root element of the UnitSet xml schema, contains information about one Unit Set.

UnitSet element attributes

Attribute Type Comments
CoreType string Should be UnitSet
Id guid Id of the Unit Set in Cyscom SaaS application database.
System boolean True if Unit Set is system (not available to user in UI)
Fixed boolean Used for internal purposes
Constant boolean Used for internal purposes
Name string Name of the Unit Set

Unit Set element sub elements

Element Comments
Label Contains label for the Unit Set. Label is used in UI to identify Unit Set for user. Label sub element should follow DataValue Xml Schema with CoreType = LocalizedStringDataValue. See DataValue Xml section below.
Description Contains description for the Unit Set. Description sub element should follow DataValue Xml Schema with CoreType = LocalizedTextDataValue. See DataValue Xml section below.
Units Contains list of units as a sequence of Unit elements each of which should follow Unit Xml Schema. See Unit Xml section below
Rules Contains list of conversion rules as a sequence of Rule elements each of which should follow Rule Xml Schema. See Rule Xml section below

Subset Xml

Subset xml contains a definition for one records subset from Cyscom Software-as-a-Service application database. Subset is an object that represents named filtering criteria for records with one category group (entity).

Example

<Subset 
	Id="acb0eb9b-0cee-4acc-9c71-668417b0fd20" 
	System="False" 
	Fixed="False" 
	Constant="False" 
	Name="Open Events" 
	CategoryGroup="bd13bcf7-8568-4666-aa9b-6f07192b8411">
		<Label CoreType="LocalizedStringDataValue">
			<Value Language="1033">All Open</Value>
			<Value Language="1049">Все открытые</Value>
			<Value Language="1031">Alleoffenen Objekte</Value>
			<Synonyms />
		</Label>
		<Description CoreType="LocalizedTextDataValue" />
		<Filter CoreType="UnionFilter">
			<Filters>
				<Filter 
					CoreType="SinglePropertyValueFilter" 
					Property="fc93c9aa-b43a-44b7-a4bd-7a434ac8ca54" 
					Type="GreaterOrEqual">
					<Value IsNull="True" />
					<Expression>return new Cyscom.XFleX.Core.DataTypes.DataValues.DateTimeDataValue( System.DateTime.UtcNow )</Expression>
				</Filter>
			</Filters>
		</Filter>
</Subset>

General remarks

Subset object contains a filtering criteria which determines records that get into subset. Subset is allowed to contain records only from single category group (entity).

Elements and Attributes

Subset element

Root element of the Subset xml schema, contains information about one Subset.

Subset element attributes

Attribute Type Comments
CoreType string Determines Subset type
Id guid Id of the Subset in Cyscom SaaS application database.
System boolean True if Subset is system (not available to user in UI)
Fixed boolean Used for internal purposes
Constant boolean Used for internal purposes
Name string Name of the Subset
CategoryGroup guid Id of category group which is the source of records for this subset

Subset element sub elements

Element Comments
Label Contains label for the Subset. Label is used in UI to identify Subset for user. Label sub element should follow DataValue Xml Schema with CoreType = LocalizedStringDataValue. See DataValue Xml section below.
Description Contains description for the Subset. Description sub element should follow DataValue Xml Schema with CoreType = LocalizedTextDataValue. See DataValue Xml section below.
Filter Contains filtering criteria for the subset records. Filter element should follow Filter Xml schema. See Filter Xml section below.

Filter Xml

Filter xml contains a definition for filtering criteria. Filter xml is used as a part of subset definitions or can be passed to GeneralCatalogWebService to build a selection of records that meet certain criteria. There are the following types of filters available:

The following sections present xml schemas for every type of filter.

CategoryFilter Xml

Selects items that belong to certain list of categories

Example:
<Filter CoreType="CategoryFilter" IsRecursive="true">
	<Categories>
		<Category Id="0980dcb8-8ac4-4323-8d3b-cc942829b96f"/>
	</Categories>
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, CategoryFilter for categories filter
IsRecursive boolean True if filter should select records from all subcategories also otherwise only items from specifically listed categories are included

Filter element sub elements

Element Comments
Categories Contains sequence of Category elements which specify list of categories to include in filter. Each Category element contains Id attribute with category id.

SinglePropertyValueFilter Xml

Selects items that have property values that meet some criteria

Example:
<Filter CoreType="SinglePropertyValueFilter" 
	Property="4462e80b-6b47-4f7f-950c-f647a23c4556" 
	PropertyName="Company Name" 
	Type="Equality">
		<Value>Volkswagen</Value>
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, SinglePropertyValueFilter for this kind of filter
Property guid Guid of the property which value is used for filtering
PropertyName string Name of the property which value is used for filtering (is used when Property attribute is not set)
Type string Type of relationship between property value from record and given property value to evaluate criteria. Possible values are:
  • Equality

  • Inequality

  • Greater

  • Less

  • GreaterOrEqual

  • LessOrEqual

  • Like

  • IsSuperset
    Whether filter's data value is contained within record's data value. Applies to multiple properties.

Note. Not all comparison types are appropriate for all types of properties.

 

Filter element sub elements

Element Comments
Value Filtering data value which is used for comparison. This element should follow Data Value Xml schema for appropriate data value type. See Data Value Xml section for details.
Expression C# code expression which calculates data value for filtering. Result type should be appropriate data value for given filter property type.

ConstantFilter Xml

Selects items either all items or no items.

Example:
<Filter CoreType="ConstantFilter" Value="true">
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, ConstantFilter for this filter type
Value boolean True if all items have to be selected, false if no items.

IntersectionFilter Xml

Selects items that fall into all of the supplied sub filters. This is the AND logical operation on item selections.

Example:
<Filter CoreType="IntersectionFilter">
	<Filters>
		<Filter CoreType="CategoryFilter" IsRecursive="true">
			<Categories>
				<Category Id="0980dcb8-8ac4-4323-8d3b-cc942829b96f"/>
			</Categories>
		</Filter>
		<Filter CoreType="SinglePropertyValueFilter" PropertyName="Created Date" Type="Greater">
			<Value>01/01/2008</Value>
		</Filter>
	</Filters>
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element sub elements

Element Comments
Filters Contains sequence of Filter elements which specify list of filters to intersect. Each of Filter elements should follow Filter Xml schema.

UnionFilter Xml

Selects items that fall into at least one of the supplied sub filters. This is the OR logical operation on item selections.

Example:
<Filter CoreType="UnionFilter">
	<Filters>
		<Filter CoreType="SinglePropertyValueFilter" PropertyName="Created Date" Type="Greater">
			<Value>01/01/2008</Value>
		</Filter>
		<Filter CoreType="SinglePropertyValueFilter" PropertyName="Created Date" Type="Less">
			<Value>01/01/2006</Value>
		</Filter>
	</Filters>
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element sub elements

Element Comments
Filters Contains sequence of Filter elements which specify list of filters to unite. Each of Filter elements should follow Filter Xml schema.

KeywordsFilter Xml

Selects items that have property values containing specified keywords

Example:
<Filter CoreType="KeywordsFilter" Keywords="David Edwards">
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, should be KeywordsFilter for this type of filter
Keywords string Keywords for items to be searched for

ItemIdsFilter Xml

Selects items with specified ids

Example:
<Filter CoreType="ItemIdsFilter">
	<Guids>
		<Guid Id="34aa2dae-8935-4adf-b485-44a00049141f"/>
		<Guid Id="93dd56f2-53d4-4e11-872c-cd922d7b51c5"/>
	</Guids>
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, should be ItemIdsFilter for this type of filter

Filter element sub elements

Element Comments
Guids Contains sequence of Guid elements which specify list of record ids. Each Guid element contains Id attribute to specify individual record id.

ItemJoinFilter Xml

Selects items having referenced item that fall into given filter.

Example:
<Filter CoreType="ItemJoinFilter" Property="4462E80B-6B47-4f7f-950C-F647A23C4731">
	<SubFilter CoreType="SinglePropertyValueFilter" 
		PropertyName="Company Name" 
		Type="Equality">
		<Value>Volkswagen</Value>
	</SubFilter>
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, should be ItemJoinFilter for this type of filter
Property guid Id of the ItemReference property that is used to reach referenced item

Filter element sub elements

Element Comments
SubFilter Should follow Filter Xml schema. Defines the filter which is applied to referenced items to check if the item is in the selection.

MultipleItemJoinFilter Xml

Selects items having at least one referenced item that fall into given filter.

Example:
<Filter CoreType="MultipleItemJoinFilter" Property="4462E80B-6B47-4f7f-950C-F647A23C4603">
	<SubFilter CoreType="SinglePropertyValueFilter" 
		PropertyName="First Name (Contact Information)" 
		Type="Equality">
		<Value>Henry</Value>
	</SubFilter>
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, should be MultipleItemJoinFilter for this type of filter
Property guid Id of the MultipleItemReference property that is used to reach referenced items

Filter element sub elements

Element Comments
SubFilter Should follow Filter Xml schema. Defines the filter which is applied to referenced items to check if the item is in the selection.

NotFilter Xml

Selects items that don't fall into given filter within category group (entity).

Example:
<Filter CoreType="NotFilter">
	<SubFilter CoreType="CategoryFilter" IsRecursive="true">
		<Categories>
			<Category Id="960fbb23-ebe9-4744-a379-401b74fb95a9"/>
		</Categories>
	</SubFilter>
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, should be NotFilter for this type of filter

Filter element sub elements

Element Comments
SubFilter Should follow Filter Xml schema. Defines the filter which records should not fall into to get to the selection.

SubsetFilter Xml

Selects items that belong to given subset.

Example:
<Filter CoreType="SubsetFilter" Subset="471d4699-eaa1-4144-9ec8-be3be94043c3">
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, should be SubsetFilter for this type of filter
Subset guid Id of the subset to select records from

SubsetIncludeItemsFilter Xml

Selects items that are explicitly included into subset.

Example:
<Filter CoreType="SubsetIncludeItemsFilter" Subset="471d4699-eaa1-4144-9ec8-be3be94043c3">
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, should be SubsetIncludeItemsFilter for this type of filter
Subset guid Id of the subset to select explicitly included records for

SubsetExcludeItemsFilter Xml

Selects items that are explicitly excluded from subset.

Example:
<Filter CoreType="SubsetExcludeItemsFilter" Subset="471d4699-eaa1-4144-9ec8-be3be94043c3">
</Filter>

Elements and Attributes

Filter element

Root element of the Filter xml schema, contains information about one Filter.

Filter element attributes

Attribute Type Comments
CoreType string Determines filter type, should be SubsetExcludeItemsFilter for this type of filter
Subset guid Id of the subset to select explicitly excluded records for

Data Value Xml

Data Value xml contains a information for some value of the property or other entity attribute. There are the following types of data values available:

Simple Data Value Types

Most of data value types consist of one single value of some simple underlying type. For this kind of data values xml schema contains single element with inner text containing underlying value in string representation. The following example shows StringDataValue Xml

<Value>
    The Web Server does not respond
</Value>

Other simple data value types are:

For all of data value types there is IsNull attribute in root xml element node. IsNull = true indicates data value has null value.

LocalizedStringDataValue and LocalizedTextDataValue

Example:

<Value>
	<Value Language="1033">All Open</Value>
	<Value Language="1049">Все открытые</Value>
	<Value Language="1031">Alleoffenen Objekte</Value>
	<Synonyms />
</Value>
Elements and Attributes

Root element

Root element of the Data Value xml schema, contains information about one value.

Root element attributes

Attribute Type Comments
IsNull boolean True indicates value is null

Root element sub elements

Element Comments
Value Contains in inner text string value for language specified in Language attribute
Synonyms Used for internal purposes

FileDataValue and ImageDataValue

Example:

<Value>
    <Comment CoreType="LocalizedStringDataValue" />
    <Content>...
    </Content>
</Value>
Elements and Attributes

Root element

Root element of the Data Value xml schema, contains information about one value.

Root element attributes

Attribute Type Comments
IsNull boolean True indicates value is null

Root element sub elements

Element Comments
Comment Contains text comment to the value, should follow Data Value xml schema with CoreType = LocalizedStringDataValue
Content Contains in inner text base64 encoded binary image

MultipleItemReferenceDataValue and MultipleListElementDataValue

Example:

<Value>
    <ValueElement Id="7fa3132f-981b-43c9-a24a-53621ff9966a">f4e9a601-7b0c-4763-b167-5242cbc82bd1</ValueElement>
    <ValueElement Id="6e7055c2-579c-4b60-bcc9-7e734a852708">980e17bb-58c2-458a-acc8-c4c13f567b99</ValueElement>
</Value>
Elements and Attributes

Root element

Root element of the Data Value xml schema, contains information about one value.

Root element attributes

Attribute Type Comments
IsNull boolean True indicates value is null

Root element sub elements

Element Comments
ValueElement Contains referenced item guid or list list element value guid in inner text. Id attribute contains guid of this element.

QuantityDataValue and PriceDataValue

Example:

<Value Unit="f59b6cf0-f8f1-412e-b5b9-5bfdb270050c" UnitOfMeasure="51eae61f-3e2d-4b24-89df-5081e57b4dd0">
	12
	<PriceOptions />
</Value>
Elements and Attributes

Root element

Root element of the Data Value xml schema, contains information about one value. Inner text contains string representation of quantity floating point value.

Root element attributes

Attribute Type Comments
IsNull boolean True indicates value is null
Unit guid Guid of unit for quantity and currency for price
UnitOfMeasure guid (For PriceDataValue only) Guid of unit of measure

Root element sub elements

Element Comments
PriceOptions Used for internal purposes


Unit Xml

Unit xml contains a definition for a single unit of measure which is the part of Unit Set.

Example

<Unit CoreType="UnitElement" Id="407ab1ec-48e7-449b-b82a-381ba10bafef" Name="$">
	<BriefName CoreType="LocalizedStringDataValue">
		<Value Language="1033">$</Value>
		<Value Language="1049">$</Value>
		<Value Language="1031">$</Value>
		<Synonyms />
	</BriefName>
	<FullName CoreType="LocalizedStringDataValue" />
</Unit>

Elements and Attributes

Unit element

Root element of the Unit xml schema, contains information about one Unit.

Unit element attributes

Attribute Type Comments
CoreType string Should be fixed to UnitElement
Id guid Id of the unit in Cyscom SaaS database.
Name string Name of the unit

Unit element sub elements

Element Comments
BriefName Contains brief name for the Unit which is used to build string representation of quantity data value. BriefName sub element should follow DataValue Xml Schema with CoreType = LocalizedStringDataValue. See DataValue Xml section.
FullName Contains full name for the Unit which is used informational purposes and can be emtpy. FullName sub element should follow DataValue Xml Schema with CoreType = LocalizedStringDataValue. See DataValue Xml section.

Rule Xml

Rule xml contains a definition for a conversion rule for a pair of units of measure which is the part of Unit Set.

Example

<Rule 
	CoreType="LinearUnitConvertionRule" 
	Id="0fdac39e-d75a-43a8-ae8d-66346120b30c" 
	SourceUnit="f59b6cf0-f8f1-412e-b5b9-5bfdb270050c" 
	TargetUnit="26de4044-ed45-4fc5-b0d3-e11dfc8c3f46" 
	Addend="0" 
	Multiplier="36" />

Elements and Attributes

Rule element

Root element of the Rule xml schema, contains information about one Rule.

Unit element attributes

Attribute Type Comments
CoreType string Should be fixed to LinearUnitConvertionRule
Id guid Id of the rule in Cyscom SaaS database.
SourceUnit guid Id of the source unit for conversion
TargetUnit guid Id of the target unit for the conversion
Addend double Addend in the conversion rule target = source * multiplier + addend
Multiplier double Multiplier in the conversion rule target = source * multiplier + addend