Best way to set up printers for printing from Epicor 11 Cloud

Hi all,
We are having issues with having our travelers and Pack ID’s consistently print automatically via BPM from our Epicor 11 Cloud installation. Just wondering what others are doing with their printing of things from their cloud databases. Would sure appreciate some input or suggestions.

thanks so much!

Jill Schoedel

1 Like

Hey Jill -

I see you have a case open with Support and I will get that updated with this information.

Epicor Cloud printing is handled by Client Side printers serviced by an active connection of either the Browser Client or the Smart Client. The standard configuration also requires the User that submits the Print Job to be the User logged in on the Epicor Client.

While this works well for manually generated print jobs, there are issues with Scheduled jobs or Auto-print jobs as there is no guarantee that the user on the Scheduled or Auto-print request is actively logged in with an Epicor Client when the report is ready for printing. On-Prem customers typically setup those type of print jobs to be printed to Server managed printers thus avoiding the need for an active client connection.

Epicor Cloud customers now have a similar option (available with the last Update to 2021.2) where you can install the Edge Agent as a Network Print Service and you can define Server style printers to be serviced by the Edge Agent.

Steps to enable:

  • Submit a case for Cloud Operations to enable Edge Agent Network printing.
  • Once that has been setup, Download the latest Edge Agent and install it as a Network Print Service on a local Server or “always on” workstation that has internet connectivity. Part of that setup will be to link the Edge Agent with your instance of Epicor in the Cloud.
  • Go to Printer Maintenance in Epicor, select your Edge Agent (you can have multiple Edge Agent Network installations - useful if you have multiple physical sites), and you will get a list of Printers that the Edge Agent can access. Select one of the printers.
  • Printer Maintenance: Rinse, Repeat for as many Edge Agent printers as you want to use from Epicor.

Once you have the printers defined, you can now select them for Manual, Scheduled, or Auto-print reports.

7 Likes

Hello @Rich,

I am assuming you are with Epicor technical support from your precise comment.

I am having issues getting Epicor to enable Edge Agent Network Printing on my SaaS tenant, in line with KB0120336 (which I guess is now pulled from circulation).

I have a case CS0003054350 opened, can you have a look please?

Regards,
Justice.

Have you gotten server-based network edge printing working, yet? I have been working with epicor since april to get it going in my environment and we are 8 months later with still no joy.

We had an error in our BPM that does the auto printing for the forms we needed. After that, things printed just fine. We did not have to setup the Edge Agent Network Printing.

Regards,

Jill Schoedel

Thanks, Jill. Are you using Kinetic Saas?

We are using Kinetic SaaS and have not gotten network-based edge printing working yet. We have the edge server up, and Epicor talks to it, but the list of printers is empty. Per Epicor’s response on our case, this is a known issue with the current version of Epicor/Edge Agent. I’m hoping the update hitting Pilot next week resolves this issue.

Thanks, Gabriel. Sounds like we have the same history and the same “the sixth time has got to be the charm” hopes for epicor delivery.

From the Epicor Development side of things, there are no known issues with the Edge Agent running as a network print service. Does anyone have a recent EpicCare case reference we could review?

Something for you to review: When you install the Edge Agent as a network print service, it runs as a Windows Service. The user a Windows Service runs under can be a Local System Account or a defined User Account - requires User Account and Password.

Make sure you are running the Edge Agent Service under a User Account that has access / permissions to the printers you want to use. Local System Accounts typically have nearly full permissions for local machine resources and nearly no permissions to network based resources. If the Printer Definition UI in Kinetic is not showing any printers available from the Edge Agent, it is likely the Edge Agent is running under a User Account without permissions necessary to access printers.

4 Likes

Thanks, Rich. I’ve had the following open since September

CS0003284586 - Unable to get the updated Edge Printing for Network Servers Running in 2022.2

thank you @Rich I will look into this when I am back on site. I like this option especially for label printers

