Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Overview

Performs an xquery on repository and returns the results as string array.

Array<string> $XmlRepository.Query(xquery: string, parameters: object)

Arguments

string xquery
Specifies the query to perform on the database.
object parameters
Specifies the binding parameters on xquery string.

Remarks

If query does not return any result than return value is empty array.

The examples below shows how to query the domain database.

The syntax of the query is quite detailed. More information can be found on xquery standard page. ,

Example

Find all customers

var results = $XmlRepository.Query('//Customer');
$Xml.InnerXml( 'Customer', results.join() );

Example

Find customer by id

var results = $XmlRepository.Query('//Customer[Id=$id]', {
id : $Xml.Evaluate('CustomerId')
 });
$Xml.InnerXml( 'Customers', results.join() );

Example

Query Update

$XmlRepository.Query('for $customer in //Customer[Id=$id] return replace value of node $customer/Name with "Lady Gaga"', {
   id : $Xml.Evaluate('CustomerId')
});

Example

Query Insert

$XmlRepository.Query('insert node (<Kaynak><Id>{$newId}</Id><Ad>{$newName}</Ad></Kaynak>) as last into /KVKEnvanter/Tanimlar/Kaynaklar', {
    newId: newId,
    newName: name.trim()
});

Example

Query Delete

$XmlRepository.Query('let $nodeValue := fn:parse-xml-fragment($nodeValue)' +
                     'for $record in Relation[Id=$id]/RepHistory/RepHistoryRecord[InstanceId=$instanceId] return ' +
                     '(delete node $record)', {
   id : relationId,
   instanceId : $Xml.Evaluate('SelectedHistory/Id'),
   nodeValue : $Xml.SelectSingle('.').InnerXml()
});

If you want to query the database of a process, you can use the collection keyword. You have to give the name of the database which is a GUID. For process databases, you can have that GUID by $Instance.ProcessId.

Example

Querying process database
var results = $XmlRepository.Query('collection("49551ed3-6229-408a-aaaa-eb510463acad")//Customer[Id=$id]', {
   id : $Xml.Evaluate('CustomerId')
 });
$Xml.InnerXml( 'Customers', results[0].Evaluate('Id') );
  • No labels