点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我尝试在BPA中创建一个简单的工作链,但是当我尝试设置步骤参数时却失败了
{
字符串pPartition =" GLOBAL";
字符串jdName =" MyJobChainWithPreconditionABAP";
字符串stepName =" Step1"; 尝试
{
//获取或创建一个分区(如果尚不存在,则在这里创建一个分区)
Partition partition = jcsSession.getPartitionByName(pPartition);
if(分区== null)
{
partition = jcsSession.createPartition();
partition.setName(pPartition);
}
jcsOut.println("-使用partition" + pPartition); //检查是否已经存在类型为JOB_CHAIN(链定义)的作业定义
jcsOut.println("-检查作业定义" + jdName +"是否存在!");
JobDefinition jDefinition = jcsSession.getJobDefinitionByName(partition, jdName);
if(jDefinition == null)
{
//创建类型为JOB_CHAIN的JobDefinition(链定义)
jcsOut.println("-JobDefinition" + jdName +"不存在,并且 将被创建!");
jDefinition = jcsSession.createJobDefinition();
jDefinition.setName(jdName);
jDefinition.setJobDefinitionType(jcsSession.getJobDefinitionTypeByName(JobDefinitionType.JOB_CHAIN));
jDefinition。 setPartition(partition); //用一个步骤和一个作业链调用创建JobChain对象
jcsOut.println("-用一个步骤和一个作业链调用创建JobChain对象");
JobChain jchain = jcsSession.createJobChain();
jchain.setJobDefinition(jDefinition); //创建步骤
jcsOut.println("-创建步骤");
JobChainStep jcstep = jchain.createJobChainStep();
jcstep.setSequenceNumber(Long.valueOf(0));
jcstep。 setName(stepName); //作业链调用
jcsOut.println("-创建作业链");
JobChainCall jccall = jcstep.createJobChainCall(); //设置步骤参数
jcsOut.println("-设置SAP_AbapRun的步骤参数");
JobDefinition jDefinitionStep = jcsSession.getJobDefinitionByName(" SAP_AbapRun");
作业过程= jDefinitionStep.prepare(); < br> process.getJobParameterByName(" SAP_SYSTEMS")。setInValueString(" XXX");
process.getJobParameterByName(" CLIENT")。setInValueString(" 010");
process.getJobParameterByName(" ABAP_PROGRAM_NAME")。setInValueString (" Z_TST_IDLE");
process.getJobParameterByName(" JOBNAME")。setInValueString(" Step1");
process.getJobParameterByName(" LANGUAGE")。setInValueString(" EN");
队列queue = jcsSession.getQueueByName(partition," XXX_Queue");
jcsOut.println("-Queue:" + queue);
process.setQueue(queue);
//分配参数
jcsOut.println("-分配参数");
jccall.setJobDefinition(jDefinitionStep);
jccall.setSequenceNumber(Long.valueOf(0)); }
else
{
jcsOut.println(" JobDefinition" + jdName +"存在!");
jcsOut.println("您可以在以下行更改JobDefinition名称:\ n字符串jdName = \" MyJobChainWithPrecondition \";");
}
//提交更改
jcsOut.println("-提交更改");
jcsSession.persist(); //脚本成功完成
jcsOut.println("-脚本成功完成");
}
catch(异常e)
{
jcsErr.println(e.getMessage());
throw e;
}
}
你好
在将定义添加到调用的地方,您选择的路径错误。 像这样:
关于Gerben
Hello Gerben
非常感谢您的快速回复和帮助。 我能够使用您的代码示例成功创建工作链。
我仅修复了一些语法错误,并将jcciep.createJobChainCallSchedulingParameter修复为jccall.createJobChainCallSchedulingParameter()。
这是已更正且有效的代码:
{
字符串pPartition =" GLOBAL";
字符串jdName =" MyJobChainWithPreconditionABAP";
字符串stepName =" Step1";
try
{
//获取或创建 一个分区(如果尚不存在,则在此处创建一个分区)
分区partition = jcsSession.getPartitionByName(pPartition);
if(partition == null)
{
partition = jcsSession.createPartition( );
partition.setName(pPartition);
}
jcsOut.println("-使用partition" + pPartition); //检查是否已存在类型为JOB_CHAIN(链定义)的作业定义
jcsOut.println("-检查作业定义" + jdName +"存在!"));
JobDefinition jDefinition = jcsSession.getJobDefinitionByName(partition, jdName);
如果(jDefinition == null)
{
//创建JOB_CHAIN类型的JobDefinition(链定义)
jcsOut.println("-JobDefinition" + jdName +"不存在,并且 将被创建!");
jDefinition = jcsSession.createJobDefinition();
jDefinition.setName(jdName);
jDefinition.setJobDefinitionType(jcsSession.getJobDefinitionTypeByName(JobDefinitionType.JOB_CHAIN));
jDefinition。 setPartition(partition); //用一个步骤和一个作业链调用创建JobChain对象
jcsOut.println("-用一个步骤和一个作业链调用创建JobChain对象");
JobChain jchain = jcsSession.createJobChain();
jchain.setJobDefinition(jDefinition); //创建步骤
jcsOut.println("-创建步骤");
JobChainStep jcstep = jchain.createJobChainStep();
jcstep.setSequenceNumber(Long.valueOf(0));
jcstep。 setName(stepName); //作业链调用
jcsOut.println("-创建作业链");
JobChainCall jccall = jcstep.createJobChainCall(); //设置步骤参数
jcsOut.println("-设置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"));
jccieion "];
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.createJobChainCallInExpress; initionParameter(jDefinitionStep.getJobDefinitionParameterByName(" JOBNAME"));
jcciep.setExpression(" Step1");
jcciep = jccall.createJobChainCallInExpressionParameter();
jcciep.setLocalJobDefinitionParameter(jDefinitionStep.getJobDefinitionParameterByName" LAN );
jcciep.setExpression(" EN");
队列队列= jcsSession.getQueueByName(分区," XXX_Queue");
jcsOut.println("-队列:" +队列);
JobChainCallSchedulingParameter jccsp = jccall.createJobChainCallSchedulingParameter();
//JobChainCallSchedulingParameter jccsp = jcciep.createJobChainCallSchedulingParameter();
jccsp.setName(SchedulingParameterName.Queue);
jccsp.setExpression(queue.getBusinessKey()。getPath()。toString());
}
else
{
jcsOut.println(" JobDefinition" + jdName +"存在!");
jcsOut.println("您可以在以下行更改JobDefinition名称:\ n字符串jdName = \" MyJobChainWithPrecondition \";");
}
//提交更改
jcsOut.println("-提交更改");
jcsSession.persist(); //脚本成功完成
jcsOut.println("-脚本成功完成");
}
catch(异常e)
{
jcsErr.println(e.getMessage());
抛出e;
}
}
一周热门 更多>