Epicor 2024.1.5 upgrade and New Crystal Runtime - big problem

Y’all are both cloud right?

Yes we’all are on the cloud:>)

That’s cool, I am about to do the upgrade on prem and am not looking forward to dealing with this issue. We have a very talented crystal developer so they help a ton with reports (switching to a different reporting tool/BI tool is on the roadmap) so for now we need to keep them

You talking about the reports, or the personnel? :open_mouth: :stuck_out_tongue_winking_eye:

4 Likes

Us to @utaylor. We were just discussing the test plan on how to test this with my Dev on-prem install. Looks like I’m going to wait for .8 and then test it so I don’t have to do it twice.

1 Like

We are on the CLOUD - Kinetic. We are in the IMPLEMENTATION PHASE. We were very excited to be able to Develop in Crystal - as all my programmers know this tool. However, we found that we now ( after the 2024.1 upgrade) we need to purchase the READ-ONLY Database to get access. Is this what everyone else is having to do to write Crystal Reports in Kinetic Cloud?

Epicor’s native implementation of Crystal does not access the database. Epicor’s Report Style/Report Definition output an XML file and the reports access their data via that XML file. If you follow this strategy, no database access is necessary. The same would hold true for custom BAQ Reports.

If I’m not mistaken though, none of the RPT files have been updated since Epicor 9 though. So even in 11.x you are running reports that were designed in 9.x.

1 Like

the reports are “them” in this sentence! haha

1 Like

I’m installing .6 patch and I’ll do .8 after if they don’t work.

1 Like

can somone clarify this cause I thought that wasn’t the case anymore.

Just tried to follow the install guide and took out the production SSRS services for an hour… :upside_down_face:

@MikeGross

5 Likes

Caveat: I have not done this in Kinetic 2024 yet, so it is possible this has recently changed. I did assist on a cloud uplift from 9 to 2022 I think it was at the time? We had to send all the report files to cloud services and have them put them in place, but after that it worked fine and there wasn’t even an option for a reporting db at the time. They have since moved to 2023 and 2024 already and I have not heard report of any issues. I really don’t think you need the extra db unless you feel the need to hit it directly.

1 Like

Chad man it was a nightmare. I need to re-read the dang thing to understand what they changed and why. I can’t figure it out.

RTFM x 2, at least. I barely got 2024.1.5 installed and found that a number of menu items did NOT convert to Kinetic, and simply do not work. Support said I have to find them and fix them manually… been working on that. I haven’t even tried running SSRS reports - now I have to check that too! How did you break Production??

(I’m on a single/consolidated DEV server - so my Crystal/SSRS might just work.)

2 Likes

I have no clue honestly. First time following an upgrade guide and having it go poorly. I’ve done it so many times.

It kept saying it couldn’t access a directory for the reports which made no sense.

1 Like

I was able to get both old and new (2024) instances of Kinetic working with the new Crystal Engine by adding the following in the epicor.exe.config file (or epicor64.exe.config). It is inconvenient as it has to be done on each client, but if it helps someone in testing I am happy to share it.

Place it inside the
section

<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.CrystalReports.Engine" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportSource" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.Shared" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.Web" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.Windows.Forms" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.ClientDoc" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.CommonControls" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.CommonObjectModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.Controllers" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.CubeDefModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.DataDefModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.DataSetConversion" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.ObjectFactory" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.Prompting" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.ReportDefModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.XmlSerialize" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
1 Like

Sorry forgot to format my XML. Hope this posts ok- paste it in the runtime section of the config files

<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.CrystalReports.Engine" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportSource" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.Shared" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.Web" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.Windows.Forms" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.ClientDoc" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.CommonControls" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.CommonObjectModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.Controllers" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.CubeDefModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.DataDefModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.DataSetConversion" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.ObjectFactory" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.Prompting" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.ReportDefModel" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="CrystalDecisions.ReportAppServer.XmlSerialize" publicKeyToken="692fbea5521e1304" culture="neutral"/>
				<bindingRedirect oldVersion="13.0.0.0-13.0.3000.0" newVersion="13.0.4000.0"/>
			</dependentAssembly>

Carl - this did not work for me. Are you on the cloud? I placed it in both the LIVE and Pilot Epicor.exe.config files and tested out the current version of Crystal and the new version of Crystal and it did not work. Was there something else I am supposed to do? Please let me know. Otherwise I will just take care of the conversion this weekend.

Thanks! Appreciate you sharing and trying to help us.

Hi Jill,
We are on-premise. My local clients in some cases have the Crystal Decisions DLLs copied into the client directories- not sure why some do and some don’t unless the newer client does that, At some point when I was trying to get this to work, I copied the newer versions of all the dll files that begin with CrystalDecisions into my client folder for the older version (The new version of the client seems to split the client folders now???). I am not sure if that is needed??

Here’s a post from when I was trying to figure this question out a couple years ago:
https://www.epiusers.help/t/crystal-reports-in-cloud-kinetic-saas/86547

Basically it didn’t work out of the box but there were one-offs happening for certain customers in certain circumstances. Perhaps now Epicor has formalized the feature as part of the Read-only database add-on package, but I don’t see a technical reason for how that allows Crystal to work in the Production environment…

Either way I would heavily caution against using Crystal in a brand new implementation.

2 Likes