on 06-25-2009 2:32 PM
Hi all,
does anyone know whether it is possible to change the buffer size of number range objects in BW while these number range objects are being accessed by loads?
Thanks
Gerrit
Hi
When loading large quantities of data into an InfoCube, the number range buffer should be increased for the dimensions that are likely to have a high number of values , Use Function module RSD_CUBE_GET to Identify the object name of the dimension.(Take the Object number from this function module)
Use Transaction SNRO ->EDIT-> Setup Buffering->Main memory buffering for package dimension
set the values between 500 and 1000
Please find below an wiki on this
https://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=50004015
Hope this would be helpful to you
Many thanks
kiran
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Diogo,
many thanks for this.
We have quite abig load running at the moment and we are wondering whether it would have any negative impact if we changed the buffer size of some objects now. Do you know if that would be the case?
Thanks
Gerrit
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi there,
Never test it change it at the moment.
But if you know the load is still in an initial phase, you can cancel it, change the BID buffering, repeat the load and afterwords revert it.
But nevertheless you could try to change it even so (while running) and see if it changes anything, you can monitor it in sm50 the access to NRIV and the dimension which contains the BID if still persists. If so, nothing changed, if not, you're changes might be successfull.
Diogo.
Hi there,
I wrote a program adapted on another code that was present here in SDN and use it in process chain to change the BID number range, and after the load, I use the same program to revert it.
You pass the BID as parameter, the number to buffer the BID and the option to add to memory or do not use memory buffering.
Here it is the code:
*&---------------------------------------------------------------------*
*& Report Z_GET_NUMBER_RANGE_INFO_CUBE
*&
*&---------------------------------------------------------------------*
*& Author: Rajiv Deshpande Date: August 01 2006
*& Description: This program changes the value for selected Number Range
*& Input: Info Cube Name, No. of Numbers in Memory and radio button
*& selection Add / Delete (Main Memory Buffering)
*& Output: Displays the List of Dimensions in the given cube with
*& additional information like the Number Range #, Current
*& Status.The Number Range # has a HotSpot when clicked calls a
*& BDC program to do the user defined activity (Add/Delte (Main
*& Memory Buffer)).
*&---------------------------------------------------------------------*
report z_buffer_number_range line-size 225.
tables: nriv, tnro.
type-pools: rzd1.
constants: nodata type c value '/'. "nodata
parameter: BID like nriv-object obligatory,
*parameter: p_cube like rsdcube-infocube obligatory,
p_number like tnro-noivbuffer obligatory,
p_add radiobutton group grp1,
p_del radiobutton group grp1.
data:
opt type ctu_params,
c_cube type rsd_infocube,
c_number(8) type c,
bdc_obj like nriv-object,
l_escube type rsd_s_cube,
l_etdime type rsd_t_dime,
bdcdata like bdcdata occurs 0 with header line.
start-of-selection.
* c_cube = p_cube.
c_number = p_number.
bdc_obj = BID.
* perform get_the_cube_info.
* perform write_info.
end-of-selection.
*at line-selection.
* bdc_obj = sy-lisel+81(10).
perform fill_bdc using bdc_obj c_number p_add p_del.
perform call_tcode.
**&---------------------------------------------------------------------
**
**& Form get_the_cube_info
**&---------------------------------------------------------------------
**
** Gets CUBE Information
**----------------------------------------------------------------------
**
*form get_the_cube_info .
* call function 'RSD_CUBE_GET'
* exporting
* i_infocube = c_cube
* i_objvers = 'A'
* i_bypass_buffer = 'X'
** I_WITH_ATR_NAV = RS_C_FALSE
* importing
* e_s_cube = l_escube
** E_S_TBHD =
** E_TBHD_NOT_FOUND =
** E_T_CUBET =
** E_T_CUBE_IOBJ =
** E_T_CUBE_DIME =
* e_t_dime = l_etdime
** E_T_DIMET =
** E_T_DIME_IOBJ =
** E_T_ICHA_PRO =
** E_T_IKYF_PRO =
** E_T_IC_VAL_IOBJ =
** E_T_CUBE_PART =
** E_T_CUBE_PART_IOBJ =
** E_T_MULTI_IOBJ =
* exceptions
* infocube_not_found = 1
* illegal_input = 2
* others = 3.
* if sy-subrc <> 0.
* case sy-subrc.
* when '1'.
* write: 'Info cube :', c_cube, 'not found.'.
* endcase.
* endif.
*endform. " get_the_cube_info
*&---------------------------------------------------------------------*
*& Form write_info
*&---------------------------------------------------------------------*
* Writes the Cube Information, also has HotSpot defined on the Number
* Range #.
*----------------------------------------------------------------------*
*form write_info .
* data: begin of i_time occurs 0.
* include structure rsd_s_dime.
* data: end of i_time.
* data: value type i,
* value1 type i.
* if p_add = 'X'.
* format color 5.
* write:/, 'ADD MAIN MEMORY MODE'.
* format color off.
* else.
* format color 6.
* write:/, 'DELETE MAIN MEMORY MODE'.
* format color off.
* endif.
* write:/,'Cube Name:', c_cube.
* write:/, 00 'DIM',
* 12 'DIM TEXT',
* 38 '#',
* 43 'TYPE',
* 52 'DIM TABLE NAME',
* 82 'Number Range #',
* 100 'Current Status',
* 115 'Buffer(Y/N)',
* 130 '# in Memory'.
* uline.
* loop at l_etdime into i_time.
* case i_time-iobjtp.
* when 'DPA' or 'TIM' or 'UNI'.
* continue.
* endcase.
* select single * from nriv client specified
* where client = sy-mandt
* and object = i_time-nobject.
* if sy-subrc = 0.
* select single * from tnro where object = i_time-nobject.
* endif.
* value = nriv-nrlevel.
* value1 = tnro-noivbuffer.
* write: /
** i_time-infocube,r
** i_time-objvers,
* i_time-dimension(10) under 'DIM',
** i_time-langu,
** i_time-txtsh,
* i_time-txtlg(25) under 'DIM TEXT',
* i_time-posit under '#',
* i_time-iobjtp under 'TYPE',
** i_time-linitfl,
** i_time-highcard,
* i_time-tablnm under 'DIM TABLE NAME',
** i_time-tstpnm,
** i_time-timestmp,
** i_time-numbranr,
* i_time-nobject under 'Number Range #' hotspot on
* quickinfo 'Change' color 3,
* value under 'Current Status' decimals 0,
* tnro-buffer under 'Buffer(Y/N)',
* value1 under '# in Memory'.
** i_time-ddstate.
* endloop.
* uline.
*endform. " write_info
*&---------------------------------------------------------------------*
*& Form fill_bdc
*&---------------------------------------------------------------------*
* Fills the BDC, depending on the flag (Add/Delete)
*----------------------------------------------------------------------*
* --> Object #, Number, Add Flag, Delete Flag
*----------------------------------------------------------------------*
form fill_bdc using object number add del.
perform bdc_dynpro using 'SAPMSNRO' '0150'.
perform bdc_field using 'BDC_CURSOR' 'NRIV-OBJECT'.
perform bdc_field using 'BDC_OKCODE' '=UPD'.
perform bdc_field using 'NRIV-OBJECT' object.
if add = 'X'.
perform bdc_dynpro using 'SAPLSNR2' '0100'.
perform bdc_field using 'BDC_OKCODE' '=PUF1'.
perform bdc_dynpro using 'SAPLSNR2' '0100'.
perform bdc_field using 'BDC_CURSOR' 'TNRO-NOIVBUFFER'.
perform bdc_field using 'BDC_OKCODE' '=SAVE'.
perform bdc_field using 'TNRO-NOIVBUFFER' number.
else.
perform bdc_dynpro using 'SAPLSNR2' '0100'.
perform bdc_field using 'BDC_OKCODE' '=NONE'.
perform bdc_dynpro using 'SAPLSNR2' '0100'.
perform bdc_field using 'BDC_OKCODE' '=SAVE'.
endif.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE' '=YES'.
endform. " fill_bdc
*&---------------------------------------------------------------------*
*& Form call_tcode
*&---------------------------------------------------------------------*
* Call the TCODE SNRO with Display Mode as N (No Display) &
* Default Size.
*----------------------------------------------------------------------*
.
*&---------------------------------------------------------------------*
*& Form call_tcode
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form call_tcode .
data: l_msg(25).
concatenate 'Changing ' bdc_obj into l_msg separated by space.
opt-dismode = 'N'.
opt-defsize = 'X'.
call function 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 75
text = l_msg.
call transaction 'SNRO' using bdcdata options from opt.
if sy-subrc <> 0.
write:/ 'System is Bloced to make any changes'.
exit.
endif.
refresh bdcdata.
clear bdcdata.
endform. " call_tcode
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
form bdc_dynpro using program dynpro.
clear bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
append bdcdata.
endform. "bdc_dynpro
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
form bdc_field using fnam fval.
if fval <> nodata.
clear bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
append bdcdata.
endif.
endform. "bdc_field
Diogo.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
86 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.