When it is beter to buffer the table

hi
when it is beter to buffer the table

Hi
<b>Table buffering</b>
Advantages of buffering
Concept of buffering
Buffering types
Buffer synchronization
<b>Database access using Buffer concept</b>
Buffering allows you to access data quicker by letting you
access it from the application server instead of the database.
<b>Advantages of buffering</b>
Table buffering increases the performance when the records of the table are read.
As records of a buffered table are read directly from the local buffer of the application server on which the accessing transaction is running, time required to access data is greatly reduced. The access improves by a factor of 10 to 100 depending on the structure of the table and on the exact system configuration.
If the storage requirements in the buffer increase due to further data, the data that has not been accessed for the longest time is displaced. This displacement takes place asynchronously at certain times which are defined dynamically based on the buffer accesses. Data is only displaced if the free space in  the buffer is less than a predefined value or the quality of the access is not satisfactory at this time.
Entering $TAB in the command field resets the table buffers on the corresponding application server. Only use this command if there are inconsistencies in the buffer. In large systems, it can take several hours to fill the buffers. The performance is considerably reduced during this time.
<b>Concept of buffering</b>
The R/3 System manages and synchronizes the buffers on the individual application servers. If an application program accesses data of a table, the database interfaces determines whether this data lies in the buffer of the application server. If this is the case, the data is read directly from the buffer. If the data is not in the buffer of the application server, it is read from the database and loaded into the buffer. The buffer can therefore satisfy the next access to this data.
The buffering type determines which records of the table are loaded into the buffer of the application server when a record of the table is accessed. There are three different buffering types.
With full buffering, all the table records are loaded into the buffer when one record of the table is accessed.
With generic buffering, all the records whose left-justified part of the key is the same are loaded into the buffer when a table record is accessed.
With single-record buffering, only the record that was accessed is loaded into the buffer.
<b>Buffering types</b>
With full buffering, the table is either completely or not at all in the buffer. When a record of the table is accessed, all the records of the table are loaded into the buffer.
When you decide whether a table should be fully buffered, you must take the table size, the number of read accesses and the number of write accesses into consideration. The smaller the table is, the more frequently it is read and the less frequently it is written, the better it is to fully buffer the table.
Full buffering is also advisable for tables having frequent accesses to records that do not exist. Since all the records of the table reside in the buffer, it is already clear in the buffer whether or not a record exists.
The data records are stored in the buffer sorted by table key. When you access the data with SELECT, only fields up to the last specified key field can be used for the access. The left-justified part of the key should therefore be as large as possible for such accesses. For example, if the first key field is not defined, the entire table is scanned in the buffer. Under these circumstances, a direct access to the database could be more efficient if there is a suitable secondary index there.
With generic buffering, all the records whose generic key fields agree with this record are loaded into the buffer when one record of the table is accessed. The generic key is a left-justified part of the primary key of the table that must be defined when the buffering type is selected. The generic key should be selected so that the generic areas are not too small, which would result in too many generic areas. If there are only a few records for each generic area, full buffering is usually preferable for the table. If you choose too large a generic key, too much data will be invalidated if there are changes to table entries, which would have a negative effect on the performance.
A table should be generically buffered if only certain generic areas of the table are usually needed for processing.
Client-dependent, fully buffered tables are automatically generically buffered. The client field is the generic key. It is assumed that not all of the clients are being processed at the same time on one application server. Language-dependent tables are a further example of generic buffering. The generic key includes all the key fields up to and including the language field.
The generic areas are managed in the buffer as independent objects. The generic areas are managed analogously to fully buffered tables. You should therefore also read the information about full buffering.
Single-record buffering is recommended particularly for large tables in which only a few records are accessed repeatedly with SELECT SINGLE. All the accesses to the table that do not use SELECT SINGLE bypass the buffer and directly access the database.
If you access a record that was not yet buffered using SELECT SINGLE, there is a database access to load the record. If the table does not contain a record with the specified key, this record is recorded in the buffer as non-existent. This prevents a further database access if you make another access with the same key
You only need one database access to load a table with full buffering, but you need several database accesses with single-record buffering. Full buffering is therefore generally preferable for small tables that are frequently accessed.
<b>Synchronizing local buffers</b>
The table buffers reside locally on each application server in the system. However, this makes it necessary for the buffer administration to transfer all changes made to buffered objects to all the application servers of the system.
If a buffered table is modified, it is updated synchronously in the buffer of the application server from which the change was made. The buffers of the whole network, that is, the buffers of all the other application servers, are synchronized with an asynchronous procedure.
Entries are written in a central database table (DDLOG) after each table modification that could be buffered. Each application server reads these entries at fixed time intervals.
If entries are found that show a change to the data buffered by this server, this data is invalidated. If this data is accessed again, it is read directly from the database. In such an access, the table can then be loaded to the buffer again.
<b>Using buffered tables improves the performance considerably.</b>
Bypassing the buffer increases the network considerably
SELECT SINGLE * FROM T100 INTO T100_WA
  BYPASSING BUFFER
  WHERE     SPRSL = 'D'
        AND ARBGB = '00'
        AND MSGNR = '999'.
