Dear all,
I want to retrieve data for some fields in table J_1IEXCTAX and want to filter that data on the basis of
fields VALIDFROM and VALIDTO. But these two fields use the domain with conv routine INVDT.
So in one shot I wanted to write the code as
SELECT * FROM J_1IEXCTAX INTO CORRESPONDING FIELDS OF TABLE IT_J_1IEXCTAX
WHERE J_1ICHID EQ J_1IMTCHID-J_1ICHID and
VALIDFROM LE w_date1 and
VALIDTO GE w_date1.
Instead I had to code like the below...which weakens the performance....any soln please.................
SELECT * FROM J_1IEXCTAX INTO CORRESPONDING FIELDS OF TABLE IT_J_1IEXCTAX
WHERE J_1ICHID = J_1IMTCHID-J_1ICHID .
LOOP AT IT_J_1IEXCTAX.
CALL FUNCTION 'CONVERSION_EXIT_INVDT_OUTPUT'
EXPORTING
INPUT = IT_J_1IEXCTAX-VALIDFROM
IMPORTING
OUTPUT = V_DATE1.
CONCATENATE V_DATE16(4) V_DATE13(2) V_DATE1+0(2) INTO V_VALIDFROM.
CONDENSE V_VALIDFROM NO-GAPS.
CALL FUNCTION 'CONVERSION_EXIT_INVDT_OUTPUT'
EXPORTING
INPUT = IT_J_1IEXCTAX-VALIDTO
IMPORTING
OUTPUT = V_DATE2.
CONCATENATE V_DATE26(4) V_DATE23(2) V_DATE2+0(2) INTO V_VALIDTO.
CONDENSE V_VALIDTO NO-GAPS.
SELECT SINGLE BLDAT FROM MKPF INTO W_BLDAT WHERE MBLNR = T_GRREC-BELNR.
IF V_VALIDFROM LE W_BLDAT AND
V_VALIDTO GE W_BLDAT.
MOVE : IT_J_1IEXCTAX-RATE TO J_1IEXCTAX-RATE,
IT_J_1IEXCTAX-ECSRATE TO J_1IEXCTAX-ECSRATE,
IT_J_1IEXCTAX-J_1IADDRAT1 TO J_1IEXCTAX-J_1IADDRAT1.
ENDIF.
CLEAR : IT_J_1IEXCTAX,V_DATE1,V_DATE2,V_VALIDFROM,V_VALIDTO.
ENDLOOP.