Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member184471
Active Participant

The basics of SAP BusinessObject Intelligence Platform Publication in my earlier blog. This post outlines a few useful tips to consider when working with publications. I will look at three different aspects: Source documents, Dynamic recipients and publication performance.

Source documents

It is recommended to view and schedule dynamic content documents individually before you add them to a publication. Publication uses scheduling as a means of creating the personalized documents, hence ensure that you can view, refresh and schedule each publication document on its own. If you can view and schedule dynamic content documents successfully, the data source connection is working properly and the source document data can be refreshed when the publication is scheduled. If you cannot view and schedule dynamic content documents, ensure the data source connection settings are correct.

Use publication log files to troubleshoot errors in failed publications. When you schedule publications to run, log files are generated that record any errors that may occur when the publications are processed. To view all log files for a publication instance, click Actions > History. On the "History" page, click the instance link in the Instance Time column.

Try to avoid unnecessary data refreshes. If a data refresh is unnecessary for a dynamic content document, in the "Source Documents" section, clear the Refresh At Runtime check box for that document. This will improve overall publication performance. Also consider to use the best bursting mode for your publication.  For more information on bursting modes read my previous blog entry.

If you are using parameter-based personalization for Crystal reports, set parameters to default. Parameter-based personalization may lead to slower publication performance. It is highly recommended that you personalize Crystal report publications by mapping fields to Enterprise recipient profiles or to dynamic recipient personalization values. However, if you need to personalize Crystal reports using parameters, in the "Personalization" section, set parameters to Default.

Dynamic Recipients

In general, it is recommended that you sort dynamic recipient sources according to the recipient ID column. This is especially
important when you are running a high-volume publication or when you enable One database fetch for each batch of recipients because it can reduce the number of deliveries for recipients who have multiple personalization values.

For Crystal report dynamic recipient sources, ensure the database configuration information is correct. In the CMC, select the dynamic
recipient source and go to Manage > Default Settings to ensure the following:

  • In the "Database Configuration" section, the database logon information is correct and Use same database logon as when report is run is selected.
  • In the "Parameters" section, all parameters have parameter values, and all Prompt when viewing check boxes for parameters are cleared.

  

Also, if you use Crystal report dynamic recipient sources, consult your administrator to ensure the Report Application Server (RAS) is configured correctly. The RAS must be configured to read at least the same number of database records as the number of recipients in the dynamic recipient source. For instance, to process a dynamic recipient source with data for 100,000 recipients, the RAS must be set to read more than 100,000 database
records.

Publication Performance

Further I want talk about how you can improve the performance of a publication.

Let’s start with the Adaptive Processing Server (APS). If both CPU and memory for the Adaptive Processing Server are heavily utilized during publication runs, then move the Adaptive Processing Server to a faster machine that has more available CPUs and SAP BusinessObjects Business Intelligence platform 4.0 SP4 or later installed. The server will automatically scale to use more CPUs. Also it is recommended to isolate the Publishing Service and the Publication Post Processing Service on dedicated Adaptive Processing Server instances and remove unused services hosted on the server. Each service will consume more shared resources (request thread pool, memory, and CPU consumption) on the Adaptive Processing Server, and publishing performance may
improve.

There are a few considerations to keep in mind regarding the Publishing Service on the APS. Horizontally "scaling out“ of the Publishing Service across multiple APS instances (on one or multiple machines) will enable more publication instances to be processed concurrently. In contrast, a single publication job (for example, one with 1,000,000 recipients) is not shared across Publishing Services hosted on  different APSs and horizontally scaling out the Publishing Service will not improve processing time for a single publication, regardless of the number of recipients. For publications with many recipients, vertically scale the APS on machines that have more CPUs and RAM. This will enable the Publishing Service to concurrently process more recipients
and the APS to generate more jobs.

Because publishing is a disk-heavy process, use a machine with fast I/O or SAN disks for the FRS and use the publishing cleanup option for a large publication that does not need redistribution or to view artifacts in the report. To automatically clean up do not select the default destination.

For Crystal report publications select One database fetch for each batch of recipients if you do not need to apply unique refresh security for each recipient. Database access will be batched into multiple concurrent, smaller queries.

For Web Intelligence publications select One database fetch for all recipients or One database fetch per recipient. When you select One database fetch for all recipients for a large publication, to break up the database query into multiple smaller atomic queries, enter

                -Dcom.businessobjects.publisher.scopebatch.max.recipients=<integer>

on the command line of all APSs that host the Publishing Service.

Last I want to mention a few tips regarding the Publishing Post Processing Service. The Publishing Post Processing Service is called when the Package as ZIP File check box and/or the Merge Exported PDF check box is selected or when custom post-processing plugins are enabled on a publication. For publications with both check boxes selected, you must create additional Publishing Post Processing Services to improve publication processing time. Also the amount of work the Publishing Post Processing Service receives is limited by how the Publishing Service is scaled. Horizontally scaling out the Publishing Post Processing Service spreads the ZIP- and PDF-merging workload across multiple Publishing Post Processing Services hosted on different Adaptive Processing Servers.

An interactive diagram showing the interaction of platform components when a scheduled publication of a Crystal Reports 2011 report is run, can be found in this BI tutorial.

9 Comments