I guess it sort of depends on what you are really trying to do. - EG: You mention alphabetize... What are you alphabetizing?
If it is the datasource or recipient list, you do that with a filter where you can use standard SQL "order by" syntax.
If it is some other data passed in a field of the database, then, yes, you could use javascript.
You create a javascript function in uplan by defining the type of data it will return, and then adding parameters to it that you will pass to it when you call it.
Double-click the new function and add the javascript code. You can reference the parameters you defined. And, you need to return a value of the type you specified.
To use the function, drag it into a variable or ADOR expression. replace the parameter names with static values, or with other variables or database fields.
I frequently work with comma or pipe separated lists that are passed to a function like this in one data field for each recipient. I use the split() function to create an array and manipulate the data that way.
The thing most "newbies" (as you put it) miss is that uPlan works with only one row of data at a time from the recipient data source.
IE, read a row, evaluate variables and ADORs, then dump the resolved ADOR values out. Then repeat until the end of the data.
What I mean is that when evaluating a variable or ADOR, uPlan (and the plan interpreter) is dealing only with one record of data. It does not know what the previous record had, or what the next record will be.