LDB CMC with LDB_PROCESS FM ?

Dear All,
1. I'm calling the Function Module LDB_PROCESS in my Program.
2. I'm passing CMC LDB to the above FM.
3. I've built the Necessary params to pass onto the FM.
4. But my Form is not getting triggered.
Please let me know the reason !
Enclosed is the code :
Data: wa_mastb like mastb.
SELECT-OPTIONS: s_matnr for wa_mastb-matnr.
DATA: CALLBACK    TYPE TABLE OF LDBCB,
            CALLBACK_WA LIKE LINE  OF CALLBACK.
DATA: gt_SELTAB  TYPE TABLE OF RSPARAMS,
            gwa_SELTAB LIKE LINE  OF gt_SELTAB.
CLEAR CALLBACK_WA.
CALLBACK_WA-LDBNODE     = 'MASTB'.
CALLBACK_WA-GET         = 'X'.
CALLBACK_WA-GET_LATE    = ' '.
CALLBACK_WA-CB_PROG     = SY-REPID.
CALLBACK_WA-CB_FORM     = 'CALL_MASTB'.
APPEND CALLBACK_WA TO CALLBACK.
gwa_SELTAB-KIND    = 'S'.
gwa_SELTAB-SELNAME = 'MATNR'.
Loop at s_matnr.
  MOVE-CORRESPONDING s_matnr to gwa_SELTAB.
  append gwa_SELTAB to gt_seltab.
endloop.
START-OF-SELECTION.
CALL FUNCTION 'LDB_PROCESS'
  EXPORTING
    LDBNAME                           = 'CMC'
*   VARIANT                           =
*   EXPRESSIONS                       =
*   FIELD_SELECTION                   =
*   DYN_NODE_TYPES                    =
  TABLES
    CALLBACK                          = CALLBACK
    SELECTIONS                        = gt_SELTAB.
IF SY-SUBRC <> 0.
Write:/ 'Error in the Call of the LDB FM'.
ENDIF.
end-of-SELECTION.
FORM CALL_MASTB USING PD_NODE LIKE LDBN-LDBNODE
                                              PD_WORKAREA like mastb
                                              PD_MODE     TYPE C
                                              PD_SELECTED TYPE C.
data: ls_mastb like mastb.
  CASE PD_NODE.
    WHEN 'MASTB'.
      LS_mastb = PD_WORKAREA.
      write:/ ls_mastb-matnr, ls_mastb-werks.
  ENDCASE.
ENDFORM.
Regards,
Deepu.K

Hi!
for CMC LDB you must add parameter:
PARAMETERS :
         datuv LIKE stko-datuv  DEFAULT sy-datum.
and fill it
CLEAR gwa_seltab.
gwa_seltab-kind    = 'P'.
gwa_seltab-selname = 'DATUV'.
gwa_seltab-sign    = 'I'.
gwa_seltab-option  = 'EQ'.
gwa_seltab-low = datuv .
APPEND gwa_seltab TO gt_seltab.

