Create Query:
<Query> <Create> <VendorInfo> <vendorName>Phidget</vendorName> <vendorTitle>Sensor Provider</vendorTitle> </VendorInfo> </Create> </Query>
Create Query Result:
Note that VendorSysId of type Sid is automatically generated without specifying the value in Create Query Statement.
<Create Status="Success"> <VendorInfo> <VendorSysId>KNTJ5MYXAAAAUAABA7EIY2FH</VendorSysId> <vendorName Status="Success+Created:1:1457715589911;" Value="Phidget"/> <vendorTitle Status="Success+Created:1:1457715589914;" Value="Sensor Provider"/> </VendorInfo> </Create>
Find Query:
<Query> <Find format="all"> <VendorInfo> <vendorName eq="Phidget"/> </VendorInfo> </Find> </Query>
Find Query Result:
<Find Status="Success" Format="all"> <Result> <VendorInfo QName="SimpleModel.MyModels.VendorInfo"> <VendorSysId>KNRX3TBUAAAAUAABA4LIWHP2</VendorSysId> <vendorTitle Value="Sensor Company" Known="Sensor Company" Version="1" Timestamp="1457663102018" DateTime="2016-03-10 18:25:02.018" QName="SimpleModel.MyModels.VendorInfo.vendorTitle" FName="vendorTitle"/> <vendorName Value="Phidget" Known="Phidget" Version="1" Timestamp="1457663102004" DateTime="2016-03-10 18:25:02.004" QName="SimpleModel.MyModels.VendorInfo.vendorName" FName="vendorName"/> </VendorInfo> </Result> </Find>
Example of Find Filter on Attributes of type Datetime
<DataModel Name="MyTasks"> <Sid Name="TaskID"/> <String Name="TaskName"/> <String Name="TaskDesc"/> <DateTime Name="TaskTime" Format="$SimpleDateFormat(yyyy-MM-dd'T'HH:mm:ss'Z')"/> <!-- TaskTime is a DateTime of SimpleDateFormat --> <Integer Name="TaskStatus"/> <Integer Name="RemindBeforeXMinutes"/> </DataModel>
Datetime with simple Greater Than filter
<Query> <Find> <MyTasks> <TaskID ne=""/> <TaskTime gt="[:$Now('%1$tY-%1$tm-%1$tdT%1$tTZ'):]"/> <!-- Get the time in SimpleDateFormat --> </MyTasks> </Find> </Query>
Datetime with Range-based filters
<Query> <Find format="Version"> <MyTasks> <TaskID ne=""/> <TaskTime ge="[:$Now('%1$tY-%1$tm-%1$tdT%1$tTZ', +PT15M):]"/> <TaskTime lt="[:$Now('%1$tY-%1$tm-%1$tdT%1$tTZ', +PT6M):]"/> <RemindBeforeXMinutes le="15"/> <RemindBeforeXMinutes gt="0"/> </MyTasks> </Find> </Query>
Update Query:
<Query> <Find format="version"> <VendorInfo> <vendorName eq="Phidget"/> </VendorInfo> </Find> <SetResponseData> <Key>Message.Value.Find.Result.VendorInfo.vendorName</Key> <Value>Phidget Inc</Value> </SetResponseData> <Update> <From>Result</From> <Include>$Response.Message.Value.Find</Include> </Update> </Query>
Update Query Result:
Note that the Version number is incremented automatically if the update is successful.
<Find Status="Success" Format="version"> <Result> <VendorInfo> <VendorSysId>KNTMS6F7AAAAUAABA7SVACBP</VendorSysId> <vendorTitle Value="Sensor Provider" Version="1"/> <vendorName>Phidget Inc</vendorName> </VendorInfo> </Result> </Find> <Update Status="Success" Format="version"> <VendorInfo> <VendorSysId>KNTMS6F7AAAAUAABA7SVACBP</VendorSysId> <vendorName Status="Success=Updated:2:1457718402256;" Value="Phidget Inc" Version="2"/> <vendorTitle Status="Success_NoAction:1:1457718393024;" Value="Sensor Provider" Version="1"/> </VendorInfo> </Update>
Delete Query:
<Query> <DeleteAll> <VendorInfo> <vendorName eq="Phidget"/> </VendorInfo> </DeleteAll> </Query>
DataModel with one Complex type.
<Def Name="PostalAddress"> <String Name="Street"/> <String Name="City"/> <String Name="Zipcode"/> </Def> <DataModel Name="VendorInfo"> <Sid name="VendorSysId"/> <String name="vendorName"/> <String name="vendorTitle"/> <PostalAddress name="VendorAddress"/> </DataModel>
DataModel with one Attribute that is of Array defined via Cardinality.
Save Query Results to a CSV
In some cases the user may want to save the query results to a CSV file. This can be achieved easily using 3 step process:
- Find Data
- Convert result to comma separated lines
- Save the content
- View the content
For example: Let's say you have a DataModel VendorInfo as defined below.
Generic Macro to Save File:
You can make is as part of your project.
Note the content has to be part of ProcessData.
Finally to View the file: