This flow will allow us to browse the DataUniverse objects. These flows are the same as for the workflow module but with small nuances:
http://myvdocserver/vdoc/navigation/flow?module=worflow&cmd=view&_AuthenticationKey=...
The objective here is to browse the definition objects, administration, just as if we were connected to VDoc and we were going through the applications, databases, tables, ... All definition objects are not yet available but the main flow (considered the most useful) are managed.
Managed objects:
For the 2010 SP3 version:
For the 2011 version:
In your queries, you can define the structure (tree or not) of what you request.\
For example, you may wish to obtain:
All these queries can be done with the same flow. Indeed, it's up to you to define the structure of your object definitions.
Warning: the tree structure must be respected in the declaration of "definitions"
Scopes tags allows to reduce the search area.
Here's following some examples of what you can achieve with this flow.
<?xml version="1.0" encoding="UTF-8"?> <view xmlns:vw1="http://www.axemble.com/vdoc/view"> <header> <definition class="com.axemble.vdoc.sdk.interfaces.IProject" /> </header> </view>
<?xml version="1.0" encoding="UTF-8"?> <view xmlns:vw1="http://www.axemble.com/vdoc/view"> <header> <definition class="com.axemble.vdoc.sdk.interfaces.IProject" > <definition class="com.axemble.vdoc.sdk.interfaces.ICatalog" type="4" /> </definition> </header> </view>
<?xml version="1.0" encoding="UTF-8"?> <view xmlns:vw1="http://www.axemble.com/vdoc/view"> <header> <scopes> <project protocol-uri="uri://vdoc/project/1"/> </scopes> <definition class="com.axemble.vdoc.sdk.interfaces.ICatalog" /> </header> </view>
<?xml version="1.0" encoding="UTF-8"?> <view xmlns:vw1="http://www.axemble.com/vdoc/view"> <header> <scopes> <catalog protocol-uri="uril://vdoc/catalog/DefaultOrganization/TestApplication/AdministrativeBase:4"/> </scopes> <definition class="com.axemble.vdoc.sdk.interfaces.IResourceDefinition" /> </header> </view>
<?xml version="1.0" encoding="UTF-8"?> <view xmlns:vw1="http://www.axemble.com/vdoc/view"> <header> <definition class="com.axemble.vdoc.sdk.interfaces.IProject" > <definition class="com.axemble.vdoc.sdk.interfaces.ICatalog" type="4"> <definition class="com.axemble.vdoc.sdk.interfaces.IResourceDefinition" > <definition class="com.axemble.vdoc.sdk.interfaces.IView"/> </definition> </definition> </header> </view>
In response, the flow will send you a tree structure related to your request.
If we take the previous flow example "Retrieve all the tree structure", here's what VDoc could return as answer.
<?xml version="1.0" encoding="UTF-8"?> <view xmlns:vw1="http://www.axemble.com/vdoc/view"> <body> <project id="1" name="DefaultProject" label="Default Project" protocol-uri="uril://vdoc/project/DefaultOrganization/DefaultProject" /> [...] <project id="11" name="TestApplication" label="TestApplication" protocol-uri="uril://vdoc/project/DefaultOrganization/TestApplication"> <catalog id="24" name="AdministrativeBase" label="Administrative base" protocol-uri="uril://vdoc/catalog/DefaultOrganization/TestApplication/AdministrativeBase:4" is-confidential="false" is-system="true" type="4"> <resource-definition id="40" name="CarCategory" label="CarCategory" protocol-uri="uril://vdoc/resourceDefinition/DefaultOrganization/TestApplication/AdministrativeBase:4/CarCategory" /> <resource-definition id="42" name="Test" label="Test" protocol-uri="uril://vdoc/resourceDefinition/DefaultOrganization/TestApplication/AdministrativeBase:4/Test" /> <resource-definition id="34" name="Car" label="Car" protocol-uri="uril://vdoc/resourceDefinition/DefaultOrganization/TestApplication/AdministrativeBase:4/Car" /> </catalog> </project> <project id="12" name="VDocFilecenter" label="VDoc Filecenter" protocol-uri="uril://vdoc/project/DefaultOrganization/VDocFilecenter" /> </body> </view>
Here, we are in the querying of dynamic objects, namely here, data stockroom ressources. So to query, we will send an XML of a view definition with some possible additional options.
At the level of a view evaluation, we can range from the simplest to the most complete:
So it's up to you to choose the closest path for your need.
This example is identical to the example of the command view of the process document here
Three tasks are needed here:
<?xml version="1.0" encoding="UTF-8"?> <view xmlns:vw1="http://www.axemble.com/vdoc/view"> <header> <scopes> <project protocol-uri="uril://vdoc/project/DefaultOrganization/Training" /> </scopes> <definition catalog="AcknowledgementManagement" catalogType="4" type="resource"> <filters> <fieldgroup operator="AND"> <field name="sys_ResourceDefinition" value="Notifications" /> </fieldgroup> </filters> <view sortAscending="true" sortBy="sys_Title"> <column name="sys_Title" /> <column name="sys_Reference" /> </view> </definition> </header> </view>
Indeed, the term "resource" or "treatment" are internal denominations that are not trivial for a VDoc SDK developer.
Obviously, when these changes will have been made, old names will still work.
As output, we will get some resources VDoc each with:
For more informations about the available data types, please refer to VDoc data types in SDK flows.
Here's an example of a response that could be received.
<view xmlns:vw1="http://www.axemble.com/vdoc/view"> <header description="" label="" name="" /> <body> <resource> <header created-date="2012-03-01T09:30:39.000Z" creator="sysadmin" editor="sysadmin" id="24" modified-date="2012-03-05T10:11:17.000Z" reference="0001" uri="?class=resource&method=edit&object=24"> <protocoluri>uri://vdoc/resource/24</protocoluri> <resource-definition id="14" label="Notifications" name="Notifications" protocol-uri="uril://vdoc/resourceDefinition/DefaultOrganization/Training/AcknowledgementManagement:4/Notifications" /> </header> <body> <string label="Reference" name="sys_Reference" value="0001" /> <string label="Title" name="sys_Title" value="Something to do" /> </body> </resource> </body> </view>
The purpose of this flow is to retrieve detailed information on a VDoc object by using its URI protocol.
We can retrieve informations on both definition objects and dynamic objects.
Definition objects managed:
Dynamic objects managed:
http://myvdocserver/vdoc/navigation/flow?module=workflow&cmd=get&_AuthenticationKey=...
This flow is simple to use, you just need to forward the URI protocol and some options.
Command | Description | Mandatory |
includeLabels | Set to true, to retrieve the field labels associated with the document. | No |
includeLinkedResources | Set to true, to include the lines of possible dynamic arrays. | No |
includeAttachmentsContent | Set to true, to include the content of the attached files(in base64) in the flow. | No |
useGuid | This setting can be useful if you don't want to include attached file (in Base64) in the flow, but you know that you will soon need to download an attached file. With this setting, VDoc will book a download for each attached file and send you back a GUID in the response flow. After, that GUID will be usable with the download command of the "io" module. | No |
These parameters are located in the "configuration" node in the header tag.
<?xml version="1.0" encoding="UTF-8" ?> <get> <header> <configuration> <param name="includeLabels" value="false" /> <param name="includeLinkedResources" value="true" /> </configuration> </header> <body> ... <get>
<?xml version="1.0" encoding="UTF-8" ?> <get> <header /> <body> <element class="com.axemble.vdoc.sdk.interfaces.IView"> <header protocol-uri="uril://vdoc/resourceDefinitionView/DefaultOrganization/TestApplication/AdministrativeBase:4/CarCategory/DEFAULT" /> </element> </body> </get>
<?xml version="1.0" encoding="UTF-8" ?> <get> <header /> <body> <element class="com.axemble.vdoc.sdk.interfaces.IStorageResource"> <header protocol-uri="uri://vdoc/resource/109" /> </element> </body> </get>
The response flow will depend on your request.
<get> <header id="266" name="DEFAULT" label="DEFAULT" protocol-uri="uril://vdoc/resourceDefinitionView/DefaultOrganization/TestApplication/AdministrativeBase:4/CarCategory/DEFAULT" /> <body> <definition content="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZG[...]" /> </body> </get>
<get xmlns:d1="http://www.axemble.com/process" class="com.axemble.vdoc.sdk.interfaces.IStorageResource"> <header id="109" protocol-uri="uri://vdoc/resource/109" reference="0001" creator="sysadmin" created-date="2012-12-11T09:49:12.000Z" editor="sysadmin" modified-date="2013-01-10T08:33:29.000Z"> <resource-definition id="34" name="Car" /> <catalog id="24" name="AdministrativeBase" is-confidential="false" is-system="false" type="4" /> <project id="11" name="TestApplication" /> </header> <body> <date name="PurchaseDate" label="Purchase date" value="2012-12-03T11:00:00.000Z" /> <date name="sys_CreationDate" label="Creation date" value="2012-12-11T09:49:12.000Z" /> <date name="sys_ModificationDate" label="Modification date" value="2013-01-10T08:33:29.000Z" /> <string name="sys_Reference" label="Reference" value="0001" /> <string name="Registration" label="Registration #" value="47-FGG-45" /> <string name="sys_Title" label="Title" value="V1" /> <user name="sys_ModifiedBy" label="Modified by" id="1" external-id="00i-000000-000" login="sysadmin" first-name="System" last-name="Administrator" protocol-uri="uri://vdoc/user/1" /> <user name="sys_Creator" label="Created by" id="1" external-id="00i-000000-000" login="sysadmin" first-name="System" last-name="Administrator" protocol-uri="uri://vdoc/user/1" /> <user name="sys_Addressee" label="Addressee" id="1" external-id="00i-000000-000" login="sysadmin" first-name="System" last-name="Administrator" protocol-uri="uri://vdoc/user/1" /> </body> </get>
For more informations about the available data types, please refer to VDoc data types in SDK flows.
This flow allows to create a new data in a data stockroom table.
You have to send the following informations:
http://myvdocserver/vdoc/navigation/flow?module=workflow&cmd=create&_AuthenticationKey=...
<?xml version="1.0" encoding="UTF-8" ?> <create> <header /> <body> <resource class="com.axemble.vdoc.sdk.interfaces.IStorageResource" > <header reference="" creator="sysadmin" editor="" > <project protocol-uri="uri://vdoc/project/11" /> <catalog name="AdministrativeBase" type="4" /> <resource-definition name="CarCategory" /> </header> <body> <string name="sys_Title" value="A new car category" /> </body> </resource> </body> </create>
For more informations about the available data types, please refer to VDoc data types in SDK flows.
The response flow will be a standard XML that will indicate either the success of the operation or any errors.
<?xml version="1.0" encoding="UTF-8"?> <response status="success" message="Resource created [0004]." detail="uri://vdoc/resource/276"/>
This flow will allow to update an existing row of data (in a table of a data tank).
By update we mean, update on fields values.
http://myvdocserver/vdoc/navigation/flow?module=workflow&cmd=update&_AuthenticationKey=...
The only difference compared to the flow of creation will be at the level of the resource header: you have to provide the URI protocol of the document that you want to alter.
<?xml version="1.0" encoding="UTF-8" ?> <update> <header /> <body> <resource class="com.axemble.vdoc.sdk.interfaces.IWorkflowInstance"> <header protocol-uri="uri://vdoc/workflowInstance/17" /> <body> <string name="sys_Title" value="Test 6" /> <user name="UserId" login="user1" /> <string name="Society" value="Default Organizationt" /> <string name="Address" value="456 Main street" /> <string name="Email" value="user1@user1.com" /> <string name="Phone" value="01 23 45 67 89" /> </body> </resource> </body> </update>
<?xml version="1.0" encoding="UTF-8" ?> <update> <header /> <body> <resource class="com.axemble.vdoc.sdk.interfaces.IStorageResource"> <header protocol-uri="uri://vdoc/resource/276" /> <body> <string name="sys_Title" value="My new car category (modified)" /> </body> </resource> </body> </update>
This response flow will have the same format as the response flow of the create command.
This flow is very simple to use, but it must be used very carefully.
It allows to delete an existing VDoc ojects.
It's important to note that deleted objects, can't be recovered.
It's possible to delete both definition objects (administrative objects) and dynamic objects (documents).
Definition objects managed:
Dynamic objects managed:
http://myvdocserver/vdoc/navigation/flow?module=workflow&cmd=delete&_AuthenticationKey=...
This flow is simple to use, you just need to forward the URI protocol of the item to delete.
<?xml version="1.0" encoding="UTF-8"?> <delete> <header login="sysadmin" /> <body> <element class="com.axemble.vdoc.sdk.interfaces.IProject"> <header protocol-uri="uril://vdoc/project/DefaultOrganization/MyProject" /> </element> </body> </delete>
<?xml version="1.0" encoding="UTF-8"?> <delete> <header login="sysadmin" /> <body> <element class="com.axemble.vdoc.sdk.interfaces.ICatalog"> <header protocol-uri="uri://vdoc/catalog/82" /> </element> </body> </delete>
The response flow will be a standard XML that will indicate either the success of the operation or any errors.
<?xml version="1.0" encoding="UTF-8"?> <response status="success" message="Element deleted[ElementName]." detail="protocol-uri" />