on 05-14-2007 9:35 AM
Hi All,
I am writing a query where I need a variable on Clearing date (0CLEAR_DATE).
This variable should be able to restrict my KF with the last date of user entered fiscal year/period(0FISCPER).
Please help me with the code, wherein I can convert the user entered fiscal year/period to the last date of that period.
Also, I want another variable on Posting Date(0PSTNG_DATE). I want KF to be restricted with Posting date which falls within the user entered fiscal year/period.
Pl help me with these Cust exits.
Regards,
Sharmishtha Biswas
Message was edited by:
Sharmishtha Biswas
Hi,
use function modules:
FIRST_DAY_IN_PERIOD_GET in order to get the first day of your fiscal period
LAST_DAY_IN_PERIOD_GET the last day...
DATA: loc_var_range LIKE rrrangeexit.
WHEN 'Z_CLEARDT'.
IF i_step = 2.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = 'ZFISCPER'.
CLEAR l_s_range.
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
i_gjahr = loc_var_range-low(4)
* I_MONMIT = 00
i_periv = 'K4' "enter your variant here!!!
i_poper =loc_var_range+4(3)
IMPORTING
E_DATE = l_s_range-low.
* EXCEPTIONS
* INPUT_FALSE = 1
* T009_NOTFOUND = 2
* T009B_NOTFOUND = 3
* OTHERS = 4
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
EXIT.
ENDLOOP.
ENDIF.
Proceed similarly for your other req.
hope this helps...
Olivier.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
well not exactly
make sure that the * from comments is the first character in the line.
here's a version checked in ABAP:
IF i_step = 2.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = 'ZFISCPER'.
CLEAR l_s_range.
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
i_gjahr = loc_var_range-low(4)
*I_MONMIT = 00
i_periv = 'K4'
i_poper = loc_var_range+4(3)
IMPORTING
E_DATE = l_s_range-low.
*EXCEPTIONS
*INPUT_FALSE = 1
*T009_NOTFOUND = 2
*T009B_NOTFOUND = 3
*OTHERS = 4
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
EXIT.
ENDLOOP.
ENDIF.
hope this helps...
Hi Olivier,
The code is giving error when I run the query.
It says
"The function call of LAST_DAY_IN_PERIOD_GET failed; a field may have been
assigned to the parameter I_GJAHR whose type is not compatible".
I tried a lot to debug this, I even tried by hard coding
I_GJAHR = '2007' , using user entry of posting period (instead of fiscal year/period) and assigning I_POPER = LOC_VAR_RANGE-LOW
But then, the query gave the same abov-mentioned error but for I_POPER.
Pl suggest something.
Thanks,
Sharmishtha
OK,
we might elaborate this a bit further:
DATA: loc_var_range LIKE rrrangeexit.
DATA: l_gjahr LIKE T009C-BDATJ.
DATA: l_poper LIKE T009C-POPER.
MOVE LOC_VAR_RANGE-LOW(4) TO l_gjahr.
MOVE LOC_VAR_RANGE-LOW+4(3) TO l_poper.
WHEN 'Z_CLEARDT'.
IF i_step = 2.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = 'ZFISCPER'.
CLEAR l_s_range.
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
i_gjahr = l_gjahr
* I_MONMIT = 00
i_periv = 'K4'
i_poper = l_poper
IMPORTING
E_DATE = l_s_range-low.
* EXCEPTIONS
* INPUT_FALSE = 1
* T009_NOTFOUND = 2
* T009B_NOTFOUND = 3
* OTHERS = 4
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
EXIT.
ENDLOOP.
ENDIF.
please also test the FM in SE37 in order to ensure your fiscal periods/variant are fine...
let us know...
Olivier.
Hi Olivier,
I have implemented the revised code but now it is giving the same error for E_DATE field . I tried declaring it as DATA: E_DATE LIKE SY-DATUM, just like the function module but still it is giving the same error
Also, yesterday itself I had tested the function module and it runs perfectly with our fiscal variant.
Pl advise.
Thanks a lot !
Regards,
Sharmishtha
Hi,
please try the following:
DATA: loc_var_range LIKE rrrangeexit.
DATA: l_gjahr LIKE T009C-BDATJ.
DATA: l_poper LIKE T009C-POPER.
DATA: l_lastday LIKE SY-DATUM.
MOVE LOC_VAR_RANGE-LOW(4) TO l_gjahr.
MOVE LOC_VAR_RANGE-LOW+4(3) TO l_poper.
WHEN 'Z_CLEARDT'.
IF i_step = 2.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = 'ZFISCPER'.
CLEAR l_s_range.
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
i_gjahr = l_gjahr
* I_MONMIT = 00
i_periv = 'K4'
i_poper = l_poper
IMPORTING
E_DATE = l_lastday.
* EXCEPTIONS
* INPUT_FALSE = 1
* T009_NOTFOUND = 2
* T009B_NOTFOUND = 3
* OTHERS = 4
l_s_range-low = l_lastday.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
EXIT.
ENDLOOP.
ENDIF.
let me know how it goes
Olivier.
Sharmistha,
The move statements in the code should be after the LOOP statement.
DATA: loc_var_range LIKE rrrangeexit.
DATA: l_gjahr LIKE T009C-BDATJ.
DATA: l_poper LIKE T009C-POPER.
DATA: l_lastday LIKE SY-DATUM.
WHEN 'Z_CLEARDT'.
IF i_step = 2.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = 'ZFISCPER'.
MOVE LOC_VAR_RANGE-LOW(4) TO l_gjahr.
MOVE LOC_VAR_RANGE-LOW+4(3) TO l_poper.
CLEAR l_s_range.
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
...................
Hi,
I had implementaed the code mistakenly without a "."
After I corrected it and ran the query..
It gave the following error..and is giving for ANY fiscal year/period entry.
RFC_ERROR_SYSTEM_FAILURE
Message
SYST: Period 000 is not valid in financial year variant CG
Here, CG is our system's fiscal variant.
Pl advise !!
Regards,
Sharmishtha
Venkat is absolutely correct (quite hard to write code ne being able to test it ;-)...
DATA: loc_var_range LIKE rrrangeexit.
DATA: l_gjahr LIKE T009C-BDATJ.
DATA: l_poper LIKE T009C-POPER.
DATA: l_lastday LIKE SY-DATUM.
WHEN 'Z_CLEARDT'.
IF i_step = 2.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = 'ZFISCPER'.
CLEAR l_s_range.
MOVE LOC_VAR_RANGE-LOW(4) TO l_gjahr.
MOVE LOC_VAR_RANGE-LOW+4(3) TO l_poper.
CALL FUNCTION 'LAST_DAY_IN_PERIOD_GET'
EXPORTING
i_gjahr = l_gjahr
* I_MONMIT = 00
i_periv = 'K4'
i_poper = l_poper
IMPORTING
E_DATE = l_lastday.
* EXCEPTIONS
* INPUT_FALSE = 1
* T009_NOTFOUND = 2
* T009B_NOTFOUND = 3
* OTHERS = 4
l_s_range-low = l_lastday.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
EXIT.
ENDLOOP.
ENDIF.
this "should " work; ensure that your FISCPER is populated!
let us know...
Olivier.
User | Count |
---|---|
85 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.