IFS Crystal Report Error - Pdf can not be retrieve

  • 299 Views
  • Last Post 08 April 2020
parvaz posted this 04 November 2019

Ifs.Fnd.FndSystemException: Explorer: An Unhandled Exception has occurred ---> Ifs.Fnd.FndSystemException: Unexpected error while calling server method PrintReport/ReportFormatRequest ---> Ifs.Fnd.FndServerFaultException: Error in retrieving the saved PDF report from Crystal Web Service

 No actions were executed.

   at Ifs.Fnd.AccessProvider.FndConnection.ParseErrorHeader(FndBuffer buffer, FndManualDecisionCollection decisions)

   at Ifs.Fnd.AccessProvider.FndConnection.UnMarshalResponseHeader(Stream responseStream, FndManualDecisionCollection decisions)

   at Ifs.Fnd.AccessProvider.FndConnection.HandleHttpSuccessResult(HttpWebResponse result, FndManualDecisionCollection decisions, String operation, FndBodyType responseBodyType, Object responseBody)

   at Ifs.Fnd.AccessProvider.FndConnection.InvokeInternal(Object requestBody, Object responseBody, String intface, String operation, FndRequestContext requestContext, FndManualDecisionCollection decisions, Boolean forcedSync)

   --- End of inner exception stack trace ---

   at Ifs.Fnd.AccessProvider.FndConnection.InvokeInternal(Object requestBody, Object responseBody, String intface, String operation, FndRequestContext requestContext, FndManualDecisionCollection decisions, Boolean forcedSync)

   at Ifs.Fnd.AccessProvider.FndConnection.InvokeInternal(String intface, String operation, Object requestBody, Object responseBody, FndRequestContext requestContext, Boolean forcedSync)

   at Ifs.Fnd.AccessProvider.Activity.FndActivityContext.Invoke(String intface, String operation, Object request, Object response)

   at Ifs.Fnd.AccessProvider.Activity.FndActivityCommand.ExecuteNonQuery(Object body)

   at Ifs.Fnd.Explorer.Extenders.InfoServices.ServerInterface.Ifs.Fnd.Explorer.Extenders.InfoServices.IPrintReport.ReportFormatRequest(Double resultKey, String formatRequest, String langCode, String& pdfFile, Byte[]& pdf)

   at Ifs.Fnd.Explorer.Extenders.InfoServices.PrintDialog.ReportFormatRequest(PrintInstance instance, String& filename, Byte[]& pdfData)

   at Ifs.Fnd.Explorer.Extenders.InfoServices.PrintDialog.PreviewReport(PrintInstance instance)

   at Ifs.Fnd.Explorer.Extenders.InfoServices.PrintDialog.FormatPrintRequest(Boolean print)

   at Ifs.Fnd.Explorer.Extenders.InfoServices.PrintDialog.cmdPreview_Execute(Object sender, FndCommandExecuteEventArgs e)

   at Ifs.Fnd.Windows.Forms.FndCommand.OnExecute(Component component)

   at Ifs.Fnd.Windows.Forms.FndCommandButton.OnClick(EventArgs e)

   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

   at System.Windows.Forms.Control.WndProc(Message& m)

   at System.Windows.Forms.ButtonBase.WndProc(Message& m)

   at System.Windows.Forms.Button.WndProc(Message& m)

   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

   --- End of inner exception stack trace ---

Order By: Standard | Newest | Votes
ERPTechServ posted this 06 November 2019

Many things can cause this exception, can you post a screen shot of the Crystal Report in the Crystal Development studio?

The usual culprits are table naming in Crystal e.g when you bring in a view from IFS you need to rename it in Crystal from PURCHASE_ORDER_REP to PURCHASE_ORDER_REP\ for IFSAPP schema and PURCHASE_ORDER_REP\\ for IFSINFO schema.

Check that the Crystal Plugin is correctly registered in the IFS Solution Manager, make sure that if any Middleware config changes have been made that the latest compiled MSI for the Crystal Web Service is installed as any changes such as passwords for service accounts like IFSINFO, IFSPRINT will cause Oracle authentication errors within the Crystal Web Service - These passwords are stored in an XML web.config and are encrypted and are updated as part of any Extended Server re-configuration.

Try to avoid cross-schema Views i.e. mixing IFSAPP and IFSINFO schema as this is can cause issues.

Check the IIS W3SVC logs for more details on the exception, it can be cause by a Bit-ness miss-match of the Crystal Web Service on 64bit systems, you might have to change the IIS Application Pool to allow 32bit applications.

All things to try, let me know how you get on.

Cheers

 

Rob.

parvaz posted this 07 November 2019

Thanks a lot for reply! plz see screen shot 

 

 

  • Liked by
  • ERPTechServ
ERPTechServ posted this 07 November 2019

