Calling FM in Updae task

Hi all,
We have a customised FM called in update task. Wanted to know following points forhtis scenario:
1. Should this FM have exceptions or raise exceptions for error handling?
2. If this FM fails / raises exceptions, what will happen to other processing being carrried out by update task? Will update task be terminated or there will be erroneous entry for this FM and other processing will be carried out by upadate task?
Regards,
Akshay

Hi akshay,
1. Should this FM have exceptions or raise exceptions for error handling?
  U may have, but it would be not of much use.
   BCOS, the exceptions cannot be avaialble and as wellas
   handled IMMEDIATELY after calling the FM.
2.
this FM fails / raises exceptions, what will happen to other processing being carrried out by update task? Will update task be terminated or there will be erroneous entry for this FM and other processing will be carried out by upadate task?
The whole FM will terminate
and the remaining task will NOT Be carried out.
It will send a mail to the concerned user id
in sap inbox saying that UPDATE TERMINATED.
regards,
amit m.

Similar Messages

  • How do I SUBMIT from a user exit which is called in an update task?

    I want to send an idoc each time there is a goods movement. So, in the user exit of MB_POST_DOCUMENT I am calling IDOC_OUTBOUND_WRITE_TO_DB. This creates an idoc of status 30. However, in order to send the idoc I want to SUBMIT RSEOUT00. I get an ABAP dump on the SUBMIT because MB_POST_DOCUMENT is called in the update task, where SUBMIT is not allowed. Do you know any other way I can execute RSEOUT00 at this moment without having to call it later in batch?
    Thanks!!
    Joy

    Hi Naren,
    Your reply is VERY helpful!! Thank you so much.
    I added  CALL FUNCTION 'RSAP_IDOC_EINBUCHEN_VOM_BIW_4' IN BACKGROUND TASK. I am no longer getting the dump, but my idoc is still a status 03 and not a status 30. Should I expect to see it turn to a status 30? I ran this function directly in SE37 -> Test with the same parameters and it ran perfectly and turned the idoc to a status 03. Is there anything else I need to do in the code?
    Thanks again,
    Joy

  • Creation of spool for job created by calling FM in background task

    Hi Gurus,
    1.Wanted to confirm if it is possible to attach spool to the job that has been created by calling a function module in background task.
    Currently I have created one RFC enabled FM and called it in background task. It runs fine, and the job is created which can be seen in SM37. But it does not contain the spool even if the RFC FM contains the code for list ALV.
    2. Also is it possible to control the name of the job created by calling the RFC FM in background task?
    Code for calling the FM is given below(ZK_XX is th RFC FM):
    CALL FUNCTION 'ZK_XX' IN BACKGROUND TASK
    CALL FUNCTION 'START_OF_BACKGROUNDTASK'
    EXPORTING
       startdate       = sy-datum
       starttime       = sy-uzeit
      NOSEND          = ' '
    COMMIT WORK.
    Thanks a lot for your help!!
    Warm Regards,
    Raveesh

    Thanks for replying.
    I need to do the processing in background. Hence using 'IN BACKGROUND TASK' addition.
    Please let me knowif you have some idea.
    Thanks & Warm Regards,
    Raveesh

  • Call function '' in update task - code inside is BDC

    hi to all,
    in using call function '' in update task
    the code inside is bdc. is this possible? 
    my scenario is from VA01 then post billing to VF01,
    i am using user-exit MV45AFZZ in subroutine userexit_save_document.
    i need to post billing after va01 save.
    thanks to all.

    To debug in the update task, you have to set that option on in the debugger.
    If the user exit runs in the update task, then you must have something like: CALL FUNCTION MODULE my_fm_to_do_BDC STARTING NEW TASK.   ( This function module should wait until the SD is created.  You might want to check in a loop, with a WAIT command.   Once it is created, then you start your BDC and CALL TRANSACTION. )  This is NOT an update function module.  It may need to be RFC enabled - I'm not certain at the moment.
    If the user exit doesn't run in the update task, you need to create, and call from the user exit, an update function module that calls your function module "my_fm_to_do_BDC" STARTING NEW TASK. 
    The attribute "collective run", which is V3, means that the update task won't run that function module until a regularly scheduled job on the application server runs.  For processing to run during the rest of the SD save, you must use V1 (could be run in any order with other V1s) or V2 (Will run after V1, but in any order with other V2s).  Typically, I use V2 for this kind of task.
    matt

  • [svn] 3526: The call to the TestNG task in the configuration test framework had haltOnFailure set to true which is not what we want .

    Revision: 3526
    Author: [email protected]
    Date: 2008-10-08 14:21:40 -0700 (Wed, 08 Oct 2008)
    Log Message:
    The call to the TestNG task in the configuration test framework had haltOnFailure set to true which is not what we want. Failures will get logged to the database at which point we can review them.
    Also fix a failing test.
    Modified Paths:
    blazeds/trunk/qa/apps/qa-regress/testsuites/config/build.xml
    blazeds/trunk/qa/apps/qa-regress/testsuites/config/tests/messagingService/jms/NoJNDINameT est/error.txt
    blazeds/trunk/qa/apps/qa-regress/testsuites/config/tests/messagingService/jms/NoJNDINameT est/services-config.xml

    I have a standard Ant build script for signing a jar file. I import it into my master Ant build files with
    <import file="Sign.xml"/>
    and then in my master Ant script I setup the name of the jar file e.g.
    <property name="jar-file" value="${fun}/FunApplet.jar"/>
    and then invoke a target
    <target name="sign-jar" depends="jar, sign">
    </target>
    Since this target (sign-jar) depends on target 'jar' and target 'sign' it executes the 'jar' target and then the 'sign' target that is contained in Sign.xml.

  • Call function in background task... How to get the result?

    I want to use Call function in background task parameter.
    But I cannot find the result of this function. (No export parameter, no table result, no exception)
    How to get the result of this function module? Correct or not?

    Hi Heinz,
    You can check the result in SM58 transaction.
    For more information pls. refer this thread :
    No IMPORTING parameters allowed in CALL FUNCTION IN BACKGROUND TASK
    Best regards,
    Prashant

  • How to call imported ant target/task in Java

    Hi,
    Can anybody advice me how to call an ant target/task, which is
    "<import/>"ed from another build file, from within Java code?
    Here's my Java code:
    import org.apache.tools.ant.*;
    import java.io.*;
    import java.util.*;
    public class MyTest
    private Project project;
    public void init(String buildFile, String baseDir) throws
    Exception
    project = new Project();
    try { project.init(); }
    catch (BuildException e)
    { throw new Exception("The default task list could not be
    loaded."
    // Set the base directory. If none is given, "." is used.
    if (_baseDir == null) _baseDir=new String(".");
    try { project.setBasedir(_baseDir); }
    catch (BuildException e)
    { throw new Exception("The given basedir doesn't exist, or
    isn't a directory."); }
    if (_buildFile == null) _buildFile=new String("a.xml");
    try { ProjectHelper.getProjectHelper().parse(project, new
    File(_buildFile)); }
    catch (BuildException e)
    { throw new Exception("Configuration file "+_buildFile+" is
    invalid, or cannot be read."); }
    public void runTarget(String _target) throws Exception
    // Test if the project exists
    if (project == null) throw new Exception("No target can be
    launched because the project has not been initialized. Please call the
    'init' method first !");
    // If no target is specified, run the default one.
    if (_target == null) _target = project.getDefaultTarget();
    // Run the target
    try { project.executeTarget(_target); }
    catch (Exception e)
    { throw new Exception(e.getMessage()); }
    public static void main(String args[])
    try{
    MyTest mytest=new MyTest();
    mytest.init("c.xml",".");
    mytest.runTarget(null);
    }catch(Exception e)
    e.printStackTrace();
    Here are my build files: (they look almost the same. But it's only to see if <import> works.)
    1.c.xml:
    <project basedir="." default="runtests" name="TestC">
    <import file="a.xml"/>
    </project>
    2. a.xml:
    <project basedir="." default="runtests" name="TestA">
    <target name="runtests" depends="">
    <mkdir dir="ttt"/>
    </target>
    </project>
    If I directly set build file "a.xml" in MyTest.java, everthing works
    well. However, if set "c.xml" then do task "<mkdir dir="ttt"/>" defined
    in "a.xml" which was imported by "c.xml", when running, I got an
    exception. Looks like it can't parse my c.xml which include "import".
    BTW, I'm using ant 1.6.2, and running "ant -f c.xml" was ok.
    Did I miss any classpath or something? Any idea?
    Thanks,
    Amy

    I have a standard Ant build script for signing a jar file. I import it into my master Ant build files with
    <import file="Sign.xml"/>
    and then in my master Ant script I setup the name of the jar file e.g.
    <property name="jar-file" value="${fun}/FunApplet.jar"/>
    and then invoke a target
    <target name="sign-jar" depends="jar, sign">
    </target>
    Since this target (sign-jar) depends on target 'jar' and target 'sign' it executes the 'jar' target and then the 'sign' target that is contained in Sign.xml.

  • Use of CALL FUNCTION - STARTING NEW TASK parameter_list.

    SELECT strt_code
                 city_code
                 commu_code
                 regiogroup
          INTO TABLE gt_adrstreet1
          FROM adrstreet
          FOR ALL ENTRIES IN gt_street_district
          WHERE strt_code EQ gt_street_district-strt_code.
    To optimize the performance of teh above query I am planning to use call function CALL FUNCTION - STARTING NEW TASK .....
    by spliting the above internal table gt_street_district into two internal tables and use the value of each internal table into two different queries and these queries will be put in call function - start new task ....so that these queries are run in different workprocess and thus improve the performance of the program.
    Can you please let me know if this would be a good option and also how to implement the same.
    Thanks.....

    >To optimize the performance of teh above query I am planning to use call function CALL FUNCTION - STARTING NEW TASK .....
    nonsense! You should not try parallel processing for a non-optimized SELECT statement.
    Better add the first key field of the WHERE condition as said above and check
    + whether the driver table is empfty
    + and whether there are duplicated entries
    ... And it is also a good idea to really use the SINGLE RECORD BUFFER, therefore you must write
    field-symbol:  <fs>  type ...
    LOOP AT gt_street_district ASSIGNING <fs>
       SELECT *
                    INTO TABLE gt_adrstreet1
                    FROM adrstreet
                    WHERE counrty =
                     AND       strt_code = <fs>-strt_code.
    ENDLOOP.
    Then it will be extremely fast!

  • Problem when using Call FM IN UPDATE TASK.

    we plan to update ztable using Call FM in update task, and write the success/error message into log.
    Does below is right??  I found the commit work can not be used here. Thanks..
    CALL FUNCTION 'ENQUEUE_ETABLE'.
    IF sy-subrc = 0.
    CALL FUNCTION 'update_ztable'' IN UPDATE TASK.
    Endif.
    COMMIT WORK and wait.
    IF sy-subrc <> 0.   
         ROLLBACK WORK.
         write error log.
    Else.
        Write successful log.
    Endif.
    CALL FUNCTION 'DNQUEUE_ALL'.

    Hi ,
    Please see the refernce of UPDATE FUNCTION MODULES:
    UPDATE FUNCTION MODULE
    -In the attributes tab, under processing type, choose Update Module, 
    Start Immediately. Define your import parameters, enter the source
    code, All validations should have been done prior to the call to this
    function module, so all you need in the source, is the updating of the
    database, INSERT, MODIFY, UPDATE, whatever.
    -When you call you function module, use IN UPDATE TASK, after the call, 
    COMMIT WORK. The commit work will trigger the db update.
    Why do we use this " In Update Task " ??
    The main update technique for bundling database changes in a single  
    database LUW is to use CALL FUNCTION... IN UPDATE TASK.
    How do we Use ??
    A typical R/3 installation contains dialog work processes and at least one update work process. The update work processes are responsible for updating the database. When an ABAP program reaches a COMMIT WORK statement, any function modules from CALL FUNCTION... IN UPDATE TASK statements are released for processing in an update work process. The dialog process does not wait for the update to finish. This kind of update is called asynchronous update.
    What is the Use... ??
    Asynchronous update is useful when response time from the transaction is critical, and the database updates themselves are so complex that they justify the extra system load
    Real time scenario.
    Suppose a user wants to change an entry in a database table, or add a new one. He or she enters the necessary data, and then starts the update process by choosing Save. This starts the following procedure in the ABAP program:
    Firstly, the program locks the database entry against other users, using the enqueue work process (or the message server in the case of a distributed system). This generates an entry in the lock table. The user is informed whether the update was successful, or whether the lock could not be set because of other users.
    If the lock is set, the program reads the entry that is to be changed and modifies it. If the user has created a new entry, the program checks whether a record with the same key values already exists.
    In the current dialog work process, the program calls a function module using CALL FUNCTION... IN UPDATE TASK, and this writes the change details as an entry in table VBLOG.
    When the program is finished (maybe after further dialog steps), a COMMIT WORK statement starts the final part of the SAP LUW. The work process that is processing the current dialog step starts an update work process.
    Based on the information passed to it from the dialog work process, the update work process reads the log entries belonging to the SAP LUW from table VBLOG.
    The update work process passes this data to the database for updating, and analyzes the return message from the database. If the update was successful, the update work process triggers a database commit after the last database change and deletes the log entries from table VBLOG.
    If an error occurred, the update work process triggers a database rollback, leaves the log entries in table VBLOG, flags them as containing errors, and sends a SAPoffice message to the user, who should then inform the system administrator.
    The corresponding entries in the lock table are reset by the update work process.
    Q:We are calling Sales Order Change in update task inside the user Exit MV50FZ1. We can see that the FM is called in update task after the commit work and the return of the FM shows the success message. But still the changes are not saved to the DB.
    A: check sm21 or sm13 to see if the update was successful  .. In SM21 I checked. It is giving me the error Transaction Failed
    Reward if useful
    Thanks
    Jagadeesh.G

  • Save Order - Call function in background Task

    Hi all,
    I have written a function module which is called in order save Badi and copies the system status on the Master contract to the sub contracts.
    This works fine but when I call this function in background task the status is not getting copied over.For testing I have created a program similar to function module and scheduled that in background and this was working as required.
    Can someone please let me know if I missed out anything or how can i resolve this issue.
    Any inputs in this regard would be very helpful.
    Thanks and regards,
    Vijay

    Hi Heinz,
    You can check the result in SM58 transaction.
    For more information pls. refer this thread :
    No IMPORTING parameters allowed in CALL FUNCTION IN BACKGROUND TASK
    Best regards,
    Prashant

  • Queries on  Call Function In update Task

    Hi ,
         I have a requirement where I have to update a ztable in background once I execute the report.THe requirement is to exceute the updation in background.Will
    Call funtion in update task help me?If yes, I have never used call function in update task .so can you guide me on the same.If no, how best can  I acheive this?
    Thanks & Regards,
    Jyotsna

    Hi,
    look F1 to call function pls:
    It is not executed at once, but the data passed with EXPORTING or TABLES is placed in a database table and a subsequent COMMIT WORK then causes the function module to be executed by the update task.
    -> so in error case you can analyse err. with TA SM13
    (update records)
    regards Andreas

  • How to Call an ADF Bounded Task Flow Located in Another Web Application

    Hi.
    I'm working in JDev 11G TP3.
    I've read the section from the 11G documentation on Working with Task Flow Activities,
    specifically the section 15.5.3 on How to Call an ADF Bounded Task Flow Located in Another Web Application.
    I've followed the instructions but still can not seem to call another task flow in another application correctly.
    Can someone send a small example specifying how the (TaskFlow Reference) section
    should be filled in, and just a general simple outline of process to set the whole process up.
    Thanks

    Your EL for the remote-app-url needs to return something like this
    "http://www.acme.com:80/myapp/faces/adf.task-flow"
    where "http://www.acme.com:80/myapp/faces" is the root of the url you'd normally use to access the remote application.
    I filed two bugs:
    bug 6944247 to improve the documentation
    bug 6944246 to fix the fact that you currently have to specify the 'adf.task-flow' part. You shouldn't need to do that. But doing so for now will get it to work.

  • COMMUNICATION_FAILURE in CALL FUNCTION STARTING NEW TASK/Background task

    Hi friends,
    I am trying to use a FM in a Print Program (when user prints a document), using
    CALL FUNCTION STARTING NEW TASK 'TASK' DESTINATION 'NONE'.
    The program is triggered from VL02N tcode.
    But it's giving an exception - COMMUNICATION_FAILURE. Message is Error when opening an RFC connection
    I also tried
    CALL FUNCTION IN BACKGROUND TASK as Separate Unit
    then error message pops up - Database error when recording transactional RFC
    We are attaching a PDF file of the print to content server within this function module and because the "attaching" takes a while, this part needs to be detached from the print program so that we can avoid performance issue.
    I can't figure out the issue. i gues this is happening because print program is already running in Update task. I also tried with RFC enabled FM. Please help me resolve/understand the issue.
    Appreciate your help.
    Regards,
    Ronjan.

    Hi Ronjan,
    COMMUNICATION_FAILURE. Message is Error when opening an RFC connection
    I guess the reason for the above is that every RFC call synchronous/Asynchronous issues a DB COMMIT and we cannot have DB COMMITs in the V1/V2 updates, please go through the link below.
    http://help.sap.com/saphelp_nw70ehp2/helpdata/en/23/e9aa61638e404d81575e939b5cd847/frameset.htm
    Now, the possible solutions i can think of are,
    1) Call the FM in update task delayed start and try.
    2) Or create a report program and use SUBMIT (look at the job options as well).
    @Mainak
    3. Write a statement COMMIT WORK AND WAIT. This will actually invoke the FM
    Mainak, this will lead to a Update termination, as the program is running in an update task.
    Regards,
    Chen

  • It is possible to call updateTask for suspended tasks ?

    Hi,
    I want to make this:
    1 - Suspend Task - this step works
    2 - Update Task - setting the expiration date time.
    The step 1 works, but when i call the update task seting the expiration date time i getting this error:
    Invalid action on workflow task or user does not have privilege to perform this action.
    Action UPDATE on task 3527de37-d3c2-459d-b50a-d8f6ba3563bd cannot be performed by weblogic.
    Make sure that the action is valid with respect to the current state of the task or ensure that the user has privilege to perform this action on the workflow task.
    I checked the privileges for the user, this is not the problem.
    This step alert me: "Make sure that the action is valid with respect to the current state of the task"
    It is possible to call updateTask for suspended tasks ?
    If no, it is possible to make a rule or configuration for to expirate tasks that have suspend state for 30 days or more , for example ? how to do this ?
    Thanks.
    Victor Jabur.

    Hi !! I am beginning with BPEL, and the types of questions you make in many cases are exactly what I am looking for. ¿Could we share knowledge? By the way I am trying to update task without success. If I found a solution I will share It.
    Greetings

  • Parallel Processing Issue : call function starting new task

    Hi
    I am using the parallel processing functionality using the call function new task  destination in group default  Performing    on end of task  inside a loop ( i am splitting the internal table )
    However when i am debugging the code, i am able to see the function module( it opens a new session in debugging ) ,  and i see that new task is started after the RFC Function module is executed .
    How is this parallel processing ? I mean the new task starts after control returns back to main program , after the execution of the RFC FM.
    I thought the idea was to have the same FM executing in multi threads. So that time is saved.

    Thanks for the answers.
    There were too many  complications in the 'call function in new task '  option.
    So we are trying it with the job submit option. So we are splitting up the data into smaller tables and submiting it with this statement : Submit  'prog' with selection-table 's_sel' via job 'job' and return .
    Thanks

Maybe you are looking for

  • Dunning Letters

    Hi all, I want to have all levels (10) of dunning letters. Where can i find/open it whitout using the Dunning Wizard? Thanks in advance, Chief Edited by: Philip Eller on Jul 4, 2008 10:14 AM

  • How do i get my books on ibooks to show on my ipod or iphone?

    right now i can only see it for iPad

  • How do I get the Music icon back onto my iPhone 4S?

    I just got an iPhone for my birthday, the iPhone 4S, and I was getting everything from my iPod to my iPhone. It worked perfectly, and I was deleting some unwanted apps. I was moving apps around, too, and when I moved one close to the bottom where Pho

  • Credit group in sales order

    Hi How we link credit group to sales order ? Regards Prabudh

  • Reservation via purchase requisition

    How to set up connection between purchase requisition (PR) and reservation? The workflow must be: PR (Purchase requisition) => reservation => MIGO (A07 goods issue, R09 reservation) purchase requisition must be connected to goods issue. How it would