Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member204024
Participant
0 Kudos


Hi,

There is a requirement to update the Sender Email Address of all the recurring instances in my current engagement.  I am sharing the code here, which will be useful to others who has similar requirement.  I have created it as .java file.  Please ensure that cecore.jar, cesession.jar,celib.jar,corbaidl.jar, logging.jar & ebus405.jar are added to classpath.  These jar files will be available at <BOE Installationpath>\common\java\lib.

import com.crystaldecisions.sdk.exception.SDKException;
import com.crystaldecisions.sdk.framework.CrystalEnterprise;
import com.crystaldecisions.sdk.framework.IEnterpriseSession;
import com.crystaldecisions.sdk.framework.ISessionMgr;
import com.crystaldecisions.sdk.occa.infostore.*;
import com.businessobjects.sdk.plugin.desktop.publication.*;
import com.crystaldecisions.sdk.plugin.destination.smtp.*;

class MyApp {
public static void main (String[] args) {

IEnterpriseSession boIEnterpriseSession;
IInfoStore boInfoStore;
IInfoObjects boInfoObjects;
IInfoObjects boInfoObjects2;
IDestination Dest;
IDestination Dest_Succ;
IDestination Dest_Fail;

IInfoObject boRpt;
IPublication Pub;
IDestinationPlugin SmtpPlugin;

String user = "admin";
String password = "password";
String cmsName = ".";
String cmsAuthType = "secEnterprise";
int runs;
int prior_sid;
int qrysize;

prior_sid = 0;
try
{
boIEnterpriseSession = CrystalEnterprise.getSessionMgr().logon(user, password, cmsName, cmsAuthType);
boInfoStore = (IInfoStore)boIEnterpriseSession.getService("", "InfoStore");
System.out.println("Successfully Connected");
boInfoObjects = boInfoStore.query("SELECT si_id FROM CI_INFOOBJECTS WHERE si_instance =1 and si_recurring = 1 ");
SmtpPlugin = (IDestinationPlugin) boInfoStore.query("select * from ci_systemobjects where si_parentId=29 and si_name='CrystalEnterprise.Smtp' ").get(0);
if (boInfoObjects.getResultSize() % 50 != 0)
{
runs = boInfoObjects.getResultSize() / 50 +1;
}
else
{
runs = boInfoObjects.getResultSize() / 50;
}
System.out.println("No. of iterations :" + runs);
for (int k = 1; k <= runs; k ++)
{
System.out.println("Iteration :" + k + " started.");
boInfoObjects2 = boInfoStore.query("SELECT top 50 * FROM CI_INFOOBJECTS WHERE si_instance =1 and si_recurring = 1  and si_id > " + prior_sid + " order by si_id");
qrysize = boInfoObjects2.size();
for (int i= 0 ; i < qrysize ; i++)
{
boRpt = (IInfoObject) boInfoObjects2.get(i);
if (boRpt.getKind() == "Publication")
{
Pub = (IPublication) boInfoObjects2.get(i);
for (int j = 0; j < Pub.getSchedulingInfo().getDestinations().size() ; j++)
{
Dest = (IDestination) Pub.getSchedulingInfo().getDestinations().get(j);
if (Dest.getName().trim().equalsIgnoreCase("CrystalEnterprise.Smtp"))
{
if (! Dest.isSystemDefaultOptionsUsed())
{
Dest.copyToPlugin(SmtpPlugin);
ISMTPOptions SmtpOptions = (ISMTPOptions) SmtpPlugin.getScheduleOptions();

if ( SmtpOptions.getSenderAddress() != "")

{
SmtpOptions.setSenderAddress("Newemailid@domain.com");

}
Dest.setFromPlugin(SmtpPlugin);
}
}
}
if(Pub.getSchedulingInfo().getNotifications().getDestinationsOnSuccess().size() !=0)
{
Dest_Succ = (IDestination) Pub.getSchedulingInfo().getNotifications().getDestinationsOnSuccess().get(0);
if  (! Dest_Succ.isSystemDefaultOptionsUsed())
{
Dest_Succ.copyToPlugin(SmtpPlugin);
ISMTPOptions SmtpOptions = (ISMTPOptions) SmtpPlugin.getScheduleOptions();
SmtpOptions.setSenderAddress("Newemailid@domain.com");
Dest_Succ.setFromPlugin(SmtpPlugin);
}
}
if(Pub.getSchedulingInfo().getNotifications().getDestinationsOnFailure().size() !=0)
{
Dest_Fail = (IDestination) Pub.getSchedulingInfo().getNotifications().getDestinationsOnFailure().get(0);
if  (! Dest_Fail.isSystemDefaultOptionsUsed())
{
Dest_Fail.copyToPlugin(SmtpPlugin);
ISMTPOptions SmtpOptions = (ISMTPOptions) SmtpPlugin.getScheduleOptions();
SmtpOptions.setSenderAddress("Newemailid@domain.com");
Dest_Fail.setFromPlugin(SmtpPlugin);
}
}
}
else
{
Dest =(IDestination) boRpt.getSchedulingInfo().getDestinations().get(0);
if (Dest.getName().trim().equalsIgnoreCase("CrystalEnterprise.Smtp"))
{
if  (! Dest.isSystemDefaultOptionsUsed())
{
Dest.copyToPlugin(SmtpPlugin);
ISMTPOptions SmtpOptions = (ISMTPOptions) SmtpPlugin.getScheduleOptions();

if ( SmtpOptions.getSenderAddress() != "")

{
SmtpOptions.setSenderAddress("Newemailid@domain.com");

}
Dest.setFromPlugin(SmtpPlugin);
}
}
if(boRpt.getSchedulingInfo().getNotifications().getDestinationsOnSuccess().size() !=0)
{
Dest_Succ = (IDestination) boRpt.getSchedulingInfo().getNotifications().getDestinationsOnSuccess().get(0);
if  (! Dest_Succ.isSystemDefaultOptionsUsed())
{
Dest_Succ.copyToPlugin(SmtpPlugin);
ISMTPOptions SmtpOptions = (ISMTPOptions) SmtpPlugin.getScheduleOptions();
SmtpOptions.setSenderAddress("Newemailid@domain.com");
Dest_Succ.setFromPlugin(SmtpPlugin);
}
}
if(boRpt.getSchedulingInfo().getNotifications().getDestinationsOnFailure().size() !=0)
{
Dest_Fail = (IDestination) boRpt.getSchedulingInfo().getNotifications().getDestinationsOnFailure().get(0);
if  (! Dest_Fail.isSystemDefaultOptionsUsed())
{
Dest_Fail.copyToPlugin(SmtpPlugin);
ISMTPOptions SmtpOptions = (ISMTPOptions) SmtpPlugin.getScheduleOptions();
SmtpOptions.setSenderAddress("Newemailid@domain.com");
Dest_Fail.setFromPlugin(SmtpPlugin);
}
}
}

prior_sid = boRpt.getID();
}
boInfoStore.commit(boInfoObjects2);
System.out.println("Iteration :" + k + " completed.");
System.out.println("last processed si_id - "+ prior_sid);
}
if( boIEnterpriseSession != null)
{
boIEnterpriseSession.logoff();
System.out.println("Successfully disconnected");
}
}
catch(SDKException sdkEx)
{
System.out.println(sdkEx.toString());
}

}
}

Labels in this area