Command description

view command

This flow will allow us to browse the DataUniverse objects. These flows are the same as for the workflow module but with small nuances:

  • A catalog of type 4.
  • An definition object tree slightly different.
  • The absence of a graph.

View URL

    http://myvdocserver/vdoc/navigation/flow?module=worflow&cmd=view&_AuthenticationKey=...

Browsing the administrative objects

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:

  • ICatalog (Database - Type 4)
    • IResourceDefinition (Table)
      • View (Vues)

For the 2011 version:

  • Project (Application)
    • Catalog (Database) (Type 4)
      • IResourceDefinition(Table)
        • View (Vues)
Tree structure logic in the request flows

In your queries, you can define the structure (tree or not) of what you request.\

For example, you may wish to obtain:

  • All projects.
  • All databases in a project.
  • All projects with all their corresponding databases.
  • The whole tree structure of the definition objects.

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 tag

Scopes tags allows to reduce the search area.

Request flow

Here's following some examples of what you can achieve with this flow.

Example 1: All projects
<?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>
Example 2: Databases group by project
<?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>
Example 3: Groups of processes belonging to a projet
<?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>
Example 4: Tables for a specific database
<?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>
Example 5: All the tree structure
<?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>

Response flow

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>

Handling documents

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.

Note:
The rules that apply to flows on workflows (process document) also apply to data stockroom. A full explanation is provided in the article about the flows on the process documents.
Request flow

At the level of a view evaluation, we can range from the simplest to the most complete:

  • Simply assessing a VDoc view as configured.
  • Retrieve the XML of a VDoc view then edit it and assess it.
  • Build yourself an XML flow of a view definition unbound to an existing VDoc view.

So it's up to you to choose the closest path for your need.

Example 1: Simply assessing a VDoc view as configured

This example is identical to the example of the command view of the process document here

Example 2: Retrieve the XML of a VDoc view then edit it and assess it.

Three tasks are needed here:

  • Retrieve an XML flow of an existing view in VDoc: this is achievable via the get flow of the Workflow Module.
  • Edit the flow: this should be done manually or by development
  • Evaluate the flow: we are in a case of XML assess, see the example 3 that follows.
Example 3: Build yourself an XML flow of view definition unbound to an existing VDoc view.
Warning:
There are two differences compared to the flows of workflows:
  • type="resource" instead of type="treatment"
  • <field name="sys_ResourceDefinition" value="Notifications" />; Here there's no filter on the IWorkflowContainer
<?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>
Note:
A change request have been made so that the "type" attribute take as value:
  • com.axemble.vdoc.sdk.interfaces.IStorageResource
  • com.axemble.vdoc.sdk.interfaces.IWorkflowInstance

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.

Response flow

As output, we will get some resources VDoc each with:

  • A header with system informations of the resource
  • A body with the value of all fields that have been requested (columns in the view)

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&amp;method=edit&amp;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>    

get command

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:

  • IView

Dynamic objects managed:

  • IStorageResource

Get URL

    http://myvdocserver/vdoc/navigation/flow?module=workflow&cmd=get&_AuthenticationKey=...

Request flow

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>    
Example 1: Retrieving of an XML definition of a view
<?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>
Note:
The view definition will be returned in Base64.
Example 2: Retrieving informations on a data
<?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>
Note:
In this case, the URI protocol of the view could have been recovered manually in the VDoc interface or via the definition objects code of this same view.

Response flow

The response flow will depend on your request.

Example 1: Retrieving of an XML definition of a view
<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>
Example 2: Retrieving informations on a data
<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.

create command

This flow allows to create a new data in a data stockroom table.

You have to send the following informations:

  • Creator.
  • Reference (eventually).
  • All fields values.

Create URL

    http://myvdocserver/vdoc/navigation/flow?module=workflow&cmd=create&_AuthenticationKey=...

Request flow

Example 1: Simple create
<?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.

Response flow

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"/>

update command

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.

Update URL

    http://myvdocserver/vdoc/navigation/flow?module=workflow&cmd=update&_AuthenticationKey=...

Request flow

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.

Example 1: Update on a IWorkflowInstance object
<?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>
Example 2: Update on a IStorageResource object
<?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>

Response flow

This response flow will have the same format as the response flow of the create command.

delete 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:

  • IProject
  • ICatalog
  • IResourceDefinition

Dynamic objects managed:

  • IStorageResource

Delete URL

    http://myvdocserver/vdoc/navigation/flow?module=workflow&cmd=delete&_AuthenticationKey=...

Request flow

This flow is simple to use, you just need to forward the URI protocol of the item to delete.

Example 1: Delete an application
<?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>
Example 2: Delete a process group
<?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>
Example 3: Delete an IResourceDefinition
<?xml version="1.0" encoding="UTF-8"?>
<delete>
    <header login="sysadmin" />
    <body>
        <element class="com.axemble.vdoc.sdk.interfaces.IResourceDefinition">
            <header protocol-uri="uri://vdoc/resourceDefinition/161" />
        </element>
    </body>
</delete>
Example 4: Delete an IStorageResource
<?xml version="1.0" encoding="UTF-8"?>
<delete>
    <header login="sysadmin" />
    <body>
        <element class="com.axemble.vdoc.sdk.interfaces.IStorageResource">
            <header protocol-uri="uri://vdoc/resource/109" />
        </element>
    </body>
</delete>    

Response flow

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" />