Rollback for database updates FMs

Hi,
I'm using function modules : ISU_DB_EVER_UPDATE & FKK_ACCOUNT_UPDATE for updating the tables FKKVKP & EVER respectively. These FMs seem to perfrom a commit before leaving. I've to update multiple records. But if there's an error while updating, say, 4th record the chnages made to the first 3 records have to be reverted back.
Right now records are being updated one by one in the table.
Does anyone know a way through this problem?
Thanks...

The Fm ISU_DB_EVER_UPDATE doesn't have any flag like that & for FKK_ACCOUNT_UPDATE I'm not being able locate it.
One more thing, these tables are to be updated one after the other. So if there's any error, changes are to be reverted back on both of these tables.
Thanks...

Similar Messages

  • Polling for database updates fails to update sequence file/table

    I have a small system to poll for changes to a database table of student details. It consists of:
    Database adapter, which polls the database for changes, retreives a changed row, and passes the generated XML to -
    "receive" router service, which simply passes the retrieved database XML data to -
    "execute" router service, which transforms the XML and passes the new message to -
    File Adapter, which writes the transformed XML to a file.
    The problem is that the database polling is not updating the sequence recorder - I have tried using a sequence file which stores the personnumber, a sequence table which stores the personnumber and a sequence table which stores the last-updated timestamp. In all cases the database adapter successfully reads the sequence file/table and retreives the correct row, based on the sequence value ( I have tested this by manually changing the sequence value), the data is transformed and a correct xml file is created, but the system then fails to update the sequence file/table so that when the next polling time comes around the very same database row is extracted again and again and again.
    In the ESB control panel I have one error: "Response payload for operation "receive" is invalid!"
    The Trace is:
    oracle.tip.esb.server.common.exceptions.BusinessEventRejectionException: Response payload for operation "receive" is invalid! at oracle.tip.esb.server.service.EsbRouterSubscription.processEventResponse(Unknown Source) at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(Unknown Source) at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(Unknown Source) at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(Unknown Source) at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(Unknown Source) at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(Unknown Source) at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(Unknown Source) at oracle.tip.esb.server.dispatch.BusinessEvent.raise(Unknown Source) at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(Unknown Source) at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.processMessage(Unknown Source) at oracle.tip.esb.server.service.impl.inadapter.ESBListenerImpl.onMessage(Unknown Source) at oracle.tip.adapter.fw.jca.messageinflow.MessageEndpointImpl.onMessage(MessageEndpointImpl.java:281) at oracle.tip.adapter.db.InboundWork.onMessageImpl(InboundWork.java:1381) at oracle.tip.adapter.db.InboundWork.onMessage(InboundWork.java:1291) at oracle.tip.adapter.db.InboundWork.transactionalUnit(InboundWork.java:1262) at oracle.tip.adapter.db.InboundWork.runOnce(InboundWork.java:501) at oracle.tip.adapter.db.InboundWork.run(InboundWork.java:401) at oracle.tip.adapter.db.inbound.InboundWorkWrapper.run(InboundWorkWrapper.java:43) at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242) at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215) at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:819) at java.lang.Thread.run(Thread.java:595)
    The payload is:
    <PersonCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/ISSSimIN">
    <Person>
    <name>Bob</name>
    <surname>Stupid</surname>
    <istatus>2</istatus>
    <active>Active</active>
    <personnumber>3001</personnumber>
    <role>Staff</role>
    <organization>TEX</organization>
    <updateTimestamp>2007-11-29T14:06:55.000+00:00</updateTimestamp>
    </Person>
    </PersonCollection>
    The payload above is the XML output from the Database adapter, the xsd for which was autogenerated by JDeveloper, so I don't understand how it can be invalid.
    I have only been working with ESB for 3 days, but half of that time has now been spent stuck on this issue. Anyone got any ideas??
    Richard

    You need to be careful. Submit and committing to the database are two different things.
    Submit on a page (and autoSubmit the property) are only posting the changes you typed into the field, back down to the application server. NOTHING is happening with the database at this point. So the applications's internal "cache" of records (using something like ADF BC) is holding the changes but the database doesn't know anything. So if you quit now, no changes will go to the database.
    These changes onlyget submitted down to the app server when you do some sort of action like press a button. Simply navigating fields will be doing nothing back to the app server. If you add autoSubmit then you will automatically submit the changes on that field down to the app server when you leave the field (but again, this is not touching the database)
    You have to explicitly add a COMMIT operation to save those changes to the database.
    Maybe if you try in a simple EMP example and send us your findings we can help direct you further.
    Regards
    Grant

  • Passing variables along url for database update of record?

    Hi,
    Over past few days i have been asking questions about dreamweaver CS4 database tools stating that i dont understand them.
    Well things have change now and i am loving cs4 even more. I watched over 10 videos teaching how to use the database tools in dreamweaver and i have successully saved myself from buying something like datassist etc saving money and realising there is more functionality by using what is already built into dreamweaver.
    I basically have a list page that lists all records from database, 15 records per page, a delete page, insert page and update page.
    What i am focusing on with some help is the list page and update page.
    Using dreamweaver tools built in when i click on the unique id on the list page it bines the id to the url and loads the update page with all user details intact great stuff. Now on the update page i set it to filter by id and url parameter which obviously works and needs to be as i am using the id link.
    Thing i want to do now is link the username and email address to the update page like i did for the id, problem is when i create the link using dreamweaver tools same like i did for ID apart from this time it passes the username to the url which is good but it does not show the users information on update page.
    Now i think this maybe something to do with on the update page that it is filtered to id and url paramenter, so how do i basically link the username and email address to the update page so when i click on the username or email address it shows there information on the update page?
    it works fine for id but i think because it is set to filter via id url parameter why it wont work the username and email address so i am trying to figure out how to come over this so i can click on username or email address and let the same thing happen as when i do for ID.
    Now sorry i don't think this may make any sence i am relatively new to dreamweaver and doing my best to explain.
    Thank you
    guypc

    Hi i am sorry for confusing.
    I have a database that has
    id
    status
    username
    first_name
    last_name
    email
    password
    ip
    date_time
    activation key
    now on my list page i have it showin: ID / Status / Username / First Name / Last Name / Email
    now after creating a recordset and making it show 15 records per page etc i then clicked on the id in table and choose from properties window browse (the folder icon) then selected the file update.php and then clicked on parameters gave the name id and value id so when i then click on a users id  it takes me to the update.php page and shows there information as it suppose to by passing the user id along the url.
    This is fine. now i want to make the username and email address do the same so when i click on them it takes me to the update page and loads the user information from DB like it does with the ID. Basically same thing but different text link.
    Is that better explained?
    it just basically allows me to select either id, username or email address instead of just id, just preference really.
    thank you
    guypc

  • Use RFC Lookup in Graphical Mapping for Database Update

    Hello,
    I am wondering whether the RFC Lookup function in graphical mapping provides the same functionality as a general RFC function call.
    In detail I would like to update a database table using a RFC which just takes some input parameters but does not use any output parameters. Would this work too as the name "lookup" implies that it might just be possible to read something?

    HI,
    Refer these links:
    RFC Lookup by michal
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/8e7daa90-0201-0010-9499-cd347ffbbf72
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/406642ea59c753e10000000a1550b0/content.htm
    DB lookup - /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    Regards,
    Nithiyanandam

  • How to check for database updation?

    Hi All,
    I have a JTable in my Porgram.Wherein JTable displays all the records from a particular table.As and when the database is getting new records ,I want my JTable also to be updated .How can i do that?
    can i use a Timer?
    Thanks,
    Aarthy

    Not sure if this works, but I think it should:
    Create a timer
    public static final int INTERVAL = somevalue;
    timer = new Timer(INTERVAL, new ActionListener() {
                   public void actionPerformed(ActionEvent evt) {
    if (done) {
    timer.stop();
    model.setDataVector(....,....);
    suppose the method you are running is call theMethod(), then:
         class ActualTask {
              ActualTask() {
         theMethod();
    done = true;
         public void go() {    //download the swingworker class from http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html
              final SwingWorker worker = new SwingWorker() {
                   public Object construct() {
                        done = false;
    timer.start();
                        return new ActualTask();
              worker.start();     
    So, this is running the timer on a thread. You can do other stuff at the same time.

  • I am trying to update My Microsoft Office 2011 14.4.2 for mac update cannot close Microsoft Database Daemon or SyncServices Agent how do i do this?

    Help, I am trying to update My Microsoft Office 2011 14.4.2 for mac update cannot close Microsoft Database Daemon or SyncServices Agent how do I do this please?

    Launch Acitvity Monitor in your Utilities foilder and search for both proccess and quit.

  • Infoview prompts for database logon screen when updating dynamic parameter

    I have already set up initial database ID/PW for the report in CMS, but when I I tried to update my parameter to schedule the report, it is requiring the user to enter database ID/PW again........Is there a way to set this up so that the user can bypass this step since it is quite annoying?
    Thanks.

    Is your lov created Business View Manager? If it is, you can store the userid and password in the data connection your business view is based on.
    1) Start Business View Manager. Close the default screen that appears.
    2) Click View > Repository Explorer on the menu bar.
    3) Expand the Dynamic Cascading Prompts folder. Locate the "Data Connection" for the appropriate dynamic parameter. It will be in the form of <parameter_name>_DC (i.e. it will have the name of the parameter and then '_DC').
    4) Double-click the Data Connection. "Property Browser" will appear.
    5) Type the database user name and password in that Property Browser.
    6) Set the Runtime Prompt to Never Prompt.
    7) Save the changes to the Data Connection.
    The prompt for database logon information will no longer appear when changing parameter values.
    Hitomi

  • Database update failed for some organizations when installing Update Rollup 1 for Microsoft Dynamics CRM 2013 Service Pack 1

    Hi, 
    We get the following error in the logfile when we try to install the latest update for CRM: (KB2953252)
    Does anyone know how to fix this problem? 
    09:10:41|   Info| Database update install failed for orgId = 35e7ca08-43fb-4440-ba18-acfc3f42e115.  Continuing with other orgs.  Exception: System.ArgumentNullException: Value cannot be null.
    Parameter name: type
       at System.Activator.CreateInstance(Type type, Boolean nonPublic)
       at System.Activator.CreateInstance(Type type)
       at Microsoft.Crm.Setup.Database.DllMethodAction.Execute(Guid organizationId)
       at Microsoft.Crm.Setup.Database.DatabaseInstaller.ExecuteReleases(ReleaseInfo releaseInfo, Boolean isInstall)
       at Microsoft.Crm.Setup.Database.DatabaseInstaller.Install(Int32 languageCode, String configurationFilePath, Boolean upgradeDatabase, Boolean isInstall)
       at Microsoft.Crm.Setup.Database.DatabaseInstaller.InstallUpdate(String configurationFilePath, Boolean upgradeDatabase)
       at Microsoft.Crm.Setup.Common.Update.DBUpdateDatabaseInstaller.OrgInstall(ArrayList orgIdArray)

    Hi, 
    We get the following error in the logfile when we try to install the latest update for CRM: (KB2953252)
    Does anyone know how to fix this problem? 
    09:10:41|   Info| Database update install failed for orgId = 35e7ca08-43fb-4440-ba18-acfc3f42e115.  Continuing with other orgs.  Exception: System.ArgumentNullException: Value cannot be null.
    Parameter name: type
       at System.Activator.CreateInstance(Type type, Boolean nonPublic)
       at System.Activator.CreateInstance(Type type)
       at Microsoft.Crm.Setup.Database.DllMethodAction.Execute(Guid organizationId)
       at Microsoft.Crm.Setup.Database.DatabaseInstaller.ExecuteReleases(ReleaseInfo releaseInfo, Boolean isInstall)
       at Microsoft.Crm.Setup.Database.DatabaseInstaller.Install(Int32 languageCode, String configurationFilePath, Boolean upgradeDatabase, Boolean isInstall)
       at Microsoft.Crm.Setup.Database.DatabaseInstaller.InstallUpdate(String configurationFilePath, Boolean upgradeDatabase)
       at Microsoft.Crm.Setup.Common.Update.DBUpdateDatabaseInstaller.OrgInstall(ArrayList orgIdArray)

  • Database location for application update necessity

    Hi everyone,
    I'm trying to write a java application similar to msync.exe. However I want to know in advance how much data there will be to be downloaded. This is no problem for data from the database. I'm using ConsolidatorManager.getDownloadInfo().
    Unfortunately there is no such handy method to assess the download size for an (updated) application. Even worse is that I do not have a clue where about the information that an application has to be updated can be found. There must be something as update.exe can at least tell me when and what application has to be downloaded.
    Can someone help me?

    If you use the webtogo workspace, it the information on initial sync seems to be there. But if you customize the application it tells me the db size is 0 and application files are 0. I never really looked into it though.
    But my point is that the code is there some where. Look at the workspace API code and you might get some hints there.

  • Rfc enabled function module for the updating the database table

    Hi,
            I need one rfc enabled function module for the updating the database table from the legacy system.currently i am using the rfc_read_table to read the database table.similarly i need for the update.

    Hi
    I believe you need to create one by yourself
    Max

  • Multiple database updates vesus Tansaction

              Hi,
              I need some help from you great minds. Here us what I am trying to accomplish:
              I have a message driven bean which does a multiple update calls to an Oracle database.
              I want to commit all the db updates only at the end (after all update calls execute
              okay) and if there occurs any problem in any of the update calls, I want to rollback
              all the previously successful update calls I have already made. I am using container
              managed transaction via a mdb.
              I tried to use UserTransaciom.setRollbackOnly() call but that did not completely
              help. This call rolled back the message altogether. All I wanted to do is, if
              there occurs any error during a database update, rollback just the database changes
              and just throw away the message. Is there a way I can just rollback the database
              changes? Any suggestions?? please. Thanks
              

    If I understand correctly what you want to do, is the purpose to do some task or run some script in multiple databases on the same server?
    If so, this is done easily by listing the database (sids) in a file and reading the file in a loop statement.
    In my case, I simply create a file on the server called localsids. I keep this in /var/opt/oracle directory.
    Then, in my script, I set:
    SIDFILE='/var/opt/oracle/localsids'
    NEWPASS=`cat $HOME/.xlh/sys`
    # This loop reads through the 'sidlist' and then looks for a password
    # stored in a separate directory for each sid, but if individual
    # directories do not exist, then it uses the standard system password.
    # It then opens a sqlplus session for each sid (as it loops through the
    # sidfile and executes some sql statement(s), or executes a sql script.
    cat $SIDFILE | while read SID
    do
    ORACLE_SID=$SID
    export ORACLE_SID
    echo $SID # this is only for my own verbose purposes
    sqlplus -s system/manager@$SID <<EOF > /tmp/chg_passwd_${SID}.sql
    alter user system identified by $NEWPASS
    alter user sys identified by $NEWPASS
    EOF
    done
    exit
    # In the above example, i am changing the sys and system passwords for all databases listed in the localsids file.
    Hope this helps...
    ji li
    Message was edited by: ji li to simplify the example...
    I have simplified the above example to hardcode the system password into this script, however, normally I would never do this in real practice. This is just as an example to simplify how to run a loop to run a common script or sql statement in each database.

  • Database update on navigation

    Dear All.
    I am stuck with a fundamental concept now.
    I update a table in a view, do not commit.
    Click a button and go to next view. There I rollback.
    But the table is still committed.
    I think in ABAP dialog it's the same - go from one screen to another, database update will happen internally.
    Is it the same way in Webdynpro for abap - i.e. navigation to another view does an implicit commit?
    Thanks in adv.

    Hello Aishi,
    The specific example I was referring to is the decoupled infotype framework for updating infotypes.
    This is available for both PA and OM/PD infotypes.
    for more information I'd suggest having a search on SCN - although some of these links may help you:
    [Decoupling Infotypes - SAP Help |http://help.sap.com/erp2005_ehp_04/helpdata/EN/43/a503b963161bbfe10000000a1553f7/frameset.htm]
    also refer to the classes/methods:
    CL_HRPA_MASTERDATA_FACTORY=>GET_PLAIN_INFOTYPE_ACCESS
    CL_HRBAS_PLAIN_INFOTYPE_ACCESS (although it is not as simple to use as the PA access).
    These classes allow you to create all the data first in the buffer and then when you are ready - flush the buffer to the database.
    Although exactly how they work is probably a topic for a different forum - and I've probably already overstepped the bounds of what is reasonable for this forum by mentioning them

  • How to configure email Alerts in OEM Cloud 12c for Database Servers up/down

    Hi everybody,
    How to configure email Alerts in OEM Cloud 12c for Database Servers up/down status?
    Regards,
    Miguel Vega

    Hi Miguel Vega,
    Information regarding the notifications:
    ==============================
    Configuring notification rules in 12c is different from earlier releases.
    The concept and function of notification rules has been replaced with a two-tier system consisting of Incident Rules and Incident Rule Sets :
    1. Incident Rules: Operate at the lowest level granularity (on discrete events) and performs the same role as notification rules from earlier releases.
    By using incident rules, you can automate the response to incoming incidents and their updates.
    A rule contains a set of automated actions to be taken on specific events, incidents or problems.
    The actions taken are for example : sending e-mails, creating incidents, updating incidents, and creating tickets.
    2. Incident Rule Set: A rule set is a collection of rules that applies to a common set of objects, for example, targets, jobs, and templates.
    To help you to achieve the Notification Rules configuration, refer those notes :
    How To Configure Notification Rules in 12C Enterprise Manager Cloud Control ? Doc ID 1368036.1
    EM12c How to Add and Configure Email Addresses to EM Administrators and Update the Notification Schedule ?Doc ID 1368262.1
    EM12c How to Subscribe or Unsubscribe for Email Notification for an Incident Rule Set ?Doc ID 1389460.1
    EM 12c How to Configure Notifications for Job Executions ? Doc ID 1386816.1
    Best Regards,
    Venkat

  • Could not load library for database connection LCA

    Hi,
    I am facing RFC connection prblem while connectiong to database. I have installed SCM5.1 and live cache in single server
    Please find the logs.
    Work process log:
    B Mon Jul 20 11:19:13 2009
    B  create_con (con_name=LCA)
    B  Loading DB library 'E:\usr\sap\SC7\DVEBMGS03\exe\dbsdbslib.dll' ...
    M  *** ERROR => DlLoadLib: LoadLibrary(E:\usr\sap\SC7\DVEBMGS03\exe\dbsdbslib.dll) Error 126 [dlnt.c       241]
    M          Error 126 = "The specified module could not be found."
    B  *** ERROR => Couldn't load library 'E:\usr\sap\SC7\DVEBMGS03\exe\dbsdbslib.dll'
    [dbcon.c      4731]
    B  ***LOG BYG=> could not load library for database connection LCA        [dbds#1 @ 1035] [dbds    1035 ]
    A
    A Mon Jul 20 11:21:58 2009
    A  GENER starting remote generation: /SAPAPO/OM_SYNC_LC_DB (requested by W1).
    B
    SM21:
    No shared library found for the database with ID LCA|
    No shared library found for the database with ID LCA
    /SAPAPO/OM17|/SAPAPO/OM_SYNC_LC_DB|K |SAP Web AS Problem|SBAC   |
    Documentation for system log message BY G :
    As well as the standard connection, an attempt was made to set up
    another database connection, under the specified ID. The Shared Library
    for this second database could not be found.
    The Shared Library is usually found in the the Executable
    directory (profile parameter DIR_LIBRARY) under the name dbs
    <dbs>slib<os_ext>. <dbs> stands for the database type and <os_ext>
    stands for the operating system-specific extension of the Shared
    Libraries.
    The database type is determined from the entry that corresponds to the
    specified DB ID in the table DBDCON. Check whether the data in this
    entry is correct.
    ST22
    Runtime Errors         DBIF_DSQL2_CONNECTERR
    Exception              CX_SY_NATIVE_SQL_ERROR
    Date and Time          20.07.2009 11:22:21
    Short text
    Error setting up a secondary database connection
    What happened?
    Connection to database system not possible with identifier "LCA".
    |----
    System environment
    SAP-Release 700
    Application server... "
    Network address...... "
    Operating system..... "Windows NT"
    Release.............. "5.2"
    Hardware type........ "8x AMD64 Level"
    Character length.... 16 Bits
    Pointer length....... 64 Bits
    Work process number.. 8
    Shortdump setting.... "full"
    Database server... "
    Database type..... "ORACLE"
    Database name..... "SC7"
    Database user ID.. "SAPSC7"
    Terminal................. " "
    Char.set.... "C"
    SAP kernel....... 701
    created (date)... "Jul 6 2009 23:47:55"
    create on........ "NT 5.2 3790 Service Pack 1 x86 MS VC++ 14.00"
    Database version. "OCI_10201_SHARE (10.2.0.2.0) "
    Patch level. 50
    Patch text.. " "
    Database............. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE 10.2.0.."
    SAP database version. 701
    Operating system..... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2, Windows
    NT 6.0"
    Information on where terminated
    Termination occurred in the ABAP program "SAPLSLCAPPS" - in
    "LCA_EXISTS_LCA_ROUTINE".
    The main program was "/SAPAPO/TS_BATCH_RUN ".
    In the source code you have the termination point in line 23
    of the (Include) program "LSLCAPPSU05".
    The program "SAPLSLCAPPS" was started as a background job.
    Job Name....... "MACROS"
    Job Initiator.. "SC7GEN"
    Job Number..... 10222002
    The termination is caused because exception "CX_SY_NATIVE_SQL_ERROR" occurred
    in
    procedure "LCA_EXISTS_LCA_ROUTINE" "(FUNCTION)", but it was neither handled
    locally nor declared
    in the RAISING clause of its signature.
    The procedure is in program "SAPLSLCAPPS "; its source code begins in line
    1 of the (Include program "LSLCAPPSU05 ".
    Please help me to resolve the issue.
    Suraj

    Hi Natalia Khlopina,
    I have raised OSS message to SAP.
    Below is the information
    E:\usr\sap\SC7\SYS\exe\uc\Copy_ of_NTAMD64_15062009>sdbregview -l
    Server Utilities    e:/sapdb/programs      7.7.02.08     64 bit    valid
    DB Analyzer         e:/sapdb/programs      7.7.02.08     64 bit    valid
    PCR 7301            e:/sapdb/programs      7.3.01.21               valid
    PCR 7500            e:/sapdb/programs      7.5.00.42     64 bit    valid
    SAP Utilities       e:/sapdb/programs      7.7.02.08     64 bit    valid
    APO LC APPS         f:/sapdb/lcs/db/sap    6.00.004      64 bit    valid
    Redist Python       e:/sapdb/programs      7.7.02.08     64 bit    valid
    Base                e:/sapdb/programs      7.7.02.08     64 bit    valid
    JDBC                e:/sapdb/programs      7.6.03.02               valid
    Messages            e:/sapdb/programs      MSG 0.5010              valid
    ODBC                e:/sapdb/programs      7.7.02.08     64 bit    valid
    SQLDBC 77           e:/sapdb/programs      7.7.02.08     64 bit    valid
    Database Kernel     f:/sapdb/lcs/db        7.7.02.08     64 bit    valid
    Loader              e:/sapdb/programs      7.7.02.08     64 bit    valid
    SQLDBC              e:/sapdb/programs      7.7.02.08     64 bit    valid
    SQLDBC 76           e:/sapdb/programs      7.6.01.15     64 bit    valid
    Fastload API        e:/sapdb/programs      7.7.02.08     64 bit    valid
    C:\Documents and Settings\sc7adm>disp+work
    disp+work information
    kernel release                701
    kernel make variant           701_REL
    compiled on                   NT 5.2 3790 Service Pack 1 x86 MS VC++ 14.00
    compiled for                  64 BIT
    compilation mode              UNICODE
    compile time                  Jul  6 2009 23:47:55
    update level                  0
    patch number                  50
    source id                     0.050
    supported environment
    database (SAP, table SVERS)   700
                                  701
    operating system
    Windows NT 5.0
    Windows NT 5.1
    Windows NT 5.2
    Windows NT 6.0
    Thanks for quick responce.
    Suraj

  • Locking issue in workflow with conseutive database update

    Dear Workflowers,
    We are in ECC 5.0 and release 6.40. We went live for SAP in February and we are currently using workflow in PLM module for DMS and ECM.
    We have been facing this locking issue randomly happened in our production and quality system. The error from workflow log is "Document XXXX is locked by WF-BATCH". I have two steps in workflow one is to update the document user( from originator to editor with custom BO "zdraw" new method "setuser") and the next step is to update the document status( BO "zdraw" "setstatus" method which inherited form standard BO "draw").  
    I have tried to use "wait" (1st try) , statements  "BAPI_DOCUMENT_ENQUEUE", "BAPI_DOCUMENT_DEQUEUE" (2nd try) and  "Commit work and wait" (3rd try) to add one step in between, however the issue remains.
    The other question I had was we need to write "commit work" when we use BAPI to perform database update in the ABAP program. But I don't see "commit work" in the method of BO(for example "setstatus" in "draw" object) which performs database update. How does workflow perform DB update properly without "commit work" by referencing standard method?
    Could anyone please share your expertise with the issue I am facing?
    Thank you in advance,
    Merta

    Hi Merta,
    Regarding COMMITs: theoretically you should never use COMMIT statements because the Workflow runtime handles that - the transaction of executing the task is the LUW, not your method. By adding COMMIT WORK you are also committing the workflow task execution.
    In practice however there are the occasional exceptions where something just won't work without an explicit commit - but the theory remains that you should always try it without.
    Regarding your problem, the one way to be certain that a DB update is complete is to use a terminating event - either through change documents or status management.
    Failing that, you can write a wrapper method for SETSTATUS that does something like:
    do 10 times.
      try to lock it.
      if success.
        unlock.
        swc_call_method self 'SetStatus' container.
        set success flag.
      else.
        wait up to 3 seconds.
      endif.
    enddo.
    if no success, raise exception.
    Cheers,
    Mike

Maybe you are looking for