Using Logical Databases and the Tables or Nodes Statement
I want to start using Logical Databases whenever possible, but it seems that I need to use the Tables or Nodes statement for the Get statement to work. Is there anyway to avoid Tables/Nodes statement since they are obsolete (and still use LDBs)?
Message was edited by: Jason DeLuca
Hi Jason,
1) table statement is obligatory:
-> look at abap-docu to GET:
node is a node in the logical database that is assigned to the report (type 1 program) in the program attributes. <b>You must declare the node in the report using the NODES statement (or the TABLES statement, if the node is of the type "table").</b>
2) some ldb-selections from the selection screen
depends on the table-statement too, i remember...
regards Andreas
Similar Messages
-
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 -
Infoset query logical database and transparent table
Hi!
We have an infoset with the data source logical database=PNP.
We get some fields from the infotype 0768, P0768-PERNR, P0768-BEGDA, etc.
Now we need add another table to make a join within infotype 0768 and table T5F99SE.
For instance, in infotype 0768 I have one record with the fields PERNR and BEGDA and in the T5F99SE I have 3 records related to the unique record of infotype 0768, the fields of the table are PERNR, BEGDA, ACTDT and ADDAT .
The fields values in the example can be:
Infotype 0768: PERNR=00101800, BEGDA=20110401, DICOT=20, BACHE=1200
Table T5F99SE: record 1 PERNR=00101800, BEGDA=20110401, ACTDT=20110401, ADDAT=PB E
record 2 PERNR=00101800, BEGDA=20110101, ACTDT=20110405, ADDAT=PC E01
record 3 PERNR=00101800, BEGDA=20110401, ACTDT=20110409, ADDAT=PA E
The result we want get with infoset query is
PERNR BEGDA DICOT BACHE ADDAT
00101800 20110101 20 1200 PB E
00101800 20110101 20 1200 PC E01
00101800 20110101 20 1200 PA E
I would like to get the fields of the infotype and some fields of the table T5F99SE.
Is possible do this action with ABAP modifying an infoset that already exists adding the fields of the transparent table?
What should I do?
Kind regards,
Julian.My guess is that it would not be possible to include a transparent table into the LDBs PNP and PNPCE. Would need input from a technical expert there.
However, instead of using the LDB, why don't you explore just using a direct table join? You may need to join PA0000, PA0001, PA0002 along with PA0768 and your other tables. An infoset can then be created on this table join.
To go to the mode where you can create the table join, in your infoset transactions, choose 'Table join' instead of 'LDB'. -
Using a database as the table model for a large JTable
I have a swing application with a Jxtable (Jtable with extra features from swingx project) that displays the details of music files, album, artist ... . The data model is held in memory and unfortunately because there are 70 different columns and users a re tyrying to load their complete music collection (e.g 100,000 files) I am having memory issues.
I am now considering backing the data with a database and possibly using Hibernate. Do you think this is feasible or would it run too slowly, has anybody done this ?
The first issue is whether rows can be retrieved quickly enough as a user scrolls down a table , I thinking that if I use hibernate in conjunction with a database Iit caching will ome into play but will that solve the issue.
Also colums are sortable, so if a user clicked on a column it would somehow need access to every row in order to sort correctly.
Although the table column can have seventy columns by default only ten are shown, however the other sixty are still stored in the tables data model using valuable memory so I think I could grab some memory back here, but then if they decide to show the other 60 columns it could blow memory in one go.
I also considered using some kind of paging mechanism so that even if there were 100,000 rows loaded , only a 1000 were loaded into a table in one go, and you get to the bottom of the table the next 1000 are loaded, is this feasible I cannot work out how to even make a start on this.
thanks for any adviceA few things to check:
1. make sure your AS GroupRoleID class has RemoteClass
metadata like so:
[RemoteClass(alias="qa.data.inMemory.PlayerID")]
public class PlayerID extends Object {
2. make sure your AS GroupRoleID class is used in your mxml
file by declaring at least one variable of that type (even if you
don't instantiate or use it)
3. make sure your AS GroupRoleID class has a toString()
method that includes the roleId and groupId values to ensure each
instance returns a unique value.
When records appear to have matching identities this can
happen. Sometimes it can be because of an incorrect identity in
your destination but also if the object's toString() always returns
the same value (default being [object Type]).
I'm writing up a bug to look for a better way of ensuring
this uniqueness in the future. -
Why and how we use Logical Database?
Can anybody explain with example why and how we use logical database?
Regards,
RajanHello,
SAP comes loaded with all the extras. Among the extras that are most helpful to IT managers are all the access routines needed to pull any business object that managers can think of out of SAP databases. However, SAP has not thought of everything where your particular applications are concerned. SAP organizes its standard database tables to service business units based on conventional business applications. Itu2019s likely your business requires something new, perhaps even something exotic. In that case, you will need to create a new database, using information from different places. Basically, you need a logical database. You need to create a virtual business data object repository consisting of a new kind of record or table that suits your purposes. In addition, the repository should be composed of information that is actually stored in a number of different locations, none of them necessarily logically associated with one another. Letu2019s take a closer look at creating logical databases.
A case for a logical database
Suppose my company manufactures widgets of the most obscure variety, and they are components of other widgets. I sell my widgets as raw material for the more sophisticated widgets built by others, but in some cases I actually partner with other manufacturers in creating yet another class of widget. Now, in my world, I consequently have customers who are also partners. I sell to them and I partner with them in manufacturing and distribution. Also, I need an application that uses both of these dual-use relationships.
Essentially, I have a customer database and a partner database. Neither contains records that are structured to contain the identifying particulars of the other. Thus, I need a hybrid database that gives me tables detailing these hybrid relationships. What can I do? I can go the long way around and write a new database, pulling information from both and creating new objects with a customized program that I write by hand. However, this process is cumbersome and contains maintenance issues. On the other hand, I can use SAPu2019s logical database facility, create my logical database in a couple of minutes, and have no maintenance issues at all.
Logical database structures
There are three defining entities in an SAP logical database. You must be clear on all three in order to create and use one.
u2022 Table structure: Your logical database includes data from specified tables in SAP. There is a hierarchy among these tables defined by their foreign keys (all known to SAP), and you are going to define a customized relationship between select tables. This structure is unique and must be defined and saved.
u2022 Data selection: You may not want or need every item in the referenced tables that contributes to your customized database. There is a selection screen that permits you to pick and choose.
u2022 Database access programming: Once youu2019ve defined your logical database, SAP will generate the access subroutines needed to pull the data in the way you want it pulled.
Creating your own logical database
ABAP/4 (Advanced Business Application Programming language, version 4) is the language created by SAP for implementation and customization of its R/3 system. ABAP/4 comes loaded with many predefined logical databases that can construct and table just about any conventional business objects you might need in any canned SAP application. However, you can also create your own logical databases to construct any custom objects you care to define, as your application requires in ABAP/4. Hereu2019s a step-by-step guide:
1. Call up transaction SLDB (or transaction SE36). The path you want is Tools | ABAP Workbench | Development | Programming Environment | Logical Databases. This screen is called Logical Database Builder.
2. Enter an appropriate name in the logical database name field. You have three options on this screen: Create, Display, and Change. Choose Create.
3. Youu2019ll be prompted for a short text description of your new logical database. Enter one. Youu2019ll then be prompted to specify a development class.
4. Now comes the fun part! You must specify a root node, or a parent table, as the basis of your logical database structure. You can now place subsequent tables under the root table as needed to assemble the data object you want. You can access this tree from this point forward, to add additional tables, by selecting that root node and following the path Edit | Node | Create. Once youu2019ve saved the structure you define in this step, the system will generate the programming necessary to access your logical database. The best part is you donu2019t have to write a single line of code.
Regards
Arindam -
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 -
Hello.
I am having much difficulty using any software drum program. I am trying to use EZ Drummer and the drum programs in Logic, with limited success. I was using them, and they were working, but this is no longer the case. Please help me navigate my way through these issues, if possible.
Thanks.
EricAha! I have sorted it.
For those with similar problems, the solution is this:
Macintosh HD > Library > Audio > MIDI Drivers
Then delete DigiDioMidiDriver.plugin -
Regarding Logical database and select statement..
Hi
Experts.
i would like to know the diff b/w logical data base & select statement while using report.
wt is the use of logical databases in R/3. is there any advantage used in the reports.
Thanks & Regards..
Spandana.Dear Spandana,
Go through the below description of LDB. I hope you wil get a fair amount of idea.
SAP comes loaded with all the extras. Among the extras that are most helpful to IT managers are all the access routines needed to pull any business object that managers can think of out of SAP databases. However, SAP has not thought of everything where your particular applications are concerned. SAP organizes its standard database tables to service business units based on conventional business applications. Itu2019s likely your business requires something new, perhaps even something exotic. In that case, you will need to create a new database, using information from different places. Basically, you need a logical database. You need to create a virtual business data object repository consisting of a new kind of record or table that suits your purposes. In addition, the repository should be composed of information that is actually stored in a number of different locations, none of them necessarily logically associated with one another. Letu2019s take a closer look at creating logical databases.
A case for a logical database
Suppose my company manufactures widgets of the most obscure variety, and they are components of other widgets. I sell my widgets as raw material for the more sophisticated widgets built by others, but in some cases I actually partner with other manufacturers in creating yet another class of widget. Now, in my world, I consequently have customers who are also partners. I sell to them and I partner with them in manufacturing and distribution. Also, I need an application that uses both of these dual-use relationships.
Essentially, I have a customer database and a partner database. Neither contains records that are structured to contain the identifying particulars of the other. Thus, I need a hybrid database that gives me tables detailing these hybrid relationships. What can I do? I can go the long way around and write a new database, pulling information from both and creating new objects with a customized program that I write by hand. However, this process is cumbersome and contains maintenance issues. On the other hand, I can use SAPu2019s logical database facility, create my logical database in a couple of minutes, and have no maintenance issues at all.
Logical database structures
There are three defining entities in an SAP logical database. You must be clear on all three in order to create and use one.
u2022 Table structure: Your logical database includes data from specified tables in SAP. There is a hierarchy among these tables defined by their foreign keys (all known to SAP), and you are going to define a customized relationship between select tables. This structure is unique and must be defined and saved.
u2022 Data selection: You may not want or need every item in the referenced tables that contributes to your customized database. There is a selection screen that permits you to pick and choose.
u2022 Database access programming: Once youu2019ve defined your logical database, SAP will generate the access subroutines needed to pull the data in the way you want it pulled.
Creating your own logical database
ABAP/4 (Advanced Business Application Programming language, version 4) is the language created by SAP for implementation and customization of its R/3 system. ABAP/4 comes loaded with many predefined logical databases that can construct and table just about any conventional business objects you might need in any canned SAP application. However, you can also create your own logical databases to construct any custom objects you care to define, as your application requires in ABAP/4. Hereu2019s a step-by-step guide:
1. Call up transaction SLDB (or transaction SE36). The path you want is Tools | ABAP Workbench | Development | Programming Environment | Logical Databases. This screen is called Logical Database Builder.
2. Enter an appropriate name in the logical database name field. You have three options on this screen: Create, Display, and Change. Choose Create.
3. Youu2019ll be prompted for a short text description of your new logical database. Enter one. Youu2019ll then be prompted to specify a development class.
4. Now comes the fun part! You must specify a root node, or a parent table, as the basis of your logical database structure. You can now place subsequent tables under the root table as needed to assemble the data object you want. You can access this tree from this point forward, to add additional tables, by selecting that root node and following the path Edit | Node | Create. Once youu2019ve saved the structure you define in this step, the system will generate the programming necessary to access your logical database. The best part is you donu2019t have to write a single line of code.
Watch out!
The use of very large tables will degrade the performance of a logical database, so be aware of that trade-off. Remember that some tables in SAP are very complex, so they will be problematic in any user-defined logical database.
Declaring a logical database
Hereu2019s another surprising feature of logical databases: You do not assign them in your ABAP/4 Code. Instead, the system requires that you specify logical databases as attributes. So when you are creating a report, have your logical database identifier (the name you gave it) on hand when you are defining its attributes on the Program Attributes screen. The Attributes section of the screen (the lower half) will include a Logical database field, where you can declare your logical database.
Logical databases for increasing efficiency
Why else would you want to create a logical database? Consider that the logical databases already available to you begin with a root node and proceed downward from there. If the data object you wish to construct consists of items that are all below the root node, you can use an existing logical database program to extract the data, then trim away what you donu2019t want using SELECT statementsu2014or you can increase the speed of the logical database program considerably by redefining the logical database for your object and starting with a table down in the chain. Either way, youu2019ll eliminate a great deal of overhead.
Regards
Arindam -
Logical Database and Logical Thing
Hi,
i want to access KONV which is cluster table and the field is KWERT.
The thing is that i want to access it by taking customers from KNVV and giving it to VBRK (SALES Table). Now in VBRK i want to have a selection on FKDAT to get a list of Customers stored in the field called KUNAG.
on VBRK-KUNAG basis i want to access the table KONV-KWERT.
If i am doing queries then the System stops responding cuz it has got alot of overhead. So i tried to use Logical Database called VFV.
If this is the best solution means using LDB then how to use it, can anyone help me with this. I tried it by Function module but it is showing all data without considering selection criteria.
If anyone can help me then plz do answer or refer me to any web site so that i can figure this thing out. If anyione has got a good book on that then plz feel free to mail me.
Thanks,
Muhammad Usman Malik
ABAP Consultant
Siemens
[email protected]
+92-333-2700972Thanks Shibba that was very helpful, i applied that but the system overhead was so much.
can u help me with Dynamic selection code.
I used FREE_SELECTION_INIT, FREE_SELECTION_DIALOG and then FREE_SELECTIONS_RANGE_2_WHERE to get ther Selections in one table.
if u want me to send u the code then i can do that cuz i am getting so much mad that this work is not done yet.
The Scenario here is that we want to take BILLED Customers and VKORG as Industrial Billing Customer and then taking VBRK and giving all these Customers and then taking selection on FKDAT range.
Now after that the data should be collected from KONV-KWERT and i want to perform some calculation over it. I am using VFV (Logical Database) to perform this thing because i know that it would be very fast then applying my own queries.
If you can mail me any book on Logical Database and Dynamic selection then it will be very Helpful.
Thanks once again for being such helpful.
Muhammad Usman Malik
SAP Consultant
[email protected]
+92-333-2700972 -
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 -
Problem in Using Logical Database PNP
Hi Guru's,
I am using PNP logical database and rp_provide_from_last
macros statements to fetch data from PA Tables.
When i am doing extended syntax check it is showing more
than 60 error's in ECC 6.0 for below statements:
1) Tables: Pernr
2) Infotypes: 0001,0002. and
3) RP_PROVIDE_FROM_LAST statements.
Could any please provide soloution how to clear all these.
Its very urgent.
Thanks in advance.
Regards,
SunilHi Ramesh,
These are the type of error messages in exetnded syntax check:
The current ABAP command is obsolete
In the OO context either an INTO or an ASSIGNING specification or the addition
"TRANSPORTING NO FIELDS" must be used . be used. be used. be used. be used. be
used.
Internal Message Code: READ 018
(The message cannot be hidden using pseudo-comment "#EC .., bzw. durch SET
EXTENDED CHECK OFF/ON)
Program: Z_INT_I_PY_BONUSPAYMENT Include: Z_PY_F01_BONUSPAYMENT Row: 279
The current ABAP command is obsolete
At "LOOP AT itab" one of the additions "INTO", "ASSIGNING" or "TRANSPORTING NO
FIELDS" is required in the OO context . .
Internal Message Code: LOOP 012
(The message cannot be hidden using pseudo-comment "#EC .., bzw. durch SET
EXTENDED CHECK OFF/ON)
Program: Z_INT_I_PY_BONUSPAYMENT Include: Z_PY_F01_BONUSPAYMENT Row: 282
The current ABAP command is obsolete
In the OO context either an INTO or an ASSIGNING specification or the addition
"TRANSPORTING NO FIELDS" must be used . be used. be used. be used. be used. be
used.
Internal Message Code: READ 018
(The message cannot be hidden using pseudo-comment "#EC .., bzw. durch SET
EXTENDED CHECK OFF/ON)
Program: Z_INT_I_PY_BONUSPAYMENT Include: Z_PY_F01_BONUSPAYMENT Row: 282
The current ABAP command is obsolete
At "LOOP AT itab" one of the additions "INTO", "ASSIGNING" or "TRANSPORTING NO
FIELDS" is required in the OO context . .
Internal Message Code: LOOP 012
(The message cannot be hidden using pseudo-comment "#EC .., bzw. durch SET
EXTENDED CHECK OFF/ON)
Please suggest me some way to clear these if it is possible. -
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. -
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 -
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
Maybe you are looking for
-
CCbpm: Bpe(new)
Hello everyone, Please respon to my following questions: 1: what is Cross component BPM? why u we use Business process engine? 2: wht is collaborative process, collaboration agreement/collaboration knowledge? 3: what is soap and what is the importanc
-
Blank line in string value in insert statement causing problems
I am generating an sql statement (insert) from an xml document using xsl transformation that is later run in an sqlplus session. The issue I am coming across is that one of the tags contains free-form text that can be any number of lines. Most string
-
Help me please
-
CS6 Installation Failed due to missing files.
I m having problem with the Adobe CS6 Design & Web Premium installer now. It keeps saying missing files. I was installing my CS6 from DVD yesterday on my new Macbook Air. then the whole laptop hanged for a good 3 hours. So i did a cold boot. After re
-
Resource search, only 1 resource displayed
When i enter a new role in cProjects with qualifications and i use the resource finder (via the: find resource button) i only get 1 result... while i know that there are at least 20 people with availability and the required qualification. What can i