Skip to Content
0
Former Member
Mar 27, 2006 at 06:50 PM

Data source Enhancemnt

98 Views

HI ,

I want to do data source enhancemnt as per the followint logic

IF xvbak-vbtyp = 'K' OR xvbak-vbtyp = 'H').

SELECT vbeln posnn rfmng vbtyp_n FROM vbfa

INTO TABLE xvbfa

WHERE vbelv = xvbak-vbeln

AND posnv = xvbap-posnr

LOOP AT xvbfa.

CASE xvbfa-vbtyp_n.

WHEN 'O'.

doccnt = doccnt + 1.

WHEN 'S'.

canccnt = canccnt + 1.

ENDCASE.

ENDLOOP.

IF doccnt > canccnt.

get the Amount and quantity .

<b>

i wrote the following logic in user exit for 2lis_11_vaitm</b>

IF ( S_MC11VA0ITM-VBTYP = 'K' OR S_MC11VA0ITM-VBTYP = 'H' ).

CLEAR: DOCCNT, CANCCNT, NOCOUNT.

CLEAR I_VBFA.

CLEAR L_VBELN.

SELECT SINGLE VBELN FROM VBAK INTO L_VBELN

WHERE VBELN = S_MC11VA0ITM-VBELN .

SELECT VBELN POSNN RFMNG VBTYP_N FROM VBFA INTO TABLE I_VBFA WHERE VBELV = L_VBELN AND POSNV = S_MC11VA0ITM-POSNR .

LOOP AT I_VBFA.

CASE I_VBFA-VBTYP_N.

WHEN 'O'.

DOCCNT = DOCCNT + 1.

WHEN 'S'.

CANCCNT = CANCCNT + 1.

WHEN OTHERS.

NOCOUNT = NOCOUNT + 1 .

ENDCASE.

ENDLOOP.

IF ( DOCCNT > CANCCNT ) .

S_MC11VA0ITM-ZZCRDBAMT = S_MC11VA0ITM-NETWR.

S_MC11VA0ITM-ZZCRDBQTY = S_MC11VA0ITM-KWMENG.

ENDIF.

ENDIF.

IS THIS logic correct.