To schedule event driven batch jobs in Redwood

Hi Experts,
We have a requirement of triggereing batch job in Redwood when an sap event is triggerred.
The screnario is something like this -
whenever the event SAP_NEW_CONTROL_RECIPES is being triggerred in SAP, it should should start the batch job (already scheduled and waiting for the event) for processing all the recipes whose tax status is set as created.
I understand that scheduling a job linked to an sap event is possible via Cronacle events but dont know exactly how to use this feature.
Many thanks for your help and support.
best regards,
Kashif

Hi Kashif,
There should be an example in your repository allowing you to create an SAP job which waits for an event. Check the application RW_SAPR3_EXAMPLES for this job definition.
Using this definition, you can either submit the abap in SAP which waits for the event and then gets executed, or submit a dummy job that waits for the event and then completes to let the rest of the CPS chain continue.
Regards,
Anton.

Similar Messages

  • How to get all AD User accounts, associated with any application/MSA/Batch Job running in a Local or Remote machine using Script (PowerShell)

    Dear Scripting Guys,
    I am working in an AD migration project (Migration from old legacy AD domains to single AD domain) and in the transition phase. Our infrastructure contains lots
    of Users, Servers and Workstations. Authentication is being done through AD only. Many UNIX and LINUX based box are being authenticated through AD bridge to AD. 
    We have lot of applications in our environment. Many applications are configured to use Managed Service Accounts. Many Workstations and servers are running batch
    jobs with AD user credentials. Many applications are using AD user accounts to carry out their processes. 
    We need to find out all those AD Users, which are configured as MSA, Which are configured for batch jobs and which are being used for different applications on
    our network (Need to find out for every machine on network).
    These identified AD Users will be migrated to the new Domain with top priority. I get stuck with this requirement and your support will be deeply appreciated.
    I hope a well designed PS script can achieve this. 
    Thanks in advance...
    Thanks & Regards Bedanta S Mishra

    Hey Satyajit,
    Thank you for your valuable reply. It is really a great notion to enable account logon audit and collect those events for the analysis. But you know it is also a tedious job when thousand of Users come in to picture. You can imagine how complex it will be
    for this analysis, where more than 200000 users getting logged in through AD. It is the fact that when a batch / MS or an application uses a Domain Users credential with successful process, automatically a successful logon event will be triggered in associated
    DC. But there are also too many users which are not part of these accounts like MSA/Batch jobs or not linked to any application. In that case we have to get through unwanted events. 
    Recently jrv, provided me a beautiful script to find out all MSA from a machine or from a list of machines in an AD environment. (Covers MSA part.)
    $Report= 'Audit_Report.html'
    $Computers= Get-ADComputer -Filter 'Enabled -eq $True' | Select -Expand Name
    $head=@'
    <title>Non-Standard Service Accounts</title>
    <style>
    BODY{background-color :#FFFFF}
    TABLE{Border-width:thin;border-style: solid;border-color:Black;border-collapse: collapse;}
    TH{border-width: 1px;padding: 2px;border-style: solid;border-color: black;background-color: ThreeDShadow}
    TD{border-width: 1px;padding: 2px;border-style: solid;border-color: black;background-color: Transparent}
    </style>
    $sections=@()
    foreach($computer in $Computers){
    $sections+=Get-WmiObject -ComputerName $Computer -class Win32_Service -ErrorAction SilentlyContinue |
    Select-Object -Property StartName,Name,DisplayName |
    ConvertTo-Html -PreContent "<H2>Non-Standard Service Accounts on '$Computer'</H2>" -Fragment
    $body=$sections | out-string
    ConvertTo-Html -Body $body -Head $head | Out-File $report
    Invoke-Item $report
    A script can be designed to get all scheduled back ground batch jobs in a machine, from which the author / the Owner of that scheduled job can be extracted. like below one...
    Function Get-ScheduledTasks
    Param
    [Alias("Computer","ComputerName")]
    [Parameter(Position=1,ValuefromPipeline=$true,ValuefromPipelineByPropertyName=$true)]
    [string[]]$Name = $env:COMPUTERNAME
    [switch]$RootOnly = $false
    Begin
    $tasks = @()
    $schedule = New-Object -ComObject "Schedule.Service"
    Process
    Function Get-Tasks
    Param($path)
    $out = @()
    $schedule.GetFolder($path).GetTasks(0) | % {
    $xml = [xml]$_.xml
    $out += New-Object psobject -Property @{
    "ComputerName" = $Computer
    "Name" = $_.Name
    "Path" = $_.Path
    "LastRunTime" = $_.LastRunTime
    "NextRunTime" = $_.NextRunTime
    "Actions" = ($xml.Task.Actions.Exec | % { "$($_.Command) $($_.Arguments)" }) -join "`n"
    "Triggers" = $(If($xml.task.triggers){ForEach($task in ($xml.task.triggers | gm | Where{$_.membertype -eq "Property"})){$xml.task.triggers.$($task.name)}})
    "Enabled" = $xml.task.settings.enabled
    "Author" = $xml.task.principals.Principal.UserID
    "Description" = $xml.task.registrationInfo.Description
    "LastTaskResult" = $_.LastTaskResult
    "RunAs" = $xml.task.principals.principal.userid
    If(!$RootOnly)
    $schedule.GetFolder($path).GetFolders(0) | % {
    $out += get-Tasks($_.Path)
    $out
    ForEach($Computer in $Name)
    If(Test-Connection $computer -count 1 -quiet)
    $schedule.connect($Computer)
    $tasks += Get-Tasks "\"
    Else
    Write-Error "Cannot connect to $Computer. Please check it's network connectivity."
    Break
    $tasks
    End
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($schedule) | Out-Null
    Remove-Variable schedule
    Get-ScheduledTasks -RootOnly | Format-Table -Wrap -Autosize -Property RunAs,ComputerName,Actions
    So I think, can a PS script be designed to get the report of all running applications which use domain accounts for their authentication to carry out their process. So from that result we can filter out the AD accounts being used for those
    applications. After that these three individual modules can be compacted in to a single script to provide the desired output as per the requirement in a single report.
    Thanks & Regards Bedanta S Mishra

  • Setting default date range in selection screen when executing as batch job.

    Hi Guys,
    I have one report to be scheduled as weekly batch job and one of the selection screen field is date range. If i set this report to run today then the date range will be from one week back date(Lower value) to today date(Higher value). When it runs for next week(Already scheduled as weekly batch job) the date range should be like this
    Lower value = today date
    higher value= next week run date.
    How can i achieve this functionality. Is it possible through Dynamic variant concept?. Rest of the selection screen fields have some default values and should not change.
    <REMOVED BY MODERATOR>
    Thanks in advance,
    Vinod.
    Edited by: Alvaro Tejada Galindo on Feb 22, 2008 3:52 PM

    Hi Vinod,
    Would suggest you to this.
    Create two parameters : p_start_date and p_end_date of type sy-datum on your selection screen , instead of a range.
    Now goto create a variant from SE38 for the report.
    While creating the variant, mark the "Selection Variable" checkbox for the two parameters and click on "Selection Variables".
    Select the option "D: Dynamic date calculation" for both the date fields.
    For p_start_date - select the option "Current Date"
    For p_end_date  - select the option "Current date +/- ??? days" and put 7 in the pop up.
    Hence what you have done now is, set up a dynamic variant, where p_start_date will have sy-datum and p_end_date will have sy-datum + 7, everytime the job runs.
    Now, in the program, first step after START-OF-SELECTION code the following:
    RANGES: r_date FOR sy-datum.
    start-of-selection.
    refresh r_date.
    r_date-sign = 'I'. r_date-option = 'BT'.
    r_date-low = p_start_date. r_date-high = p_end_date.
    append r_date.
    Hence this way, you would have built your range and use it as needed.
    Cheers,
    Aditya

  • Ad hoc Query batch job

    HI All
    SAP HR - Adhoc query can be scheduled as a batch job?
    There are a few monthly adhoc queries that are run by users, can these be automated as scheduled jobs every month, with out ABAP programming required.
    Cheers
    Dinesh

    Hi Dinesh.
    Yes it is possible.
    Just run a query via selection screen then select Program->Execute in Background and specify it as periodic job when period is monthly also set the date and time in the scheduled start fields.
    Set output to ALV.
    After the job is done the results can be checked via Own spool request (if the query was run for the current user) or SM37 transaction.
    Regards,
    Sergey

  • How to assign Batch jobs ..........

    Hi,
    I want to know as to how can i assign Batch Jobs to different plants and in by which Tcodes can I see the programs of the Batch jobs.
    Thanks

    Hi Jyoti
    for specfic plant u have to create a variant for batch job.afterwards u have to schedule and release batch job by putting start date for batch job.
    You schedule a batch job in <b>SM36</b> and check whether the job has successfully completed in <b>SM37</b>.
    The host or server names that appear when you choose F4 for the target field in <b>SM36</b> are retrieved from the message service. They can be local or virtual.
    Hope ths helps
    Please reward points
    Sunil

  • Risk Analysis Batch Job Stuck in Ready State

    Hi,
    I am not able to schedule  Risk Analysis Batch job in RAR.The job is getting stuck on READY state(for unlimited period) and not performing any actions.
    Nothing is displayed under job history or job logs with job ID.I have check background job demaon ,connectors and other miscell. options but not abl to find any clue.
    Even i am executing risk analysis for single user,it's not happening.
    Rgds,
    Mukesh

    For your problem, of job not getting schedule....it seems Deamon is not running.
    To delete status of job which are in hung status
    change VIRSA_CC_SCHEDULER job id should with status five will show job aborted.
    are you using connection type 'Adaptive RFC', don't use it, use SAP JCO.
    and restart your GRC box.
    Regards,
    Surpreet
    please do check backend system, for VIRSANH is installed or not.
    Edited by: Surpreet Singh Bal on Jan 28, 2011 10:32 AM

  • Batch job scheduling based on Event AND for the job to complete

    I am trying to schedule a background job based on an event AND based on the job finishing itself.
    Example:
    Job name: Send_Message
    After Event: SAP_NEW_PROCESS Message
    Program:  Program xxxx
    I want that the Send_Message job only runs when the Event SAP_NEW_PROCESS message happens AND the Send_Message job is not running.
    Right now, I could only schedule it based on the event SAP_NEW_PROCESS Message which means that everytime this event happens the job runs and I end up having the job "Send_Message" in multilple intances where the others will immediately cancel since the first job is still running and so I end up with a lot of Cancelled job when it is not necessary to run them all when there is already 1 instance of the Job running.
    How do I set it up in SAP?

    Thanks but I am new to SAP having to set up a batch job.
    The Event "SAP_NEW_PROCESS_MESSAGES" is a standard SAP Event.  We used that such that when a new transaction comes in, the batch job will run but we don't want to run the batch job if the same batch job is already running.
    YOu mentioned that I should set up Job_0.  Do I need to create an ABAP prorgram to check if JOB_1 is running?  How do I set up Job_0?  What is the trigger for my Job_0 to run?
    You also said that I set up Job_1 and trigger that based on the outcome of Job_0 AND at the same time be triggered by the event "SAP_NEW_PROCESS_MESSAGES".  How do I set up  this Job_1 so that it can be triggered by both Job_0 and a new transaction coming in(SAP_NEW_PROCESS_MESSAGES).
    if you can provide me the step by step guide as I am new to this and I only know basic.
    The current set up I have is
    Job_1
    Job Start:
          After Event
                Event: SAP_NEW_PROCESS_MESSAGES
          Step 1: program to run RCOCB002
    I was thinking following your suggestion is this:
    Job_0
    Job Start
          After Event
                Event: SAP_NEW_PROCESS_MESSAGES
          Step 1: program to run - What will be my program to run?
    Job_1
    Job_Start
          After Event
                Event: What will be my trigger for Job_1 and how do I set it up?
          Step 1: program to run RCOCB002
    Edited by: Shirley Te on Mar 10, 2010 3:25 PM

  • How shall I cancel /kill the Batch job that is to be scheduled daily in BI.

    Hello Experts,
    We have a background batch  job used to trigger an event to execute the Porcess Chain that is to be scheduled daily in BI.
    Now we don't required this functionality any more.So I try to cancel this job using transaction SM37 but unfortunately I am not able to cancel/ kill the job.
    How shall I handle this issue.  
    any suggestions please.
    Thanks & regards

    Hi
    Select your process chain in the planning view
    Right click on the start varaint and display all jobs,
    It will show you the job scheduled, Finshed everything.
    Select the job which is scheduled or released and Delete the job.
    Else go to SM37 , enter the job, delete the scheduled job there.
    Regards
    M.A

  • How to schedule batch jobs to run after another periodically?

    Hi good people,
    I want to schedule batch jobs to run periodically one after another.
    Here is the problem:
    I have scheduled JOB1 to run once a week and I scheduled JOB2 to run after that job (JOB1). The problem is that JOB2 runs only after the first time that JOB1 runs. The second time the JOB1 runs the JOB2 is not started. I presume that the reason for that is that JOB2 is tied to the job number for the JOB1, and since a new job (with the new number) is created every week, the JOB2 is only tied to the first instance of JOB1.
    So does anyone have an idea how to get JOB2 to automatically run every week after JOB1? One idea is to use events, but that I'm hoping that there is a bit cleaner solution..
    Best Regards,
    Armin

    Hi
    Try scheduling both JOB1 & JOB2 in a single job in steps.
    First schedule JOB1 & then give JOB2 in steps.
    Kindly check the following link to do job scheduling in steps:
    http://help.sap.com/saphelp_47x200/helpdata/en/c4/3a7ed1505211d189550000e829fbbd/frameset.htm
    In the above help documentation, look for the topic <b>"job steps"</b> in
    "Background Processing: Concepts and Features"
    hope it helps!
    best regards,
    Thangesh

  • How to schedule a batch job to generate security audit log (SM20)

    May be this is a repeat question for this forum. Apologize, if it is. Is there a way to schedule a batch job to generate security audit log (SM20) automatically and possibly send a message to SAP Inbox or generate a spool request? Release is 4.6C.
    Regards
    Nirmal

    > May be this is a repeat question for this forum. Apologize, if it is.
    You don't need to apologize. You only need to do a very simple search...
    > Total Questions:  18 (16 unresolved) 
    Perhaps 16 of those 18 questions you have not followed up on could have been spared as well?
    Please do the needfull.
    Cheers,
    Julius

  • Creation of  File through Scheduled Batch Job

    Hi Friends.
    How to create a file through scheduled batch job .ie data has to be sent in particular file which should be stored in SAP so that The file is expected to provide quick reconciliation when data in SAP gets archived .
    With thanks and regarsds
    Uma

    Which part? The creation of the file?  Since running in background, you would need to create the file using DATASET statements on the appliation server.  You will not be able to put the file on any frontend PC or server, only on the application server where you program is running.
    Regards,
    Rich Heilman

  • Creation of batch job Schedule

    How to create new batch job Schedule ?
    Regards,
    Sridhar

    Hi,
    For more details about background processing go through the link provided.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c4/3a7ede505211d189550000e829fbbd/frameset.htm
    Hope it helps you.
    Regards
    CSM Reddy

  • Job not getting triggered for Multiple Scheduler Events

    hi,
    I would like a job to be triggered for multiple scheduler events, subscribing to a single event works fine. But, when I set multiple event condition, nothing works.
    My objective is to run a job, whenever job starts or restarts or exceeds max run duration.
    Note : Is it possible to trigger a job, when a job RESTARTS by subscribing to JOB_START ????????
    procedure sniffer_proc(p_message in sys.scheduler$_event_info)
    is
    --Code
    end sniffer_proc
    dbms_scheduler.create_program(program_name => 'PROG',
    program_action => 'sniffer_proc',
    program_type => 'stored_procedure',
    number_of_arguments => 1,
    enabled => false);
    -- Define the meta data on scheduler event to be passed.
    dbms_scheduler.define_metadata_argument('PROG',
    'event_message',1);
    dbms_scheduler.enable('PROG');
    dbms_scheduler.create_job
    ('JOB',
    program_name => 'PROG',
    * event_condition => 'tab.user_data.event_type = ''JOB_OVER_MAX_DUR''' ||*
    *' or tab.user_data.event_type = ''JOB_START''',*
    queue_spec => 'sys.scheduler$_event_queue,auagent',
    enabled => true);
    I tried this too...
    dbms_scheduler.create_job
    ('JOB',
    program_name => 'PROG',
    * event_condition => 'tab.user_data.event_type = ''JOB_OVER_MAX_DUR''' ||*
    *' and tab.user_data.event_type = ''JOB_START''',*
    queue_spec => 'sys.scheduler$_event_queue,auagent',
    enabled => true);
    Need help
    Thanks...
    Edited by: user602200 on Dec 28, 2009 3:00 AM
    Edited by: user602200 on Dec 28, 2009 3:03 AM

    Hi,
    Here is complete code which I tested on 10.2.0.4 which shows a second job that runs after a first job starts and also when it has exceeded its max run duration. It doesn't have the condition but just runs on every event raised, but the job only raises the 2 events.
    Hope this helps,
    Ravi.
    -- run a job when another starts and exceeds its max_run_duration
    set pagesize 200
    -- create a user just for this test
    drop user test_user cascade;
    grant connect, create job, create session, resource,
      create table to test_user identified by test_user ;
    connect test_user/test_user
    -- create a table for output
    create table job_output (log_date timestamp with time zone,
            output varchar2(4000));
    -- add an event queue subscriber for this user's messages
    exec dbms_scheduler.add_event_queue_subscriber('myagent')
    -- create the first job and have it raise an event whenever it completes
    -- (succeeds, fails or stops)
    begin
    dbms_scheduler.create_job
       ( 'first_job', job_action =>
         'insert into job_output values(systimestamp, ''first job runs'');'||
         'commit; dbms_lock.sleep(70);',
        job_type => 'plsql_block',
        enabled => false, repeat_interval=>'freq=secondly;interval=90' ) ;
    dbms_scheduler.set_attribute ( 'first_job' , 'max_runs' , 2);
    dbms_scheduler.set_attribute
        ( 'first_job' , 'raise_events' , dbms_scheduler.job_started);
    dbms_scheduler.set_attribute ( 'first_job' , 'max_run_duration' ,
        interval '60' second);
    end;
    -- create a simple second job that runs when the first starts and after
    -- it has exceeded its max_run_duration
    begin
      dbms_scheduler.create_job('second_job',
                                job_type=>'plsql_block',
                                job_action=>
        'insert into job_output values(systimestamp, ''second job runs'');',
                                event_condition =>
       'tab.user_data.object_name = ''FIRST_JOB''',
                                queue_spec =>'sys.scheduler$_event_queue,myagent',
                                enabled=>true);
    end;
    -- this allows multiple simultaneous runs of the second job on 11g and up
    begin
      $IF DBMS_DB_VERSION.VER_LE_10 $THEN
        null;
      $ELSE
        dbms_scheduler.set_attribute('second_job', 'parallel_instances',true);
      $END
    end;
    -- enable the first job so it starts running
    exec dbms_scheduler.enable('first_job')
    -- wait until the first job has run twice
    exec dbms_lock.sleep(180)
    select * from job_output;

  • Creation of file through batch job scheduling

    Hi friends,
    I have a situation where I need to select vendor / customer and after that I need to select one of the option between invoice or payments when User select vendor then it should create a file through schedule batch job .
    I am not getting how to do it .
    Please help me if any one knows about it.
    Thanks in advance.
    Gaurav

    Which part? The creation of the file?  Since running in background, you would need to create the file using DATASET statements on the appliation server.  You will not be able to put the file on any frontend PC or server, only on the application server where you program is running.
    Regards,
    Rich Heilman

  • ABAP query to schedule through batch job

    Hi
    i have requirement to schedule batch job for ABAP query report and download the report data to local drive throuh batch job.
    we have created ABAP query report, and this report should run through batch job and download the report data to local drive,,
    please help, how we can solve this.
    Regards
    Vanraj

    Hi Vanraj,
    I have two topics to talk about:
    1st: in order to schedule a background job, try to do the following:
      - Go to transaction SQ01 and select your query
      - Check that you've already created a variant, containing the required selection data.
      - Instead of running in online, go to "Query > Execute > Exec.in background"
      - This will allow you to schedule the background job.
    2nd: it is NOT possible for a background job to download a file to a local PC.
    I hope it helps.
    Kind regards,
    Alvaro

Maybe you are looking for

  • Finder problem-can't sort some folders in list view

    Hi, I have a problem with some of my folders in Finder. I prefer to use 'list' view when working in Finder. However, in some of my folders the item bar is greyed out and I can't click the bar to sort. From the image below, the left image is the folde

  • Purchasing an Asset

    Hi  Gurus, FI department when wants to buy an asset, they directly raise an invoice, But the purchase order is created by MM through ME21N. What kind of purchase order should i be creating, What input parameters should i be giving in the PO.

  • Slow bootup and kernel panic on every shutdown

    2.8GHz Core 2 Duo - Mid 2009 4GB Ram 10.5.8 / 10.6.8 Computer takes about 10 minutes to start up, once it is up it runs noramlly. When I go to shutdown, i get a slow window shade effect followed by a kernel panic message. This process runs like clock

  • How do I call Vee functions from TestStand ?

    I wish to call Vee functions from TestStand steps. I am using Vee 6.01 and TestStand 2.0.

  • HT5361 i am unable to view my messages on my mail page.  any suggestions

    I am unable to view my e-mails on my mail page.  Are there any suggestions to remedy this please