- 15 Jan 2025
- 3 Minutes to read
- Print
- DarkLight
About Data Types
- Updated on 15 Jan 2025
- 3 Minutes to read
- Print
- DarkLight
Overview
A Data Type is a classification of data that instructs the platform on how to handle the data and how it may be utilized. Basically this is what kind of data a structure has - text, numbers, dates, etc. The Data Type affects how the data can be used within the system. For example, a String(text) Data Type would not work for a math function, but the INT32 or Decimal types would work.
Every Data Structure categorizes its variables as a Data Type. By default, Decisions defines a set of built-in Alphanumeric Types and Composite Types that represent a wide variety of logical constructs such as a User Account or Database Structure or as simple Types that only represent one value.
Data Types can also be created through XML, JSON, or JSON Schema.
The following information may be stored in a Data Type:
- The storage space that a variable of the type requires.
- The maximum and minimum values that it can represent.
- The members (methods, fields, events, and so on) that it contains.
- The base type it inherits from.
- The location where the memory for variables will be allocated at run time.
- The kinds of operations that are permitted.
Most Common Data Types in Decisions
For math calculations, use Integral and Floating-Point Types as follows:
Integral Types
Type | Range | Size |
---|---|---|
SByte | -128 to 127 | Signed 8-bit integer |
Byte | 0 to 255 | Unsigned 8-bit integer |
Char | U+0000 to U+ffff | Unicode 16-bit character |
Int16 | -32,768 to 32,767 | Signed 16-bit integer |
Int32 | -2,147,483,648 to 2,147,483,647 | Signed 32-bit integer |
Int64 | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | Signed 64-bit integer |
UInt64 | 0 to 18,446,744,073,709,551,615 | Unsigned 64-bit integer |
Floating Point Types
Type | Approximate Range | Precision |
---|---|---|
Single | ±1.5e−45 to ±3.4e38 | 7 digits |
Double | ±5.0e−324 to ±1.7e308 | 15-16 digits |
Decimal | (-7.9 x 1028to 7.9 x 1028) / (100 to 28) | 28-29 digits |
Single and Double are Floating Binary Point Types to represent a number like this: 10001.10010110011. The binary number and the location of the binary point are both encoded within the value. Floating Binary Point Types are much faster to work with than decimals.
For values that are either imprecise or immense (such as with artifacts of nature or that which cannot be precisely measured), Float/Double Data Types are more appropriate. Scientific data is often represented in this form.
Decimal is a floating decimal point type to represent a number like this: 12345.65789. The number and the location of the decimal point are both encoded within the value – which keeps the Decimal as a Floating-Point Type instead of a Fixed-Point Type.
For non-repeating decimal fractions and whole numbers, the most common Data Type is Decimal. This is usually suitable concepts such as such as financial values or product ratings.
With these Data Types, the original values are not "decimally accurate" to start with, so it is not important for the expected results to maintain decimal accuracy.
Non-Integral Type
datatype | Purpose |
---|---|
String | Represents alphanumeric text as a series of Unicode characters. String Type is used for all text data manipulations. |
TimeSpan | Represents a time interval. |
DateTime | Represents an instant in time, typically expressed as a date and time of day. |
Boolean | Represents a Boolean (true or false) value. Used in logical evaluations like ‘Yes’ or ‘No’. |
FileData | Represents File in Decisions. Contains following members: Content (Byte Array), FileName (String), FileType (String), Length (Int32), Tag (Object). |
Changing Datatypes
System Validation
Datatypes with conversions that are not type-safe, for example, if a String is changed to a DateTime, the system will create a Shadow Table in the Database. If a Shadow Table is created, a System Validation will appear with more information.
Previously, Users were able to delete the Shadow Table from the System Validation message, but this is no longer supported in v9.5+. After receiving the notification, Users have the option to clear the validation by navigating to the error message and selecting Clear Validation. Actions can be made to edit the table but are not required.
Additionally, in previous versions, an assignment was sent to Users in the Administrators Group when a Shadow Table was created. As of the v9.4 release, an assignment will be sent but a System Validation will also populate.
Data Type Naming Rules
Data Types cannot have non-Latin characters and most special characters. Their names cannot begin with digits. Their names cannot be null.
Flow Input Data
There are limitations for the Input Data of a Flow.
Inputs can use any of the special characters listed above, but cannot use brackets [] . SETUP INPUT DATA will allow a name to be entered with those characters, but the input will not be selectable on steps. No error messages will appear.
Special Characters
The chart below shows which special characters can and cannot be used.
Character | Useable? |
---|---|
- | Yes |
_ | Yes |
! | No |
@ | No |
# | No |
$ | No |
% | No |
^ | No |
& | No |
* | No |
( | No |
) | No |
+ | No |
= | No |
{ | No |
} | No |
[ | No |
] | No |
, | No |
. | No |
< | No |
> | No |
? | No |
/ | No |
\ | No |
| | No |
Reserved Words
Certain words are used by SQL for functions and cannot be used as names of data types.
Word |
---|
add |
all |
alter |
and |
any |
as |
asc |
authorization |
backup |
begin |
between |
break |
browse |
bulk |
by |
cascade |
case |
check |
checkpoint |
close |
clustered |
coalesce |
collate |
column |
commit |
compute |
constraint |
contains |
containstable |
continue |
convert |
create |
cross |
current |
current_date |
current_time |
current_timestamp |
current_user |
cursor |
database |
dbcc |
deallocate |
declare |
default |
delete |
deny |
desc |
disk |
distinct |
distributed |
double |
drop |
dump |
else |
end |
errlvl |
escape |
except |
exec |
execute |
exists |
exit |
external |
fetch |
file |
fillfactor |
for |
foreign |
freetext |
freetexttable |
from |
full |
function |
goto |
grant |
group |
having |
holdlock |
identity |
identity_insert |
identitycol |
if |
in |
index |
inner |
insert |
intersect |
into |
is |
join |
key |
kill |
left |
like |
lineno |
load |
merge |
national |
nocheck |
nonclustered |
not |
null |
nullif |
of |
off |
offsets |
on |
open |
opendatasoucre |
openquery |
openrowset |
openexml |
option |
or |
order |
outer |
over |
percent |
pivot |
plan |
precision |
primary |
proc |
procedure |
public |
raiseerror |
read |
readtext |
reconfigure |
references |
replication |
restore |
restrict |
return |
revert |
revoke |
right |
rollback |
rowcount |
rowguidcol |
rule |
save |
schema |
securityaudit |
select |
semantickeyphrasetable |
semanticsimilaritydetailstable |
semanticssimilaritytable |
session_user |
set |
setuser |
shutdown |
some |
statistics |
system_user |
table |
tablesample |
textsize |
then |
to |
top |
tran |
transaction |
trigger |
truncate |
try_convert |
tsequal |
union |
unique |
unpivot |
update |
updatetext |
use |
user |
values |
varying |
view |
waitfor |
when |
where |
while |
with |
within group |
writetext |
Feature Changes
Description | Version | Release Date | Developer Task |
---|---|---|---|
A System Validation message will appear when a Datatype is changed, and a Shadow Table has been created. | 9.4 | November 2024 | [DT-041992] |
Shadow Table Validations can be cleared. | 9.5 | November 2024 | [DT-042840] |