Skip to main content
Skip table of contents

Amazon S3 DynamoDB Connector

This adapter stores data in Amazon S3 DynamoDB storage and enables you to use X4 BPMS to persist data in cloud environments. Amazon S3 DynamoDB is a fully managed NoSQL database service that delivers fast and predictable performance with seamless scalability.

Properties

Operation

Operation performed by the adapter

Possible values:

  • CreateTable: Creates a table with a table name and primary key.

Required parameters: tableName, partitionKey, partitionType. Additionally, for sortable keys: sortKey, sortType. Additionally, for AutoScaling: scalingMinCapacity, scalingMaxCapacity, scalingTargetValue, scalingInCooldown, scalingOutCooldown, scalableType, arnRole

  • UpdateTable: Updates existing tables and changes the read/write capacity units.

Required parameters: tableName, partitionKey, readCapacityUnits, writeCapacityUnits

  • ListTable: Lists all tables.

  • EnableAutoScaling: Enables AutoScaling for an existing table with the appropriate scalableType (Read/Write).

Required parameters: tableName, scalingMinCapacity, scalingMaxCapacity, scalingTargetValue, scalingInCooldown. ScalingOutCooldown, scalableType, arnRole

  • DisableAutoScaling: Disables AutoScaling for an existing table with the appropriate scalableType (Read/Write).

Required parameters: tableName, scalableType

  • PutItem: Receives an XML input with the structure of the element to be placed.

Required parameters: tableName

  • BatchPutMultipleItems: Inserts multiple elements in a single call.

Required parameters: tableName

Required files: This operation requires an input XML file containing the elements.

  • UpdateItem: Updates the specific element.

Required parameters: keyID, secretKey, region, tableName, partitionKey , partitionKeyValue

  • GetItem: Retrieves the specific element.

Required parameters: tableName, partitionKey, partitionType, partitionKeyValue (must match the element to be retrieved). Additionally, for sortable keys: sortKey , sortType, sortKeyValue.

  • BatchGetMultipleItems: Retrieves multiple elements depending on the values of partitionKey specified in an XML file. All elements are retrieved with all element attributes.

Required parameters: tableName, partitionKey, partitionType, partitionKeyValue (must match the element to be retrieved). Additionally, for sortable keys: sortKey , sortType, sortKeyValue.

  • Delete : Deletes an element or table according to the configured parameters.

If the tableName and primary key elements are specified, the Delete operation deletes the specific element. If only the tableName is specified, the Delete operation deletes the table.

  • BatchDeleteMultipleItems: Deletes multiple elements in a single call.

Required parameters: tableName

Required files: This operation requires an input XML file containing the elements.

  • Query: Retrieves subset of elements within a table. Conditions are specified for the various attributes. For more information about the input file that calls the query, see the Input section.

Required parameters: tableName, partitionKey

PartitionKey is required and the comparator is always "=". If the sortKey is available, the comparator between partitionKey and sortKey is "AND".

Permitted operators: =, >, <, >=, <=, !=, BETWEEN, begins_with

Parameters

Adapter

Adapter main class (do not change!)

Possible values: de.softproject.integration.adapter.amazondynamodb.AmazonDynamoDBAdapter: Main class (Default)

keyID

Access key ID for requests to Amazon Web Services (AWS)

The credentials are sent to the adapter via parameters. There are various configuration options. For more information, see Setting Up Credentials .

Possible values: Any string with the access key ID, e.g. AKIAIOSFODNN7EXAMPLE

secretKey

Secret access key for requests to AWS

The credentials are sent to the adapter via parameters. There are various configuration options. For more information, see Setting Up Credentials.

Possible values: Any string with the secret access key, e.g. wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

region

Region of domains

Possible values: Any string with the name of the region, e.g. us-east-2

Buckets created in a specific region cannot be invoked from another region. For more information, see Regions and Endpoints.

tableName

Table name

Possible values: Any string with the table name

