Time constraint 1-abap coding

Hi,
I want to incorporate time constraint 1 logic in my program for one Z table. Can you please let me know how to do this. Thanks a lot for your help.
Regards,
Priti

Hi Priti,
What are time constraint
1 no gaps and records are unique records are must  eg IT 0008
2 Records may or may not be there if records are there they are unique eg IT 0019
3 Records may or may not be there  gaps may be there Eg IT
In which context you want to use time constraint , Time constraint classes are stored in T582A.
Warm Regards,
Kapil KAushal
09833346985
19:00to 23:00 IST

Similar Messages

  • Time Constraints - Hr ABAP

    Hi Everyone
    Can anybody throw some light on the various time constraints used in the HR-ABAP and their relation to the infotypes.
    Also specify if their some Transaction code from where we can get to know about the value's of the time constraints.
    And also if their's any Table associated with them.
    <REMOVED BY MODERATOR>
    Thanks & Regards
    Gaurav
    Edited by: Alvaro Tejada Galindo on Feb 22, 2008 10:24 AM

    Hi,
    Please refer to the document below:
    When you update an infotype, old data is not lost but archived for historical evaluation. The system records a specific period of validity for each infotype, This enables the system to store more than one infotype record at the same time, even if their validity periods overlap. This means that the time relationships between infotype records must be defined. The concept of time constraints enables you to do this.
    HR master data uses the following three time constraints:
    Time Constraint 1
    For the entire time that the employee works at the enterprise, exactly one valid infotype record must exist. The validity periods of the individual records must not overlap. If a new record is created, the system automatically uses the start date of the new record as the delimitation date of the old record. Gaps are only allowed between the employee’s entry date and the start date of the first record.
    Time constraint 1 must be used for all of the infotypes containing information that must be available at all times. This is particularly true of personal and organizational assignment data.
    If a record is delimited because of time constraint 1, the system displays an appropriate message.
    Time Constraint 2
    No more than one valid record can exist at any one time. Records with constraint 2 must not overlap. Their existence is not obligatory. If a new record is created, the system automatically delimits the previous record, if one exists.
    If a record is delimited because of time constraint 2, the system displays an appropriate message.
    Time Constraint 3
    Any number of valid records can exist at any one time. The individual records do not conflict with each other.
    The system also contains the following time constraint indicators:
    Time Constraint A
    Infotypes with time constraint A must have no more than one record. The system automatically assigns the record a validity period from January 01, 1800 through December 31, 9999. This validity period cannot be subdivided.
    Infotype records with time constraint A cannot be deleted.
    Time Constraint B
    Infotypes with time constraint B must have no more than one record. The system automatically assigns the record a validity period from January 01, 1800 through December 31, 9999. This validity period cannot be subdivided.
    Infotype records with time constraint B can be deleted.
    Time Constraint T
    Infotype records with time constraint T depend on the subtype.
    The principles of data entry and time constraints that apply to infotypes ensure that data is consistent and accurate. They also constitute the basis of time recording, payroll accounting, and reporting.
    Thanks,
    Sriram Ponna.

  • Time Constraint Error when calling a Function module from Webdynpro ABAP

    Any help will be greatly appreciated - Thanks RM
    Time Constraint Error
    Information on where terminated
        Termination occurred in the ABAP program "SAPUP50R" - in
         "CHECK_TIME_CONSTRAINT_S1".
        The main program was "MP000000 ".
        In the source code you have the termination point in line 1069
        of the (Include) program "UP50RU01".
    Error occurred during batch input processing
    Source Code Extract
          l_is_inconsistent = 'X'.
        ENDIF.
      Check if there are inverted time periods.
        IF l_prelp_line-begda > l_prelp_line-endda.
          l_is_inconsistent = 'X'.
        ENDIF.
    Check if there are overlaps or gaps.
        IF NOT l_prelp_before IS INITIAL.
          l_date_difference = l_prelp_line-begda - l_prelp_before-endda.
          IF l_date_difference <> 1.
            l_is_inconsistent = 'X'.
          ENDIF.
        ENDIF.
        l_prelp_before = l_prelp_line.
      ENDLOOP.
      IF l_prelp_before-endda <> '99991231'.
        l_is_inconsistent = 'X'.
      ENDIF.
      IF l_is_inconsistent = 'X'.
        IF p_access_type = 'R'.
    490 Datenbankschiefstand Personalnummer & Infotyp &
          MESSAGE x490 WITH l_prelp_before-pernr l_prelp_before-infty.
        ELSE.
    491 Unzulässige Daten Personalnummer & Infotyp &
    Line 1069 Error occcurs >>>>  MESSAGE x491 WITH l_prelp_before-pernr l_prelp_before-infty.
        ENDIF.
      ENDIF.
    ENDFORM.                    " CHECK_TIME_CONSTRAINT_S1     "XYVN0352581
    *&      Form  clear_no_adapter_needed              new     "XREN844998
          text
    FORM clear_no_adapter_needed .
      CLEAR no_adapter_needed.
    ENDFORM.                    " clear_no_adapter_needed
    *&      Form  set_no_adapter_needed              new     "XREN844998
          text
    FORM set_no_adapter_needed .
      no_adapter_needed = 'X'.
    ENDFORM.                    " clear_no_adapter_needed

    Hi,
    Well, are you trying to do a batch input on infotype 0000? If yes you need to check that the proposed values respects the time constraint, meaning no gap, no overlaps and no inversions. Also fields SUBTY, OBJPS, SPRPS and SEQNR must remain initial when processing IT0000...
    Kr,
    Manu.

  • Time Constraint for Boundary Events

    Hi experts.
    I am pretty new to BPM (NetWeaver Developer Studio 7.1 SP04 BPM SP05) and I am just making a test process to try to get the time constraint concept right. So far I have three tasks in my process, very much like a textbook example. In my first task I have an input field in which you're supposed to type in your name, which is then saved to the context and triggers the second task when completed. That second task is nothing but a screen displaying "You successfully generated a second task, (with the name you entered in the first task here)."
    That works fine so far. Then there's the third task, which is linked to a boundary event on the second event with a start deadline which is critical exception. Here's the idea... You complete the first task (name input), then you fail to start the second task within a certain amount of time defined by an expression, so the process should go to the third task because of the deadline. By the way, it works fine when using a default time, so I must be doing something right so far, the problem is when trying to dynamically change the time with the expression.
    What I tried was to define a context attribute type time and date (I tried both) and assigning a time (current time plus whatever amount of minutes) to that attribute via Java coding at the time you click on the button which completes the task, then use that context element in the expression, but that didn't work. I also tried to make that context attribute an integer and set it to whatever amount of minutes I want to use for the deadline, then in the expression get the current time and add that afore mentioned integer to its minutes. That didn't work either.
    Please help, I have seriously done some research, and no success yet.
    Edited by: david.palafox on Jul 1, 2010 5:54 PM

    Figured it out.

  • Performance of ABAP coding very poor

    Hi gurus,
    I'm a newbie in ABAP programming.
    Currently, I managed to write an ABAP coding for BW to load data from a source DSO to target DSO.
    We are using BW 3.5.
    In the source, we have YTD amount as Key Figures.
    In the start routine, we use ABAP coding to calculate the Monthly value and Last 12 Months value.
    Monthly value is defined as: current month YTD - last month YTD (except when current month = January, then monthly value for January = YTD value for January)
    Last 12 months value is calculated for example as follow:
    for March 08, then Last 12 months value is April 07-March08
    Thus the formula for last 12 Months value is:
               YTD current month current year + YTD month12 last year - YTD current month last year
    I used internal table to read and store all of the information
    However, I need to read 3 times from internal table to get all of the necessary value to calculate the monthly value and last 12 months value.
    The performance is very low. The system runs for 40 minutes to read and calculate 15500 data.
    Therefore if you can perhaps give some hint/tip/tricks how to improve the performance of the code, it will be highly appreciated.
    Thank you very much in advance.
    Best regards,
    Fen
    My code is as follow:
    Define internal table to hold last year & current year data:
      DATA: LCYEARDATA type sorted table of /bic/aZABC3_O00
            with unique key /BIC/ZABC_ENTI /BIC/ZABC_ACC
            /BIC/ZABC_SUBA /BIC/ZABC_VERS CALMONTH
            with header line.
    Create variables needed to hold last month/year values.
      DATA: CALMONTHLOW TYPE /BI0/OICALMONTH.
      DATA: CALMONTHHIGH TYPE /BI0/OICALMONTH.
      DATA: CALYEARTHISYEAR TYPE /BI0/OICALYEAR.
      DATA: CALYEARLASTYEAR TYPE /BI0/OICALYEAR.
      DATA: CURRENTMONTH TYPE /BI0/OICALMONTH2.
      DATA: CURRENTMONTHLASTYEAR TYPE /BI0/OICALMONTH.
      DATA: LASTMONTH TYPE /BI0/OICALMONTH.
      DATA: CALMONTH12LASTYEAR TYPE /BI0/OICALMONTH.
      DATA: LASTMOYTD type /BI0/OIAMOUNT.
      DATA: LAST12MONTH TYPE /BI0/OIAMOUNT.
      DATA: YTDLASTYEAR type /BI0/OIAMOUNT.
      DATA: FIRSTRUN type N.
      DATA: MONTHLYVALUE type /BI0/OIAMOUNT.
      DATA: YTDMONTHLASTYEAR type /BI0/OIAMOUNT.
      DATA: AMOUNT type /BI0/OIAMOUNT.
    Set initial value of all variables to 0.
      CALMONTHLOW = 0.
      CALMONTHHIGH = 0.
      CALYEARTHISYEAR = 0.
      CALYEARLASTYEAR = 0.
      CURRENTMONTH = 0.
      CURRENTMONTHLASTYEAR = 0.
      LASTMONTH = 0.
      LASTMOYTD = 0.
      LAST12MONTH = 0.
      YTDLASTYEAR = 0.
      YTDMONTHLASTYEAR = 0.
      FIRSTRUN = 0.
      MONTHLYVALUE = 0.
      CALMONTH12LASTYEAR = 0.
    Loop through data package.
      LOOP AT DATA_PACKAGE.
        IF DATA_PACKAGE IS NOT INITIAL.
    First run:
          IF FIRSTRUN = 0.
    Get current year from any line in the data package.
            CALYEARTHISYEAR = DATA_PACKAGE-CALMONTH(4).
            FIRSTRUN = 1.
          ENDIF.
    Calculate last year (i.e. data package year - 1).
            CALYEARLASTYEAR = CALYEARTHISYEAR - 1.
    Calculate current month
            CURRENTMONTH = DATA_PACKAGE-CALMONTH+4(2).
    *Set CALMONTHLOW and CALMONTHHIGH as time period to fill the internal
    *table:
            CONCATENATE CALYEARLASTYEAR CURRENTMONTH INTO CALMONTHLOW.
            CONCATENATE CALYEARTHISYEAR CURRENTMONTH INTO CALMONTHHIGH.
    Fill internal table with Last Years data and Current Year data:
            select *
              from /bic/aABC2_O00
              into table LCYEARDATA
              WHERE CALMONTH >= CALMONTHLOW
                AND CALMONTH <= CALMONTHHIGH
                AND /BIC/ZABC_ENTI = DATA_PACKAGE-/BIC/ZABC_ENTI
                AND /BIC/ZABC_ACC = DATA_PACKAGE-/BIC/ZABC_ACC
                AND /BIC/ZABC_SUBA = DATA_PACKAGE-/BIC/ZABC_SUBA
                AND /BIC/ZABC_VERS = DATA_PACKAGE-/BIC/ZABC_VERS.
    Continue with the looping
    Get last month from current month.
            LASTMONTH = DATA_PACKAGE-CALMONTH - 1.
    *CHECK IF CURRENTMONTH = JAN then LastmonthYTD amount = 0, else read
    *from the internal table.
    *CURRENTMONTH = DATA_PACKAGE-CALMONTH+4(2). (this variable has been set
    *above)
            IF CURRENTMONTH = '01'.
              LASTMOYTD = 0.
            ELSE.
              READ TABLE LCYEARDATA
                WITH KEY
                /BIC/ZABC_ENTI = DATA_PACKAGE-/BIC/ZABC_ENTI
                /BIC/ZABC_ACC = DATA_PACKAGE-/BIC/ZABC_ACC
                /BIC/ZABC_SUBA = DATA_PACKAGE-/BIC/ZABC_SUBA
                /BIC/ZABC_VERS = DATA_PACKAGE-/BIC/ZABC_VERS
                  CALMONTH = LASTMONTH.
              IF sy-subrc IS INITIAL.
                LASTMOYTD = LCYEARDATA-AMOUNT.
              ENDIF.
            ENDIF.
    *Calculate Monhtly value for this month (to later be stored in data
    *package)
            MONTHLYVALUE = DATA_PACKAGE-AMOUNT - LASTMOYTD.
    Count value for Last 12 Months:
    1: Get the YTD Month12 Last Year & YTD CurrentMonth Last Year.
            CONCATENATE CALYEARLASTYEAR CURRENTMONTH INTO
            CURRENTMONTHLASTYEAR.
            CONCATENATE CALYEARLASTYEAR '12' INTO CALMONTH12LASTYEAR.
            READ TABLE LCYEARDATA
               WITH KEY
                /BIC/ZABC_ENTI = DATA_PACKAGE-/BIC/ZABC_ENTI
                /BIC/ZABC_ACC = DATA_PACKAGE-/BIC/ZABC_ACC
                /BIC/ZABC_SUBA = DATA_PACKAGE-/BIC/ZABC_SUBA
                /BIC/ZABC_VERS = DATA_PACKAGE-/BIC/ZABC_VERS
                 CALMONTH = CALMONTH12LASTYEAR.
            IF sy-subrc IS INITIAL.
              YTDLASTYEAR  = LCYEARDATA-AMOUNT.
            ENDIF.
            READ TABLE LCYEARDATA
              WITH KEY
                /BIC/ZABC_ENTI = DATA_PACKAGE-/BIC/ZABC_ENTI
                /BIC/ZABC_ACC = DATA_PACKAGE-/BIC/ZABC_ACC
                /BIC/ZABC_SUBA = DATA_PACKAGE-/BIC/ZABC_SUBA
                /BIC/ZABC_VERS = DATA_PACKAGE-/BIC/ZABC_VERS
                CALMONTH = CURRENTMONTHLASTYEAR.
            IF sy-subrc IS INITIAL.
              YTDMONTHLASTYEAR  = LCYEARDATA-AMOUNT.
            ENDIF.
    2. Specify YTD This month.
        AMOUNT = DATA_PACKAGE-AMOUNT.
    *3: Last 12 Months = (YTD Last Year - YTD Month Last Year) + YTD This
    *Month
           LAST12MONTH = YTDLASTYEAR - YTDMONTHLASTYEAR + YTDTHISMONTH.
           LAST12MONTH = YTDLASTYEAR - YTDMONTHLASTYEAR + AMOUNT.
    Save MONTHLYVALUE and LAST12MONTH to the DATA_PACKAGE.
            DATA_PACKAGE-/BIC/ZAMTMO = MONTHLYVALUE.
            DATA_PACKAGE-/BIC/ZAMTLTM = LAST12MONTH.
            modify DATA_PACKAGE.
            ENDIF.
          ENDLOOP.
        ABORT = 0.

    Hi,
    Just check these blogs to improve performance...
    The SQL Trace (ST05) u2013 Quick and Easy
    The SQL Trace (ST05) – Quick and Easy
    The ABAP Runtime Trace (SE30) - Quick and Easy
    The ABAP Runtime Trace (SE30) -  Quick and Easy
    Regards,
    Sachin

  • Deleting an Infotype with Time Constraint 1 - programatically

    Hi there,
    We have a few records (IT0008), that need to be deleted. Unfortunately, when we use PA30 to delete, it won't delete the record(s). (Displays the error msg. "Record has time constraint 1" ) But, when we use the Utilities option in PA30 and go thru', it appears to successfully delete the same.
    Now, could somebody pl. let us know how to go abt. doing the same programatically in ABAP ? I've tried looking at the FM's HR_MAINTAIN_MASTERDATA and HR_INFOTYPE_OPERATION (without much luck though....Although, SAP claims to have a documentation of these FM's, there is actually no proper docmn. at the Field level of these FMs)
    Moreover, the FM HR_MAINTAIN_MASTERDATA returns exactly the same error "Record has time constraint 1".
    Am a bit baffled as it is...
    Any help would be gratefully acknowledged and appreciated.
    Many thanks in anticipation,
    Kind Regards,
    RVS

    there is no function module to do forbidden actions.
    you only can do it with DELETE statement.
    select single dbtab from t777d into gv_dbtab where infty = p_infty.
    delete from (gv_dbtab) where pernr in p_pernr.
    But you will have to be very carefully. There are "blind" infotypes behind some "normal" infotypes you will have to care about (i.e. 0000 -> 0302).

  • ABAP coding / tables behind IDOC

    Hello *,
    First some words about the scenario:
    I want to design a composite application prototype which aims to replace an existing system.
    In the existing application (non-SAP) material master data is periodically (1 x per night) transferred via (customer) IDOC from SAP PLM to the application own database. Real-time read and search functionality is implemented for this database.
    Now, with composite application framework, I have the posibility connecting directly (real-time) to the PLM data via entity services. So no redundant keeping of data is necessary.
    So now the problem is, that I need the data of the given IDOC but in request/response scenario implemented as an RFC. Am I right?
    How can I realize this? Where can I find the ABAP coding behind the IDOC? And the tables and data fields which fill the IDOC?
    Can anyone help me? Or are there any good papers/information about IDOCs?
    Thanks in advance.
    Best regards
    Joschi

    Hi Joschi,
    You can refer some of the links below
    ALE/ IDOC
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.sappoint.com/abap/ale.pdf
    http://www.sappoint.com/abap/ale2.pdf
    http://www.sapgenie.com/sapedi/idoc_abap.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/0b/2a60bb507d11d18ee90000e8366fc2/frameset.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/78/217da751ce11d189570000e829fbbd/frameset.htm
    http://www.allsaplinks.com/idoc_sample.html
    http://www.sappoint.com/abap.html
    http://help.sap.com/saphelp_erp2004/helpdata/en/dc/6b835943d711d1893e0000e8323c4f/content.htm
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://edocs.bea.com/elink/adapter/r3/userhtm/ale.htm#1008419
    http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
    http://www.sapgenie.com/sapedi/index.htm
    http://www.allsaplinks.com/idoc_sample.html
    ALE/ IDOC/ XML
    http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
    http://www.thespot4sap.com/Articles/SAP_XML_Business_Integration.asp
    http://help.sap.com/saphelp_srm30/helpdata/en/72/0fe1385bed2815e10000000a114084/content.htm
    IDOC Convertion
    /people/kevin.wilson2/blog/2005/12/07/changing-fields-in-an-idoc-segment
    In your case you need to identify the partner profile and check the details of the partner profile, the inbound process code and the associated FM which writes the data.
    Cheers
    VJ

  • Time Constraint Error when calling a Function Module

    Any help will be greatly appreciated - Thanks RM
    Time Constraint Error
    Information on where terminated
    Termination occurred in the ABAP program "SAPUP50R" - in
    "CHECK_TIME_CONSTRAINT_S1".
    The main program was "MP000000 ".
    In the source code you have the termination point in line 1069
    of the (Include) program "UP50RU01".
    Error occurred during batch input processing
    Source Code Extract
    l_is_inconsistent = 'X'.
    ENDIF.
    Check if there are inverted time periods.
    IF l_prelp_line-begda > l_prelp_line-endda.
    l_is_inconsistent = 'X'.
    ENDIF.
    Check if there are overlaps or gaps.
    IF NOT l_prelp_before IS INITIAL.
    l_date_difference = l_prelp_line-begda - l_prelp_before-endda.
    IF l_date_difference 1.
    l_is_inconsistent = 'X'.
    ENDIF.
    ENDIF.
    l_prelp_before = l_prelp_line.
    ENDLOOP.
    IF l_prelp_before-endda '99991231'.
    l_is_inconsistent = 'X'.
    ENDIF.
    IF l_is_inconsistent = 'X'.
    IF p_access_type = 'R'.
    490 Datenbankschiefstand Personalnummer & Infotyp &
    MESSAGE x490 WITH l_prelp_before-pernr l_prelp_before-infty.
    ELSE.
    491 Unzulässige Daten Personalnummer & Infotyp &
    Line 1069 Error occcurs >>>> MESSAGE x491 WITH l_prelp_before-pernr l_prelp_before-infty.
    ENDIF.
    ENDIF.
    ENDFORM. " CHECK_TIME_CONSTRAINT_S1 "XYVN0352581
    *& Form clear_no_adapter_needed new "XREN844998
    text
    FORM clear_no_adapter_needed .
    CLEAR no_adapter_needed.
    ENDFORM. " clear_no_adapter_needed
    *& Form set_no_adapter_needed new "XREN844998
    text
    FORM set_no_adapter_needed .
    no_adapter_needed = 'X'.
    ENDFORM. " clear_no_adapter_needed

    Hi,
    Well, are you trying to do a batch input on infotype 0000? If yes you need to check that the proposed values respects the time constraint, meaning no gap, no overlaps and no inversions. Also fields SUBTY, OBJPS, SPRPS and SEQNR must remain initial when processing IT0000...
    Kr,
    Manu.

  • What is LUW? How do we use it in SAP ABAP coding?

    Hi Friends,
    Kindly explain me what is LUW with examples and how do we use it in our ABAP coding with scenarios why and when we use it?
    Regards,
    Pradeep

    Hi,
    SAP LUW
    Die Verbuchungsverwaltung
    The Open SQL statements INSERT, UPDATE, MODIFY, and DELETE allow you to program database changes that extend over several dialog steps. Even if you have not explicitly programmed a database commit, the implicit database commit that occurs after a screen has been processed concludes the database LUW. The following diagram shows the individual database LUWs in a typical screen sequence:
    Under this procedure, you cannot roll back the database changes from previous dialog steps. It is therefore only suitable for programs in which there is no logical relationship between the individual dialog steps.
    However, the database changes in individual dialog steps normally depend on those in other dialog steps, and must therefore all be executed or rolled back together. These dependent database changes form logical units, and can be grouped into a single database LUW using the bundling techniques listed below.
    A logical unit consisting of dialog steps, whose changes are written to the database in a single database LUW is called an SAP LUW. Unlike a database LUW, an SAP LUW can span several dialog steps, and be executed using a series of different work processes. If an SAP LUW contains database changes, you should either write all of them or none at all to the database. To ensure that this happens, you must include a database commit when your transaction has ended successfully, and a database rollback in case the program detects an error. However, since database changes from a database LUW cannot be reversed in a subsequent database LUW, you must make all of the database changes for the SAP LUW in a single database LUW. To maintain data integrity, you must bundle all of you database changes in the final database LUW of the SAP LUW. The following diagram illustrates this principle:
    Database Logical Unit of Work (LUW)
    From the point of view of database programming, a database LUW is an inseparable sequence of database operations that ends with a database commit. The database LUW is either fully executed by the database system or not at all. Once a database LUW has been successfully executed, the database will be in a consistent state. If an error occurs within a database LUW, all of the database changes since the beginning of the database LUW are reversed. This leaves the database in the state it was in before the transaction started.
    The database changes that occur within a database LUW are not actually written to the database until after the database commit. Until this happens, you can use a database rollback to reverse the changes. In the R/3 System, database commits and rollbacks can be triggered either implicitly or using explicit commands.
    Implicit Database Commits in the R/3 System
    A work process can only execute a single database LUW. The consequence of this is that a work process must always end a database LUW when it finishes its work for a user or an external call. Work processes trigger an implicit database commit in the following situations:
    When a dialog step is completed
    Control changes from the work process back to the SAP GUI.
    When a function module is called in another work process (RFC).
    Control passes to the other work process.
    When the called function module (RFC) in the other work process ends.
    Control returns to the calling work process.
    When a WAIT statement interrupts the work process.
    Control passes to another work process.
    Error dialogs (information, warning, or error messages) in dialog steps.
    Control passes from the work process to the SAP GUI.
    Explicit Database Commits in the R/3 System
    There are two ways to trigger an explicit database commit in your application programs:
    Call the function module DB_COMMIT
    The sole task of this function module is to start a database commit.
    Use the ABAP statement COMMIT WORK
    This statement starts a database commit, but also performs other tasks (refer to the keyword documentation for COMMIT WORK).
    Implicit Database Rollbacks in the R/3 System
    The following cases lead to an implicit database rollback:
    Runtime error in an application program
    This occurs whenever an application program has to terminate because of an unforeseen situation (for example, trying to divide by zero).
    Termination message
    Termination messages are generated using the ABAP statement MESSAGE with the message type A or X. In certain cases (updates), they are also generated with message types I, W, and E. These messages end the current application program.
    Explicit Database Rollbacks in the R/3 System
    You can trigger a database rollback explicitly using the ABAP statement ROLLBACK WORK. This statement starts a database rollback, but also performs other tasks (refer to the keyword documentation for COMMIT WORK).
    From the above, we can draw up the following list of points at which database LUWs begin and end.
    A Database LUW Begins
    Each time a dialog step starts (when the dialog step is sent to the work process).
    Whenever the previous database LUW ends in a database commit.
    Whenever the previous database LUW ends in a database rollback.
    A Database LUW Ends
    Each time a database commit occurs. This writes all of the changes to the database.
    Each time a database rollback occurs. This reverses all of the changes made during the LUW.
    Database LUWs and Database Locks
    As well as the database changes made within it, a database LUW also consists of database locks. The database system uses locks to ensure that two or more users cannot change the same data simultaneously, since this could lead to inconsistent data being written to the database. A database lock can only be active for the duration of a database LUW. They are automatically released when the database LUW ends. In order to program SAP LUWs, we need a lock mechanism within the R/3 System that allows us to create locks with a longer lifetime (refer to The R/3 Locking Concept).
    The bundling technique for database changes within an SAP LUW ensures that you can still reverse them. It also means that you can distribute a transaction across more than one work process, and even across more than one R/3 System. The possibilities for bundling database changes within an SAP LUW are listed below:
    The simplest form of bundling would be to process a whole application within a single dialog step. Here, the system checks the user’s input and updates the database without a database commit occurring within the dialog step itself. Of course, this is not suitable for complex business processes. Instead, the R/3 Basis system contains the following bundling techniques.
    Bundling using Function Modules for Updates
    If you call a function module using the CALL FUNCTION... IN UPDATE TASK statement, the function module is flagged for execution using a special update work process. This means that you can write the Open SQL statements for the database changes in the function module instead of in your program, and call the function module at the point in the program where you would otherwise have included the statements. When you call a function module using the IN UPDATE TASK addition, it and its interface parameters are stored as a log entry in a special database table called VBLOG.
    The function module is executed using an update work process when the program reaches the COMMIT WORK statement. After the COMMIT WORK statement, the dialog work process is free to receive further user input. The dialog part of the transaction finishes with the COMMIT WORK statement. The update part of the SAP LUW then begins, and this is the responsibility of the update work process. The SAP LUW is complete once the update process has committed or rolled back all of the database changes.
    For further information about how to create function modules for use in update, refer to Creating Function Modules for Database Updates
    During the update, errors only occur in exceptional cases, since the system checks for all logical errors, such as incorrect entries, in the dialog phase of the SAP LUW. If a logical error occurs, the program can terminate the update using the ROLLBACK WORK statement. Then, the function modules are not called, and the log entry is deleted from table VBLOG. Errors during the update itself are usually technical, for example, memory shortage. If a technical error occurs, the update work process triggers a database rollback, and places the log entry back into VBLOG. It then sends a mail to the user whose dialog originally generated the VBLOG entry with details of the termination. These errors must be corrected by the system administrator. After this, the returned VBLOG entries can be processed again.
    For further information about update administration, see Update Administration
    This technique of bundling database changes in the last database LUW of the SAP LUW allows you to update the database asynchronously, reducing the response times in the dialog work process. You can, for example, decouple the update entirely from the dialog work process and use a central update work process on a remote database server.
    Bundling Using Subroutines
    The statement PERFORM ON COMMIT calls a subroutine in the dialog work process. However, it is not executed until the system reaches the next COMMIT WORK statement. Here, as well, the ABAP statement COMMIT WORK defines the end of the SAP LUW, since all statements in a subroutine called with PERFORM ON COMMIT that make database changes are executed in the database LUW of the corresponding dialog step.
    The advantage of this bundling technique against CALL FUNCTION... IN UPDATE TASK is better performance, since the update data does not have to be written into an extra table. The disadvantage, however, is that you cannot pass parameters in a PERFORM... ON COMMIT statement. Data is passed using global variables and ABAP memory. There is a considerable danger of data inconsistency when you use this method to pass data.
    Bundling Using Function Modules in Other R/3 Systems
    Function modules that you call using CALL FUNCTION... IN BACKGROUND TASK DESTINATION... are registered for background execution in another R/3 System when the program reaches the next COMMIT WORK statement (using Remote Function Call). After the COMMIT WORK, the dialog process does not wait for these function modules to be executed (asynchronous update). All of the function modules that you register in this way are executed together in a single database LUW. These updates are useful, for example, when you need to maintain identical data in more than one database.
    For further details, refer to the keyword documentation.
    For more details of RFC processing, refer to the Remote Communications section of the Basis Services documentation.
    Pls. reward if useful....

  • ABAP coding issues after BW upgrade

    Hello Gurus,
    We recently did a BW upgrade from version 3.5 to 7.31 and even since have been encountering few strange issues with many of our ABAP coding.
    For example, there is an APPEND statement in one of our Update Rules as below:
    APPEND <lw_rtab_wa> TO <lt_rtab>.
    Before upgrade, this was working as expected and the contents of <lw_rtab_wa> was getting transferred to <lt_rtab> without any issues.
    Now after upgrade, we find that the contents of <lw_rtab_wa> is being clubbed together in the 1st few columns of <lt_rtab>.
    Both the <lw_rtab_wa> & <lt_rtab> have the same fields, but the length of few fields in <lt_rtab> is bigger than that in <lw_rtab_wa>. For example DOC_NUMBER in <lw_rtab_wa> is of type C(10) while in <lt_rtab> it is C(20). This difference is causing the data of the 2nd field also to be over-writen in the DOC_NUMBER field of <lt_rtab>.
    Please let us know if you have encountered similar situations after your BW upgrade. Any possible solutions to this would be very much appreciated as this is causing PROD issues at the moment!
    Thanks
    Arvind

    Hi Arvind,
    After Upgrade In BW 7.3 or higher versions All data elements that use the domain RSCHAVL are converted from CHAR60 to SSTRING. thats the reason you are getting that syntax error.
    Take help of some ABAP programmer and try to change the syntax as suggested from below link.
    Just scroll down and check the same. even though link shows for BW 7.4 issues, its applicable for 7.3 too. Please let me know
    http://scn.sap.com/community/data-warehousing/bw/blog/2014/07/28/sap-bw-74-analysis-issues
    Thanks
    Ajay

  • Time Constraints and Boundary Events in BPM

    Hi all,
    I have done the following:
    In the Task window, Time Constraints tab
    - Checked "Define a default completion deadline" with the offset as 3 minutes.
    - Checked the "Raise critical exception when deadline is reached" checkbox.
    In the boundary events for the activity, I have added "CompletionDeadlineIsCriticalException".
    From the boundary event, I have linked to to another activity that belongs to another user (User B).
    When i am testing the BPM, the task goes into a Suspended status after 3 minutes. However User B did not received a new item in the UWL.
    In the NWA, "Manage Process: Process Instances", i can see that Task is escalated by null and the status is suspended.
    Does anyone has any advice over here?
    Thank you.

    Hi,
    i have checked the BPEM-CORE version as instructed.
    It says 1000.7.11.2.0.20090321233900
    Does that means I need to update to the latest patch?
    Please also check the version of your NWDI build plug-in BPEM-BUILDT in the respective NWDI track. This is used to build Process Composer DCs in your NWDI.
    I am in the Development Infrastructure Perspective in NWDS
    How do i check the version number for BPEM-BUILDT in the NWDI?
    Thank you.

  • Any report to identify Time Constraint issues?

    Hello,
    Is there a report that I can run to get the employees and Infotype records with time constraint issues? So until last week, we had not turned on the PC-UI switch in T77S0 table. So the way it worked was, if in history there were 2 records with time gaps for Infotype with time constraint = 1, then it still allowed us to create new records. Now with the switch turned on, it gives an error. Once the historic records are corrected, it allows us to proceed. This is freaking out a lot of data specialists, and we were wondering if we can proactively identify the employees with these historic data inconsistencies and be able to correct them. Please let me know.
    Thanks,
    Nakul

    Found it: RPUSCNTC
    Thanks,
    Nakul

  • ABAP coding in defining start condition for action.

    Hi Everybody,
    Can anyone tell me if ABAP coding is possible for giving condition for action? If yes, where? Is it in condition editor? I have 3 validations to be done:- 1) Filter service contract (transaction type USC), 2) Filter the active contracts, 3) Filter contracts which doesn't have billing cycle in current month.
    So, do you think these validations can be done in start condition of action? First two validations are static in nature and thus can be done. But, how about the last condition?
    Please help.
    Regards,
    Sanj.

    Hi Sanj
    I would do this.
    1. The transaction type cannot be changed, therfore I will set this up in the scheduling condition.
    2. Active contracts. Depends on teh definiton of active. If it is based on some status then I will use scheduling condition.
    3. use one of the dates in the date profile to determine if the billing date is in the current month or not.
    See if this helps.
    Thanks

  • ABAP coding in LSMW

    Hi All,
    A)Is it possible to  write ABAP coding in LSMW, if yes where can we do this. and
    B)During the First Step of LSMW we come across 1. Standard/Batch Direct Input
                                                                          2.Batch input recording
                                                                          3.Business Object Method (BAPI)
                                                                          4.IDOC(intermediate document)
    which one to use and when to use?
    C) what are the advantages/disadvantages of LSMW compared to other data transfer methods like BDC.
    please let me know the answers for above.
    useful answers will be rewarded for the same.
    Regards,
    Yellappa.

    hi
    for q posed to ashvinder, its used only for validation of the input records and their corresponding processing, i will explain a simple scenario,
    1. if u want to transfer data a part of which has already been created in the system. You
    want to decide at runtime whether the data is created or changed.
    u can write this coding in corresponding field
    2. You want to "skip" a record depending on a certain condition, i.e. this record shall not be converted and transferred to the output file.
    3. Duplicate a Record
    If want complex pricing procedures u cant do that in LSMW, u need to go for BDC's
    for ur question about what to use, BAPI or IDOC, check this link
    http://www.sap-img.com/abap/ale-bapi.htm
    http://searchsap.techtarget.com/generic/0,295582,sid21_gci1089362,00.html?bucket=ETA&topic=299357
    award points if found helpful
    Message was edited by:
            Rahul Kavuri

  • How to extend the execution time of an ABAP Program using the Process chain

    Hello Sapians,
    Our Environment has got 600seconds = 10 mintues as the execution time.
    My ABAP Program is taking more than this 600 seconds, to show the result, I found this when I tried to execute in debug mode, it shows the result.
    If I execute in background also it shows the results succesfully.
    Only issue is when I execute this report in foreground it has been taking ages and goes on Time OUT Error.
    It has been decided that we can extend the execution time only for this report, and it will reset the time back to 10mintues once the report has been executed successfully or failed in between for any other reasons.
    And we can achieve this by using the process chains.
    Can any body help me please in this regard
    Thanks,

    Hi,,,,,,,,,,
    Besides Process Chain There is another way out for this........
    Resetting time counter of dialog process so that time-out does not
    happen. Use this fm within your program at appropriate locations to
    reset time counter.
    "CALL FUNCTION 'TH_REDISPATCH'."
    Thanks
    Saurabh

Maybe you are looking for

  • A JAVA PROGRAM TO CONTROL SYSTEM EVENTS OF WIDOWS environment

    Hello everyone. The question is: can I develop a java program that can control system events of a windows environment? For example a program to shut down the computer, log off or open and close windows applications? If so, how can i do that?? please

  • Apache not working after time machine restore

    i had major problems upgrading to 10.5.3. after trying everything and hoping to avoid reverting to a backup, it was apparent i would have to revert. turns out, it was quite easy since i had a recent TM backup. now, i'm back to 10.5.2 fine, but for wh

  • Your version of Outlook has been blocked

    Brand new machine, freshly patched, all apps new, new, new. Our email administrator, may he rot in a very warm place, has blocked Outlook 2007. Creation of a Outlook 2007 profile followed by firing up Outlook 2007 got me a message "You version of Out

  • I am pretty sure this is in the right section...

    Okay, I recently upgraded to Leopard, and now my Boot Camp partition, when in Windows, won't let me read the D drive(optical drive) when I put the Leopard disc in. It won't autoplay, and it tells me when I try to click on it through My Computer, that

  • Wi fi was connected to house internet,now it won't connect why?

    Wifi on in settings,will not connect to house internet, it did yesterday.?