Solved & Fixed: UFL ‘u2lgl’ that implements this function is missing

Print Friendly

I recently ran in to an error stating “UFL ‘u2lgl’ that implements this function is missing.” This happened when using a particular program called CYMA, which generates reports using Crystal Reports and then brings them up for a print preview. I found this not too helpful article (note: the article I link to has been updated to contain the solution I post below {with more details specific to the current version}, and they have credited me with helping to find the correct fix), which suggested that you could fix CYMA by copying and pasting the missing file into the folder. The file was already there, but I tried it anyway. Still nothing changed. From there, I found one other article saying that it wasn’t the file he thought it was, the poster, named Andy Baker, had to re-register his User Function Library – but gave no advice for users how he did that. No other advice anywhere on the internet gave a clear answer as to what was causing this issue.

When Andy refers to re-registering the User Function Library, or UFL, he basically means that he had to re-register everything. What you need to do first is to figure out what folder the file is in. For some examples, you could find the DLL in a folder such as:

  • C:\Program Files (x86)\Business Objects\Common3.5\bin\
  • C:\Program Files\Business Objects\Common3.5\bin\
  • C:\Program Files (x86)\Common Files\Crystal Decisions2.5\bin\
  • C:\Program Files\Common Files\Crystal Decisions2.5\bin\

The computers I had this issue on were the latter two folders. So, I’ll use the 4th directory in my example, but remember, you may need to change the second line of the command below to match wherever your files are. Here’s what I did:

  1. Ensure CYMA (or whatever program is giving you the error) is closed
  2. Click the Start Menu in the lower left
  3. Type CMD
  4. Right Click CMD.exe and click Run as Administrator
  5. type the following:

    cd
    cd "C:\Program Files\Common Files\Crystal Decisions2.5\bin\"
    for %1 in (*dll) do regsvr32 %1 /s
    for %1 in (*ocx) do regsvr32 %1 /s
    exit
  6. Re-open your application and try again!

For me, this resolved all of my problems. No reboot necessary. The application opened, and when we ran the reports, they came up as we expected them to! The issue appears to stem from installing Office 2013, which I believe installs a newer .net 4 Framework, which de-registered these files. Leave a comment, let us know if this helped!

3 thoughts on “Solved & Fixed: UFL ‘u2lgl’ that implements this function is missing

  1. Hi there!  I’m the original author of the ACCTivate! Help article and I really appreciate your solution.
    Our original article may have been from a scenario where one (or more) of the user function files (e.g., U2LGL.dll) were missing from the bin folders on some workstations.  However, I definitely ran into your scenario today and wanted to commend you for the solution.  This was on a clean VM with just CYMA and ACCTivate!.  Microsoft Office was not installed.
    I noticed that the 3.5bin folder was in the PATH, but not the 2.5bin.  ACCTivate! installs the Crystal XI R2 (11.5) run-time using the installer from Business Objects (prior to SAP acquisition).  I suspect the problem may be related to installing and registering some of the new run-time components in the 3.5 folder.  CYMA may be using some of those components, rather than the legacy 2.5 (Crystal 10?) components it was designed for?
    Regardless, I like your solution of simply re-registering the DLL files in their original location (i.e., 2.5bin).  I’m a little worried this may interfere with other applications using later versions of Crystal Reports, but we’ll keep an eye on it.  I will post a link to this page in our article, thanks again!

  2. Brian Sweat Hi, Brian!  I was just thinking on my toes and helping out one of my clients, and wanted to share what worked for me.  The ACCTivate article seemed just a bit too general for us, but I imagine your support articles NEED to be!
    I also assume that, as your developers have had more time to work with Office 2013, many of these issues have probably been resolved in newer releases.  But I’m glad I could help in any way, and that your article could put a more accurate and professional polish on what I had found.  Just glad to be part of the solution, and not part of the problem! 🙂
    Thanks for the feedback!

  3. Brian Sweat Hi, Brian!  I was just thinking on my toes and helping out one of my clients, and wanted to share what worked for me.  The ACCTivate article seemed just a bit too general for us, but I imagine your support articles NEED to be!
    I also assume that, as your developers have had more time to work with Office 2013, many of these issues have probably been resolved in newer releases.  But I’m glad I could help in any way, and that your article could put a more accurate and professional polish on what I had found.  Just glad to be part of the solution, and not part of the problem! 🙂
    Thanks for the feedback!

Leave a Reply