...
Array<string> $XmlRepository.Query(xquery: string)
...
Array<string> $XmlRepository.Query(xquery: string, parameters: object, collection: string)
Arguments
string xquery
Specifies the query to perform on the database. The syntax of the query is quite detailed. More information can be found on xquery standard page
object parameters
Specifies the binding parameters on xquery string.
string xquery collection
Specifies the collection name to query. If not specified, the domain database will be queried.
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. ,
...
object parameters
Specifies the binding parameters on xquery string.
The examples below shows how to query the domain database. To see how to query a process database check the latter examples.
Example
Find all customers
Code Block |
---|
|
var results = $XmlRepository.Query('//Customer');
$Xml.InnerXml( 'Customer', results.join() ); |
Example
Find customer by id
Code Block |
---|
|
var results = $XmlRepository.Query('//Customer[Id=$id]', {
id : $Xml.Evaluate('CustomerId')
});
$Xml.InnerXml( 'Customers', results.join() ); |
Example
Query Update
Code Block |
---|
|
$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
Code Block |
---|
|
$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
Code Block |
---|
|
$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()
}); |
Example
...
Code Block |
---|
|
var results = $XmlRepository.Query('collection("49551ed3-6229-408a-aaaa-eb510463acad")//Customer[Id=$id]', {
id : $Xml.Evaluate('CustomerId')
});
$Xml.InnerXml( 'Customers', results[0].Evaluate('Id') ); |
The examples below shows how to query the domain database. To see how to query a process database check the latter examples.
Example
...
Code Block |
---|
|
var results = $XmlRepository.Query('//Customer');
$Xml.InnerXml( 'Customer', results.join() ); |
Example
...
Code Block |
---|
|
var results = $XmlRepository.Query('//Customer[Id=$id]', {
id : $Xml.Evaluate('CustomerId')
});
$Xml.InnerXml( 'Customers', results.join() ); |
Example
...
Code Block |
---|
|
$XmlRepository.Query('for $customer in //Customer[Id=$id] return replace value of node $customer/Name with "Lady Gaga"', {
id : $Xml.Evaluate('CustomerId')
}); |
Example
...
Code Block |
---|
|
$XmlRepository.Query('insert node (<Kaynak><Id>{$newId}</Id><Ad>{$newName}</Ad></Kaynak>) as last into /KVKEnvanter/Tanimlar/Kaynaklar', {
newId: newId,
newName: name.trim()
}); |
Example
...
Code Block |
---|
|
$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()
}); Info |
---|
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
Code Block |
---|
|
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') ); |
Examples
...
Code Block |
---|
|
var results = $XmlRepository.Query('//Customer');
$Xml.InnerXml( 'Customer', results.join() ); |
...
Code Block |
---|
|
var results = $XmlRepository.Query('//Customer[Id=$id]', {
id : $Xml.Evaluate('CustomerId')
});
$Xml.InnerXml( 'Customers', results.join() ); |
...
Code Block |
---|
|
$XmlRepository.Query('for $customer in //Customer[Id=$id] return replace value of node $customer/Name with "Lady Gaga"', {
id : $Xml.Evaluate('CustomerId')
}); |
...
Code Block |
---|
|
$XmlRepository.Query('insert node (<Kaynak><Id>{$newId}</Id><Ad>{$newName}</Ad></Kaynak>) as last into /KVKEnvanter/Tanimlar/Kaynaklar', {
newId: newId,
newName: name.trim()
}); |
...
Code Block |
---|
|
$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()
}); |
...
Code Block |
---|
|
var results = $XmlRepository.Query('collection("49551ed3-6229-408a-aaaa-eb510463acad")//Customer[Id=$id]', {
id : $Xml.Evaluate('CustomerId')
});
$Xml.InnerXml( 'Customers', results[0].Evaluate('Id') ); |
...
...
See Also