Use SAP defined methods instead of Logical Database(LDB)

Hi All,
I gonethrough some documents related to new HR ABAP programing without using logical database.  we can replace the logical databased with SAP defined methods for all the infotypes.  Appreciate if anyone let me know how do this.
Thanks in advance.
Thanks,
-suresh

Yes.. we can use the Infotype reader class.. you can use the following sample code & go from there.. fyi I wrote this on a 47 system..
*& Report  ZP_INF_CL                                                   *
*&  read an infotype using ABAP Objects                                *
report  zp_inf_cl line-size 1000.
infotypes: 0001,0008.
parameters: p_infty type infty,
            p_pernr type pernr_d.
constants: c_a type tclas value 'A',
           c_true value 'X'.
data: w_infotype_reader type ref to if_hrpa_read_infotype,
      t_inftab type hrpad_prelp_tab,
      w_missing_auth type boole_d,
      w_data_exists  type boole_d,
      rec_infty like line of t_inftab.
* init infotype reader
call method cl_hrpa_read_infotype=>get_instance
  importing
    infotype_reader = w_infotype_reader.
call method w_infotype_reader->read
  exporting
    tclas         = c_a
    pernr         = p_pernr
    infty         = p_infty
    begda         = sy-datum
    endda         = sy-datum
    no_auth_check = c_true
  importing
    infotype_tab  = t_inftab
    data_exists   = w_data_exists
    missing_auth  = w_missing_auth.
loop at t_inftab into rec_infty.
  call method cl_hr_pnnnn_type_cast=>prelp_to_pnnnn
    exporting
      prelp = rec_infty
    importing
      pnnnn = p0001.
  append p0001.
endloop.
loop at p0001.
  write:/ p0001-orgeh.
endloop.
~Suresh

