Skip to Content
0
Jun 09, 2020 at 08:04 AM

Redwood scripts for multiple steps

223 Views Last edit Jun 09, 2020 at 08:04 AM 2 rev

i am trying to create job with multiple step. COuld you please help on below code which create job chain for one step.

{
String pPartition = "GLOBAL";
String jdName = "MyJobChainWithPreconditionABAP";
String stepName = "Step1";


try
{
//Get or create a partition (here we create one if it does not already exist)
Partition partition = jcsSession.getPartitionByName(pPartition);
if (partition == null)
{
partition = jcsSession.createPartition();
partition.setName(pPartition);
}
jcsOut.println("- Use partition " + pPartition); //Check if Job Definition of type JOB_CHAIN (chain definition) already exists
jcsOut.println("- Check if Job Definition " + jdName + " exists!");
JobDefinition jDefinition = jcsSession.getJobDefinitionByName(partition, jdName);
if (jDefinition == null)
{
//Create JobDefinition of type JOB_CHAIN (chain definition)
jcsOut.println("- JobDefinition " + jdName + " does not exists and will be created!");
jDefinition = jcsSession.createJobDefinition();
jDefinition.setName(jdName);
jDefinition.setJobDefinitionType(jcsSession.getJobDefinitionTypeByName(JobDefinitionType.JOB_CHAIN));
jDefinition.setPartition(partition); //Create JobChain object with one step and one job chain call
jcsOut.println("- Create JobChain object with one step and one job chain call");
JobChain jchain = jcsSession.createJobChain();
jchain.setJobDefinition(jDefinition); //Create Step


jcsOut.println("- Create Step");
JobChainStep jcstep = jchain.createJobChainStep();
jcstep.setSequenceNumber(Long.valueOf(0));
jcstep.setName(stepName); //Job chain call
jcsOut.println("- Create job chain");
JobChainCall jccall = jcstep.createJobChainCall(); // Set Step parameter
jcsOut.println("- Set Step parameter for SAP_AbapRun");
JobDefinition jDefinitionStep = jcsSession.getJobDefinitionByName("SAP_AbapRun");
jccall.setJobDefinition(jDefinitionStep);
jccall.setSequenceNumber(Long.valueOf(0));
JobChainCallInExpressionParameter jcciep = jccall.createJobChainCallInExpressionParameter();
jcciep.setLocalJobDefinitionParameter(jDefinitionStep.getJobDefinitionParameterByName("SAP_SYSTEMS"));
jcciep.setExpression("XXX");
jcciep = jccall.createJobChainCallInExpressionParameter();
jcciep.setLocalJobDefinitionParameter(jDefinitionStep.getJobDefinitionParameterByName("CLIENT"));
jcciep.setExpression("010");
jcciep = jccall.createJobChainCallInExpressionParameter();
jcciep.setLocalJobDefinitionParameter(jDefinitionStep.getJobDefinitionParameterByName("ABAP_PROGRAM_NAME"));
jcciep.setExpression("Z_TST_IDLE");
jcciep = jccall.createJobChainCallInExpressionParameter();
jcciep.setLocalJobDefinitionParameter(jDefinitionStep.getJobDefinitionParameterByName("JOBNAME"));
jcciep.setExpression("Step1");
jcciep = jccall.createJobChainCallInExpressionParameter();
jcciep.setLocalJobDefinitionParameter(jDefinitionStep.getJobDefinitionParameterByName("LANGUAGE"));
jcciep.setExpression("EN"); 






Queue queue = jcsSession.getQueueByName(partition, "System");
jcsOut.println("- Queue: " + queue);


JobChainCallSchedulingParameter jccsp = jccall.createJobChainCallSchedulingParameter();
//JobChainCallSchedulingParameter jccsp = jcciep.createJobChainCallSchedulingParameter();
jccsp.setName(SchedulingParameterName.Queue);
jccsp.setExpression(queue.getBusinessKey().getPath().toString());
}
else
{
jcsOut.println("JobDefinition " + jdName + " exists!");
jcsOut.println("You can change the JobDefinition name on the line:\n String jdName = \"MyJobChainWithPrecondition\";"); 
}
// Commit Changes
jcsOut.println("- Commit Changes");
jcsSession.persist(); // Script successfully finished
jcsOut.println("- Script successfully finished");
}
catch (Exception e)
{
jcsErr.println(e.getMessage());
throw e;
}
}