The above mentioned code can be more optimized by using the following code
SELECT SINGLE * FROM T100  INTO T100_WA
  WHERE     SPRSL = 'D'
        AND ARBGB = '00'
        AND MSGNR = '999'.
<b>Optimizing the load of the database</b>
<b>Using table buffering</b>
     Using buffered tables improves the performance considerably. Note that in some cases a statement can not be used with a buffered table, so when using these statements the buffer will be bypassed. These statements are:
Select DISTINCT
ORDER BY / GROUP BY / HAVING clause
Any WHERE clause that contains a sub query or IS NULL expression
JOIN s
A SELECT... FOR UPDATE
     If you wan t to explicitly bypass the buffer, use the BYPASS BUFFER addition to the SELECT clause.
<b>Reward if useful</b>

Similar Messages

  • Table overflowed  when trying to sap locks in the table..

    Dear ALL,
      when trying to sap locks in the table then its showing table overflowed. can telle the actual reason.
    Reagards.
    ASHUTOSH

    Hi, ALL
    suddenly sap PP persons execute the report, " errors comes as last msg  table overflow" whats the main reasons. i konw my self it automatically resize the table.
    Regards,
    ASHUTOSH

  • Error on Siebel 8.1 Tools when I put more clobs on the table.

    I am getting an error on Siebel 8.1 Tools when I put more clobs on the table SBL-DEV-61032. This used to work in 8.0 tools.  Any ideas on how I do it in 8.1.

    Hi,
    Thanks for the post.
    I could find below document
    SIEBEL LIMITS CLOB COLUMNS TO THREE PER TABLE (Doc ID 1050304.1)
    As per this article Siebel does not allow CLOB more then 3 in a table.
    Please let me know if this helps.
    Regards,
    Hari Meena

  • Buffer the tables !!

    In oracle,
    Is there any way we can buffer the tables to reduce the disk I/0 ?
    If I can buffer, how big the table should I be buffering ?
    I was just monitoring the top sql and some of the sql statements
    have been fetching only 1000 rows but my buffer gets is around
    564018250 and diskreads is 5316884.
    I believe that is too much for the 1000 rows.
    Can anyone please suggest me or guide me in right direction ?
    From,
    Pranav Thaker

    Hi,
    Yes you can create/modify table so they stay in memory once loaded.
    In order to do so, you must
    . have defined a Keep Cache in your S.G.A. (cf parameter DB_KEEP_CACHE_SIZE)
    . tell that objects (table/index) are going to be loaded in this cache
    Modifying the Keep Cache size (Default 0) might need a bounce (because of SGA_MAX_SIZE)
    Modifying the objects can be achieved viaALTER TABLE table_name STORAGE (BUFFER_POOL KEEP);Before applying this method, you should read the Tuning Documentation on specialized Buffer Cache.
    Furthermore, I'm not sure that it's what you should do. Maybe you should first start by tuning your SQL queries? Have a detailed look at those queries' explain plan.
    Regards,
    Yoann.

  • ORA-1013 when trying to insert data into the table

    Hi,
    While inserting record into a table, we are getting the following error:
    ORA-1013
    01013, 00000, "user requested cancel of current operation"
    I could not find any information in alert log also.
    We have a bitmap index on this table. However, we never got this error till now.
    Also i found that the tablespace who stores data has lot of space and tablespace which consists of the indexes is close to 90% full today ( i dont know what was the space available yesterday when there was error).
    I know that information i provided might be very less, but i gave as much information as i can provide.
    Can you please help me in trouble shooting this problem.
    Thank you
    Giridhar

    Sorry. i forgot to give version information
    Oracle version: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
    OS: SunOS 5.10
    we got it only once yesterday. only for one table. not for any other tables.
    Thanks aalap for your quick response.
    Giridhar

  • To stop Running the Report when we dont find data in the table

    I am running a 6i report and this report fetches data from custom table.
    I need to check whether data exists in the custom table in the After parameter form and if doesnt return any data then i need to Stop the report execution and write a message without raising any exceptions or errors
    note: we tried with srw.program_abort ---- it stops the report but it returns an exception
    Thanks

    Here the tricky is
    if we don't have last month data we should not go the data model. The data model query will run regardless the previous month data.
    we are trying to find the previous month data in after parameter form. if it is not there we want to stop the report there itself it should not go to layouut or data model.
    how to achive this one?
    we try to terminate the report through program_abort but it is raising an exception

  • When the Table :" J_2IRG1BAL  , " is giving error message SV023

    Dear Sir/Madam,
    When going to enter data in the table J_2IRG1BAL, it is giving error message as "create data processing function module  SV023 in ABAP client in Dev. Server. Though it is alowing other tables to edit as usual.
    Pls. advice.
    Thanks,
    Pranab
    Edited by: Pranab Das on Jul 23, 2009 8:09 AM

    Can you please check 'any authorization error' on your name. you can check in su53 transaction code.
    regards
    nag

  • Form validation error when the Table is empty.

    Hello Gurus,
    I am getting form validation error as soon as the popup is rendered to submit new row.
    I am using the this popup to add new row in the table and this is happening only when there no data in the table but it works fine when there is some data in the table.
    Screen shot: [http://picpaste.com/adf_error-BAdP8Thv.JPG]
    Is there any way can I defer this error till I submit the form. ( which works fine when there is some data in table )
    Thanks
    Abhijeet

    here i tested not happend for me.
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=UTF-8"/>
      <f:view>
        <af:document id="d1" binding="#{backingBeanScope.backing_untitled8.d1}">
          <af:form binding="#{backingBeanScope.backing_untitled8.f2}" id="f2">
            <af:messages binding="#{backingBeanScope.backing_untitled8.m1}"
                         id="m1"/>
            <af:popup binding="#{backingBeanScope.backing_untitled8.p1}" id="p1">
              <af:dialog binding="#{backingBeanScope.backing_untitled8.d3}" id="d3">
                <af:panelFormLayout binding="#{backingBeanScope.backing_untitled8.pfl1}"
                                    id="pfl1">
                  <af:inputText value="#{bindings.AunitctrlBe.inputValue}"
                                label="#{bindings.AunitctrlBe.hints.label}"
                                required="#{bindings.AunitctrlBe.hints.mandatory}"
                                columns="#{bindings.AunitctrlBe.hints.displayWidth}"
                                maximumLength="#{bindings.AunitctrlBe.hints.precision}"
                                shortDesc="#{bindings.AunitctrlBe.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.it10}"
                                id="it10">
                    <f:validator binding="#{bindings.AunitctrlBe.validator}"/>
                  </af:inputText>
                  <af:inputText value="#{bindings.AunitctrlUnit.inputValue}"
                                label="#{bindings.AunitctrlUnit.hints.label}"
                                required="#{bindings.AunitctrlUnit.hints.mandatory}"
                                columns="#{bindings.AunitctrlUnit.hints.displayWidth}"
                                maximumLength="#{bindings.AunitctrlUnit.hints.precision}"
                                shortDesc="#{bindings.AunitctrlUnit.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.it11}"
                                id="it11">
                    <f:validator binding="#{bindings.AunitctrlUnit.validator}"/>
                  </af:inputText>
                  <af:inputText value="#{bindings.AunitctrlCostMethod.inputValue}"
                                label="#{bindings.AunitctrlCostMethod.hints.label}"
                                required="#{bindings.AunitctrlCostMethod.hints.mandatory}"
                                columns="#{bindings.AunitctrlCostMethod.hints.displayWidth}"
                                maximumLength="#{bindings.AunitctrlCostMethod.hints.precision}"
                                shortDesc="#{bindings.AunitctrlCostMethod.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.it12}"
                                id="it12">
                    <f:validator binding="#{bindings.AunitctrlCostMethod.validator}"/>
                  </af:inputText>
                  <af:inputText value="#{bindings.AunitctrlCostMgmtOpt.inputValue}"
                                label="#{bindings.AunitctrlCostMgmtOpt.hints.label}"
                                required="#{bindings.AunitctrlCostMgmtOpt.hints.mandatory}"
                                columns="#{bindings.AunitctrlCostMgmtOpt.hints.displayWidth}"
                                maximumLength="#{bindings.AunitctrlCostMgmtOpt.hints.precision}"
                                shortDesc="#{bindings.AunitctrlCostMgmtOpt.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.it13}"
                                id="it13">
                    <f:validator binding="#{bindings.AunitctrlCostMgmtOpt.validator}"/>
                  </af:inputText>
                  <af:inputText value="#{bindings.AunitctrlCostApprMtd.inputValue}"
                                label="#{bindings.AunitctrlCostApprMtd.hints.label}"
                                required="#{bindings.AunitctrlCostApprMtd.hints.mandatory}"
                                columns="#{bindings.AunitctrlCostApprMtd.hints.displayWidth}"
                                maximumLength="#{bindings.AunitctrlCostApprMtd.hints.precision}"
                                shortDesc="#{bindings.AunitctrlCostApprMtd.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.it14}"
                                id="it14">
                    <f:validator binding="#{bindings.AunitctrlCostApprMtd.validator}"/>
                  </af:inputText>
                  <af:inputText value="#{bindings.AunitctrlJocApprMtd.inputValue}"
                                label="#{bindings.AunitctrlJocApprMtd.hints.label}"
                                required="#{bindings.AunitctrlJocApprMtd.hints.mandatory}"
                                columns="#{bindings.AunitctrlJocApprMtd.hints.displayWidth}"
                                maximumLength="#{bindings.AunitctrlJocApprMtd.hints.precision}"
                                shortDesc="#{bindings.AunitctrlJocApprMtd.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.it15}"
                                id="it15">
                    <f:validator binding="#{bindings.AunitctrlJocApprMtd.validator}"/>
                  </af:inputText>
                  <af:inputText value="#{bindings.AunitctrlCreBy.inputValue}"
                                label="#{bindings.AunitctrlCreBy.hints.label}"
                                required="#{bindings.AunitctrlCreBy.hints.mandatory}"
                                columns="#{bindings.AunitctrlCreBy.hints.displayWidth}"
                                maximumLength="#{bindings.AunitctrlCreBy.hints.precision}"
                                shortDesc="#{bindings.AunitctrlCreBy.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.it16}"
                                id="it16">
                    <f:validator binding="#{bindings.AunitctrlCreBy.validator}"/>
                  </af:inputText>
                  <af:inputDate value="#{bindings.AunitctrlCreDate.inputValue}"
                                label="#{bindings.AunitctrlCreDate.hints.label}"
                                required="#{bindings.AunitctrlCreDate.hints.mandatory}"
                                shortDesc="#{bindings.AunitctrlCreDate.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.id1}"
                                id="id1">
                    <f:validator binding="#{bindings.AunitctrlCreDate.validator}"/>
                    <af:convertDateTime pattern="#{bindings.AunitctrlCreDate.format}"/>
                  </af:inputDate>
                  <af:inputText value="#{bindings.AunitctrlUpdBy.inputValue}"
                                label="#{bindings.AunitctrlUpdBy.hints.label}"
                                required="#{bindings.AunitctrlUpdBy.hints.mandatory}"
                                columns="#{bindings.AunitctrlUpdBy.hints.displayWidth}"
                                maximumLength="#{bindings.AunitctrlUpdBy.hints.precision}"
                                shortDesc="#{bindings.AunitctrlUpdBy.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.it17}"
                                id="it17">
                    <f:validator binding="#{bindings.AunitctrlUpdBy.validator}"/>
                  </af:inputText>
                  <af:inputDate value="#{bindings.AunitctrlUpdDate.inputValue}"
                                label="#{bindings.AunitctrlUpdDate.hints.label}"
                                required="#{bindings.AunitctrlUpdDate.hints.mandatory}"
                                shortDesc="#{bindings.AunitctrlUpdDate.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.id2}"
                                id="id2">
                    <f:validator binding="#{bindings.AunitctrlUpdDate.validator}"/>
                    <af:convertDateTime pattern="#{bindings.AunitctrlUpdDate.format}"/>
                  </af:inputDate>
                  <af:inputText value="#{bindings.RowID.inputValue}"
                                label="#{bindings.RowID.hints.label}"
                                required="#{bindings.RowID.hints.mandatory}"
                                columns="#{bindings.RowID.hints.displayWidth}"
                                maximumLength="#{bindings.RowID.hints.precision}"
                                shortDesc="#{bindings.RowID.hints.tooltip}"
                                binding="#{backingBeanScope.backing_untitled8.it18}"
                                id="it18">
                    <f:validator binding="#{bindings.RowID.validator}"/>
                  </af:inputText>
                  <f:facet name="footer">
                    <af:panelGroupLayout layout="vertical"
                                         binding="#{backingBeanScope.backing_untitled8.pgl1}"
                                         id="pgl1">
                      <af:panelGroupLayout layout="horizontal"
                                           binding="#{backingBeanScope.backing_untitled8.pgl2}"
                                           id="pgl2">
                        <af:commandButton actionListener="#{bindings.First1.execute}"
                                          text="First1"
                                          disabled="#{!bindings.First1.enabled}"
                                          partialSubmit="true"
                                          binding="#{backingBeanScope.backing_untitled8.cb1}"
                                          id="cb1"/>
                        <af:commandButton actionListener="#{bindings.Previous1.execute}"
                                          text="Previous1"
                                          disabled="#{!bindings.Previous1.enabled}"
                                          partialSubmit="true"
                                          binding="#{backingBeanScope.backing_untitled8.cb3}"
                                          id="cb3"/>
                        <af:commandButton actionListener="#{bindings.Next1.execute}"
                                          text="Next1"
                                          disabled="#{!bindings.Next1.enabled}"
                                          partialSubmit="true"
                                          binding="#{backingBeanScope.backing_untitled8.cb4}"
                                          id="cb4"/>
                        <af:commandButton actionListener="#{bindings.Last1.execute}"
                                          text="Last1"
                                          disabled="#{!bindings.Last1.enabled}"
                                          partialSubmit="true"
                                          binding="#{backingBeanScope.backing_untitled8.cb5}"
                                          id="cb5"/>
                      </af:panelGroupLayout>
                      <af:commandButton text="Submit"
                                        binding="#{backingBeanScope.backing_untitled8.cb6}"
                                        id="cb6"/>
                    </af:panelGroupLayout>
                  </f:facet>
                </af:panelFormLayout>
              </af:dialog>
            </af:popup>
            <af:panelCollection binding="#{backingBeanScope.backing_untitled8.pc2}"
                                id="pc2">
              <f:facet name="menus"/>
              <f:facet name="toolbar">
                <af:toolbar binding="#{backingBeanScope.backing_untitled8.t3}"
                            id="t3">
                  <af:commandButton text="insert"
                                    binding="#{backingBeanScope.backing_untitled8.cb7}"
                                    id="cb7"
                                    action="#{backingBeanScope.backing_untitled8.cb7_action}"
                                    partialSubmit="true"/>
                </af:toolbar>
              </f:facet>
              <f:facet name="statusbar"/>
              <af:table value="#{bindings.ApplUnitControlView1.collectionModel}"
                        var="row" rows="#{bindings.ApplUnitControlView1.rangeSize}"
                        emptyText="#{bindings.ApplUnitControlView1.viewable ? 'No data to display.' : 'Access Denied.'}"
                        fetchSize="#{bindings.ApplUnitControlView1.rangeSize}"
                        rowBandingInterval="0"
                        filterModel="#{bindings.ApplUnitControlView1Query.queryDescriptor}"
                        queryListener="#{bindings.ApplUnitControlView1Query.processQuery}"
                        filterVisible="true" varStatus="vs"
                        selectedRowKeys="#{bindings.ApplUnitControlView1.collectionModel.selectedRow}"
                        selectionListener="#{bindings.ApplUnitControlView1.collectionModel.makeCurrent}"
                        rowSelection="single"
                        binding="#{backingBeanScope.backing_untitled8.t4}" id="t4"
                        partialTriggers=":::cb1 :::cb3 :::cb4 :::cb5 ::cb2">
                <af:column sortProperty="AunitctrlBe" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlBe.label}"
                           id="c6" width="105">
                  <af:inputText value="#{row.bindings.AunitctrlBe.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlBe.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlBe.mandatory}"
                                columns="#{bindings.ApplUnitControlView1.hints.AunitctrlBe.displayWidth}"
                                maximumLength="#{bindings.ApplUnitControlView1.hints.AunitctrlBe.precision}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlBe.tooltip}"
                                id="it1">
                    <f:validator binding="#{row.bindings.AunitctrlBe.validator}"/>
                  </af:inputText>
                </af:column>
                <af:column sortProperty="AunitctrlUnit" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlUnit.label}"
                           id="c3" width="105">
                  <af:inputText value="#{row.bindings.AunitctrlUnit.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlUnit.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlUnit.mandatory}"
                                columns="#{bindings.ApplUnitControlView1.hints.AunitctrlUnit.displayWidth}"
                                maximumLength="#{bindings.ApplUnitControlView1.hints.AunitctrlUnit.precision}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlUnit.tooltip}"
                                id="it9">
                    <f:validator binding="#{row.bindings.AunitctrlUnit.validator}"/>
                  </af:inputText>
                </af:column>
                <af:column sortProperty="AunitctrlCostMethod" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMethod.label}"
                           id="c9" width="105">
                  <af:inputText value="#{row.bindings.AunitctrlCostMethod.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMethod.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMethod.mandatory}"
                                columns="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMethod.displayWidth}"
                                maximumLength="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMethod.precision}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMethod.tooltip}"
                                id="it6">
                    <f:validator binding="#{row.bindings.AunitctrlCostMethod.validator}"/>
                  </af:inputText>
                </af:column>
                <af:column sortProperty="AunitctrlCostMgmtOpt" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMgmtOpt.label}"
                           id="c1" width="105">
                  <af:inputText value="#{row.bindings.AunitctrlCostMgmtOpt.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMgmtOpt.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMgmtOpt.mandatory}"
                                columns="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMgmtOpt.displayWidth}"
                                maximumLength="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMgmtOpt.precision}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlCostMgmtOpt.tooltip}"
                                id="it3">
                    <f:validator binding="#{row.bindings.AunitctrlCostMgmtOpt.validator}"/>
                  </af:inputText>
                </af:column>
                <af:column sortProperty="AunitctrlCostApprMtd" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlCostApprMtd.label}"
                           id="c2" width="105">
                  <af:inputText value="#{row.bindings.AunitctrlCostApprMtd.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlCostApprMtd.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlCostApprMtd.mandatory}"
                                columns="#{bindings.ApplUnitControlView1.hints.AunitctrlCostApprMtd.displayWidth}"
                                maximumLength="#{bindings.ApplUnitControlView1.hints.AunitctrlCostApprMtd.precision}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlCostApprMtd.tooltip}"
                                id="it2">
                    <f:validator binding="#{row.bindings.AunitctrlCostApprMtd.validator}"/>
                  </af:inputText>
                </af:column>
                <af:column sortProperty="AunitctrlJocApprMtd" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlJocApprMtd.label}"
                           id="c4" width="105">
                  <af:inputText value="#{row.bindings.AunitctrlJocApprMtd.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlJocApprMtd.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlJocApprMtd.mandatory}"
                                columns="#{bindings.ApplUnitControlView1.hints.AunitctrlJocApprMtd.displayWidth}"
                                maximumLength="#{bindings.ApplUnitControlView1.hints.AunitctrlJocApprMtd.precision}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlJocApprMtd.tooltip}"
                                id="it4">
                    <f:validator binding="#{row.bindings.AunitctrlJocApprMtd.validator}"/>
                  </af:inputText>
                </af:column>
                <af:column sortProperty="AunitctrlCreBy" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlCreBy.label}"
                           id="c5" width="105">
                  <af:inputText value="#{row.bindings.AunitctrlCreBy.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlCreBy.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlCreBy.mandatory}"
                                columns="#{bindings.ApplUnitControlView1.hints.AunitctrlCreBy.displayWidth}"
                                maximumLength="#{bindings.ApplUnitControlView1.hints.AunitctrlCreBy.precision}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlCreBy.tooltip}"
                                id="it7">
                    <f:validator binding="#{row.bindings.AunitctrlCreBy.validator}"/>
                  </af:inputText>
                </af:column>
                <af:column sortProperty="AunitctrlCreDate" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlCreDate.label}"
                           id="c8" width="103">
                  <f:facet name="filter">
                    <af:inputDate value="#{vs.filterCriteria.AunitctrlCreDate}"
                                  binding="#{backingBeanScope.backing_untitled8.id5}"
                                  id="id5"/>
                  </f:facet>
                  <af:inputDate value="#{row.bindings.AunitctrlCreDate.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlCreDate.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlCreDate.mandatory}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlCreDate.tooltip}"
                                id="id3">
                    <f:validator binding="#{row.bindings.AunitctrlCreDate.validator}"/>
                    <af:convertDateTime pattern="#{bindings.ApplUnitControlView1.hints.AunitctrlCreDate.format}"/>
                  </af:inputDate>
                </af:column>
                <af:column sortProperty="AunitctrlUpdBy" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdBy.label}"
                           id="c7" width="107">
                  <af:inputText value="#{row.bindings.AunitctrlUpdBy.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdBy.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdBy.mandatory}"
                                columns="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdBy.displayWidth}"
                                maximumLength="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdBy.precision}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdBy.tooltip}"
                                id="it5">
                    <f:validator binding="#{row.bindings.AunitctrlUpdBy.validator}"/>
                  </af:inputText>
                </af:column>
                <af:column sortProperty="AunitctrlUpdDate" filterable="true"
                           sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdDate.label}"
                           id="c10" width="105">
                  <f:facet name="filter">
                    <af:inputDate value="#{vs.filterCriteria.AunitctrlUpdDate}"
                                  binding="#{backingBeanScope.backing_untitled8.id6}"
                                  id="id6"/>
                  </f:facet>
                  <af:inputDate value="#{row.bindings.AunitctrlUpdDate.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdDate.label}"
                                required="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdDate.mandatory}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdDate.tooltip}"
                                id="id4">
                    <f:validator binding="#{row.bindings.AunitctrlUpdDate.validator}"/>
                    <af:convertDateTime pattern="#{bindings.ApplUnitControlView1.hints.AunitctrlUpdDate.format}"/>
                  </af:inputDate>
                </af:column>
                <af:column sortProperty="RowID" filterable="true" sortable="true"
                           headerText="#{bindings.ApplUnitControlView1.hints.RowID.label}"
                           id="c11" width="105">
                  <af:inputText value="#{row.bindings.RowID.inputValue}"
                                label="#{bindings.ApplUnitControlView1.hints.RowID.label}"
                                required="#{bindings.ApplUnitControlView1.hints.RowID.mandatory}"
                                columns="#{bindings.ApplUnitControlView1.hints.RowID.displayWidth}"
                                maximumLength="#{bindings.ApplUnitControlView1.hints.RowID.precision}"
                                shortDesc="#{bindings.ApplUnitControlView1.hints.RowID.tooltip}"
                                id="it8">
                    <f:validator binding="#{row.bindings.RowID.validator}"/>
                  </af:inputText>
                </af:column>
              </af:table>
            </af:panelCollection>
          </af:form>
        </af:document>
      </f:view>
      <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_untitled8-->
    </jsp:root>
        public String cb7_action() {
            try {
                BindingContainer bindings1 = getBindings();
                DCIteratorBinding dciter = (DCIteratorBinding)bindings1.get("ApplUnitControlView1Iterator");
                Row oldCcurrentRow = dciter.getCurrentRow();
                BindingContainer bindings = getBindings();
                OperationBinding operationBinding = bindings.getOperationBinding("CreateInsert");
                Object result = operationBinding.execute();
                if (!operationBinding.getErrors().isEmpty()) {
                    return null;
                RichPopup popup = this.getP1();
                RichPopup.PopupHints hints =
                    new RichPopup.PopupHints(); //empty hints renders dialog in center of screen
                popup.show(hints);
            catch (NullPointerException e)
                System.out.println(" cause " + e.getCause());
                System.out.println("message" + e.getLocalizedMessage());
                System.out.println("stack trace" + e.getStackTrace());
            return "insert";
        }Edited by: ADF 7 on Feb 10, 2012 2:05 AM

  • The same rows are in the table

    Hi,
    I have a web dynpro with 2 equal contexts. First context (node1) contains data (4 different entries) and the second (node2) is empty (0 entries).
    I want copy it to second context. I have used the following code:
         IWDNode srcNode = (IWDNode)wdContext.node1();
         IWDNode destNode = (IWDNode)wdContext.node2();
         WDCopyService.copySubtree(srcNode,destNode);
    Now destNode has the same data that srcNode (4 different entries). I have verified it.
    In my layout I have a table witch dataSource is node2.
    When I execute my web dynpro, the table has <b>4 EQUAL ROWS</b> (the last entry of node1).
    What happend? How I could solve this?
    Thanks.

    Hi Anja,
      It is better to loop throgh source node and create element of destnode, set the values and add element to destnode.
    IWDNode srcNode = (IWDNode)wdContext.node1();
    IWDNode destNode = (IWDNode)wdContext.node2();
    srcNode.moveFirst();
    for(int i=0;i<srcNode.size;i++)
    destNodeElement a= destNodeElement.createElement();
    a.set....
    destNode.addelement(a);
    Regards,
    ganga.

  • Why should we create index on  the table after inserting data ?

    Please tell me the Reason, why should we create index on the table after inserting data .
    while we can also create index on the table before insertion of the data.

    The choice depends on a number of factors, the main being how many rows are going to be inserted in the table as a percentage of the existing rows, or the percentage growth.
    Creating index after a table has been populated works better when the tables are large or the inserts are large for the following reasons
    1. The sort and creation of index is more efficient when done in batch and written in bulk. So works faster.
    2. When the index is being written blocks get acquired as more data gets written. So, when a large number of rows get inserted in a table that already has an index , the index data blocks start splitting / chaining. This increases the "depth" of the inverted b-tree makes and that makes the index less efficient on I/O. Creating index after data has been inserted allows Orale to create optical block distribution/ reduce splitting / chaining
    3. If an index exists then it too is routed through the undo / redo processes. Thats an overhead which is avoided when you create index after populating the table.
    Regards

  • Buffering of the table T429i table

    Hello,
    system: 4.6c
    The mrp jobs are getting completed beyond the schedule.We are trying to get a better executuon time for these jobs.
    Wanted to know if the buffering of this table T429i will help is is faster completion of these MRPs?
    Thanks.
    Prasanna

    Dear,
    MRP transactions the flag to buffer the table need to set to improve the performance.
    table MDBT GRPGV.
    In the process overview (Transaction SM50), you can see permanent accesses to program SAPLCOIT
    Reason and Prerequisites performance
    Type of the planning run: Net change or regenerative planning (intensive)
    Planning mode: Reactivate or reset planning dates (intensive)
    Planning horizon
    lead time scheduling
    Technical
    Database
    Buffering SAP number ranges
    Please refer the OSS  Note 23278 - MD01, MDBT: Performance during MRP run for details. and Note 204517 - MRP: Performance problems - typical causes
    Regards,
    R.Brahmankar

  • How to update the table available in BADI method

    Hi Friends,
    I have to implement one badi ME_REQ_POSTED for purchase requistion, in this badi  I have to read first line item and do
    some check...if that check is true i need to update subsequent line item (line 20, 30, 40 or so) with purchase group and MRP controller.
    In this BADI i have method POSTED, in this method parameter IM_EBAN is a table which i need to modify with my different
    values for purchase group and MRP controller.
    Kindly let me know how to update this table, so the changes can be reflected in purchase requistion.
    Since when I tried to directly modify the table in a loop, system throw one error stating IM_EBAN can not be modified.
    kindly help.
    pradeep

    hi
    I have implemented this exit but it does not stop at it while saving Purchase requistion. But my previous BADI stops at it when saving.
    Kindly guide.

  • Contextual Event on row selection in the table

    Hi,
    My taskflow has just a view activity which queries a view object and displays results as a table. This taskflow is inserted in the main page as a region. I have set up a selection listener on the table, to map to a method in a managed bean. I have made this method binding a producer of my contextual event. and another method binding on the main page as a consumer. I have mapped producer and the consumer on a event map on the main page.
    My problem is when a row is selected in the table, I see the method (in the selection listener) is called but the event is not fired and the consumer method is not called. I don't know, if it is because the producer method (selection listener) takes SelectionEvent as a parameter?.
    I added just to test, a button on my view activity and mapped the action listener to another method(with out parameters) on the same managed bean and made this a producer. In this situation the event got fired and the consumer method got called.
    Why is the selection listener method not firing the event?
    Thanks in advance.

    Hi,
    the two events that are supported for ADF Faces component events are ActionEvent and ValueChangeEvent. So if you have a selection event, you need to take this infromation and create an ActionEvent from it.
    http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/javax/faces/event/ActionEvent.html
    Frank

  • Do I have to use lock when I am reading data from a table

    Hi,
    When i am reading data from a table , do I have to set a lock on that table .
    Is it necessary for us to set the lock on a table when I am reading data from the table.
    When I am updating the table , do I have to set a lock on the table ?
    If yes, then what sort of lock-read lock,write lock or shared lock?
    Regards,
    Sushanth H.S.

    check it out,
    Lock objects are use in SAP to avoid the inconsistancy at the time of data is being insert/change into database.
    SAP Provide three type of Lock objects.
    - Read Lock(Shared Locked)
    protects read access to an object. The read lock allows other transactions read access but not write access to
    the locked area of the table
    - Write Lock(exclusive lock)
    protects write access to an object. The write lock allows other transactions neither read nor write access to
    the locked area of the table.
    - Enhanced write lock (exclusive lock without cumulating)
    works like a write lock except that the enhanced write lock also protects from further accesses from the
    same transaction.
    You can create a lock on a object of SAP thorugh transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK.
    Use: you can see in almost all transaction when you are open an object in Change mode SAP could not allow to any other user to open the same object in change mode.
    Example: in HR when we are enter a personal number in master data maintainance screen SAP can't allow to any other user to use same personal number for changes.
    Technicaly:
    When you create a lock object System automatically creat two function module.
    1. ENQUEUE_<Lockobject name>. to insert the object in a queue.
    2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.
    You have to use these function module in your program.
    check this link for example.
    http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    tables:vbak.
    call function 'ENQUEUE_EZLOCK3'
    exporting
    mode_vbak = 'E'
    mandt = sy-mandt
    vbeln = vbak-vbeln
    X_VBELN = ' '
    _SCOPE = '2'
    _WAIT = ' '
    _COLLECT = ' '
    EXCEPTIONS
    FOREIGN_LOCK = 1
    SYSTEM_FAILURE = 2
    OTHERS = 3
    if sy-subrc 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    Normally ABAPers will create the Lock objects, because we know when to lock and how to lock and where to lock the Object then after completing our updations we unlock the Objects in the Tables
    http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm
    purpose: If multiple user try to access a database object, inconsistency may occer. To avoid that inconsistency and to let multiple user give the accessibility of the database objects the locking mechanism is used.
    Steps: first we create a loc object in se11 . Suppose for a table mara. It will create two functional module.:
    1. enque_lockobject
    1. deque_lockobject
    before updating any table first we lock the table by calling enque_lockobject fm and then after updating we release the lock by deque_lockobject.
    Select the radio button "Lock object"..
    Give the name starts with EZ or EY..
    Example: EYTEST
    Press Create button..
    Give the short description..
    Example: Lock object for table ZTABLE..
    In the tables tab..Give the table name..
    Example: ZTABLE
    Save and generate..
    Your lock object is now created..You can see the LOCK MODULES..
    In the menu ..GOTO -> LOCK MODULES..There you can see the ENQUEUE and DEQUEUE function
    Reward if helpful

  • Doubts in the tables

    Hi All,
    i have a doubt in the following tables.The tables are
    TEBP_ADR_ADD
    TEBP_ADR_SHIP_TO
    Doubt is
    1) What is the purpose of this two tables and relationsip between  
         them.
    2) I found that some address number that are not available in the
         Address master table for Business partner BUT020 and ADRC,so the address no in the above table are related to Business partner.
    3) from where ie..which tcode or program these tables where populated.
    4) is it necessary to update the corresponding Business partner data in the  table TEBP_ADR_SHIP_TO when we do any changes in the table TEBP_ADR_ADD.
    Thanks in advance..

    Hi Joe,
    TEBP_ADR_ADD
    Supplementary Table for TEBP_ADR_SHIP_TO
    You can use T-Code BP to maintain data to view the info in the above table. For this you have to maintain multiple addresses.
    Cheers.
    ...Reward if useful.

Maybe you are looking for

  • Error: "a summary has been specified on a non recurring field"

    Hi,       I have a formula which calculates a quantity amount based on different quantity types & finally sums all the quantity to give a result, tis result i want to show in crystal report, This field is put in report footer, when i try to run the r

  • 10g Express installation on Win 2003 Server is failing

    Hi, I am facing the similar issue like this Oracle Database 10g Express Edition installing on win2003 SP2 installation is failing after copying the files and publishing the product information and then automatically rolling back the complete setup. I

  • Save as PDF file as excel file or text file in vba excel

    Hi all, I am opening a PDF document fromm VBA excel. After opening document it should save the document as excel file or text file in one folder. I am trying to do this with some code but not able to , pls help me thatnks. Dim AcroApp As Acrobat.CAcr

  • [SOLVED]How do I get rw access to a vfat partition?

    I need user rw access to my vfat partition how would I go about setting it up. Disk /dev/sda: 320.0 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x19b819b8 Devic

  • Icons disappear when creating a jar file.

    I am trying to make a runable jar file of an application that i wrote however, when i export it from eclipse the icons no longer appear. All of the icons are contained in a class called gridGui. Any help would be great. Thanks      //Creates all of t