DSO Calculations
Hello Everyone,
I am trying to run a standard report in FI: S_ALR_87012167 for DSO calculation. When I do this, I am getting a message "No Evaluations exist. See long text".
What is the customizing that is to be done to see this calculations?
Appreciate your help,
Swapna
Job name will not get defaulted. You can give any name you want. In the 'Exec. Target' field, press F4 (input help) and select a server (SAP instance) in which the background job should be run - select the instance in which you are working on. Then click on 'Start condition', click on 'Immediate' and then on 'Save' icon. Then click on 'Step' button. Here, the ABAP program you need to run is defaulted; do not change it. Enter standard variant 'SAP_VARI' in the 'Variant' field and click on 'Save' icon. Press the 'Back' button (F3) and click on 'Save'. Your job should start immediately; you can monitor it using T Code SM37. Have an ABAPer with you if this is the first time for you.
Once your job is complete successfully, run the evaluation again. Should work!
Good luck!
PS: Do not forget assigning points if it works!!!
Similar Messages
-
A/R Summary (FCV1) and DSO Calculations (FDK43)
Someone please explain to me the following:
1.relationship between the A/R summary (FCV1) and the credit management reports such as FDK43.
2.What is the DSO calculation for FDK43 report based on? The time the report is run?
3. What are the SAP standard formulas for DSO1, DSO2 and DSO3 for FDK43?
4. If I change the configuration for DSO No. of months in SPRO-Financial Accounting AR credit management--Define Prelim Settings for Credit management, what reports or calculations are affected?
Thanks
RobHello,
Put the FCV1 program as a background job to run using SM36.
You can see the arrears details:
274 3,187.50 3,187.50 0.00
252 623.50 3,811.00 0.00
233 623.50 4,434.50 0.00
209 1,363.00 5,797.50 0.00
205 1,247.00 7,044.50 0.00
204 957.00 8,001.50 0.00
84 1,262.59 9,264.09 0.00
83 1,595.00 10,859.09 0.00
77 123.50 10,982.59 0.00
15 681.50 11,664.09 0.00
12 13,093.50- 1,429.41- 233.71
4 739.50 689.91- 112.80
3 136.30 553.61- 90.52
2 58.00- 611.61- 100.00
Sorted
0 - 15 11,594.20-
16 - 30 0.00
31 - 45 0.00
> 10,982.59
Regards
Waza -
DSO calculation in BI Apps Financial / Receivables
Hi,
Any one know how the Days Sales Outstanding (DSO) calculation is determined in BI Apps Financial module sourcing against Oracle E-Business Suite?
ThanksYes 7.9.6 also has data lineage document.
Oracle® Business Intelligence Applications ETL Data Lineage Guide Release 7.9.6 (Doc ID 829385.1)
Applications ETL Data Lineage Guide Release 7.9.6 Platforms: 1-914CU; This document is being delivered ... Release 7.9.6 This data lineage sheet shows
Doc Type:BULLETINModified:5/28/2009 -
Dear All,
I have to implement one scenerio where based on data I have to calculate if records is fullfilling KPI or not .
for ex.
In Materal sales data coming from MVKE , I have to check material record for a combination of salesorg and distribution channel. If this combination exist then KPI field should be given value "yes"
Material Sales org Distribution KPI
M1 BE1 10 yes
M1 CH10 99 yes ( combination for KPI )
M1 CH10 70 yes
M2 CH20 90
M3 CH30 80
if KPI combination exist then all records for that material should have KPI "yes".
can anybody help me how to implement this if data is stored in DSO.
One way is thru coding by self loop from DSO. This is a crude solution.is there any better way to do this.?
RegardsHi,
Thanks you very much for given replay.
In my case DSO calculation show in as below:
Calculation Basis: Current Balance 003 Months all children
Cust.no--CoCde- Curr.- Days -BalanceSales/day---DSO
6205485--INR - -
2,089,710.34-----23,376.41-0089
6205485--6201u2014INR-0115--1,562,610.34--- *18,792.93-0083*
6205485-6202 -INR- 0115527,100.00 -4,583.48--0115
In the above case how we will get DSO ratio=83 and day sales value (18,792.93 )
Thanks
Murali -
Hi Gurus,
we are testing DSO-analysis in TAC S_ALR_87012167 and unfortunately we receive by using the drilldown wrong balance for AR line items (FBL5).
Report RFDRRSEL was setup to select open items by 31.01.2012 and provide us various DSO-groupings (e.g. by KNA1-BRAN1). When we drill down to AR-line items SAP (by FBL5) provides wrong balance (e.g. open by 16.02.2012). Therefore balance used for DSO-calculation does not tie to the one in DSO-drilldown to AR-line items.
Is there any solution in order to set parameters for drilldown to receive AR open items which fit to selection of RFDRRSEL???
Thanks for your reply.
BR, BerndHi AA
refer this link where in I have given the screen shots
http://img233.imageshack.us/g/86081486.jpg/
The 1st screen shot is COPY of the Std Form
The 2nd scren shot shows how to add new interval
Br, Ajay M -
DSO Analysis (Days Sales Outstanding) report
Hey All,
How do I configure or activate DSO (Days Sales Outstanding) Report?
If I go to transaction S_ALR_87012167. I get " No Evaluation Exist."
In the DSO calculation, by default it takes 30 days in a period, Can I change the no of days in the period for the DSO calculation?
Please help me start this report.
Thank you.
Sincerely,
Rohan
Edited by: Rohan Shah on Oct 30, 2008 6:52 PMIn order to run this report, you must have the Financial Information System configured. Then run transaction F.29 to create the evaluation. F.30 will then display the evaluations.
-
Time out error 1.6 million internal table fields are computed using FMs
Hi , All ...
The Report running fine in server with less 300 record but ...production server which has 1.6 million record it gives error as time-out error and takes hell amount of time.
Please suggest ugently ..
I have tried few things
Internal table having 1.6 lacs ... fields to compute .. i have token in a batch
loop at i_cinfo into s_cinfo from 1 to 100000.
and so on ...also applied all the performace related .. like indexs, work areas , deleting adjacent duplicates , for all entries ..wherever applicable.
Please Suggest .
Report is as below
REPORT ZUSOTCBD_CREDIT_REPORT .
TABLES : KNA1, " General Data Customer Master
KNB1, " Customer Master (Company Code)
KNC1, " Customer master (transaction figures)
KNKK, " Customer master credit management: Control area data
T009, " Fiscal Year Variants P
T009Y, " Shortened fiscal years in Asset Accounting P
T001, " Co. Codes
T001CM, " Permitted Credit Control Areas per Company Code
RF42B, " Structure to hold credit data.
RF035, " Structure to hold credit managment fields
RF02L, " Structure to hold credit data.
TRAS, " Interval for Days in Arrears P
T000CM. " Data for DSO calculation.
Types
TYPES:
BEGIN OF type_final,
string(50) TYPE c, " String Value for Title
END OF type_final.
data:wa_final TYPE type_final. " Work Area to hold Title Data
DATA: RASID TYPE RF035-RASID value 'R03N'. " For Days in interval
DATA: MONAT(2) TYPE N.
DATA: GJAHR TYPE KNC1-GJAHR.
DATA: LD_PERIODS(32) TYPE N
VALUE '01020304050607080910111213141516'.
DATA sytabix type sy-tabix.
DATA LAND TYPE KNA1-LAND1 VALUE 'US'. " Country Key
DATA: LD_PERIOD TYPE BSID-MONAT, " Fiscal Year Variant
LD_GJAHR TYPE KNC1-GJAHR,
LD_COUNTER TYPE SY-TABIX.
Internal Tables
Internal table to hold Title Data *
DATA:
i_final TYPE STANDARD TABLE OF type_final.
**Internal Table Permitted Credit Control Areas per Company Code
DATA: BEGIN OF TCMTAB OCCURS 10.
INCLUDE STRUCTURE T001CM.
DATA: END OF TCMTAB.
*Internal table to store Customer no.
DATA : BEGIN OF ICUST OCCURS 0,
KUNNR TYPE KNA1-KUNNR, " Customer No.
END OF ICUST.
DATA: BEGIN OF BUKTAB OCCURS 20,
KKBER LIKE T001-KKBER, " Credit Control Area
BUKRS LIKE T001-BUKRS, " Co. Code
WAERS LIKE T001-WAERS, " Currency
PERIV LIKE T001-PERIV, " Fiscal Year Variant
BUTXT LIKE T001-BUTXT,
END OF BUKTAB.
Internal Table to store Fiscal year Data .
DATA: BEGIN OF GJATAB OCCURS 5,
PERIV LIKE T001-PERIV, " Fiscal Year Variant
GJAHR LIKE KNC1-GJAHR, " Fiscal Year
MONAT LIKE T009-ANZBP, "
ANZBP LIKE T009-ANZBP, " Number of posting periods
END OF GJATAB.
*Main Output internal table to be used to store credit history Information
DATA : BEGIN OF I_CINFO occurs 0,
KUNNR TYPE KNB1-KUNNR, " Customer
KNKLI TYPE KNKK-KNKLI, " Customer's account number with credit limit reference
KKBER TYPE KNKK-KKBER, " Credit Control Area
CTLPC TYPE KNKK-CTLPC, " Risk Category
KLIMK TYPE KNKK-KLIMK, " Credit Limit
SBGRP TYPE KNKK-SBGRP, " Credit representative group for credit management
ERDAT TYPE KNKK-ERDAT, " Created On
DTREV TYPE KNKK-DTREV, " Last Internal Review
REVDB TYPE KNKK-REVDB, " Last External Review
SALDO TYPE RF42B-SALDO, " Balance
DSOIN TYPE RF02L-DSOIN, " DSO
H06SA TYPE RF035-H06SA, " Highest Balance at the end of 6 Months
H06JA TYPE RF035-H06JA, " Year highest Balance 6 Months
H06MO TYPE RF035-H06MO, " Month OF hihest Balance 6 Months
H12SA TYPE RF035-H12SA, " Highest Balance at the end of 12 Months
H12JA TYPE RF035-H12JA, " Year highest Balance 12 Months
H12MO TYPE RF035-H12MO, " Month OF hihest Balance 12 Months
UMP2U TYPE RF42B-UMP2U, " Sales from the current Year
UMP1U TYPE RF42B-UMP1U, " Sales from the Previous Year
SFAEL TYPE RF035-SFAEL, " Total Past Due Open Item
SFAE1 TYPE RF035-SFAE1, " Aging buckets 0-15
SFAE2 TYPE RF035-SFAE2, " Aging buckets 16-30
SFAE3 TYPE RF035-SFAE3, " Aging buckets 31-60
SFAE4 TYPE RF035-SFAE4, " Aging buckets 60-90
SFAE5 TYPE RF035-SFAE5, " Aging buckets Over 90
END Of I_CINFO.
DATA : BEGIN OF S_CINFO ,
KUNNR TYPE KNB1-KUNNR, " Customer
KNKLI TYPE KNKK-KNKLI, " Customer's account number with credit limit reference
KKBER TYPE KNKK-KKBER, " Credit Control Area
CTLPC TYPE KNKK-CTLPC, " Risk Category
KLIMK TYPE KNKK-KLIMK, " Credit Limit
SBGRP TYPE KNKK-SBGRP, " Credit representative group for credit management
ERDAT TYPE KNKK-ERDAT, " Created On
DTREV TYPE KNKK-DTREV, " Last Internal Review
REVDB TYPE KNKK-REVDB, " Last External Review
SALDO TYPE RF42B-SALDO, " Balance
DSOIN TYPE RF02L-DSOIN, " DSO
H06SA TYPE RF035-H06SA, " Highest Balance at the end of 6 Months
H06JA TYPE RF035-H06JA, " Year highest Balance 6 Months
H06MO TYPE RF035-H06MO, " Month OF hihest Balance 6 Months
H12SA TYPE RF035-H12SA, " Highest Balance at the end of 12 Months
H12JA TYPE RF035-H12JA, " Year highest Balance 12 Months
H12MO TYPE RF035-H12MO, " Month OF hihest Balance 12 Months
UMP2U TYPE RF42B-UMP2U, " Sales from the current Year
UMP1U TYPE RF42B-UMP1U, " Sales from the Previous Year
SFAEL TYPE RF035-SFAEL, " Total Past Due Open Item
SFAE1 TYPE RF035-SFAE1, " Aging buckets 0-15
SFAE2 TYPE RF035-SFAE2, " Aging buckets 16-30
SFAE3 TYPE RF035-SFAE3, " Aging buckets 31-60
SFAE4 TYPE RF035-SFAE4, " Aging buckets 60-90
SFAE5 TYPE RF035-SFAE5, " Aging buckets Over 90
END Of s_cinfo.
*Internal table to hold month-wise balance.
DATA: BEGIN OF SALTAB OCCURS 12,
LNUMM(2) TYPE N, " Month
SALDO LIKE RF42B-SALDO, " Balance
END OF SALTAB.
*Internal table used for computing the Balance fields
DATA: BEGIN OF SALDO,
UML01 LIKE KNC1-UM01S,
UML02 LIKE KNC1-UM01S,
UML03 LIKE KNC1-UM01S,
UML04 LIKE KNC1-UM01S,
UML05 LIKE KNC1-UM01S,
UML06 LIKE KNC1-UM01S,
UML07 LIKE KNC1-UM01S,
UML08 LIKE KNC1-UM01S,
UML09 LIKE KNC1-UM01S,
UML10 LIKE KNC1-UM01S,
UML11 LIKE KNC1-UM01S,
UML12 LIKE KNC1-UM01S,
END OF SALDO.
Structure to hold Bal fields ------ -------
DATA: BEGIN OF SKNKK,
KUNNR LIKE KNA1-KUNNR, " Customer Number 1: Debitor
KONTO LIKE KNKK-KUNNR,
SFAE1 LIKE RF035-SFAE1, " Aging buckets 0-15
SFAE2 LIKE RF035-SFAE2, " Aging buckets 16-30
SFAE3 LIKE RF035-SFAE3, " Aging buckets 30-60
SFAE4 LIKE RF035-SFAE4, " Aging buckets 60-90
SFAE5 LIKE RF035-SFAE5, " Aging buckets Over 90
SFAEL LIKE RF035-SFAEL, " Total Due of Items
UML01 LIKE KNC1-UM01S,
UML02 LIKE KNC1-UM01S,
UML03 LIKE KNC1-UM01S,
UML04 LIKE KNC1-UM01S,
UML05 LIKE KNC1-UM01S,
UML06 LIKE KNC1-UM01S,
UML07 LIKE KNC1-UM01S,
UML08 LIKE KNC1-UM01S,
UML09 LIKE KNC1-UM01S,
UML10 LIKE KNC1-UM01S,
UML11 LIKE KNC1-UM01S,
UML12 LIKE KNC1-UM01S,
UMP1U LIKE RF42B-UMP1U, " Sales from the Previous Year
UMP2U LIKE RF42B-UMP2U, " Sales from the current Year
SALDO LIKE RF42B-SALDO, " Balance
END OF SKNKK.
DATA : BEGIN OF ICUST1 OCCURS 0,
KUNNR TYPE KNA1-KUNNR, "For Customer Filter.
END OF ICUST1.
**Internal table to hold fiscal varriants
DATA: BEGIN OF LT_PERIODS OCCURS 12,
PERIOD LIKE BSID-MONAT,
GJAHR LIKE KNC1-GJAHR,
END OF LT_PERIODS.
**Constants
constants : BUKRS1 TYPE KNB1-BUKRS VALUE '1000',
BUKRS2 TYPE KNB1-BUKRS VALUE '1031',
Recs Type i value '200',
B_count type i value '2'.
INITIALIZATION
INITIALIZATION.
IF RASID IS INITIAL.
SELECT * FROM TRAS.
EXIT.
ENDSELECT.
IF SY-SUBRC = 0.
RASID = TRAS-RASID.
ENDIF.
ENDIF.
SELECTION-SCREEN
parameters : p_path type rlgrap-filename default 'C:\Documents and Settings\C890971\Desktop\Credit_history.XLS'.
Start of selection processing
START-OF-SELECTION.
**Get Customers for Co. Code 1000 & 1031.
PERFORM GET_CUST.
Get / Compute Credit Information data for Company Codes 1000 & 1031.
PERFORM GET_CREDIT_DATA.
End of selection processing
*END-OF-SELECTION.
Listing Credit History Data
PERFORM DOWNLOAD_CREDIT_DATA.
S U B R O U T I N E S
*& Form GET_CUST
text
--> p1 text
<-- p2 text
FORM GET_CUST .
Get US only Customers.
Refresh icust.
Select kunnr from kna1 appending table icust
where Land1 = land.
**Delete duplicate records
Delete Adjacent duplicates from icust comparing kunnr.
if icust[] is not initial.
Limit the selection some more to Co. Code 1000 & 1031
As join will cost overhead as compared.
Select kunnr from knb1 into table icust1
for all entries in icust
where kunnr = icust-kunnr
and bukrs = bukrs1
OR bukrs = bukrs2.
**Delete duplicate records
Delete Adjacent duplicates from icust1 comparing kunnr.
endif.
**Free memory.
Free icust.
Credit Control Area
select * from T001CM into table TCMTAB
where bukrs = bukrs1 OR
bukrs = bukrs2.
ENDFORM. " GET_CUST
*& Form GET_CREDIT_DATA
text
--> p1 text
<-- p2 text
FORM GET_CREDIT_DATA .
DATA : L_TEXT(60) TYPE C ,
Ltext1(50) type C value 'Computing Credit-History Data For',
Ltext2(10) type C value 'Customers',
L_PCT type i value '10',
L_recs type i,
l_batch_recs type i,
l_s_rec type i value 1,
l_recs1(7) type N.
***Fetch data from KNKK table
PERFORM GET_KNKK_DATA .
***Computing Crredit Fields
**Number of Customers For whom Deatils needed.
Describe table I_CINFO lines l_recs.
l_recs1 = l_recs.
Concatenate Ltext1 l_recs1 Ltext2 into l_text separated by ' '.
PERFORM GET_PGRESS_INDICATOR USING l_text l_pct.
***If records are more than 200000, should be processed batch-wise
If l_recs > recs.
l_batch_recs = abs( l_recs / b_count ).
Do b_count times.
loop at i_cinfo INTO S_CINFO from l_S_REC to l_batch_recs.
**Remember the row
sytabix = sy-tabix.
**Compute DSO
PERFORM GET_DSO_FIELD .
Compute rest credit history data.
PERFORM COMPUTE_SFIELDS.
endloop.
l_S_REC = l_S_REC + l_batch_recs.
l_batch_recs = l_batch_recs + l_batch_recs.
IF l_batch_recs ge l_recs.
l_batch_recs = l_recs.
eNDIF.
Commit up to here to release the DB locks.
Commit work.
enddo.
else.
loop at i_cinfo INTO S_CINFO.
**Remember the row
sytabix = sy-tabix.
**Compute DSO
PERFORM GET_DSO_FIELD .
Compute rest credit history data.
PERFORM COMPUTE_SFIELDS.
endloop.
Endif.
ENDFORM. " GET_CREDIT_DATA
*& Form GET_KNKK_DATA
text
-->P_ICUST_KUNNR text
FORM GET_KNKK_DATA .
if icust1[] is not initial.
SELECT KUNNR KNKLI KKBER CTLPC KLIMK
SBGRP ERDAT DTREV REVDB
from KNKK into corresponding fields of table I_Cinfo
for all entries in icust1
where kunnr = icust1-kunnr.
Delete Adjacent duplicates from i_cinfo comparing kunnr.
endif.
**Free Memory for internal table icust1.
Free icust1.
ENDFORM. " GET_KNKK_DATA
**& Form GET_DSO_FIELD
text
--> p1 text
<-- p2 text
FORM GET_DSO_FIELD .
***Determine DSO Parameter
PERFORM DSO_PARAMETER.
***Compute DSO
CALL FUNCTION 'CUSTOMER_DSO_CALCULATION'
EXPORTING
I_KKBER = s_cinfo-kkber
I_KUNNR = s_cinfo-kunnr
I_ANZBUPER = T000CM-DSOPP
I_XCHILDS = T000CM-DSOCH
I_ACTBALANCE = T000CM-DSOAB
IMPORTING
E_DSOIN = RF02L-DSOIN
EXCEPTIONS
ERROR_MESSAGE = 1.
ENDFORM. " GET_DSO_FIELD
*& Form DSO_PARAMETER
text
--> p1 text
<-- p2 text
FORM DSO_PARAMETER.
IF T000CM-DSOPP IS INITIAL.
SELECT SINGLE * FROM T000CM.
IF SY-SUBRC EQ 0.
IF T000CM-DSOPP IS INITIAL.
T000CM-DSOPP = '003'.
ENDIF.
ELSE.
T000CM-DSOPP = '003'.
T000CM-DSOCH = ' '.
T000CM-DSOAB = 'X'.
ENDIF.
ENDIF.
ENDFORM. " DSO_PARAMETER
--> p1 text
<-- p2 text
FORM PERIODE_ERMITTELN_EXC USING
P03_BUDAT LIKE SYST-DATUM
P03_GJAHR LIKE KNC1-GJAHR
P03_MONAT LIKE MONAT.
CALL FUNCTION 'FI_PERIOD_DETERMINE'
EXPORTING
I_BUDAT = P03_BUDAT
I_PERIV = T001-PERIV
I_BUKRS = T001-BUKRS
I_GJAHR = P03_GJAHR
I_MONAT = P03_MONAT
IMPORTING
E_GJAHR = P03_GJAHR
E_MONAT = P03_MONAT
EXCEPTIONS
ERROR_MESSAGE = 1.
ENDFORM. "PERIODE_ERMITTELN_EXC
*& Form COMPUTE_SFIELDS
text
--> p1 text
<-- p2 text
FORM COMPUTE_SFIELDS .
**Compute Balance
PERFORM GET_SFIELDS .
S_CINFO-DSOIN = RF02L-DSOIN.
S_CINFO-SALDO = RF035-SALDO.
S_CINFO-H06SA = RF035-H06SA.
S_CINFO-H06JA = RF035-H06JA.
S_CINFO-H06MO = RF035-H06MO.
S_CINFO-H12SA = RF035-H12SA.
S_CINFO-H12JA = RF035-H12JA.
S_CINFO-H12MO = RF035-H12MO.
S_CINFO-UMP2U = RF42B-UMP2U.
S_CINFO-UMP1U = RF42B-UMP1U.
S_CINFO-SFAEL = RF035-SFAEL.
S_CINFO-SFAE1 = RF035-SFAE1.
S_CINFO-SFAE2 = RF035-SFAE2.
S_CINFO-SFAE3 = RF035-SFAE3.
S_CINFO-SFAE4 = RF035-SFAE4.
S_CINFO-SFAE5 = RF035-SFAE5.
modify..
MODIFY I_CINFO FROM S_CINFO INDEX sytabix.
CLEAR: S_CINFO,RF035,RF02L, RF42B.
ENDFORM. " COMPUTE_SFIELDS
text
-->P_C_INFO_KUNNR text
FORM GET_CUST_BAL_INFO.
LOOP AT TCMTAB.
CALL FUNCTION 'FI_COMPANY_CODE_DATA'
EXPORTING
I_BUKRS = TCMTAB-BUKRS
IMPORTING
E_T001 = T001
EXCEPTIONS
ERROR_MESSAGE = 1.
IF SY-SUBRC = 0.
MOVE-CORRESPONDING T001 TO BUKTAB.
BUKTAB-KKBER = TCMTAB-KKBER.
COLLECT BUKTAB.
ENDIF.
ENDLOOP.
LOOP AT BUKTAB WHERE PERIV NE SPACE.
GJATAB-PERIV = BUKTAB-PERIV.
COLLECT GJATAB.
ENDLOOP.
CLEAR: MONAT.
LOOP AT GJATAB.
T001-PERIV = GJATAB-PERIV.
CLEAR: GJAHR, MONAT.
PERFORM PERIODE_ERMITTELN_EXC USING SY-DATLO GJAHR MONAT.
CHECK SY-SUBRC = 0.
GJATAB-GJAHR = GJAHR.
GJATAB-MONAT = MONAT.
SELECT SINGLE * FROM T009 WHERE PERIV = GJATAB-PERIV.
IF SY-SUBRC = 0.
GJATAB-ANZBP = T009-ANZBP.
ENDIF.
MODIFY GJATAB.
ENDLOOP.
LOOP AT BUKTAB.
CHECK NOT ( BUKTAB-PERIV IS INITIAL ).
READ TABLE GJATAB WITH KEY BUKTAB-PERIV.
CHECK SY-SUBRC = 0
AND NOT ( GJATAB-GJAHR IS INITIAL ).
CALL FUNCTION 'CUSTOMER_BALANCE'
EXPORTING
KUNNR = S_cinfo-kunnr
BUKRS = BUKTAB-BUKRS
GJAHR = GJATAB-GJAHR
MONAT = GJATAB-MONAT
PERIV = GJATAB-PERIV
ANZBP = GJATAB-ANZBP
XH6MON = 'X'
XH12MON = 'X'
IMPORTING
UMP2U = RF42B-UMP2U
VMP2U = RF42B-UMP1U
SALDO = RF035-SALDO
UML01 = SALDO-UML01
UML02 = SALDO-UML02
UML03 = SALDO-UML03
UML04 = SALDO-UML04
UML05 = SALDO-UML05
UML06 = SALDO-UML06
UML07 = SALDO-UML07
UML08 = SALDO-UML08
UML09 = SALDO-UML09
UML10 = SALDO-UML10
UML11 = SALDO-UML11
UML12 = SALDO-UML12
EXCEPTIONS
NO_BALANCE = 4.
IF SY-SUBRC = 0.
SKNKK-UMP1U = SKNKK-UMP1U + RF42B-UMP1U.
SKNKK-UMP2U = SKNKK-UMP2U + RF42B-UMP2U.
SKNKK-SALDO = SKNKK-SALDO + RF035-SALDO.
SKNKK-UML01 = SKNKK-UML01 + SALDO-UML01.
SKNKK-UML02 = SKNKK-UML02 + SALDO-UML02.
SKNKK-UML03 = SKNKK-UML03 + SALDO-UML03.
SKNKK-UML04 = SKNKK-UML04 + SALDO-UML04.
SKNKK-UML05 = SKNKK-UML05 + SALDO-UML05.
SKNKK-UML06 = SKNKK-UML06 + SALDO-UML06.
SKNKK-UML07 = SKNKK-UML07 + SALDO-UML07.
SKNKK-UML08 = SKNKK-UML08 + SALDO-UML08.
SKNKK-UML09 = SKNKK-UML09 + SALDO-UML09.
SKNKK-UML10 = SKNKK-UML10 + SALDO-UML10.
SKNKK-UML11 = SKNKK-UML11 + SALDO-UML11.
SKNKK-UML12 = SKNKK-UML12 + SALDO-UML12.
ENDIF.
ENDLOOP.
ENDFORM. "
*& Form GET_SFIELDS
text
--> p1 text
<-- p2 text
FORM GET_SFIELDS .
sknkk-kunnr = S_CINFO-KUNNR.
**Clear target to store computed values
CLEAR: RF035.
**Compute Balance fields
PERFORM GET_CUST_BAL_INFO.
REFRESH: SALTAB.
SALTAB-LNUMM = '01'. SALTAB-SALDO = SKNKK-UML01. APPEND SALTAB.
SALTAB-LNUMM = '02'. SALTAB-SALDO = SKNKK-UML02. APPEND SALTAB.
SALTAB-LNUMM = '03'. SALTAB-SALDO = SKNKK-UML03. APPEND SALTAB.
SALTAB-LNUMM = '04'. SALTAB-SALDO = SKNKK-UML04. APPEND SALTAB.
SALTAB-LNUMM = '05'. SALTAB-SALDO = SKNKK-UML05. APPEND SALTAB.
SALTAB-LNUMM = '06'. SALTAB-SALDO = SKNKK-UML06. APPEND SALTAB.
SALTAB-LNUMM = '07'. SALTAB-SALDO = SKNKK-UML07. APPEND SALTAB.
SALTAB-LNUMM = '08'. SALTAB-SALDO = SKNKK-UML08. APPEND SALTAB.
SALTAB-LNUMM = '09'. SALTAB-SALDO = SKNKK-UML09. APPEND SALTAB.
SALTAB-LNUMM = '10'. SALTAB-SALDO = SKNKK-UML10. APPEND SALTAB.
SALTAB-LNUMM = '11'. SALTAB-SALDO = SKNKK-UML11. APPEND SALTAB.
SALTAB-LNUMM = '12'. SALTAB-SALDO = SKNKK-UML12. APPEND SALTAB.
READ TABLE SALTAB INDEX 1.
RF035-H06SA = SALTAB-SALDO.
RF035-H06MO = SALTAB-LNUMM.
RF035-H12SA = SALTAB-SALDO.
RF035-H12MO = SALTAB-LNUMM.
------ SALTAB ---------------------------------------------
LOOP AT SALTAB.
IF SALTAB-SALDO > RF035-H06SA
AND SY-TABIX < 7.
RF035-H06SA = SALTAB-SALDO.
RF035-H06MO = SALTAB-LNUMM.
ENDIF.
IF SALTAB-SALDO > RF035-H12SA
AND SY-TABIX < 13.
RF035-H12SA = SALTAB-SALDO.
RF035-H12MO = SALTAB-LNUMM.
ENDIF.
ENDLOOP.
------ Period--------------------
REFRESH LT_PERIODS.
CLEAR LD_COUNTER.
READ TABLE BUKTAB INDEX 1.
IF SY-SUBRC = 0.
READ TABLE GJATAB WITH KEY BUKTAB-PERIV.
DO GJATAB-MONAT TIMES
VARYING LD_PERIOD FROM LD_PERIODS(2) NEXT LD_PERIODS+2(2)
RANGE LD_PERIODS.
LT_PERIODS-GJAHR = GJATAB-GJAHR.
LT_PERIODS-PERIOD = LD_PERIOD.
LD_COUNTER = LD_COUNTER + 1.
APPEND LT_PERIODS.
ENDDO.
IF LD_COUNTER LT 12.
LD_GJAHR = GJATAB-GJAHR - 1.
CLEAR T009Y.
SELECT SINGLE * FROM T009Y WHERE PERIV = GJATAB-PERIV
AND GJAHR = LD_GJAHR.
DO GJATAB-ANZBP TIMES
VARYING LD_PERIOD FROM LD_PERIODS(2) NEXT LD_PERIODS+2(2)
RANGE LD_PERIODS.
IF T009Y-ANZBP > 0.
CHECK SY-INDEX <= T009Y-ANZBP.
ENDIF.
LD_COUNTER = LD_COUNTER + 1.
LT_PERIODS-GJAHR = LD_GJAHR.
LT_PERIODS-PERIOD = LD_PERIOD.
APPEND LT_PERIODS.
ENDDO.
ENDIF.
IF LD_COUNTER LT 12.
LD_GJAHR = LD_GJAHR - 1.
DO GJATAB-ANZBP TIMES
VARYING LD_PERIOD FROM LD_PERIODS(2) NEXT LD_PERIODS+2(2)
RANGE LD_PERIODS.
LD_COUNTER = LD_COUNTER + 1.
LT_PERIODS-GJAHR = LD_GJAHR.
LT_PERIODS-PERIOD = LD_PERIOD.
APPEND LT_PERIODS.
ENDDO.
ENDIF.
SORT LT_PERIODS BY GJAHR ASCENDING PERIOD ASCENDING.
LD_COUNTER = LD_COUNTER - 12.
DO LD_COUNTER TIMES.
DELETE LT_PERIODS INDEX 1.
ENDDO.
SORT LT_PERIODS BY GJAHR DESCENDING PERIOD DESCENDING.
READ TABLE LT_PERIODS INDEX RF035-H06MO.
RF035-H06MO = LT_PERIODS-PERIOD.
RF035-H06JA = LT_PERIODS-GJAHR.
READ TABLE LT_PERIODS INDEX RF035-H12MO.
RF035-H12MO = LT_PERIODS-PERIOD.
RF035-H12JA = LT_PERIODS-GJAHR.
ENDIF.
**Compute Due Dates fields
PERFORM GET_AGING_BUCKETS .
RF035-SFAE1 = SKNKK-SFAE1.
RF035-SFAE2 = SKNKK-SFAE2.
RF035-SFAE3 = SKNKK-SFAE3.
RF035-SFAE4 = SKNKK-SFAE4 .
RF035-SFAE5 = SKNKK-SFAE5.
ENDLOOP.
ENDFORM. " GET_BALANCE_SFIELDS
*& Form GET_AGING_BUCKETS
text
--> p1 text
<-- p2 text
FORM GET_AGING_BUCKETS .
DATA: BEGIN OF LT_BUKRS OCCURS 0,
BUKRS LIKE T001-BUKRS,
END OF LT_BUKRS.
DATA: BEGIN OF LT_BUKTAB OCCURS 0,
BUKRS LIKE T001-BUKRS,
WAERS LIKE T001-WAERS,
KKBER LIKE T014-KKBER,
END OF LT_BUKTAB.
DATA: LD_LINES LIKE SY-TABIX.
*...performance optimization: for more than one company codes check....*
*...if balances exist and avoid selection of open items, if they don't.*
*...exist..............................................................*
REFRESH LT_BUKRS.
REFRESH LT_BUKTAB.
DESCRIBE TABLE BUKTAB LINES LD_LINES.
IF LD_LINES GT 1.
SELECT DISTINCT BUKRS APPENDING CORRESPONDING FIELDS
OF TABLE LT_BUKRS
FROM KNC1 FOR ALL ENTRIES IN BUKTAB
WHERE BUKRS = BUKTAB-BUKRS AND
KUNNR = Sknkk-KUNNR.
SELECT DISTINCT BUKRS APPENDING CORRESPONDING FIELDS
OF TABLE LT_BUKRS
FROM KNC3 FOR ALL ENTRIES IN BUKTAB
WHERE BUKRS = BUKTAB-BUKRS AND
KUNNR = Sknkk-KUNNR.
SORT LT_BUKRS.
DELETE ADJACENT DUPLICATES FROM LT_BUKRS.
LOOP AT LT_BUKRS.
LOOP AT BUKTAB WHERE BUKRS = LT_BUKRS-BUKRS.
MOVE-CORRESPONDING BUKTAB TO LT_BUKTAB.
APPEND LT_BUKTAB.
ENDLOOP.
ENDLOOP.
ELSE.
READ TABLE BUKTAB INDEX 1.
MOVE-CORRESPONDING BUKTAB TO LT_BUKTAB.
APPEND LT_BUKTAB.
ENDIF.
*...process company codes for customer given by interface..........*
LOOP AT LT_BUKTAB WHERE KKBER = s_cinfo-KKBER.
CALL FUNCTION 'CUSTOMER_DUE_DATE_ANALYSIS'
EXPORTING BUKRS = LT_BUKTAB-BUKRS
KKBER = ' '
KKBER = s_cinfo-KKBER
KUNNR = Sknkk-KUNNR
RASID = RASID
IMPORTING SFAE1 = RF035-SFAE1
SFAE2 = RF035-SFAE2
SFAE3 = RF035-SFAE3
SFAE4 = RF035-SFAE4
SFAE5 = RF035-SFAE5
SFAEL = RF035-SFAEL
EXCEPTIONS NO_OPEN_ITEMS = 4.
IF SY-SUBRC = 0.
*-- RF035 -
SKNKK-SFAE1 = SKNKK-SFAE1 + RF035-SFAE1.
SKNKK-SFAE2 = SKNKK-SFAE2 + RF035-SFAE2.
SKNKK-SFAE3 = SKNKK-SFAE3 + RF035-SFAE3.
SKNKK-SFAE4 = SKNKK-SFAE4 + RF035-SFAE4.
SKNKK-SFAE5 = SKNKK-SFAE5 + RF035-SFAE5.
SKNKK-SFAE5 = SKNKK-SFAE5 + RF035-SFAE5.
SKNKK-SFAEL = SKNKK-SFAEL + RF035-SFAEL.
ENDIF.
ENDLOOP.
ENDFORM. " GET_AGING_BUCKETS
*& Form header
This Subroutine gets data for displaying title *
There are no interface parameters to be passed to this subroutine. *
FORM header .
wa_final-string = text-000. APPEND wa_final TO i_final.
wa_final-string = text-001. APPEND wa_final TO i_final.
wa_final-string = text-002. APPEND wa_final TO i_final.
wa_final-string = text-003. APPEND wa_final TO i_final.
wa_final-string = text-004. APPEND wa_final TO i_final.
wa_final-string = text-005. APPEND wa_final TO i_final.
wa_final-string = text-006. APPEND wa_final TO i_final.
wa_final-string = text-007. APPEND wa_final TO i_final.
wa_final-string = text-008. APPEND wa_final TO i_final.
wa_final-string = text-009. APPEND wa_final TO i_final.
wa_final-string = text-010. APPEND wa_final TO i_final.
wa_final-string = text-011. APPEND wa_final TO i_final.
wa_final-string = text-012. APPEND wa_final TO i_final.
wa_final-string = text-013. APPEND wa_final TO i_final.
wa_final-string = text-014. APPEND wa_final TO i_final.
wa_final-string = text-015. APPEND wa_final TO i_final.
wa_final-string = text-016. APPEND wa_final TO i_final.
wa_final-string = text-017. APPEND wa_final TO i_final.
wa_final-string = text-018. APPEND wa_final TO i_final.
wa_final-string = text-019. APPEND wa_final TO i_final.
wa_final-string = text-020. APPEND wa_final TO i_final.
wa_final-string = text-021. APPEND wa_final TO i_final.
wa_final-string = text-022. APPEND wa_final TO i_final.
wa_final-string = text-023. APPEND wa_final TO i_final.
wa_final-string = text-024. APPEND wa_final TO i_final.
ENDFORM. " header
*& Form DOWNLOADCREDITDATA
text
-->P_P_PATH text
FORM DOWNLOADCREDITDATA USING P_PATH.
DATA:
lw_file2 TYPE string . " File Path
lw_file2 = p_PATH.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = BIN_FILESIZE
filename = lw_file2
filetype = 'DBF'
APPEND = ' '
write_field_separator = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = 'X'
WRITE_LF = 'X'
COL_SELECT = 'X'
COL_SELECT_MASK = ' '
DAT_MODE = 'X'
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = '0'
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH = FILELENGTH
TABLES
data_tab = I_CINFO
fieldnames = i_final
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
IF sy-subrc <> 0.
Messege
ENDIF. " IF sy-subrc EQ 0
ENDFORM. " DOWNLOADCREDITDATA
*& Form DOWNLOAD_CREDIT_DATA
text
--> p1 text
<-- p2 text
FORM DOWNLOAD_CREDIT_DATA .
PERFORM HEADER.
PERFORM DOWNLOADCREDITDATA USING P_PATH.
ENDFORM. " DOWNLOAD_CREDIT_DATA
*& Form GET_PGRESS_INDICATOR
text
-->P_L_TEXT text
-->P_L_PCT text
FORM GET_PGRESS_INDICATOR USING L_TEXT
L_PCT.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = l_pct
TEXT = l_TEXT.
ENDFORM. " GET_PGRESS_INDICATORIf you are just Downloading to a Flat file then why dont you have logic in place for the program to dump the data read into the file to that point depending on any criteria like accounts or customer then clear the internal table and run it in the back ground.
try to use cursor to read the records from the table which will make it a bit more efficient than plain select stement. -
Which data source to be used to bring sales data for customers???
Hi Gurus,
I am using 0FI_AR_4 data source for one of report for DSO calculation.
To complete the DSO( Daily Sales outstanding) calculation in BW I need sales data also for each customer.
And this should be for all the past 12 months. Based on past 12 months sales data for each customer DSO calculation will be done.
As this sales data is not available in the the 0FI_AR_4 data source so which other datasource can I use for the same purpose to bbring the sales data for the customer. I am thinking of COPA datasoure..... will it be right choice????
Or I can go with some other option???
Thanks in advance......
Uday Shankar.Uday,
You can use datasource: [2LIS_13_VDITM - Billing Document-Item Data |http://help.sap.com/saphelp_sm32/helpdata/EN/73/0bf23839caf878e10000000a114084/frameset.htm]
datasource provides billing data item level.
Srini -
Filters getting applied on a metric in report when that is not required
Issue:
We have two metrics in the AP Report :
DSO and Overall DSO
DSO = Closing Amt / (Invoice Amt/#of Elapsed Days)
Overall DSO = Closing Amt / (Invoice Amt/#of Elapsed Days) , but we have set the Logical Level on Dimensions Suplier , Comapny etc to Total
Closing Amt inturn is calculated based on three separate amts ( Current Closing Bal Amt - Bal Delta Amt + AP Posted Amt)
During the Overall DSO calculation :
Bal Delta Amt and AP Posted Amt gets calculated without the filters getting apllied on the Supplier, Company dim which is correct
But the Current Closing Bal Amt query brings in the filters on the Supplier, Company dim which is wrong.
DSO calcualtion is correct but for Overall DSO we dont want the filters to be applied on the Current Closing Bal Amt.
Not sure what is causing the issue.
Any Suggestion/Help Highly appreciated.
Regards,
-ZiaiTunes can't find your media files, which are normally located in ~/Music/iTunes. Try a Spotlight search on your computer for your media files, and move them back into that location. If you can't find your files, then try going to your backup drive, if you have one.
-
Daily sales outstanding report
Hi Friends,
Client has requested a Daily Sales Outstanding(DSO) Analysis Report to be generated each month which should measure the average number of days a company takes to collect receivables after a sale is made.
Does SAP have any standard report for this, if not please guide me what should I do to get above requirement.
ThanksThe balance and the sales have been determined from table KNC1.However, this table is not updated per credit control area.
When one company code is associated with more than one credit control area, there are possibilities of errors coming in DSO, in some old releases.
OSS note 885637 may be relevant.
Function modules CUSTOMER_DSO_CALCULATION, CUSTOMER_DSO_EXPLANATION could be used in this calculation.
DSO days
The number of the days the customer took to clear an invoice is calculated as the DSO days,(the balances are set against the sales). The DSO days are calculated with the following formula:
DSO = Balance/sales per period x 30
DSO calculation: Number of posting periods to be included
The number of months to be taken into account determines how many previous months must be included when calculating the balance and sales per day.
<b>Customizing controls</b>
In customizing, SPRO>Financial Accounting>Accounts Receivable and Accounts Payable>Credit Management>Define Preliminary settings for credit management.
The day sales outstanding figure is normally calculated in the standard system using a 3 month period.
DSO Calculation with current balance or average of 3 months balance are set up in configuration. -
Hi
Is there any standard report where Days Sales Outstanding can be viewed.
What does it mean in business/layman terms.
Many Thanks.
Sarah.FD32 t-code for a customer shall show the customer credit management view. while you are in the screen, you can branch out to Extras>DSO calculation via menu bar, that would show the DSO.
The DSO analysis provides general information about the number of days (DSO days) a customer takes to pay an invoice. (Thanks to wikipedia)
In accountancy, Days Sales Outstanding is a company's average collection period. A low figure indicates that the company collects its outstanding receivables quickly.
It's considered a leading indicator of impending trouble.
Days Sales Outstanding, or DSO, is calculated as: Total Outstanding Receivables at the end of the period analyzed divided by Total Sales for the period analyzed (typically 90 or 365 days), times the number of days in the period analyzed. That is,
DSO = Receivables / Sales * Days.
DSO can vary over the course of a year with a company's seasonal business cycle. Of interest when analyzing the performance of a company is the trend in DSO. If DSO is getting longer, customers are taking longer to pay their bills, which may be a warning that customers are dissatisfied with the company's product or service, or that salespeople are making sales to customers that are less credit-worthy, or that salespeople have to offer longer payment terms in order to seal the deal. It could also mean that the company has an inefficient or overtaxed accounts receivables department. -
Hello.
We are designing Balance Sheet planning in BPS and would like to use FOX for some of the calculations.
One of the calculations will be for Trade Receivables. It will be calculated as:
Trade Receivables = Net Sales Revenue * DSO
DSO calculated as: Trade debtors (AI) R/3 actual values / Net Sales Revenue (actual values) X Number of days in period
The questions is to how to make 'number days in period' dymanic? We are using Fiscal periods, but need to bring in the number of days in the calendar month.
How do we make this dynamic? Or do we need to code in a condition for each period?
Any advise for Balance Sheet FOX much appreciated.Hi,
You can proceed as suggested ,to add for using function module in fox you have to define it in
enter the name of the function module in transaction SM30 in the table RSPLF_FDIR.
Can also refer the link below for help:-
http://help.sap.com/saphelp_nw70/helpdata/en/47/94eb78b6394befe10000000a42189d/content.htm
Regards,
Indu -
I am attempting to do a DSO calculation that checks to see if two account members are less than the total sales member back up to four months to make the calculation and am seeking any recommendations on how to accomplish this. I am pretty new at Essbase and this seems to be a complex calculation. Here is an example of the calculation in a generic sense:IF( (RecNet.TradeRec.Trade+RecNet.OtherRec.ProBill) <= SalesOC, ( (RecNet.TradeRec.Trade + RecNet.OtherRec.ProBill) / (SalesOC/DaysInCurrentMonth) ), IF( (RecNet.TradeRec.Trade + RecNet.OtherRec.ProBill) <= SUM('SalesOCCurrent-1':SalesOC), DaysInCurrentMonth + ( (RecNet.TradeRec.Trade + RecNet.OtherRec.ProBill - SalesOC) / ('SalesOCCurrent-1' / 'DaysInCurrentMonth-1') ),etc., back 4 months. We have periods in one dim and year in another.I made the following attempt, but I am sure my syntax is wrong:IF (("RecNet.TradeRec.Trade"+"RecNet.OtherRec.ProBill") <= SalesOC) ARDAYS = ((RecNet.TradeRec.Trade+RecNet.OtherRec.ProBill) / (SalesOC/DAYS_TOT);ELSEIF ((RecNet.TradeRec.Trade+RecNet.OtherRec.ProBill) <= @SUMRANGE (SalesOC, @CURRMBRRANGE (PERIOD, LEV, 0, -1, 0)) ARDAYS = DAYS_TOT + ((RecNet.TradeRec.Trade+RecNet.OtherRec.ProBill-SalesOC) / (@SUMRANGE (SalesOC, @CURRMBRRANGE (PERIOD, LEV, 0, -1, -1)) / (@SUMRANGE (DAYS_TOT, @CURRMBRRANGE (PERIOD, LEV, 0, -1, -1)));Sorry for the long post. Should I be using @PRIOR instead?
I can give you an example of why ABS is used in the divisor.
Imagine for a moment that you had profit last year of 200, and profit this year of 500. Your percentage change would be 1.5, or 150%, right? Pretty easy to calculate: (New minus Old) / Old = (500-200)/200.
But if last year's profit was a $200 LOSS, what would your percentage change be? "(New minus Old) / Old" would be (500 minus (-200)) divided by -200, or 700 divided by -200, resulting in negative 3.5, or a 350% loss. Huh? How in the world could that be right? We had a loss last year, a gain this year, and it shows up as a negative percentage increase?
To (partially) fix the problem, we use ABS in the divisor. So we go from -200 up to zero, that's a 100% improvment. Then we go from zero up to 200, that's another 100%, and from 200 up to 400 is another 100%. And then from 400 up to 500 is another 50%. So that's a total of 350%. Using ABS around the divisor does that for us, so that we're not dividing by a negative number.
Now, I firmly believe that if last year's number is a negative and this year's number is a positive, the result should be N/A. But that's not what the OLAP engine does by default. Why do I disagree with returning a numbe at all? Let's take that second example, where we had a $200 loss followed by a $500 gain, which would show up as a 350% return. What if our initial year had a $142.86 profit, followed in the next year by a $500 profit?. What would the percentage change be? Do the math, and you'll find that it's.... 350%.
So... an increase of $700 (from a loss of $200 to a profit of $500) calculates to the same percentage as an increase of $357.14 (from a profit of $142.86 to a profit of $500), which I find ludicrous. But there it is.
Anyway, that's why you use ABS in the denominator. -
APD - writing query result "rank calculation" to file or DSO
Hello,
I am trying to take a query result set where I am calculating a key figure as Rank and run it through an APD to write to a DSO.
This is a top 5 query for a dashboard. I keep getting an MDX failure on the query.
Any ideas?
My ultimate goal is to set up a process to take TopN query results and get them into a target that can be used in a Universe.
Thanks,
ChrisHi,
You want to store the data of query in to dso?Y
You can write a code in to routine for calulated key figure.
I also face the same problem but i solved using routine.
try this.
Regards,
Ganesh -
SAP BI Date and Time Difference calculations in DSO Transformation
Hello Guys,
Could you please tell me how to calculate the date and Time difference between 2 fields.
I have 2 date fields :
Arrival Date : 6/16/2007
Departure date : 6/19/2007
Also i have 2 time fields for the above
Arrival Time : 13:00:00
Departure Time : 11:50:00
I want to display all the four fields and 2 fields for the difference in Date and Time.
Is it better to calcuate the differences in DSO Transformation or can you do it in the report itself.Could you please let me know the solution.
Thanks,
BI ConsultantHello Consulant BI,
Computing the difference of two dates is easy (assuming you really just want the number of days). You can simply subtract the two dates using ABAP:
data: w_arrival_date type sy-datum,
w_dep_date type sy-datum,
w_diff type i.
w_arrival_date = <your arrival date field here>.
w_arrival_date = <your departure field here>.
w_diff = w_arrival_date - w_dep_date.
Getting the time difference isn't really much logical. I think what you want instead is to compute the totals days (and extra hours) right? If this is the case, then you can convert the date+time for both the arrival and departure into a timestamp variable first and then t the get difference.
Hope this helps.
Maybe you are looking for
-
GPU panic MacBook Pro 15'' Mid-2010
Cheers to all, This is not the first, but I believe not the last thread about this issue. So here we go, I'm having GPU Panic attacks, and yes my MacBook Pro is Mid-2010, and yes it has a motherboard issue (like on most of the threads, symptoms are t
-
i recently tried to remove widows7 on my macbook air using bootcamp and halfway through it grayed out .The windows 7 is removed but i cant free up the 62gig partition the windows was occupying on my 121gig ssd harddrive please help
-
Facetime on my ipad does not recognise my apple id password after i have upgraded to iOS 6.1
After upgrading my ipad to iOS 6.1, Facetime does not recognise my Apple ID password. The password works fine on the app store, I have even tried changing the password, but Facetime refuses to recognise the password, and therefore unable to activate.
-
Scrollbar in layer window is not working properly.
There seems to be a bug with the scroller belonging to the tools. The functionality of a scrollbar is simple. You can pull it or you can click above or below the pull bar to make it move. The latter functionality is not working. See image for further
-
Repetitive Crash - Thread 2 Crashed: looks like SSH problems.
I'm having this problem when loading up dreamweaver, and it looks like a problem dealing with carbon/ssh. If someone could take a look at thread ten and let me know what you think, that would be excellent. Thanks! Date/Time: 2007-09-26 08:59:53.355 -