‎2007 Sep 10 6:00 PM
HI,
this is my select program.
SELECT BELNR XBLNR INTO TABLE T_GET_ACCDOCU " SELECTING THE ACCOUNT
" NUMBER AND REFERENCE
" NUMBER INTO TABLE
FROM BKPF
WHERE BLART = P_BLART.
when i output this, i can see several lines.and now using this table i process the following code...
LOOP AT T_GET_ACCDOCU INTO WA_GET_ACCDOCU.
GET THE DEALER NUMBER
CLEAR t_GET_DEALER.
SELECT VBELN KUNNR INTO TABLE t_GET_DEALER
FROM LIKP
WHERE VBELN = WA_GET_ACCDOCU-XBLNR
AND VBTYP = 'J'.
ENDLOOP.
now when i output this table i can see only 1 record being output..but there are more tha 1 records present ....i can see all of them when i debug the program but they are being overwritten each time a new record is appeneded to the table..
can any one tell me where the code went wrong...
thank you..
challa
‎2007 Sep 10 7:29 PM
Hi,
select belnr xblnr into table t_get_accdocu from BKPF where
blart = p_blart.
if not t_get_accdocu[] is initial.
select vbeln kunnr into table t_get_dealer from LIKP for all entries in t_get_accdocu where vbeln = t_get_accdocu.
endif.
take a final internal table, which consists of following table BELNR XBLNR VBELN KUNNR.
loop at t_get_accdocu.
read table t_get_dealer with key VBELN = t_get_adddocu-XBLNR.
if sy-subrc eq 0.
move : t_get_accdocu-belnr to gt_output-belnr,
t_get_accdocu-xblnr to gt_output-xblnr,
t_get_dealer-vbeln to gt_output-vbeln,
t_get_dealer-kunnr to gt_output-kunnr.
append gt_output.
clear gt_output.
endloop.
And use write statement to display the result in the output list or use ALV grid display.
Thanks,
Sri.
‎2007 Sep 10 6:03 PM
Change it to appending ie
SELECT VBELN KUNNR APPENDING TABLE t_GET_DEALER
FROM LIKP..
But I wouldn't suggest using a SELECT inside a loop..
Regards,
Arya
‎2007 Sep 10 6:15 PM
HI,
can u suggest the other way if not using select in loop..i heard we can use for all entries but i dont know how to use use it..can u please give the code..
thanks,
challa
‎2007 Sep 10 6:07 PM
Does this work:
SELECT belnr xblnr
INTO TABLE t_get_accdocu
FROM bkpf
WHERE blart = p_blart.
LOOP AT t_get_accdocu INTO wa_get_accdocu.
CLEAR t_get_dealer.
SELECT vbeln kunnr INTO TABLE t_get_dealer
FROM likp
WHERE vbeln = wa_get_accdocu-xblnr
AND vbtyp = 'J'.
WRITE : /001 t_get_dealer-vbeln, t_get_dealer-kunnr.
ENDLOOP.
Rob
‎2007 Sep 10 6:24 PM
try this..
if not t_get_accdocu[] is initial.
SELECT VBELN KUNNR INTO TABLE t_GET_DEALER
FROM LIKP for all entries in T_GET_ACCDOCU
WHERE VBELN = WA_GET_ACCDOCU-XBLNR
AND VBTYP = 'J'.
endif.
Regards,
Arya
‎2007 Sep 10 7:29 PM
Hi,
select belnr xblnr into table t_get_accdocu from BKPF where
blart = p_blart.
if not t_get_accdocu[] is initial.
select vbeln kunnr into table t_get_dealer from LIKP for all entries in t_get_accdocu where vbeln = t_get_accdocu.
endif.
take a final internal table, which consists of following table BELNR XBLNR VBELN KUNNR.
loop at t_get_accdocu.
read table t_get_dealer with key VBELN = t_get_adddocu-XBLNR.
if sy-subrc eq 0.
move : t_get_accdocu-belnr to gt_output-belnr,
t_get_accdocu-xblnr to gt_output-xblnr,
t_get_dealer-vbeln to gt_output-vbeln,
t_get_dealer-kunnr to gt_output-kunnr.
append gt_output.
clear gt_output.
endloop.
And use write statement to display the result in the output list or use ALV grid display.
Thanks,
Sri.
‎2007 Sep 10 8:18 PM
THIS IS MY CODE ..CAN U CORRECT THIS....
*TABLE TYPE TO STORE CUSTOMER/DEALER AND DOCUMENT CATEGORY
TYPES: BEGIN OF TY_GET_ACCDOCU,
BELNR LIKE BKPF-BELNR,
XBLNR LIKE BKPF-XBLNR,
END OF TY_GET_ACCDOCU.
TYPES : BEGIN OF TY_GET_DEALER ,
VBELN LIKE LIKP-VBELN,
KUNNR LIKE LIKP-KUNNR,
BWART LIKE LIPS-BWART,
END OF TY_GET_DEALER.
XBLNR TYPE BKPF-XBLNR,
KUNNR TYPE LIKP-KUNNR,
VBTYP TYPE LIKP-VBTYP,
END OF TY_GET_DEALER.
************************************************************************
Data Definitions *
----
*Internal Table and work area decleration
DATA: T_GET_DEALER TYPE STANDARD TABLE OF TY_GET_DEALER,
WA_GET_DEALER TYPE TY_GET_DEALER.
DATA:T_GET_ACCDOCU TYPE STANDARD TABLE OF TY_GET_ACCDOCU,
WA_GET_ACCDOCU TYPE TY_GET_ACCDOCU.
*
*----
SELECTION-SCREEN DEFINITION
*----
*Selection screen document date, Document Type and document number
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SKIP 2.
SELECT-OPTIONS: S_DATE FOR BKPF-BLDAT,
P_VGART LIKE MKPF-VGART,
S_BELNR FOR BKPF-BELNR.
PARAMETERS: P_BLART LIKE BKPF-BLART DEFAULT 'WL' OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
CHECK IF DATE IS INITIAL OR NOT.
IF NOT S_DATE IS INITIAL
AND S_BELNR IS INITIAL.
SELECT BELNR XBLNR INTO TABLE T_GET_ACCDOCU " SELECTING THE ACCOUNT
" NUMBER AND REFERENCE
" NUMBER INTO TABLE
FROM BKPF
WHERE BLDAT IN S_DATE
AND BLART = P_BLART.
AND WERKS = 'NA40'.
ENDIF.
*CHECK IF DATE IS INITIAL OR NOT
IF S_DATE IS INITIAL AND
S_BELNR IS INITIAL.
SELECT BELNR XBLNR INTO TABLE T_GET_ACCDOCU " SELECTING THE ACCOUNT
" NUMBER AND REFERENCE
" NUMBER INTO TABLE
FROM BKPF
WHERE BLART = P_BLART.
AND BUKRS = 'NA40'.
ENDIF.
*CHEK IF REFERNECE NUMBER IS INITAL OR NOT
IF NOT S_BELNR IS INITIAL
AND S_DATE IS INITIAL.
SELECT BELNR XBLNR INTO TABLE T_GET_ACCDOCU " SELECTING THE ACCOUNT
" NUMBER AND REFERENCE
" NUMBER INTO TABLE
FROM BKPF
WHERE BLART = P_BLART
AND BELNR IN S_BELNR.
AND BUKRS = 'NA40'.
ENDIF.
CHEK IF REFERNECE NUMBER IS INITAL OR NOT
IF NOT S_DATE IS INITIAL AND
NOT S_BELNR IS INITIAL.
SELECT BELNR XBLNR INTO TABLE T_GET_ACCDOCU " SELECTING THE ACCOUNT
" NUMBER AND REFERENCE
" NUMBER INTO TABLE
FROM BKPF
WHERE BLART = P_BLART
AND BELNR IN S_BELNR
AND BLDAT IN S_DATE.
AND WWERKS = 'NA40'.
ENDIF.
LOOP AT T_GET_ACCDOCU INTO WA_GET_ACCDOCU.
WRITE 😕 WA_GET_ACCDOCU-BELNR, 20 WA_GET_ACCDOCU-XBLNR.
ENDLOOP.
LOOP AT T_GET_ACCDOCU INTO WA_GET_ACCDOCU.
SELECT VBELN KUNNR INTO WA_GET_DEALER
FROM LIKP
WHERE VBELN = WA_GET_ACCDOCU-XBLNR
AND VBTYP = 'J'.
APPEND WA_GET_DEALER TO T_GET_DEALER.
ENDSELECT.
ENDLOOP.
ULINE.
LOOP AT T_GET_DEALER INTO WA_GET_DEALER.
WRITE:/ WA_GET_DEALER-VBELN, 20 WA_GET_DEALER-KUNNR.
ENDLOOP.
*IF NOT T_GET_DEALER IS INITIAL.
*
SELECT BWART INTO WA_GET_DEALER
FROM LIPS
FOR ALL ENTRIES IN T_GET_DEALER
WHERE VBELN = WA_GET_DEALER-VBELN.
*
*ENDIF.