Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

LDB

Former Member
0 Likes
1,189

Hi all,

Can u give me a sample program for accessing LDB

Help me soon

Points will be awarded

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,152

hi,

check this code..

REPORT ZPROJPSJ MESSAGE-ID OK.

TABLES: PROJ,
        PRPS_R,
        AUFK,
        ACT01,
        DRAD,
        DRAT,
        ELM_PS,
        RSTHIE,
        CNDB.

INCLUDE MZNW2D01.

INITIALIZATION.
  FREE MEMORY ID 'SAPDBPSJ999  AUFRUFE'.

GET RSTHIE.
  CLEAR ITAB_HIERARCHY.
  MOVE-CORRESPONDING RSTHIE TO ITAB_HIERARCHY.

GET PROJ FIELDS OBJNR PSPID POST1.

GET PRPS_R FIELDS OBJNR POSID POST1.

GET AUFK FIELDS OBJNR KTEXT.

GET ACT01 FIELDS OBJNR AUFPL APLZL VORNR UVORN LTXA1.

GET DRAD.
  MOVE-CORRESPONDING DRAD TO ITAB_DOCUMENTS.
  APPEND ITAB_DOCUMENTS.

GET ELM_PS.
  ITAB_HIERARCHY-OBJNR = ELM_PS-OBJNR.
  CASE ELM_PS-OBTYP.
    WHEN 'PD'.
      ITAB_HIERARCHY-PSPNR = ELM_PS-PROJ_INT.
      WRITE ELM_PS-PROJ_EXT TO ITAB_HIERARCHY-NAME.
    WHEN 'PR'.
      ITAB_HIERARCHY-PSPNR = ELM_PS-PRPS_INT.
      WRITE ELM_PS-PRPS_EXT TO ITAB_HIERARCHY-NAME.
    WHEN 'NP'.
      ITAB_HIERARCHY-AUFNR = ELM_PS-AUFNR.
      WRITE ELM_PS-AUFNR TO ITAB_HIERARCHY-NAME.
    WHEN 'NV'.
      ITAB_HIERARCHY-VORNR = ELM_PS-VORNR.
      WRITE ELM_PS-AUFNR TO ITAB_HIERARCHY-NAME.
      IF ACT01-UVORN IS INITIAL.
        CONCATENATE ITAB_HIERARCHY-NAME ACT01-VORNR
                    INTO ITAB_HIERARCHY-NAME SEPARATED BY ' / '.
      ELSE.
        CONCATENATE ITAB_HIERARCHY-NAME ACT01-VORNR ACT01-UVORN
                    INTO ITAB_HIERARCHY-NAME SEPARATED BY ' / '.
      ENDIF.
  ENDCASE.
  IF ELM_PS-KTEXT IS INITIAL.
     ITAB_HIERARCHY-DESC = ITAB_HIERARCHY-NAME.
   ELSE.
    ITAB_HIERARCHY-DESC = ELM_PS-KTEXT.
  ENDIF.
  ITAB_HIERARCHY-OBTYP = ELM_PS-OBTYP.
  APPEND ITAB_HIERARCHY.
  CLEAR ITAB_HIERARCHY.

END-OF-SELECTION.
  PERFORM READ_DRAT.
  PERFORM SAVE_PROJECT_HIERARCHY.

*---------------------------------------------------------------------*
*       FORM READ_DRAT                                                *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM READ_DRAT.
  DATA: C TYPE CURSOR.
  DATA: ITAB_DRAT LIKE DRAT.

  CHECK NOT ITAB_DOCUMENTS[] IS INITIAL.
  SORT ITAB_DOCUMENTS BY DOKAR DOKNR DOKVR DOKTL.
  OPEN CURSOR C FOR
    SELECT * FROM DRAT
           FOR ALL ENTRIES IN ITAB_DOCUMENTS
           WHERE DOKAR = ITAB_DOCUMENTS-DOKAR
             AND DOKNR = ITAB_DOCUMENTS-DOKNR
             AND DOKVR = ITAB_DOCUMENTS-DOKVR
             AND DOKTL = ITAB_DOCUMENTS-DOKTL
           ORDER BY PRIMARY KEY.

  DO.
    FETCH NEXT CURSOR C INTO CORRESPONDING FIELDS OF ITAB_DRAT.
    IF NOT SY-SUBRC IS INITIAL.
      CLOSE CURSOR C.
      EXIT.
    ENDIF.
    READ TABLE ITAB_DOCUMENTS WITH KEY DOKAR = ITAB_DRAT-DOKAR
                                       DOKNR = ITAB_DRAT-DOKNR
                                       DOKVR = ITAB_DRAT-DOKVR
                                       DOKTL = ITAB_DRAT-DOKTL
                              BINARY SEARCH.
    LOOP AT ITAB_DOCUMENTS FROM SY-TABIX.
      IF ITAB_DOCUMENTS-DOKAR <> ITAB_DRAT-DOKAR OR
         ITAB_DOCUMENTS-DOKNR <> ITAB_DRAT-DOKNR OR
         ITAB_DOCUMENTS-DOKVR <> ITAB_DRAT-DOKVR OR
         ITAB_DOCUMENTS-DOKTL <> ITAB_DRAT-DOKTL.
        EXIT.
      ENDIF.
      IF ITAB_DOCUMENTS-DKTXT IS INITIAL OR
         ITAB_DRAT-LANGU      =  SY-LANGU.
        ITAB_DOCUMENTS-DKTXT = ITAB_DRAT-DKTXT.
        ITAB_DOCUMENTS-LANGU = ITAB_DRAT-LANGU.
        MODIFY ITAB_DOCUMENTS.
      ENDIF.
    ENDLOOP.
  ENDDO.
  SORT ITAB_DOCUMENTS BY OBJKY DOKAR DOKNR DOKVR DOKTL.
