Skip to main content
Skip table of contents

Microsoft Azure Table Storage Connector

This adapter enables the connection to a Microsoft Azure Table Storage to perform various operations.

Properties

Operation

Defines the operation executed by the adapter

Possible values:

  • CreateTable: Creates a new table.
    Required parameters: tableName

  • ListTable: Lists all tables.

  • DeleteTable: Deletes an already existing table.
    Required parameters: tableName

  • InsertEntity: Inserts the entity, if the entity does not exist, or replaces an existing entity.
    Once the operation was executed successfully, the table will contain the new entity with properties as defined in the request and the prior entity and its properties will be replaced.
    Required parameters: tableName, partitionKey, rowKey

  • InsertBatchEntity: Inserts a batch of entities in one write operation using InsertOrReplace entity.
    Required parameters: tableName

  • RetrieveEntity: Retrieves a single, specified entity.
    Required parameters: tableNamepartitionKeyrowKey

  • RetrieveAllEntities: Retrieves all entities from a specific partitionKey.
    Required parameters: tableNamepartitionKey

  • RetrieveRangeEntities: Retrieves a range of entities using the partitionKey and filters on a range of rowKey values. partitionKey identifies a specific partition, rowKey values identify a subset of the entities in that partition.
    Required parameters: tableNamepartitionKeyrowKeyfilterCondition

  • DeleteEntity: Deletes a single entity.
    Required parameters: tableName, partitionKey, rowKey

  • ModifyEntity: Modifies an entity, choosing between a merge or replace operation using replaceExistingItems parameter check.
    If replace operation ist selected (replaceExistingItems="true"), only the provided properties will remain after the operation, the other properties will be deleted.
    If merge operation is selected (replaceExistingItems="false"), all properties will remain and the provided ones will be updated.
    Required parameters: tableNamepartitionKeyrowKeyreplaceExistingItems

  • QuerySubsetOfEntityProperties: Gets a subset of entity properties according to an XML input.
    If rowKey and partitionKey are specified, only matching entity properties will be retrieved.
    If rowKey and partitionKey are not specified, all entities in that table will be retrieved. The operation's output is an XML file containing the subset of properties inside a parent element for each related entity.
    Required parameters: tableNamepartitionKeyrowKey

Parameters

Adapter

Adapter main class (do not change!)

Possible values:  de.softproject.integration.adapter.microsoft.azure.table.MicrosoftAzureTableStorageAdapter: main class (default)

accountName

Name of the Microsoft Azure storage account

Possible values: Any valid string, e.g. softproject

accountKey

Password of the Microsoft Azure storage account

Possible values: Any string containing the serial key provide by Microsoft Azure, e. g. AD9ohFhJ6Hve9ODJEXTw53MjR1tjoUZ8lWfDlw5UFqGMih3VtUCapIwIfEMBmITeShQN9MbCITE4SzxTcGIybw==

endPointAzure Cosmos DB endpoint
tableName

Name of the table where entities are stored

Possible values: String containing the ID for the new table

(info) Table names have the same character requirements as database IDs. Database names must be between 1 and 255 characters, and cannot contain  / \ # ?  or a trailing space.

partitionKey

Element of the primary key

Entities with the same partition key can be queried faster, and inserted/updated in atomic operations.

Possible values: Any string containing the partition key

rowKey

Element of the primary key

An entity's row key is its unique identifier within a partition

Possible values: Any string containing the row key

filterCondition

Use to compare partitionKey an rowKey

Possible values:

  • EQUAL
  • GREATER_THAN
  • GREATER_THAN_OR_EQUAL
  • LESS_THAN
  • LESS_THAN_OR_EQUAL
  • NOT_EQUAL
replaceExistingItems

Indicates if ModifyEntity performs a replace or a merge operation. For further information please check http://azure.github.io/azure-storage-java/.

Possible values:

  • Checked: perform replace operation
  • Unchecked: perform merge operation

Status values

1

The operation was executed successfully

-1An error occurred during the operation's execution
0

Operation CreateTable: The table could not be created, but neither an error nor an exception were returned.

Operation DeleteTable: The specified tableName does not exist.

Input

The adapter expects an XML document as input

  • In case of InsertEntity operation, an XML with the following structure is expected:

    Expected structure for operation InsertEntity

    XML
    <?xml version="1.0" encoding="UTF-8"
    <Entity>
        <Properties1 name="Department" value="ITAdministration"/>
        <Properties2 name="Address" value="C\Pirandello"/>
        <Properties3 name="Name" value="Paolo"/>
        <Properties4 name="Surname" value="Green"/>
    </Entity>

    The property (key) name cannot be protected words like Id .

  • In case of ModifyEntity operation, an XML with the following structure is expected:

    Expected structure for operation ModifyEntity

    XML
    <?xml version="1.0" encoding="UTF-8" ?>
    <Entity>
    	<Properties name="Name" value="Carlos" />
    </Entity>
  • In case of QueryOfSubsetEntityProperties operation, an XML where the required properties are specified is expected:

    Expected structure for operation QueryOfSubsetEntityProperties

    XML
    <?xml version="1.0" encoding="UTF-8" ?>
    <Entity>
    	<Property name="Department" />
    	<Property name="Surname" />
    	<Property name="nonExistingProperty" />
    </Entity>

Output

The adapter returns different kind of documents depending on the executed operation:

  • Output for operation RetrieveEntity:

    Output for operation RetrieveEntity

    XML
    <?xml version="1.0" encoding="UTF-8"
    <Entity partitionKey="ITEmployee" rowKey="ref-0001">
        <Properties name="Department" value="ITAdministration"/>
        <Properties name="Address" value="C\Pirandello"/>
        <Properties name="Name" value="Paolo"/>
        <Properties name="Surname" value="Green"/>
    </Entity>
  • Output for operations RetrieveAllEntities and RetrieveRangeEntities:

    Output for operations RetrieveAllEntities and RetrieveRangeEntities

    XML
    <?xml version="1.0" encoding="UTF-8" ?>
    <ListEntities>
    	<Entity partitionKey="ITEmployee" rowKey="ref-0001">
    		<Properties name="Department" value="ITAdministration" />
    		<Properties name="Address" value="C\Pirandello" />
    		<Properties name="Surname" value="Green" />
    		<Properties name="Name" value="Paolo" />
    	</Entity>
    	<Entity partitionKey="ITEmployee" rowKey="ref-0002">
    		<Properties name="Department" value="Developments" />
    		<Properties name="Address" value="C\Francisco" />
    		<Properties name="Surname" value="Lopez" />
    		<Properties name="Name" value="Luis" />
    	</Entity>
    	<Entity partitionKey="ITEmployee" rowKey="ref-0003">
    		<Properties name="Department" value="Sales" />
    		<Properties name="Address" value="C\Espada" />
    		<Properties name="Surname" value="Red" />
    		<Properties name="Name" value="Paula" />
    	</Entity>
    </ListEntities>
  • Output for operation QueryOfSubsetEntityProperties:

    Output for operation QueryOfSubsetEntityProperties

    XML
    <?xml version="1.0" encoding="UTF-8" ?>
    <ListEntities>
    	<Entity>
    		<Property partitionKey="ITEmployee" />
    		<Property rowKey="ref-0001" />
    		<Property name="Department" value="ITAdministration" />
    		<Property name="nonExistingProperty" />
    		<Property name="Surname" value="Green" />
    	</Entity>
    </ListEntities>

    Properties partitionKey and rowKey are always returned because they are used to uniquely identify the entity. Since the operation is able to return multiple properties of more than one object, it is important to assign the properties to the associated entity.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.