Skip to Content
author's profile photo Former Member
Former Member

Publication Recipient Delivery Rule

How do I set a delivery rule on a source document in a publication? I'm trying to enable the "deliver only if report contains data" option. I thought I had a pretty good handle on scheduling until I tried my hand at scheduling a publication.

Add a comment
10|10000 characters needed characters exceeded

Related questions

3 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Dec 09, 2010 at 09:01 PM

    Thanks for the info, Ted. I am able to enable the feature, but of course, I now have another problem.

    I have a few recurring, publication instances that I want to set the "deliver only with data" option, i.e. I don't want to reschedule them by hand. The publications use 1 Crystal as the source, another Crystal as the dynamic recipient source and outputs PDF files to an external file location. I cloned one of these recurring jobs, changed the recurrence to "now" and changed the instance title to "test". Besides those changes, nothing else with the test instance is changed. That runs without a problem.

    I repeat the process and create a "test2" instance, but change the recurrence to "once" with a next runtime about 5 minutes into the future. I then run the code posted below to set the delivery rule on test2 and it fails. I noticed via Query Builder that the good instances have a SI_FORMAT_INFOS property bag in SI_PROCESSINFO whereas the instances that fail do not. Am I missing a step or two?

    String query = "select * from ci_infoobjects where si_name = 'rg test'";
    IInfoObjects pubs = Utils.getInfoObjects(infoStore, query);
    
    // There is only 1 publication
    for (Object o : pubs) {
    	IPublication pub = (IPublication)o;
    	pub.setDeliveryRuleOptions(CeDeliveryRuleOption.SkipIndividualDocuments);
    	
    	// Get publication source documents
    	// There is only 1 source document in Crystal format
    	Collection<IInfoObject> docs = pub.getSchedulableDocuments();
    	for (IInfoObject doc : docs) {
    		System.out.println(pub.getTitle());
    		int docId = doc.getID();		
    		IReportProcessingInfo pi = (IReportProcessingInfo)doc;
    		pi.setDeliverEmptyDocument(false);
    		pub.setDocumentProcessingInfo(docId, CeKind.PDF, doc.getProcessingInfo().properties());
    	}
    }
    
    infoStore.commit(pubs);

    Here is the stack trace from the publication log file:

    2010-12-09 15:56:28,174 INFO  [pool-4-thread-10] BusinessObjects_PublicationAdminLog_Instance_55849081 - [Publication ID # 55849081] - Running publication instance.
    2010-12-09 15:56:28,299 INFO  [pool-4-thread-10] BusinessObjects_PublicationAdminLog_Instance_55849081 - [Publication ID # 55849081] - The global delivery rule for this publication was met; publication processing will now begin.
    2010-12-09 15:57:26,267 ERROR [PublishingService:HandlerPool-49] BusinessObjects_PublicationAdminLog_Instance_55849081 - [Publication ID # 55849081] - Scheduling document job "DSI Push Report Store" (ID: 55,849,089) failed: Error in File ~tmp174866692fc4b80.rpt:
    Database Connector Error (FBE60502)
    2010-12-09 15:57:26,485 INFO  [pool-4-thread-10] BusinessObjects_PublicationAdminLog_Instance_55849081 - [Publication ID # 55849081] - Publication scheduling complete.
    

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Publications are tricky beasts. Sometimes, underlying changes to a Crystal Report can make the publication(s) that use that report unschedulable. The publication will fail everytime. The only solution is to re-create the publication.

      HTH.

  • Posted on Dec 09, 2010 at 04:45 PM

    Are you trying to do this through the SDK or Infoview?

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Dec 09, 2010 at 05:28 PM

    Sorry, I should have included more background in my original post. I am using the enterprise Java SDK on XI 3.1 FP1.7 on Windows.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.