Similar Messages

  • How to use LDB PNP with ABAP objects in a program

    Hello,
    I am wondering if anybody has used the HR logical database(LDB) PNP with user defined ABAP objects in a program? I am using the FM- <b>LDB_PROCESS</b> but its not working. Also assigning PNP in the attributes section of the program -- so that I can use predefined fields from the LDB and then invoking the FM doesn't work -- throwing 'Logical database already active' error.
    I suppose even with the ABAP objects and the new FM -- I should still be able to utilize the pre-defined fields of the PNP database -- and also the built in authorizations. I cannot use GET PERNR and REJECT as they give errors. I understand that the use of HR-macros (RP-PROVIDE-FROM-LAST and et al.) are not allowed as they use the table work area -- which is not allowed in ABAP-OOPS.
    I would really appreciate if anyone could show me some insight regarding this. Thank you.
    Kshitij R. Devre

    Hi Kshitij
    It would be really good if we could use both together. But as I know, it is not possible. "GET pernr." is an event-like loop statement and so cannot be used in OO context. And I guess, the same restriction holds for the "LDB_PROCESS" since it uses LDB-specific processing.
    What I suggest you is to use standard and BAPI functions.
    Sorry for giving bad news...
    *--Serdar

  • FTI_TR_POSITIONS with LDB_PROCESS

    Hello everybody
    I am trying to get data ouf of the LDB FTI_TR_POSITIONS but all I get is a runtime error: LDB_SELECTIONS_NOT_ACCEPTED
    what am I doing wrong?
    DATA callback LIKE ldbcb OCCURS 0 WITH HEADER LINE.
        DATA seltab   LIKE rsparams OCCURS 0 WITH HEADER LINE.
        callback-ldbnode = 'POSITIONS'.
        callback-get = 'X'.
        callback-get_late = 'X'.
        callback-cb_prog = 'ZTVWPAN2_1'.
        callback-cb_form = 'CALLBACK_FORM'.
        APPEND callback.
    MOVE: 'I'      TO seltab-sign,
              'EQ'     TO seltab-option,
              'S'      TO seltab-kind,
              'BUKRS'  TO seltab-selname.
        seltab-low =  so_bukrs+3.
        APPEND seltab.
    MOVE: 'I'      TO seltab-sign,
              'EQ'     TO seltab-option,
              'S'      TO seltab-kind,
              'S_DATS'  TO seltab-selname,
              pa_stdat     TO seltab-low.
        APPEND seltab.
    CALL FUNCTION 'LDB_PROCESS'
          EXPORTING
            ldbname                           = 'FTI_TR_POSITIONS'
          TABLES
            callback                          = callback
            selections                        = seltab
    *EXCEPTIONS
    Thanks for any help!!
    Best regards
    Christophe

    Hi,
    Anyone has any idea ?
    Thanks,
    Francis

  • Error while scheduling Crystal Report within CMC with Destination as Email

    Hi,
    I have added a Crystal Report within the CMC. Before scheduling it, I have specified the Destination as Email and entered  the necessary details. After scheduling it, the Report Instance gives a Failure with Error Message as -
    destination DLL disabled.CrystalEnterprise.Smtp
    How to rectify this?
    Thanks,
    Amogh

    Hi,
    go to the CMC and invoke the server list under Servers. Locate the entry for the Crystal Reports Job Server, select it and invoke the context menu using the right mouse button. Select Destination and add Email in the list of the possible delivery options. Configure the connection data for your SMTP server and restart the Crystal Report Job Server.
    Regards,
    Stratos

  • How to use ldb PNPCE with FM u0091HR_INFOTYPE_OPERATIONu0092

    Hi all,
    I’m creating a report with LDB PNPCE, this report has to create/modify infotypes of an ID person. I’m trying to use de FM ‘HR_INFOTYPE_OPERATION’, but it’s not working… A DUMP is generated, with this description:
    An exception that could not be caught occurred.CX_HRPA_VIOLATED_PRECONDITION
    I think that the problem is due to logical database PNPCE, because if I use PNP, it’s working… Does anybody know anything about using the FM ‘HR_INFOTYPE_OPERATION’ with the LDB PNPCE?
    Thanks!!

    This piece of code it's working with ldb PNP 
    CALL FUNCTION 'ENQUEUE_EPPRELE'
       EXPORTING
      MODE_PREL            = 'E'
      MANDT                = SY-MANDT
         pernr                = wa_p9961-pernr
         infty                = '9961'
      SUBTY                =
      OBJPS                =
      SPRPS                =
    endda                =  wa_p9961-endda                      "'99991231'
    begda                =  wa_p9961-begda                      "'20071201'
      SEQNR                =
      X_PERNR              = ' '
      X_INFTY              = ' '
      X_SUBTY              = ' '
      X_OBJPS              = ' '
      X_SPRPS              = ' '
      X_ENDDA              = ' '
      X_BEGDA              = ' '
      X_SEQNR              = ' '
      _SCOPE               = '2'
      _WAIT                = ' '
      _COLLECT             = ' '
       EXCEPTIONS
         foreign_lock         = 1
         system_failure       = 2
         OTHERS               = 3
      CALL FUNCTION 'HR_INFOTYPE_OPERATION'
        EXPORTING
          infty                   = '9961'
          number                  = wa_p9961-pernr
           subtype                = wa_p9961-subty
            OBJECTID               =
            lockindicator          = 'X'
           validityend            = wa_p9961-endda
           validitybegin          = wa_p9961-begda
            recordnumber           = lwa_pa9961-seqnr
          record                  = wa_p9961
          operation               = 'INS'
          tclas                   = 'A'
          dialog_mode             = '0'
            nocommit               = ' '
            VIEW_IDENTIFIER        =
            SECONDARY_RECORD       =
       IMPORTING
         return                 = l_return
            KEY                    =
      CALL FUNCTION 'DEQUEUE_EPPRELE'
       EXPORTING
      MODE_PREL       = 'E'
      MANDT           = SY-MANDT
         pernr           = wa_p9961-pernr
         infty           = '9961'
      SUBTY           =
      OBJPS           =
      SPRPS           =
    endda                = wa_p9961-endda                       "'99991231'
    begda                = wa_p9961-begda                       "'20071201'
      SEQNR           =
      X_PERNR         = ' '
      X_INFTY         = ' '
      X_SUBTY         = ' '
      X_OBJPS         = ' '
      X_SPRPS         = ' '
      X_ENDDA         = ' '
      X_BEGDA         = ' '
      X_SEQNR         = ' '
      _SCOPE          = '3'
      _SYNCHRON       = ' '
      _COLLECT        = ' '
    But if I use ldb PNPCE instead PNP, with the events:
    GET person.
    GET group.
    GET peras.
    ths dump is generated...
    Thank u!!

  • Setting up the trusted mode in CMC with SDK (BO XI 3.1 with1.3 FixPack)

    Hello,
    I would like to enable the trusted mode in the CMC and insert the Shared Secret password with a java command line.
    That suppose that we have already modify the web.xml file and copy the trustedprincipal.conf file in the good folder.
    We are creating a CD Installation for clients and we would like to install it in trusted mode.
    Can you help me please ?
    Thanks a lot.
    mlopez
    Edited by: MLOPEZ on Apr 3, 2009 5:55 AM

    HI,
    I resolv finally my problem with infostore query..
    Bye bye

  • Peculiar problem in LDB ADA with company code selection

    <h5>Hello Colleagues, </h5>
    Faced a peculiar problem with company code selections in LDB ADA. Entered depreciation area, dep posting perios, lower and higher value of company code and would like to except few companies from selections. On pressing extension button, error message "Depreciation area 01 is not defined in chart of depreciation" is popping up and not allowing to provide exceptions for company codes. But working well in development systems. We are using ECC 6.0 systems and in both systems we have same lines of code for SAPDBADA.
    During debug, found that in development system, control coming to initial statements after PAI event. But in other systems, control skips few initial commands after PAI and directly jumps to later commands. Due to this FNAME parameter in PAI subroutine setting with '*' in other systems and 'BUKRS' in dev system.
    Could anybody give me some thoughts of why system behaving differently?
    Thanks and Regards,
    Prasanth

    Some - or most? - ODBC driver, especially MS for SQLServer and Access, don't support these advanced JDBC features.
    Like the messages says: they are optional features, and the driver doesn't implement them.
    A good news:
    you don't need them.
    Just go through your ResultSets only forward by next(), and do all inserts, updates and deletes with executeUpdate() and SQL commands.

  • Problem with LDB_PROCESS .. Not working in Loop

    Hi Experts,
    I am using FM LDB_PROCESS for calling PNM LDB iteratively for some data in internal table.
    For the first record it works well and give me corresponding node values.
    But for other line items/records of internal table, it does n't give me any output , although some of these line items contain exactly the same data as contained in first record.
    Kindly help.
    Regards,
    Vikas

    Dear Raymond,
    I tried debugging the FM but it is not stopping at the perform you mentioned.
    Then I opted for CALL FUNCTION 'LDB_CALL_LDB_PROCESS' starting new task v_task_id.
    If I don't use "starting new task v_task_id" it gives dump at the following part of   'LDB_CALL_LDB_PROCESS' , stating Result table incompatible.
    CALL FUNCTION 'LDB_CALLBACK'
             DESTINATION 'BACK'
             TABLES
                  CALLBACK_TAB   = G_CALLBACK
                  RESULTS        = RESULTS
                  LDBNODES       = I_LDBS.
    But if I use CALL FUNCTION 'LDB_CALL_LDB_PROCESS' starting new task v_task_id then it does n't give me any results.
    Kindly help.
    Regards,
    Vikas

  • SQ01 query on LDB BRF with selection criteria on BSEG

    Dear all,
    we built an inofset on LDB BRF (BKPF - BSEG) and a query with selection criteria based on both BKPF and BSEG tables.
    My proble : when the query select a posting fullfilling header data selection criteria but not line item criteria, it still displayed the header data in the layout.
    We set up a filter on the account to hide results where account is blank but we loss the filter exporting the result on access. So if anyome has a better idea, we'll be very thankfull.
    Br,

    Hi Rick,
    What Edan proposed will work as logical AND (both filters on dates will be checked simultaneously).
    Here is a solution.
    You’ll have a user entry variable on 0CALDAY.
    - Create a new variable on 0CALDAY, customer exit, mandatory, not ready for input. This variable should return the date entered in user entry variable.
    - Create a structure in columns.
    - New selection (let’s name it chg). Put there your KF and your Change date char. Restrict it by the user entry var. Hide it.
    - New selection (let’s name it crt). Put there your KF and your Created on date char. Restrict it by the customer exit var. Hide it.
    New formula (let’s name it FilteredAmount):
    ( 'chg' <> 0 ) * 'chg' + ( 'crt' <> 0 ) * 'crt'
    Create a condition:
    FilteredAmount <> 0.
    Best regards,
    Eugene

  • CR RPT in CMC with crosstabs returning results not consistent desktp client

    Hi Everyone,
    I built a report that works great. However, when I run it inside Central Management Console, the crosstabs generate random values that are not consistent with my CR2008 Desktop client results.
    Is there a workaround or something I can do to correct this?
    Thanks,
    Demoralized.

    Good point Don,
    We're in the process of upgrading CMC to the latest version now. It will be a few weeks before it's ready and I'll know for sure. I'll update this thread when I find out.
    John

  • BO XI 3.1 SP3 SSO with CMC and Webi Rich Client

    Hello,
    Is it possible in BO XI 3.1 SP3 to use SSO with CMC and Webi Rich Client ?
    It works fine with InfoView, Designer and Desktop Intelligence.
    Regards

    Hi,
    What kind of SSO authentication are you trying to set up? (AD, LDAP,...)
    I think it's AD regarding your command line.
    But be aware that in SSO, you don't need to configure the command line to run the client.
    Have a look at the following guide.
    [Configuring Manual Kerberos Authentication and-or SSO in Distributed Environments with XI 3.1 SP3.pdf|https://bosap-support.wdf.sap.corp/sap/support/sapnotes/public/services/attachment.htm?iv_key=002007204200000183782010&iv_version=0005&alt=2BCE4CB10DF674B172F4F3F7B32A284F49333135358877720E883731B332AF34CACD2AB52C0A2C8DCACA09084EF4CB494E4E0F2ECE8E2F89772908C9CE70CD2DF77675F7F2D1750C09514BCECFCFCE4C8DCF4BCC4DB5F575F4F4F3F57771F571F6F70B01B25D83D4120B0A722092A599504EB16D715E3E00&iv_guid=DF838310BFAAE8F1B486001A64C54696]
    Regarding accessing CMC with SSO, it's not recomended at all as if you break this access, than you can't connect anymore to the CMC and modify settings.
    Regards,
    Philippe
    Edited by: Philippe Tavares on Feb 15, 2011 4:11 PM

  • Issue with LDAP login authentication in CMC console

    We have a existing issues with Business Objects BOE XIR2 SP2 and LDAP authentication with the BOE CMC Console.
    We use websphere as the application server and it is installed on the same machine (Solaris) as BOE.
    We have this issue on both our production and our recently rebuilt development environment to duplicate the issue.
    Both environment have configured LDAP over SSL and we can login to BOE Infoview Reports with LDAP and we can map groups and users if we login to CMC but we can not login to CMC with secLDAP.
    The specific error still being shown is "Security plugin error: Failed to set parameters on plugin".
    Both environments (DEV and PROD) are fresh installs of BOE XIR2 SP2.
    Any ideas are much appreciated
    Thankyou

    The CMC in XIR2 used com components for the SSL (rather than java like infoview) and I'm betting the WAS deployment is not finding them. Is WAS on a seperate server or is BOE installed there as well?
    I'm not familiar with any regular fixes for an issue like this. If no other replies I'd recommend opening a case with either deployment(WAS on "nix") or authentication(WAS on windows) to see if they can trace down the problem.
    Regards,
    Tim

  • HR  Report  with LDB.

    Hi guys,
    i want to develop one report on Employee detail,
    using LDB PNP with infotype 0000,0001,0006. and table pa0000,pa0001,pa0006.
    selection criteria is based on
    pernr ,endda,begda, personal area,personal sub area.
    can any body please give me the detail of the the report.
    what step i need to do.
    give source code help please...
    it urgent please....
    Thanks

    Look at this code
    type-pools: slis.                                      "ALV Declarations
    nodes: pernr.
    INFOTYPES: 0000, 0001, 0002, 0006, 0008, 0014, 0105, 0121.
    SELECTION-SCREEN BEGIN OF BLOCK pcode WITH FRAME TITLE text-s01.
    SELECT-OPTIONS: so_pcode FOR p0006-pstlz.
    SELECTION-SCREEN END OF BLOCK pcode.
    TYPES: BEGIN OF t_output,
      pernr       TYPE p0001-pernr,   "personnel name
      anredtxt    TYPE t522t-atext,   "title (based on p0002-anred)
      fname       TYPE p0002-vorna,   "first name
      lname       TYPE p0002-nachn,   "last name
      orgtx       TYPE t527x-orgtx,   "dept
      fte         TYPE p0008-bsgrd,   "fte
      parking(20) TYPE c,
      payslip     TYPE t526-sachn,        "payslip address
      telno       TYPE p0105-usrid_long,  "tel number(p0105-usrty = 0020)
      email       TYPE p0105-usrid_long,  "email (p0105-usrty = MAIL)
      postcode    type p0006-pstlz,
    END OF t_output.
    DATA: it_output TYPE STANDARD TABLE OF t_output INITIAL SIZE 0,
          wa_output TYPE t_output.
    *ALV data declarations
    data: fieldcatalog   type slis_t_fieldcat_alv with header line,
          gd_tab_group   type slis_t_sp_group_alv,
          gd_layout      type slis_layout_alv,
          gd_repid       like sy-repid,
          gt_events      type slis_t_event,
          gd_prntparams  type slis_print_alv,
          gd_count(6)    type n,
          gd_outtext(70) type c,
          gd_lines       type i.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    clear: gd_count.
    GET pernr.
    * Infotype 0121 is used to store multiple contracts for personnel.
    * Field p0121-hpern contains the personnel number for the main contract.
      PROVIDE * from p0121 between pn-begda and pn-endda.
    *   Check if main contract
        if p0121-pernr ne p0121-hpern.
          reject.
        endif.
      ENDPROVIDE.
      add 1 to gd_count.
      concatenate 'Processing personnel data'(m10) gd_count into gd_outtext
                separated by ' '.
    * Display indicator for employee count
      perform progress_indicator using gd_outtext.
    * Retrieve datd from infotypes
      rp_provide_from_last p0000 space pn-begda pn-endda.
      rp_provide_from_last p0001 space pn-begda pn-endda.
      rp_provide_from_last p0002 space pn-begda pn-endda.
      rp_provide_from_last p0006 space pn-begda pn-endda.
      rp_provide_from_last p0008 space pn-begda pn-endda.
      rp_provide_from_last p0014 space pn-begda pn-endda.
    * Check post code
      CHECK p0006-pstlz IN so_pcode.  "cp
    * Post code
      wa_output-postcode = p0006-pstlz.
    * Personnel number
      wa_output-pernr = pernr-pernr.
    * Personnel title
      SELECT SINGLE atext
        FROM t522t
        INTO wa_output-anredtxt
       WHERE sprsl EQ sy-langu AND
             anred EQ p0002-anred.
    * First name
      wa_output-fname = p0002-vorna.
    * Last name
      wa_output-lname = p0002-nachn.
    * Organizational Unit text (dept)
      SELECT SINGLE orgtx
        FROM t527x
        INTO wa_output-orgtx
       WHERE sprsl EQ sy-langu AND
             orgeh EQ p0001-orgeh AND
             endda GE sy-datum.
    * FTE
      wa_output-fte = p0008-bsgrd.
    * Parking / travel deducted?
      CASE p0014-lgart.
        WHEN '7180' OR '7181' OR '7182'.
          wa_output-parking = text-002.
        WHEN '7183'.
          wa_output-parking = text-001.
        WHEN '7171' OR '7172' or '7173' or '7174' or
             '7175' or '7176' or '7177' or '7178'.
          wa_output-parking = text-003.
      ENDCASE.
    * Payslip Address
      SELECT SINGLE sachn
        FROM t526
        INTO wa_output-payslip
       WHERE werks EQ p0001-werks AND
             sachx EQ p0001-sacha.
      PROVIDE * from p0105 between pn-begda and pn-endda.
    *   Telephone numbers
        if p0105-usrty = '0020'.
           wa_output-telno = p0105-usrid_long.
        endif.
    *   Email address
        if p0105-usrty = 'MAIL'.
           wa_output-email = p0105-usrid_long.
        endif.
      ENDPROVIDE.
      append wa_output to it_output.
      clear: wa_output.
    *END-OF-SELECTION.
    END-OF-SELECTION.
    describe table it_output lines gd_lines.
    if gd_lines gt 0.
      perform build_fieldcatalog.
      perform build_layout.
      perform display_alv_report.
    else.
      message i003(zp) with 'No records found'.
    endif.
    *&      Form  PROGRESS_INDICATOR
    *       Displays progress indicator on SAP screen
    form progress_indicator using p_text.
      call function 'SAPGUI_PROGRESS_INDICATOR'
          exporting
    *         PERCENTAGE = 0
               text       = p_text.
    endform.                    " PROGRESS_INDICATOR
    *&      Form  BUILD_FIELDCATALOG
    *       Build Fieldcatalog for ALV Report
    form build_fieldcatalog.
      fieldcatalog-fieldname   = 'PERNR'.
      fieldcatalog-seltext_m   = 'Personnel No.'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 10.
    *  fieldcatalog-emphasize   = 'X'.
    *  fieldcatalog-key         = 'X'.
    *  fieldcatalog-do_sum      = 'X'.
    *  fieldcatalog-no_zero     = 'X'.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'ANREDTXT'.
      fieldcatalog-seltext_m   = 'Title'.
      fieldcatalog-col_pos     = 1.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'FNAME'.
      fieldcatalog-seltext_m   = 'First Name'.
      fieldcatalog-col_pos     = 2.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'LNAME'.
      fieldcatalog-seltext_m   = 'Last Name'.
      fieldcatalog-col_pos     = 3.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'ORGTX'.
      fieldcatalog-seltext_m   = 'Department'.
      fieldcatalog-col_pos     = 4.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'FTE'.
      fieldcatalog-seltext_m   = 'FTE'.
      fieldcatalog-col_pos     = 5.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PARKING'.
      fieldcatalog-seltext_m   = 'Parking/Metrocard'.
      fieldcatalog-col_pos     = 6.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'PAYSLIP'.
      fieldcatalog-seltext_m   = 'Payslip Add.'.
      fieldcatalog-col_pos     = 7.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'TELNO'.
      fieldcatalog-seltext_m   = 'Telephone'.
      fieldcatalog-col_pos     = 8.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'EMAIL'.
      fieldcatalog-seltext_m   = 'E-mail'.
      fieldcatalog-col_pos     = 9.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
      fieldcatalog-fieldname   = 'POSTCODE'.
      fieldcatalog-seltext_m   = 'Post code'.
      fieldcatalog-col_pos     = 10.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog.
    endform.                    " BUILD_FIELDCATALOG
    *&      Form  BUILD_LAYOUT
    *       Build layout for ALV grid report
    form build_layout.
      gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
      gd_layout-zebra             = 'X'.
    endform.                    " BUILD_LAYOUT
    *&      Form  DISPLAY_ALV_REPORT
    *       Display report using ALV grid
    form display_alv_report.
      gd_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
                is_layout               = gd_layout
                it_fieldcat             = fieldcatalog[]
                i_save                  = 'X'
           tables
                t_outtab                = it_output
           exceptions
                program_error           = 1
                others                  = 2.
      if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
    endform.                    " DISPLAY_ALV_REPORT

  • Issue with Administrator Login to CMC

    Hi,
    I have been trying to log on as 'Administrator' to CMC with blank password, but it is failing. I was able to log in before without any password. I am getting the following error message:
    "Enterprise authentication could not log you on. Please make sure your logon information is correct. (FWB 00008)"
    Any thoughts why this might be happening now?
    We are on Linux server with Business Objects Edge 3.1
    Thanks...

    Hi
      Make sure by default your CMC page is pointing to same CMS that you were able to logon
    Regards
    Ashwini

  • Usage of LDB

    I want to try a report where I can use LDB.So tried as follows
    Report zgldb.
    Nodes:pap.
    When I just compile it says 'PAP is not a node of Logical database _S'..
    what does this mean.How to use LDB in a report?
    Thank you

    Dear Gopi,
    Logical Databases
    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.
    There are two ways of using a logical database: Either by linking it with an executable program, or by using the function module LDB_PROCESS in any ABAP program.
    When you link a logical database to an executable program, the user can enter values on the selection screen, and the data read by the logical database is passed back to the program using the interface work areas. If you call the logical database using a function module, the selection screen is not displayed. The calling program does not have to provide interface work areas. Instead, it uses special subroutines called callback routines, which are called by the function module and filled with the required data.
    Linking a Logical DB to an Executable Program
    When you link an executable program to a logical database by entering the name of the logical database in the program attributes, the subroutines of the logical database program and the event blocks of the executable program form a modularized program for reading and processing data. The individual processing blocks are called in a predefined sequence by the runtime environment (see the diagram in the section Logical Databases and Contexts). The runtime sequence is controlled by the structure, selections, and PUT statements in the logical database, and by the GET statements in the executable program.
    Selection Screen
    If you specify a logical database in the attributes of an executable program, this affects the standard selection screen of the program. It contains both the selection fields from the logical database and those from the program itself. You can specify which of the logical database selections are relevant for your program, and should therefore appear on the screen, by declaring interface work areas for the relevant nodes.
    Runtime Behavior
    The following list shows the sequence in which the ABAP runtime environment calls the subroutines of the logical database and the event blocks in the executable program. The runtime environment executes a series of processors (selection screen processor, reporting processor). The ABAP code listed below shows the processing blocks that belong to the individual steps.
    Initialization before the selection screen is processed.
    Subroutine:
    FORM INIT
    This subroutine is called once only before the selection screen is first displayed.
    Event block:
    INITIALIZATION.
    This event occurs once only before the selection screen is first displayed.
    PBO of the Selection screen Initialization before each occasion on which the selection screen is displayed (for example, to supply default values for key fields).
    Subroutine:
    FORM PBO.
    This subroutine is called each time the selection screen is sent (before it is displayed).
    Event block:
    AT SELECTION-SCREEN OUTPUT.
    This event is called each time the selection screen is sent (before it is displayed).
    The selection screen is displayed at the presentation server, and the user can enter data in the input fields.
    Input help (F4) or field help (F1) requests.
    Subroutines:
    FORM <par>_VAL.
    FORM <selop>_VAL.
    FORM <selop>-LOW_VAL.
    FORM <selop>-HIGH_VAL.
    If the user requests a list of possible entries for database-specific parameters <par> or selection criteria <selop>, these subroutines are called as required.
    If the user requests field help for these parameters, the subroutines are called with the ending _HLP instead of _VAL.
    Event blocks:
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR <par>.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR <selop>-LOW.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR <selop>-HIGH.
    If the user requests a list of possible entries for database-specific parameters <par> or selection criteria <selop>, these events are triggered as required.
    If the user requests field help for these parameters, the events with the addition ON HELP-REQUEST occurs instead of ON VALUE-REQUEST.
    PAI of the selection screen. Checks to see whether the user has entered correct, complete, and plausible data. Also contains authorization checks. If an error occurs, you can program a user dialog and make the relevant fields ready for input again.
    Subroutines:
    FORM PAI USING FNAME MARK.
    The interface parameters FNAME and MARK are passed by the runtime environment.
    FNAME contains the name of a selection criterion or parameter on the selection screen.
    If MARK = SPACE, the user has entered a simple single value or range selection.
    If MARK = '*', the user has also entered selections on the Multiple Selection screen.
    Using the combination FNAME = '*' and MARK = 'ANY', you can check all entries at once when the user chooses a function or presses ENTER.
    Event blocks:
    AT SELECTION-SCREEN ON <fname>.
    Event for processing a particular input field.
    AT SELECTION-SCREEN ON END OF <fname>.
    Event for processing multiple selections.
    AT SELECTION-SCREEN.
    Event for processing all user input.
    Processing before reading data.
    Subroutine:
    BEFORE EVENT 'START-OF-SELECTION'.
    The logical database can use this subroutine for necessary actions before reading data, for example, initializing internal tables.
    Event block:
    START-OF-SELECTION.
    First event in an executable program after the selection screen has been processed. You can use this event block to prepare the program for processing data.
    Reading data in the logical database and processing in the executable program.
    Subroutine:
    FORM PUT_<node>
    The logical database reads the selected data of the node <node>.
    Event block:
    GET <table> [LATE].
    This event is triggered by the PUT statement in the above subroutine. This event block allows you to process the data read for <node> in the corresponding interface work area.
    Processing after reading data.
    Subroutine:
    AFTER EVENT 'END-OF-SELECTION'.
    The logical database can use this subroutine for necessary actions after reading data, for example, releasing memory space.
    Event block:
    END-OF-SELECTION.
    Last reporting event. You can use this event block to process the temporary dataset that you have created (for example, sort it).
    If a list was generated during the above steps, the list processor in the runtime environment takes control of the program and displays the list.
    Suppose TABLE1 is the root node and TABLE2 is its only subordinate node in a logical database. The processing steps for reading and processing data would then have the following hierarchical order:
    START-OF-SELECTION.
      FORM PUT_TABLE1.
      GET TABLE1.
        FORM PUT_TABLE2.
        GET TABLE2.
      GET TABLE1 LATE.
    END-OF-SELECTION.
    Authorization Checks in Logical Databases
    It makes sense to use authorization checks using the AUTHORITY-CHECK statement in the following subroutines in the database program or event blocks of the executable program:
    Subroutines in the database program:
    - PAI
    - AUTHORITY_CHECK_<table>
    Event blocks in the executable program:
    - AT SELECTION-SCREEN
    - AT SELECTION-SCREEN ON <fname>
    - AT SELECTION-SCREEN ON END OF <fname>
    - GET <table>
    Whether you place the authorization checks in the database program or in the executable program depends on the following:
    The structure of the logical database.
    For example, you should only check authorizations for company code if you actually read lines containing the company code at runtime.
    Performance
    Avoid repetitive checks (for example, within a SELECT loop).
    The separation of database access and application logic allows you to program all of your authorization checks centrally in the logical database program. This makes it easier to maintain large programming systems.
    Calling a Logical Database Using a Function Module
    From Release 4.5A it is possible to call logical databases independently from any ABAP program. Previously it was only possible to link a logical database to an executable program, in which the processing blocks of the logical database and the program were controlled by the ABAP runtime environment.
    To call a logical database from another program, use the function module LDB_PROCESS. This allows you to use the logical database as a routine for reading data. You can call more than one logical database from the same program. You may also call the same logical database more than once from the same program. In the past, it was only possible to use a logical database more than once or use more than one logical database by calling a further executable program using SUBMIT. These programs had to be linked to the corresponding logical database, and the data had to be passed to the calling program using ABAP memory or a similar technique.
    When you call a logical database using the function module LDB_PROCESS, its selection screen is not displayed. Instead, you fill the selections using the interface parameters of the function module. The logical database does not trigger any GET events in the calling program, but passes the data back to the caller in callback routines. Calling a logical database using LDB_PROCESS thus decouples the actual data retrieval from the preceding selection screen processing and the subsequent data processing.
    There is no need to adapt a logical database for use with LDB_PROCESS, except in the following cases: If you do not adapt a logical database, it is not possible to use the function module to call the same logical database more than once. The PAI subroutine is not called when you use LDB_PROCESS. This means that none of the checks for selections programmed in it are performed. You can work around these restrictions by including the subroutines LDB_PROCESS_INIT and LDB_PROCESS_CHECK_SELECTIONS in the database program.
    Runtime Behavior
    The subroutines in the logical database are called in the following sequence when you call the function module LDB_PROCESS:
    LDB_PROCESS_INIT
    INIT
    LDB_PROCESS_CHECK_SELECTIONS
    PUT <node>.
    None of the subroutines used to process the selection screen when you link the logical database to an executable program are called, neither does the runtime environment trigger any reporting events in the calling program. Instead, the PUT statements in the logical database trigger actions in the function module that call callback routines in the calling program. In other words, the function module catches the events that are otherwise processed by the runtime environment.
    Parameters of LDB_PROCESS
    The function module has the following import parameters:
    LDBNAME
    Name of the logical database you want to call.
    VARIANT
    Name of a variant to fill the selection screen of the logical database. The variant must already be assigned to the database program of the logical database. The data is passed in the same way as when you use the WITH SELECTION-TABLE addition in a SUBMIT statement.
    EXPRESSIONS
    In this parameter, you can pass extra selections for the nodes of the logical database for which dynamic selections are allowed. The data type of the parameter RSDS_TEXPR is defined in the type group RSDS. The data is passed in the same way as when you use the WITH FREE SELECTION addition in a SUBMIT statement.
    FIELD_SELECTION
    You can use this parameter to pass a list of the required fields for the nodes of the logical database for which dynamic selections are allowed. The data type of the parameter is the deep internal table RSFS_FIELDS, defined in the type group RSFS. The component TABLENAME contains the name of the node and the deep component FIELDS contains the names of the fields that you want to read.
    The function module has the following tables parameters:
    CALLBACK
    You use this parameter to assign callback routines to the names of nodes and events. The parameter determines the nodes of the logical database for which data is read, and when the data is passed back to the program and in which callback routine.
    SELECTIONS
    You can use this parameter to pass input values for the fields of the selection screen of the logical database. The data type of the parameter corresponds to the structure RSPARAMS in the ABAP Dictionary. The data is passed in the same way as when you use the WITH SELECTION-TABLE addition in a SUBMIT statement.
    If you pass selections using more than one of the interface parameters, values passed in SELECTIONS and EXPRESSIONS overwrite values for the same field in VARIANT.
    Read Depth and Callback Routines
    When you link a logical database with an executable program, the GET statements determine the depth to which the logical database is read. When you call the function module LDB_PROCESS, you determine the depth by specifying a node name in the CALLBACK parameter. For each node for which you request data, a callback routine can be executed at two points. These correspond to the GET and GET LATE events in executable programs. In the table parameter CALLBACK, you specify the name of the callback routine and the required execution point for each node. A callback routine is a subroutine in the calling program or another program that is to be executed at the required point.
    For the GET event, the callback routine is executed directly after the data has been read for the node, and before the subordinate nodes are processed. For the GET_LATE event, the callback routine is processed after the subordinate nodes have been processed.
    The line type of the table parameter CALLBACK is the flat structure LDBCB from the ABAP Dictionary. It has the following components:
    LDBNODE
    Name of the node of the logical database to be read.
    GET
    A flag (contents X or SPACE), to call the corresponding callback routine at the GET event.
    GET_LATE
    A flag (contents X or SPACE), to call the corresponding callback routine at the GET LATE event.
    CB_PROG
    Name of the ABAP program in which the callback routine is defined.
    CB_FORM
    Name of the callback routine.
    If you pass an internal table to the CALLBACK parameter, you must fill at least one of the GET or GET_LATE columns with X for each node (you may also fill both with X).
    A callback routine is a subroutine that must be defined with the following parameter interface:
    FORM <subr> USING <node> LIKE LDBCB-LDBNODE
                      <wa>   [TYPE <t>]
                      <evt>
                      <check>.
    The parameters are filled by the function module LDB_PROCESS. They have the following meaning:
    <node> contains the name of the node.
    <wa> is the work area of the data read for the node. The program that calls the function module LDB_PROCESS and the program containing the callback routine do not have to declare interface work areas using NODES or TABLES. If the callback routine is only used for one node, you can use a TYPE reference to refer to the data type of the node in the ABAP Dictionary. Only then can you address the individual components of structured nodes directly in the subroutine. If you use the callback routine for more than one node, you cannot use a TYPE reference. In this case, you would have to address the components of structured nodes by assigning them one by one to a field symbol.
    <evt> contains G or L, for GET or GET LATE respectively. This means that the subroutine can direct the program flow using the contents of <evt>.
    <check> allows the callback routine to influence how the program is processed further (but only if <evt> contains the value G). The value X is assigned to the parameter when the subroutine is called. If it has the value SPACE when the subroutine ends, this flags that the subordinate nodes of the logical database should not be processed in the function module LDB_PROCESS. This is the same as leaving a GET event block using CHECK in an executable program. If this prevents unnecessary data from being read, it will improve the performance of your program.
    Exceptions of LDB_PROCESS
    LDB_ALREADY_RUNNING
    A logical database may not be called if it is still processing a previous call. If this occurs, the exception LDB_ALREADY_RUNNING is triggered.
    LDB_NOT_REENTRANT
    A logical database may only be called repeatedly if its database program contains the subroutine LDB_PROCESS_INIT, otherwise, this exception is triggered.
    LDB_SELECTIONS_NOT_ACCEPTED
    Error handling in the subroutine LDB_PROCESS_CHECK_SELECTIONS of the database program can trigger this exception. The error message is placed in the usual system fields SY-MSG....
    For details of further exceptions, refer to the function module documentation in the Function Builder.
    Example
    TABLES SPFLI.
    SELECT-OPTIONS S_CARR FOR SPFLI-CARRID.
    TYPE-POOLS: RSDS, RSFS.
    DATA: CALLBACK TYPE TABLE OF LDBCB,
          CALLBACK_WA LIKE LINE OF CALLBACK.
    DATA: SELTAB TYPE TABLE OF RSPARAMS,
          SELTAB_WA LIKE LINE OF SELTAB.
    DATA: TEXPR TYPE RSDS_TEXPR,
          FSEL  TYPE RSFS_FIELDS.
    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                     = ' '
              EXPRESSIONS                 = TEXPR
              FIELD_SELECTION             = FSEL
         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.
    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.
    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.
    A program-specific selection screen is defined at the beginning of the program. This requires the TABLES statement. Next, the required variables are defined for the interface.
    The internal table CALLBACK is filled so that various callback routines are called in the program for the two nodes SPFLI and SFLIGHT. For SPFLI, the routine is to be called for GET and GET_LATE, for SFLIGHT, only at the GET event.
    The internal table SELTAB is filled with values for the node SPFLI from the selection table S_CARR from the program-specific selection screen.
    The program then calls the function module LDB_PROCESS with these parameters.
    The subroutines CALLBACK_SPFLI and CALLBACK_SFLIGHT serve as callback routines. The interface parameter WA is fully typed, so you can address the individual components of the work areas. The events GET and GET LATE are handled differently in CALLBACK_SPFLI.
    Regards,
    Rajesh K Soman
    <b>Please reward points if found helpful</b>

Maybe you are looking for

  • How do I activate Bonjour for Windows XP?

    When I go to my settings and I try to turn on sharing, nothing appears except "The Bonjour service has been disabled. Bonjour is required to share music with others. Please re-enable the service to use this feature." How do I do this on a Windows XP?

  • Connect a 6280 to a palm t3

    Hi, I have unsuccessfully been trying to connect my brand new 6280 to my tungsten t3 palm via bluetooth The phonelink application does not recognize this model... Would you have a hint? Do you know which initialization string to use? Thanks in advanc

  • Want to SYNC, not restore

    Unfortunately, I plugged my iPhone into a work notebook to charge last week, and it synched with a blank Outlook calendar. It wiped all calendar entries *except* those for October, November and future months, and recurring entries like birthdays. Ton

  • Changing system name in copied function

    Hi Guys, I have copied a bunch of functions, however the system is not allowing me to change the System Name in Actions tab. Can anyone help? Thanks

  • CFLDAP Timeout Parameter Working?

    I need to time out my CFLDAP queries as we are having trouble with the logins hanging. We have so many people logging into our system that very quickly all the active threads are used up, everything else gets queued, and in a matter of seconds we're