A good set of questions
Yes, there is nothing wrong in passing the entire queueitem through the transactionItem to the process state. And in the process state, we can get the data we want into variables. That is an exactly fair question. I believe the idea here is to teach us, how to pass different types of data through the transactionitem. So if its a datatable, passing a datarow as transactionitem. if its a queue, using the queueitem, and if the source is a queue, using a different type of a data type to pass one value from that queue except the entire queueitem. This approach is there because there are many ways in handling these stuff.
So in the assignment, I think we were asked to change it to string because for processing, it only needs the WIID, but not the other values. So in that case, why pass unwanted data? It is a good reason to change it to string and pass only the value that is required
But still, there is nothing wrong in passing the entire queueitem as well. Its just another way of doing it… So you can try both approaches and learn how it works
For these, the best data type would be DataTable. Writing to excel/CSV and reading to excel/CSV needs a datatable variable. Datatable variables are specially important when it comes to inserting or selecting data from databases like access. The reason is, it is much easier to handle the data because the table structure is also similar to a datatable
Is my explanation enough bro?
Let me know if anything is not clear…