Formula variable in Customer exit
Hi Experts,
I need help.
I create
first Formula variable (Z_OPTSEL) for a user entry, mandatory, ready for input, dimension ID = Number and
second Formula variable (Z_OPT1), customer exit, mandatory, not ready for input, dimension ID = Number .
User Exit code in ZXRSRU01 is :
When 'Z_OPT1'.
case i_step.
when '2'.
clear e_t_range.
read table I_T_VAR_RANGE INTO loc_var_range with key vnam = 'Z_OPTSEL'.
if sy-subrc = 0.
if <b> loc_var_range-low = '1'.</b>
l_s_range-low = '2'.
endif.
if loc_var_range-low = '2'.
l_s_range-low = '0'.
endif.
endif.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
clear l_s_range-high.
APPEND l_s_range TO e_t_range.
endcase.
Unfortunately, I get <u>no value in loc_var_range-low</u> (from Z_OPTSEL) so , I never can fill up Z_OPT1 !! What could I do to fix it ?
Any help would be welcome .
Thanks
<FONT FACE = "Tahoma", Font Color = "Blue">
My Dear Friend<br>
<u>Please try the below code:</u><br><br>
Case vnam.<br>
When 'Z_OPT1'.<br>
check i_step = 2.<br>
<br>
read table I_T_VAR_RANGE INTO loc_var_range with key vnam = 'Z_OPTSEL'.<br>
<br>
if sy-subrc = 0.<br>
Clear l_s_range.<br>
if loc_var_range-low = '1'. <br>
l_s_range-low = '2'.<br>
endif.<br>
if loc_var_range-low = '2'.<br>
l_s_range-low = '0'.<br>
endif.<br>
endif.<br>
l_s_range--sign = 'I'.<br>
l_s_range-opt = 'EQ'.<br>
APPEND l_s_range TO e_t_range.<br>
endcase.<br>
<br><br>
Hope it helps.<br><br>
Cheers Abhijit<br>
</FONT><FONT FACE = "Verdana", Font Color = "Red">
Removed
</FONT>
Similar Messages
-
Formula Variable with customer Exit (ABAP Code)
Hi Experts,
Please advise me wether i am going in the right way to achieve my requirment else please advise me any alternate approach and update me with the abap code for my customer exit as i am not familiar with ABAP.
My Requirment:
Data :
Emp_ID----Start_Date(DATS)---End_Date(DATS)
I had a user entry (intreval) VARIABLE created on Start_Date
User will enter the date intreval he want to analyze...
Ex: 01.01.2008 to 01.02.2008
Now i want to use the No of Days between user entered date intreval in my calculaction of a keyfigure
In the above example it is 31 days
So i created a Formula Variable of Customer Exit now i need a code that will
pass the user entered dates to
FM: FIMA_DAYS_AND_MONTHS_AND_YEARSImport parameters Value
I_DATE_FROM 01.01.2008
I_DATE_TO 01.02.2008
I_FLG_SEPARATE ' '
Export parameters Value
E_DAYS 31
E_MONTHS 1
E_YEARS 1
and need to pass the E_DAYS (31) to the result of formula
User Entry Variable (Intreval) : ZST_VAR
Formula Variable (Customer Exit) : ZND_EXIT
Code
WHEN 'ZND_EXIT'.
DATA: low_date2 TYPE d,
high_date2 TYPE d,
num_days TYPE N,
new_low_date2 TYPE d.
IF i_step = 2.
LOOP AT i_t_var_range INTO ls_varrange WHERE vnam = 'ZST_VAR'.
CLEAR l_s_range.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
ls_varrange-low = low_date2.
ls_varrange-high = high_date2.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
I_DATE_FROM = low_date2
I_DATE_TO = high_date2
I_FLG_SEPARATE = ' '
IMPORTING
E_DAYS = NUM_DAYS
l_s_range = NUM_DAYS.
APPEND l_s_range TO e_t_range.
EXIT.
ENDLOOP.
endif.Hello,
Before the WHEN statement it shoud have a CASE statement. In the user exit coding place your WHEN statement anywhere between CASE...ENDCASE statement.
your code should look like
DATA: low_date2 TYPE d,
high_date2 TYPE d,
num_days TYPE N,
new_low_date2 TYPE d.
Case i_vnam.
WHEN 'ZND_EXIT'.
IF i_step = 2.
LOOP AT i_t_var_range INTO ls_varrange WHERE vnam = 'ZST_VAR'.
CLEAR l_s_range.
l_s_range-sign = 'I'.
l_s_range-opt = 'BT'.
low_date2 = ls_varrange-low.
high_date2 = ls_varrange-high.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
I_DATE_FROM = low_date2
I_DATE_TO = high_date2
I_FLG_SEPARATE = ' '
IMPORTING
E_DAYS = NUM_DAYS
l_s_range-low = NUM_DAYS.
APPEND l_s_range TO e_t_range.
EXIT.
ENDLOOP.
endcase.
Thanks
Chandran -
Formula Variable with customer exit
Hi,
can we use Formula variables with customer exit based on characteristics(ex Bill date)? if yes, can you guys help me on this.
Thanks
kriYes , you can use a formula variable with customer exit based on characteristics .
Depends on the requirement what you want to show in the formula variable ,
Eg : if you want to show the max fiscal year period , in that case :
create a new formula in the keyfigure section of your query , go to edit , you can see formula variable below the keyfigures ,
right click on the same and create new formula variable :
Write the code for the formula varible in the backend as we do for normal customer exit varaible :
for this e.g the code will be :
FORM get_variable_value
tables E_T_RANGE type RSR_T_RANGESID
using I_VNAM type RSZGLOBV-VNAM
I_VARTYP type RSZGLOBV-VARTYP
I_IOBJNM type RSZGLOBV-IOBJNM
I_S_COB_PRO type RSD_S_COB_PRO
I_S_RKB1D type RSR_S_RKB1D
I_PERIV type RRO01_S_RKB1F-PERIV
I_T_VAR_RANGE type RRS0_T_VAR_RANGE
I_STEP type I.
DATA L_S_RANGE LIKE LINE OF E_T_RANGE.
DATA loc_var_range LIKE rrrangeexit.
Data : l_inPer TYPE string.
IF i_step = 1.
Select min( distinct FISCPER )
from /BIC/A(DSO name)
into l_minper .
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
l_s_range-low = l_minper .
APPEND l_s_range TO e_t_range.
endif.
drag the formula variable in the new formula created and exexcute the query , you will be able to see the output .
This is just an example , your code will differ as per your requirement . -
How to use formula variable in customer exit
Hi all,
I just want to use formula varible in customer exit
For eg,
I have created formula variable with user manual lnput eg: ZFM_V01 = 30
Another char variable with user manual input eg: 0keydate = 28/02/2011
Required output,
I just want to read my ZFM_V01 value in customer exit
Result = 0KEYDATE - ZFM_V01
EG:
result = 28/02/2011 - 30
Required result = 29/01/2011
Kindly guide me how u get formula varibale value into customer exit(CMOD) and find the required result. please help me.
Thanks & Regards,
R. SaravananSorry, Bhanu,Ashwin need more info
As my understand ::
Function module RSW_CURRENCY_TRANSLATION uses the following parameters
Import parameters
I_CTTNM : Currency translation key (optional)
I_AMOUNT: Amount in source currency (not optional !!) (data type: floating point !!)
I_SCUR : Source currency (optional) I_TCUR : Target currency (optional)
I_TIME_IOBJVL : InfoObject for determination of the time reference (optional)
I_SCUR_IOBJVL : InfoObject for determination of the the source currency (p.eg. 0COMP_CODE) (optional)I_TCUR_IOBJVL : InfoObject for determination of the the target currency (p.eg. 0COMP_CODE) (optional)
I_PERIV : Fiscal year variant (optional)
I_RATE : Exchange rate (optional)
Export parameters
E_AMOUNT : Amount in target currency (data type: floating point !!)
E_RATE : Exchange rate
E_SCUR : Source currency
E_TCUR : Target currency
I created a Currency key(ZXX) which takes CAD and converts to GBP on Planned Exchange rate (P) with time reference 0CALMONTH.
In my case :
Currency Key : ZXX (Confused here)
Source Curr :CAD
Target Curr :GBP
I need a Variable ,which takes time reference and gives back the exchange rate .
,,I am I missing some thing ?
Sudh -
Formula variable type customer exit
Hi all,
Can you explain me how link variable formula processing type customer exit to an infoobject?
Can you give an example of the exit?
Thanks
GianmarcoHi Gianmarco,
Here's an example of some CMOD code that converts yesterday's date to the factory date - in this case it refers to Factory Calendar Z1. You'll have to create a formula variable (in this case the technical name of the formula variable is ZVFCYEST) to call the code. I'm not much of an ABAPer so it might not be the most efficient code in the world, but at least it works.....
WHEN 'ZVFCYEST'.
IF i_step = 1. " BEFORE THE POPUP
z_today = sy-datum.
z_yesterday = z_today - 1.
CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
EXPORTING
correct_option = '-'
date = z_yesterday
factory_calendar_id = 'Z1'
IMPORTING
factorydate = z_yestfact.
CLEAR l_s_range.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
l_s_range-low = z_yestfact.
APPEND l_s_range TO e_t_range.
ENDIF.
Hope this helps,
Janet -
Using Formula Variable in Customer Exit variable
Hi,
I want to assign valuees of 2 Formula Variables to one cstomer exit variable based on some Characteristic.
Example. Formula variables are Early and Late. If Early = 3 and Late = 4 , I want to pass value to the Customer Exit variable as Low = 3 and High = 4.
The problem is in I_T_VAR_RANGE there is no value for formula variable in LOW field.
Other variables based on Characteristics have values in this field.
What can I do in this case?
Regards
SSSSSS,
You can restrict your characteristic with two variables in the value range options of restricting.
One can be used as low and the other can be high.
Hope that helps.
Thanks. -
Usage of formula variable with custom table for values
Hi,
I have the following scenario:
a customer wants a report regarding payments of invoices with a formula in it to calculate interest results. In order to do so they want to be able to define a interest rate wich can be used to calculate te result by multiplying the rate by time and amount (for every line in the query the same rate should be used).
As a solution I thought it would be easiest to give the key user access to a custom table via a custom transaction and then use the entered rate in the query by selecting it from this table using a formula variable (using an exit).
I was wondering if anyone has ever used such a solution, or if one thinks this is possible.Hi Brock,
Its possible, but I haven't tried as requirements didn't imply.
More simpler idea is why don't you use a flat file loading through the IP to Info providers?
Or even more better option is why don't you adapt to Virtual Info providers?
For your suggested custom table using custom transaction, we can surely make it. Its possible in SE93. Try this transaction code. It must definitely help.
Thanks,
Arun Bala G
Edited by: Arun Bala G on Jan 11, 2010 2:16 PM -
Formula variable with User Exit
Hi,
Can we create a Formula Variable of processing type USER EXIT...which will display a constant Value Y
Any syntax would be helpful
ThanksHi,
check this for formula variables with user exits;
http://wiki.sdn.sap.com/wiki/display/profile/Surendra+Reddy
http://sap.ittoolbox.com/groups/technical-functional/sap-bw/customer-exit-to-derive-formula-variable-to-text-variable-sap-bw-35-3030684
Also Check the issues and solution :
Formula Variable with User Exit....Problem
Thanks
Hemav -
Formula Variable with User Exit....Problem
Hi
My requirment is to create a Formula Variable on User Exit that will give me Current Cal Year...so that i can use that vale in Formulas
Created Formula Variable with processing Type Customer Exit single Value,Mandator and Unchecked the Variable input ready
The below code in CMOD
WHEN 'XXXXXXX'.
Year = sy-datum(4).
CLEAR L_S_RANGE.
L_S_RANGE-LOW = Year.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND l_s_range TO e_t_range.
But when i execute the query i am getting the below error
No value could be determined for variable xxxxxxx.
Incorrect call of OLAP layer CL_RSR_OLAP; error in BW-BEX-ET
Diagnosis
This error diagnosis is specific only to the variables 0P_FVAEX or 0P_CTPCA !
Termination message BRAIN 632 appears:
Could not determine value for variable 0P_FVAEX (or 0P_CTPCA).
WHAT WRONG I AM DOING...please update meUse the code:
WHEN 'XXXXXXX'.
IF i_step = 2.
Year = sy-datum(4).
CLEAR L_S_RANGE.
L_S_RANGE-HIGH = Year.
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'EQ'.
APPEND l_s_range TO e_t_range.
ENDIF.
Let me know, if it is work or not!
- Balajee Kannan -
Please search the forums before posting
i want an example for variables using customer exit with steps
Edited by: Arun Varadarajan on Mar 15, 2009 7:25 PMHi,
You can define 'Formula' variables in your customer exit..for example..
you need to calculate no of machine running hours per month, in order to
caculate the machine total utilization time..in this context.. you need to know
how may hours are there in an month by month..
you can define a variable and write the code in the customer exit for deriving the total no. of hours available for that month and get that value into a variable for further calution like deducting the down time and set up time so on..in your
calculated KF..
Hope this helps..
Assign points if useful..
Cheers,
Pattan. -
I need example for VARIABLES with Customer Exit.
hi every body i need example for Variable for Customer Exit.
Hi,
You can define 'Formula' variables in your customer exit..for example..
you need to calculate no of machine running hours per month, in order to
caculate the machine total utilization time..in this context.. you need to know
how may hours are there in an month by month..
you can define a variable and write the code in the customer exit for deriving the total no. of hours available for that month and get that value into a variable for further calution like deducting the down time and set up time so on..in your
calculated KF..
Hope this helps..
Assign points if useful..
Cheers,
Pattan. -
Prob in text variable with customer exit
Hi to all
I am working in PA module in HR ,In my Report i have to count total number of trainee and lateral in given Date range that From date to To Date , Before that i have to calculate a Total Employee Strength before one day of From date , suppose user enter a 1st of April 2007 to 1st of jun 2007 , so Employee strength should be calculated on the 31march 2007, for that i have written custome exit , now i am getting a value also , for Display that date have a created a text variable with customer exit , but i am not able to get that date , it should be display strength as on 31march2007 , instead of it is displaying Strength as on 00.00.0000.I am giving a cod also
ls_range-sign ='I'.
ls_range-opt = 'EQ'.
ls_range-low = 'EB1A'.
append LS_Range to e_t_range.
WHEN 'ZPA_DATE'.
if i_step = 3.
READ TABLE I_T_VAR_RANGE INTO L_S_VAR_RANGE WITH KEY VNAM = 'ZPA_DATE'.
IF SY-SUBRC = 0.
ZTEST = L_S_VAR_RANGE-LOW.
ztest1 = ZTEST - 1.
export p = ztest1 to MEMORY ID 'VALUE'.
ENDIF.
endif.
WHEN 'ZFRMDAT'.
if i_step = 3.
ls_range-sign ='I'.
ls_range-opt = 'EQ'.
ls_range-low = ztest.
append LS_Range to e_t_range.
endif.
when 'ZPA_CDAT'.
if i_step = 3.
ztest1 = ztest - 1.
ls_range-sign ='I'.
ls_range-opt = 'EQ'.
ls_range-low = ztest1.
append LS_Range to e_t_range.
endif.
when 'ZPA_VAR3'.
if i_step = 3.
ztest1 = ztest - 1.
import p = ztest1 from memory id 'VALUE'.
concatenate ztest16(2) ztest14(2) ztest1+0(4) into date separated by '.'.
move date to temp.
move 'Hello' to temp.
ls_range-sign ='I'.
ls_range-opt = 'EQ'.
ls_range-low = temp.
append LS_Range to e_t_range.
endif.
Please help me to come out
ThanksHi Stefania,
to me it looks like your local variable num_mese is not defined with the correct data type.
Try to change
if num_mese = 09 to if num_mese = <b>'</b>09<b>'</b>,
same for 10 -> '10', 11 -> '11'.
If that does not help please let me know your coding where you define the type of num_mese (DATA statement).
Regards
Stephan -
Text Variable With Customer Exit Logic/ABAP Code
Hi Experts,
Could you please help me with the Logic/Code that i need to use in Calculacting The TEXT Variable Using CUSTOMER EXIT
I had a rolling report in which there are 14 Calculacted Keyfigures (Not Restricted KF),Which are
M-1,M-2,M-3,M-4,M-5........M-14
In MAY2009
M-1 represents (Current Month -1) APR2009
M-2 represents (Current Month -2) MAR2009
M-3 represents (Current Month -3) FEB2009
M-4 represents (Current Month -4) JAN2009
M-5 represents (Current Month -5) DEC2008
M-6 represents (Current Month -6) NOV2008
M-7 represents (Current Month -7) OCT2008
M-13 represents (Current Month -13) APR2008
M-14 represents (Current Month -14) MAR2008
In JUNE2009
M-1 represents (Current Month -1) MAY2009
M-2 represents (Current Month -2) APR2009
M-3 represents (Current Month -3) MAR2009
M-4 represents (Current Month -4) FEB2009
M-5 represents (Current Month -5) JAN2009
M-6 represents (Current Month -6) DEC2008
M-7 represents (Current Month -7) NOV2008
M-13 represents (Current Month -13) MAY2008
M-14 represents (Current Month -14) APR2008
Currently the Description of CKF is named as M-1,M-2..M-14.My requirment is to develop Text Variables that displays the description as MMMYYYYSample code, NO syntax check...!!
CASE i_vnam. " Variablenname
WHEN 'M-1'. "For Variable <M-1>
Data: l_peri type E_BUPER, "Declare variable for Period
l_year type E_GJAHR "Declare variable for year
IF i_step = 2.
DATA l_s_range LIKE LINE OF e_t_range.
CLEAR l_s_range.
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT' " By providing Date this FM gives period and year
EXPORTING
I_DATE = SY-DATUM "System Date
I_PERIV = V3 "Fiscal Variant
IMPORTING
E_BUPER = l_peri "for period is date is today period = 005
E_GJAHR = l_year. "for Year = 2009
l_peri = l_peri - 1. "To reduce 1 from period (005 - 1 = 004)
IF l_peri = '004' "Check value of period.
Concatenate 'APR' l_year into l_s_range-low. "concatenate 'APR' & Year into Low.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
ENDIF.
For M-2 subtract 2 and repeate same. -
Text Variable With Customer Exit ABAP Code
Hi Experts,
Could you please help me with the Logic/Code that i need to use in Calculacting The TEXT Variable Using CUSTOMER EXIT
I had a rolling report in which there are 14 Calculacted Keyfigures (Not Restricted KF),Which are
M-1,M-2,M-3,M-4,M-5........M-14
My requirment is to get the MMM.YYYY based on Sy Date as a title of the column
In MAY2009
M-1 represents (Current Month -1) APR2009
M-2 represents (Current Month -2) MAR2009
M-3 represents (Current Month -3) FEB2009
M-4 represents (Current Month -4) JAN2009
M-5 represents (Current Month -5) DEC2008
M-6 represents (Current Month -6) NOV2008
M-7 represents (Current Month -7) OCT2008
M-13 represents (Current Month -13) APR2008
M-14 represents (Current Month -14) MAR2008
In JUNE2009
M-1 represents (Current Month -1) MAY2009
M-2 represents (Current Month -2) APR2009
M-3 represents (Current Month -3) MAR2009
M-4 represents (Current Month -4) FEB2009
M-5 represents (Current Month -5) JAN2009
M-6 represents (Current Month -6) DEC2008
M-7 represents (Current Month -7) NOV2008
M-13 represents (Current Month -13) MAY2008
M-14 represents (Current Month -14) APR2008
Currently the Description of CKF is named as M-1,M-2..M-14.My requirment is to develop Text Variables that displays the description as MMMYYYYAmrit I think u72720 wanted to know how to get MMYYYY in the column headings.
this can be achieved using text variable easily.
steps
1. Right click and go to properties and click the button next to description box.
2. Add any existing text var from the list
3. now right click on this var in the desription box and select 'new variable'
4. give var name description
processing type ->replacement path
replace with char-> fiscal period (or calmonth if that is what restricted in your column)
select value as 'Key'
finish creation and use this var in all the selection column headings (remove M-1, M-2 etc)
you will get mmyyyy decriptions for every column depending on month of that column -
Text Variable using Customer Exit .
Hello Friends. I have a requirement to create Text Variable using Customer Exit . So I created the Text Variable as "ZVRBMS" and assigned that with YTD &ZVRBMS& in the Structure of Query Desigener . so that Out put will YTD AUTO
OR YTD RETAIL
Now this Auto And Retail comes from Version that user choose via variable ZFIBMSVER IN User Promt. if ZFIBMSVER = 10
then ZVRBMS = auto . and if ZFIBMSVER = 20
then ZVRBMS = RETAIL
Please correct my ABAP code in customer exit and let me know to make this work
when 'ZVRBMS'.
if I_STEP = 2.
clear LOC_VAR_RANGE.
loop at I_T_VAR_RANGE into LOC_VAR_RANGE.
if LOC_VAR_RANGE-VNAM = 'ZFIBMSVER'.
if SY-SUBRC = 0 OR LOC_VAR_RANGE-LOW = '10'.
L_S_RANGE-LOW = 'AUTO'.
elseif LOC_VAR_RANGE-LOW = '20'.
L_S_RANGE-LOW = 'RETAIL'.
L_S_RANGE-SIGN ='I'.
L_S_RANGE-OPT = 'EQ'.
append L_S_RANGE to E_T_RANGE.
endif.
endif.
exit.
endloop.
endif.
Thanks
SoniyaThe code should be:
when 'ZVRBMS'.
if I_STEP = 2.
clear LOC_VAR_RANGE.
loop at I_T_VAR_RANGE into LOC_VAR_RANGE.
if LOC_VAR_RANGE-VNAM = 'ZFIBMSVER'.
if LOC_VAR_RANGE-LOW = '10'.
L_S_RANGE-LOW = 'AUTO'.
elseif LOC_VAR_RANGE-LOW = '20'.
L_S_RANGE-LOW = 'RETAIL'.
endif.
L_S_RANGE-SIGN ='I'.
L_S_RANGE-OPT = 'EQ'.
append L_S_RANGE to E_T_RANGE.
endif.
exit.
endloop.
endif.
Maybe you are looking for
-
How to identify WBS elements with AuC status
Hello Experts, We had earlier developed a report which determines whether the entered project id can be set to CLSD status or not. The problem arises with few WBS elements which have AuC statuses. The report is displaying them as closeable but we fai
-
dear experts, is there any datasource can extract the data about FI/AP Payment request (F-59) data? thanks. brgds/steve
-
Why the ScrollDemo sample can not be debugged in Eclipse?
Hi, All, I am an newer of the Swing/JFC. When I debugged the ScrollDemo in Eclipse 3.0.2, it always reported an exception at setRowHeaderView(...). But it could run perfectly. So I am confused. Who can tell me whether it is a bug of Eclipse or a bug
-
Receiver: "Sending Cancelled" / Sender: "Completed...
Receiver: "Sending Cancelled" Sender: "Completed transfer" Everytime I'm sent files on Windows.
-
Including another image in the grid
HI, How can I add another column in the grid. This column should be an image. I am using Interactive Report. This image will call another form. Thanks! Marcelo