We use a BPM that has an Auto Print function in it that prints to the Client Printer setup on one server in our network. Everything we print out of Epicor Cloud or Kinetic SaaS uses a Client Printer to print out our forms. We cannot use our Network printers because we could not get the Edge Printing to work either. Does that help anyone out??

Thanks for the workaround, Jill. I’ve got a few more months to get the solution to work as it has been advertised to work before I will be forced into workarounds. I get the feeling that Epicor doesn’t understand that the solution that was promised to work beginning in April still does not.

Great news. Network Edge printing is now working. After uninstalling the prior install, I deleted the C:\Program Files\Epicor\EdgeAgent directory. It appeared to only contain log files, but I killed it as epicor support requested. I rebooted and then re-installed. I chose to use a slightly different name for the agent than I had used in the past, thinking that there might still be some history associated with the old naming convention. Also, last night, there was an upgrade to Kinetic 2022.2.8 which may have fixed something. I don’t know which action fixed the issue, but I now have network edge printing running.

Disappointment. It worked until it didn’t. Similar to my experience in September, the solution worked for me yesterday after a re-install. I tried to use the same setup today, but print jobs no longer made their way to my network edge printers. I uninstalled rebooted and reinstalled. I got one of the two network printers re-installed using a new print service name, but searching to add the second printer gave me an error of “Edge printing hub did not respond in allowed time”. The first printer is presently still letting me print to it, but I can’t add anything. My guess is if I try to print again to that first printer in a few hours, I will have lost it again. I excitedly closed my ticket from september… I will be opening a new one with support.

what was in edge agent logs when it stopped printing?

After the initial installation (where it worked for an hour or so), when I attempt to initiate anything from the public cloud server to my local server, there is only a timeout from kinetic with nothing appearing in my local server log. I am able to print a sample PDF on my local server, but not the sample image.

