Operational Data Storage (ODS) (Magic xpi 3.x)

« Go Back


Created ByKnowledge Migration User
Approval Process StatusPublished

Operational Data Storage (ODS) (Magic xpi 3.x)


The Operational Data Storage (ODS) system provides a way to save data that can be shared by multiple flow components or flows. ODS is a type of database that serves as a quick-access data storage. An ODS system lets you perform many queries on small amounts of data, and differs from a data warehouse, in which large amounts of information is stored and queries are run on a large volume of data.

The Magic xpi ODS system manages a data table that maintains an entry for each item saved in the ODS. Each item saved in the ODS is identified by its flow sequence ID and UserKey.

You manage ODS data in the Magic xpi Studio. You can manually add ODS entries in the ODS repository. To automatically update, clear, or delete data, or to delete an index entry, use the Flow Data service or map data to an ODS entry with the Data Mapper.

ODS entries in the Data Mapper are displayed as a compound node with multiple instances.

ODS Arrays

ODS entries support arrays of data. Arrays let you store more than one value under the same User Key. Each value in the array is called an index. For example, ODS1_1 is the first index in the ODS1 User key.

ODS arrays are used in concurrent processing architecture where data arrives from many resources and has to be processed sequentially later. This eliminates the need to assign a unique name for an ODS entry to store data in a multi-threaded environment.

Each value in an array can be a different data type. For example, Index 1 in an array can be Alpha, and Index 2 can be Numeric. To check the value of an ODS array index, use the ODSArrayCnt function.

For more information about using ODS arrays, click here.

Managing ODS Data

Data is managed by creating entries for each User Key. ODS supports a number of data types. The supported data types are described in the table below:

Data Type



Data defined as Alpha type can include any character or digit. The maximum character/digit length for Alpha type data in ODS is 1000, including spaces.


Data defined as numeric data type can contain only digits. This data is read by the computer in binary format and must be converted to Alpha to display the characters. The maximum length for numeric data in ODS is 12.4.


Data defined as date data type can contain date format data in digits. For example, DD/MM/YY displays the date July 6, 2005 as 06/07/05.


Data defined as time data type can contain time format data in digits. For example, HH:MM:SS displays the time 15 minutes and 22 seconds before three o'clock as 02:45:22.


Data defined as logical data indicates whether given conditions are true or false. Magic xpi converts this information to numeric format with 0 for false and 1 for true.


Data defined as a BLOB is entered as a Binary Large Object. An attribute that contains binary information is of unknown size. The ODS system stores this information as is, without understanding the contents. A common use for BLOB attributes would be to store OLE objects or image bitmaps.

At any time during a flow, you can check the current value for any ODS entry by using the ODSGet function, or you can check whether a user key exists by using the ODSExists function.

The Magic xpi ODS system supports these data storage modes:

  • Local Flow Storage (ODS Local) – Saves data in the ODS database for a particular flow for use by parallel steps in the same flow. The data is cleared from the ODS when the Server starts.

  • Global Storage (ODS Global) – Use this mode to save data between flows. All flows can retrieve the data.


The ODS system is available to all Magic xpi Servers in the same project. This means that the other Magic xpi Servers can retrieve data from this system.