ENDFORM.


*---------------------------------------------------------------------*
*       FORM SAVE_PROJECT_HIERARCHY                                   *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM SAVE_PROJECT_HIERARCHY.
  CALL FUNCTION 'ENQUEUE_EC_CNDB'
       EXPORTING
            RELID          = '00'
            SRTFD          = 'SAP         DIRECTORY'
            _WAIT          = 'X'
       EXCEPTIONS
            FOREIGN_LOCK   = 1
            SYSTEM_FAILURE = 2
            OTHERS         = 3.
  IF NOT SY-SUBRC IS INITIAL.
    IF SY-SUBRC = 1.
      MESSAGE I501 WITH SY-MSGV1 RAISING DIR_ENTRY_NOT_SAVED.
    ENDIF.
    EXIT.
  ENDIF.
  IMPORT CNDBDIR TO ITAB_CNDBDIR
         FROM DATABASE CNDB(00) ID 'SAP         DIRECTORY'.
  READ TABLE ITAB_HIERARCHY INDEX 1.
  CLEAR CNDBDIR_TMP.
  CNDBDIR_TMP-RELID    = 'W2'.
  CNDBDIR_TMP-SRTFD    = ITAB_HIERARCHY-OBJNR.
  CNDBDIR_TMP-DBPROG   = 'SAPDBPSJ'.
  CNDBDIR_TMP-REPORT   = SY-CPROG.
  CNDBDIR_TMP-DATUM    = SY-DATUM.
  CNDBDIR_TMP-DATLO    = SY-DATLO.
  CNDBDIR_TMP-TIMLO    = SY-TIMLO.
  SORT ITAB_CNDBDIR BY RELID SRTFD.
  READ TABLE ITAB_CNDBDIR WITH KEY RELID = 'W2'
                                   SRTFD = ITAB_HIERARCHY-OBJNR
                                   BINARY SEARCH.
  IF SY-SUBRC IS INITIAL.
    DELETE ITAB_CNDBDIR INDEX SY-TABIX.
  ENDIF.
  ITAB_CNDBDIR = CNDBDIR_TMP.
  INSERT ITAB_CNDBDIR INDEX SY-TABIX.
  EXPORT CNDBDIR FROM ITAB_CNDBDIR
         TO DATABASE CNDB(00) ID 'SAP         DIRECTORY'.

  CALL FUNCTION 'DEQUEUE_EC_CNDB'
       EXPORTING
            RELID = '00'
            SRTFD = 'SAP         DIRECTORY'.

  EXPORT ITAB_HIERARCHY TO DATABASE CNDB(W2) ID ITAB_CNDBDIR-SRTFD.
  EXPORT ITAB_DOCUMENTS TO DATABASE CNDB(W3) ID ITAB_CNDBDIR-SRTFD.
ENDFORM.

10 REPLIES 10
Read only

Former Member
0 Likes
1,152

Hi,

check program RFITEMGL

Regards

Amole

Read only

Former Member
0 Likes
1,152

Hi Jayasree,

1. A Very simple program.

2. Create a new z program

and assign

PNP

logical database in ATTRIBUTES.

3. In source code, just write

REPORT abc.

tables: pernr.

GET pernr.

WRITE 😕 pernr-pernr.

regards,

amit m.

Read only

suresh_datti
Active Contributor
0 Likes
1,152

Pl check the example DEMO_PROGRAM_READ_TABLES_2 in your system.

Suresh

Read only

Former Member
0 Likes
1,152

hi,

just check this program RFBELJ00

regards

vijay

Read only

0 Likes
1,152

Hi,

PL take a look at PS_CALL_PSJ_EXAMPLE_CLASSIC. this will help you with regard to your other open post on the same topic.

