If you have tried to batch print sales order picking lists in DAX2012R2, you might have encountered an issue where the picking lists would generate, but the printing would not not generate.
The test to ensure the batch server is setup correctly to be able to print, is to reprint an already created picking list on the batch server, if this prints fine then the setup is good, and the problem is the possible the same as I have encountered.
After a lot of batch debugging I found the problem. The system at the end of the batch job loads the records to be printed based on the ParmId and the createddatetime of the record. But the problem is on the WMSPickingRoute table there createddatetime field has not been activated as standard, which means it will never select the record to be printed as part of the picking list generation processes.
Since the FormLetter classes are used by a number of different business process I also checked the other tables that might be affected. I found this also affects the printing for Project Invoices (ProjInvoiceJour), Vendor packing slips (VendPackingSlipJour), Vendor Purchase Orders (VendPurchOrderJour), Vendor receipts List (VendReceiptsListJour) as well as the Warehouse picking lists (WMSPickingRoute)
All you need to do to make the printing work as part of the batch job is enable the CreatedDateTime field on the appropriate table listed above.
The tables that need the createddatetime field enabled to allow printing during the salesformletter batch process are found under the map->FormLetterJournal, under the mappings. If the journal table you are interested in is present in this mapping, and the table does not have createddatetime enabled then the report will not print as part of the batch job.
This problem has been confirmed by myself in CU7, I have not checked CU8 or DAX2012R3 at this time, but if you encounter the same issue then check out these tables.