Code 128 barcodes in SSRS reports for cloud customers?

There are a long list of previous topics related to Code 128 barcodes but they all end in someone installing a custom font or program on their SSRS server. Cloud customers cannot do that.

I created a ticket with Epicor support and in true fashion they just say “no” and attempt to close the ticket without offering any alternative. They even have a KB article that says they won’t install custom fonts for you.

I have the encoding to drop in the rdl code section to generate the text. Now I just need a way to display the barcode itself. The font is the easiest route.

Are there any cloud customers who have used Code 128 barcodes in their SSRS reports?

Frankly I don’t understand why @Rich could you explain why this is not done out of the box?

5 Likes

To say I’ve been given the run around on this would be a drastic understatement. At insights, I was told by an instructor that all I had to do was install a font locally. Use it and It’ll work. (Code 128 Font | dafont.com) No one wants to give me a straight answer. Even our project manager for the upgrade said he couldn’t get a straight answer from anyone. They have told me many times that they have this installed server side. However, it will not work. Ended up getting told by the same guy after tracking him down that it will take 12 hours and maybe work. I created code to determine check bits which uses this font. I only get plain text as an output. I would recommend dropping it. They eventually will figure out that it is needed for certain industries and add it. For the time being, we are using this… to remove any special characters. This is hardly a functional work around but it’s what I have. I hope you have better luck than I did! =System.Text.RegularExpressions.Regex.Replace(Fields!YourField.Value, “[^a-zA-Z0-9]”, “”) Along with Dataworks Bar39.

Don, the straight answer is that the font needs to be installed server side because that is where the SSRS report is rendered to PDF. The users also need the same font installed to view that PDF.

The problem is the server side. Epicor Cloud team will not install it. Here is official response I got:

The Notes section of the previously referenced knowledge article includes two approaches to use a font when it isn’t available within the Kinetic Cloud SSRS infrastructure. I’ve pasted that section below for your review:

NOTE 1: Our Reporting Services Cloud infrastructure allows outbound connections on port 443 so any online service that provides font/image generation would be accessible if one of the available options above cannot meet a current need.

NOTE 2: Seagull Scientific’s Bartender reports have built-in barcode generation ability which can be used by Epicor Kinetic Cloud customers.

So what they are saying is that instead of installing a free font file for you, the only way to get code 128 barcodes is to pay a 3rd party a subscription fee. This is absolutely unacceptable as this is a simple problem that was solved long ago. We don’t need to pay monthly or yearly to render a barcode but this is the Epicor way.

1 Like

I totally agree. However, they just straight up lied to me and said it was installed server side. Which lead me to go down the rabbit hole of setting everything up, only to find out they had never done it. This is the response I received… I had a prior ticket to this one as well which received similar results.

Code 128 is available for use on Epicor-hosted servers. However, unlike the DWBar39 font, Code 128 is not simply a character replacement for the ASCII character. Code 128 requires calculations to determine check bits. Any assistance with this font is a billable service that can be purchased from Epicor’s Professional Services group, per Knowledge Article KB0071926 - Submitting a Professional Services Request on the EpicCare Portal (Video).

State : Suggested Resolution

Product Version : 2024.1.8

I would like to point out that this is only controlling what is rendered in the barcode. So if you go to scan the resultant barcode it won’t match the ID, which had invalid characters in it.

The only way to make sure Code39 will work is to constrain all ID fields you want to be scannable to the Code39 set of characters. I think this would involve a BPM on all input fields to stop users from making unscannable fields.

This is a perfect example of why I want Code 128.

1 Like

Yes, It does affect everything but without code 128 this was my next best option.

You don’t need to pay them for code that has been open source for decades. You can use mine: Barcode.Encoding/Encoding/Code128.vb at master · A9G-Data-Droid/Barcode.Encoding · GitHub

You would drop that in the <code> section of each SSRS report and then use that to generate the text that goes into the barcode font field.

1 Like

I already made the code. They just told me it needed to be “validated” for it to function. Then once I got to that point, no one would check it. Also, thank you, that’s awesome.

I have used the IDAutomation SSRS Code128 Generator for a number of years.
it uses a standard SQL Server font and VB Code to create the Barcodes - so everything is self contained in the RDL file. No need to ask Epicor to maintain or install a font.

If you are a coder - you may want to do your own - however for what i think is a reasonable price the ID Automation solution is my first go to .

Here is a link: SSRS Code 128 & GS1-128 Barcode Generator for Reporting Services (idautomation.com)

2 Likes

Thanks Dave, that’s a cool solution using ASCII characters in a monospace font. It’s either that or generate an image and embed that directly in the report. The image route might require libraries not available to the code block in the report. So using characters is more stable. I will have to do some thinking and testing on the matter.

It just seems silly to go to these great lengths for something that could be simple.

Hell GIF by Steve Harvey TV

1 Like

Just because you can doesn’t mean you should… Code it I mean, not wanting to talk down your solution @DaveOlender it’s a creative idea to work around a problem…

I am still a big advocate of just fixing it correctly, I don’t understand why it is not installed by default Is there some licencing or security issue?

1 Like

I know in the past the cloud team would refuse to install barcode packages even if you had paid for them or they were free. The logic was putting them on the server would make them available to other cloud customers which could violate a licensing agreement and they didn’t have the resources to check it. But now that everything is containerized I can’t imagine what the problem is. Maybe somebody needs to write an idea about this. Seems like a great feature for the promised cloud customer portal (install your own fonts via the portal).

3 Likes

nice idea

I did make an idea for this: https://epicor.ideas.aha.io/ideas/KIN-I-5375

Thank you for your support.

3 Likes

As has already been discussed, Code 128 Barcodes are not simple character substitutions. They can be rendered via code (more complex) or via code and an installed font (preferred).

The Font for Code 128 is installed on the Cloud SSRS Servers but it appears we are missing the library to do the necessary calculations to create a properly formed barcode. I will raise this for resolution with appropriate documentation on usage.

The PDFs that are generated by SSRS include the Fonts used in the document so it should not be necessary to have the Fonts installed on the machine displaying or printing the PDF. Embedding the Fonts in the PDF makes the document portable, searchable, and editable but it comes with an increased document size - that ties to a recent post on the size of the PDFs generated by Kinetic.

The Kinetic SSRS Servers are part of the shared infrastructure (not containerized) so installation of Fonts is subject to Cloud Licensing and associated costs / restrictions.

6 Likes

Thanks for the information @Rich, much appreciated.

I had been pondering this from an on prem perspective, and came to the conclusion that the installer can’t know where to put the files as SSRS may not have been installed at that point.

Perhaps it would be possible to add an option on the SSRS tab in the config tool to provide the option to install the files at that point?

Not sure if this is practical or how it could be used but could the files be deployed to a table in the common database?

This is new information that contradicts the KB: EpicCare Login - EpicCare

and what support told me in my open ticket. If the font already exists, then support needs to know that, and it should be documented in the related KB.

Are you sure the font is installed? And which one specifically?

1 Like

I will have a look at the Support KB and have it updated. The list of Fonts that I have as installed on the SSRS Servers is about a year old so I will validate that also.

The Font is Code128.ttf but remember that the Code 128 Barcodes have to be calculated so having the Font available is only part of the solution.

3 Likes