2010 Mar 26 9:22 AM
Hi
I need to fetch data from table BKPF by checking fields in table PPDIT, hw do we relate both these tables....
Please provide inputs
Hi
I need to fetch data from table BKPF by checking fields in table PPDIT, hw do we relate both these tables....
Please provide inputs
2010 Mar 26 10:12 AM
Hi,
The relationship is with docnum with awkey and bukrs with bukrs.
Hope this logic is helpful to you....
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
PARAMETER: p_laufi TYPE REGUH-LAUFI OBLIGATORY,
p_bukrs TYPE t001-bukrs OBLIGATORY,
p_abkrs TYPE pa0001-abkrs,
p_lifnrs TYPE lfa1-lifnr,
p_lifnrd TYPE lfa1-lifnr,
p_BKREF TYPE LFBK-BKREF,
p_MONAT TYPE bsik-MONAT OBLIGATORY,
p_GJAHR TYPE bsik-GJAHR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
at SELECTION-SCREEN on p_bukrs.
SELECT SINGLE abkrs FROM table1 into p_abkrs WHERE bukrs = p_bukrs.
at SELECTION-SCREEN on p_bukrs.
SELECT SINGLE lifnrs FROM table1 into p_lifnrs WHERE bukrs = p_bukrs.
at SELECTION-SCREEN on p_bukrs.
IF p_bukrs = '1100'
or p_bukrs = '1500'.
ELSE.
SELECT SINGLE lifnrd FROM table1 into p_lifnrd WHERE bukrs = p_bukrs.
ENDIF.
at SELECTION-SCREEN on p_bukrs.
IF p_bukrs = '1100'
or p_bukrs = '1500'.
SELECT SINGLE BKREF FROM table1 into p_BKREF WHERE bukrs = p_bukrs
AND lifnrd = p_lifnrd.
ENDIF.
at SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name = 'P_ABKRS'
AND p_abkrs IS NOT INITIAL.
screen-input = 0.
MODIFY SCREEN.
ELSEIF screen-name = 'P_LIFNRS'
AND P_LIFNRS IS NOT INITIAL.
screen-input = 0.
MODIFY SCREEN.
ELSEIF screen-name = 'P_LIFNRD'
AND P_LIFNRS IS NOT INITIAL.
IF p_bukrs = '1100'
or p_bukrs = '1500'.
ELSE.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ELSEIF screen-name = 'P_BKREF'
AND P_BKREF IS NOT INITIAL.
IF p_bukrs = '1100'
or p_bukrs = '1500'.
screen-input = 0.
MODIFY SCREEN.
endif.
ENDIF.
ENDLOOP.
AT SELECTION-SCREEN on VALUE-REQUEST FOR p_lifnrd.
IF p_bukrs = '1100'
or p_bukrs = '1500'.
select lifnrd FROM table1 INTO TABLE it_lifnrd WHERE bukrs = p_bukrs.
IF sy-subrc = 0.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'p_lifnrd'
PVALKEY = ' '
DYNPPROG = sy-repid
DYNPNR = ' '
DYNPROFIELD = 'p_lifnrd'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
value_tab = it_lifnrd
FIELD_TAB = it_fieldtab
RETURN_TAB = it_select
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3 .
ENDIF.
IF it_select IS NOT INITIAL.
READ TABLE it_select INTO wa_select INDEX 1.
p_lifnrd = wa_select-FIELDVAL.
ENDIF.
ENDIF.
SELECT * FROM bsik into table it_bsik
WHERE bukrs in s_bukrs AND lifnr in s_lifnr
AND gjahr IN s_gjahr AND monat in s_monat.
IF sy-subrc NE 0.
MESSAGE 'No data selected for the selection made' TYPE 'E'.
ELSE.
IF '1100' in s_companycode
or '1500' in s_companycode .
SELECT * FROM BKPF
INTO TABLE it_bkpf FOR ALL ENTRIES IN it_bsik
WHERE bukrs = it_bsik-bukrs AND belnr = it_bsik-belnr
AND gjahr = it_bsik-gjahr.
IF sy-subrc = 0.
SELECT * FROM PPDIT
INTO TABLE it_ppdit FOR ALL ENTRIES IN it_bkpf
WHERE docnum = it_bkpf-awkey AND bukrs = it_bkpf-bukrs.
Fill range table with docnum and Get PERNR data from report RPCIPD00 into it_pernr
ENDIF.
endif.
SELECT * FROM Z_TABLE2
INTO TABLE it_table2
FOR ALL ENTRIES IN it_bsik
WHERE belnr = it_bsik-belnr.
IF sy-subrc = 0.
sort it_bsik by belnr.
sort it_table2 by belnr.
it_bsik1 = it_bsik.
it_table2_2 = it_table2.
delete ADJACENT DUPLICATES FROM it_bsik1 COMPARING belnr.
delete ADJACENT DUPLICATES FROM it_table2_2 COMPARING belnr.
DESCRIBE TABLE it_bsik LINES v_lines1.
DESCRIBE TABLE it_table2 LINES v_lines2.
IF v_lines1 = v_lines2.
MESSAGE 'Data already transferred for the given selection' TYPE 'E'.
ELSE.
LOOP AT it_bsik INTO wa_bsik WHERE augdt = space
AND augbl = space
AND blart = 'AB'.
IF '1100' in s_companycode
or '1500' in s_companycode .
READ TABLE it_bkpf INTO wa_bkpf with key bukrs = wa_bsik-bukrs belnr = wa_bsik-belnr
gjahr = wa_bsik-gjahr.
IF sy-subrc = 0.
READ TABLE it_ppdit INTO wa_ppdit with key docnum = wa_bkpf-awkey bukrs = wa_bkpf-bukrs.
IF sy-subrc = 0.
Calculate Amount
IF wa_bsik-belnr NE v_belnr.
Call Function module / BAPI
ENDIF.
ENDIF.
ENDIF.
ELSE.
v_wrbtr = v_wrbtr + wa_bsik-wrbtr.
IF wa_bsik-belnr NE v_belnr.
Call Function module / BAPI
ENDIF.
ENDIF.
v_belnr = wa_bsik=belnr.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
2010 Apr 15 3:21 PM
Thanks for all...solved myself
Below is the code for reference
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
PARAMETERS: p_laufi TYPE reguh-laufi OBLIGATORY,
p_bukrs TYPE t001-bukrs OBLIGATORY,
p_abkrs TYPE pa0001-abkrs MODIF ID g1,
p_lifnrs TYPE lfa1-lifnr MODIF ID g1,
p_lifnrd TYPE lfa1-lifnr MODIF ID g1,
p_bkref TYPE lfbk-bkref MODIF ID g1,
p_monat TYPE bsik-monat OBLIGATORY,
p_gjahr TYPE bsik-gjahr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |