Year to date of epoch time
I am doing a report where I would like to select records year to date. My difficulty is that the date field is in epoch time from 1/1/1990. What would be the formula for this record selection? I know I could use yeartodate and dateadd but am having trouble pinning it down. Thank you.
EPOCH time starts from 01/01/1970 are you sure it is 01/01/1990?
In your record selection criteria use:
DateAdd ("s",{epoch.datefield}-18000, #1/1/1970#) in YearToDate
This checks for Eastern Time, just add 3600 to 18000 for each hour that is behind Eastern Time Zone.
Similar Messages
-
Subject:
Please help , I have iPhone 4S and have updated to iso6, don't know if that has anything to do with the problem but I can't set the year on date and time to the correct year, it automatically goes to 2578 ? Plz helpSettings>General>International.
Set the calendar to "Gregorian". You have it set to Buddhist. -
Nested Loops...looping through one month of data at a time year by year
Hi all,
I'm trying to create an insert statement that loops through a table that has 10 years of data (2001 to 2010) month by month to minimize impact on server and commits more frequently to avoid filling up the redo logs and rollback tablespaces. The table is large, has about 40 millions records per year. Lets say the structure of the table is the following:
Customer_ID number(9),
Order_Item_1 number(6),
Order_Item_2 number(6),
Order_Item_3 number(6),
Order_date date
The table is in flat format but I want to normalize it so that it looks like the following:
Customer_ID Order_Seq Order_Item Order_date
999999999 1 555555 01-jan-2001
999999999 2 666666 01-jan-2001
999999999 3 444444 01-jan-2001
888888888 1 555555 03-jan-2001
888888888 2 666666 03-jan-2001
But because I want to loop through month by month....I need to set it up so that it loops through month by month, year by year (Using the Order Date Field) and Order_item by Order_item. Something like:
so my insert statements would be something like if I hardcoded instead of put the insert statement into a loop:
insert into orders_normalized
(Customer_id,Order_seq,Order_item,Order_date) select customer_id,1,Order_item,Order_date where Order_item_1 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='01';
insert into orders_normalized
(Customer_id,Order_seq,Order_item,Order_date) select customer_id,2,Order_item,Order_date where Order_item_2 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='01';
insert into orders_normalized
(Customer_id,Order_seq,Order_item,Order_date) select customer_id,3,Order_item,Order_date where Order_item_3 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='01';
insert into orders_normalized
(Customer_id,Order_seq,Order_item,Order_date) select customer_id,1,Order_item,Order_date where Order_item_1 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='02';
insert into orders_normalized
(Customer_id,Order_seq,Order_item,Order_date) select customer_id,2,Order_item,Order_date where Order_item_2 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='02';
insert into orders_normalized
(Customer_id,Order_seq,Order_item,Order_date) select customer_id,3,Order_item,Order_date where Order_item_3 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='03';
Hope this makes sense.
ThanksDoes the sequence of items in an order really matter? In other words, do we really need to preserve that an item was in position 2 versus position 1? I bet that the sequence or position of each item in an order is not meaningful. They were probably numbered 1, 2, and 3 just to make them uniquely named columns so there would be three slots to hold up to 3 items in the denormalized table.
You only have about 400 million rows to insert, so it could feasibly be done in a single transaction (depending on your database environment).
You can always do a create table as select (CTAS) to help with undo / redo issues and get better performance. You could run it in parallel, and spit it out to a new table partitioned by month. Single DDL statement running in parallel making your new table--sounds good to me.
How about something like this:
CREATE TABLE ORDERS_NORMALIZED
(CUSTOMER_ID, ORDER_ITEM, ORDER_DATE)
PARTITION BY RANGE(ORDER_DATE)
PARTITION p200901 VALUES LESS THAN (TO_DATE('200902','YYYYMM')),
PARTITION p200902 VALUES LESS THAN (TO_DATE('200903','YYYYMM')),
PARTITION p201012 VALUES LESS THAN (TO_DATE('201101','YYYYMM'))
as SELECT CUSTOMER_ID, ORDER_ITEM_1, ORDER_DATE
FROM OTHER_TABLE
WHERE ORDER_ITEM_1 IS NOT NULL
UNION ALL
SELECT CUSTOMER_ID, ORDER_ITEM_2, ORDER_DATE
FROM OTHER_TABLE
WHERE ORDER_ITEM_2 IS NOT NULL
UNION ALL
SELECT CUSTOMER_ID, ORDER_ITEM_3, ORDER_DATE
FROM OTHER_TABLE
WHERE ORDER_ITEM_3 IS NOT NULL.....................
Out of curiosity, why not normalize it further? You could have used two tables instead of one.
One (ORDER) with:
ORDER_ID
CUSTOMER_ID
DATE
Order_id would be a new surrogate key / primary key.
Another table (ORDER_ITEM) with:
ORDER_ID
ORDER_ITEM
It would be a table that links ORDERS to ITEMS. You get the idea. -
How to convert Epoch time to Datetime (YYYYMMDDHH24MMSS)
Hi,
In our Oracle db, Datetime is stored as Epoch time (seconds since january 1st 1970). To get a readable date, I have converted those fields as followed:
TO_CHAR(TO_DATE('19700101000000', 'YYYYMMDDHH24MISS')+((DATE_FIELDS-18000) /(60*60*24)),'YYYYMMDDHH24MISS')
Result ex: 20100830135422
The problem is that the resulting fields are in VARCHAR2 instead of DATE so it causes issues in SAP BW reporting development. BW developpers can manage something to make it eventually work but I would like to correct this at the source if it is possible.
I have already tried to add another "TO_DATE" function at the beginning of the previous expression but I get a date in "DD-MMM-YY" format as a result even if I have forced another date format.
Any idea on how I could solve this?
Thanks a lot
PascaleOk, there is clearly a disconnect here.
Oracle stores dates in a DATE datatype. This means that, internally, it will store enough information for a 4 digit year, a month, date, hour in 24 hour time, minute, and second. All that information is stored in the DATE datatype inside the database, but, it's stored in an internal format, that has nothing to do with what it will look like when you print it. When you want to retrieve it, Oracle must have a date format string, so that it knows how to display that information. If you do not provide a date format string via the TO_CHAR() function, Oracle has a parameter called NLS_DATE_FORMAT that provides the default format to use. If you have not set the NLS_DATE_FORMAT, it defaults to DD-MON-YY.
So, having said all that, what are you actually trying to do?
You started with this expression:
TO_CHAR(TO_DATE('19700101000000', 'YYYYMMDDHH24MISS')+((DATE_FIELDS-18000) /(60*60*24)),'YYYYMMDDHH24MISS')How is that expression used? In a SELECT statement? Then you probably want it the way it's written above. In an INSERT statement? If so, then if the datatype of the column you're inserting into is DATE, then you probably need to eliminate that outer TO_CHAR conversion, so that the expression returns a date that can be inserted into DATE column.
Tell us more about what you want to do, and perhaps we can offer further help.
-Mark -
Month to Date and Year to Date Scenarios
<b>Dear SAP BI Gurus,
Can anyone please give me guidance how to create a Month to Date and Year To Date Scenarios (Variables perhaps?) for 0SRR_CF_C1? The date is in decimal and not DATE format Im assuming the reason for this is to get the Time variance . Nonetheless, Id like to create a MTD and YTD scenario for reporting.
Much Thanks
Philips Manalaysay</b>Hi,
You should take a look at the blog and doc below.
/people/vikash.agrawal/blog/2006/10/17/enable-trend-reporting-150-by-manipulating-variable-value
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/25d98cf6-0d01-0010-0e9b-edcd4597335a
Regards, -
How to derive month/year from date in SAP BW 3.5 data flow
Hi
How we can derive cal year/month and fiscal month/year from date in SAP BW 3.5 data flow (we're using transfer and update rule)..
Thanks,
PKHi,
if you have any date filed in source side you can just map to any time char system will automatically convert to target objects.
please look at the screen shot for understanding. (not 3.x it is 7.x)
Thanks,
Phani. -
Calculation of ''Total to Date'' like ''Year to date''
Hello together,
How would you calculate a Total to Date in Oracle BI.
It should sum all values like Year to date up to a certain period inclusive all previous years.
Example:
Year Value
2008 10
2009 20
2010 40
If I select 2009 it shoul display 30. without the previous and the following row.
Regards,
Stefan
Content Level Fiscal Period TOTAL (Do I have to calculate on a yearly level all the past years, - ago - 1, ago -2, ago - 3, ago - 4 up to - 20?)
minus Year Value
plus YTD
Month and Total have to bes diplayed in on line.
works for the current year but not when you back to last year.
Edited by: stefanhess on Jun 14, 2010 1:54 PMan odd solution.
In the physical layer you can duplicate the fact table and can join the time dim and duplicated fact with the complex join using the year column with the condition as
time_dimension.year_column >= fact_table.year_column
in your report when you bring the year and this measure you will get what you want.
Edited by: kart on Jun 14, 2010 6:46 PM -
Please tell me I haven't lost years of data
My hard drive recently failed so I had it replaced. First time I haven't bought Applecare and the first time I actually needed it. Sigh.
So, I told the people who replaced it that I could install the operating system myself. Which is what I have spent all day doing.
First, I booted up from the Snow Leopard Install disk and tried to restore from Time Machine. It crashed.
So, I restarted. I was holding down the control key rather than the option key like I thought so it went to the online restore, asking if I wanted to restore Lion. I shrugged and said, "Sure. Why not?" So, six hours to download and install Lion.
I went to the App store and re-downloaded Mountain Lion. Another six hours of waiting.
So, finally everything is installed. I go to Time Machine to restore my data…and I can't get at it. None of the backups I've done back to three years ago show. I can only access back to the first backup since the operating system was reinstalled. They are there. I just can't access them.
I did the 'Select Device in the Finder window', went into Time Machine and now I could access the earlier backups. But only those things that are acessible to everybody. The data from the account on my old hard drive is unavailable to me.
Is that data now lost? Is there anyway to get at it? As I said there is literally years of data on there. Photos, important personal documents going back a decade and two other Macs.
Please, please, tell me I can get it back!If you deleted his iCloud account in Settings>iCloud>Delete Account, then you did not delete his data from iCloud. You only deleted the account from the iPad.
-
Are Cube organized materialized view with Year to Date calculated measure eligible for Query Rewrite
Hi,
Will appreciate if someone can help me with a question regarding Cube organized MV (OLAP).
Does cube organized materialized view with calculated measures based on time series Year to date, inception to date eg.
SUM(FCT_POSITION.BASE_REALIZED_PNL) OVER (HIERARCHY DIM_CALENDAR.CALENDAR BETWEEN UNBOUNDED PRECEDING AND CURRENT MEMBER WITHIN ANCESTOR AT DIMENSION LEVEL DIM_CALENDAR."YEAR")
are eligible for query rewrites or these are considered advanced for query rewrite purposes.
I was hoping to find an example with YTD window function on physical fact dim tables with optimizer rewriting it to Cube Org. MV but not much success.
Thanks in advanceI dont think this is possible.
(My own reasoning)
Part of the reason query rewrite works for base measures only (not calc measures in olap like ytd would be) is due to the fact that the data is staged in olap but its lineage is understandable via the olap cube mappings. That dependency/source identification is lost when we build calculated measures in olap and i think its almost impossible for optimizer to understand the finer points relating to an olap calculation defined via olap calculation (olap dml or olap expression) and also match it with the equivalent calculation using relational sql expression. The difficulty may be because both the olap ytd as well as relational ytd defined via sum() over (partition by ... order by ...) have many non-standard variations of the same calculation/definition. E.g: You can choose to use or choose not to use the option relating to IGNORE NULLs within the sql analytic function. OLAP defn may use NASKIP or NASKIP2.
I tried to search for query rewrite solutions for Inventory stock based calculations (aggregation along time=last value along time) and see if olap cube with cube aggregation option set to "Last non-na hierarchical value" works as an alternative to relational calculation. My experience has been that its not possible. You can do it relationally or you can do it via olap but your application needs to be aware of each and make the appropriate backend sql/call. In such cases, you cannot make olap (aw/cubes/dimensions) appear magically behind the scenes to fulfill the query execution while appearing to work relationally.
HTH
Shankar -
How to convert epoch time to datetime in sql*loader Oracle
Hello,
I wan't to question how to convert epoch time to datetime in sql*loader Oracle. I try this script for convert epoch time to datetime in sql*loader, but error:
Record 1: Rejected - Error on table TEMP_TEST_LANGY, column DATADATA.
ORA-01722: invalid number
Record 2: Rejected - Error on table TEMP_TEST_LANGY, column DATADATA.
ORA-01722: invalid number
Record 3: Rejected - Error on table TEMP_TEST_LANGY, column DATADATA.
ORA-01722: invalid number
This is my loader:
LOAD DATA INFILE 'C:\Documents and Settings\Administrator\My Documents\XL_EXTRACT_211\load.csv'
into table TEMP_TEST_LANGY append
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
DATADATA CHAR "TO_DATE('01-JAN-1970','DD-MON-YYYY')+:datadata/86400"
This is my csv file:
79314313.7066667
79314336.2933333
79314214.3466667
This is my table:
CREATE TABLE TEMP_TEST_LANGY
DATADATA DATE
Thanks
Edited by: xoops on Sep 21, 2011 8:56 AM
Edited by: xoops on Sep 21, 2011 8:58 AMthanks for your answer, but I asked to use sql loader instead of the external table, which so my question is why can not the epochtime converted to datetime, if there is no way to convert a datetime epochtime using sql loader, so I'm required to use the external table. thank you.
This is my error log:
Column Name Position Len Term Encl Datatype
DATADATA FIRST * , CHARACTER
SQL string for column : "TO_DATE('1-Jan-1970 00:00:00','dd-MM-YYYY hh24:mi:ss') + (:DATADATA/60/60/24)"
Record 1: Rejected - Error on table TEMP_TEST_LANGY, column DATADATA.
ORA-01722: invalid number
Record 2: Rejected - Error on table TEMP_TEST_LANGY, column DATADATA.
ORA-01722: invalid number
Record 3: Rejected - Error on table TEMP_TEST_LANGY, column DATADATA.
ORA-01722: invalid number
Edited by: xoops on Sep 21, 2011 12:33 PM -
Converting EPOCH time stamp to time stamp in Oracle
Hi,
I need a help regarding how to convert the epoch Time stamp, to oracle date and time format.
for example,
for epoch time stamp:1204104116656
the time stamp should be :2008-02-13 12:43:00.351
Thanks in Advance
Basil AbrahamAre you sure you've got the right timestamp? Assuming this is a standard unix epoch time stamp with the epoch date starting at 1970-01-01 UTC the interval between 1970-01-01 UTC and 2008-02-13 is 13922 days, but your epoch timestamp divided by the number of miliseconds in a day 1204104116656/(1000*60*60*24) comes out to 13936.390... days a difference of 14 days 9 hours 21 minutes 56 seconds and 656 miliseconds.
Anyway to convert you need to convert your epoch date into an interval and add it to the starting epoch date (as a timestamp):
select to_timestamp_tz('1970-01-01 utc', 'yyyy-mm-dd tzr')+
numtodsinterval(1204104116656/1000,'second') dstamp
from dual;Message was edited by:
Sentinel -
Want date displayed with time on the top banner
Want date displayed with time on the top banner
On the top banner, I see signal, network, wifi, time, alarm, Bluetooth and battery. I want to see date and month and year too. How?There isn't a way to display the date in a banner.. BUT - The calendar icon does display the date and day.
HTH -
Hi,
I have to get the Year-to-date amount on an ALV output for a GL account. Is there any FM to do it?... Currently Iam just getting the output for the period that I put in selection screen.
Thank you,
SB.Hi
You have to use the filed symbols for this purpose.
see the sample code
report zfgldr0010
line-size 122
line-count 60
no standard page heading
message-id zndc.
Database Tables
tables: bsis, " Accounting: Secondary Index for G/L Accounts
ska1, " GL Account Master
t001, " Company Codes
csks, " Cost Centers Master
setnode, " Cost Center Group Hierarchy
setleaf. " Cost Center Group Hierarchy
Declaration of Internal Tables
Internal Table to fetch the Opex Budget & Capex Actual Data
data: begin of it_bud_tab occurs 0,
lednr like cosp-lednr, " Ledger No
objnr like cosp-objnr, " Object No
gjahr like cosp-gjahr, " Fiscal Year
wrttp like cosp-wrttp, " Actuals
versn like cosp-versn, " Version
twaer like cosp-twaer, " Currency
perbl like cosp-perbl, " Period Block
kstar like cosp-kstar, " Cost Element/GL A/C No
wog001 like cosp-wog001, " Total Value
wog002 like cosp-wog002, " Total Value
wog003 like cosp-wog001, " Total Value
wog004 like cosp-wog002, " Total Value
wog005 like cosp-wog001, " Total Value
wog006 like cosp-wog002, " Total Value
wog007 like cosp-wog001, " Total Value
wog008 like cosp-wog002, " Total Value
wog009 like cosp-wog001, " Total Value
wog010 like cosp-wog002, " Total Value
wog011 like cosp-wog001, " Total Value
wog012 like cosp-wog002, " Total Value
end of it_bud_tab.
Internal Table to fetch the Settlement Costs(Opex-Actual)
data: begin of it_set_tab occurs 0,
kokrs like coep-kokrs, " Controlling Area
belnr like coep-belnr, " Acc Document
buzei like coep-buzei, " Line Item
perio like coep-perio, " Period Block
wkgbtr like coep-wkgbtr, " Value in CO Curr
lednr like coep-lednr, " Ledger No
objnr like coep-objnr, " Object No
gjahr like coep-gjahr, " Fiscal Year
wrttp like coep-wrttp, " Actuals
versn like coep-versn, " Version
kstar like coep-kstar, " Cost Element
beknz like coep-beknz, " Dr/Cr Indicator
parob1 like coep-parob1, " Partner Object
end of it_set_tab.
Internal Table to fetch the COBRB data(Settlement rules)
data: begin of cobrb_tab occurs 0,
objnr like cobrb-objnr, " Object No
rec_objnr1 like cobrb-rec_objnr1, " Ref Object No
bureg like cobrb-bureg, " Dostribution Rule
lfdnr like cobrb-lfdnr, " Sequence No
perbz like cobrb-perbz, " Settlement Rule
konty like cobrb-konty, " Acct Assign Category
bukrs like bsis-bukrs, " Company Code
kostl like bsis-kostl, " Cost Center
end of cobrb_tab.
Internal Table to Settlement Actual Costs for Cost center & GL
data: begin of set_act_tab occurs 0,
kostl like csks-kostl, " Cost Center
hkont like bsis-hkont, " GL Account No
amt_atd like bsis-dmbtr, " YTD Actual
end of set_act_tab.
Internal Table to Settlement Actual Costs for Cost center
data: begin of set1_act_tab occurs 0,
kostl like csks-kostl, " Cost Center
hkont like bsis-hkont, " GL Account No
amt_atd like bsis-dmbtr, " YTD Actual
end of set1_act_tab.
Internal Table to Capex Budget Figures
data: begin of cap_tab occurs 0,
belnr like coej-belnr, " Accounting Doc No
buzei like coej-buzei, " Line Item No
objnr like coej-objnr, " Object No
wrttp like bpej-wrttp, " Value Type
gjahr like coej-gjahr, " Fiscal Year
wtjhr like bpej-wtjhr, " budget Value
end of cap_tab.
Internal Table to Segragate the Budget Figures(Full Year and YTD)
data: begin of cap1_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
hkont(10) type n, " GL Account No
amt_fy like coej-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of cap1_tab.
Internal Table to Sum up the Budget Figures(Full Year and YTD)
data: begin of cap2_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
amt_fy like coej-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of cap2_tab.
Internal Table to Segragate the CAPEX YTD data(GL Wise)
data: begin of cap_ytd_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
kstar like coej-kstar, " Cost Element
amt_ytd like coej-wkf001, " Ytd Amount
end of cap_ytd_tab.
Internal Table to Segragate the CAPEX YTD data(CC Wise)
data: begin of cap1_ytd_tab occurs 0,
gjahr like coej-gjahr, " Fiscal Year
kostl(10) type n, " Cost Center
amt_ytd like coej-wkf001, " Ytd Amount
end of cap1_ytd_tab.
Internal Table to Segragate the Budget Figures(Full Year and YTD)
data: begin of it_ytd_tab occurs 0,
gjahr like cosp-gjahr, " Fiscal Year
kostl like bsis-kostl, " Cost Center
kstar like cosp-kstar, " Cost Element
amt_fy like cosp-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of it_ytd_tab.
Internal Table to Segragate the Budget Figures(Full Year and YTD)
data: begin of it_ytd1_tab occurs 0,
gjahr like cosp-gjahr, " Fiscal Year
kostl like bsis-kostl, " Cost Center
amt_fy like cosp-wkf001, " Full Year Amount
amt_ytd like coej-wkf001, " Ytd Amount
end of it_ytd1_tab.
Internal Table to fetch the Actual YTD Figures
data: begin of it_act_tab occurs 0,
bukrs like bsis-bukrs, " Company Code
hkont like bsis-hkont, " GL Account No
gjahr like bsis-gjahr, " Fiscal Year
belnr like bsis-belnr, " Accounting Doc No
budat like bsis-budat, " Posting Date
waers like bsis-waers, " Currency
kostl like bsis-kostl, " Cost Center
shkzg like bsis-shkzg, " Dr/Cr Indicator
dmbtr like bsis-dmbtr, " Doc Amount
end of it_act_tab.
Internal Table to fetch the Actual YTD Figures( GL-SUM)
data: begin of act1_tab occurs 0,
bukrs like bsis-bukrs, " Company Code
kostl like bsis-kostl, " Cost Center
hkont like bsis-hkont, " GL Account No
gjahr like bsis-gjahr, " Fiscal Year
dmbtr like bsis-dmbtr, " Doc Amount
end of act1_tab.
Internal Table to fetch the Actual YTD Figures( CC-SUM)
data: begin of act2_tab occurs 0,
bukrs like bsis-bukrs, " Company Code
kostl like bsis-kostl, " Cost Center
gjahr like bsis-gjahr, " Fiscal Year
dmbtr like bsis-dmbtr, " Doc Amount
end of act2_tab.
Internal Table to fetch the WBS Data
data: begin of wbs_tab occurs 0,
pspnr like prps-pspnr, " WBS Element
posid like prps-posid, " WBS Structure Element
objnr like prps-objnr, " Object No
psphi like prps-psphi, " Project ID
pbukr like prps-pbukr, " Company Code
pkokr like prps-pkokr, " Controlling Area
fkstl like prps-fkstl, " Cost center
end of wbs_tab.
Internal Table to get Capex Actual from Networks
data: begin of net_tab occurs 0,
aufnr like afko-aufnr, " Order No
ftrmi like afko-ftrmi, " Release Date
pronr like afko-pronr, " Project No
aufpl like afvc-aufpl, " Routing No
aplzl like afvc-aplzl, " Counter No
objnr like afvc-objnr, " Object No
projn like afvc-projn, " WBS Element
end of net_tab.
Internal Table to get Capex Actual from Orders
data: begin of ord_tab occurs 0,
aufnr like aufk-aufnr, " Order No
aedat like aufk-aedat, " Order Date
kostl like aufk-kostl, " Cost center
objnr like aufk-objnr, " Object No
pspel like aufk-pspel, " WBS Element
end of ord_tab.
Internal Table to fetch the Capex Actual Data
data: it_cap_tab like kv02s occurs 0 with header line.
Internal Table to store the output of function-G_SET_TREE_IMPORT.
data : ccenter_group_tab like sethier occurs 0 with header line.
Internal Table to store the output of function-G_SET_TREE_IMPORT.
data : cost_center_tab like setvalues occurs 0 with header line.
Declaration of Variables
data: v_f_oper_amnt like bsis-wrbtr, " Operations F Year Budget
v_f_depr_amnt like bsis-wrbtr, " Depreciation F Year Budget
v_f_main_amnt like bsis-wrbtr, " Maintenance F Year Budget
v_f_capx_amnt like bsis-wrbtr, " Capex F Year Budget
v_b_oper_amnt like bsis-wrbtr, " Operations Budget YTD
v_b_depr_amnt like bsis-wrbtr, " Depreciation Budget YTD
v_b_main_amnt like bsis-wrbtr, " Maintenance Budget YTD
v_b_capx_amnt like bsis-wrbtr, " Capex Budget YTD
v_a_oper_amnt like bsis-wrbtr, " Operations Actual YTD
v_a_depr_amnt like bsis-wrbtr, " Depreciation Actual YTD
v_a_main_amnt like bsis-wrbtr, " Maintenance Actual YTD
v_a_capx_amnt like bsis-wrbtr, " Capex Actual YTD
v_v_oper_amnt type i, " Operations Variance
v_v_depr_amnt type i, " Depreciation Variance
v_v_main_amnt type i, " Maintenance Variance
v_v_capx_amnt type i, " Capex Variance
v_t_f_amnt type i, " Total F Year Budget
v_t_b_amnt type i, " Total Budget YTD
v_t_a_amnt type i, " Total Actual YTD
v_t_v_amnt type i, " Total Variance
v_gt_f_amnt type i, " GTotal F Year Budget
v_gt_b_amnt type i, " GTotal Budget YTD
v_gt_a_amnt type i, " GTotal Actual YTD
v_gt_v_amnt type i, " GTotal Variance
v_per_oper type i, " % YTD Operations
v_per_depr type i, " % YTD Depreciation
v_per_main type i, " % YTD Maintenance
v_per_capx type i, " % YTD Capex
v_per_tot type i, " % YTD Total
v_per_gtot type i, " % YTD G Total
v_kstar(4) type n, " Cost element
v_yr(2) type c, " Year
v_year(4) type c, " Year
v_lines type i, " Number
v_str(10) type c, " String
v_gl(4) type n, " GL element
v_gl1(10) type n, " GL Account Code
v_mon(2) type n, " Month
v_month(2) type n, " Month
v_day(2) type n, " Day
v_date like sy-datum, " Start Date in Year
v_setid like sethier-setid, " To store Identification of a set
v_subrc like sy-subrc, " Return code
v_settid like rgsbs-setnr. " Identification of a set
data: v_f_oper_amnt1 type i, " Operations F Year Budget
v_f_depr_amnt1 type i, " Depreciation F Year Budget
v_f_main_amnt1 type i, " Maintenance F Year Budget
v_f_capx_amnt1 type i, " Capex F Year Budget
v_b_oper_amnt1 type i, " Operations Budget YTD
v_b_depr_amnt1 type i, " Depreciation Budget YTD
v_b_main_amnt1 type i, " Maintenance Budget YTD
v_b_capx_amnt1 type i, " Capex Budget YTD
v_a_oper_amnt1 type i, " Operations Actual YTD
v_a_depr_amnt1 type i, " Depreciation Actual YTD
v_a_main_amnt1 type i, " Maintenance Actual YTD
v_a_capx_amnt1 type i. " Capex Actual YTD
Declaration of Constants
constants : c_i type c value 'I', " Sign
c_x type c value 'X', " Sign
c_d type c value 'D', " Type
c_h type c value 'H', " Credit Ind
c_s type c value 'S', " Type
c_o type c value 'O', " Type
c_a type c value 'A', " Type
c_01(2) type n value '01', " Month
c_opt1(2) type c value 'EQ', " Option
c_opt2(2) type c value 'BT', " Option
c_dot(3) type c value '...', " Dots
c_or(2) type c value 'OR', " Type
c_ks(2) type c value 'KS', " Type
c_mon(2) type n value '01', " Month
c_ndc like setnode-setname value 'NDC', " CC Group
c_glno like coej-versn value '000', " For GL No
c_versn1 like coej-versn value '100', " Value
c_kokrs like coej-kokrs value '1000', " Controlling Area
c_wrttp like coej-wrttp value '01', " Value Type
c_wrttp1 like coej-wrttp value '41', " Value Type
c_wrttp2 like coej-wrttp value '04', " Value Type
c_versn like coej-versn value '000', " Version
c_kbud like bpej-vorga value 'KBUD', " Activity
c_kbfr like bpej-vorga value 'KBFR', " Activity
c_kbn0 like bpej-vorga value 'KBN0', " Activity
c_it_bud_tab_wog0(15) value 'IT_BUD_TAB-WOG0',
c_prart like prps-prart value 'CA', " Project Type
c_psin like afvc-steus value 'PSIN', " Control Key
c_lednr like cosp-lednr value '00', " Ledger
c_lednr1 like bpej-lednr value '0002', " Ledger
c_class1 like setnode-setclass value '0101', " Class
c_class2 like setnode-subclass value '1000', " Subclass
c_thous type i value '1000', " Number
c_settab like rgsbs-table value 'CCSS', " Table for set
c_cctfld like t800s-feld value 'KOSTL'. " Field name
Declaration of Ranges
ranges: rn_kostl for csks-kostl. " Cost Centers
Selection Screen
selection-screen begin of block b1 with frame title text-001.
parameters : p_bukrs like t001-bukrs
default '1000'," Company Code
p_gjahr like bsis-gjahr
default sy-datum+0(4), " Fiscal Year
p_date like bsis-budat obligatory. " Date
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-021.
parameters : p_cgrup like setnode-setname. " Cost Center Group
select-options: s_kostl for csks-kostl. " Cost Center
selection-screen end of block b2.
selection-screen begin of block b3 with frame title text-029.
select-options :
s_opers for ska1-saknr obligatory, " Operns & Support GL A/C
s_deprc for ska1-saknr obligatory, " Depreciation GL A/C
s_mmain for ska1-saknr obligatory, " Major Maintenance GL A/C
s_capex for ska1-saknr obligatory. " Capital Expenditure GL A/C
selection-screen end of block b3.
Initialization
initialization.
At selection-screen
at selection-screen.
Validate the Selection Screen fields
perform validate_screen.
Value request for Cost Center Group.
at selection-screen on value-request for p_cgrup .
Get the F4 Help for Cost center Group
perform set_auswaehlen(sapfk00b) using c_settab c_cctfld
changing p_cgrup v_subrc
v_settid.
Start-of-Selection
start-of-selection.
Clear all the Variables in the Program
perform clear_var.
Get the Cost Centers from Cost Center Group.
perform get_cc_values.
Get the Budget data from database Table COSP
perform get_budget_data.
Get the Settlement Costs data from database Tables COBRB,COSP
perform get_cobrb_data.
Get the Actual YTD data from database Table BSIS
perform get_act_ytd_data.
Get the WBS Element Data
perform get_wbs_data.
Get the Networks and Activities for the WBS
perform get_net_ord_data.
Get the WBS Budget data from database Tables BPEJ
perform get_cap_budget_data.
Get the WBS Actual YTD data for WBS
perform get_cap_act_ytd_data.
Top-of-page
top-of-page.
Write the Report and Column Headings
perform top_of_page.
End-of-Selection
end-of-selection.
D-splay the Output Report.
perform display_report.
Form-Routines
*& Form validate_screen
Validation of selection Screen fields
form validate_screen.
Validation of Company Code
clear t001.
if not p_bukrs is initial.
select single bukrs
into t001-bukrs
from t001
where bukrs eq p_bukrs.
if sy-subrc <> 0.
message e999 with 'Incorrect Company Code'(033).
endif.
endif.
Validation of GL Account Code( P & L Operations )
clear ska1.
if not s_opers[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_opers
and ktopl = c_kokrs
and xbilk = ' '.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Operations and Support Cost'(034).
endif.
endif.
Validation of GL Account Code( P & L Depreciation)
clear ska1.
if not s_deprc[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_deprc
and ktopl = c_kokrs
and xbilk = ' '.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Depreciation'(035).
endif.
endif.
Validation of GL Account Code( P & L Maintenance)
clear ska1.
if not s_mmain[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_mmain
and ktopl = c_kokrs
and xbilk = ' '.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Major Maintenance'(036).
endif.
endif.
Validation of GL Account Code (Balance Sheet-Capex)
clear ska1.
if not s_capex[] is initial.
select saknr up to 1 rows
into ska1-saknr
from ska1
where saknr in s_capex
and ktopl = c_kokrs
and xbilk = c_x.
endselect.
if sy-subrc <> 0.
message e999 with
'Incorrect GL Account for Capital Expenditures'(037).
endif.
endif.
Validation of Cost Center Group
if not p_cgrup is initial .
clear setleaf-setname.
select setname up to 1 rows
from setleaf
into setleaf-setname
where setname eq p_cgrup and
setclass = c_class1 and
subclass = c_class2.
endselect.
if sy-subrc <> 0.
clear setnode-setname.
select setname up to 1 rows
from setnode
into setnode-setname
where setname eq p_cgrup and
setclass = c_class1 and
subclass = c_class2.
endselect.
if sy-subrc <> 0.
message e999 with
'Enter Correct Cost Center Group'(038).
endif.
endif.
endif.
Validation of Cost Center
clear csks.
if not s_kostl[] is initial.
select kostl up to 1 rows
into csks-kostl
from csks
where kostl in s_kostl
and kokrs = c_kokrs.
endselect.
if sy-subrc <> 0.
message e999 with
'Enter Correct Cost Center Code'(039).
endif.
endif.
Enter either Cost Center Group or Values
if not p_cgrup is initial and not s_kostl[] is initial.
message e999 with
'Enter either Cost Center Group or Values'(040).
endif.
Validation of Date
if p_date+0(4) ne p_gjahr.
message e999(zndc) with
'Please Enter the date in same Fiscal Year'(020).
endif.
To enter only last day of the month
clear: v_month, v_day, v_year.
v_month = p_date+4(2).
v_day = p_date+6(2).
v_year = p_date+0(4).
if ( v_month = '01' or v_month = '03' or v_month = '05' or
v_month = '07' or v_month = '08' or v_month = '10' or
v_month = '12' ).
if v_day ne '31'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
elseif ( v_month = '04' or v_month = '06' or v_month = '09' or
v_month = '11' ).
if v_day ne '30'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
elseif v_month = '02'.
if v_year eq '2004' or v_year eq '2008'.
if v_day ne '29'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
else.
if v_day ne '28'.
message e999(zndc) with
'Enter Last date of the Month'(022).
endif.
endif.
endif.
endform. " validate_screen
*& Form get_cc_values
Get the Cost Centers from Cost Center Group
form get_cc_values.
Populate the Cost Centers from Cost Center Group
if s_kostl[] is initial.
if p_cgrup is initial.
p_cgrup = c_ndc.
else.
p_cgrup = p_cgrup.
endif.
Concatenating Setnode table setclass,subclass fields and
Cost Center Group
concatenate c_class1 c_class2 p_cgrup
into v_setid.
Calling function module to get SET_HIERARCHY & SET_VALUES
perform frm_g_set_tree_import tables ccenter_group_tab[]
cost_center_tab[]
using v_setid.
loop at cost_center_tab.
rn_kostl-low = cost_center_tab-from.
rn_kostl-high = cost_center_tab-to.
rn_kostl-sign = c_i.
if rn_kostl-low = rn_kostl-high.
rn_kostl-option = c_opt1.
else.
rn_kostl-option = c_opt2.
endif.
append rn_kostl.
endloop.
clear v_setid.
endif.
else.
rn_kostl[] = s_kostl[].
endif.
endform. "get_cc_values
*& FORM FRM_G_SET_TREE_IMPORT
Subroutine to call the function G_SET_TREE_IMPORT.
form frm_g_set_tree_import
tables ccenter_group_tab structure sethier
cost_center_tab structure setvalues
using p_v_setid.
call function 'G_SET_TREE_IMPORT'
exporting
CLIENT = SY-MANDT
FIELDNAME = ' '
LANGU = SY-LANGU
NO_DESCRIPTIONS = ' '
NO_RW_INFO = ' '
setid = p_v_setid
TABNAME = ' '
NO_VARIABLE_REPLACEMENT = ' '
ROOT_HEADER_ONLY = ' '
NO_TABLE_BUFFERING = ' '
MAX_HIER_LEVEL = 99
DATE_FROM =
DATE_TO =
IMPORTING
SET_NOT_TRANSPARENT =
tables
set_hierarchy = ccenter_group_tab
set_values = cost_center_tab
EXCEPTIONS
SET_NOT_FOUND = 1
ILLEGAL_FIELD_REPLACEMENT = 2
ILLEGAL_TABLE_REPLACEMENT = 3
OTHERS = 4
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. "frm_g_set_tree_import
*& Form clear_var
Clear all the Variables in the program
form clear_var.
Clear/Initialize all the Variables
clear: v_f_oper_amnt1, v_f_depr_amnt1, v_f_main_amnt1,
v_f_capx_amnt1, v_b_oper_amnt1, v_b_depr_amnt1,
v_b_main_amnt1, v_b_capx_amnt1, v_a_oper_amnt1,
v_a_depr_amnt1, v_a_main_amnt1, v_a_capx_amnt1,
v_f_oper_amnt, v_f_depr_amnt, v_f_main_amnt,
v_f_capx_amnt, v_b_oper_amnt, v_b_depr_amnt,
v_b_main_amnt, v_b_capx_amnt, v_a_oper_amnt,
v_a_depr_amnt, v_a_main_amnt, v_a_capx_amnt,
v_v_oper_amnt, v_v_depr_amnt, v_v_main_amnt,
v_v_capx_amnt, v_t_f_amnt, v_t_b_amnt,
v_t_a_amnt, v_t_v_amnt, v_gt_f_amnt,
v_gt_b_amnt,v_gt_a_amnt,v_gt_v_amnt,
v_per_oper, v_per_depr, v_per_main,
v_per_capx, v_per_tot, v_per_gtot.
endform. "clear_var
*& Form get_budget_data
Get the Budget Data from Database Table COSP
form get_budget_data.
Form Local data
data: l_period(2) type n,
l_name(35) type c,
l_monat type i .
l_monat = p_date+4(2).
Field Symbols
field-symbols <fs>.
clear it_bud_tab.
refresh it_bud_tab.
select lednr " Ledger No
objnr " Object No
gjahr " Fiscal Year
wrttp " Actuals
versn " Version
twaer " Currency
perbl " Period Block
kstar " Cost Element/GL A/C No
wog001 " Total Value
wog002 " Total Value
wog003 " Total Value
wog004 " Total Value
wog005 " Total Value
wog006 " Total Value
wog007 " Total Value
wog008 " Total Value
wog009 " Total Value
wog010 " Total Value
wog011 " Total Value
wog012 " Total Value
into table it_bud_tab
from cosp
where lednr = c_lednr and
gjahr = p_gjahr and
wrttp = c_wrttp and
versn = c_versn and
beknz in (c_d,c_s).
if sy-subrc = 0.
Segragate the Budget Figures(Full Year and YTD)
loop at it_bud_tab.
if it_bud_tab-objnr+0(2) eq c_ks.
move-corresponding it_bud_tab to it_ytd_tab.
it_ytd_tab-kostl = it_bud_tab-objnr+6(10).
it_ytd_tab-amt_fy = it_bud_tab-wog001 + it_bud_tab-wog002 +
it_bud_tab-wog003 + it_bud_tab-wog004 +
it_bud_tab-wog005 + it_bud_tab-wog006 +
it_bud_tab-wog007 + it_bud_tab-wog008 +
it_bud_tab-wog009 + it_bud_tab-wog010 +
it_bud_tab-wog011 + it_bud_tab-wog012.
Get the YTD Budget using Field Symbols
do l_monat times.
l_period = sy-index.
concatenate c_it_bud_tab_wog0 l_period
into l_name.
assign (l_name) to <fs>.
it_ytd_tab-amt_ytd = it_ytd_tab-amt_ytd +
<fs>.
enddo.
collect it_ytd_tab.
clear it_ytd_tab.
endif.
endloop.
sort it_ytd_tab by gjahr kostl kstar.
Cost Center wise Sum Up of Costs
loop at it_ytd_tab.
at end of kostl.
sum.
move-corresponding it_ytd_tab to it_ytd1_tab.
append it_ytd1_tab.
endat.
clear it_ytd1_tab.
endloop.
sort it_ytd1_tab by gjahr kostl.
Segragate the Budget Figures into different Accounts/Cost elements
loop at it_ytd_tab.
if it_ytd_tab-kostl in rn_kostl.
Budget Full Year and YTD (Operations & Support Cost)
if not s_opers[] is initial.
if it_ytd_tab-kstar in s_opers.
v_f_oper_amnt = v_f_oper_amnt + it_ytd_tab-amt_fy.
v_b_oper_amnt = v_b_oper_amnt + it_ytd_tab-amt_ytd.
endif.
endif.
Budget Full Year and YTD (Depreciation)
if not s_deprc[] is initial.
if it_ytd_tab-kstar in s_deprc.
v_f_depr_amnt = v_f_depr_amnt + it_ytd_tab-amt_fy.
v_b_depr_amnt = v_b_depr_amnt + it_ytd_tab-amt_ytd.
endif.
endif.
Budget Full Year and YTD (Major Maintainance)
if not s_mmain[] is initial.
if it_ytd_tab-kstar in s_mmain.
v_f_main_amnt = v_f_main_amnt + it_ytd_tab-amt_fy.
v_b_main_amnt = v_b_main_amnt + it_ytd_tab-amt_ytd.
endif.
endif.
endif.
endloop.
Convert the Amount fields to nearest Thousand
v_f_oper_amnt1 = v_f_oper_amnt / c_thous .
v_f_depr_amnt1 = v_f_depr_amnt / c_thous .
v_f_main_amnt1 = v_f_main_amnt / c_thous .
v_b_oper_amnt1 = v_b_oper_amnt / c_thous .
v_b_depr_amnt1 = v_b_depr_amnt / c_thous .
v_b_main_amnt1 = v_b_main_amnt / c_thous .
endif.
endform. "get_budget_data
*& Form get_cobrb_data
Get the Settlement Data from Database Table COBRB
form get_cobrb_data.
clear cobrb_tab.
refresh cobrb_tab.
select objnr " Object No
rec_objnr1 " Ref Object No
bureg " Dostribution Rule
lfdnr " Sequence No
perbz " Settlement Rule
konty " Acct Assign Category
bukrs " Company Code
kostl " Cost Center
into table cobrb_tab
from cobrb
where kostl in rn_kostl.
sort cobrb_tab by objnr rec_objnr1.
delete adjacent duplicates from cobrb_tab comparing objnr.
Get the Settlement Costs from COEP Table
clear it_set_tab.
refresh it_set_tab.
if not cobrb_tab[] is initial.
select kokrs " Controlling Area
belnr " Acc Document
buzei " Line Item
perio " Period Block
wkgbtr " Value in CO Curr
lednr " Ledger No
objnr " Object No
gjahr " Fiscal Year
wrttp " Actuals
versn " Version
kstar " Cost Element
beknz " Dr/Cr Indicator
parob1 " Partner Object
into table it_set_tab
from coep
for all entries in cobrb_tab
where lednr = c_lednr and
wrttp = c_wrttp2 and
versn = c_versn and
gjahr = p_gjahr and
objnr = cobrb_tab-objnr and
parob1 = cobrb_tab-rec_objnr1 and
beknz in (c_o, c_a).
endif.
Settlement Actual Costs
loop at cobrb_tab.
if cobrb_tab-objnr+0(2) eq c_or.
loop at it_set_tab where objnr = cobrb_tab-objnr
and parob1 = cobrb_tab-rec_objnr1.
set_act_tab-kostl = cobrb_tab-kostl.
set_act_tab-hkont = it_set_tab-kstar.
Get the Actual Settlement Costs YTD Amount
if it_set_tab-perio between c_mon and v_month.
set_act_tab-amt_atd = set_act_tab-amt_atd +
abs( it_set_tab-wkgbtr ).
endif.
collect set_act_tab.
clear set_act_tab.
endloop.
endif.
endloop.
sort set_act_tab by kostl hkont.
Sum Up the Settlement Costs-CC wise
loop at set_act_tab.
at end of kostl.
read table set_act_tab index sy-tabix.
sum.
move-corresponding set_act_tab to set1_act_tab.
append set1_act_tab.
endat.
clear set1_act_tab.
endloop.
sort set1_act_tab by kostl.
delete set1_act_tab where amt_atd = 0.
endform. "get_cobrb_data
*& Form get_act_ytd_data
Get the Actual YTD Data from Database Table BSIS
form get_act_ytd_data.
clear it_act_tab.
refresh it_act_tab.
select
bukrs " Company Code
hkont " GL Account No
gjahr " Fiscal Year
belnr " Accounting Doc No
budat " Posting Date
waers " Currency
kostl " Cost Center
shkzg " Dr/Cr Indicator
dmbtr " Doc Amount
into table it_act_tab
from bsis
where bukrs eq p_bukrs and
gjahr eq p_gjahr and
budat le p_date and
kostl in rn_kostl.
if sy-subrc = 0.
sort it_act_tab by bukrs hkont.
loop at it_act_tab.
if it_act_tab-shkzg = c_h.
it_act_tab-dmbtr = it_act_tab-dmbtr * -1.
endif.
move-corresponding it_act_tab to act1_tab.
collect act1_tab.
clear act1_tab.
endloop.
sort act1_tab by bukrs kostl hkont.
endif.
Cost Center wise Sum Up of Costs
loop at act1_tab.
at end of kostl.
sum.
move-corresponding act1_tab to act2_tab.
append act2_tab.
endat.
clear act2_tab.
endloop.
sort act2_tab by gjahr kostl.
Seperate the different Actual YTD Expenditures
loop at act1_tab.
Actual YTD (Operations & Support Cost)
if not s_opers[] is initial.
if act1_tab-hkont in s_opers.
v_a_oper_amnt = v_a_oper_amnt + act1_tab-dmbtr.
endif.
endif.
Actual YTD (Depreciation)
if not s_deprc[] is initial.
if act1_tab-hkont in s_deprc.
v_a_depr_amnt = v_a_depr_amnt + act1_tab-dmbtr.
endif.
endif.
Actual YTD (Major Maintainance)
if not s_mmain[] is initial.
if act1_tab-hkont in s_mmain.
v_a_main_amnt = v_a_main_amnt + act1_tab-dmbtr.
endif.
endif.
endloop.
Opex Settlement Actual Costs
loop at set_act_tab.
Actual YTD (Operations & Support Cost)
if not s_opers[] is initial.
if set_act_tab-hkont in s_opers.
v_a_oper_amnt = v_a_oper_amnt + set_act_tab-amt_atd.
endif.
endif.
Actual YTD (Depreciation)
if not s_deprc[] is initial.
if set_act_tab-hkont in s_deprc.
v_a_depr_amnt = v_a_depr_amnt + set_act_tab-amt_atd.
endif.
endif.
Actual YTD (Major Maintainance)
if not s_mmain[] is initial.
if set_act_tab-hkont in s_mmain.
v_a_main_amnt = v_a_main_amnt + set_act_tab-amt_atd.
endif.
endif.
endloop.
Convert Amount Fields to nearest thousands
v_a_oper_amnt1 = v_a_oper_amnt / c_thous .
v_a_depr_amnt1 = v_a_depr_amnt / c_thous .
v_a_main_amnt1 = v_a_main_amnt / c_thous .
endform. " get_act_ytd_data
*& Form get_wbs_data
Get the WBS Element Data
form get_wbs_data.
clear wbs_tab.
refresh wbs_tab.
select pspnr " WBS Element
posid " WBS Structure Element
objnr " Object No
psphi " Project ID
pbukr " Company Code
pkokr " Controlling Area
fkstl " Cost Center
into table wbs_tab
from prps
where pbukr = p_bukrs and
pkokr = c_kokrs and
fkstl in rn_kostl and
prart = c_prart.
Consider only the Same Year WBS Elements Data
loop at wbs_tab.
v_yr = wbs_tab-posid+5(2).
if v_yr <> p_gjahr+2(2) .
delete wbs_tab index sy-tabix.
endif.
clear: v_yr, v_gl.
endloop.
sort wbs_tab by pspnr posid.
endform. "get_wbs_data
*& Form get_net_ord_data
Get the Network, Orders Data for the WBS
form get_net_ord_data.
Get the Network data
clear: net_tab, ord_tab.
refresh: net_tab, ord_tab.
if not wbs_tab[] is initial.
select a~aufnr " Order No
a~ftrmi " Release Date
a~pronr " Project No
b~aufpl " Routing No
b~aplzl " Counter No
b~objnr " Object No
b~projn " WBS Element
into table net_tab
from afko as a join afvc as b
on aaufpl eq baufpl
for all entries in wbs_tab
-
Calculating HTD(Half Year to date) in Essbase
Hi All,
Is there any way in essbase where in you can calculate HTD(half year to date) Values.
I know in essbase we have Dynamic time series where in you can calculate YTD,HTD(History to date),MTD,QTD,...etc.
can you guys have any thoughts on as how HTD(half year to date) is achievable in essbase.
thanks in advance.Can you modify your time dimension to look like
Time
-1st Half
---Qtr1
------Jan
------Feb
------Mar
---Qtr2
------Apr
------May
------Jun
-2nd Half
---Qtr3
------Jul
------Aug
------Sep
---Qtr4
------Oct
------Nov
------Dec
If so, you could enable a dts member and set the alias to be hf-t-d
if you can't add those members, condider adding a dynamic calc member with a formula
psudo logic would be
If it is a descendant of Q1 or Q2 then sum Jan to the current month else if it is a descendant of q3 or 4 sum jul to the current month -
Hi,
Can any one explain me how to caluculate YTD(column) in a report.
I have fiscper and fiscyear as time char
Thanks,
PoojaHi Pooja,
YTD - is year to date
it can be from ist of Jan to "Date" supplied by user ( enetry through some date variable when executing query)
or
it can be systems' date at the time of execution of report.
try find out the SAP exit for this if you don't then you need to write your won code- Logic will be
Whatever date ( system date or entered by user) your using (say 20061206 - YYYYMMDD) you need to dervice (20060101 - first date of year) and the calaclulate value of your Key figure between 20060101 & 20061206.
Hope it helps
Also have a look at if you hav't already.
Enable Trend Reporting - By Manipulating Variable Value
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/25d98cf6-0d01-0010-0e9b-edcd4597335a
regards
Vikash
Maybe you are looking for
-
Current page (not Document) width and height with JSX
Hi, I am trying to create a script that saves every page of the document and add its width and height to the name. So far I managed to get the dimensions of the document using: app.activeDocument.pages.documentPreferences.pageWidth; app.activeDocumen
-
Wifi connection problem after installing new HDD
I have just replaced the hdd in my pavilion dv6-3032tx and for some reason I am now having trouble connecting to my home wifi internet connection. Unless i have the laptop right next to the router the computer is unable to connect. Any suggestions?
-
Adobe Reader XI will not give me any options to sign my documents
Adobe Reader XI will not give me any options to sign my documents
-
I have old photoshop elements 5, want to buy new version.
If I install new software will photo collections be shown in new software? do I have to tag each photo again? or can I import back up catalogue from old version to set up collections? answer will be great, thank youalso is there any advantage in buyi
-
Anyone still using the Silver box with a Non-BT Ro...
My setup has been working fine since the beginning of Vision.. and this afternoon BT applied an update to the silver box, which seems to have finally borked my connection without using a HH.. I am aware of the recent thread regarding this after the u