Regards,

Suresh Datti

Read only

Former Member
0 Likes
1,153

hi,

check this code..

REPORT ZPROJPSJ MESSAGE-ID OK.

TABLES: PROJ,
        PRPS_R,
        AUFK,
        ACT01,
        DRAD,
        DRAT,
        ELM_PS,
        RSTHIE,
        CNDB.

INCLUDE MZNW2D01.

INITIALIZATION.
  FREE MEMORY ID 'SAPDBPSJ999  AUFRUFE'.

GET RSTHIE.
  CLEAR ITAB_HIERARCHY.
  MOVE-CORRESPONDING RSTHIE TO ITAB_HIERARCHY.

GET PROJ FIELDS OBJNR PSPID POST1.

GET PRPS_R FIELDS OBJNR POSID POST1.

GET AUFK FIELDS OBJNR KTEXT.

GET ACT01 FIELDS OBJNR AUFPL APLZL VORNR UVORN LTXA1.

GET DRAD.
  MOVE-CORRESPONDING DRAD TO ITAB_DOCUMENTS.
  APPEND ITAB_DOCUMENTS.

GET ELM_PS.
  ITAB_HIERARCHY-OBJNR = ELM_PS-OBJNR.
  CASE ELM_PS-OBTYP.
    WHEN 'PD'.
      ITAB_HIERARCHY-PSPNR = ELM_PS-PROJ_INT.
      WRITE ELM_PS-PROJ_EXT TO ITAB_HIERARCHY-NAME.
    WHEN 'PR'.
      ITAB_HIERARCHY-PSPNR = ELM_PS-PRPS_INT.
      WRITE ELM_PS-PRPS_EXT TO ITAB_HIERARCHY-NAME.
    WHEN 'NP'.
      ITAB_HIERARCHY-AUFNR = ELM_PS-AUFNR.
      WRITE ELM_PS-AUFNR TO ITAB_HIERARCHY-NAME.
    WHEN 'NV'.
      ITAB_HIERARCHY-VORNR = ELM_PS-VORNR.
      WRITE ELM_PS-AUFNR TO ITAB_HIERARCHY-NAME.
      IF ACT01-UVORN IS INITIAL.
        CONCATENATE ITAB_HIERARCHY-NAME ACT01-VORNR
                    INTO ITAB_HIERARCHY-NAME SEPARATED BY ' / '.
      ELSE.
        CONCATENATE ITAB_HIERARCHY-NAME ACT01-VORNR ACT01-UVORN
                    INTO ITAB_HIERARCHY-NAME SEPARATED BY ' / '.
      ENDIF.
  ENDCASE.
  IF ELM_PS-KTEXT IS INITIAL.
     ITAB_HIERARCHY-DESC = ITAB_HIERARCHY-NAME.
   ELSE.
    ITAB_HIERARCHY-DESC = ELM_PS-KTEXT.
  ENDIF.
  ITAB_HIERARCHY-OBTYP = ELM_PS-OBTYP.
  APPEND ITAB_HIERARCHY.
  CLEAR ITAB_HIERARCHY.

END-OF-SELECTION.
  PERFORM READ_DRAT.
  PERFORM SAVE_PROJECT_HIERARCHY.

*---------------------------------------------------------------------*
*       FORM READ_DRAT                                                *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM READ_DRAT.
  DATA: C TYPE CURSOR.
  DATA: ITAB_DRAT LIKE DRAT.

  CHECK NOT ITAB_DOCUMENTS[] IS INITIAL.
  SORT ITAB_DOCUMENTS BY DOKAR DOKNR DOKVR DOKTL.
  OPEN CURSOR C FOR
    SELECT * FROM DRAT
           FOR ALL ENTRIES IN ITAB_DOCUMENTS
           WHERE DOKAR = ITAB_DOCUMENTS-DOKAR
             AND DOKNR = ITAB_DOCUMENTS-DOKNR
             AND DOKVR = ITAB_DOCUMENTS-DOKVR
             AND DOKTL = ITAB_DOCUMENTS-DOKTL
           ORDER BY PRIMARY KEY.

  DO.
    FETCH NEXT CURSOR C INTO CORRESPONDING FIELDS OF ITAB_DRAT.
    IF NOT SY-SUBRC IS INITIAL.
      CLOSE CURSOR C.
      EXIT.
    ENDIF.
    READ TABLE ITAB_DOCUMENTS WITH KEY DOKAR = ITAB_DRAT-DOKAR
                                       DOKNR = ITAB_DRAT-DOKNR
                                       DOKVR = ITAB_DRAT-DOKVR
                                       DOKTL = ITAB_DRAT-DOKTL
                              BINARY SEARCH.
    LOOP AT ITAB_DOCUMENTS FROM SY-TABIX.
      IF ITAB_DOCUMENTS-DOKAR <> ITAB_DRAT-DOKAR OR
         ITAB_DOCUMENTS-DOKNR <> ITAB_DRAT-DOKNR OR
         ITAB_DOCUMENTS-DOKVR <> ITAB_DRAT-DOKVR OR
         ITAB_DOCUMENTS-DOKTL <> ITAB_DRAT-DOKTL.
        EXIT.
      ENDIF.
      IF ITAB_DOCUMENTS-DKTXT IS INITIAL OR
         ITAB_DRAT-LANGU      =  SY-LANGU.
        ITAB_DOCUMENTS-DKTXT = ITAB_DRAT-DKTXT.
        ITAB_DOCUMENTS-LANGU = ITAB_DRAT-LANGU.
        MODIFY ITAB_DOCUMENTS.
      ENDIF.
    ENDLOOP.
  ENDDO.
  SORT ITAB_DOCUMENTS BY OBJKY DOKAR DOKNR DOKVR DOKTL.
