Continously changing data blocks
Hi
If the data blocks in the buffer continously get updated such that they never reach the Least used list of LRU,then when will they be written to disk?
To ensure that DBWR writes all modified buffers any of the following is adequate :
1. SHUTDOWN (NORMAL or IMMEDIATE)
2. ALTER DATABASE BEGIN BACKUP
3. ALTER SYSTEM CHECKPOINT
4. ALTER SYSTEM SWITCH LOGFILE -- DBWR writes modified buffers "lazily", so the command is returned even before all modified buffers are written to disk
5. ALTER TABLESPACE tbsname BEGIN BACKUP -- only the Tablespace is checkpointed, not the whole instance
6. DROP or TRUNCATE table -- only the table's (and indexes) buffers are checkpointed
7. Segment checkpoint issued by a Parallel Query -- only the segment's buffers are checkpointed
8. Segment checkpoint initiated by direct path serial read implemented in 11g -- only the segment's buffers are checkpointed (see URL added by Joel (jgarry) in later comments)
Hemant K Chitale
Edited by: Hemant K Chitale on Jan 11, 2011 11:13 AM
Similar Messages
-
Hi!!!Can anyone suggest how to change data block dynamically using input
Hi all,
Here is my requirement...I have a datablock which has 7 columns, these coloumn represent dates. I have a header in which I will input the date[b] from and to ( this is restricted to not more than one month). Now when I enter these 2 date fields in header, My 7 coloumn data block need to be changed to 'n' number of coloumn( which is less than 1 month) as per input fields. Can I do this, if we can then please give me the guide lines.
Thank youit is a good solution Jeneesh, because it is the only one.
You cannot create items dynamically at runtime, so you have to create them in your form at designtime and show and hide them. -
What does redo log buffer holds, changed value or data block?
Hello Everyone,
i am new to database side and have one query as i know redo log buffer contain change information , my doubt is does it store the value only or the changed data block? because if we can see data buffer cache size is more as it holds data block and redo log buffer size is less .The Redo Log buffer contains OpCodes that represent the SQL commands, the "address" (file,block,row) where the change is to be made and the nature of the change.
It does NOT contain the data block.
(the one exception is when you run a User Managed Backup with ALTER DATABASE BEGIN BACKUP or ALTER TABLESPACE BEGIN BACKUP : The first time a block is modified when in BEGIN BACKUP mode, the whole block is written to the redo stream).
The log buffer can be and is deliberately smaller than the blocks buffer cache. Entries in the redo log buffer are quickly written to disk (at commits, when it is 1/3rd or 1MB full, every 3seconds, before DBWR writes a modified data block).
Hemant K Chitale -
Where do changed data values goto if DB is in BACKUP mode for LONG PERIODs
Where does oracle write if put the database in begin backup mode for LONG PERIODs. Lets say I issued a "ALTER DATABASE BEGIN BACKUP" command in a busy database and forgot about it for a long time.
I understand that when the DB IS IN BEGIN BACKUP MODE, "the database copies whole changed data blocks into the redo stream." (Page 503 of 11.1 backup and recovery guide). But the redo stream is limited by the number of online redologs. After some time redologs also wont be sufficient for the changed data values after a begin backup is issued. I understand that there are archived redologs.
Lets say there are 2 redolog groups in this database and Lets say 10 archive log files got generated since the ALTER DATABASE BEGIN BACKUP was issued.
When i finally issue the "ALTER DATABASE END BACKUP" command, will Oracle sync the datafiles with the changed data blocks reading the data from these 10 archived log files ? What happens if i delete these archive redologs from the archive log destination. ??
page 504 of 598 in the backup and recovery guide
Caution : If you fail to take the tablespace out of backup mode,
then Oracle Database continues to write copies of data blocks in
this tablespace to the online redo logs, causing performance
problems. Also, you receive an ORA-01149 error if you try to shut
down the database with the tablespaces still in backup mode.
it just says "performance problems", nothing more than that.*
Any answers ? I am sure this question would have popped to some of you senior DBA people out there.user13076519 wrote:
Where does oracle write if put the database in begin backup mode for LONG PERIODs. Lets say I issued a "ALTER DATABASE BEGIN BACKUP" command in a busy database and forgot about it for a long time. It writes just like it always does, plus it puts some extra in the redo log the [url http://oraclenz.com/2008/07/11/logging-or-nologging-that-is-the-question-part-ii/]first time a block is changed.
>
>
I understand that when the DB IS IN BEGIN BACKUP MODE, "the database copies whole changed data blocks into the redo stream." (Page 503 of 11.1 backup and recovery guide). But the redo stream is limited by the number of online redologs. After some time redologs also wont be sufficient for the changed data values after a begin backup is issued. I understand that there are archived redologs. This appears to be a typo (incompleteness, really) in the backup and recovery guide.
The redo stream is not limited by the number of of redo logs, only the volume of data. When a log fills up, it gets archived. If all the logs get filled up before the first one is finished archiving, the db will stall until the next redo becomes available. The only limit to archiving is disk space (and bandwidth if that is an issue, which it can be in some configurations).
>
Lets say there are 2 redolog groups in this database and Lets say 10 archive log files got generated since the ALTER DATABASE BEGIN BACKUP was issued.
When i finally issue the "ALTER DATABASE END BACKUP" command, will Oracle sync the datafiles with the changed data blocks reading the data from these 10 archived log files ? What happens if i delete these archive redologs from the archive log destination. ??Archived logs are archived, Oracle only reads them in recovery. You do not understand archive logs, read the concepts manual.
>
page 504 of 598 in the backup and recovery guide
Caution : If you fail to take the tablespace out of backup mode,
then Oracle Database continues to write copies of data blocks in
this tablespace to the online redo logs, causing performance
problems. Also, you receive an ORA-01149 error if you try to shut
down the database with the tablespaces still in backup mode.
it just says "performance problems", nothing more than that.*Because it is overgeneralizing.
>
Any answers ? I am sure this question would have popped to some of you senior DBA people out there.Oh, you want to send me a gift for showing where in oracle it's documented? See [url http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:271815712711]here for something over a decade old. -
ORA-00607: Internal error occurred while making a change to a data block
hi
i hv use testing purpose oracle 10 Xe in unix
but when today i hv connect database following error occured
SQL> startup
ORACLE instance started.
Total System Global Area 83886080 bytes
Fixed Size 1257284 bytes
Variable Size 75497660 bytes
Database Buffers 4194304 bytes
Redo Buffers 2936832 bytes
Database mounted.
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4193], [625], [640], [], [], [],
I hv check alert log , but no proper solution is given , how can start databaseDuh, and of course I missed the significance of
oracle 10 Xe in unix
XE is only supported for Linux - according to the downloads page that means "Debian, Mandriva, Novell, Red Hat and Ubuntu".
Oracle have not publically stated the reasons why XE is only available on Linux and Windows, but my guess is that it is something to do the Intel chip architecture. If this is so it would be possible for Oracle to port XE to run on Solaris for x86. But they have not done so yet.
Which means, alas, that you are unlikely to get any help for this one, because XE is not supported on any unix platform.
Good luck, APC -
Switch data block - Do you want to save changes ?
As soon as I choose a record from my love "ORDERS_LOV", I simply want to display a new canvas and switch data blocks. but why does the system keep asking me to save changes when I choose a record ???
Here's my code:
IF SHOW_LOV('ORDERS_LOV') THEN
HIDE_WINDOW('CUSTOMER_SERVICE');
SHOW_VIEW('ORDERS_CANVAS');
GO_BLOCK('ORDERS');
GO_ITEM('orders.order_id');
Execute_Query;
ELSE
MESSAGE('No order found for this customer');
END IF;why does the system keep asking me to save changes when I choose a record ???Because the Execute_Query causes the 'Orders' block to clear, and at some prior time you have
either entered a new record into the block, or else your prior Execute_Query caused a Post-Query
trigger to run that set values in items that cause the record status go change from QUERY to CHANGED.
In other words, the status of your 'Orders' block is 'CHANGED', and not 'NEW' or 'QUERY'. -
Manipulating data from a ref cursor in the data block of a form
I am using Oracle Forms 10g. I have a ref cursor which returns columns A, B, C, D, E where B, C, D, E are values. The "Query Data Source Name" attribute in the datablock contains "CCTR_Extract_pkg.cctr_refcur". The "Column Name" attribute of item A contains "A", item B contains "B", etc. All of these columns are displayed on the form and it all works perfectly.
I have a new request, the users would like a 6th column displayed - column F - where it equals D - B.
Is there any way of doing this in the form only or do I need to change the ref cursor to accomodate the new column and then the form?
If it can be achieved in the Form (only) - then how do I reference the 2 columns?
Thanks in anticipation
Michael
Edited by: user8897365 on 24-Aug-2011 10:32Is there any way of doing this in the form only or do I need to change the ref cursor to accomodate the new column and then the form? The REF_CURSOR is the data source of your block so you will have to modify the CCTR_Extract_pkg package and cctr_refcur REF_CURSOR.
If it can be achieved in the Form (only) - then how do I reference the 2 columns?After you have modified your database package, I recommend you run the Data Block Wizard on your block and let Forms detect the 2 new columns. You can do this manually, but it is safer to let Forms do it for you. If you want to do it manually, open the Query Data Source Columns property and add your new columns.
Hope this helps,
Craig B-)
If someone's response is helpful or correct, please mark it accordingly. -
Sales Order creation/ change date for the items
I have a unique scenario and i need to get a Report for this
A sales order is created for 4 line items.
Out of these , for 2 line items a delivery is created. I need the sales order creation date and time for these 2 items in a custom report
Now the other 2 items go in to some kind of block- Now these are released by going in the sales order VA02 and after releasing the delivery is created. Again for these two items , i need the sales order change date as after a user goes and changes the sales order to remove the block only then delivery is created for these two items
Also another scenario is the 2 line items go for back order and when we get stock at tht time system confirms the stock and then the delivery is created for these. So also for this when this change occured i need to get the date for these 2 line items
Can any one please suggest how to get this data from the scenarios?
I dont want to get the date when the delivery is created as i can get tht from the LIKP table. I need the sales order create and change dates for these.You may be aware, any changes to a document will be recorded in CDHDR (for header changes) and CDPOS (for item changes). You can explore these two tables.
thanks
G. Lakshmipathi -
Data Concurrency and Consistency ( SCN , DATA block)
Hi guys, i am getting very very very confused about how oracle implement consistency / multiversioning with regards to SCN in a data block and transaction list in the data block..
I will list out what i know so you guys can gauge me on where i am..
When a SELECT statement is issued, SCN for the select query is determined. Then Blocks with higher SCN are rebuilt from the RBS.
Q1) The SCN in the block implied here - is it different from the SCNs in the transaction list of the block ? where is this SCN store ? where is the transaction list store ? how is the SCN of the block related with the SCNs in the transaction list of the block ?
Q2) can someone tell me what happen to the BLOCK SCN and the transaction list
of the BLOCK when a transaction start to update to a row in the block occurs.
Q3) If the BLOCK SCN reflects the latest change made to the block and If the SCN of the block is higher then the SCN of the SELECT query, it means that the block has change since the start of the SELECT query, but it DOESNT mean that the row (data) that the SELECT query requires has changed.
Therefore why cant ORACLE just check to see whether the row has changed and if it has, rebuilt a block from the RBS ?
Q4) when ORACLE compares the BLOCK SCN, does it only SCAN for the BLOCK SCN or does it also SEARCH through the TRANSACTION LIST ? or it does both ? and why ?
Q5) is transaction SCN same as Transaction ID ? which is store in the RBS , the transaction SCN or ID ?
Q6) in short i am confuse with the relationship between BLOCK SCN, transaction list SCN, their location, their usage and relationship of the BLOCK SCN and transaction list when doing a SELECT, their link with RBS..
any gurus clear to give me a clearer view of what is actually happening ?Hi Aman
Hmm agreed.So when commit is issued , what happens at that time?Simply put:
- The SCN for the transaction is determined.
- The transaction is marked as committed in the undo header (the commit SCN is also stored in the undo header).
- If fast cleanout takes place, the commit SCN is also stored in the ITL. If not, the ITL (i.e. the modified data blocks) are not modified.
So at commit, Oracle will replace the begin scn in the ITL with this scn
and this will tell that the block is finally committed is it?The ITL does not contain the begin SCN. The undo header (specifically the transaction table) contains it.
I lost here.In the ITL , the scn is transaction SCN or commit scn?As I just wrote, the ITL contains (if the cleanout occured) the commit SCN.
This sounds like high RBA information?What is RBA?
Commit SCNThis is the SCN associated with a committed transaction.
Begin SCNThis is the SCN at which a transaction started.
Transaction SCNAs I wrote, IMO, this is the same as the commit SCN.
Also please explain that what exactly the ITL stores?If you print an ITL slot, you see the following information:
BBED> print ktbbhitl[0]
struct ktbbhitl[0], 24 bytes @44
struct ktbitxid, 8 bytes @44
ub2 kxidusn @44 0x0009
ub2 kxidslt @46 0x002e
ub4 kxidsqn @48 0x0000fe77
struct ktbituba, 8 bytes @52
ub4 kubadba @52 0x00800249
ub2 kubaseq @56 0x3ed6
ub1 kubarec @58 0x4e
ub2 ktbitflg @60 0x2045 (KTBFUPB)
union _ktbitun, 2 bytes @62
b2 _ktbitfsc @62 0
ub2 _ktbitwrp @62 0x0000
ub4 ktbitbas @64 0x06f4c2a3- ktbitxid --> XID, the transaction holding the ITL slot
- ktbituba --> UBA, used to locate the undo information
- ktbitflg --> flags (active, committed, cleaned out, ...)
- _ktbitfsc --> free space generated by this transaction in this block
- _ktbitwrp+ktbitbas --> commit SCN
HTH
Chris -
Can we create a list item as a data block item?
Hi,
I have changed a text item to list item on the data block.
This list item used to get populated when it was control block item, but after i changed it to data block item, it's not getting populated.
My question is, can we create a list item(poplist) as a data block item?
Any idea?
Thanks in advance
R.GHi
When you use ctl blocks data dose not fetch from Database. But in data blocks it get fetches when you execute query. So you have to make sure table column values are matching with the List Box values you have given.
So please check table values.
Nilaksha. -
Inserting rows into a data block
Hi, how do i insert 'n' rows into a data block and after that commit the changes into the data base.
Thanks for any help.You can use something like this:
Go_Block('my_block');
first_record;
LOOP
.... insert values to the items
next_record;
END LOOP;
- for commiting changes
Do_Key('Commit_Form');
I hope this will help you.
Helena -
ALV CHECK CHANGED DATA WITH REUSE_ALV_GRID_DISPLAY
HELLO EVERY-ONE.
I have a question that how to check changed data in ALV. I know we can use CHECK_CHANGE_DATA Method in OO, and how to check it in REUSE_ALV_GRID_DISPLAY <b>without double click</b> ?Try this code , it will give the solution that has been solved with funtion module
REPORT zalvprg1.
TYPE-POOLS: slis.
TABLES: ekko.
DATA : it_list_top_of_page TYPE slis_t_listheader,
it_list_end_of_page TYPE slis_t_listheader,
it_events TYPE slis_t_event,
wa_line TYPE slis_listheader,
wa_event TYPE slis_alv_event.
DATA : it_fieldcat TYPE slis_t_fieldcat_alv ,
wa_fieldcat TYPE slis_fieldcat_alv.
TYPES :BEGIN OF ty_ekko,
ebeln TYPE ebeln,
bukrs TYPE bukrs,
ernam TYPE ernam,
bsart TYPE esart,
waers TYPE waers,
END OF ty_ekko.
TYPES :BEGIN OF ty_ekpo,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
matnr TYPE matnr,
werks TYPE werks,
menge TYPE bstmg,
END OF ty_ekpo.
TYPES :BEGIN OF ty_marc,
matnr TYPE matnr,
werks TYPE werks_d,
tranz TYPE tranz,
herbl TYPE herbl,
END OF ty_marc.
TYPES : BEGIN OF ty_show,
old TYPE i,
new(10) TYPE c,
END OF ty_show.
TYPES : BEGIN OF ty_final,
ebeln TYPE ebeln,
bukrs TYPE bukrs,
ernam TYPE ernam,
bsart TYPE esart,
waers TYPE waers,
matnr TYPE matnr,
werks TYPE werks,
menge TYPE bstmg,
END OF ty_final.
DATA: it_ekko TYPE TABLE OF ty_ekko,
it_ekpo TYPE TABLE OF ty_ekpo,
it_marc TYPE TABLE OF ty_marc,
it_final TYPE TABLE OF ty_final,
it_show TYPE TABLE OF ty_show WITH HEADER LINE,
wa_marc TYPE ty_marc,
wa_ekko TYPE ty_ekko,
wa_ekpo TYPE ty_ekpo,
wa_show TYPE ty_show,
wa_final TYPE ty_final.
SELECT-OPTIONS: so_ebeln FOR ekko-ebeln.
START-OF-SELECTION.
PERFORM data_fetch.
PERFORM alv_display.
END-OF-SELECTION.
*& Form data_fetch
text
--> p1 text
<-- p2 text
FORM data_fetch .
SELECT ebeln
bukrs
ernam
bsart
waers
FROM ekko
INTO TABLE it_ekko
WHERE ebeln IN so_ebeln.
SELECT ebeln
ebelp
matnr
werks
menge
FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN it_ekko
WHERE ebeln = it_ekko-ebeln.
LOOP AT it_ekko INTO wa_ekko.
wa_final-ebeln = wa_ekko-ebeln.
wa_final-bukrs = wa_ekko-bukrs.
wa_final-ernam = wa_ekko-ernam.
wa_final-bsart = wa_ekko-bsart.
wa_final-waers = wa_ekko-waers.
READ TABLE it_ekpo INTO wa_ekpo WITH KEY ebeln = wa_ekko-ebeln.
IF sy-subrc EQ 0.
wa_final-matnr = wa_ekpo-matnr.
wa_final-werks = wa_ekpo-werks.
wa_final-menge = wa_ekpo-menge.
ENDIF.
APPEND wa_final TO it_final.
ENDLOOP.
ENDFORM. " data_fetch
*& Form alv_display
text
--> p1 text
<-- p2 text
FORM alv_display .
REFRESH it_fieldcat.
PERFORM field_cat USING 'EBELN' 'PURCHASE ORDER NO'.
PERFORM field_cat USING 'BUKRS' 'COMPANY CODE'.
PERFORM field_cat USING 'ERNAM' 'USERNAME CREATED'.
PERFORM field_cat USING 'BSART' 'DOCUMENT TYPE'.
PERFORM field_cat USING 'WAERS' 'CURRENCY'.
PERFORM field_cat USING 'MATNR' 'MATERIAL NO'.
PERFORM field_cat USING 'WERKS' 'PLANT '.
PERFORM field_cat USING 'MENGE' 'QUANTITY'.
CLEAR it_list_top_of_page.
PERFORM f009_list_header .
CLEAR it_list_end_of_page.
PERFORM f009_list_footer.
PERFORM f012_grid_function_module TABLES it_final USING it_fieldcat.
ENDFORM. " alv_display
**& Form f009_list_header
text
FORM f009_list_header.
**..... Header detail for ALV
wa_event-name = text-001. "TOP_OF_PAGE
wa_event-form = text-002. "F010_TOP_OF_PAGE
APPEND wa_event TO it_events.
CLEAR wa_event.
CLEAR wa_line.
wa_line-typ = text-003. "S
wa_line-key = text-004. "9 - BLOCKER REPORT
wa_line-info = text-005.
APPEND wa_line TO it_list_top_of_page.
CLEAR wa_line.
ENDFORM. "f009_list_header
*& Form f010_top_of_page
text
FORM f010_top_of_page.
**......The form 'F010_TOP_OF_PAGE' cannot be called directly
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_list_top_of_page.
ENDFORM. "f010_top_of_page
*& Form field_cat
text
-->W_FIELD text
-->W_COL text
FORM field_cat USING w_field
w_col.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = w_field.
wa_fieldcat-seltext_l = w_col.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat TO it_fieldcat.
ENDFORM. " field_cat
*& Form f012_grid_function_module
text
FORM f012_grid_function_module TABLES w_tab USING w_fcat TYPE any.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = w_fcat
i_callback_pf_status_set = 'F010_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
it_events = it_events[]
TABLES
t_outtab = w_tab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc IS NOT INITIAL.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "f011_grid_function_module
*& Form f009_list_footer
text
FORM f009_list_footer.
**..... Footer detail for ALV
CLEAR wa_event.
CLEAR wa_line.
wa_event-name = text-007. "BOTTOM_OF_PAGE
wa_event-form = text-008. "F010_BOTTOM_OF_PAGE
APPEND wa_event TO it_events.
wa_line-typ = text-009. "S
wa_line-key = text-010. "9 - BLOCKER REPORT
wa_line-info = text-011.
APPEND wa_line TO it_list_end_of_page.
CLEAR wa_line.
ENDFORM. "f009_list_footer
*& Form f010_top_of_page
text
FORM f010_bottom_of_page.
**......The form 'F010_TOP_OF_PAGE' cannot be called directly
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_list_end_of_page.
ENDFORM. "f010_end_of_page
FORM user_command *
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
IF rs_selfield-fieldname = 'MATNR'.
SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
SET PARAMETER ID 'WRK' FIELD '1000'. "<- Your plant here
CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.
call transaction 'MM02' and skip first screen.
ENDIF.
IF rs_selfield-fieldname = 'WERKS'.
PERFORM disp_marc USING rs_selfield.
ENDIF.
WHEN '&CHANGE'.
IF rs_selfield-fieldname = 'MENGE'.
PERFORM disp_alter USING rs_selfield.
ENDIF.
ENDCASE.
ENDFORM. "callback_ucomm
*& Form f010_pf_status
text
-->RT_EXTAB text
FORM f010_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZS_ALV'.
ENDFORM. "F010_PF_STATUS
*ENDFORM. "dialog
*& Form f002_FIELDCAT
text
-->P_0512 text
-->P_0513 text
-->P_0514 text
FORM f002_fieldcat USING w_field
w_col
w_change .
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = w_field.
wa_fieldcat-seltext_l = w_col.
wa_fieldcat-outputlen = 15.
wa_fieldcat-edit = w_change.
wa_fieldcat-input = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
ENDFORM. " f002_FIELDCAT
*& Form disp_marc
text
-->P_W_SELFIELD text
FORM disp_marc USING rs_selfield TYPE slis_selfield.
SELECT matnr
werks
tranz
FROM marc INTO TABLE it_marc
WHERE werks = rs_selfield-value.
REFRESH it_fieldcat.
PERFORM field_cat USING 'MATNR' 'MATERIAL NUMBER'.
PERFORM field_cat USING 'WERKS' 'PLANT '.
PERFORM field_cat USING 'TRANZ' 'INTER-OPERATION TIME'.
PERFORM field_cat USING 'HERBL' 'STATE OF MANUFACTURE'.
PERFORM f012_grid_function_module TABLES it_marc USING it_fieldcat .
IF sy-subrc NE 0.
MESSAGE 'MATERIAL DETAILS' TYPE 'S'.
ENDIF.
ENDFORM. " disp_marc
*& Form disp_alter
text
-->P_RS_SELFIELD text
FORM disp_alter USING rs_selfield TYPE slis_selfield.
DATA:l_var(10) TYPE c.
REFRESH : it_fieldcat,
it_show.
it_show-old = rs_selfield-value.
CLEAR it_show-new.
APPEND it_show TO it_show.
PERFORM field_cat USING 'OLD' 'OLD QTY (MENGE)'.
PERFORM f002_fieldcat USING 'NEW' 'NEW QTY (MENGE)' 'X'.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
i_title = 'CHANGES IN MATERIAL'
i_tabname = 'IT_SHOW'
it_fieldcat = it_fieldcat
i_callback_program = sy-repid
TABLES
t_outtab = it_show
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
l_var = it_show-new.
READ TABLE it_final INDEX rs_selfield-tabindex INTO wa_final.
wa_final-menge = l_var.
MODIFY it_final INDEX rs_selfield-tabindex FROM wa_final TRANSPORTING menge .
PERFORM alv_display.
ENDFORM. " disp_alter
Reward points for the same
Regards,
Shanmuga perumal.L -
Data block wizard breaks master-detail
I've encountered the following situation, and I'm wondering if it's a known bug or if I'm doing something wrong:
1. Open the data block wizard on an existing block that is the "detail" block of a master-detail relationship.
2. Add one new field to the block. No other changes are made.
3. When the form is recompiled and run, the master-detail relationship is broken. The detail block contains all the rows in the detail table. Clicking on the rows of the master block does not change the detail.
Adding a field to the block manually does not cause a problem. The relation is not impacted, and we see no property settings that are wrong. We tried downloading and installing all of the latest patches for forms 6i, and the problem occurs with that release as well. Any ideas?I think you do something wrong because I add many fields many times and it works fine.
Thanks
Abubakr
<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Steven Swartzlander:
I've encountered the following situation, and I'm wondering if it's a known bug or if I'm doing something wrong:
1. Open the data block wizard on an existing block that is the "detail" block of a master-detail relationship.
2. Add one new field to the block. No other changes are made.
3. When the form is recompiled and run, the master-detail relationship is broken. The detail block contains all the rows in the detail table. Clicking on the rows of the master block does not change the detail.
Adding a field to the block manually does not cause a problem. The relation is not impacted, and we see no property settings that are wrong. We tried downloading and installing all of the latest patches for forms 6i, and the problem occurs with that release as well. Any ideas?<HR></BLOCKQUOTE>
null -
Creating "Control Combo Box " Relation with data block
Hi all dears
i am switching from C# to oracle developer for joining gulf net software house, i have a problem regarding master detail data
the senerio is
"List items" control Filled programatically as under shortly:-
rg_id := create_group_from_query('myrg', 'select dname a, dname b from dept');
populate_group(rg_id);
populate_list('mylist', rg_id);
using this i fill my combo box during new form instance trigger
i have created a datablock emp through wizard which can show 10 record.
now
Problem 1
i want to show records on form when user select any dept from combo box.
Problem 2
if i create group from query and in select statement is like this "select dname, dpetno from dept" the record group is created successfully but i am unable to populate_list due to different data type colums in record group how i will populate list so that List items Labels are department name and value is department no
Thanks in advance for persualHi dears all
I have solved this problem my self
1. select dept name form combo box and the data block shows the emp's of concern depat
solution
create a data block of emp table through wizard
create its table view and show 10 records
go to datablock i consider its name "emp" datablock properties
in Where clause condition specify deptno = : my_combo_box;
now go to combo box when item changed event
go_bolck("emp);
execute_query; -
COMMIT_FORM per one DATA BLOCK at a time
Hi,
Please guide for the following:
I have 3 data blocks (tabular) on 3 tables, with three radio buttons on the form. I want to insert records in a table as per the radio button value:
For example
(1) if user has selected rdbtn1 then COMMIT_FORM must insert record in table 1 only.
(2) if user has selected rdbtn2 then COMMIT_FORM must insert record in table 2 only.
(2) if user has selected rdbtn3 then COMMIT_FORM must insert record in table 3 only.
Is it possible with COMMIT_FORM, if so, how, please guide.
Regards.Here is the fundamental problem. The Commit_Form built-in will save all pending transactions in the entire Forms session. Therefore, in order to save incrementally (one block out of many) you have to use autonomous transactions. In essence you have to create a new session, perform your changes and save the changes outside of the current Forms session. This is typically done using Dynamic SQL. However, you can’t use the EXECUTE_IMMEDIATE Native Dynamic SQL (NDS) command in Forms. You could use FORMS_DDL (which allows you to execute dynamic SQL from Forms) but Forms_DDL issues an implicit COMM IT which will COMMI T the entire Forms Session. Therefore, the best way to accomplish this would be to call a database procedure that uses NDS to perform the needed DML and issue the COMM IT.
The other alternative would be to do what I think "user8937305" is suggesting; depending on the Radio Button selected, you clear the other two data blocks so only the data in the selected data block (radio button) is saved through the FORMS_C OMMIT.
Hope this helps,
Craig B-)
If someone's response is helpful or correct, please mark it accordingly.
Maybe you are looking for
-
I am using iTunes on my MacBook Pro, and when purchasing a song I'm asked to enter my password to my Apple ID (as usual) and when I do this, it doesn't seem to accept it. It however does not display an error message... It simply re-displays the box t
-
Alternate option for Get_Application_Property(PASSWORD)
Hi All, Here is the problem i am facing. The current business process in our application is running through forms and is carried out manually by the user. This process involves the generation of reports (pdf format) during the process. so the connect
-
Folder icon broken in leopard?
just upgraded to Leopard and noticed that when i'm in thumbnail view and change the icon of the folder to an image stored in 'clipboard' - it renders that folder unclickable? what's going on? worked great in tiger! ****....
-
RoboHelp x5.0.2 integration with Frame 8.0
Our company is looking to rid itself of Word (well, we tech writers would like to get rid of Word and are looking to build a case for making a switch to Frame) . We are also using RoboHelp x5.0.2 - will this pose a problem for us? This forum seems li
-
Item categiry and account assignment
Hi all, Hav we create any item categiries and account assignments. if yes,what business process required please clarify siri