System.Net.WebSockets.WebSocketException (0x80004005): The remote party closed the WebSocket connection without completing the close handshake.
—> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host…
—> System.Net.Sockets.SocketException (10054): An existing connection was forcibly closed by the remote host.
— End of inner exception stack trace —
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)
at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](TIOAdapter adapter)
at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](TIOAdapter adapter, Memory1 buffer) at System.Net.Http.HttpConnection.ReadBufferedAsyncCore(Memory1 destination)
at System.Net.Http.HttpConnection.RawConnectionStream.ReadAsync(Memory1 buffer, CancellationToken cancellationToken) at System.Net.WebSockets.ManagedWebSocket.EnsureBufferContainsAsync(Int32 minimumRequiredBytes, CancellationToken cancellationToken, Boolean throwOnPrematureClosure) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder1.StateMachineBox1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) at System.Net.WebSockets.ManagedWebSocket.ReceiveAsyncPrivate[TResult](Memory1 payloadBuffer, CancellationToken cancellationToken)
at System.Net.WebSockets.ManagedWebSocket.ReceiveAsyncPrivate[TResult](Memory1 payloadBuffer, CancellationToken cancellationToken) at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at Microsoft.AspNetCore.Http.Connections.Client.Internal.WebSocketsTransport.StartReceiving(WebSocket socket)
at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result)
at System.IO.Pipelines.Pipe.GetReadAsyncResult()
at Microsoft.AspNetCore.SignalR.Client.HubConnection.ReceiveLoop(ConnectionState connectionState)
info: 12/28/2022 14:47:05 +00:00 Epicor.EdgeMessageHubClient.MessageHubClient [0] Connection retry #1 of 7 to the server Pilot
info: 12/28/2022 14:47:07 +00:00 Epicor.EdgeMessageHubClient.MessageHubClient [0] Connection to the server Pilot is restored.
info: 12/28/2022 15:23:20 +00:00 Microsoft.Hosting.Lifetime [0] Application is shutting down…
info: 12/28/2022 15:23:20 +00:00 EdgeApp.AgencyManager [0] Shutting down the Agency…
info: 12/28/2022 15:23:20 +00:00 EdgeApp.AgencyManager [0] Terminating the EpicorMessageHub Informant…
info: 12/28/2022 15:23:20 +00:00 Edge.Informants.EpicorMessageHub.EpicorMessageHubInformant [0] Termination signal received; closing Hub connections
info: 12/28/2022 15:23:20 +00:00 Epicor.EdgeMessageHubClient.MessageHubClient [0] Processing for the server Pilot is terminated
info: 12/28/2022 15:23:20 +00:00 EdgeApp.AgencyManager [0] Terminating the Edge Printing Directive…
info: 12/28/2022 15:23:20 +00:00 Edge.Directives.AgentPrinting.PrintingDirective [0] Received signal to terminate the Edge Printing directive.
info: 12/28/2022 15:23:20 +00:00 Edge.Directives.AgentPrinting.PrintingDirective [0] Instructing the PdfPrint Core operative to terminate…
info: 12/28/2022 15:23:20 +00:00 Edge.Directives.AgentPrinting.PrintingDirective [0] Edge Printing terminated.
info: 12/28/2022 15:23:53 +00:00 EdgeApp.AgencyManager [0] EdgeApp v1.2.383.0 (1.2.383.0-aadb853aaf3ee73a73d934a91339880c50457538) © 2021 Epicor Software Corporation
info: 12/28/2022 15:23:53 +00:00 EdgeApp.AgencyManager [0] Starting 1 Agency Directives.
info: 12/28/2022 15:23:53 +00:00 EdgeApp.AgencyManager [0] Creating the AgencyLib.IDirective ‘Printing’
info: 12/28/2022 15:23:53 +00:00 Edge.Directives.AgentPrinting.PrintingDirective [0] Initializing the Edge Printing directive.
info: 12/28/2022 15:23:53 +00:00 Edge.Directives.AgentPrinting.PrintingDirective [0] Starting the PdfPrint Core operative…
info: 12/28/2022 15:23:53 +00:00 Edge.Directives.AgentPrinting.PdfPrintingCoreOperative [0] Starting PdfPrint Core…
info: 12/28/2022 15:23:53 +00:00 Edge.Directives.AgentPrinting.QzTrayOperative [0] Starting QZ Tray…
info: 12/28/2022 15:23:53 +00:00 Edge.Directives.AgentPrinting.PrintingDirective [0] Edge Printing directive started.
info: 12/28/2022 15:23:53 +00:00 EdgeApp.AgencyManager [0] Starting 1 Agency Informants.
info: 12/28/2022 15:23:53 +00:00 EdgeApp.AgencyManager [0] Creating the AgencyLib.IInformant ‘EpicorMessageHub’
info: 12/28/2022 15:23:53 +00:00 Edge.Informants.EpicorMessageHub.EpicorMessageHubInformant [0] Creating MessageHubClient connection for Epicor-Utility-EdgeAgentPilot from the current configuration
info: 12/28/2022 15:23:53 +00:00 Edge.Informants.EpicorMessageHub.EpicorMessageHubInformant [0] Starting connection to Epicor MessageHub at https://centralusdtpilot39.epicorsaas.com/SaaS892Pilot.
info: 12/28/2022 15:23:54 +00:00 Epicor.EdgeMessageHubClient.MessageHubClient [0] Use NET.Core SignalR: True
info: 12/28/2022 15:23:55 +00:00 Epicor.EdgeMessageHubClient.MessageHubClient [0] Connection mrlU-N6i1lUQ0-MP3rbo6w8932887a1 is created for the server Pilot
info: 12/28/2022 15:23:55 +00:00 Edge.Informants.EpicorMessageHub.EpicorMessageHubInformant [0] Message Edge-AgentResponse received from message hub Pilot
info: 12/28/2022 15:23:55 +00:00 Edge.Informants.EpicorMessageHub.EpicorMessageHubInformant [0] Response received from message hub Pilot: You have subscribed to the hub.
info: 12/28/2022 15:23:56 +00:00 EdgeApp.SSL.QzCertificateLoader [0] Load certificate ep-printtray, valid until 03/18/2025 16:12:16
info: 12/28/2022 15:23:56 +00:00 Microsoft.Hosting.Lifetime [ListeningOnAddress] Now listening on: https://localhost:6071
info: 12/28/2022 15:23:56 +00:00 Microsoft.Hosting.Lifetime [0] Application started. Hosting environment: Production; Content root path: C:\Program Files\Epicor\EdgeAgent\edgeapp
info: 12/28/2022 15:31:57 +00:00 Edge.Directives.AgentPrinting.QzTrayOperative [0] Creating QZ-Tray client using location: wss://localhost:8181
info: 12/28/2022 15:32:08 +00:00 System.Net.Http.HttpClient.Promiscuous.LogicalHandler [RequestP Start processing HTTP request GET https://localhost:6071/assets/samples/pdf_sample.pdf
info: 12/28/2022 15:32:08 +00:00 System.Net.Http.HttpClient.Promiscuous.ClientHandler [RequestSt Sending HTTP request GET https://localhost:6071/assets/samples/pdf_sample.pdf
info: 12/28/2022 15:32:08 +00:00 System.Net.Http.HttpClient.Promiscuous.ClientHandler [RequestEn Received HTTP response headers after 81.7303ms - 200
info: 12/28/2022 15:32:08 +00:00 System.Net.Http.HttpClient.Promiscuous.LogicalHandler [RequestP End processing HTTP request after 96.3236ms - 200
info: 12/28/2022 15:32:25 +00:00 System.Net.Http.HttpClient.Promiscuous.LogicalHandler [RequestP Start processing HTTP request GET https://localhost:6071/assets/samples/printingimage.png
info: 12/28/2022 15:32:25 +00:00 System.Net.Http.HttpClient.Promiscuous.ClientHandler [RequestSt Sending HTTP request GET https://localhost:6071/assets/samples/printingimage.png
info: 12/28/2022 15:32:25 +00:00 System.Net.Http.HttpClient.Promiscuous.ClientHandler [RequestEn Received HTTP response headers after 3.4096ms - 200
info: 12/28/2022 15:32:25 +00:00 System.Net.Http.HttpClient.Promiscuous.LogicalHandler [RequestP End processing HTTP request after 3.6924ms - 200
fail: 12/28/2022 15:32:25 +00:00 Edge.Directives.AgentPrinting.PdfPrintingCoreOperative [0] An error occurred trying to print on printer: ERP Printer Direct.
System.NullReferenceException: Object reference not set to an instance of an object.
at PdfPrintingNet.PdfPrint.c6e27125e412036c9e584c2e46cb51f7a(Byte[] cdbbe4698d85f704fb0f22ac792e56f47, String c4f15c193045594e277ed09e85e293fa6, String cc035c63003d26e77cf79bef83c7e504f, String cceb9b617f6e8532922232e6cdc63cb66, PrinterSettings c4a5d3cfb3105d0d72441638a2332f4dc, PdfWatermark cd6cc9058a2d92015b56d02d2020b2023)
at PdfPrintingNet.PdfPrint.Print(Byte[] pdfArray, String password, String printerJobName)
at Edge.Directives.AgentPrinting.PdfPrintingCoreOperative.Print(PrintJobData printJobData) in C:\agent_work\2\s\src\directives\Printing\Operatives\PdfPrintingCore\PdfPrintingCoreOperative.cs:line 191

I worked with epicor further on the solution. We scheduled recurring print jobs of varying frequencies. While the solution hung and I needed to restart network edge services often at low frequency (eg once and hour), the solution stayed up much longer when I printed every 10 minutes. A few weeks ago, the problem went away completely. We made no additional changes on our end and epicor says that they made no additional changes on theirs. I now have network edge printing working with two environments.

1 Like

technically, there was edge agent update recently, so there was a change.