ENDFORM.


*---------------------------------------------------------------------*
*       FORM SAVE_PROJECT_HIERARCHY                                   *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM SAVE_PROJECT_HIERARCHY.
  CALL FUNCTION 'ENQUEUE_EC_CNDB'
       EXPORTING
            RELID          = '00'
            SRTFD          = 'SAP         DIRECTORY'
            _WAIT          = 'X'
       EXCEPTIONS
            FOREIGN_LOCK   = 1
            SYSTEM_FAILURE = 2
            OTHERS         = 3.
  IF NOT SY-SUBRC IS INITIAL.
    IF SY-SUBRC = 1.
      MESSAGE I501 WITH SY-MSGV1 RAISING DIR_ENTRY_NOT_SAVED.
    ENDIF.
    EXIT.
  ENDIF.
  IMPORT CNDBDIR TO ITAB_CNDBDIR
         FROM DATABASE CNDB(00) ID 'SAP         DIRECTORY'.
  READ TABLE ITAB_HIERARCHY INDEX 1.
  CLEAR CNDBDIR_TMP.
  CNDBDIR_TMP-RELID    = 'W2'.
  CNDBDIR_TMP-SRTFD    = ITAB_HIERARCHY-OBJNR.
  CNDBDIR_TMP-DBPROG   = 'SAPDBPSJ'.
  CNDBDIR_TMP-REPORT   = SY-CPROG.
  CNDBDIR_TMP-DATUM    = SY-DATUM.
  CNDBDIR_TMP-DATLO    = SY-DATLO.
  CNDBDIR_TMP-TIMLO    = SY-TIMLO.
  SORT ITAB_CNDBDIR BY RELID SRTFD.
  READ TABLE ITAB_CNDBDIR WITH KEY RELID = 'W2'
                                   SRTFD = ITAB_HIERARCHY-OBJNR
                                   BINARY SEARCH.
  IF SY-SUBRC IS INITIAL.
    DELETE ITAB_CNDBDIR INDEX SY-TABIX.
  ENDIF.
  ITAB_CNDBDIR = CNDBDIR_TMP.
  INSERT ITAB_CNDBDIR INDEX SY-TABIX.
  EXPORT CNDBDIR FROM ITAB_CNDBDIR
         TO DATABASE CNDB(00) ID 'SAP         DIRECTORY'.

  CALL FUNCTION 'DEQUEUE_EC_CNDB'
       EXPORTING
            RELID = '00'
            SRTFD = 'SAP         DIRECTORY'.

  EXPORT ITAB_HIERARCHY TO DATABASE CNDB(W2) ID ITAB_CNDBDIR-SRTFD.
  EXPORT ITAB_DOCUMENTS TO DATABASE CNDB(W3) ID ITAB_CNDBDIR-SRTFD.
ENDFORM.

Read only

0 Likes
1,152

Thanks a lot.

Now I need to do for dynamic selections ie. when i click dynamic selections, i will get list of definition say for example:master data def,org units def etc Then i will click Profit Center and Cost center ,I will get selection screen where i will enter some values .

Now what i need ??I need to fetch the corresponding records from the tables based on the selection.

Kindly help me so

Points will be awarded

Read only

0 Likes
1,152

hi jayasree,

can you explain your problem clearly..

regards

vijay

Read only

0 Likes
1,152

I NEED TO FETCH THE RECORDS BASED ON DYNAMIC SELECTIONS.

IF I CLICK PROFIT CENTER IN DYNAMIC SELECTIONS , I NEED TO FETCH ALL RECORDS BASED ON PROJ-PRCTR

KINDLY HELP ME SO

Read only

0 Likes
1,152

Hi,

can you check this program<b> RKPEP000</b>

this is Based on Dynamic selections and that is using LDB PSJ.

regards

vijay