RE: Document number not passed to expense report in Web Apps
I would check the web app and service logs if you haven't already; my best guess is that you are hitting some error that is not properly setting the ExpenseHeader.DocumentNumber field. When you click the report button, it runs a javascript function named DSLReportAction, which in turn calls LoadSSRSReport. The document number parameter value is retrieved from the value in the Document input of the expense header section.
The function that actually calls the report is:
LoadSSRSReport('/Project/Expense Report', { DocumentNumber: document.getElementById("ExpenseHeader.DocNumber").value, CallBack: '@Url.Action("ExpenseGrid", "ProjectExpense", New With {.CalledBy = "Report"})', Title: 'Expense Report' })
If the expense header docnbr is not properly set, you would encounter the error you mention about missing param. The next time this happens, click F12 in your browser and see if you have a console error (it's possible, but as you navigate away for the report, the error may be cleared) and I would also run the code they use to grab the docnbr in the console to see if the proper value is returned: document.getElementById("ExpenseHeader.DocNumber").value
If you have a console error, you are hitting some other (likely Javascript) issue that is not causing the screen to function as intended after the error.
You could also alter the DSLReportAction function to check for valid docnbr before continuing to the LoadSSRSReport and either return or alert the user rather than continuing to the SSRS report to get the error. this would then allow you to check the console before navigating away to the Report to try and get to the underlying issue.
docnbr = document.getElementById("ExpenseHeader.DocNumber").value
if (!docnbr || docnbr.length < 10) {alert ('Looks like we do not have a valid Document Number to run the report. Please contact ? and do not reload the page.' ); return}
Sorry I couldn't give you a more concrete answer. Good luck!
Marc