cancel
Showing results for 
Search instead for 
Did you mean: 

Process Extentions for Crystal Reports 2013

bob_zenker3
Explorer
0 Kudos

The administrator guide says there is an API document that explains how to use and develop processing extentions.  This is suppose to be a method to row restrict Crystal Reports documents.  Can anyone point me to the API document on how to build a process extension and then how to build a crystal report to leverage that extension (is it as simple as referencing a parameter)?  If anyone has any information on this works I would appreciate just general information too.

thanks,

Bob

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Bob,

Did you find any more information on this?

Thanks.

Adnan

DellSC
Active Contributor
0 Kudos

If you look at the Java SDK Developer Guide and click on "References" you'll find the "Processing Extension API Reference" documentation.  Unfortunately, it looks like the processing extension needs to be written in C++.  I've also discovered that there are a LOT of things that aren't documented.  I had a support case open on this, but closed it when we determined there was another way to do what we needed to do.  (And it appears that SAP support doesn't know what to do with questions about it - they assigned the case to someone who works with Webi Extensions and who thought the Crystal Processing Extensions had been deprecated - which it hasn't - and it was a exercise in futility trying to get help.)

-Dell

Message was edited by: Dell Stinnett-Christy

former_member183750
Active Contributor
0 Kudos

Dell is right in that this is rarely used - I have never used it, nor trained on it my self... However I was able to find the following:

Processing Extension API

Now, this is for BusinessObjects Enterprise XI Release 2... and having taken a supper fast look, I'm not sure how useful it is.

I'm not even sure if there is anything more current. E.g.; BI 4.1. But I will find out more tomorrow at work and update this Discussion.

- Ludek

Senior Support Engineer AGS Product Support, Global Support Center Canada

Follow us on Twitter

http://devlibrary.businessobjects.com/businessobjectsxir2/en/en/boe_sdk/boesdk_dotnet_doc/doc/boesdk...

Former Member
0 Kudos

Thanks Dell and Ludek!

I was able to also stumble upon the same documentation as you guys have shared and agree with your assessment that there is lack of various details.

At my current company, we are using a processing extension that has been carried over from a long time ago and it is a C++ based DLL. I should've been more elaborate with my question in the earlier post but what I am looking for is as as following: (We are going through an upgrade form 3.1 to 4.1)

  1. Is Crystal Reports Processing Extension API still supported in 4.1?
  2. Is there an alternative to this API with 4.1?


Based on the Dell's response (and Bob's original post), since this API is still part of the 4.1 SDK documentation I would tend to think it is still supported. Even further, I was able to look in 4.1 CMC and Extensions registration menus are still available. During our report conversion from 3.1 to 4.1 (using the Upgrade Manager Tool), our reports kept their references to the DLL. Only thing we need to do is to load the DLL in 4.1 environment using CMC which is fairly straight forward.

However, I am more interested in finding out if SAP has a recommendation on alternatives? In our case we are using this extension for following: (likely suitable for its own post)

When creating a recurring Schedule our Crystal Reports has a Time frame parameter. Values for this parameter are "Last 7 days, Last 10 day, Last 30 days, Last Quarter....". This parameter then gets mapped to two BW query parameters (start and end dates). Every week when a schedule executes the report, we intercept the request and check the Time frame parameter value, calculate the start and end dates and set those values in report. So the processing extension is to intercept the request and to set the report parameters based on the original parameter. Our current solution is working and it seems we can carry it over with us to 4.1.

Another requirement of Row Level Security has come up. Processing API documentation suggests Processing Extensions as one potential solution for this. So before investing time further into API, I wanted to make sure that the Processing Extension is the only way to plug in custom processing into a Crystal Reports.

Best regards,

Adnan

DellSC
Active Contributor
0 Kudos

Ludek,

That link to the BO XI documentation takes you to the exact same info as is in the Java SDK Developer Guides for 3.1 and 4.x - Other than the fact that the "will not be supported in future releases" language has been removed in the 4.1 doc, it appears that the documentation has not changed at all since XI.

-Dell

DellSC
Active Contributor
0 Kudos

Adnan,

There are ways to do the date calculations based on the parameter in the report and then filter based on those calculated dates so that you don't have to use the processing extension.  There are a number of posts here on the forum that will show you how to do that.

As for row level security, if the user ID that you need to filter on is the same as the user's BO user ID, you can use the "CurrentCEUserName" special field in your report to get that information without using a processing extension.  That's the route I ended up taking with my client when I ran into so many issues trying to implement the processing extension.

-Dell

ted_ueda
Employee
Employee
0 Kudos

The bits of code associated with Crystal Reports Processing Extensions haven't changed since then either.

It's been years since I've had a Crystal Report Processing Extension support case, and the challenges associated with supporting them (a limited API, issues with upgrade/migration, having report instances tied strongly with the ProcessExt dll so that they couldn't be viewed when the DLL failed, difficult migration when moving platform from Windows to Unix since the OS-dependent parts of the code had to be rewritten) usually lead customers to seek other solutions.

From what I recall, they were mostly used for poor-man's Publications (Processing Extensions predate Publications).  Specifically, to separate schedule-time query from view-time query, so that there'd be means to get multi-burst, in a fashion - schedule a report to contain data relevant for all then at view-time filter the data such that data relevant to the user viewing only is displayed.

But multi-burst and report personalizations are better done through the Publication framework.  It's much more maintainable in the long run.  In fact, I think the to-be-deprecated line in the docs was added when the go-forward was decided to be Publications, but at the time there were customers who relied of Processing Extensions for which they neither had the source code or means to upgrade to a newer build.

The main challenge that customers encountered with the old Processing Extensions that I recall was just getting the DLL loaded and initialized, and migrating OS-specific bits to a different platform.  Process Monitor, dependency walker, simplify the code, put debugging statements in the code that outputs to a file, massive rewrites, etc.

Sincerely,

Ted Ueda

Former Member
0 Kudos

Thanks Dell on your suggestions regarding calculated dates and row level security. These are good tips.

Former Member
0 Kudos

Ted,

Your comments on Publications are bang on and we do make use of them. Fortunately, we only have 1 extension to date. We have a Windows platform both for 3.1 and 4.1 and loading the DLL into 4.1 CMC is still available so we should be okay. We are likely not going to be building anymore extensions due to the similar reasons you mentioned in your post.

Best regards,

Adnan

Answers (0)