/
The Perfion Query – SELECT

The Perfion Query – SELECT

XML:

<Select languages='EN,DE' view='Virtual,CatalogRoot,Normal,Branded' />

JSON:

"Select": { "languages": "EN", "view": "Virtual,CatalogRoot,Normal,Branded" }

languages

Specifies the languages to be returned (above selects English and German). Specifying '*' resolves to all active languages.

view

Specifies the types of Items to be returned (can be any single or multiple combination of Virtual, CatalogRoot, Normal or Branded. If e.g. only Normal Items (e.g. Real Products) are wanted, only Normal should be specified.

Index

Used for Paging through a larger result-set.

0-indexed position of the first Item in the result-set. (default: 0)

maxCount

Used for Paging through a larger result-set.

The maximum number of Items to retrieve, counting from the position specified by the index attribute. (default: everything)

options

Specifies special Query execution behavior.

The following options are available and can be combined (separated by comma):

IncludeDebugInfo

In addition to the Total Execution time, this option includes Perfion API version and additional Query timing information for time used by pure SQL, retrieval of remote values and other internal data filling or configuration tasks.

IncludeTotalCount

Includes the total number of found Items matched by the Where clause. Useful when Paging through the result-set. May incur extra execution time for large result-sets.

IncludeChildCount

Includes a ‘childCount’ attribute value for each Item in the result-set, with the number of child items that have the Item as their parent (Even if these are not contained in the result set).

IncludeVisibleChildCount

Includes a ‘visableChildCount’ attribute value for each Item in the result-set, with the number of child items that have the Item as their parent and included in the result set. (Introduced from Perfion 2024-R1)

This is very useful for e.g. a web-solution for navigating through large hierarchical result-sets, so navigation trees or menu Items know whether they can unfold to display sub-items (lazy- loaded when and only if they are needed).

IncludeFeatureViewOrder

Includes a ‘viewOrder’ attribute value for all feature elements in the result-set, specifying the appearance ordering of features for each of the individual Items.

This is very useful for e.g. a web-solution, making it possible to design fully generic lists and detailed product or item pages with varying information and order of appearance.

RemoveUnwantedFeaturesByConfiguration

The normal behavior of the Query during retrieval of a result-set containing more than 1 Item, is to determine what features are relevant for any of the Items in the result-set. If a feature is relevant for 1 Item it will be retrieved for all other Items also, such that the entire result-set can be displayed in a list with the same columns available for all Items.

When specifying this option, each Item will be treated individually, and only the feature values that are specified to appear for each Item will be retrieved. If presented side-by-side this means that some Items may not display values for some features even though they might have values defined for these features.

Which features to display values for is determined by the Configuration of a feature. The exact behavior of this option is determined by wildcard selection of features in combination with the ‘view’ attribute on the Select <Feature> element.

This is very useful for e.g. a web-solution, making it possible to design fully generic lists and detailed product or item pages with varying information and order of appearance.

IncludeControlInfo

Includes additional meta data about the features.

Behavior

A bitmap encoded value of the feature properties, see table.

IsRemote - 0x00000001

Inheritable - 0x00000002

LocalizableValues - 0x00000004

MultiValues - 0x00000008

SelectValues - 0x00000010

AllowHierarchy - 0x00000020

CanOrderValues - 0x00000040

CanOrderItems - 0x00000080

CanOrderRelatedItems - 0x00000100

AllowFormula - 0x00000200

AllowTriStateBoolean - 0x00000400

Example: behavior=”48”. Converted to hex, 48 is 30. Therefore 48 is Select Values (0x00000010) + Allow Hierarchy.

Control

Default - ”1937D3DA-48F1-41ae-9D0E-BC723CC30176”

PEditMultiSelector - “3D46A890-AF1B-4132-8189-2A22B4313A4F”

PeditMultiSelectorWithLateLoad - “A4D9101A-50EA-4CBF-88DC-1C620AB4A7E4”

PeditMultiChecked - “B95D61D4-34C6-4b25-87BA-7B888C1B0626”

PeditTextInline - “78108DC3-9FA2-402f-A6CB-FC22263F9139”

PeditSingleSelectTree - “791C8A93-8244-45e2-9A04-88DF275E4D87”

PeditSingleSelectTreeWithLateLoad - “823ED7BF-FEE0-42F3-95CA-D00F10C1ACA6”

PeditSingleSelectTreeWithPagedLateLoad - “F4C09A76-C7DD-4382-A75b-E0740BD2CEC8”

PeditRichText - “E996D0B3-1616-4061-AA49-A743DE6D4732”

PeditFraction - “6449F802-392C-4713-8628-4A28D5663374”

PeditProgres - “1B94B89D-8B50-4519-9193-CE01BCEB4B20”

PeditFormula - “7DF10D10-635F-4A18-BD7E-1240A2BEA85F”

PeditSymbol - “2076E3F7-EACA-4922-B203-7FA48BFD4A3A”

PeditRtfEditor - “8E54C201-26A4-4041-8954-89B4D02D2256”

PeditToggleSwitch - “DA2A75E7-F409-42D0-B552-9B84DA3A18C2”

ViewType and FilterType

The feature ID of the assigned Views and Filters containers assigned to the feature

ExpandClusterQueries

Includes all columns for clustered remote features.

ExcludeFeatureDefinitions

This option will, from version 5.2, exclude the feature definition metadata which is normally included in the <features> element in the response.

IncludeConfiguredSwapRelations

From version 2024 R1 this option will ensure that all swapped features fetched will be fetched “switching direction”. See more in section “Select Feature as Swap Relation Direction”.

OnlyShowSwapRelationMarkers

From version 2024 R1 this option will ensure that all swapped features fetched will not have their data, but only a marker indicating that there is data. See more in section “Select Feature as Swap Relation Direction”.

 timezone

From version 4.7 of Perfion the query supports returning all timestamp in the supplied time zone. Time zones supported are all time zones supported by the Windows machine executing the query. These time zones are listed here (and they are pretty static):

https://support.microsoft.com/en-us/help/973627/microsoft-time-zone-index-values

Note that it is the id of the Time Zone (called “Name of Time Zone” in above page) that needs to be passed into the timezone-attribute, as for example:

XML:

<Select languages='EN,DE' timezone='Central Europe Standard Time'>

JSON:

Furthermore Perfion has built in 3 time zone names that are also supported by the timezone-attribute:

  • database: Supplying database as time zone instructs Perfion to output all time stamps in the time zone data base runs in. Before the time zone-attribute was added this was the time zone timestamps always were returned in by Perfion. Therefore not supplying any time zone Perfion will continue to return time stamps in database time.

  • client: Supplying client as time zone instructs Perfion to output all time stamps in the time zone the current client runs in (can be a Perfion Windows Client or even the IIS running the Perfion API).

  • utc: From version 4.7 Perfion stores time stamps in the database as UTC-time. Generally we recommend to use UTC-time when querying for modified data. UTC time has the advantage that it does not apply daylight savings time, so there is never an ambiguity in the timestamps supplied using this.

Using the time zone not only affects the output timestamps but also any clause using timestamps (“*.ModfiedDate for example).