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 performed by the adapter Possible values:
Required parameters:
Required parameters:
Required parameters:
Required parameters:
Required parameters:
Required parameters: Required files: This operation requires an input XML file containing the elements.
Required parameters:
Required parameters:
Required parameters:
If the
Required parameters: Required files: This operation requires an input XML file containing the elements.
Required parameters:
Permitted operators: =, >, <, >=, <=, !=, BETWEEN, begins_with |
Parameters
| Adapter main class (do not change!) Possible values: de.softproject.integration.adapter.amazondynamodb.AmazonDynamoDBAdapter: Main class (Default) |
| 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. |
| 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. |
| Region of domains Possible values: Any string with the name of the region, e.g. Buckets created in a specific region cannot be invoked from another region. For more information, see Regions and Endpoints. |
| Table name Possible values: Any string with the table name The following naming rules apply to table names:
|
| Elements of the primary table key Possible values:
|
| Elements of the primary table key Possible values:
|
| Read/Write capacity units Possible values:
|
| Defines the scalability type for Possible values:
|
| Specifies that the table is created using Possible values:
|
| Defines the scaling parameters for Possible values: For more information, see AutoScaling (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.Console.html#AutoScaling.Console.ExistingTable). |
| 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). |
| DynamoDB uses eventually consistent reads unless otherwise specified. Read operations such as |
Status values
| The adapter operation was executed successfully |
|
|
| 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 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 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 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 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 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 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 specificpartitionKeyand, if available,SortKeythat meet the following conditions:The comparator between
partitionKeyandSortKeyis always "AND".partitionKeyis required and is always used with "=".If
SortKeyis used, the following operators can be used: =, >, <, >=, <=, !=, BETWEEN, begins_withpartitionKeyandSortKeycannot 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 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 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 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 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.