Database seletion
HI all,
I had written a select querry in which i had mentioned package size and i kept that query in while loop,my question is i want to select a new record other than the internal table has for every time the select query runs,can that possible,p[lz help.
Hi,
Small Modification.
Re: database seletion
Posted: Sep 14, 2006 3:43 AM Reply E-mail this post
Hi,
Ex:
USe ranges.
RANGES: R_Range1 for matnr.
do
Select * from mara appending table t_itab upto 20 rows
where matnr in r_ranges.
loop at t_itab.
r_range-option = EQ.
r_range-sign = E "Exclude
r_range-low = t_itab-matnr.
Append r_range.
endloop.
enddo.
Regards
Divakar
Similar Messages
-
Dynamic Selection Screen based on database seletion
Hi, Gurus:
I just have simple selection screen with a few radio buttons
However, I would like the radio button show up based on database table criterias:
e.g. if there is no data in table1, the radio button 1 will not showing up.
I have used "SELECT * from table..." and check the return value sy-subrc, if it is not equals 4 (4 means no data in the table), then I put the radio button clause there.
however, it does not work this way.
Thanks in advance
LiangHi,
This is a duplicate thread, similar kind of thread is already available .....
with the subject : Dynamic calling of radiobuttons
anyways,
possibly you can think of two ways,
say at the maximum the entry in the database table goes to 20 records and you know that it will not go more than that,
then you can create 20 radiobuttons and using at selection-screen output events hide radiobuttons based on the records present.
say only 4 records are present.
so hide 16 radiobuttons and display only 4 of them.
the other way.
say if there can be n number of records and you dont know the maximum number it can reach then
in the initialization event.
create a report at runtime with the parameter statement as radiobutton .
and then call that report in initialization event itself. this will display the dynamically created radiobutton.
Regards,
Siddarth -
How to improve the performance of this code
Hi gurus
code is given below with LDB
this code look big but most of lines are commented
plz help its urgent
thanks in advance
*& Report ZSALES_RECON
REPORT ZSALES_RECON.
TYPE-POOLS : SLIS.
nodes: bseg , bkpf.
data : begin of zbseg occurs 0,
kunnr like bseg-kunnr,
*lifnr like bseg-lifnr,
dmbtr like bseg-dmbtr,
*shkzg like bseg-shkzg,
*gsber like bseg-gsber,
bschl like bseg-bschl,
*sgtxt like bseg-sgtxt,
total like bseg-dmbtr,
hkont like bseg-hkont,
BUDAT LIKE Bkpf-BUDAT,
belnr LIKE BSEG-belnr,
cash like bseg-dmbtr,
credit like bseg-dmbtr,
abn_voucher like bseg-dmbtr,
barista_voucher like bseg-dmbtr,
accor like bseg-dmbtr,
sodexho like bseg-dmbtr,
gift like bseg-dmbtr,
corp like bseg-dmbtr,
card like bseg-dmbtr,
miscellaneous like bseg-dmbtr,
werks like bseg-werks,
gjahr like bseg-gjahr,
SR_NO TYPE I,
shkzg like bseg-shkzg,
end of zbseg,
TP_TBL_DATA like ZBSEG.
DATA : idx TYPE sy-tabix.
Report data to be shown.
data: it_data like ZBSEG.
Heading of the report.
data: t_heading type slis_t_listheader.
AT SELECTION-SCREEN.
get bkpf.
START-OF-SELECTION.
data : sum_mis like bseg-dmbtr,
sum_abn like bseg-dmbtr,
sum_cash like bseg-dmbtr,
sum_credit like bseg-dmbtr,
sum_card like bseg-dmbtr,
sum_barista_voucher like bseg-dmbtr,
sum_accor like bseg-dmbtr,
sum_sodexho like bseg-dmbtr,
sum_gift like bseg-dmbtr,
sum_corp like bseg-dmbtr.
data : wa1_total like bseg-dmbtr.
data : wa_belnr like bseg-belnr,
wa_kunnr like bseg-kunnr,
wa_werks like bseg-werks,
belnr1 like bseg-belnr,
wa_sr_no type i.
GET BSEG.
data : wa like line of zbseg.
data : count type i,
count1 type i.
move-corresponding bseg to zbseg.
*idx = sy-tabix.
on change of zbseg-belnr.
wa_kunnr = zbseg-kunnr.
wa_kunnr = wa_kunnr+6(4).
select single werks into wa_werks from bseg where belnr = zbseg-belnr
and kunnr = '' and gjahr = zbseg-gjahr.
if wa_kunnr = wa_werks.
if zbseg-bschl <> '01'.
clear: sum_mis,wa1_total,sum_abn,sum_cash,sum_credit,sum_card,
sum_barista_voucher,sum_accor,sum_sodexho,sum_gift,sum_corp.
wa-BUDAT = BKPF-BUDAT.
wa-bschl = zbseg-bschl.
wa-hkont = zbseg-hkont.
wa-belnr = zbseg-belnr.
wa_belnr = wa-belnr.
wa-shkzg = zbseg-shkzg.
wa-kunnr = zbseg-kunnr.
count = wa-sr_no.
*wa-sr_no = count + 1.
idx = idx + 1.
append wa to zbseg.
**count = wa-sr_no.
*wa-sr_no = wa-sr_no + 1.
clear wa-total.
endif.
endif.
endon.
*clear : wa1_total.
if wa_belnr = zbseg-belnr.
loop at zbseg into wa.
wa-total = wa1_total.
wa-bschl = zbseg-bschl.
wa-hkont = zbseg-hkont.
count = sy-tabix.
wa-sr_no = count.
count1 = count.
*wa_sr_no = count.
modify zbseg from wa transporting sr_no.
IF wa-bschl eq '40' and wa-hkont eq '0024013020'.
if sy-tabix = 1.
wa-cash = zbseg-dmbtr.
sum_cash = sum_cash + wa-cash.
wa-cash = sum_cash.
modify zbseg index idx from wa transporting cash.
endif.
endif.
IF wa-bschl eq '40' and wa-hkont eq '0026060010'.
if sy-tabix = 1.
wa-credit = zbseg-dmbtr.
sum_credit = sum_credit + wa-credit.
wa-credit = sum_credit.
modify zbseg index idx from wa transporting credit.
endif.
endif.
IF wa-bschl eq '40' and wa-hkont eq '0026060015'.
if sy-tabix = 1.
wa-abn_voucher = zbseg-dmbtr.
sum_abn = sum_abn + wa-abn_voucher.
wa-abn_voucher = sum_abn.
modify zbseg index idx from wa transporting abn_voucher.
endif.
endif.
IF wa-bschl eq '40' and wa-hkont eq '0026060017'.
if sy-tabix = 1.
wa-barista_voucher = zbseg-dmbtr.
sum_barista_voucher = sum_barista_voucher + wa-barista_voucher.
wa-barista_voucher = sum_barista_voucher.
modify zbseg index idx from wa transporting barista_voucher.
endif.
endif.
IF wa-bschl eq '40' and wa-hkont eq '0026060020'.
if sy-tabix = 1.
wa-sodexho = zbseg-dmbtr.
sum_sodexho = sum_sodexho + wa-sodexho.
wa-sodexho = sum_sodexho.
modify zbseg index idx from wa transporting sodexho.
endif.
endif.
IF wa-bschl eq '40' AND wa-hkont eq '0026060030'.
if sy-tabix = 1.
wa-accor = zbseg-dmbtr.
sum_accor = sum_accor + wa-accor.
wa-accor = sum_accor.
modify zbseg index idx from wa transporting accor.
endif.
endif.
IF wa-bschl eq '40' AND wa-hkont eq '0026070040'.
if sy-tabix = 1.
wa-gift = zbseg-dmbtr.
sum_gift = sum_gift + wa-gift.
wa-gift = sum_gift.
modify zbseg index idx from wa transporting gift.
endif.
endif.
IF wa-bschl eq '40' AND wa-hkont eq '0026060070'.
if sy-tabix = 1.
wa-card = zbseg-dmbtr.
sum_card = sum_card + wa-card.
wa-card = sum_card.
modify zbseg index idx from wa transporting card.
endif.
endif.
IF wa-bschl eq '40' AND wa-hkont eq '0026060018'.
if sy-tabix = 1.
wa-corp = zbseg-dmbtr.
sum_corp = sum_corp + wa-corp.
wa-corp = sum_corp.
modify zbseg index idx from wa transporting corp.
endif.
endif.
*IF wa-bschl eq '11' .
*wa-total = zbseg-dmbtr.
*modify zbseg index idx from wa transporting total.
*endif.
IF wa-bschl EQ '40' or wa-bschl = '01' .
if sy-tabix = 1.
wa-total = zbseg-dmbtr.
wa1_total = wa1_total + wa-total.
wa-total = wa1_total.
*if idx = 2.
*modify zbseg index 1 from wa transporting total.
*else.
modify zbseg index idx from wa transporting total.
*endif.
endif.
endif.
*IF zbseg-TOTAL NE zbseg-DMBTR.
IF wa-BSCHL NE '11' AND wa-BSCHL NE '40'. "AND wa-BSCHL NE '01'.
if sy-tabix = 1.
if wa-shkzg = 'S'.
wa-miscellaneous = - wa-miscellaneous.
endif.
wa-miscellaneous = ZBSEG-DMBTR.
sum_mis = sum_mis + wa-miscellaneous.
wa-miscellaneous = sum_mis.
modify zbseg index idx from wa transporting miscellaneous.
endif.
ENDIF.
*wa1-miscellaneous = wa-miscellaneous.
*modify zbseg index idx from wa.
*ENDIF.
*append wa to zbseg.
*clear:zbseg-dmbtr.
endloop.
endif.
*****endif.
*****endon.
*ENDFORM.
*append zbseg.
*endloop.
End-of-selection.
perform build_alv using zbseg t_heading.
*& Form build_alv
Builds and display the ALV Grid.
form build_alv using t_data
*tp_tbl_data
t_heading type slis_t_listheader.
ALV required data objects.
data: w_title type lvc_title,
w_repid type syrepid,
w_comm type slis_formname,
w_status type slis_formname,
x_layout type slis_layout_alv,
t_event type slis_t_event,
t_fieldcat type slis_t_fieldcat_alv,
t_sort type slis_t_sortinfo_alv.
refresh t_fieldcat.
refresh t_event.
refresh t_sort.
clear x_layout.
clear w_title.
Field Catalog
perform set_fieldcat2 using:
1 'SR_NO' 'SR_NO' 'BKPF' '5' space space 'SR NO' space space space
space space space space space t_fieldcat ,
2 'BELNR' 'BELNR' 'BKPF' '10' space space 'Document No' space space
space space space space space space t_fieldcat ,
3 'BUDAT' 'BUDAT' 'BKPF' '10' space space 'Document Date' space
space space space space space space space t_fieldcat ,
4 'KUNNR' space space space space space 'Site' space space
space space space space space space t_fieldcat ,
5 'TOTAL' space 'BSEG' space space space 'Total' space space space
space space space space 'X' t_fieldcat ,
6 'CASH' 'CASH' 'BSEG' space space space 'Cash Sales'
space space space space space space space 'X' t_fieldcat ,
7 'CREDIT' 'CREDIT' 'BSEG' space space space 'Credit Card'
space space space space space space space 'X' t_fieldcat ,
8 'ABN_VOUCHER' space 'BSEG' space space space 'ABN Voucher' space
space
space space space space space 'X' t_fieldcat ,
9 'BARISTA_VOUCHER' space 'BSEG' '15' space space 'BARISTA Voucher'
space space
space space space space space 'X' t_fieldcat ,
10 'CORP' 'CORP' 'BSEG' space space space 'ABN Corp' space space
space space space space space 'X' t_fieldcat ,
11 'SODEXHO' 'SODEXHO' 'BSEG' space space space 'Sodexho' space
space space space space space space 'X' t_fieldcat ,
12 'ACCOR' 'ACCOR' 'BSEG' space space space 'Accor'
space space space space space space space 'X' t_fieldcat ,
13 'GIFT' 'GIFT' 'BSEG' space space space 'Gift Coupon'
space space space space space space space 'X' t_fieldcat ,
14 'CARD' 'CARD' 'BSEG' space space space 'Diners Card' space
space space space space space space 'X' t_fieldcat ,
15 'MISCELLANEOUS' space 'BKPF' '18' space space
'Miscellaneous Income' space space space space space space space 'X'
t_fieldcat .
*14 'KBETR' 'KBETR' 'KONP' '10' space space 'Tax %age' space space
*space space space space space space t_fieldcat ,
*15 'MWSKZ1' 'MWSKZ1' 'RBKP' space space space 'Tax Type' space
*space
space space space space space space t_fieldcat ,
*16 'AMT' 'AMT' 'RBKP' space space space 'Amount Payable' space
*space
space space space space space 'X' t_fieldcat ,
*17 'WERKS' 'SITE' 'RSEG' space space space 'State' space space
*space space space space space space t_fieldcat .
*18 'GSBER' 'GSBER' 'RBKP' space space space 'Business Area' space
*space space space space space space space t_fieldcat .
Layout
x_layout-zebra = 'X'.
Top of page heading
perform set_top_page_heading using t_heading t_event.
Events
perform set_events using t_event.
GUI Status
w_status = ''.
w_repid = sy-repid.
Title
w_title = <<If you want to set a title for
the ALV, please, uncomment and edit this line>>.
User commands
w_comm = 'USER_COMMAND'.
Order
Example
PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.
Displays the ALV grid
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = w_repid
it_fieldcat = t_fieldcat
is_layout = x_layout
it_sort = t_sort
i_callback_pf_status_set = w_status
i_callback_user_command = w_comm
i_save = 'X'
it_events = t_event
i_grid_title = w_title
tables
t_outtab = zbseg
t_data
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.
endform. " build_alv.
*& Form set_top_page_heading
Creates the report headings.
form set_top_page_heading using t_heading type slis_t_listheader
t_events type slis_t_event.
data: x_heading type slis_listheader,
x_event type line of slis_t_event.
Report title
clear t_heading[].
clear x_heading.
x_heading-typ = 'H'.
x_heading-info = 'SALES RECONCILIATION REPORT'(001).
append x_heading to t_heading.
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-form = 'TOP_OF_PAGE'.
append x_event to t_events.
endform.
*& Form set_events
Sets the events for ALV.
The TOP_OF_PAGE event is alredy being registered in
the set_top_page_heading subroutine.
form set_events using t_events type slis_t_event.
data: x_event type line of slis_t_event.
Example
clear x_event.
x_event-name = .
x_event-form = .
append x_event to t_event.
endform.
*& Form set_order
Adds an entry to the order table.
FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot
t_sort TYPE slis_t_sortinfo_alv.
DATA: x_sort TYPE slis_sortinfo_alv.
CLEAR x_sort.
x_sort-fieldname = p_fieldname.
x_sort-tabname = p_tabname.
x_sort-up = p_up.
x_sort-down = p_down.
x_sort-subtot = p_subtot.
APPEND x_sort TO t_sort.
ENDFORM. "set_order
*& Form set_fieldcat2
Adds an entry to the field catalog.
p_colpos: Column position.
p_fieldname: Field of internal table which is being described by
* this record of the field catalog.
p_ref_fieldname: (Optional) Table field / data element which
* describes the properties of the field.
* If this field is not given, it is copied from
* the fieldname.
p_ref_tabname: (Optional) Table which holds the field referenced
* by <<p_ref_fieldname>>.
If this is not given, the parameter
<<p_ref_fieldname>> references a data element.
p_outputlen: (Optional) Column width.
p_noout: (Optional) If set to 'X', states that the field is not
* showed initially. If so, the field has to be
included in the report at runtime using the display
options.
p_seltext_m: (Optional) Medium label to be used as column header.
p_seltext_l: (Optional) Long label to be used as column header.
p_seltext_s: (Optional) Small label to be used as column header.
p_reptext_ddic: (Optional) Extra small (heading) label to be
* used as column header.
p_ddictxt: (Optional) Set to 'L', 'M', 'S' or 'R' to select
whether to use SELTEXT_L, SELTEXT_M, SELTEXT_S,
or REPTEXT_DDIC as text for column header.
p_hotspot: (Optional) If set to 'X', this field will be used
* as a hotspot area for cursor, alolowing the user
* to click on the field.
p_showasicon: (Optional) If set to 'X', this field will be shown
as an icon and the contents of the field will set
* which icon to show.
p_checkbox: (Optional) If set to 'X', this field will be shown
as a checkbox.
p_edit: (Optional) If set to 'X', this field will be editable.
p_dosum: (Optional) If set to 'X', this field will be summed
(aggregation function) according to the grouping set
by the order functions.
t_fieldcat: Table which contains the whole fieldcat.
FORM set_fieldcat2 USING
p_colpos p_fieldname p_ref_fieldname p_ref_tabname
p_outputlen p_noout
p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
p_hotspot p_showasicon p_checkbox p_edit
p_dosum
t_fieldcat TYPE slis_t_fieldcat_alv.
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
CLEAR wa_fieldcat.
General settings
wa_fieldcat-fieldname = p_fieldname.
wa_fieldcat-col_pos = p_colpos.
wa_fieldcat-no_out = p_noout.
wa_fieldcat-hotspot = p_hotspot.
wa_fieldcat-checkbox = p_checkbox.
wa_fieldcat-icon = p_showasicon.
wa_fieldcat-do_sum = p_dosum.
Set reference fieldname, tablenam and rollname.
If p_ref_tabname is not given, the ref_fieldname given
is a data element.
If p_ref_tabname is given, the ref_fieldname given is a
field of a table.
In case ref_fieldname is not given,
it is copied from the fieldname.
IF p_ref_tabname IS INITIAL.
wa_fieldcat-rollname = p_ref_fieldname.
ELSE.
wa_fieldcat-ref_tabname = p_ref_tabname.
IF p_ref_fieldname EQ space.
wa_fieldcat-ref_fieldname = wa_fieldcat-fieldname.
ELSE.
wa_fieldcat-ref_fieldname = p_ref_fieldname.
ENDIF.
ENDIF.
Set output length.
IF NOT p_outputlen IS INITIAL.
wa_fieldcat-outputlen = p_outputlen.
ENDIF.
Set text headers.
IF NOT p_seltext_m IS INITIAL.
wa_fieldcat-seltext_m = p_seltext_m.
ENDIF.
IF NOT p_seltext_l IS INITIAL.
wa_fieldcat-seltext_l = p_seltext_l.
ENDIF.
IF NOT p_seltext_s IS INITIAL.
wa_fieldcat-seltext_s = p_seltext_s.
ENDIF.
IF NOT p_reptext_ddic IS INITIAL.
wa_fieldcat-reptext_ddic = p_reptext_ddic.
ENDIF.
IF NOT p_ddictxt IS INITIAL.
wa_fieldcat-ddictxt = p_ddictxt.
ENDIF.
Set as editable or not.
IF NOT p_edit IS INITIAL.
wa_fieldcat-input = 'X'.
wa_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat TO t_fieldcat.
ENDFORM. "set_fieldcat2
======================== Subroutines called by ALV ================
*& Form top_of_page
Called on top_of_page ALV event.
Prints the heading.
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
i_logo = <<If you want to set a logo, please,
uncomment and edit this line>>
it_list_commentary = t_heading.
endform. " alv_top_of_page
*& Form user_command
Called on user_command ALV event.
Executes custom commands.
form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
Example Code
Executes a command considering the sy-ucomm.
CASE r_ucomm.
WHEN '&IC1'.
Set your "double click action" response here.
Example code: Create and display a status message.
DATA: w_msg TYPE string,
w_row(4) TYPE n.
w_row = rs_selfield-tabindex.
CONCATENATE 'You have clicked row' w_row
'field' rs_selfield-fieldname
'with value' rs_selfield-value
INTO w_msg SEPARATED BY space.
MESSAGE w_msg TYPE 'S'.
ENDCASE.
End of example code.
endform. "user_command
*********************************ldb code start from here *************************************************************
DATABASE PROGRAM OF LOGICAL DATABASE ZBRM_3
top-include and nxxx-include are generated automatically
Do NOT change their names manually!!!
*include DBZBRM_3TOP . " header
*include DBZBRM_3NXXX . " all system routines
include DBZBRM_3F001 . " user defined include
PROGRAM SAPDBZBRM_3 DEFINING DATABASE ZBRM_3.
TABLES:
BKPF,
BSEG.
Hilfsfelder
DATA:
BR_SBUKRS LIKE BKPF-BUKRS,
BR_SBELNR LIKE BKPF-BELNR,
BR_SGJAHR LIKE BKPF-GJAHR,
BR_SBUDAT LIKE BKPF-BUDAT,
BR_SGSBER LIKE BSEG-GSBER.
BR_SBUZEI LIKE BSEG-BUZEI,
BR_SEBELN LIKE BSEG-EBELN,
BR_SEBELP LIKE BSEG-EBELP,
BR_SZEKKN LIKE BSEG-ZEKKN.
working areas for the authority check "n435991
for the company code "n435991
*TYPES : BEGIN OF STYPE_BUKRS, "n435991
BUKRS LIKE T001-BUKRS, "n435991
WAERS LIKE T001-WAERS, "n435991
RETCODE TYPE N, "n435991
END OF STYPE_BUKRS. "n435991
"n435991
*DATA : G_S_BUKRS TYPE STYPE_BUKRS, "n435991
G_T_BUKRS TYPE STYPE_BUKRS OCCURS 0. "n435991
"n435991
for the document type "n435991
*TYPES : BEGIN OF STYPE_BLART, "n435991
BLART LIKE BKPF-BLART, "n435991
RETCODE TYPE N, "n435991
END OF STYPE_BLART. "n435991
"n435991
*DATA : G_S_BLART TYPE STYPE_BLART, "n435991
G_T_BLART TYPE STYPE_BLART OCCURS 0. "n435991
"n435991
for the business area "n435991
*TYPES : BEGIN OF STYPE_GSBER, "n435991
GSBER LIKE BSEG-GSBER, "n435991
RETCODE TYPE N, "n435991
END OF STYPE_GSBER. "n435991
"n435991
*DATA : G_S_GSBER TYPE STYPE_GSBER, "n435991
G_T_GSBER TYPE STYPE_GSBER OCCURS 0. "n435991
"n435991
for the purchasing organization "n435991
*TYPES : BEGIN OF STYPE_EKORG, "n435991
EKORG LIKE EKKO-EKORG, "n435991
RETCODE TYPE N, "n435991
END OF STYPE_EKORG. "n435991
"n435991
*DATA : G_S_EKORG TYPE STYPE_EKORG, "n435991
G_T_EKORG TYPE STYPE_EKORG OCCURS 0. "n435991
"n435991
for the plant "n435991
*TYPES : BEGIN OF STYPE_WERKS, "n435991
WERKS LIKE EKPO-WERKS, "n435991
RETCODE TYPE N, "n435991
END OF STYPE_WERKS. "n435991
"n435991
*DATA : G_S_WERKS TYPE STYPE_WERKS, "n435991
G_T_WERKS TYPE STYPE_WERKS OCCURS 0. "n435991
"n435991
*DATA : G_F_TABIX LIKE SY-TABIX. "n435991
"n435991
working tables for array database access "n934526
*types : begin of stype_key, "n934526
bukrs type bkpf-bukrs, "n934526
belnr type bkpf-belnr, "n934526
gjahr type bkpf-gjahr, "n934526
end of stype_key, "n934526
"n934526
stab_key type standard table of "n934526
stype_key "n934526
with default key. "n934526
Initialwerte setzen
FORM INIT.
ENDFORM.
Selection Screen: Process before output
FORM PBO.
ENDFORM.
Selection Screen: Process after input
FORM PAI USING FNAME MARK.
CHECK MARK = SPACE.
ENDFORM.
Lesen BKPF und Uebergabe an den Selektionsreport
FORM PUT_BKPF.
define locla working areas "n934526
data : l_t_key type stab_key, "n934526
l_t_key_block type stab_key, "n934526
l_t_bkpf type standard table of bkpf. "n934526
"n934526
----------------------------------------------------------"n934526
"n934526
database seletion improved "n934526
at first read all FI doc keys into a lean table "n934526
data: wa like bkpf-belnr.
SELECT * FROM BKPF
where budat in br_budat
AND GJAHR EQ BR_GJAHR-LOW
AND BLART = 'RV'.
AND BLART IN BR_BLAR "n934526
"n934526
check sy-subrc is initial. "n934526
"n934526
then process the found FI doc keys in small blocks "n934526
do. "n934526
if l_t_key[] is initial. "n934526
exit. " no more keys -> leave this DO loop "n934526
endif. "n934526
"n934526
form small blocks with 100 FI docs each "n934526
refresh l_t_key_block. "n934526
append lines of l_t_key from 1 to 100 "n934526
to l_t_key_block. "n934526
delete l_t_key from 1 to 100. "n934526
"n934526
read the complete FI doc headers for the block "n934526
SELECT * FROM BKPF "n934526
into corresponding fields of table l_t_bkpf "n934526
for all entries in l_t_key_block "n934526
WHERE BUKRS = l_t_key_block-BUKRS "n934526
AND BELNR = l_t_key_block-BELNR "n934526
AND GJAHR = l_t_key_block-GJAHR. "n934526
"n934526
provide the complete structure for the PUT "n934526
loop at l_t_bkpf into bkpf. "n934526
process this company code : authority and read T001 "n934526
PERFORM F1000_COMPANY_CODE. "n934526
"n934526
go on if the first authority check was successful "n934526
CHECK : G_S_BUKRS-RETCODE IS INITIAL. "n934526
"n934526
set the currency key and save the keys "n934526
MOVE : G_S_BUKRS-WAERS TO T001-WAERS, "n934526
BKPF-BUKRS TO BR_SBUKRS, "n934526
MOVE BKPF-BELNR TO BR_SBELNR.
MOVE BKPF-GJAHR TO BR_SGJAHR . "n934526
BKPF-GJAHR TO BR_SGJAHR. "n934526
PUT BKPF. "n934526
endloop. "n934526
enddo. "n934526
ENDSELECT.
ENDFORM.
Lesen BSEG und Uebergabe an den Selektionsreport
FORM PUT_BSEG.
define local working areas "n934526
data : l_t_bseg type standard table of bseg. "n934526
"n934526
----------------------------------------------------------"n934526
BR_SGSBER = BR_GSBER-LOW.
"n934526
SELECT * FROM BSEG "n934526
WHERE BELNR EQ BR_SBELNR
AND GJAHR EQ BR_SGJAHR
AND GSBER EQ BR_SGSBER.
check sy-subrc is initial. "n934526
"n934526
loop at l_t_bseg into bseg. "n934526
MOVE BSEG-BUZEI TO BR_SBUZEI.
MOVE BSEG-EBELN TO BR_SEBELN.
MOVE BSEG-EBELP TO BR_SEBELP.
MOVE BSEG-ZEKKN TO BR_SZEKKN.
PUT BSEG.
endSELECT. "n934526
ENDFORM.
"n435991
FORM AUTHORITYCHECK_BKPF "n435991
"n435991
"n435991
*FORM AUTHORITYCHECK_BKPF. "n435991
"n435991
the authority-check for the company code was successful; "n435991
check authority for the document type here "n435991
"n435991
does the buffer contain this document type ? "n435991
READ TABLE G_T_BLART INTO G_S_BLART "n435991
WITH KEY BLART = BKPF-BLART BINARY SEARCH. "n435991
"n435991
CASE SY-SUBRC. "n435991
WHEN 0. "document type is known "n435991
"n435991
WHEN 4. "docment type is new --> insert "n435991
MOVE SY-TABIX TO G_F_TABIX. "n435991
PERFORM F1200_CREATE_BLART_ENTRY. "n435991
INSERT G_S_BLART INTO G_T_BLART "n435991
INDEX G_F_TABIX. "n435991
"n435991
WHEN 8. "document type is new --> append "n435991
PERFORM F1200_CREATE_BLART_ENTRY. "n435991
APPEND G_S_BLART TO G_T_BLART. "n435991
ENDCASE. "n435991
"n435991
set the return code "n435991
MOVE G_S_BLART-RETCODE TO SY-SUBRC. "n435991
"n435991
*ENDFORM. "authoritycheck_bkpf "n435991
"n435991
"n435991
FORM AUTHORITYCHECK_BSEG "n435991
"n435991
"n435991
*FORM AUTHORITYCHECK_BSEG. "n435991
"n435991
does the buffer contain this document type ? "n435991
READ TABLE G_T_GSBER INTO G_S_GSBER "n435991
WITH KEY GSBER = BSEG-GSBER BINARY SEARCH. "n435991
"n435991
CASE SY-SUBRC. "n435991
WHEN 0. "business area is known "n435991
"n435991
WHEN 4. "business area is new --> insert "n435991
MOVE SY-TABIX TO G_F_TABIX. "n435991
PERFORM F1300_CREATE_GSBER_ENTRY. "n435991
INSERT G_S_GSBER INTO G_T_GSBER "n435991
INDEX G_F_TABIX. "n435991
"n435991
WHEN 8. "business area is new --> append "n435991
PERFORM F1300_CREATE_GSBER_ENTRY. "n435991
APPEND G_S_GSBER TO G_T_GSBER. "n435991
ENDCASE. "n435991
"n435991
set the return code "n435991
MOVE G_S_GSBER-RETCODE TO SY-SUBRC. "n435991
"n435991
*ENDFORM. "authoritycheck_bseg "n435991
"n435991ABAP provides few tools to analyse the perfomance of the objects, which was developed by us.
Run time analysis transaction SE30
This transaction gives all the analysis of an ABAP program with respect to the database and the non-database processing.
SQL Trace transaction ST05
by using this tool we can analyse the perfomance issues related to DATABASE calls.
Perfomance Techniques for improve the perfomance of the object.
1) ABAP/4 programs can take a very long time to execute, and can make other processes have to wait before executing. Here are some tips to speed up your programs and reduce the load your programs put on the system:
2) Use the GET RUN TIME command to help evaluate performance. It's hard to know whether that optimization technique REALLY helps unless you test it out.
3) Using this tool can help you know what is effective, under what kinds of conditions. The GET RUN TIME has problems under multiple CPUs, so you should use it to test small pieces of your program, rather than the whole program.
4) Generally, try to reduce I/O first, then memory, then CPU activity. I/O operations that read/write to hard disk are always the most expensive operations. Memory, if not controlled, may have to be written to swap space on the hard disk, which therefore increases your I/O read/writes to disk. CPU activity can be reduced by careful program design, and by using commands such as SUM (SQL) and COLLECT (ABAP/4).
5) Avoid 'SELECT *', especially in tables that have a lot of fields. Use SELECT A B C INTO instead, so that fields are only read if they are used. This can make a very big difference.
6) Field-groups can be useful for multi-level sorting and displaying. However, they write their data to the system's paging space, rather than to memory (internal tables use memory). For this reason, field-groups are only appropriate for processing large lists (e.g. over 50,000 records). If you have large lists, you should work with the systems administrator to decide the maximum amount of RAM your program should use, and from that, calculate how much space your lists will use. Then you can decide whether to write the data to memory or swap space.
Use as many table keys as possible in the WHERE part of your select statements.
7)Whenever possible, design the program to access a relatively constant number of records (for instance, if you only access the transactions for one month, then there probably will be a reasonable range, like 1200-1800, for the number of transactions inputted within that month). Then use a SELECT A B C INTO TABLE ITAB statement.
8) Get a good idea of how many records you will be accessing. Log into your productive system, and use SE80 -> Dictionary Objects (press Edit), enter the table name you want to see, and press Display. Go To Utilities -> Table Contents to query the table contents and see the number of records. This is extremely useful in optimizing a program's memory allocation.
9) Try to make the user interface such that the program gradually unfolds more information to the user, rather than giving a huge list of information all at once to the user.
10) Declare your internal tables using OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to be accessing. If the number of records exceeds NUM_RECS, the data will be kept in swap space (not memory).
11) Use SELECT A B C INTO TABLE ITAB whenever possible. This will read all of the records into the itab in one operation, rather than repeated operations that result from a SELECT A B C INTO ITAB... ENDSELECT statement. Make sure that ITAB is declared with OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to access.
12) If the number of records you are reading is constantly growing, you may be able to break it into chunks of relatively constant size. For instance, if you have to read all records from 1991 to present, you can break it into quarters, and read all records one quarter at a time. This will reduce I/O operations. Test extensively with GET RUN TIME when using this method.
13) Know how to use the 'collect' command. It can be very efficient.
14) Use the SELECT SINGLE command whenever possible.
15) Many tables contain totals fields (such as monthly expense totals). Use these avoid wasting resources by calculating a total that has already been calculated and stored.
Some tips:
1) Use joins where possible as redundant data is not fetched.
2) Use select single where ever possible.
3) Calling methods of a global class is faster than calling function modules.
4) Use constants instead of literals
5) Use WHILE instead of a DO-EXIT-ENDDO.
6) Unnecessary MOVEs should be avoided by using the explicit work area operations
see the follwing links for a brief insifght into performance tuning,
http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_Introduction.asp
1. Debuggerhttp://help.sap.com/saphelp_47x200/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
2. Run Time Analyser
http://help.sap.com/saphelp_47x200/helpdata/en/c6/617cafe68c11d2b2ab080009b43351/content.htm
3. SQL trace
http://help.sap.com/saphelp_47x200/helpdata/en/d1/801f7c454211d189710000e8322d00/content.htm
4. CATT - Computer Aided Testing Too
http://help.sap.com/saphelp_47x200/helpdata/en/b3/410b37233f7c6fe10000009b38f936/frameset.htm
5. Test Workbench
http://help.sap.com/saphelp_47x200/helpdata/en/a8/157235d0fa8742e10000009b38f889/frameset.htm
6. Coverage Analyser
http://help.sap.com/saphelp_47x200/helpdata/en/c7/af9a79061a11d4b3d4080009b43351/content.htm
7. Runtime Monitor
http://help.sap.com/saphelp_47x200/helpdata/en/b5/fa121cc15911d5993d00508b6b8b11/content.htm
8. Memory Inspector
http://help.sap.com/saphelp_47x200/helpdata/en/a2/e5fc84cc87964cb2c29f584152d74e/content.htm
9. ECATT - Extended Computer Aided testing tool.
http://help.sap.com/saphelp_47x200/helpdata/en/20/e81c3b84e65e7be10000000a11402f/frameset.htm
Performance tuning for Data Selection Statement
http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm -
How to insert Integer array in a MySql DataBase
Now i am doing one swing application,in that i have List box,My doubt is ,How to insert the mutiple seleted value into database.
http://java.sun.com/docs/books/tutorial/jdbc/
-
Access Databases LMS 4.2 with jython script ( Integration with HP uCMDB )
Questions / Integration Adapter Cisco Prime.
There is an integration adapter for HP uCMDB to get CI information from Cisco Works (Prime whatever ….).
We set up a user for CW according to “Open Database Schema Support in Cisco Prime LAN Management Solution 4.2” , page 1ff.
According to this document we created a user lmsdatafeed. If we run this integration from HP uCMDB / DDM we can connect to rmeng database using jmx to port 43455, but we have not sufficient privileges to get all the needed information.
We tried to connect with a user that has full rights (Admin User), but we cannot connect at all with this user.
We use Cisco Prime LMS 4.2 and we want to have our network devices as Configuration Items (CI's) in our HP uCMDB
Our question:
Would it be save to give more privileges to the user lmsdatafeed ?
And if yes: How can this be done ?
Is it possible to give an admin user the rights to connect by jmx/jdbc ?
Below I post the communication protocol of the adapter, connection is OK and the first select statement to, but them this user doesn't have enough privileges. The error messages are in german for some reason ... (means: "User has not sufficient privileges to selet from DM_Dev_State")
Any help is appreciated !
==== snip =====
execution jobId="DS_CiscoPrime_CiscoWorks NetDevices" destinationid="e6ac2661c751b23929fb1cf4f97a536f">
<destination>
<destinationData name="id">e6ac2661c751b23929fb1cf4f97a536f</destinationData>
<destinationData name="ip_address">172.28.193.55</destinationData>
<destinationData name="db_port">43455</destinationData>
</destination>
<protocol name="sql" cm_credential_id="20_1_CMS">
<object id="8c1f2739bad14d0bd6242574005249dd" id_type="CmdbObjectID" isReference="false" is_anchor="false">
<attribute name="protocol_username" type="String">lmsdatafeed</attribute>
<attribute name="protocol_netaddress" type="String">DEFAULT</attribute>
<attribute name="sqlprotocol_encryption_method" type="String">None</attribute>
<attribute name="protocol_port" type="String">43455</attribute>
<attribute name="sqlprotocol_dbsid" type="Unknown" />
<attribute name="sqlprotocol_truststore" type="Unknown" />
<attribute name="protocol_timeout" type="String">20000</attribute>
<attribute name="user_label" type="String">CW RME</attribute>
<attribute name="cm_credential_id" type="String">20_1_CMS</attribute>
<attribute name="protocol_index" type="Integer">2</attribute>
<attribute name="protocol_type" type="String">sqlprotocol</attribute>
<attribute name="sqlprotocol_dbname" type="Unknown" />
<attribute name="sqlprotocol_dbtype" type="String">Sybase</attribute>
</object>
</protocol>
<params>
<param param_name="ignoreNodesWithoutIP" param_value="true" />
<param param_name="allowDnsLookup" param_value="false" />
<param param_name="rmeDbName" param_value="rmengdb" />
<param param_name="queryChunkSize" param_value="250" />
<param param_name="JOB_ID" param_value="DS_CiscoPrime_CiscoWorks NetDevices" />
</params>
<CONNECT start="9:43:6" duration="766" CMD="client_connect" RESULT="success" type="sql" credentialsId="20_1_CMS">
<ClientProperties>
<prop name="protocol_index" value="2" />
<prop name="protocol_timeout" value="20" />
<prop name="credentialsId" value="20_1_CMS" />
<prop name="sqlprotocol_dbname" value="" />
<prop name="sqlprotocol_dbsid" value="" />
<prop name="cm_credential_id" value="20_1_CMS" />
<prop name="sqlprotocol_dbtype" value="Sybase" />
<prop name="protocol_type" value="sqlprotocol" />
<prop name="preurl" value="jdbc:sybase:Tds:%%ipaddress%%:%%protocol_port%%/%%sqlprotocol_dbname%%?CHARSET=cp1252" />
<prop name="driver" value="com.sybase.jdbc2.jdbc.SybDriver" />
<prop name="protocol_netaddress" value="DEFAULT" />
<prop name="protocol_port" value="43455" />
<prop name="sqlprotocol_encryption_method" value="None" />
<prop name="user_label" value="CW RME" />
<prop name="protocol_username" value="lmsdatafeed" />
<prop name="sqlprotocol_truststore" value="" />
</ClientProperties>
</CONNECT>
<log start="9:43:6" severity="debug">[CiscoWorks_NetDevices.py:DiscoveryMain] Connected to CiscoWorks LMS Resource Manager Essentials database at port <43455>...</log>
<EXEC start="9:43:6" duration="16" CMD="SELECT db_name()" RESULT="success" />
<EXEC start="9:43:6" duration="0" CMD="next" RESULT="true" />
<EXEC start="9:43:6" duration="0" CMD="getStringByIndex:1" RESULT="rmengdb" />
<EXEC start="9:43:6" duration="0" CMD="next" RESULT="false" />
<EXEC start="9:43:6" duration="359" CMD="SELECT COUNT(1) FROM lmsdatagrp.NETWORK_DEVICES" RESULT="success" />
<EXEC start="9:43:6" duration="0" CMD="next" RESULT="true" />
<EXEC start="9:43:6" duration="0" CMD="getStringByIndex:1" RESULT="214" />
<EXEC start="9:43:6" duration="0" CMD="next" RESULT="false" />
<log start="9:43:6" severity="debug">[CiscoWorks logger] [CiscoWorks_NetDevices.py:getNetworkDevices] Got <214> Network Devices...</log>
<log start="9:43:6" severity="debug">[CiscoWorks logger] [CiscoWorks_NetDevices.py:getNetworkDevices] Got <1> chunks...</log>
<EXEC start="9:43:6" duration="16">
<CMD>[CDATA: SELECT TOP 250 START AT 1 netdevices.Device_Id, deviceState.NetworkElementID, netdevices.Device_Display_Name, netdevices.Host_Name, netdevices.Device_Category, netdevices.Device_Model, netdevices.Management_IPAddress, deviceState.Global_State FROM lmsdatagrp.NETWORK_DEVICES netdevices JOIN dba.DM_Dev_State deviceState ON netdevices.Device_Id=deviceState.DCR_ID]</CMD>
<RESULT IS_NULL="Y" />
<ERROR class="com.sybase.jdbc2.jdbc.SybSQLException">
<message>[CDATA: SQL Anywhere-Fehler -121: Berechtigung verweigert: Sie haben nicht die Berechtigung, aus "DM_Dev_State" auszuwählen]</message>
<stacktrace>
<frame class="com.sybase.jdbc2.tds.Tds" method="processEed" file="Tds.java" line="2884" />
<frame class="com.sybase.jdbc2.tds.Tds" method="nextResult" file="Tds.java" line="2206" />
<frame class="com.sybase.jdbc2.jdbc.ResultGetter" method="nextResult" file="ResultGetter.java" line="69" />
<frame class="com.sybase.jdbc2.jdbc.SybStatement" method="nextResult" file="SybStatement.java" line="220" />
<frame class="com.sybase.jdbc2.jdbc.SybStatement" method="nextResult" file="SybStatement.java" line="203" />
<frame class="com.sybase.jdbc2.jdbc.SybStatement" method="queryLoop" file="SybStatement.java" line="1596" />
<frame class="com.sybase.jdbc2.jdbc.SybStatement" method="executeQuery" file="SybStatement.java" line="1581" />
<frame class="com.sybase.jdbc2.jdbc.SybStatement" method="executeQuery" file="SybStatement.java" line="419" />
<frame class="com.hp.ucmdb.discovery.library.clients.agents.DatabaseAgent" method="getTable" file="DatabaseAgent.java" line="267" />
<frame class="com.hp.ucmdb.discovery.library.clients.query.SqlClient$3" method="executePrivate" file="SqlClient.java" line="246" />
<frame class="com.hp.ucmdb.discovery.library.clients.executors.Executor" method="execute" file="Executor.java" line="26" />
<frame class="com.hp.ucmdb.discovery.library.clients.BaseClient" method="exec" file="BaseClient.java" line="365" />
<frame class="com.hp.ucmdb.discovery.library.clients.query.SqlClient" method="getTable" file="SqlClient.java" line="258" />
<frame class="com.hp.ucmdb.discovery.library.clients.query.SqlClient" method="executeQuery" file="SqlClient.java" line="209" />
<frame class="com.hp.ucmdb.discovery.library.clients.query.SqlClient" method="executeQuery" file="SqlClient.java" line="195" />
<frame class="sun.reflect.NativeMethodAccessorImpl" method="invoke0" file="NativeMethodAccessorImpl.java" line="-2" />
<frame class="sun.reflect.NativeMethodAccessorImpl" method="invoke" file="NativeMethodAccessorImpl.java" line="57" />
<frame class="sun.reflect.DelegatingMethodAccessorImpl" method="invoke" file="DelegatingMethodAccessorImpl.java" line="43" />
<frame class="java.lang.reflect.Method" method="invoke" file="Method.java" line="601" />
<frame class="org.python.core.PyReflectedFunction" method="__call__" file="PyReflectedFunction.java" line="-1" />
<frame class="org.python.core.PyMethod" method="__call__" file="PyMethod.java" line="-1" />
<frame class="org.python.core.PyObject" method="__call__" file="PyObject.java" line="-1" />
<frame class="org.python.core.PyInstance" method="invoke" file="PyInstance.java" line="-1" />
<frame class="org.python.pycode._pyx33" method="doQuery$2" file="ciscoworks_utils" line="60" />
<frame class="org.python.pycode._pyx33" method="call_function" file="ciscoworks_utils" line="-1" />
<frame class="org.python.core.PyTableCode" method="call" file="PyTableCode.java" line="-1" />
<frame class="org.python.core.PyTableCode" method="call" file="PyTableCode.java" line="-1" />
<frame class="org.python.core.PyFunction" method="__call__" file="PyFunction.java" line="-1" />
<frame class="org.python.core.PyObject" method="invoke" file="PyObject.java" line="-1" />
<frame class="org.python.pycode._pyx42" method="getNetworkDevices$1" file="CiscoWorks_NetDevices" line="65" />
<frame class="org.python.pycode._pyx42" method="call_function" file="CiscoWorks_NetDevices" line="-1" />
<frame class="org.python.core.PyTableCode" method="call" file="PyTableCode.java" line="-1" />
<frame class="org.python.core.PyTableCode" method="call" file="PyTableCode.java" line="-1" />
<frame class="org.python.core.PyFunction" method="__call__" file="PyFunction.java" line="-1" />
<frame class="org.python.core.PyObject" method="__call__" file="PyObject.java" line="-1" />
<frame class="org.python.pycode._pyx42" method="DiscoveryMain$6" file="CiscoWorks_NetDevices" line="480" />
<frame class="org.python.pycode._pyx42" method="call_function" file="CiscoWorks_NetDevices" line="-1" />
<frame class="org.python.core.PyTableCode" method="call" file="PyTableCode.java" line="-1" />
<frame class="org.python.core.PyTableCode" method="call" file="PyTableCode.java" line="-1" />
<frame class="org.python.core.PyFunction" method="__call__" file="PyFunction.java" line="-1" />
<frame class="org.python.core.PyObject" method="invoke" file="PyObject.java" line="-1" />
<frame class="org.python.pycode._pyx47" method="f$0" file="<string>" line="2" />
<frame class="org.python.pycode._pyx47" method="call_function" file="<string>" line="-1" />
<frame class="org.python.core.PyTableCode" method="call" file="PyTableCode.java" line="-1" />
<frame class="org.python.core.PyCode" method="call" file="PyCode.java" line="-1" />
<frame class="org.python.core.Py" method="runCode" file="Py.java" line="-1" />
<frame class="org.python.core.Py" method="exec" file="Py.java" line="-1" />
<frame class="org.python.util.PythonInterpreter" method="exec" file="PythonInterpreter.java" line="-1" />
<frame class="com.hp.ucmdb.discovery.library.execution.impl.ExecutionEngineImpl" method="executeScript" file="ExecutionEngineImpl.java" line="214" />
<frame class="com.hp.ucmdb.discovery.library.execution.impl.ExecutionEngineImpl" method="executeScript" file="ExecutionEngineImpl.java" line="189" />
<frame class="com.hp.ucmdb.discovery.library.execution.impl.ExecutionEngineImpl" method="executeScript" file="ExecutionEngineImpl.java" line="185" />
<frame class="com.hp.ucmdb.discovery.library.execution.impl.ExecutionEngineImpl" method="execute" file="ExecutionEngineImpl.java" line="102" />
<frame class="com.hp.ucmdb.discovery.probe.services.dynamic.core.TablesProcessorUtil" method="processDestinationTables" file="TablesProcessorUtil.java" line="119" />
<frame class="com.hp.ucmdb.discovery.probe.services.dynamic.core.DynamicService" method="discover" file="DynamicService.java" line="71" />
<frame class="com.hp.ucmdb.discovery.probe.agents.probemgr.taskexecuter.JobExecuter" method="launchTask" file="JobExecuter.java" line="1238" />
<frame class="com.hp.ucmdb.discovery.probe.agents.probemgr.taskexecuter.JobExecuter$JobExecuterWorker" method="launch" file="JobExecuter.java" line="993" />
<frame class="com.hp.ucmdb.discovery.probe.agents.probemgr.taskexecuter.JobExecuter$JobExecuterWorker" method="executeTask" file="JobExecuter.java" line="930" />
<frame class="com.hp.ucmdb.discovery.probe.agents.probemgr.taskexecuter.JobExecuter$JobExecuterWorker" method="run" file="JobExecuter.java" line="836" />
</stacktrace>
</ERROR>
</EXEC>
<log start="9:43:6" severity="error">Failed executing query: <SELECT TOP 250 START AT 1 netdevices.Device_Id, deviceState.NetworkElementID, netdevices.Device_Display_Name, netdevices.Host_Name, netdevices.Device_Category, netdevices.Device_Model, netdevices.Management_IPAddress, deviceState.Global_State FROM lmsdatagrp.NETWORK_DEVICES netdevices JOIN dba.DM_Dev_State deviceState ON netdevices.Device_Id=deviceState.DCR_ID> on <172.28.193.55> Exception: Traceback (most recent call last): File "ciscoworks_utils", line 60, in doQuery com.sybase.jdbc2.jdbc.SybSQLException: com.sybase.jdbc2.jdbc.SybSQLException: SQL Anywhere-Fehler -121: Berechtigung verweigert: Sie haben nicht die Berechtigung, aus "DM_Dev_State" auszuwählen</log>
<log start="9:43:6" severity="warn">[CiscoWorks_NetDevices.py:getNetworkDevices] No Network Devices found in chunk <0></log>
<log start="9:43:6" severity="debug">Closing JDBC connections...</log>
<DISCONNECT start="9:43:6" duration="0" CMD="client_disconnect" RESULT="" IS_NULL="Y" type="sql" credentialsId="20_1_CMS" />
<results>
<results_for_add_or_update>
<vector />
</results_for_add_or_update>
<results_for_delete>
<vector />
</results_for_delete>
</results>
</execution>
===== snip ======Reading a database can DOS your LMS, but no permanent damage done.
This doc will tell you about the databases available
https://supportforums.cisco.com/docs/DOC-8796
You can set a password for each database, or one password for all using
\CSCOpx\bin\dbpasswd.pl
Each databse has it's own SA user
if ($dsn eq 'ani' ){$uid = 'cwsiSA' ; }
if ($dsn eq 'cmf' ){$uid = 'cmfDBA' ; }
if ($dsn eq 'rmeng' ){$uid = 'DBA' ; }
if ($dsn eq 'dfmEpm'){$uid = 'itemEpmUser'; }
if ($dsn eq 'dfmInv'){$uid = 'itemInvUser'; }
if ($dsn eq 'dfmFh' ){$uid = 'itemFhUser' ; }
if ($dsn eq 'opsxml'){$uid = 'DBA' ; }
if ($dsn eq 'upm' ){$uid = 'dba' ; }
This should allow you to get the data
Do keep in mind that all tables (except the views defined for lmsdatafeed) are subject to change.
Cheers,
Michel -
Hi All,
I have strange situation in XI Development, My server guys told that Database is full . Tables are
SAPXD2 SYS_LOB0000046998C00020$$ LOBSEGMENT PSAPXD2DB 83.062.784 10382.848 1.454 1- 0
SAPDAT SXMSCLUR TABLE PSAPDAT 48.761.856 6.095.232 864 1- 0
SAPDAT SXMSCLUP TABLE PSAPDAT 21.303.296 2.662.912 440 1- 0
Yesterday i checked the RWB---> ADAPTER Engine level and I seleted this year "all containing errors" I found more than 10000 error messages, I cancel all the messages in Adapter engine level. and i deleted the all cancel messages manually using this this note: 807615.
But still they are not find the free space in Database level.
And also i checked RWB---> Integration Engine level for this year "alll containing errors" I found more than 10000 system error messages, I am n't able to cancel these messages.
How i can delete these error messages from Integration engine,
My retention period is 20 days, I follow the maximum notes.
Please suggest me how we can solve this situation , Thank you very much.
Regards,
SateeshGood Morning All,
I Check the report RSXMB_SHOW_REORG_STATUS,
I found the results are:
No of Messages in DB: 910,616
No of Messages in Client : 910,616
No of messsage in client still to be reorganized: 910,616
Archiving status
Msg not in retension period (can be archived) : 2065
Delete
Asynchronouw messages not in retention period (can be deleted)-- 9,08012
Asynchronous messages in retention period(cannot be deleted)-- 366
Asynchronous messages without errors to be flagged -786
Synchr. msgs in retension period (cannot be deleted)- 171
How i can understand this situation, Kindly guide me.
Thank you very much
Sateesh -
I use Bento to maintain two large databases of group contacts. Mavericks will no longer allow me to copy the email address column and paste to the To: CC: BCC: in Mail as in the past. Any solutions?
Great,
So, now, open Automator, and click "Service"
Choose Service receives seleted text in Bento
Select Utilities->Copy to Clipboard
Select Utilities->Run Shell Script and enter the above command (in place or cat):
Select Mail->New Mail Message
Save
Now, highlight the email addesses in Bento, right click, and select the service you just created.
A new mail window will open, and just ⌘V -
Logical Database in Abap Objects
Hi to All
I want do it a program report using a Logical Database.
Is this possible ??? But when I make a GET <node>, occurs the following error:
"" Statement "ENDMETHOD" missing. ""
I'm doing the following:
CLASS MONFIN IMPLEMENTATION.
METHOD TRAER_DATOS.
GET VBRK.
ENDMETHOD.
ENDCLASS.
Please, somebody tell me how I use the logical database in Abap Objects.
Thank you very much
Regards
Dario R.Hi there
Logical databases whilst of "some use" are not really part of OO.
If you want to use a logical database in an abap OO program I would create a special class which just does the get data from your DB and pass this either at record or table level.
Techniques such as GET XXXX LATE aren't really part of any OO type of application since at Object Instantiation time you should be able to access ALL the attributes of that object.
As far as OO is concerned Logical databases are a throwback to "Dinosaur Technology".
Since however modules such as SD and FI are still heavily reliant on relational structures (i.e linked tables etc) then there is still some limited life in this stuff but for OO try and solve it by another method.
If you really must use this stuff in OO then do it via a FMOD call and save the data in a table which your method will pass back to your application program.
You can't issue a GET command directly in a method.
Cheers
Jimbo -
Hello,
I have a program in R/3 that is based on a logical database. I don't want to have to write the program all over again in Webdynpro.
Is there a way to use the logical database in Webdynpro for ABAP.Basically WDA calls a FM and then the following help is a good starting point:
"Calling a Logical Database Using a Function Module"
http://help.sap.com/saphelp_nw04/helpdata/en/64/237f8cd43711d1950b0000e8353423/content.htm
Kindly close the thread and award appropriate a points to the answer given.
Sergio -
Logical database in adhoc query
Hello All,
Can anyone tell me what is the logical database in adhoc query?Hi
When you create a query , you have to select an infoset. Infoset can be considered as a source from which data is populated in the Query Fields.
Infosets are created from Transaction SQ02.
There can be four methods through which an Infoset can become a source of data:
1. Table join ( By joining two or more tables from Data dictionary)
example: Joining tables PA0001 and PA0006 on Pernr to get a one resultant dataset
2. Direct read of Basis Table ( Like PA0001 as a source for data in Infoset )
3. Logical Database ( A Pre-written Program by SAP that extract data from clusters, tables taking care of authorizations and validity periods)
Example : Logical database PNP, PNPCE (Concurrent Employement),PCH ( LDB for Personnel Development Data)
Custom Logical DBs can be created in T_Code SE-36.
4. Data Retrieval by a Program ( Custom code written by ABAP developers which will collect and process data) . This program has a corresponding Structure in data dictionary and the fields of this structure will be used in query)
Reward Points, if helpful.
Regards
Waseem Imran -
LOGICAL DATABASE IN HR ABAP PRPGRAMMING
Hi Friends,
what is use of LOGICAL DATABASE IN HR ABAP PROGRAMMING
AND END-OF-SELECTION EVENT IN HR PROGRAMMING PROGRAMMING???
regards,
vijay.hi
HR Logical Databases
In Human Resources (HR), the following logical databases can be used as a data source for HR InfoSets:
PNP (PNPCE)
PAP
PCH
By selecting a logical database, you determine the HR data that can be reported on using an InfoSet.
Logical Database PCH
This logical database generally enables you to report on all HR infotypes. However, you are advised not to use this logical database unless you want to report on Personnel Planning data.
Logical Database PNP (or PNPCE)
Use logical database PNP to report on HR master data. It is possible to use logical database PCH to access this data, but PNP meets such reporting requirements more quickly because it is best suited to the task of selecting persons.
Logical database PNP enables you to access HR master data and infotypes from Personnel Planning. For example, you have the following options:
Reporting on the costs, number of attendees booked, and instructor for a business event on which an employee is booked
Reporting on working time and planned compensation for a position that an employee occupies
Reporting on the validity and proficiency of a qualification that an employee fulfils
From a technical perspective, this means you can use PNP to report on all of the infotypes that exist for objects (infotype 1000) that have a direct relationship (infotype 1001) with the Person object.
The ability to access infotypes from Personnel Planning using logical database PNP is a special feature that you can only use in the context of SAP Query and Ad Hoc Query. You cannot use this functionality for ABAP reports you programmed yourself.
You can also use logical database PNP to report on data from Personnel Time Management (infotypes 2000 to 2999) and Payroll (special payroll infotypes for the USA and customer infotypes; for more information, access Customizing for the Human Resources Information System and see Payroll Results).
Logical Database PAP
Logical database PAP enables you to access data from Recruitment.
regards
navjot
reward if helpfull -
Installation problem with NW'04 SR1: database connection failed
Hi all,
while installing NW '04 SR1 on Windows Server 2003 SP1 and MS SQL Server 2000 SP4 I ran into an error related to the database connection. While performing the step "Load Java Database content" SAPinst crashes with the message
com.sap.sql.log.OpenSQLException: Could not load class com.ddtek.jdbc.sqlserver.SQLServerDriver.
The connection to the SLQ Server with e.g. the Query Analyzer is OK. I had a problem with this installation setup before (have a look at the corresponding <a href="https://forums.sdn.sap.com/thread.jspa?threadID=338638&tstart=0">thread</a> ), the JDBC drivers where missing on the installation master but after copying them in the right direction the installation went on with no problem up to this point...
Has anybody an idea what could have happened here? Is this maybe a problem connected to the one I recently had
Below I attached the sapinst.log and jload.log with more detailed messages.
sapinst.log ###########
INFO 2007-03-12 22:06:24
Working directory changed to C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_~1\ONE_HOST.
INFO 2007-03-12 22:06:24
Output of D:\Java/bin/java.exe '-classpath' './sharedlib/antlr.jar;./sharedlib/exception.jar;./sharedlib/jddi.jar;./sharedlib/jload.jar;./sharedlib/logging.jar;./sharedlib/offlineconfiguration.jar;./sharedlib/opensqlsta.jar;./sharedlib/tc_sec_secstorefs.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\base.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\util.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\sqlserver.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\spy.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_jce_export.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_jsse.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_smime.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_ssl.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/w3c_http.jar' '-showversion' '-Xmx512m' 'com.sap.inst.jload.Jload' '-sec' 'WPT,jdbc/pool/WPT,D:\usr\sap\WPT\SYS\global/security/data/SecStore.properties,D:\usr\sap\WPT\SYS\global/security/data/SecStore.key' '-dataDir' 'S:/D51030724\J2EE_OSINDEP\J2EE-ENG/JDMP' '-job' 'C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/IMPORT.XML' '-log' 'C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/jload.log' is written to the logfile C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_~1\ONE_HOST/jload.java.log.
WARNING 2007-03-12 22:06:26
Execution of the command "D:\Java/bin/java.exe '-classpath' './sharedlib/antlr.jar;./sharedlib/exception.jar;./sharedlib/jddi.jar;./sharedlib/jload.jar;./sharedlib/logging.jar;./sharedlib/offlineconfiguration.jar;./sharedlib/opensqlsta.jar;./sharedlib/tc_sec_secstorefs.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\base.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\util.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\sqlserver.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\spy.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_jce_export.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_jsse.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_smime.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_ssl.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/w3c_http.jar' '-showversion' '-Xmx512m' 'com.sap.inst.jload.Jload' '-sec' 'WPT,jdbc/pool/WPT,D:\usr\sap\WPT\SYS\global/security/data/SecStore.properties,D:\usr\sap\WPT\SYS\global/security/data/SecStore.key' '-dataDir' 'S:/D51030724\J2EE_OSINDEP\J2EE-ENG/JDMP' '-job' 'C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/IMPORT.XML' '-log' 'C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/jload.log'" finished with return code 1. Output:
java version "1.4.2_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_13-b06)
Java HotSpot(TM) Client VM (build 1.4.2_13-b06, mixed mode)
12.03.2007 22:06:25 com.sap.inst.jload.Jload main
INFO: Jload -sec WPT,jdbc/pool/WPT,D:\usr\sap\WPT\SYS\global/security/data/SecStore.properties,D:\usr\sap\WPT\SYS\global/security/data/SecStore.key -dataDir S:/D51030724\J2EE_OSINDEP\J2EE-ENG/JDMP -job C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/IMPORT.XML -log C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/jload.log
12.03.2007 22:06:26 com.sap.inst.jload.Jload main
SCHWERWIEGEND: couldn't connect to DB
com.sap.sql.log.OpenSQLException: Could not load class com.ddtek.jdbc.sqlserver.SQLServerDriver.
ERROR 2007-03-12 22:06:26
CJS-20065 Execution of JLoad tool 'D:\Java/bin/java.exe '-classpath' './sharedlib/antlr.jar;./sharedlib/exception.jar;./sharedlib/jddi.jar;./sharedlib/jload.jar;./sharedlib/logging.jar;./sharedlib/offlineconfiguration.jar;./sharedlib/opensqlsta.jar;./sharedlib/tc_sec_secstorefs.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\base.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\util.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\sqlserver.jar;D:\usr\sap/WPT/JC10/j2ee\jdbc\spy.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_jce_export.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_jsse.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_smime.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/iaik_ssl.jar;D:/usr/sap/WPT/SYS/global/security/lib/tools/w3c_http.jar' '-showversion' '-Xmx512m' 'com.sap.inst.jload.Jload' '-sec' 'WPT,jdbc/pool/WPT,D:\usr\sap\WPT\SYS\global/security/data/SecStore.properties,D:\usr\sap\WPT\SYS\global/security/data/SecStore.key' '-dataDir' 'S:/D51030724\J2EE_OSINDEP\J2EE-ENG/JDMP' '-job' 'C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/IMPORT.XML' '-log' 'C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/jload.log'' aborts with returncode 1. Check 'C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/jload.log' and 'C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/jload.java.log' for more information.
jload.log ###########
12.03.07 22:06 com.sap.inst.jload.Jload main
INFO: Jload -sec WPT,jdbc/pool/WPT,D:\usr\sap\WPT\SYS\global/security/data/SecStore.properties,D:\usr\sap\WPT\SYS\global/security/data/SecStore.key -dataDir S:/D51030724\J2EE_OSINDEP\J2EE-ENG/JDMP -job C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/IMPORT.XML -log C:\PROGRA1\SAPINS1\NW04SR1\WEBAS_1\ONE_HOST/jload.log
12.03.07 22:06 com.sap.inst.jload.Jload main
SEVERE: couldn't connect to DB
com.sap.sql.log.OpenSQLException: Could not load class com.ddtek.jdbc.sqlserver.SQLServerDriver.
Best regards,
BerndHello Kairat,
Please follow the below mentioned guide to install it.
Check all the parameters to set and run pre requisite checker before starting installation.
Keep in mind that before starting any SAP installation you should always run prerequisite checker.
https://websmp205.sap-ag.de/instguides --> SAP Netweaver -->SAP Netweaver 7.0 -- > Installations --> EHP2
Regards,
Amit Barnawal -
Message: "The database structure has been modified" every time I log to SAP
Hello,
"The database structure has been modified. In order to resume this process, all open windows will be closed". Every time I log to one of my companies in SAP Business One this message appears.
I haven't installed any new addons and made no changes in database structure (and any other user hasn't done any changes), but this message appears always when I log to company for the first time (when I try to log on another user or log to another company there is no message). Can anyone help me with this problem?
Best regards
Ela ŚwiderskaHi Ela Świderska,
You may check this thread first:
UDFs disappeared
Thanks,
Gordon -
We have Business Objects 3.1 SP2 FP2.3 running on Windows 2003 R2 SP2 64bits.
CMS database on SQL 2005 x64
Environment runs on Apache Tomcat
Single Sign-On with kerberos on Active Directory is working fine.
We have developers who want to use their Crystal Reports with SSO also and not use SQL authentication like they used to do in previous BO versions.
In Windows AD Authenticaton of the CMC, I checked the option Cache security context (required for SSO database)
In the Database Configuration of the Crystal Report we're testing, in the section "When viewing report", we selected Use SSO context for database logon
Is there any other necessary configuration to be done in any config file?
Not sure whether this should be added but in the krb5.ini file, I added the following value under libdefaults (just before the realms section): forwardable = true
When I try to view the report, I get the following error message in InfoVIew:
Error in File "testreport": Unable to connect: incorrect log on parameters: Details: [Database Vendor Code: 18456]
For the same kind of report but with the option: "Use same database logon as when report is run", with SQL authentication parameters, everything is OK.
DEV Environment: one InfoVIew FrontEnd server and one BO CMS server
PROD Environment: one InfoView FrontEnd server and 2 BO clustered servers
Regards
JayI think [this thread should get you going|SSO2DB / Use Database Credentials; about half way down I worte a response with links to setup the DB for kerberos.
Regards,
Tim -
APEX-The manullay created column is not getting updated in the database
Dear all
I have a form on page, which is created along with a report using Form on a Table with Report option. From the form I have deleted one field and recreated manullay as set the property as database column. When I am calling from the report page (using defualt edit option) the value is showing there, but if I am 'Apply Changes' , the column value in database is get updated with null.
Please help
DJ.This is the SQL and PL/SQL forum.
Please re-post this on the APEX forum.
Oracle Application Express (APEX)
Maybe you are looking for
-
I bought two ipod touches for my children last week (all kids under 10 if it makes a difference). Child #3 already has one. When I bought them, I was told that I can download movies on each for an upcoming long distance trip. If child 1 wants to watc
-
Reading from a text file in to an array, help please
I have the following public class date extends Loans{ public int dd; public int mm; public int yyyy; public String toString() { return String.format( "%d,%d,%d", mm, dd, yyyy ); public class Loans extends Borrowing { public String name; public String
-
ITunes Sync causing Alarms to Disable
Every time I sync my iPhone with iTunes my Alarms get disabled on my phone, I've had a new iPhone via Insurance after dropping it, the new iPhone does exactly the same? Is there any file I can delete on my PC Relating to Alarms only so it stops doing
-
Missed calls time coming up as when i unlock it not when they called?
If i have a missed call or two the time it says i have missed it is always when i have unlocked it instead of when they rang? any thoughts of how to fix it?
-
Oracle OVM 3.1.1 with Cisco 4948 - link aggregation ?
I have two Dell R710's in a lab that I am attempting to create a 2 node OVM cluster. I am specifically looking for assistance with the Cisco etherchannel setup and OVM bonding on the interfaces. I have configured bonding with Cisco and VMWare many ti