‎2006 Jan 27 11:12 AM
Hi all,
Can u give me a sample program for accessing LDB
Help me soon
Points will be awarded
‎2006 Jan 27 11:44 AM
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.
‎2006 Jan 27 11:21 AM
‎2006 Jan 27 11:22 AM
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.
‎2006 Jan 27 11:22 AM
Pl check the example DEMO_PROGRAM_READ_TABLES_2 in your system.
Suresh
‎2006 Jan 27 11:23 AM
‎2006 Jan 27 11:33 AM
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
‎2006 Jan 27 11:44 AM
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.
‎2006 Jan 27 2:32 PM
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
‎2006 Jan 27 2:47 PM
hi jayasree,
can you explain your problem clearly..
regards
vijay
‎2006 Jan 27 2:54 PM
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
‎2006 Jan 27 3:19 PM
Hi,
can you check this program<b> RKPEP000</b>
this is Based on Dynamic selections and that is using LDB PSJ.
regards
vijay