Similar Messages

  • SFLIGHT is NOT defined for the current logical database.

    I have just started learning ABAP and bought an ABAP Objects book by Horst Keller. I have installed 4.6d mini sap and SAP GUI 6.4 on win XP Prof. I executed S_FLIGHT_MODEL_DATA_GENERATOR to load DB tables.
    (1). When I tried to check a sample program, I get an error message SFLIGHT is not defined for the current logical database.
    Here is the partial code:
    REPORT zbcb01f1 .
    TABLES: sflight, sbook.
    DATA: BEGIN OF sr OCCURS 100,
          carrid LIKE sbook-carrid,
          connid LIKE sbook-connid,
          fldate LIKE sbook-fldate,
          bookid LIKE sbook-bookid,
          order_date LIKE sbook-order_date,
          loccuram LIKE sbook-loccuram,
          END OF sr.
    GET sflight.   <---- Error is pointed here
    (2). I am also not getting Graphical Screen Painter when selecting Layout for a screen. Instead, I am getting alphanumeric editor.
    Someone please help me.  
    Raizak.

    Hi Raizak,
    the easiest way is to go to service.sap.com/notes and enter the note number. For this time I've copied the 2 notes below.
    Best regards,
    Christian
    Symptom
    The Graphical Layout Editor of the Screen Painter either does not start or terminates.Error message 37527 is displayed in the session in which the call was made (Graphical Layout Editor not available.
    Additional key words
    () EUNOTE, EUSCREENPAINTER, 37 527
    Cause and prerequisites
    This note comprises all the common causes for error message 37527 and provides you with information on how to systematically trouble shoot the problem.
    1. Windows32 or UNIX/motif?
    As of Release 4.6B there is only the program version for 32bit Windows (NT, 95, 98, 2000 ff.).Up to Release 4.6A there was also a version for UNIX/Motif.All of the more current notes (with the exception of Note 45490) refer only to the Windows version.
    2. Termination at the start or during use?
    The following diagnostic steps refer to the causes of the errors which prevent the Graphical Layout Editor from starting. However, there are also known error causes, which result in the program terminating when the application is being used and which also produce the 37527 error message. This affects -
    Rel.4.6C/D: Termination when attempting to read texts in the logon language -> Note 375494
    Crash after transferring program and dictionary fields. Termination after transferring program and dictionary fields -> Note 189245
    Release 3.1I: Termination after inputting field text -> Note 113318
    3. Is the SAPGUI installation correct?
    The Graphical Layout Editor is automatically installed during the standard installation of the SAPGUI.If you chose a non-standard installation, then you should have explicitely selected its installation (component "Development Tools - Graphical Screen Painter").
    The program executable is called gneux.exe.During the SAPGUI installation it is placed in the same directory as the SAPGUI programms (for example, front.exe) (usually C:\Program Files\SAPpc\sapgui). The following belong to the program:
    - An additonal executable gnetx.exe (RFC starter program)
    - the DLL eumfcdll.dll
    - various eusp* data files (that is, the names all begin with eusp.)
    You can check the completeness of the program installation by starting the program gneux.exe locally in the SAPGUI directory (for example, by double-clicking on the program name in the Explorer window).The Layout Editor is displayed with German texts and an empty drawing area for the pseudo screen EUSPDYND 0000.
    If the installation is not complete, an error dialog box provides information regarding the cause of the error, for example, sometimes the DLL eumfcdll.dll is missing after reinstalling the SAPGUI. For example, the eumfcdll.dll DLL was sometimes missing after the SAPGUI was reinstalled.
    4. System link defined and okay?
    The Graphical Layout Editor is a separate program which is started by the Screen Painter Transaction (SE51) on the Frontend machine.
    Up to Release 3.0F, the programs communicated with each other via the graphics log of the SAPGUIs (gmux).The definition of the environment variable SAPGRAPH may be the cause for the program not being being found where it is.
    As of Release 3.1 G, the programs use a separate RFC link which is set up in addition to the SAPGUI's RFC link.Missing or incorrect definitions of the RFC destination EU_SCRP_WN32 or problems with the creation of the RFC link are the most frequent causes for error message 37527 being displayed.Below you can find the correct settings for the RFC destination EU_SCRP_WN32 (under "Solution").Note 101971 lists all the possible causes for problems with the RFC link set-up. Attention:The Graphical Layout Editor may not be operated through a firewall (for example between the SAP and the customer system) because this does not allow an additional RFC connection in addition to the SAPGUI.
    Solution
    ad 1 UNIX/Motif
    Note 45490 describes possible errors resulting from an incorrect program installation under UNIX/Motif (up to Release 4.6A).
    ad 2 Termination when using
    The above-mentioned notes may contain options for solving individual problems.However, you usually have to replace the program with an corrected version.You can do this either by downloading a patch from sapservX or by installing a more current SAPGUI.The patch is mentioned in the respective note.
    ad 3 Installation
    You either need to reinstall the SAPGUI or manually copy the missing file into the SAPGUI directory.In both cases you should make sure beforehand that a Graphical Layout Editor is no longer running.To do this you can either remove all processes gneux.exe from the process list by using a tool such as Task Manager (on WindowsNT) or exit the Graphical Layout Editor from the Screen Painter Transaction menu via Edit -> Cancel Graphical Screen Painter). Attention:For each session or system an individial Layout Editor process may exist so that, if need be, several processes should be cancelled.
    ad 4 System link
    Up to Release 3.0F:you can either delete the environment variable SAPGRAPH or copy all the files of the Graphical Layout Editor into the directory which is specified by SAPGRAPH.
    As of Release 3.1G:you can use Transaction SM59 to check the RFC destination EU_SCRP_WN32 (expand the TCP/IP connections, select destination EU_SCRP_WN32).If the destination is missing, then you should create it with the following settings:
    - Connection type "T" (start of an external program via ...)
    - Activation type "Start"
    - Start on "Front-end workstation"
    - Front-end workstation program "gnetx.exe" (caution! NOT gneux.exe)
    - Description (optional) "Graph. Screen Painter (Windows32)
      Start Program gneux.exe using the gnetx.exe starter program."
    If you want to start the program from a different directory than the SAPGUI standard directory, then replace the default value under Frontend work station by the complete path name for program gnetx.exe.Transaction SM59 also allows you to check the RFC connection via the pushbutton "Test connection").In this case the system attempts to localize and start the program gnetx.exe.If there are errors, a message is displayed regarding the possible causes (for example, gateway problem, timeout problem or the like).Note 101971 provides a detailed explanation of the problems involved with an RFC connection set-up.As the Graphical Screen Painter requires a functional RFC connection as of Release 3.1G, contact the System Administrator or create an message on the topic Middleware (BC-MID-RFC) if you encounter RFC problems.
    If the program gnetx.exe can be found and started, the banner dialog box with logo, release data and version number is displayed briefly.As the Layout Editor itself is not started, the error cause must be in the installation of the Layout Editor program gneux.exe if the connection test was successful.
    Release 4.5A to 4.6B: Use with Releases <3.1G>.
    The Graphical Layout Editor is downward-compatible as regards the system connection, that is, an RFC-based Layout Editor for example from Release 4.6C can also be used on a non-RFC-based Screen Painter, for example of Release 3.0F.However, the releases mentioned above have a program error which causes a crash due to memory violation in the start phase of the program.Note 197328 describes the solution by installation of the corrected program version.
    Important: Trace file dev_euspNNN!
    If none of the diagnosis steps leads to the cause of the error and to the solution of the problem via the corresponding note, then you should add the contents of the trace files dev_euspNNN (NNN = process number) to the message for SAP, if possible.You can find this file in the current directory of the SAP System, for example under Windows NT in C:\Winnt\Profiles\<user>\SAPworkdir.If several such trace files can be found there, make sure that you use the file which matches the termination time with respect to date and time of creation.In most cases the ERROR message in the last lines of this trace file provides an important note on the cause of the error.
    Source code corrections
    Symptom
    The graphic layout editor of the Screen Painter cannot be started (RFC version).
    Other terms
    () EUNOTE, EUSCREENPAINTER
    Reason and Prerequisites
    This is generally caused by the fact that the RFC connection between the frontend graphics layout editor and the calling screen painter program at the backend cannot be set up.
    Possibility 1: Route permission denied
    In the trace file dev_eusp<Process Id> of the graphics layout editor you find the entry "ERROR in RFCMgr_accept: not accepted", and in the RFC trace file dev_rfc.trc you have an entry of the form "ERROR route permission denied (<Front-Id> to <BackId>,<Service>)".
    If there is a firewall between frontend computer and application
    server, you need to decide whether the port for the RFC of the graphical layout editor can be released here (see Solution 1 below).
    In case no firewall exists between the frontend computer and the application server, in its route permission table, the SAProuter contains either no entry for the frontend computer, on which the graphics layout editor is started, or the entry says that the link is saved by a password.Since the connection is denied, the graphics editor processes exits again, and the screen painter switches to the alphanumeric layout editor.
    Possibility 2: Service 'sapgw<ServiceId>' unknown
    In the trace file dev_eusp<ProzessId> of the graphics layout editor you have the entry "ERROR in RFCMgr_accept: not accepted", and in the RFC trace file dev_rfc.trc you have an entry of the form "ERROR service 'sapgw<ServiceId>' unknown".
    The service sapgw<ServiceId> (for example, sapgw00) is not known on one of the computers participating in the RFC communication because the corresponding entry is missing in its service file. The affected computer can be the frontend computer or the gateway computer.
    Possibility 3: The system parameter gw/cpic_timeout value is too low
    This system parameter determines how many seconds the gateway is waiting for the RFC connection to be set up.In case of a high network load, the default value of 20 seconds is too small with the result that the connection cannot be created on time.Here the graphics layout editor process also exits with the trace file entry "ERROR in RFCMgr_accept: not accepted".
    Possibility 4: System parameter abap/no_sapgui_rfc set
    The profile parameter abap/no_sapgui_rfc of the system is set (that is, it has a value not equal to space or 0).This prevents the program of the graphics layout editor from being started with RFC at the frontend.
    Possibility 5: Unnecessary authorization check
    The error message "No RFC authorization for user xxxxxx" is generated although the check of the RFC authorization was deactivated by profile parameter auth/rfc_authority_check (value = space or 0). The problem is caused by a program error, that ignores the value of the profile parameter let during the call of the RFC authorization check (see Note 93254). This error can occur as of Release 4.5.
    Solution
    ad 1) If a Firewall is installed between frontend computer and the application server, you need to decide whether the port for the RFC link of the graphical layout editor shall be released in the firewall. This is port 33nn, where nn is the 2-digit system number of the SAP application server. As of Release 3.1G, the graphical layout editor needs an RFC link for communication with the application server in addition to the already existing linkof the SAP GUIs. Such a second link is not allowed by the firewall in general because it would contradict the security concept (password protection, logging of the connection).
    If no firewall exists, you should check whether the frontend computer can be added to the route permission table or whether the password option can be removed from out of the available entry.
    For details refer to chapter 4.4 of the attached Note 30289.
    ad 2) Include service sapgw<ServiceId> in the service file.
    Refer to Note 52959 for details.
    ad 3) Increase value for system parameter gw/cpic_timeout. 60 seconds should be sufficent as a timeout limit.
    ad 4) Set the system parameter abap/no_sapgui_rfc to space or 0
    Start the application server so that the new parameter value comes into effect.
    ad 5) Import the Support Package specified in the attachment for the release in question or implement the advance correction in the source code as described in the attached correction instructions.
    As a workaround, assign RFC authorizations as described in Note 93254.

  • Get mapl gives ' mapl not defined in the current logical database'.

    Hello,
    i am going through the report RCPDRK00, i found a statement get plkod , get mapl .
    When i try to run this statement in my test program it says ' not defined in the curent logical database' .
    How to link with  logical database.
    regards,
    kevin.

    GET statements will provide your program with database records based on the code for the logical database. The program in this case is SAPDBPNM.
    Each GET will be supplied with data by the corresponding PUT subroutine.
    Read the help about the logical databases. This is considered obsolete technology, but still, they can be very useful.
    http://help.sap.com/saphelp_nw70ehp2/helpdata/en/9f/db9b5e35c111d1829f0000e829fbfe/frameset.htm

  • "PERNR" is not defined for the current logical database.

    Hi Experts,
    I have developed a program for HR salary variance but when i execute i getting error in the line " get PERNR"
    the "PERNR" is not defined for the current logical database. so plz suggest me to avoid this issue.
    Thanks,
    Rajesh

    the codes are has below,
    *& Report  ZHRSAL_COMP
    REPORT  ZHRSAL_COMP.
    tables: pernr,
            t512t.                      "Wage type texts
    infotypes: 0001. "Organizational Assignment
    *Tables data containing directory to PCL2 payroll results file.
    data: begin of rgdir occurs 100.
            include structure pc261.
    data: end of rgdir.
    data: result type pay99_result.
    data: rt_header type line of hrpay99_rt.
    data: country like t001p-molga,
          number  like pc261-seqnr. "Number of last payroll result
    types :begin of struc_p0001,
           pernr type  p0001-pernr,
           ename type  p0001-ename,
           werks type  p0001-werks,
           btrtl type  p0001-btrtl,
    end of struc_p0001.
    data : gtab_p0001 type table of struc_p0001,
           gwa_p0001 type struc_p0001.
    types : begin of struc_payroll,
            text(10) type c,
            date     type dats,
            month(2) type c,
            year(4)  type c,
            abkrs(2) type c,
            end of struc_payroll.
    data : gtab_payroll type table of struc_payroll,
           gwa_payroll type struc_payroll.
    types : begin of struc_result,
           lgart type lgart,
           lgtxt type t512t-lgtxt,
           betrg type betrg,
            end of struc_result.
    data : gtab_result type table of struc_result,
          gwa_result type struc_result.
    get pernr.
      rp_provide_from_last p0001 space pn-begda pn-endda.
      call function 'CU_READ_RGDIR'
        exporting
          pernr          = p0001-pernr
        importing
          molga           = country
        tables
          in_rgdir        = rgdir
        exceptions
          no_record_found = 1
          others          = 2.
      if sy-subrc = 1.
        write: / 'No records found for '(001), pernr-pernr.
      endif.
      call function 'CD_READ_LAST'
        exporting
          begin_date      = pn-begda
          end_date        = SY-DATUM
        importing
          out_seqnr       = number
        tables
          rgdir           = rgdir
        exceptions
          no_record_found = 1
          others          = 2.
      if sy-subrc = 1.
        write: / 'No payroll result found for'(002), pn-paper.
      else.
        call function 'PYXX_READ_PAYROLL_RESULT'
             exporting
                  clusterid                    = 'RX'
                  employeenumber               = p0001-pernr
                  sequencenumber               = number
            READ_ONLY_BUFFER             = ' '
            READ_ONLY_INTERNATIONAL      = ' '
            CHECK_READ_AUTHORITY         = 'X'
       IMPORTING
            VERSION_NUMBER_PAYVN         =
            VERSION_NUMBER_PCL2          =
             changing
                  payroll_result               = result
             exceptions
                  illegal_isocode_or_clusterid = 1
                  error_generating_import      = 2
                  import_mismatch_error        = 3
                  subpool_dir_full             = 4
                  no_read_authority            = 5
                  no_record_found = 6
                  versions_do_not_match        = 7
                  others                   = 8.
        if sy-subrc = 0.
          perform print_rx.
        else.
          write: / 'Result could not be read (003)'.
        endif.
      endif.
          FORM PRINT_RX                                        *
          Print Payroll Result                                 *
    form print_rx.
      format intensified on.
      write: / p0001-pernr,
               p0001-ename(15),
               p0001-werks,
               p0001-btrtl.
      format intensified off.
      skip 1.
      move p0001-pernr to gwa_p0001-pernr.
      move p0001-ename(15) to gwa_p0001-ename.
      move p0001-werks to gwa_p0001-werks.
      move p0001-btrtl to gwa_p0001-btrtl.
      append gwa_p0001 to gtab_p0001.
      write: / 'For period/payroll area: '(004),
               30 result-inter-versc-fpper+4(2),
               result-inter-versc-fpper+0(4),
               result-inter-versc-abkrs,
               / 'In-period/payroll area: '(005),
               30 result-inter-versc-inper+4(2),
               result-inter-versc-inper+0(4),
               result-inter-versc-iabkrs.
      skip 1.
      gwa_payroll-text = 'For'.
      move result-inter-versc-fpper to gwa_payroll-date.
      move result-inter-versc-fpper+4(2) to gwa_payroll-month.
      move result-inter-versc-fpper+0(4) to gwa_payroll-year.
      move result-inter-versc-abkrs to gwa_payroll-abkrs.
      append gwa_payroll to gtab_payroll.
      gwa_payroll-text = 'In'.
      move result-inter-versc-fpper to gwa_payroll-date.
      move result-inter-versc-inper+4(2) to gwa_payroll-month.
      move result-inter-versc-inper+0(4) to gwa_payroll-year.
      move result-inter-versc-iabkrs to gwa_payroll-abkrs.
      append gwa_payroll to gtab_payroll.
      write: 'Results table: '(006).
      skip 1.
      loop at result-inter-rt into rt_header.
        perform re512t using result-inter-versc-molga
                             rt_header-lgart.
        write: / rt_header-lgart,
                 t512t-lgtxt,
                 rt_header-betrg currency rt_header-amt_curr.
    move rt_header-lgart to gwa_result-lgart.
    move t512t-lgtxt to gwa_result-lgtxt.
    move rt_header-betrg to gwa_result-betrg.
    append gwa_result to gtab_result.
      endloop.
    endform.                    "print_rx
          FORM RE512T                                          *
          Read Wage Type Texts
    form re512t using value(country_grouping)
                      value(wtype).
      check t512t-sprsl ne sy-langu
         or t512t-molga ne country_grouping
         or t512t-lgart ne wtype.
      select single * from t512t
                  where sprsl eq sy-langu
                  and   molga eq country_grouping
                  and   lgart eq wtype.
      if sy-subrc ne 0.
        clear t512t.
      endif.
    endform.                                                    "re512t

  • User defined Selection screen for Logical database

    hi all,
           can we display a user defined selection screen instead of the default selection screen in LDB . eg pnp
    cheers
    senthil

    Hi,
    to my knowledge, the selection screen of a logical database can only be changed (versions!) in the logical database itself.
    What you can do is, write a program with your own selection screen an then either call another program that uses the LDB or -  much better - you call the LDB from your program with function module LDB_PROCESS!
    Example taken from the example library (TA ABAPDOCU):
    <b>REPORT demo_logical_database.
    DATA wa_spfli TYPE spfli.
    SELECT-OPTIONS s_carr FOR wa_spfli-carrid.
    DATA: callback TYPE TABLE OF ldbcb,
          callback_wa LIKE LINE OF callback.
    DATA: seltab TYPE TABLE OF rsparams,
          seltab_wa LIKE LINE OF seltab.
    callback_wa-ldbnode     = 'SPFLI'.
    callback_wa-get         = 'X'.
    callback_wa-get_late    = 'X'.
    callback_wa-cb_prog     = sy-repid.
    callback_wa-cb_form     = 'CALLBACK_SPFLI'.
    APPEND callback_wa TO callback.
    CLEAR callback_wa.
    callback_wa-ldbnode     = 'SFLIGHT'.
    callback_wa-get         = 'X'.
    callback_wa-cb_prog     = sy-repid.
    callback_wa-cb_form     = 'CALLBACK_SFLIGHT'.
    APPEND callback_wa TO callback.
    seltab_wa-kind = 'S'.
    seltab_wa-selname = 'CARRID'.
    LOOP AT s_carr.
      MOVE-CORRESPONDING s_carr TO seltab_wa.
      APPEND seltab_wa TO seltab.
    ENDLOOP.
    CALL FUNCTION 'LDB_PROCESS'
         EXPORTING
              ldbname                     = 'F1S'
              variant                     = ' '
         TABLES
              callback                    = callback
              selections                  = seltab
         EXCEPTIONS
              ldb_not_reentrant           = 1
              ldb_incorrect               = 2
              ldb_already_running         = 3
              ldb_error                   = 4
              ldb_selections_error        = 5
              ldb_selections_not_accepted = 6
              variant_not_existent        = 7
              variant_obsolete            = 8
              variant_error               = 9
              free_selections_error       = 10
              callback_no_event           = 11
              callback_node_duplicate     = 12
              OTHERS                      = 13.
    IF sy-subrc <> 0.
      WRITE: 'Exception with SY-SUBRC', sy-subrc.
    ENDIF.
    FORM callback_spfli USING name  TYPE ldbn-ldbnode
                              wa    TYPE spfli
                              evt   TYPE c
                              check TYPE c.
      CASE evt.
        WHEN 'G'.
          WRITE: / wa-carrid, wa-connid, wa-cityfrom, wa-cityto.
          ULINE.
        WHEN 'L'.
          ULINE.
      ENDCASE.
    ENDFORM.
    FORM callback_sflight USING name  TYPE ldbn-ldbnode
                                wa    TYPE sflight
                                evt   TYPE c
                                check TYPE c.
      WRITE: / wa-fldate, wa-seatsocc, wa-seatsmax.
    ENDFORM.</b>

  • Logical database LDB

    hi,
    what is LDB....its benefit
    and how to to it for multiple tables ......
    .... i want to use LDB instead of table joins...... there are  abt 20 tables..... using joins , the performance is slow ...
    ..... please advise..
    thanks

    LOGICAL DATABASES:
    Logical Databases are used to generate report.
    It is a repository object, not a data dictionary object.
    Under one logical database, a node is created first for the corresponding table in the database.
    A logical database can have any number of related nodes in the hierarchical manner.
    First node of the logical database is called as ROOT NODE.
    SLDB or SE36 to create logical databases.
    Navigations to Create Logical Database:
    SLDB -> Specify LDB name starting with Z or Y -> Click on Create -> Opens an interface -> Enter short description
    -> Create -> Save under a package and assign request number -> Opens an interface
    -> Specify Root Node name (MARA) -> Enter short description for the Root node
    -> Specify Database Table name (MARA) -> Create -> Opens an interface
    -> Select the Root Node (KNA1) -> Click on SELECTIONS pushbutton from Appn.
    Toolbar -> Click on Yes to generate Selection Screens from the Structure
    -> Click on No to Search Help -> Opens an Interface
    -> Select the checkboxes to create Field Selections and Free Selections
    -> TRansfer -> Opens an Include Program -> Decomment Select-Options statement and specify range variable as follows:
    SELECT-OPTIONS : MATNUM FOR MARA-MATNR.
    -> Save -> Activate -> Come back.
    Select the Node -> Click on SOURCE CODE pushbutton
    -> Click on Yes to generate source code from Structure and Selections -> Opens a report with two Include Files :
    include DBZLOGICAL_DATABASE1TOP . " header
    include DBZLOGICAL_DATABASE1NXXX . " all system routines
    -> Double click on Header File to declare global variables -> Specify Following code:
    TABLES : MARA * Autogenerated
    DATA IT_MARA LIKE MARA OCCURS 0 WITH HEADER LINE.
    -> Save -> Activate -> Come back -> Double click on System Routine file, where the fetching operations are done
    -> Opens an Include File with three subfiles as follows:
    include DBZLOGICAL_DATABASE1N001 . " Node MARA
    include DBZLOGICAL_DATABASE1FXXX . " init, PBO, PAI
    include DBZLOGICAL_DATABASE1SXXX . " search help
    -> Double click on the first file -> Specify SELECT operation statement as follows:
    select * from mara into table it_mara where matnr in MATNUM.
    PUT MARA. * AUTOGENERATED CODE
    loop at it_mara.
    write :/ it_mara-matnr, it_mara-mtart, it_mara-mbrsh, it_mara-meins.
    endloop.
    -> Save -> Activate.
    To Access LDB node, create SE38 PROGRAM, Specify LDB name in ATTRIBUTES section -> Specify following code in SE38:
    NODES MARA.
    GET MARA.
    -> Save -> Activate -> Execute.

  • SAP / ABAP Query - using logical database

    Hi ,
    We have a mandate to implement SAP Query using only Logical Databases (LDB ) .
    We understand that there are several issues using this approach .
    1 ) Paralled tables in MM need to be displayed on separate lines .
    2 ) Statistics based on fields from 2 different tables cannot be produced eg: EKPO ( PO Number )  and EKKN . (Cost Center )
    Please share your experiences .
    Thank you in advance .
    Kishore
    Kishore

    Adeel,
    I do appreciate your experience and respect you for knowledge on SAP Query. 
    Joining tables seem simple to IT experts but not so for end users.  SAP Query is an end-user tool and users seem to need a simple user-friend, drag-and-drop solution to extract information using SAP Query based on a pre-defined infoset.  Various SAP conferences have been advocating the use of SAP delivered Logical Databses to create infosets in order to harness the various advantages of LDBs. 
    In MM there are several LDBs (e.g. ELM, EBM etc) to create queries on EKPO and EKKN.  The problem arises when you use the same LDB to extract information from more than the above two tables e.g. EKPO, EKET, EKKN and EKBE.  SAP expects you to display fields on multiple lines and also does not allow producing statistics based on fields from two parallel tables say EKKN and EKBE.  Moreover, multi-line reports cannot be produced in the ALV/SLV format.  
    We are also looking for best practise solutions in providing SAP Query to MM or FI users based on SAP delivered Logical Databases.  
    Pascal

  • Steps to create LOGICAL DATABASE in sap

    hi guys,
    i have gone through many documents about LDB. But, i didnt get the steps to create a LDB.
    plz provide me with the steps to be followed to create a LDB.
    thnx,
    shivaa.

    Hi Shiva,
    This might help you!
    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.
    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.
    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.
    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.
    Reward if useful.
    Thankyou,
    Regards.

  • Logical Database of SAP Example Program

    Hi all,
    I need an example ABAP program using standard Logical Database ( LDB ) .
    Help me.
    Regards,
    Peachi.

    Hi,
    Some links to refer..
    /people/alvaro.tejadagalindo/blog/2006/02/19/how-to-deal-with-hr-payroll-reports
    http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/893908#
    A sample prog with LDB PNP
    *& Report ZH_REPT_PAYMENT *
    report zh_rept_payment line-size 80 no standard page
    heading.
    tables: pernr, " Standard Selections for HR Master Data Reporting
    pcl1, " HR Cluster 1
    pcl2, " HR Cluster 2
    pa0009,
    PA9001,
    PA9006,
    pa0002,
    pc260 , " Cluster Directory for Payroll Results
    bnka .
    Infotypes
    infotypes: 0001. " Organizational Assignment
    Declaration of Internal Tables
    data : bnka1 like bnka occurs 0 with header line .
    data: begin of t_int_rep occurs 100,
    bankl like pc209-bankl, " Bank Number
    zlsch like pc209-zlsch, " Payment method
    pernr like pernr-pernr, " Employee Number
    ename like pernr-ename, " Employee Name
    bankn like pc209-bankn, " Bank Account Number
    betrg like pc209-betrg, " Amount to be transfered
    zweck like pa0009-zweck, " Purpose
    end of t_int_rep.
    data: begin of int_rep occurs 100,
    bankl like pc209-bankl, " Bank Number
    zlsch like pc209-zlsch, " Payment method
    pernr like pernr-pernr, " Employee Number
    ename like pernr-ename, " Employee Name
    bankn like pc209-bankn, " Bank Account Number
    betrg like pc209-betrg, " Amount to be transfered
    zweck like pa0009-zweck, " Purpose
    begda like pa0009-begda, "Begin date
    end of int_rep.
    Declaration of Data Variables
    data: ws_betrg like pc209-betrg, " BT Amount
    w_val like spell occurs 0 with header line,
    int_rep1(6), " TYPE I, " Employee Number
    cnt type i value 0, " Counter
    calcmolga like t500l-molga value '40', " Country Grouping
    v_id(15),
    calc_currency like t001-waers value 'INR'. " Currency
    data : ctr type i,
    dt_merge like pa0009-begda.
    data: ws_totemp(6) type c,
    ws_totamt(20) type c,
    r_mth(9) type c,
    ws_fpbeg(6) type c,
    ws_fpend(6) type c,
    ws_mthyr(6) type c,
    ws_mthyr_r(14) type c,
    r_mth_t(3) type c,
    ws_amt(8) type c,
    ws_bankl(14) type c,
    ws_date(6) type c,
    amount_word(500),
    total_page type i,
    pages type i,
    remain type i.
    data begin of i_spell.
    include structure spell .
    data end of i_spell .
    data : c_molga type t500l-molga value '40',
    c_banks type bnka-banks value 'IN'.
    Standard Includes
    include rpc2cd09. "Cluster CD data definition
    include pc2rxin0.
    include rpc2rx09.
    include rpppxd00. " Data Definition buffer PCL1/PCL2
    include rpppxd10. " Common Part buffer PCL1/PCL2
    include rpppxm00. " Buffer Handling RoutinePCL1/PCL2
    include zrpc2rox2. " Data Definition POCLSTERS (not J,K,U)
    Selection Screen
    selection-screen begin of block b1 with frame title text-001.
    parameter: pa_mth(2) type c default sy-datum+4(2) obligatory,
    pa_year(4) type c default sy-datum(4) obligatory,
    p_bankl like pc209-bankl, " Bank Number
    p_zlsch like pc209-zlsch. " Payment method
    selection-screen end of block b1.
    save_calc_currency = calc_currency.
    count_top = 0.
    get_pernr_flag = 0.
    Top-Of-Page
    top-of-page.
    perform convert_month using pa_mth(2) r_mth.
    ws_mthyr_r = r_mth.
    concatenate ws_mthyr_r pa_year into ws_mthyr_r separated by space.
    SKIP 5.
    skip 1.
    skip 4.
    if int_rep-bankl eq ' '.
    if int_rep-zlsch eq 'C' or int_rep-zlsch eq 'E' or
    int_rep-zlsch eq ' '.
    write: /1(85) 'CHEQUE PAYMENT STATEMENT'(047) centered.
    elseif int_rep-zlsch eq 'L'.
    write: /1(85) 'DEMAND DRAFT STATEMENT'(047) centered.
    endif.
    else.
    write: /1(85) 'BANK TRANSFER STATEMENT'(002) centered.
    endif.
    skip.
    write: /34 ws_mthyr_r,
    62 'Page :'(008),69(2) sy-pagno intensified off,
    ' Of ',78(2) pages intensified off.
    clear pages.
    read table bnka1 with key bankl = int_rep-bankl .
    if sy-subrc = 0.
    if int_rep-zlsch eq 'T'.
    write:/03(10) 'Bank Name : ', bnka1-banka.
    write:/03(10) 'Branch : ', bnka1-brnch.
    write:/03(10) 'Address : ', bnka1-stras.
    endif.
    endif.
    skip.
    write:/1(80) sy-uline.
    write: /1 sy-vline, 2(5) 'Sl.No'(002),
    7 sy-vline, 8(8) 'Emp.No.'(003),
    16 sy-vline,17(35) 'Employee Name'(004).
    *--added for Demand Draft
    if ( int_rep-zlsch = 'l' or int_rep-zlsch = 'L' ).
    write : 47 sy-vline, 48(15) 'Payable at'(005).
    else.
    write : 47 sy-vline,48(15) 'Account No.'(005).
    endif.
    write: 63 sy-vline,64(16) 'Amount'(006),
    80 sy-vline.
    write:/1(80) sy-uline.
    end-of-page.
    write:/1(80) sy-uline.
    write:/2 'Printed on ', sy-datum.
    Start-of-selection.
    start-of-selection.
    *perform h_headr.
    ctr = 0.
    set margin 5.
    call function 'RP_GET_CURRENCY'
    exporting
    molga = calcmolga
    importing
    waers = calc_currency
    exceptions
    others.
    if sy-subrc ne 0.
    calc_currency = 'DEM'.
    calc_currency = save_calc_currency.
    endif.
    get pernr.
    cd-key-pernr = pernr-pernr.
    perform import_cluster.
    get_pernr_flag = 1.
    check : ocd-version-molga eq calcmolga.
    The table 'tabpernr' is filled with the personnel numbers
    and is used after selection is finished.
    move-corresponding pernr to tabpernr.
    append tabpernr.
    The table 'tab_rgdir' is filled
    loop at rgdir.
    rx-key-pernr = pernr-pernr.
    unpack rgdir-seqnr to rx-key-seqno.
    perform int_tab. "fill tab_rgdir
    perform import_bt.
    perform validate.
    endloop.
    End of Selection
    end-of-selection.
    *perform h_headr.
    perform convert_date_a using pa_mth r_mth_t.
    sort int_rep by bankl zlsch pernr betrg descending.
    delete adjacent duplicates from int_rep
    comparing bankl zlsch pernr .
    sort int_rep by bankl zlsch bankn . "PERNR.
    loop at int_rep.
    at new bankl.
    select single * into bnka1 from bnka
    where banks = c_banks and
    bankl = int_rep-bankl .
    append bnka1.
    clear bnka1.
    endat.
    endloop.
    for Demand Draft - purpose added
    loop at int_rep.
    concatenate pa_year(4) pa_mth(2) '01' into dt_merge.
    select single * "zweck into int_rep-zweck
    from pa0009 where
    pernr = int_rep-pernr and
    bankl = int_rep-bankl and
    zlsch = int_rep-zlsch
    and begda <= dt_merge and
    endda >= dt_merge .
    if sy-subrc = 0.
    int_rep-zweck = pa0009-zweck.
    modify int_rep.
    endif.
    endloop.
    *-for DD and Chq sorted by PAyable at and EMPNO wise
    if p_zlsch = 'T' .
    sort int_rep by bankl zlsch bankn . "PERNR.
    else. "added for "payable at" for DD/Chq
    else.
    sort int_rep by zweck pernr . "PERNR.
    endif.
    *delete adjacent duplicates from int_rep.
    t_int_rep] = int_rep[.
    loop at int_rep.
    *-for page of page no.
    total_page = 0.
    loop at t_int_rep where bankl = int_rep-bankl
    and zlsch = int_rep-zlsch.
    total_page = total_page + 1.
    endloop.
    pages = total_page div 25.
    remain = total_page mod 25.
    comment bcoz its adding one extra page no.
    done as on 29/11/2004
    if remain > 0.
    pages = pages + 1.
    endif.
    **-end
    at new bankl.
    ctr = 0 .
    new-page.
    endat.
    at new zlsch.
    ctr = 0 .
    new-page.
    endat.
    clear v_id.
    select single natio
    into pa0002-natio
    from pa0002
    where pernr eq int_rep-pernr.
    *-testing......for soma
    if ctr > 24.
    ctr = 0 .
    write:/1(80) sy-uline.
    new-page .
    endif.
    ctr = ctr + 1 .
    cnt = cnt + 1.
    pack int_rep-pernr to int_rep1.
    write:/1 sy-vline, 2(3) cnt intensified off,
    7 sy-vline, 9(6) int_rep1 intensified off,
    16 sy-vline,17(35) int_rep-ename intensified off .
    if ( int_rep-zlsch = 'l' or int_rep-zlsch = 'L' ).
    write : 47 sy-vline,48(15) int_rep-zweck intensified off.
    else.
    write:
    47 sy-vline,48(15) int_rep-bankn intensified off .
    endif.
    write: 63 sy-vline,64(16) int_rep-betrg
    intensified off currency 'INR',
    80 sy-vline.
    ws_betrg = ws_betrg + int_rep-betrg.
    *-testing......for soma
    skip.
    write :
    /1 sy-vline, 7 sy-vline ,16 sy-vline ,47 sy-vline,63 sy-vline,80
    sy-vline .
    *-end testing......for soma
    at end of zlsch.
    if int_rep-bankl = ' '.
    call function 'HR_IN_CHG_INR_WRDS'
    exporting
    amt_in_num = ws_betrg
    importing
    amt_in_words = amount_word
    EXCEPTIONS
    DATA_TYPE_MISMATCH = 1
    OTHERS = 2
    w_val-word = amount_word.
    concatenate 'INR.' w_val-word into w_val-word
    separated by space.
    write:/1(80) sy-uline.
    write: /1 sy-vline, 7 'Total transfer:'(009),
    64(16) ws_betrg intensified off currency 'INR',
    80 sy-vline.
    write:/1(80) sy-uline.
    write: /1 sy-vline, 3 w_val-word+0(76) intensified off,
    80 sy-vline.
    write :/1 sy-vline, 10 w_val-word+76(70) intensified off,
    80 sy-vline.
    write:/1(80) sy-uline.
    clear: ws_betrg,cnt.
    skip 2.
    write: /2 'Prepared by :'(010), '_______________'(013),
    45 'Checked by :'(011),'_______________'(013).
    skip 2.
    write: /2 'Printed On ', sy-datum,
    45 'Approved by :'(012),'_______________'(013).
    clear sy-pagno.
    endif.
    endat.
    at end of bankl.
    if int_rep-bankl ' '.
    call function 'HR_IN_CHG_INR_WRDS'
    exporting
    amt_in_num = ws_betrg
    importing
    amt_in_words = amount_word
    EXCEPTIONS
    DATA_TYPE_MISMATCH = 1
    OTHERS = 2
    w_val-word = amount_word.
    concatenate 'INR.' w_val-word into w_val-word
    separated by space.
    write:/1(80) sy-uline.
    write: /1 sy-vline, 7 'Total transfer:'(009),
    64(16) ws_betrg intensified off currency 'INR',
    80 sy-vline.
    write:/1(80) sy-uline.
    write: /1 sy-vline, 3 w_val-word+0(76) intensified off,
    80 sy-vline.
    write :/1 sy-vline, 10 w_val-word+76(70) intensified off,
    80 sy-vline.
    write:/1(80) sy-uline.
    clear: ws_betrg,cnt.
    skip 2.
    write: /2 'Prepared by :'(010), '_______________'(013),
    45 'Checked by :'(011),'_______________'(013).
    skip 2.
    write: /2 'Printed on ', sy-datum,
    45 'Approved by :'(012),'_______________'(013).
    clear sy-pagno.
    NEW-PAGE.
    endif.
    endat.
    endloop.
    End of Page
    end-of-page.
    write: /2 'Prepared by :'(010), '_______________',
    45 'Checked by :'(011),'_______________'.
    *& Form IMPORT_CLUSTER
    Importing Data from Cluster *
    form import_cluster.
    sy-subrc = 0.
    rp-imp-c2-cd.
    if sy-subrc eq 0.
    if cd-version-number ne ocd-version-number.
    endif.
    endif. " SY-SUBRC EQ 0
    endform. " IMPORT_CLUSTER
    *& Form INT_TAB
    Filling internal table tab_rgdir
    form int_tab.
    *Fill internal table tab_rgdir.
    move-corresponding rgdir to tab_rgdir.
    tab_rgdir-pernr = pernr-pernr.
    append tab_rgdir.
    endform. " INT_TAB
    *& Form IMPORT_bt
    Import Values from Bank Transactions Table (BT)
    form import_bt.
    rp-init-buffer.
    RP-IMP-C2-RX.
    rp-imp-c2-in.
    if rp-imp-in-subrc eq 0.
    if in-version-number ne oin-version-number.
    write: / 'Schlüssel des Clusters RX:'(015),
    rx-key-pernr, rx-key-seqno.
    write: / 'The imported version of the cluster'(016), 'RX',
    'is not current'(017).
    write: / 'Imported version :'(018),
    oin-version-number.
    write: / 'Current version of cluster :'(019),
    in-version-number.
    stop.
    else.
    sy-subrc = 0.
    endif.
    else.
    sy-subrc = 8.
    write: /
    'Inconsistencies between cluster directory and directory for'(020).
    write: /
    'No payroll results found for data in cluster directory'(021).
    write : /
    'Please contact hotline to solve the current problem'(022).
    endif.
    ws_fpbeg(2) = versc-fpbeg+4(2).
    ws_fpbeg+2(4) = versc-fpbeg(4).
    ws_fpend(2) = versc-fpend+4(2).
    ws_fpend+2(4) = versc-fpend(4).
    ws_mthyr(2) = pa_mth.
    ws_mthyr+2(4) = pa_year.
    check ws_mthyr = ws_fpbeg.
    check ws_mthyr = ws_fpend.
    loop at bt. "from pc209
    int_rep-pernr = pernr-pernr.
    int_rep-ename = pernr-ename.
    int_rep-bankl = bt-bankl.
    int_rep-bankn = bt-bankn.
    int_rep-betrg = bt-betrg.
    int_rep-zlsch = bt-zlsch.
    append int_rep.
    endloop.
    IF P_BANKL ' ' AND P_ZLSCH ' '.
    DELETE INT_REP WHERE BANKL P_BANKL.
    ELSEIF P_BANKL = ' ' AND P_ZLSCH ' '.
    DELETE INT_REP WHERE ZLSCH P_ZLSCH.
    ELSEIF P_BANKL ' ' AND P_ZLSCH = ' '.
    DELETE INT_REP WHERE BANKL P_BANKL.
    ENDIF.
    endform. " IMPORT_BT
    *& Form CONVERT_MONTH
    Fetching Month Text
    form convert_month using mth t_mth.
    case mth.
    when '01'.
    t_mth = 'January'(023).
    when '02'.
    t_mth = 'February'(024).
    when '03'.
    t_mth = 'March'(025).
    when '04'.
    t_mth = 'April'(026).
    when '05'.
    t_mth = 'May'(027).
    when '06'.
    t_mth = 'June'(028).
    when '07'.
    t_mth = 'July'(029).
    when '08'.
    t_mth = 'August'(030).
    when '09'.
    t_mth = 'September'(031).
    when '10'.
    t_mth = 'October'(032).
    when '11'.
    t_mth = 'November'(033).
    when '12'.
    t_mth = 'December'(034).
    endcase.
    endform. " CONVERT_MONTH
    *& Form CONVERT_DATE_A
    Fetching Month Text *
    form convert_date_a using mth_t t_mth_t.
    case mth_t.
    when '01'.
    t_mth_t = 'Jan.'(035).
    when '02'.
    t_mth_t = 'Feb.'(036).
    when '03'.
    t_mth_t = 'Mar.'(037).
    when '04'.
    t_mth_t = 'Apr.'(038).
    when '05'.
    t_mth_t = 'May.'(039).
    when '06'.
    t_mth_t = 'Jun.'(040).
    when '07'.
    t_mth_t = 'Jul.'(041).
    when '08'.
    t_mth_t = 'Aug.'(042).
    when '09'.
    t_mth_t = 'Sep.'(043).
    when '10'.
    t_mth_t = 'Oct.'(044).
    when '11'.
    t_mth_t = 'Nov.'(045).
    when '12'.
    t_mth_t = 'Dec.'(046).
    endcase.
    endform. " CONVERT_DATE_A
    *& Form VALIDATE
    text
    --> p1 text
    <-- p2 text
    form validate .
    if p_bankl <> ' ' and p_zlsch ' '.
    delete int_rep where bankl p_bankl.
    elseif p_bankl = ' ' and p_zlsch ' '.
    delete int_rep where zlsch p_zlsch.
    elseif p_bankl ' ' and p_zlsch = ' '.
    delete int_rep where bankl p_bankl.
    endif.
    endform. " VALIDATE
    check this weblog.....
    /people/dj.adams/blog/2003/11/13/food-for-thought-ldbs-and-abap-objects
    Also , check the following link too.
    http://www.datamanagementgroup.com/Resources/Articles/Article_1005_2.asp
    Regards,
    Satish

  • Why and how we use Logical Database?

    Can anybody explain with example why and how we use logical database?
    Regards,
    Rajan

    Hello,
    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

  • Using user defined variables in SAP BPC 7.0 NW

    Hi,
    I am using BPC 7.0 SP2 NW version. I want to do some calculatioins and/or comparision in the script logic by using user defined variables.
    For Ex: I want to assign the property TIMEID of TIME dimension to a variable and then use this variable in my IIF statement.
    I have tried a lot but not getting any solution.
    Can anyone guide me in how to use user defined variables in Script Logic.
    Your valuable reply is appreciated.
    Thanks & Regards
    Manoj Damle

    Hi,
    Thanks for the valuable reply.
    But i want to define variables in the Script Logic and not in the Data Manager.
    The scenario is like this:
    I want to check the value of the DUMMYACC1 member of GL_ACCOUNT dimension with a constant and depending on the condition i want to update a user defined variable. This variable will further be used in the *SELECTCASE statement for decision making.
    The Code is as follows:
    *XDIM_MEMBERSET COMP_CODE = COMP_CODE_1
    *XDIM_MEMBERSET BUS_AREA = BUS_AREA_1
    *XDIM_MEMBERSET VERSION = VERSION_1
    *XDIM_MEMBERSET CURRENCY = AUD
    *XDIM_MEMBERSET DATASRC = DATASOURCE_1
    *XDIM_MEMBERSET GL_ACCOUNT = SALESREVENUE,PRICE,QUANTITY,DUMMYACC1
    *XDIM_MEMBERSET TIME=2009.MAY,2009.JUN
    *XDIM_MEMBERSET CUSTOMERCATEGORY = CUSTOMER_CAT_1
    *XDIM_MEMBERSET PROFIT_CTR = PROFIT_CTR_1
    *XDIM_MEMBERSET SEGMENT = SEGMENT1
    *XDIM_MEMBERSET MEASURES = PERIODIC
    *FUNCTION PRO(%VAR1%,%VAR2%)
        [%VAR1%].CURRENTMEMBER.PROPERTIES("%VAR2%")
    *ENDFUNCTION
    *FOR %GL_ACC% = DUMMYACC1
        *FOR %CV_TIM% = 2009.MAY,2009.JUN
            #CUR_MTH = IIF(([GL_ACCOUNT].[%GL_ACC%],[TIME][%CV_TIM%]) = 1.,1,NULL)
        *NEXT
    *NEXT
    *SELECTCASE #CUR_MTH
    *CASE 1
        #CURRENTMTH = PRO(TIME,TIMEID)
    *ENDSELECT
    The errors which system gives is:
    1. Duplicate formula found
    2. Invalid MDX statement
    3. #CUR_MTH & #CURRENTMTH is not a valid member
    Please give your valuable suggestion.
    Thanks and Regards
    Manoj Damle

  • 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

  • What are structures of logical database.

    hi
    what are structures of logical database.

    Dear Chaitanya,
    The structure of LDB can be divided into three sections:
    >Structure
    >Selection
    >Database Program
    STRUCTURE:
    The structure defines the data view of the logical database. It adopts the hierarchy of the database tables defined by their foreign key relationships. This also controls the sequence in which the tables are accessed. It determines the structure of the other components and the behavior of the logical database at runtime.
    The structure of a logical database is usually based on the foreign key relationships between hierarchical tables in the SAP System. Logical databases have a tree-like structure, which can be defined as follows:
    · There is a single node at the highest level. This is known as the root node.
    · Each node can have one or several branches.
    · Each node is derived from one other node.
    The nodes must be structures defined in the ABAP Dictionary or data types from a type group. Normally, these are the structures of database tables which the logical database reads and passes to the user for further evaluation. However, it is also possible, and sometimes useful, to use ABAP Dictionary structures without an underlying database. For technical reasons, the maximum number of nodes allowed in the structure of a logical database is 300.
    Any executable ABAP program that has a logical database linked to it can contain a GET statement for each node of the structure. When you run the program, the corresponding event blocks are processed in the sequence prescribed by the hierarchical structure of the logical database. If a program does not contain a GET statement for every node of a logical database, the processing passes through all the nodes that lie in the path from the root to the nodes specified by GET statements.
    If you call a logical database using the function module LDB_PROCESS, the depth to which the system reads is controlled by an interface parameter.
    SELECTIONS:
    The selections define a selection screen, which forms the user interface of the executable programs that use the logical database. Its layout is usually determined by the structure. You can adapt the selections to your own requirements and also add new ones. When you link a logical database to an executable program, the selections of the logical database become part of the standard selection screen of the program (screen number 1000). If you call a logical database using the function module LDB_PROCESS, the selections are filled using interface parameters.
    The selections in a logical database are defined using the normal statements for defining selection screens, that is, PARAMETERS, SELECT-OPTIONS and SELECTION-SCREEN. In a logical database, you can also use the additions VALUE-REQUEST and HELP-REQUEST to define specific input and value help. You define the selection screen in a special include program known as the selection include.
    When you write programs using a logical database, you can also add your own program specific selections. The standard selection screen then contains the database-specific selections, followed by the program-specific selections that you have defined.
    When the system generates the selection screen for an executable program, database-specific selection criteria and parameters are only displayed if you have declared an interface work area for them in your program using the NODES or TABLES statement.
    Suppose you have a selection include containing the following lines:
    SELECT-OPTIONS slifnr FOR lfa1-lifnr.
    PARAMETERS pbukrs LIKE lfb1-bukrs FOR TABLE lfb1.
    The selection criterion SLIFNR is linked to table LFA1, the parameter PBUKRS to table LFB1. If the TABLES statement in an executable program (report) declares LFA1 but not LFB1, SLIFNR is displayed on the selection screen, but PBUKRS does not appear.
    The selection screen of a logical database can contain dynamic selections as well as static ones. Dynamic selections are extra, user-defined selections that the user can make as well as using the static selections defined in the selection include. To improve performance, you should always use this option instead of reading more data than you need and then sorting it out in the application program.
    To make dynamic selections available for the node nodeof a logical database, the selection include must contain the following statement:
    SELECTION-SCREEN DYNAMIC SELECTIONS FOR NODE|TABLE node.
    If the node node is requested by the user of the logical databases, the dynamic selections are included in the selection screen. A user can then choose Dynamic selections to enter extra selections for the corresponding fields. If you call the logical database using the function module LDB_PROCESS, you can pass a corresponding parameter. You can use these selections in dynamic statements in the logical database program to read data. The values of the program-specific selection criteria that you defined for a node for which dynamic selections were available are also passed to the logical database. The user can also define the fields for dynamic selections as a selection view for the logical database.
    The selection screen of a logical database is part of the standard selection screen (number 1000) of the executable program to which the logical database is attached. It has a standardized layout - the selection criteria and parameters appear on separate lines in the order in which they were declared. You can change the layout using the SELECTION-SCREENstatement.
    The runtime environment generates the selection screen with number 1000 for every program in which the attributes do not contain a different selection screen version. You can prevent certain input fields from the selection screen of a logical database from appearing on the selection screen by defining selection screen versions with a screen number lower than 1000 in the selection include, and entering this version number in the program attributes. By pressing F4 there, you can get an overview of the selection screen versions defined in the logical database concerned. To define a selection screen version, use the statements SELECTION-SCREEN BEGIN|END OF VERSION. Within these statements you can use SELECTION-SCREEN EXCLUDEto specify fields that you do not want to appear on the selection screen.
    If the attributes of an executable program contain the number of a selection screen version, the version is used in the standard selection screen. Although the input fields that you excluded from the selection screen are not displayed, the corresponding selections still exist, and you can still edit them in the program or by calling the function module LDB_PROCESS.
    DATABASE PROGRAM:
    The database program contains the ABAP statements used to read the data and pass it to the user of the logical database. There is a container for special subroutines into which, amongst other things, the data from the database tables is read. These subroutines are called by the reporting processor in the runtime environment in a sequence that has been predefined by the structure. The database program is determined by the structure and selections and can be adapted or expanded to meet your requirements.
    The name of the database program of a logical database ldbconforms to the naming convention SAPDBldb. It serves as a container for subroutines, which the ABAP runtime environment calls when a logical database is processed. The sequence of the calls and their interaction with the events in executable programs or the function module LDB_PROCESS depends on the structure of the logical database.
    A logical database program usually contains the following subroutines:
    · FORM LDB_PROCESS_INIT
    Called once only before the logical database is processed. It prepares it to be called more than once by the function module LDB_PROCESS.
    · FORM INIT
    Called once only before the selection screen is processed.
    · FORM PBO
    Called before the selection screen is displayed, each time it is displayed. Consequently, it is only called when you use the logical database with an executable program, not with the function module LDB_PROCESS.
    · FORM PAI
    Called when the user interacts with the selection screen. Consequently, it is only called when you use the logical database with an executable program, not with the function module LDB_PROCESS. The interface parameters FNAME and MARK are passed to the subroutine.
    FNAME contains the name of a selection criterion or parameter on the selection screen.
    MARK describes the selection made by the user: MARK = space means that the user has entered a simple single value or range selection. MARK = '*' means that the user has also made entries on the Multiple Selection screen.
    · FORM LDB_PROCESS_CHECK_SELECTIONS
    Called instead of the subroutine PAI if the logical database is called using the function module LDB_PROCESS without a selection screen. This subroutine can check the selections passed in the function module interface.
    · FORM PUT_node
    Called in the sequence defined in the structure. Reads the data from the node nodeand uses the
    PUT node.
    statement to trigger a corresponding GETevent in the ABAP runtime environment. The PUT statement is the central statement in this subroutine: It can only be used within a subroutine of a logical database. The logical database must contain the node node, and the subroutine name must begin with PUT_node. The PUT statement directs the program flow according to the structure of the logical database. The depth to which the logical database is read is determined by the GET statements in the application program or the interface parameter CALLBACK of the function module LDB_PROCESS.
    First, the subroutine PUT_root is executed for the root node. The PUT statement then directs the program flow as follows:
    i. If the database program contains the subroutine AUTHORITY_CHECK_node, the first thing the PUT_node statement does is to call it.
    ii. Next, the PUT statement triggers a GET event in the runtime environment. If there is a corresponding GET nodestatement in the executable program to which the logical database is linked, the associated event block is processed. If the CALLBACK parameter of the function module LDB_PROCESS is filled accordingly, the corresponding callback routine is called.
    iii. The PUT statement directs the program flow
    (a) To the next subroutine of a node that follows directly, if a lower-level node (not necessarily the very next) in the same subtree is requested by GET in the executable program or in the function module.
    (b) To the subroutine of a node at the same level, if the preceding node branches to such a node and if a GET statement exists for such a node in the executable program or the function module.
    The PUT statement in that subroutine starts again at step (i). In the subroutine of the lowest node in a subtree to be processed using GET, the program control does not branch further. Instead, the current subroutine is processed further. When a subroutine PUT_node has been executed in its entirety, the program flow returns to the PUTstatement from which it branched to the subroutine PUT_node.
    iv. When control has returned from a lower-level subroutine PUT_node, the PUTstatement triggers the event GET node LATEin the runtime environment.
    · FORM AUTHORITY_CHECK_node
    Called automatically by the PUT node statement. In this subroutine, you can specify authorization checks for the appropriate node node from the structure of the logical database.
    · FORM PUT_ldb_SP
    Called when the user makes a selection using a search help to process the key chosen in the search help. ldb is the name of the logical database. From this subroutine, you can use the entries in the search help tables to read the relevant entries from the root node root. The processing in the program can then be triggered using PUT root. The subroutine PUT_root is then not called automatically.
    · FORM BEFORE_EVENT
    Called before an event, the name of which is passed in the parameter EVENT. Currently, the EVENT field can only contain the value START-OF-SELECTION, to call a subroutine before this event.
    · FORM AFTER_EVENT
    Called after an event, the name of which is passed in the parameter EVENT. Currently, the EVENT field can only contain the value END-OF-SELECTION, to call a subroutine after this event.
    · FORM par_VAL, selop_VAL, selop-LOW_VAL, selop-HIGH_VAL
    Called when the user calls possible values help for the parameter par or the selection criterion selop. These must belong to the selections in the logical database.
    · FORM par_HLP, selop_HLP, selop-LOW_HLP, selop-HIGH_HLP
    Called when the user calls possible values help for the parameter par or the selection criterion selop. These must belong to the selections in the logical database.
    Example
    Suppose that in the logical database structure, LFB1 is a branch of LFA1.
    and that the following selection criteria are defined in the selection include:
    SELECT-OPTIONS: slifnr FOR lfa1-lifnr,
    sbukrs FOR lfb1-bukrs.
    A section of the database program would then read:
    FORM put_lfa1.
    SELECT * FROM lfa1
    WHERE lifnr IN slifnr.
    PUT lfa1.
    ENDSELECT.
    ENDFORM.
    FORM put_lfb1.
    SELECT * FROM lfb1
    WHERE lifnr = lfa1-lifnr.
    AND bukrs IN sbukrs.
    PUT lfb1.
    ENDSELECT.
    ENDFORM.
    An executable program (report) linked to the logical database could contain the lines:
    GET lfa1.
    WRITE lfa1-lifnr.
    GET lfb1.
    WRITE lfb1-bukrs.
    In this example, the runtime environment calls the routine put_lfa1 after the event START-OF-SELECTION. The event GET lfa1 is triggered by the statement PUT lfa1.
    Once the corresponding event block in the program is complete, PUT lfa1 branches to the subroutine put_lfb1.
    From this subroutine, the event GET lfb1 is triggered in the application program. If LFB1 is the last node to be read, processing resumes with the SELECTloop in put_lfb1. Otherwise, the program flow moves to the subroutine put_node of the next node. At the end of the SELECT loop of the last node, processing resumes in the SELECTloop of the node at the next level up. The example of programming using nested SELECT loops is only used to make the program flow clearer. In a real logical database, you would avoid doing this in order to minimize the number of database accesses.
    Regards,
    Rajesh K Soman
    Please reward points if helpful.

  • ABAP Logical Database ADA

    Hi All, I am quite familiar with Logical Databases but I need to understand the following.
    1) I am using LDB ADA, but I want to use my own Selection Screen and not the default one that the LDB provides. I know I must put something in AT SELECTION-SCREEN but am unsure what.
    2) Once I get the data, I want to store the data in an internal table - how do I go about doing this? If you can provide a code example that would be great.
    Points for any relevant help.

    Hi,
    A logical database is a special ABAP/4 program which combines the contents of certain database tables. You can link a logical database to an ABAP/4 report program as an attribute. The logical database then supplies the report program with a set of hierarchically structured table lines which can be taken from different database tables.
    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.
    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.
    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.
    Database access programming: Once you’ve 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
    Here’s 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) You’ll be prompted for a short text description of your new logical database. Enter one. You’ll then be prompted to specify a development class.
    4) 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 you’ve 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 don’t have to write a single line of code.
    Noted point is we cant add any selection criteria thru our se38 program if you are attaching any LDB to program.Ist of no use.
    If you want to change selection criteria to the existing LDB, you have to goto SE36 tcode and provide LDB name and choose "Change" mode by selecting "Selections" Radio button.
    declaration of params is different compared to normal se38 program in some aspects.
    PARAMETERS :p_curr LIKE bkpf-waers FOR TABLE bkpf OBLIGATORY.
    this BKPF table should be one of the node in the "Structure" Radio button.
    Thanks
    Sivaparvathi
    Please reward points if helpful.

  • HR Logical Database

    Hi,
      Is it common to use logical database for HR report??  How about other module such as SD/MM??
    Regards,
    Kit

    Hi,
    Logical databases are special ABAP programs that retrieve data and make it available to application programs. The most common use of logical databases is still to read data from database tables by linking them to executable ABAP programs.
    However, from Release 4.5A, it has also been possible to call logical databases using the function module LDB_PROCESS. This allows you to call several logical databases from any ABAP program, nested in any way. It is also possible to call a logical database more than once in a program, if it has been programmed to allow this. This is particularly useful for programs with type 1.
    Logical databases contain Open SQL statements that read data from the database. You do not therefore need to use SQL in your own programs. The logical database reads the program, stores them in the program if necessary, and then passes them line by line to the application program or the function module LDB_PROCESS using an interface work area.
    Logical Databases - Views of Data
    A logical database provides a particular view of database tables in the R/3 System. It is always worth using logical databases if the structure of the data that you want to read corresponds to a view available through a logical database.
    The data structure in a logical database is hierarchical. Many tables in the R/3 System are linked to each other using foreign key relationships. Some of these dependencies form tree-like hierarchical structures. Logical databases read data from database tables that are part of these structures.
    The diagram illustrates how the R/3 System might represent the structure of a company. A logical database can read the lines of these tables one after the other into an executable program in a sequence which is normally defined by the hierarchical structure. The term logical database is sometimes used to mean not only the program itself, but also the data that it can procure.
    Tasks of Logical Databases
    As well as allowing you to read data from the database, logical databases also allow you to program other tasks centrally, making your application programs less complicated. They can be used for the following tasks:
    Reading the same data for several programs.
    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.
    Defining the same user interface for several programs.
    Logical databases have a built-in selection screen. Therefore, all of the programs that use the logical database have the same user interface.
    Central authorization checks
    Authorization checks for central and sensitive data can be programmed centrally in the database to prevent them from being bypassed by simple application programs.
    Improving performance
    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
    Reward Points if useful
    Raghunath.S
    9986076729

Maybe you are looking for

  • Is there a way to combine matrix data?

    If anyone can, please help me. Linear algebra is not my specialty. I am trying to make a function using the BitmapData.hitTest() to see if two sprites on screen are hit. I have got it working for sprites that are direct siblings (ie they are on the r

  • DVD Player hangs when Fast Forward (F9) or Rewind (F7) buttons pushed

    When I push and hold down the fast forward and rewind keys in DVD Player, the video does indeed fast forward and reverse. But when I push and immediately release, the picture freezes, and the computer hangs. Cannot do shut down, have to do shut down

  • How to edit audio contents? (sample editing)

    Hi, I have a problem in editing a recorded audio. Can anyone please help me with this one? The scenario is this... I get my audio data by reading right from the line using targetdataline read method. Then I store the data in byte arrays. I tried to e

  • Digital Signature(s) Do I need Reader 10?

    Hello all, we have Adobe Reader X here and I am having a problem regarding the digital signature that I think I'm creating, but nothing appears to be working for me.  I don't think I'm missing a step (I've been viewing the instructions and just think

  • Java 7 update

    Is the Java 7 update safe on my Mac?