Using logical database to fetch data in Module Pool programming
I am unable to use logical database to fetch data in case of Module pool programming. Has anyone ever faced problems with it...?
use f.m LDB_PROCESS....
refer demo program DEMO_LOGICAL_DATABASE
Similar Messages
-
Use logical database to fetch data in FI reports
Hi All,
is it possible to fetch data using logical database for FI module ALV reports.
please provide me details.
Thks
Shaileshlook at the logical database tables for the FI module
BMM Documents for Number
BRF Document Database
BRM Accounting Documents
DDF CUSTOMER DATABASE
KDF Vendor Database
SDF G/L Account Database -
How to extract the data from module pool program to Excel Sheet?
Hi Guys
I am having a requirement to transfer the data from Module pool screen to excel sheet directly.
This is an urgent requirement.
So plz reply me with some coding examples.
I will give points for that.This report extract excel file. From that concept you can easily extract data from module pool program also by coding in PAI of the screen.
REPORT ztest1 .
* this report demonstrates how to send some ABAP data to an
* EXCEL sheet using OLE automation.
include ole2incl.
* handles for OLE objects
data: h_excel type ole2_object, " Excel object
h_mapl type ole2_object, " list of workbooks
h_map type ole2_object, " workbook
h_zl type ole2_object, " cell
h_f type ole2_object, " font
h_c type ole2_object. " color
DATA: FILENAME LIKE RLGRAP-FILENAME.
tables: spfli.
data h type i.
* table of flights
data: it_spfli like spfli occurs 10 with header line.
*& Event START-OF-SELECTION
start-of-selection.
* read flights
select * from spfli into table it_spfli.
* display header
uline (61).
write: / sy-vline no-gap,
(3) 'Flg'(001) color col_heading no-gap, sy-vline no-gap,
(4) 'Nr'(002) color col_heading no-gap, sy-vline no-gap,
(20) 'Von'(003) color col_heading no-gap, sy-vline no-gap,
(20) 'Nach'(004) color col_heading no-gap, sy-vline no-gap,
(8) 'Zeit'(005) color col_heading no-gap, sy-vline no-gap.
uline /(61).
* display flights
loop at it_spfli.
write: / sy-vline no-gap,
it_spfli-carrid color col_key no-gap, sy-vline no-gap,
it_spfli-connid color col_normal no-gap, sy-vline no-gap,
it_spfli-cityfrom color col_normal no-gap, sy-vline no-gap,
it_spfli-cityto color col_normal no-gap, sy-vline no-gap,
it_spfli-deptime color col_normal no-gap, sy-vline no-gap.
endloop.
uline /(61).
* tell user what is going on
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
* PERCENTAGE = 0
text = text-007
exceptions
others = 1.
* start Excel
create object h_excel 'EXCEL.APPLICATION'.
* PERFORM ERR_HDL.
set property of h_excel 'Visible' = 1.
* CALL METHOD OF H_EXCEL 'FILESAVEAS' EXPORTING #1 = 'c:kis_excel.xls'
* PERFORM ERR_HDL.
* tell user what is going on
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
* PERCENTAGE = 0
text = text-008
exceptions
others = 1.
* get list of workbooks, initially empty
call method of h_excel 'Workbooks' = h_mapl.
perform err_hdl.
* add a new workbook
call method of h_mapl 'Add' = h_map.
perform err_hdl.
* tell user what is going on
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
* PERCENTAGE = 0
text = text-009
exceptions
others = 1.
* output column headings to active Excel sheet
perform fill_cell using 1 1 1 200 'Carrier id'(001).
perform fill_cell using 1 2 1 200 'Connection id'(002).
perform fill_cell using 1 3 1 200 'City from'(003).
perform fill_cell using 1 4 1 200 'City to'(004).
perform fill_cell using 1 5 1 200 'Dep. Time'(005).
loop at it_spfli.
* copy flights to active EXCEL sheet
h = sy-tabix + 1.
if it_spfli-carrid cs 'AA'.
perform fill_cell using h 1 0 000255000 it_spfli-carrid.
elseif it_spfli-carrid cs 'AZ'.
perform fill_cell using h 1 0 168000000 it_spfli-carrid.
elseif it_spfli-carrid cs 'JL'.
perform fill_cell using h 1 0 168168000 it_spfli-carrid.
elseif it_spfli-carrid cs 'LH'.
perform fill_cell using h 1 0 111111111 it_spfli-carrid.
elseif it_spfli-carrid cs 'SQ'.
perform fill_cell using h 1 0 100100100 it_spfli-carrid.
else.
perform fill_cell using h 1 0 000145000 it_spfli-carrid.
endif.
if it_spfli-connid lt 400.
perform fill_cell using h 2 0 255000255 it_spfli-connid.
elseif it_spfli-connid lt 800.
perform fill_cell using h 2 0 077099088 it_spfli-connid.
else.
perform fill_cell using h 2 0 246156138 it_spfli-connid.
endif.
if it_spfli-cityfrom cp 'S*'.
perform fill_cell using h 3 0 155155155 it_spfli-cityfrom.
elseif it_spfli-cityfrom cp 'N*'.
perform fill_cell using h 3 0 189111222 it_spfli-cityfrom.
else.
perform fill_cell using h 3 0 111230222 it_spfli-cityfrom.
endif.
if it_spfli-cityto cp 'S*'.
perform fill_cell using h 4 0 200200200 it_spfli-cityto.
elseif it_spfli-cityto cp 'N*'.
perform fill_cell using h 4 0 000111222 it_spfli-cityto.
else.
perform fill_cell using h 4 0 130230230 it_spfli-cityto.
endif.
if it_spfli-deptime lt '020000'.
perform fill_cell using h 5 0 145145145 it_spfli-deptime.
elseif it_spfli-deptime lt '120000' .
perform fill_cell using h 5 0 015215205 it_spfli-deptime.
elseif it_spfli-deptime lt '180000' .
perform fill_cell using h 5 0 000215205 it_spfli-deptime.
else.
perform fill_cell using h 5 0 115115105 it_spfli-deptime.
endif.
endloop.
* EXCEL FILENAME
CONCATENATE SY-REPID '_' SY-DATUM+6(2) '_' SY-DATUM+4(2) '_'
SY-DATUM(4) '_' SY-UZEIT '.XLS' INTO FILENAME.
CALL METHOD OF H_MAP 'SAVEAS' EXPORTING #1 = FILENAME.
free object h_excel.
perform err_hdl.
* FORM FILL_CELL *
* sets cell at coordinates i,j to value val boldtype bold *
form fill_cell using i j bold col val.
call method of h_excel 'Cells' = h_zl
exporting
#1 = i
#2 = j.
perform err_hdl.
set property of h_zl 'Value' = val .
perform err_hdl.
get property of h_zl 'Font' = h_f.
perform err_hdl.
set property of h_f 'Bold' = bold .
perform err_hdl.
set property of h_f 'Color' = col.
perform err_hdl.
endform. "FILL_CELL
*& Form ERR_HDL
* outputs OLE error if any *
* --> p1 text
* <-- p2 text
form err_hdl.
if sy-subrc <> 0.
write: / 'OLE-Automation Error:'(010), sy-subrc.
stop.
endif.
endform. " ERR_HDL -
Cursor position on screen data in module pool programming(urgent)
Hi all,
I developed a module pool program which will save the data after scanning the barcode data.
In my program screen 100 is there which contains field 2dbar. scanned data is comming to 2dbar field.
we r doing scan 4 times.once for vendor number,once for material no. like this.
After 1st scan, vendor number will come to field 2dbar.
Then I developed logic to put comma after each scanned data come to this field 2dbar.
MODULE put_comma INPUT.
CASE OK_CODE.
when ''.
move 2dbar to 2dbar1.
clear 2dbar.
concatenate 2dbar1 ',' into 2dbar2.
*replace 2dbar with 2dbar2 into 2dbar.
move 2dbar2 to 2dbar.
*write 2dbar2 to 2dbar.
condense 2dbar no-gaps.
*move '' to 2dbar.
*set cursor field 2dbar offset 5.
*write
ENDCASE.
ENDMODULE. " put_comma INPUT
By above logic, comma comes to the starting position of 2dbar after each scan. i.e cursor position is coming to the starting position of screen field 2dbar.
Now I need to move the cursor position after the comma position on 2dbar after each scan.
after 1st scan, 2dbar contains
vmotorola
then my logic puts a comma when u put enter on screen 100.
now 2dbar contains
vmotorola,
i should get the cursor position after the comma.but i am getting cursor position before 'v'.so how to move this cursor position beyond comma after each scan.
I added set cursor command but it is not working.plz
What is the logic, I need to put in PAI to move the cursor on selection screen.
Already the logic I have mentioned. with that logic, I can put comma.now I need to add cursor movement logic to move the cursoron on screen field 2dbar.
Plz reply me as it is urgent.
Thanks in advance.
Regards
pabitraCASE OK_CODE.
when ''.
move 2dbar to 2dbar1.
clear 2dbar.
concatenate 2dbar1 ',' into 2dbar2.
move 2dbar2 to 2dbar.
condense 2dbar no-gaps.
len = strlen ( 2dbar ).
len = len - 1.
set cursor field 2dbar offset len.
ENDCASE.
ENDMODULE. " put_comma INPUT -
How to create selections-screens to display PO using module pool program
All,
I'm new to module pool programming. Can any one please provide me where to create selections screens to display existing purchase orders using the below selection criteria in thr module pool program.,
SELECT-OPTIONS : S_LIFNR FOR EKKO-LIFNR,
S_BSART FOR EKKO-BSART,
S_BUKRS FOR EKKO-BUKRS,
S_WERKS FOR EKPO-WERKS OBLIGATORY,
S_BEDAT FOR SY-DATUM,
S_EINDT FOR EKET-EINDT,
S_EBELN FOR EKKO-EBELN,
S_MATNR FOR EKPO-MATNR.
provide me step by step to do this.Hi,
Thanks for the reply can you please let me know.
How can I create the ranges
like low and high in the selection.
Using se51 i was able to do only one i,e
example I need
purchase order number----
f4 -
f4
Can please tell me how to do this -
Call Module pool program in report
Dear guys,
i have Module pool program ZSDMODPOOL,which is transaction ZSDORD(ADDON SCREEN),Which creates sales order and shipment.
Now i want, one new screen to display before this ZSDORD Screen. In new screen i will have Table control having Internal table displaying in it.
Now, My requirement is how to pass this New screen internal table datas into Module pool program.
or i can put question as how to call module pool program
from other report program or screen.
Pls give me ideas.
ambichanYou can call the transaction using CALL TRANSACTION, or you can setup a DIALOG and call it using CALL DIALOG. Using CALL DIALOG you will be able to pass values. You create a DIALOG via transation SE35.
Regards,
Rich Heilman -
How to use Logical database in function module?
I will create a function module in HR.
but how to use Logical database in function module ? Logical database PNP always show screen.in function (RFC) code , it is a matter.You cannot attach the LDB to the main program of the function group.
- So you may [SUBMIT|https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=submit&adv=false&sortby=cm_rnd_rankvalue] a report which use the LDB and get back the data (export/import), by default in the syntax of SUBMIT the selection-screen will not be displayed
- Use [LDB_PROCESS|https://www.sdn.sap.com/irj/sdn/advancedsearch?query=ldb_process&cat=sdn_all], fill a structured table for selection, and get data back in another table
- Use [HR function modules to read Infotypes|https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=hrfunctionmodulestoread+Infotypes&adv=false&sortby=cm_rnd_rankvalue].
Regards -
How to retrieve data using logical database and custom select options
Hi all,
I have a selection screen which is displayed by logical database PSJ and I have two select options of my own. I need to retrieve data based on both selection screen of logical database and my own select options. How can I do it?
Thanks in advance.Hai Gupta
Check the following Document & Links
1. A logical database is in fact
a program only.
2. This LDB provides two main things :
a) a pre-defined selection screen
which handles all user inputs and validations
b) pre defined set of data
based upon the user selection.
3. So we dont have to worry about from
which tables to fetch data.
4. Moreover, this LDB Program,
handles all user-authorisations
and is efficient in all respects.
5. tcode is SLDB
good info about Logical Database. you can check the link.
http://www.geekinterview.com/question_details/1506
http://help.sap.com/saphelp_46c/helpdata/EN/35/2cd77bd7705394e10000009b387c12/frameset.htm
Re: How to Create and Use ldb in reports?
Re: Logical databases
http://help.sap.com/saphelp_46c/helpdata/en/9f/db9bed35c111d1829f0000e829fbfe/frameset.htm
Functions for displaying and changing logical databases:
Call Transaction SE36 or
Choose ABAP Workbench -> Development -> Programming environ. -> Logical databases
Interaction between database program and report:
During program processing, subroutines are performed in the database program and events are executed in the report.
To read data from a database tables we use logical database.
A logical database provides read-only access to a group of related tables to an ABAP/4 program.
advantages:-
The programmer need not worry about the primary key for each table.Because Logical database knows how the different tables relate to each other,and can issue the SELECT command with proper where clause to retrieve the data.
i)An easy-to-use standard user interface.
ii)check functions which check that user input is complete,correct,and plausible.
iii)meaningful data selection.
iv)central authorization checks for database accesses.
v)good read access performance while retaining the hierarchical data view determined by the application logic.
disadvantages:-
i)If you donot specify a logical database in the program attributes,the GET events never occur.
ii)There is no ENDGET command,so the code block associated with an event ends with the next event
statement (such as another GET or an END-OF-SELECTION).
1. transaction code SLDB.
2.enter name z<ldb-name>
3.create
4.short text
5.create
6. name of root node (here Ekko)
7. enter short text (f6)
8.node type -> data base table.
9.create
10 change logical DB
riht click on ekko and insert node
here node name ekpo
11.create
12. click on selections
13. press no Should the changed structure of Z<ldb name> be saved first.
14.select tables which you want to join.
15.transfer
16 now you have to o to coding part.
17. save
activate.
19.click to src code
double click on first include and activate
Regards
Sreeni -
Can I use logical databases in a WebDynpro ABAP program?
can I use logical databases in a WebDynpro ABAP program?
I need to build a WDA screen that is similar to the SAPDBPNP selection screen (user can find the personnel number based on several criteria, such as last_name/first_name of the employee). So it seems that the existing logical databases have already many nice features already built (like the selection screens, the logic behind the screens etc). So I was wondering if/how I can use them in my WDA application.Hello, Tiberiu.
You cannot use LDB directly within your WDA programa. BUT, you can fetch results from this LDB by using FM LDB_PROCESS. This function module can be called anytime from any kind of ABAP program. But you will still have to create the screen, as it only processes data, not screens.
Regards,
Andre
PS: Pls reward points if it helps. -
HR Reporing Payroll using Logical Database PNPCE
Hi ALL
Can any body explain me how can we do HR Payroll reporing using logical database PNPCE.
In the program attibutes as mentioned we need to scee 900 for payroll reporting, but when I use PNPCE I cant see that screen in the Dropdown.
can any body help me with this.
regards
AJcheck this program..
REPORT ZHR_PAYROLL_EX1
MESSAGE-ID ZZ
LINE-SIZE 132
LINE-COUNT 64(2)
NO STANDARD PAGE HEADING .
T A B L E S *
TABLES : PA0001 , "Infotype 0001
PCL1, "HR Cluster 1
PCL2, "HR Cluster 2
T549A, "Payroll Accounting Areas
T549Q. "Payroll Periods
I N C L U D E S *
*--Standard Include for US Payroll
INCLUDE RPC2RUU0. "Cluster RD data definition
INCLUDE RPC2CD00. "Cluster CD Data-Definition
INCLUDE RPC2CA00. "Cluster CA Data-Definition
INCLUDE RPC2RX00. "Cluster RF data definition internat. part
INCLUDE RPPPXD00. "Data definition buffer PCL1/PCL2
INCLUDE RPPPXD10. "Common part buffer PCL1/PCL2
INCLUDE RPPPXM00. "Buffer handling routine
INTERNAL TABLES
*Internal Table to Hold data from PA0001
DATA : BEGIN OF I_0001 OCCURS 0,
PERNR LIKE PA0001-PERNR, "Personnel Number
END OF I_0001.
*Internal Table to Hold data from PA0001
DATA : BEGIN OF I_FINAL OCCURS 0,
PERNR LIKE PA0001-PERNR, "Personnel Number
GAMNT LIKE PC207-BETRG, "Gross Amount
NTAMT LIKE PC207-BETRG, "Net Amount
PAYDT LIKE PC261-PAYDT, "Pay Date
RUNDT LIKE PC261-RUNDT, "Run Date
VORNA LIKE PA0002-VORNA, "First Name
NACHN LIKE PA0002-NACHN, "Last Name
END OF I_FINAL.
*Internal Table to Hold data from PA0002
DATA : BEGIN OF I_0002 OCCURS 0,
PERNR LIKE PA0002-PERNR, "Personnel Number
VORNA LIKE PA0002-VORNA, "First Name
NACHN LIKE PA0002-NACHN, "Last Name
END OF I_0002.
Control record type
TYPES : BEGIN OF T_T569V,
ABKRS LIKE T569V-ABKRS, "Personnel Area
PABRJ LIKE T569V-PABRJ, "Accounting year
PABRP LIKE T569V-PABRP, "Accounting period
STATE LIKE T569V-STATE, "Status of Control Record
ADRUN LIKE T569V-ADRUN, "HR: Special payroll run
END OF T_T569V.
STRUCTURES
DATA : WA_T569V TYPE T_T569V. " Work area for t569v
DATA
DATA : V_PABRJ LIKE T569V-PABRJ, "Accounting year
V_PABRP LIKE T569V-PABRP, "Accounting period
V_BEGDA LIKE SY-DATUM, "Begin Date
V_ENDDA LIKE SY-DATUM, "End Date
V_FPPER(6) TYPE C, "For Period
V_SEQNR LIKE PC261-SEQNR. "Sequence Number
SELECTION SCREEN
Selectio Screen Block for Employee Selection.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_PERNR FOR PA0001-PERNR, "Pernr
S_DATE FOR SY-DATUM. "Date
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION
START-OF-SELECTION.
*Get Data from pa0001
PERFORM GET_DATA_FROM_0001.
*Get Data from pa0001
PERFORM GET_DATA_FROM_0002.
*Get CHAD Details
PERFORM GET_PAYDATA.
END-OF-SELECTION
END-OF-SELECTION.
IF NOT I_FINAL[] IS INITIAL.
*Print the Final Report.
PERFORM PRINT_REPORT.
ENDIF.
T O P O F P A G E
TOP-OF-PAGE.
Display Header
PERFORM DISPLAY_HEADER.
S U B - R O U T I N E S
*& Form get_data_from_0001
Get Data from 0001
FORM GET_DATA_FROM_0001.
SELECT PERNR "Personnel Number
FROM PA0001
INTO TABLE I_0001
WHERE PERNR IN S_PERNR AND
ENDDA >= S_DATE-LOW AND
BEGDA <= S_DATE-HIGH .
IF SY-SUBRC = 0.
SORT I_0001 BY PERNR.
ENDIF.
ENDFORM. " get_data_from_0001
*& Form get_data_from_0002
Get Data from 0002
FORM GET_DATA_FROM_0002.
SELECT PERNR "Personnel Number
VORNA
NACHN
FROM PA0002
INTO TABLE I_0002
WHERE PERNR IN S_PERNR AND
ENDDA >= S_DATE-LOW AND
BEGDA <= S_DATE-HIGH .
IF SY-SUBRC = 0.
SORT I_0002 BY PERNR.
ENDIF.
ENDFORM. " get_data_from_0002
*& Form populate_chad_coinage_table
text
FORM GET_PAYDATA.
LOOP AT I_0001.
READ TABLE I_0002 WITH KEY PERNR = I_0001-PERNR BINARY SEARCH.
IF SY-SUBRC = 0.
I_FINAL-VORNA = I_0002-VORNA.
I_FINAL-NACHN = I_0002-NACHN.
ENDIF.
Read Result Directory for Payroll Results for a Employee.
PERFORM CU_READ_RGDIR.
Get Sequence Number & Associated Payroll Results.
PERFORM GET_PAYROLL_RESULTS.
ENDLOOP.
ENDFORM. " get_paydata
*& Form cu_read_rgdir
Reag rgdir to get the results with conty grouping 'TD'
FORM CU_READ_RGDIR.
DATA : V_MOLGA LIKE T500L-MOLGA ."Country Grouping
*Call function module to get Results
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
PERSNR = I_0001-PERNR
IMPORTING
MOLGA = V_MOLGA
TABLES
IN_RGDIR = RGDIR
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2.
SORT RGDIR BY SEQNR.
ENDFORM. " cu_read_rgdir
*& Form get_payroll_results
Get Sequence number
FORM GET_PAYROLL_RESULTS.
LOOP AT RGDIR WHERE SRTZA = 'A' AND
VOID IS INITIAL AND
REVERSAL IS INITIAL AND
OUTOFSEQ IS INITIAL AND
PAYDT IN S_DATE.
V_SEQNR = RGDIR-SEQNR.
*-- Macro Call for Germany
RP-INIT-BUFFER.
RX-KEY-PERNR = I_0001-PERNR.
RX-KEY-SEQNO = V_SEQNR.
RP-IMP-C2-RU.
LOOP AT RT WHERE LGART = '/559'.
I_FINAL-PERNR = I_0001-PERNR.
I_FINAL-GAMNT = RT-BETRG.
I_FINAL-PAYDT = RGDIR-PAYDT.
I_FINAL-RUNDT = RGDIR-RUNDT.
APPEND I_FINAL.
CLEAR I_FINAL.
ENDLOOP.
ENDLOOP.
ENDFORM. "get_payroll_results
*& Form display_header
Display Header
FORM DISPLAY_HEADER .
FORMAT COLOR 1.
ULINE.
WRITE:/1 SY-VLINE,
(15) 'Empl Number',
SY-VLINE,
(20) 'First Name',
SY-VLINE,
(20) 'Last Name',
SY-VLINE,
(15) 'Pay Date',
SY-VLINE,
(15) 'Run Date',
SY-VLINE,
(25) 'Gross Amount',
132 SY-VLINE.
ULINE.
FORMAT COLOR OFF.
ENDFORM. " display_header
*& Form print_report
Display Report
FORM PRINT_REPORT .
LOOP AT I_FINAL.
WRITE:/1 SY-VLINE,
(15) I_FINAL-PERNR,
SY-VLINE,
(20) I_FINAL-VORNA,
SY-VLINE,
(20) I_FINAL-NACHN,
SY-VLINE,
(15) I_FINAL-PAYDT,
SY-VLINE,
(15) I_FINAL-RUNDT,
SY-VLINE,
(25) I_FINAL-GAMNT,
132 SY-VLINE.
ULINE.
ENDLOOP.
SKIP 2.
WRITE:/1 'Period Begin Date:',(25) V_BEGDA.
WRITE:/1 'Period End Date:',(25) V_ENDDA.
ENDFORM. " print_report -
Hi,
There is one query which is using logical database PNM. I have got one requirement to add one field in selection screen to filter the output. The field which is required to be displayed in selection screen to filter the data is from table mkal which is not present in logical database. Hence my question is, is it possible to add field from table which is not present in logical database? IF yes, please specify the procedure.Hi Jogeswara,
Thanks for your inputs.
But my question is, how can I filter the data which is being fetched by standard logical database. I cannot go inside the std. LDB and change internal tables of it. I tried coding in extras, but I think it works only if we want to add additional fields in output.
At present, we are considering the option of creating a z LDB where we copy. std. LDB and also add the reqd. table which is not present in LDB.
Is there any other option?
Please provide your valuable inputs.
Regards,
Imran Kundan. -
how u used logical database?how is data transferrd to program?corresponding statement in LDB?
Hi,
Logical databases are programs that does useful tasks like data fetch, Authorization check on behalf of thep program to which you attach them.
Some of the Tasks of LDB's.
<b>Reading the same data for several programs.</b>
The individual programs do not then need to know the exact structure of the relevant database tables (and especially not their foreign key relationships). Instead, they can rely on the logical database to read the database entries in the right order during the GET event.
<b>Defining the same user interface for several programs.</b>
Logical databases have a built-in selection screen. Therefore, all of the programs that use the logical database have the same user interface.
<b>Central authorization checks</b>
Authorization checks for central and sensitive data can be programmed centrally in the database to prevent them from being bypassed by simple application programs.
<b>Improving Performance</b>
If you want to improve response times, logical databases permit you to take a number of measures to achieve this (for example, using joins instead of nested SELECT statements). These become immediately effective in all of the application programs concerned and save you from having to modify their source code.
The data fetch happend with the PUT_XXXX subrotuines in the Logical database programs.
Example:
DATABASE PROGRAM OF THE LOGICAL DATABASE TEST_LDB
PROGRAM sapdbtest_ldb DEFINING DATABASE test_ldb.
TABLES: lfa1,
lfb1,
lfc1,
bkpf.
Initialize selection screen (process before PBO)
FORM init.
ENDFORM. "INIT
PBO of selection screen (always before selection
screen
FORM pbo.
ENDFORM. "PBO
PAI of selection screen (process always after ENTER)
FORM pai USING fname mark.
CASE fname.
WHEN 'SLIFNR'.
WHEN 'SBUKRS'.
WHEN 'SGJAHR'.
WHEN 'SBELNR'.
ENDCASE.
ENDFORM. "PAI
Call event GET LFA1
FORM put_lfa1.
SELECT * FROM lfa1
WHERE lifnr IN slifnr.
PUT lfa1.
ENDSELECT.
ENDFORM. "PUT_LFA1
Call event GET LFB1
FORM put_lfb1.
SELECT * FROM lfb1
WHERE lifnr = lfa1-lifnr
AND bukrs IN sbulrs.
PUT lfb1.
ENDSELECT.
ENDFORM. "PUT_LFB1
Call event GET LFC1
FORM put_lfc1.
SELECT * FROM lfc1
WHERE lifnr = lfa1-lifnr
AND bukrs = lfb1-bukrs
AND gjahr IN sgjahr.
PUT lfc1.
ENDSELECT.
ENDFORM. "PUT_LFC1
Call event GET BKPF
FORM put_bkpf.
SELECT * FROM bkpf
WHERE bukrs = lfb1-bukrs
AND belnr IN sbelnr
AND gjahr IN sgjahr.
PUT bkpf.
ENDSELECT.
ENDFORM. "PUT_BKPF
Regards,
Sesh -
How to inactivate the 'Complex Search' button when using Logical Database
Hy experts
I m using Logical Database for a select and you know that for an GET event by default in selection screen it appears some selection fields for every GET event..I manage to hide the ones that don't interest me but I have a little problem: I have a button that's called 'Complex Search' and I don't know how to get rid of this button..
Here is some code:
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name CP '%BT02010_BLOCK_1000'.
screen-input = '0'.
screen-active = 0.
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
IF screen-name CP 'QL_REFIL'.
screen-input = '0'.
screen-active = 0.
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
I do this for every screen-name in the program that doesn t interes me..but it seams that even if I comment all the button with 'Complex Search' remains..I mention that is a disperate solution to inactivate every screen element but I could not do other way..My bigest pb is the 'Complex Seach' button..can anyone help me?? pls.. <REMOVED BY MODERATOR> ..thx..
Edited by: Alvaro Tejada Galindo on Feb 12, 2008 12:45 PMThank you Thomas,
I need some more from you...
If I have 8 tables for 8 columns, then how do i proceed?
Also could u tell me some query optimization techniques while working with intermedia text.
Thanks you once again,
waiting...
Khaleel Hi Khaleel,
I think this depends on your data model (relationship between the tables) and how you like to search later.
The optimization begins also with the create index statement (memory clause and storage clause).
If you like me to help I need more information about your hardware, os, datamodel and what kind of searches you will have later.
Cheers,
Thomas -
Splitting "pernrs" in program that is using logical database
Hello All,
I have a HR program that uploads data from file into infotype 377. Everything works fine except if the file has like 20000 records the program is taking for ever to run! I am using logical database (GET PERNR) in the program. I populate my pnpindex with all pernrs from file for processing. Is there any way I can aplit pernrs (like 5000 each processing) so that I can speed up the process i.e, I want to process 5000 pernrs at a time. I tried to find solution here but no luck and I am out of ideas. If you happen to have any ideas on this, please let me know.
Thanks.
MithunU need to code your program to run parallely ...
look at the sample code at ..
https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/interface%252bprogram%252bfor%252bmaterial%252bdata -
Duplicated entries in BSIK using Logical Database KDF
Hello everyone,
I'm using Logical Database KDF to retrieve some data, but i'm getting duplicated entries when getting to BSIK. Can anyone point out in my program what could i be doing wrong?
If i put a breakpoint in the line immediatly below GET bsik, i can watch several entries being duplicated.
Thanks in advance to everyone,
Nuno
START-OF-SELECTION.
GET lfa1.
MOVE-CORRESPONDING lfa1 TO t_alv.
GET lfb1.
GET bsik.
MOVE-CORRESPONDING bsik TO t_alv.
CLEAR bkpf.
SELECT SINGLE * FROM bkpf CLIENT SPECIFIED
WHERE mandt = syst-mandt
AND bukrs = bsik-bukrs
AND belnr = bsik-belnr
AND gjahr = bsik-gjahr.
t_alv-xblnr = bkpf-xblnr.
SELECT * FROM bset CLIENT SPECIFIED
WHERE mandt = syst-mandt
AND bukrs = bsik-bukrs
AND belnr = bsik-belnr
AND gjahr = bsik-gjahr.
t_alv-mwskz = bset-mwskz.
t_alv-hwbas = bset-hwbas.
t_alv-hwste = bset-hwste.
t_alv-dmbtr = bset-hwbas + bset-hwste.
t_alv-stceg = lfa1-stceg.
APPEND t_alv.
ENDSELECT.Hello Nuno Centeio ,
According to the table definition there can be more than one entries for a vendor based on the table key definition.
Thanks,
Greetson
Maybe you are looking for
-
Loading .jar files in oracle
I read the following lines in the site http://download.oracle.com/docs/cd/B10501_01/java.920/a96659/02_load.htm Resolving Class Dependencies Many Java classes contain references to other classes, which is the essence of reusing code. A conventional J
-
Java program giving unknownhost exception
Hi Friends, I have a java program in a package which is compiled and put in a war file.But after uploading the war file in weblogic server and try to run the servlet in browser window, I get following error.. 2007-09-26 16:33:42,353 [ExecuteThread: '
-
Hi there! I'm new to web services. I'm using NetBeans and running under Windows to develop this program. I've created an application that call 2 web services. the output from webserviceA will be an input to webserviceB. in webserviceA I used a socket
-
C3 so-called live community feed / update
Hi, I have problem with the communities widget at home screen. All the time, it will only display "What's on your mind?" with my own profile picture. It never receive any updates. I have subscribe to unlimited data plan. I also have set the below:
-
Everything was going right with filming untill we filled up our 8g compact flash with footage. We tried to download the footage to my laptop and delete the footage of the card. After doing this, however it still didn't allow us to film and said that