Workstation ID discussion - funny timing, Epicor Development is also reviewing this. Long boring history below.
The Workstation ID has no effect on the performance of a report. It is solely used to tie an instance of a report submission to the Client that submitted the report - or more accurately, to the Client that will “finalize” the report.
For many reports submitted it is the Client System Monitor that finalizes the report processing:
– Displaying the report when it was submitted for Preview
– Sending it to the Printer when printing to a Client Printer
– For Crystal reports, the Client is responsible for report generation
The System Monitor does that by polling the Server - sending the Workstation ID “value” as part of the criteria - to see if there is anything for that instance of the Client to do.
Changing the Workstation ID once an environment is live is a little problematic and should be planned out. Considerations:
– All currently submitted reports need to have completely finished
– All Scheduled Reports / Task need to be deleted and reschedule as the Workstation ID is one of the parameters submitted when scheduling.
– Do you have Auto-Print setups, Service Connect Flows, Custom code or REST jobs that have the Workstation ID parameter explicitly set?
– Best Practice - change Workstation ID during a maintenance window and restart AppServers after making the change
Boring History of the Workstation ID:
Back in the early days of Vantage 8 development, all developers worked against a common instance of the Vantage 8 server and when reports were being tested, the report output would routinely “pop up” on someone else’s Client. The reason for that was everyone logged in as “Manager” and the reports and tasks were tied to the User that submitted them. Since everyone was “Manager” and the Client System Monitor polled for the completed reports / tasks by User ID, there was no way to control which Client would pick up the Report for rendering (Crystal Reports), display (print preview), and printing (client side printers).
The decision was made (disclaimer: current Epicor tech leadership was not involved) to tie an instance of a report submission to the specific client that submitted the report by using the Machine Name of the Client System and not the User ID. That was later updated to include the Windows Instance number to prevent the original problem from occurring on Terminal Server / Citrix installations.
That identifier – Machine Name + Windows Instance – was referenced as the “WorkstationID” which was an unfortunate choice of naming as ERP has another different entity also referenced as Workstation ID. The reporting Workstation ID is added to the Task or Report when the job is submitted for processing and is stamped on the Task record when the server side of the Job is completed and the Client System Monitor can now fetch the Report / Data and continue the processing.
All well and good except for when the Report or Task is not submitted by the Epicor Client (sometimes directly but generally invoked via an auto-print rule) or when a scheduled or long running report is submitted on a Term Server. First problem resulted in no value stamped on the WorkstationID (and there was no Epicor Client to finalize report processing anyway) so the report would never be fully processed. The second problem would result in another iteration of the original problem – Term Server user on Instance 4 submits a report and then exits TS machine; New TS user comes on and is given Windows Instance 4; Report from original user on Instance 4 is now unexpectedly handled by the new user on Instance 4. Another variation on this would be that the report would never finalize or would finalize sometime in the future when the Instance Number was reused by an ERP Client.
To get around those problems, the “Workstation Method” option was added to the Company record to define how the Workstation ID value should be generated. Workstation Method defaults to Machine Name + Windows Instance but also offers other options including ERP User ID and Windows User ID. That was fully functional in ERP 10.0.
So why is this a current Development topic? In a word - Kinetic!
The default of Windows Computer Name + Windows Instance Number is Microsoft Client “centric” and is not going to play well in the Browser form world…