The following naming rules apply to table names:

  • All names must be UTF-8 encoded

  • Table names are case-sensitive

  • Table names and index names must be between 3 and 255 characters long and must contain only the following characters:

    • a-z

    • A-Z

    • 0-9

    • _ (Underscore)

    • - (Hyphen)

    • . (period)

  • Attribute names must be between 1 and 255 characters long.

partitionKey, partitionType, and partitionKeyValue

Elements of the primary table key

Possible values:

  • PartitionKey: Name of the partition key

  • PartitionType: Partition type

    • S: The attribute is a string

    • N: The attribute is a number

    • B: The attribute is of the Binary type

  • PartitionKeyValue: Value of the element; required for the GetItem and BatchGetMultipleItems operations.

sortKey, sortType, and sortKeyValue

Elements of the primary table key

Possible values:

  • SortKey: Name of the sort key

  • SortType: Sort type

    • S: The attribute is a string

    • N: The attribute is a number

    • B: The attribute is of the Binary type

  • SortKeyValue: Value of the element; required for the GetItem operation

readCapacityUnits, writeCapacitiyUnits

Read/Write capacity units

Possible values:

  • Integer capacity units

scalableType

Defines the scalability type for AutoScaling.

Possible values:

  • ReadCapacity

  • WriteCapacity

autoScaling

Specifies that the table is created using AutoScaling. In the case of a check, all scaling parameters must be specified.

Possible values:

  • true

  • false

scalingMinCapacity, scalingMaxCapacity, scalingTargetValue, scalingInCooldown, scalingOutCooldown

Defines the scaling parameters for AutoScaling.

Possible values:

