Hola Nidish,
En este caso, primero debes importar los trabajos y luego programarlos.
Para importar los trabajos, debes enviar SAP_ImportCcmsJobs para cada uno.
Por lo tanto, para enviar SAP_ImportCcmsJobs, debes ejecutar el siguiente código (tomado y ligeramente adaptado de la documentación). Por lo tanto, tendrías que escribir código VBA para escribir esto con los valores de tu archivo de Excel. Para acceder a un valor en una celda, haces ActiveSheet.Range( "B1" ).Value. Por lo tanto, debes iterar sobre las filas y obtener ActiveSheet.Range( "B"&i ).Value, por ejemplo.
{
// código para enviar
SAP_ImportCcmsJobs
que importa un trabajo de SAP
// obtener la definición del trabajo SAP_ImportCcmsJobs
JobDefinition aJobDef = jcsSession.getJobDefinitionByName("SAP_ImportCcmsJobs");
// crear el trabajo
Job aJob = aJobDef.prepare();
// asignar parámetros
aJob.getJobParameterByName("SAP_SYSTEMS").setInValueString("TR1");
aJob.getJobParameterByName("JOBNAME").setInValueString(" <Valor_desde_Excel> ");
// asignar cola ya que los trabajos de SAP requieren una cola
Partition part = jcsSession.getPartitionByName("RW_DEMO");
Queue queue = jcsSession.getQueueByName(part, "TB7_Queue");
aJob.setQueue(queue);
// enviar la definición del trabajo y escribir datos no guardados en la base de datos
jcsSession.persist();
// esperar a que terminen todos los trabajos secundarios
jcsSession.waitForAllChildren(aJob);
}
Esto creará definiciones de trabajos o cadenas de trabajos (para trabajos de SAP de múltiples pasos). Ten en cuenta que estos tendrán los nombres de variantes correctos, etc.
Si tienes que editar las cadenas de trabajos generadas (ver documentación de definiciones de trabajos):
{
Partition part = jcsSession.getPartitionByName("MiPartición");
JobDefinition jd = jcsSession.getJobDefinitionByName(part, " <Valor_desde_Excel> ");
JobChain jc = jcsSession.getJobChainByJobDefinition(jd);
JobChainCall jcc = jc.getJobChainStepBySequenceNumber(" <Valor_desde_Excel> ");
JobDefinition jccjd = jcc.getJobDefinition();
JobDefinitionParameter jccjdp = jccjd.getParameterByName(" <Valor_desde_Excel> ");
jcc.getJobChainCallInExpressionParameterByLocalJobDefinitionParameter(jccjdp).setExpression(" <Valor_desde