Reg: Batch Jobs

HI All,
I have scheduled a Background Job at 1: 30 PM. This Batch Job creates the orders in SAP.
In the step I have given the program name and the variant. I have scheduled this run on every day at 1: 30 PM.
For the first time this Batch Job ran TWICE. I am not sure why this ran twice even I have scheduled it only once.
Due to this for the same data it has two orders. After this it ran only once every day.
But If I go and see in SM37 it shows only once. Where I can check whether the Batch Job has ran twice or how could this happen?
Thanks,
Shravan G.

Hi ,
If a job ran twice on the first time , then it should run 2 times everyday .
Possible some one must have explicitly run the program.
Please check the Spool of the backgroud to confirm this if the program has some write statements.
Thanks
supriya

Similar Messages

  • Reg Batch job

    Hello friends,
    There is a btach job say 'XYZ' , for which job frequency has been mentioned as 10min.(i.e periodic job). This job usually take 400-500 sec to complete. But, sometime it is taking more than 2000sec and more. So, in this case user ask basis/technical to cancel this job....
    Is there any way to give the condition, like if batch job is running for more than 1000sec than cancel the job?
    Thanking you.
    Bharat.

    Is there any way to give the condition, like if batch job is running for more than 1000sec than cancel the job?
    No... Batch jobs are specifically for that... long running jobs... if you were to put a limit on the time the batch processes can handle a request you will be in trouble.
    Basically you need to review the steps on the job, read the logs and analize the cause of the delay... you can trace it and get very detailed info.
    Regards
    Juan

  • Automatic batch job processing

    Hi all,
    I'm using a customized abap program to update data in one of the Controlling table. This abap prg is scheduled background to run twice daily.
    This program will generates batch job in sm35 and i have to manually process it so that the data in CO table will be updated.
    Could anybody tell me where should i configure so that the batch job in sm35 process automatically instead of process it manually.a

    Hello Suhana
    Check this link
    http://help.sap.com/erp2005_ehp_02/helpdata/en/2d/351b15448c11d189420000e829fbbd/frameset.htm
    Reg
    *assign points if useful

  • How to create a batch job through coding

    Hi Experts,
    How to create a batch job through coding?
    Regards
    Saroj

    Hi, below is the code.
    ***Create Variant for the job
    ***Get the dynamic variant name
      DATA: variant_name TYPE  varid-variant value 'test'.
      DATA: vari_desc LIKE varid,
            vari_contents LIKE rsparams OCCURS 0 WITH HEADER LINE,
            vari_text     LIKE varit    OCCURS 0 WITH HEADER LINE.
      CLEAR: vari_desc,vari_contents,vari_text.
      REFRESH: vari_contents[], vari_text[].
      vari_desc-mandt = sy-mandt.
      vari_desc-report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'.
      vari_desc-variant = variant_name.
      vari_desc-transport = 'F'.
      vari_desc-environmnt = 'A'.
      vari_desc-version = 1.
      vari_desc-mlangu = sy-langu.
    ***Varint Text
      vari_text-mandt = sy-mandt.
      vari_text-langu = sy-langu.
      vari_text-report = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'.
      vari_text-variant = variant_name.
      CONCATENATE 'job' 'Background' INTO vari_text-vtext SEPARATED BY space.
      APPEND vari_text.
    ***Partner
      IF ( p_partner-low IS NOT INITIAL ).
        vari_contents-selname = 'PARTNER'.
        vari_contents-kind    = 'S'.
        vari_contents-sign    = 'I'.
        IF ( ( p_partner-low IS NOT INITIAL ) AND ( p_partner-high IS INITIAL ) ).
          vari_contents-option = 'EQ'.
          vari_contents-low = p_partner-low.
        ENDIF.
        IF ( ( p_partner-low IS NOT INITIAL ) AND ( p_partner-high IS NOT INITIAL ) ).
          vari_contents-option = 'BT'.
          vari_contents-low = p_partner-low.
          vari_contents-high = p_partner-high.
        ENDIF.
        APPEND vari_contents.
      ENDIF.
    ***Contract Account
      IF ( p_cont_acct-low IS NOT INITIAL ).
        vari_contents-selname = 'CA_ACC'.
        vari_contents-kind    = 'S'.
        vari_contents-sign    = 'I'.
        IF ( ( p_cont_acct-low IS NOT INITIAL ) AND ( p_cont_acct-high IS INITIAL ) ).
          vari_contents-option = 'EQ'.
          vari_contents-low = p_cont_acct-low.
        ENDIF.
        IF ( ( p_cont_acct-low IS NOT INITIAL ) AND ( p_cont_acct-high IS NOT INITIAL ) ).
          vari_contents-option = 'BT'.
          vari_contents-low = p_cont_acct-low.
          vari_contents-high = p_cont_acct-high.
        ENDIF.
        APPEND vari_contents.
      ENDIF.
    ***Contract Object
      IF ( p_cont_obj-low IS NOT INITIAL ).
        vari_contents-selname = 'CO_OBJ'.
        vari_contents-kind    = 'S'.
        vari_contents-sign    = 'I'.
        IF ( ( p_cont_obj-low IS NOT INITIAL ) AND ( p_cont_obj-high IS INITIAL ) ).
          vari_contents-option = 'EQ'.
          vari_contents-low = p_cont_obj-low.
        ENDIF.
        IF ( ( p_cont_obj-low IS NOT INITIAL ) AND ( p_cont_obj-high IS NOT INITIAL ) ).
          vari_contents-option = 'BT'.
          vari_contents-low = p_cont_obj-low.
          vari_contents-high = p_cont_obj-high.
        ENDIF.
        APPEND vari_contents.
      ENDIF.
    ***Account Category
      IF ( p_ctra_acc_category  IS NOT INITIAL ).
        vari_contents-selname = 'P_CAT'.
        vari_contents-kind    = 'P'.
        vari_contents-low    = p_ctra_acc_category.
        APPEND vari_contents.
      ENDIF.
    ***filed_freq_to_change_from
      IF ( p_filed_freq_to_change_from  IS NOT INITIAL ).
        vari_contents-selname = 'P_TO_CH'.
        vari_contents-kind    = 'P'.
        vari_contents-low    = p_filed_freq_to_change_from.
        APPEND vari_contents.
      ENDIF.
    ***req_filed_freq_change
      IF ( p_req_filed_freq_change  IS NOT INITIAL ).
        vari_contents-selname = 'P_CHANGE'.
        vari_contents-kind    = 'P'.
        vari_contents-low    = p_req_filed_freq_change.
        APPEND vari_contents.
      ENDIF.
    ***Test Run p_tstrun
      vari_contents-selname = 'P_TSTRUN'.
      vari_contents-kind    = 'P'.
      vari_contents-low    = p_test_run.
      APPEND vari_contents.
    ***Update Filing Frequency Checkbox
      vari_contents-selname = 'P_FIL_FR'.
      vari_contents-kind    = 'P'.
      vari_contents-low    = p_update_filing_frequency.
      APPEND vari_contents.
    ***Update Incoming Payment Channel Checkbox
      vari_contents-selname = 'P_PAY_CH'.
      vari_contents-kind    = 'P'.
      vari_contents-low    = p_update_payment_channel.
      APPEND vari_contents.
    ***Update Filing Channel Checkbox
      vari_contents-selname = 'P_FIL_CH'.
      vari_contents-kind    = 'P'.
      vari_contents-low    = p_update_filing_channel.
      APPEND vari_contents.
    ***Use Current Filing Period Checkbox
      vari_contents-selname = 'P_CU_PER'.
      vari_contents-kind    = 'P'.
      vari_contents-low    = use_curr_per.
      APPEND vari_contents.
    ****Create Variant thru Function Module
      CALL FUNCTION 'RS_CREATE_VARIANT'
        EXPORTING
          curr_report   = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'
          curr_variant  = variant_name
          vari_desc     = vari_desc
        TABLES
          vari_contents = vari_contents
          vari_text     = vari_text.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ****Prepare all the date for scheduling job
    ***Get the print parameters
      DATA: params LIKE pri_params.
      CLEAR params.
      CALL FUNCTION 'GET_PRINT_PARAMETERS'
        EXPORTING
          mode           = 'CURRENT'
          no_dialog      = 'X'
        IMPORTING
          out_parameters = params.
      params-paart = 'X_65_255'."'X_PAPER'.
    ***Open The scheduling job
      DATA: job LIKE tbtcjob-jobname,
            jobcount LIKE tbtcjob-jobcount.
      CLEAR: job,jobcount.
      job = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'.
      CALL FUNCTION 'JOB_OPEN'
        EXPORTING
          jobname  = job
        IMPORTING
          jobcount = jobcount
        EXCEPTIONS
          OTHERS   = 4.
    ***Job Submit
      DATA: authcknam LIKE tbtcjob-authcknam.
      CLEAR: authcknam.
      authcknam = sy-uname.
      params-primm = space.
      CALL FUNCTION 'JOB_SUBMIT'
        EXPORTING
          authcknam = authcknam
          jobcount  = jobcount
          jobname   = job
          priparams = params
          report    = 'ZCTRAOBJECT_CAL_FILEDAMT_JOB'
          variant   = variant_name.
    ***JOB_CLOSE
      DATA: sdlstrttm TYPE tbtcjob-sdlstrttm,
            released LIKE btch0000-char1.
      sdlstrttm = p_job_start_time + 30.
      CALL FUNCTION 'JOB_CLOSE'
        EXPORTING
          sdlstrtdt        = p_job_start_date
          sdlstrttm        = sdlstrttm
          jobcount         = jobcount
          jobname          = job
        IMPORTING
          job_was_released = released.
    Regs
    Manas

  • Batch job

    Hi I am working on batch job .
    my program is printing invoice as well as downloading and I have run this program in batch,
    I am using the FM job_open , job_submit and job_close.
    but it is failing in job_submit with sy-subrc eq 1 .
    giving me error bad print parameter , I haven;t done this before.
    I think it should be option.
    CALL FUNCTION 'JOB_SUBMIT'
        EXPORTING
          authcknam = SY-UNAME  "tbtcjob-authcknam
          jobcount  = tbtcjob-jobcount
          jobname   = p_jobnam
          language  = sy-langu
           report    = c_reprot
          variant   = pvariant
        EXCEPTIONS
          OTHERS    = 01.
    could anybody pls guide me why it is so???
    Regards.
    Kusum.

    you can below code
    OPEN DATASET gv_file FOR INPUT IN TEXT MODE ENCODING DEFAULT
                                WITH SMART LINEFEED.
        IF sy-subrc EQ 0.
          WHILE sy-subrc IS INITIAL.
            READ DATASET gv_file INTO gwa_header_file.
            IF sy-subrc NE 0.
              EXIT.
            ELSE.
              APPEND gwa_header_file TO gt_header_file.
            ENDIF.
          ENDWHILE.
          CLOSE DATASET gv_file.
        ENDIF.
      ENDIF.

  • Display error message in batch job log

    Hello
    I have a batch job running and I have an error coming during some validation logic.
    The problem is I need to continue the batch job when this error message comes and it should not cancel the batch job as it is doing currently but display that error message in batch job log, there are more similar error messages coming in job log and job gets finished, but when my error message comes job gets cancelled.
    I cannot give it as info message as it will give wrong idea about message type.
    Is there any FM by which we can add message in job log?

    Sanjeev I have done that but problem is I do not want to give that as Information message but Error message only and continue processing.
    If you see in screenshot 3rd message is given by me as information and you can see error messages also 6th and 7th and job continued till it is finished
    Basically I want that 'I' to be displayed as 'E'.
    Display error message in batch job log 

  • 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

  • Report to be sent to a list of recipients in an e:mail (part of batch job)

    Hi,
    I need to generate a report using ALV functionality.
    Currently my report requirement is to sent to a list of recipients in an e:mail (part of the batch job set-up) and the recipients just download the report in a spreadsheet format. 
    Could you please give me the suggestions the way which I need to follow and how I will be able to set this report as a part of batch job which will send the report details to the users in the form of Email.
    Points will be rewarded for the answers.
    Regards,
    Ravi Ganji

    Hi,
    IN SM36..You will see a button for "Spool list recipient" which is next to the target server button..
    press that button..
    Give the email address in the recipient field..
    GIve the steps and start condition and then release the job..
    THanks,
    Naren

  • I Need to Create a report for batch jobs Based on Subject Area.

    Hi SAP Guru's,
    I need to create a report , that it must show the status of batch jobs Completion Times based on Subject area(SD,MM,FI).
    Please help me in this issue ASAP.
    Thanks in Advance.
    Krishna.

    You may need to activate some additional business content if not already installed but there are a lot BI statistics you can report on. Have a look at this:
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/46/f9bd5b0d40537de10000000a1553f6/frameset.htm

  • Batch job for collecting Blocked Deliveries

    Hi,
    Can anyone help me, i need to collect all the orders that have been blocked for delivery and send the results to an email address.
    I created a batch job gave the program for SD Documents blocked for deliveries, but it doesnt seem to work, can anyone please give a step by step procedure.
    Thanks alot,
    Michelle.

    1. T.code SM36- Here you will creating the job
    2. Give the appropriate variants and the back ground user id
    3. once this is done, go to the Spool receipient and give the email id where you want to send the mail to. Run the job now. You should receive the mail now, provide the connections are maintained.
    Hope this will resolve the issue.
    Mani

  • Duplicate deliveries getting created by batch job against STO

    Hi Experts,
    I am facing one issue where duplicate deliveries are getting created by batch job against Intercopmany STO.
    Scenario is PO having one line item with ordered qty of 8000kg.
    Through batch job, two deliveries got created on same day for PO line item.
    One delivery got created for 8000kg and another delivery has got created for 7000Kg. So user has deleted second delivery of 7000kg.
    Next day again the delivery got created for 8000kg for the same PO line item through batch job.
    I am wondering how the duplicate deliveries are getting created by batch job for PO even though it has no open items.
    All deliveries got created through batch job only as cross checked the user name in delivery.
    Kindly help to fix the issue.

    Hi Amit
    I assume you are talking about outbound deliveries.  In this case it would be worth checking the customer master record for the receiving plant.  In the sales area data there is a shipping tab which contains several settings used to control delivery creation for customers.
    It is possible to control how the system behaves when you have a stock shortage and restrict the number of partial deliveries.  This might help you control this situation and might be the cause.
    Regards
    Robyn

  • Batch Job not Generating Spool No

    Hi Experts,
    We had a custom program where we are printing multiple invoice in a single go i.e all invoices for a particular sales office are printed in a single spool request. for foreground execution it is running fine. But after creating variant of it on selection screen & submitting the program to Batch job it is not creating spool no when the job is finished what could be the reason.?
    Also i would like to tell you that we are asking user to give a invoice no range on the selection screen.
    Edited by: priyeshosi on Jan 4, 2012 5:03 PM

    Hi priyeshosi ,
           If you use function modules start with GUI_* or  WS_* in your report , then you can't generate the spool.
    reason for this, Please check this link,
    http://www.sap-img.com/ab004.htm
    Regards,
    Selva M

  • Two Deliveries did not go through Batch Job Runing

    Hi,
    In this company every evening the automatic batch Job for Billing due list is run but on Nov 23 one Deliver and on Nov 30 another delivery has not gone through i.e. the invoices were not created for these two deliveries.
    I checked in VF01, the individual invoice is being created. The user is asking the reason for this and how to prevent this type of situation in future.
    I don't know the Batch Job number and I think it has been done in VF06.
    Please guide me how I can solve this issue.
    Thanks,
    Jans

    Hello Tushar,
    Thank you for your reply. I don't know the Variant name also and I don't know the Batch Job number eirther. The user is not aware of these things. I tried to find out from VF06 but I could not figure out anything.
    Please explain me your sentece "Execute billing program in foreground and check". you mean to say after creating the same scenario in the quality, I will run the Billing program ( I will take the Billing program from the VF01). If I am correct please let me know.
    Regarding debugging,  if I have to do how I can do it. I know to go to Debuggiing mode if I put in the command field  "/h" , I will be in the debugging mode. But my question is which transaction Should I use VL02N or VF01 to find out the Problem
    I have mentioned earlier that I went to VF01 and these deliveries are fine to create invoices but the User is interested to know the Problem and to find out the cause so that they can prevent it occuring in future.
    Thanks,
    Jans

  • Invoice not generated through Batch Job

    Hello
    I am facing a Problem in Batch Job. When the delivery is created through VL01n transaction manually, the Invoice for this delivery is created automatically. However for one of the delivery the Invoice was not created automatically through Batch Job.
    Can some one help me how to go further on this problem? I have checked the Batch Job and found that it is schedule daily, However the Delviery was created after this schedule time. So ideally this delivery should have been considered for automatic generation of Invoice in the next schedule run of the Batch Job. However this has not happened.
    Any views on this
    Regards
    Screams

    Hello,
    Please check the billing date and the billing date which is in the variant. in the variant there could be that the billing date might have been specified from and to, in any case billing date for the document is not past the variant billing date it will pick up.

  • Batch job creation for sending email if the invoice is aged

    Positive confirmation: Send system notification to the requestor if:
    a) An invoice is received and GR is not yet posted in the ECC system.
    b) An 'aged' invoice and GR is not yet posted in the ECC system.
    This requirement is for USA only. i.e., we have only one company code which is 8960.
    Identifiers of the invoice are
    Company Code = u20188960u2019
    Invoice Document Type = u2018R9u2019
    Use table EKBE for relationship between Invoice, Goods Receipt and Purchase Order.
    The field EKPO-BEDNR contains the Shopping Cart Number
    Implementation Strategy
    1. To send email if the invoice is aged.
    Create a program that will run as a job. This job will frequently check for invoices related to SRM Shopping Carts received from E2OPEN. If an invoice is aged and there is no Goods Receipt posted through confirmation from SRM, then an email will go out from ECC system to the requestor. Using the Shopping Cart number on PO, find the requestor information (email ID) from SRM through an RFC call. This job will run once in a day and should have a parameter in the program for the age of the Invoice.
    Both the emails should contain a link (To be taken from SRM system, to be supplied) to log into SRM system. The email will also contain the Shopping Cart number and the Description of the item, and a message to Confirm this, including age of the invoice if aged.
    Please let me know how to create the batch job.
    Regards,
    Venkat
    Edited by: VenkatG on Sep 1, 2009 3:14 PM

    Do not pass the COMMIT_WORK flag... Leave it blank. Any transaction for the data integrity, one should never use COMMIT WORK related statements. Normally SAP transactions will have the COMMIT WORK at the end of transaction which is enough for any thing that is added part of the customer exits...
    Hope this helps.
    Regards
    Anjaiah

Maybe you are looking for