Hi parvaz, you're missing the \ suffix on the X_TRANSPORT_TASK_RPT_REP, it should look like this: X_TRANSPORT_TASK_RPT_REP\

The Crystal Web Service parses the Crystal tables from the rpt document by way of using the \ suffix for IFSAPP schema and the \\ for the IFSINFO schema, if it can't see these it will throw an exception - Not that exception is very helpful as it doesn't contain the full stack trace (Error message).

Cheers

 

Rob.

Manulak Dis posted this 08 April 2020

This could be due to several issues. But first, enable the logs by running the IFS Crsytal logs.exe found inside IFS Crystal Web Service virtual directory. Make sure the log file location has access to the user "everyone" otherwise the logs will not be written.

The possible issues are : 

1. Database connectivity issue

Make sure that the machine where the crystal web service is installed has access to database as IFSSYS. To do this, use the SQLPLUS client installed in the same machine. If you cannot connect, solve that issue first. Crystal Web Service connects to IFS database using the TNSNAME inside ifs-configuration.xml found in the virtual directory. Make sure the same file contains correct IFSSYS and IFSPRINT encrypted passwords (as per the ifs_instance_configuration.xml found in the IFS Middleware Server instance folder. In the same file, the TNSNAME should be equal to the TNS given in the tnsnames.ora in the same machine.

2. Report design fail
Check IFS documentation for designing a Crystal Operational Report. There's no need to rename the Oracle objects inside the report, but IFSSYS should have access to the used views. Generally it's recommended to use IFS Report views for Operational Reports too, otherwise it will be an issue with security \ unwanted access to users etc.

THe report needs the inpur parameter called IFS_RESULT_KEY. That should be in correct format and that's the only parameter which is allowed in your case.

3. Software version conflicts

You need to make sure the software involved in (Crystal Web Service installer from IFS, Crystal Runtime, Oracle client and Java) are as recommended, and in the same bit version. Ex : Oracle 32bit client won't work with 64bit Crystal Runtime and 64bit IFS Crystal Web Service. The Oracle runtime should be working with Oracle database version as recommended by Oracle. Better to keep one Crystal runtime installation in the machine to avoid runtime conflicts.

4. Incorrect IIS settings

IFS Crystal Web Service needs the default application pool service to .NET 4.0. If that's selected to contain a defferent value, that won't work. Moreover, the PROCESS_MODEL should be set to AUTO_GENERATED in the machine.configg (against the above selected .NET version) file found in the system folder. 

5. Violating IFS guidelines

All above issues shouldn't be happened if the guidelines are followed. Go on IFS guidelines for installing and configuruing crystal web service, and creating a sample report, step by step..!

 

This is the best help which can be provided online.
Hope this helps

Manulak Dis posted this 08 April 2020

Hi Rob

I'm sorry but you are incorrect in many cases. Hope this helps to clear them out for you..

The usual culprits are table naming in Crystal e.g when you bring in a view from IFS you need to rename it in Crystal from PURCHASE_ORDER_REP to PURCHASE_ORDER_REP\ for IFSAPP schema and PURCHASE_ORDER_REP\\ for IFSINFO schema.

This is wrong. The aliases are required only when developing Crystal Quick Reports for security validation purposes from IFS. The issue here is about Crystal Operational Reports. As long as the db users have access to the report tables, the report should work. 

Check that the Crystal Plugin is correctly registered in the IFS Solution Manager,

I guess you meant Crystal Viewer? Then it's not required here either. There's no relation with Crystal viewer and Operational Reports, as Operational reports get a PDF which will be previewd via any PDF viewer, and doesn't need Crystal viewer. IFS Crystal Quick Reports get rendered as .rpt bytestreams so you need an rpt viewer, that's why it's required for Quick reports.

make sure that if any Middleware config changes have been made that the latest compiled MSI for the Crystal Web Service is installed as any changes such as passwords for service accounts like IFSINFO, IFSPRINT will cause Oracle authentication errors within the Crystal Web Service

You are correct in recommending to use the new installer from IFS but there's no need of worrying about IFSINFO and it will never make authentication errors within Crystal Web Service. Only the involved dbusers are IFSPRINT and IFSSYS, and that's for clear different purposes.

- These passwords are stored in an XML web.config and are encrypted and are updated as part of any Extended Server re-configuration.

The passwords are not stored in web.config. It's stored in ifs-crystal-config.xml. Web.config contains only the Open Report Path, where the reports reside. You need to match the encrypted passwords from Extended Server re-configuration file, and that's correct.

Try to avoid cross-schema Views i.e. mixing IFSAPP and IFSINFO schema as this is can cause issues.

I don't see any issue there mixing them, can you explain, so I can provide you and answers?

 

Hope this helps, cheers...

Close