For more information, see AutoScaling (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.Console.html#AutoScaling.Console.ExistingTable).

arnRole

ARN of the role that is authorized to apply AutoScaling to the table resource.

Possible values:

For more information, see Amazon Resource Names (ARN) (https://docs.aws.amazon.com/de_de/general/latest/gr/aws-arns-and-namespaces.html).

consistentRead

DynamoDB uses eventually consistent reads unless otherwise specified. Read operations such as GetItem and Query provide a ConsistentRead parameter. If this parameter is set to true, DynamoDB uses strongly consistent reads during operation.

Status values

1

The adapter operation was executed successfully

0

Delete operation:

  • The element does not exist

  • The table does not exist

-1

An error occurred while running the adapter

Input

The adapter expects a predefined XML structure as input. The structure depends on the operation used.

PutItem operation

XML
<?xml version="1.0" encoding="UTF-8"?>
<RootElement>
	<Item>
		<Attribute name="..Name of PartionKey.." type="..Type of Partition.." value="..Value of PartitionKey.."/>
		<Attribute name="..Name of SortKey.." type="..Type of Sort.." value="..Value of SortKey.."/>
		<Attribute name="..Attribute Name.." type="..Attribute Type.." value="..Attribute Value.."/>
	</Item>
</RootElement>

There are no restrictions on element names for the PutItem operation. However, the name, value, and type attributes are required.

BatchGetMultipleItems operation

XML
<?xml version="1.0" encoding="UTF-8" ?>
<PrimaryKeyValues>
	<PrimaryKey partitionKey="2" SortKey="Carlos" />
	<PrimaryKey partitionKey="5" SortKey="Luis" />
</PrimaryKeyValues>

Primary keys can be specified for different objects. If the object matches a table in which only partitionKey is defined, only partitionKey can be specified. Otherwise, partitionKey and SortKey can be specified.

BatchPutMultipleItems operation

XML
<?xml version="1.0" encoding="UTF-8" ?>
<RootElement>
	<Item>
		<Attribute name="ID" type="N" value="5" />
		<Attribute name="Name" type="S" value="Luis" />
		<Attribute name="Phone" type="N" value="0034666777888" />
		<Attribute name="Bonus" type="BOOL" value="true" />
		<Attribute name="Colours" type="LIST">
			<Attribute type="S" value="Red" />
			<Attribute type="S" value="Green" />
			<Attribute type="S" value="Blue" />
			<Attribute name="Cars" type="MAP">
				<Attribute5 name="Phone" type="N" value="637559681" />
				<Attribute6 name="Bonus" type="BOOL" value="true" />
				<Attribute7 name="Profession" type="S" value="Programmer" />
				<Attribute7 name="DocumentCode" type="B" value="qwrqfgdas1223455sdfffr" />
			</Attribute>
		</Attribute>
		<Attribute name="Cars" type="MAP">
			<Attribute5 name="Phone" type="N" value="637559681" />
			<Attribute6 name="Bonus" type="BOOL" value="true" />
			<Attribute7 name="Profession" type="S" value="Programmer" />
			<Attribute7 name="DocumentCode" type="B" value="qwrqfgdas1223455sdfffr" />
		</Attribute>
	</Item>
	<Item>
		<Attribute1 name="ID" type="N" value="5" />
		<Attribute3 name="Name" type="S" value="Luis" />
		<Attribute4 name="Surname" type="S" value="Delgado" />
		<Attribute2 name="Address" type="S" value="Pirandello" />
		<Attribute5 name="Phone" type="N" value="637559681" />
		<Attribute6 name="Bonus" type="BOOL" value="true" />
		<Attribute7 name="Profession" type="S" value="Programmer" />
		<Attribute7 name="DocumentCode" type="B" value="qwrqfgdas1223455sdfffr" />
	</Item>
</RootElement>

You can specify multiple items. In the items, you can specify attributes of the following types: Boolean (BOOL), String (S), Number (N), Map (MAP), List (LIST), and Binary (B). The output of this operation is the same XML file. This can be useful for further operations.

BatchDeleteMultipleItems operation

XML
<?xml version="1.0" encoding="UTF-8" ?>
<RootElement>
	<Item>
		<Attribute1 name="ID" type="N" value="7" />
		<Attribute7 name="Name" type="S" value="Luis" />
	</Item>
	<Item>
		<Attribute1 name="ID" type="N" value="6" />
		<Attribute7 name="Name" type="S" value="Luis" />
	</Item>
</RootElement>

This input specifies the primary keys of the items to be deleted. If the primary key consists only of the partitionKey, only the partionKey is required. If the primary key consists of partitionKey and SortKey, both keys are required for the element to be deleted to be unique. The output of this operation is also the input.

UpdateItem operation

XML
<?xml version="1.0" encoding="UTF-8"?>
<Input>
	<Item>
		<Attribute name="ID" type="N" value="5"
			action="ADD|PUT|DELETE"></Attribute>
		<Attribute name="Name" type="S" value="Luis"
			action="ADD|PUT|DELETE"></Attribute>
		<Attribute name="Surname" type="S" value="Delgado"
		action="ADD|PUT|DELETE"></Attribute>
	</Item>
</Input>

Actions for updateItem

  • ADD: Adds a new attribute in the element.

  • PUT Updates the value of the attribute in the specified element.

  • DELETE Deletes the attribute from the element.

Query operation

XML
<?xml version="1.0" encoding="UTF-8" ?>
<Query>
	<KeyCondition>ID=:param1</KeyCondition>
	<OtherFilters>Colors[3].Profession=:param3 or DocumentCode=:param2</OtherFilters>
	<QueryParameters>
		<Parameter type="N" alias=":param1" value="5" />
		<Parameter type="B" alias=":param2" value="cXdycWZnZGFzMTIyMzQ1NXNkZmZmcg==" />
		<Parameter type="S" alias=":param3" value="Programmer" />
	</QueryParameters>
</Query>

The Query parent element contains three elements:

  • KeyCondition: Contains only the specific partitionKey and, if available, SortKey that meet the following conditions:

    • The comparator between partitionKey and SortKey is always "AND".

    • partitionKey is required and is always used with "=".

    • If SortKey is used, the following operators can be used: =, >, <, >=, <=, !=, BETWEEN, begins_with

    • partitionKey and SortKey cannot match words reserved for AWS DynamoDB.

  • OtherFilters: Specifies conditions for the remaining attributes that are not part of the primary key. The affected attributes cannot match words reserved for AWS Dynamo DB.

  • QueryParameters: Specifies the mapping between the parameters used and your corresponding values. The type of each parameter must be specified.

Output

Depending on the operation, the adapter outputs data in different XML structures:

Example output for the GetItem operation

XML
<?xml version="1.0" encoding="UTF-8"
<Result>
	<Item partitionKey="ID" partitionKeyValue="2" SortKey="Name" SortKeyValue="Carlos">
		<Attribute name="Address" type="S" value="Pirandello"/>
		<Attribute name="Phone" type="N" value="637559681"/>
		<Attribute name="Bonus" type="BOOL" value="true"/>
		<Attribute name="DocumentCode" type="B" value="qwrqfgdas1223455sdfffr"/>
		<Attribute name="Surname" type="S" value="Delgado"/>
		<Attribute name="Profession" type="S" value="Programmer"/>
	</Item>
</Result>

Example output for the BatchGetMultipleItems operation

XML
<?xml version="1.0" encoding="UTF-8" ?>
<Result>
	<Item partitionKey="ID" partitionKeyValue="5" SortKey="Name" SortKeyValue="Luis">
	<Attribute type="MAP" name="Cars">
			<Attribute type="N" name="Phone" value="637559681" />
			<Attribute type="BOOL" name="Bonus" value="true" />
			<Attribute type="B" name="DocumentCode" value="qwrqfgdas1223455sdfffr" />
	<Attribute type="S" name="Profession" value="Programmer" />
	</Attribute>
		<Attribute type="N" name="Phone" value="34666777888" />
	<Attribute type="LIST" name="Colours">
			<Attribute type="S" value="Red" />
			<Attribute type="S" value="Green" />
	<Attribute type="S" value="Blue" />
			<Attribute type="MAP" name="Colours">
				<Attribute type="N" name="Phone" value="637559681" />
				<Attribute type="BOOL" name="Bonus" value="true" />
				<Attribute type="B" name="DocumentCode" value="qwrqfgdas1223455sdfffr" />
				<Attribute type="S" name="Profession" value="Programmer" />
	</Attribute>
	</Attribute>
		<Attribute type="BOOL" name="Bonus" value="true" />
	</Item>
	<Item partitionKey="ID" partitionKeyValue="2" SortKey="Name" SortKeyValue="Carlos">
		<Attribute type="S" name="Address" value="Pirandello" />
		<Attribute type="N" name="Phone" value="637559681" />
		<Attribute type="BOOL" name="Bonus" value="true" />
	<Attribute type="B" name="DocumentCode" value="qwrqfgdas1223455sdfffr" />
		<Attribute type="S" name="Surname" value="Delgado" />
		<Attribute type="S" name="Profession" value="Programmer" />
	</Item>
</Result>

An Item element including fields for the primary key and the associated values is created for each element. Within the Item element, there is a list of the respective attributes.

Example output for the ListTables operation

XML
<?xml version="1.0" encoding="UTF-8" ?>
<Result>
	<sampleItems />
</Result>

A Result parent element is returned that contains an element for each table declared in the account.

Example output for the Query operation

XML
<?xml version="1.0" encoding="UTF-8" ?>
<Result hasMorePages="false">
	<Item>
		<Attribute value="{Phone=637559681, Bonus=true, DocumentCode=[B@231dee4d, Profession=Programmer}" name="Cars" />
		<Attribute value="34666777888" name="Phone" />
		<Attribute value="[Red, Green, Blue, {Phone=637559681, Bonus=true, DocumentCode=[B@5857d888, Profession=Programmer}]" name="Colours" />
	<Attribute value="true" name="Bonus" />
	<Attribute value="5" name="ID" />
	<Attribute value="Luis" name="Name" />
	</Item>
</Result>

A Result parent element is returned. The hasMorePages attribute specifies whether the result has more pages to display or not. This is useful for comprehensive answers. For each element that meets the query conditions, an Item element is created that contains all the attributes.

JavaScript errors detected

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

If this problem persists, please contact our support.