Discussion posts and replies are publicly visible
The datatype dropdown lists by default the most common datatypes, but if you start typing into the field (which has 'Search data types' displayed in it!) then you can find all other data types in your environment:
The Appian 'User' datatype is considered to be a primitive datatype.
is that not a CDT? its referring to ae/types/2009
No. A CDT is a "Custom Data Type" which is an assembly of primitive and/or other CDTs, constructed by an Appian Developer.
what is ae/types/2009? is it the namespace?
if i select the one which is highlighted the rule input is of user type... i need to pass only the methods/functions which return user types..or touser(some text value) if the user enters a text value
Yes. Datatypes in Appian are in effect XSD schemas, and require a namespace to disambiguate similarly named datatypes e.g. if I create a datatype called "Instrument" I might mean "Musical Instrument" whereas another developer might mean "Surgical Instrument". Namespacing makes provision for this kind of potential collison.
thank you
If you know for sure that the value you're going to pass is a User object, then use the correct rule input datatype. If you're not sure (for example, the data might be read from a database table which doesn't support the Appian User datatype and thus would have to be stored as Text) then you'd use Text as your rule input datatype. You'd then need to firstly check that the value passed is an actual User in your Appian environment before running any user-oriented functions on it. Note that fn!user() will automatically try to cast the value passed to it to type User so you don't need to run fn!touser() on the value if you already know it's a valid User.
thanks for the detailed explanation, finally got it
can you share a documentation page on how to write test cases?