I need to create an app that is heavily based on File Transfer mechanisms. For example, the system will need to perform a daily update (import) of customer details and also export data on weekly basis (files exchanges with other apps). All files exchanged have to be flat files. So far I have been thinking about using Flat files import and export modules. Importing flat files daily, though, would mean that I would have to map the tables imported to my domain model via microflows/scheduled events, and I am not sure about how "handy" this is. What mechanisms would you recommend? And also, how can I ensure that my files are exchanged in a secure manner, given that I deploy the app on-premise?
For the file exchange use the SFTP module. Then you can read an write files securely then to an external source.
And yes I would also use the flat file modules from Erwin. They work well with scheduled events.
And it is good practise to import the files to a shadow entity. Do not import these files right into your main entities. This way you have far more control and checks before you transfer your import data to your main entities.
Hope this helps a bit.
You can also use the RestServices and connect over HTTPs and use normal authentication. You can both send and receive files with this module. Depending on your stack this might be an easier solution than using SFTP (which is the more natural protocol to do this), since you do not need external servers and can keep everything in Mendix.