Timeid in NW
Is timeid used in a similar way in NW version as compare to Microsoft version?
Thanks, John
Hi John-
TIMEID is used by some BPC Netweaver functions in a similar way to its use in BPC MS. For example: in the BPC NW Currency Translation program, FXTRANS, TIMEID is a mandatory property! Please review SAP Note 1254330 - "Precondition for running currency translation" for details.
Regards,
Sheldon
Similar Messages
-
TimeID column length is wrong - Add a new appln Vs copy an appln
Hi Folks,
We have a requirement to add a new application, which should have the design as of an existing Reporting type finance application.
When we completed this new application creation, by using "Add an application" option from the admin console and checked the tables in the backend SQL Server, we found that the length of the TimeID column in the tblFactXXXX table is 12, whereas the the length of the TimeID column of the original tblFactYYYY table from which the new application was developed is 20.
But when we use "Copy an application" and create a new one, everything is fine.
Can someone tel me if you had come across this issue earlier, and tell us how to resolve this ?
We bumped into this issue when we were trying to do an import data into the fact table of the new application, and then it gave the following warning, though the data load was successful.
Validating (Warning)
Messages
u2022 Warning 0x802092a7: Data Flow Task 1: Truncation may occur due to inserting data from data flow column "TIMEID" with a length of 20 to database column "TIMEID" with a length of 12.
(SQL Server Import and Export Wizard)
Any help or suggestion in this regard is appreciated.
Thanks In Advance.
Edited by: AparnaV on Feb 23, 2012 8:52 AMHi Aparna,
When you copy an application, the exact structure is copied to the target application. So, if the size in the source app is 20, then the size in the destination will also be 20.
I dont remember, right now, what's the size in apshell planning fact table. But, as far as I remember, it should be 12. The time type dimension should usually have the size as 12. There might be a possibility that someone might have changed the size.
But, in any case, you can ignore this warning; since, this shouldn't have any impact.
Hope this helps. -
Process & optimize issue with timeid
Hi,
I work on script logics with BPC 7.0 xls2007 sql2005.
I need to process my application but I have this issue message :
- Errors in the OLAP storage engine: The attribute key cannot be found: Table: dbo_tblFactEPS, Column: TIMEID, Value: 10000022.
Errors in the OLAP storage engine: The process operation ended because the number of errors encountered during processing reached the defined limit of allowable errors for the operation.
Errors in the OLAP storage engine: An error occurred while processing the 'EPS' partition of the 'EPS' measure group for the 'EPS' cube from the DEV database.
Errors in the OLAP storage engine: The process operation ended because the number of errors encountered during processing reached the defined limit of allowable errors for the operation.
Internal error: The operation terminated unsuccessfully
The timid value 10000022 correspond to 2010.TOTAL.
So I saw the dbo_tblFactEPS table with :
Select * from tblfactEPS where TIMEID not in (select timeid from mbrTIME)
But my selection is empty...
Moreover, I can't process my time dimension.
Can you help me ?
Regards,
Morgann2010.Total is not a base member and normally you should not have something like that into your fact table.
Into fact table you must have just base members.
your selection is not completed. It has to be
Select * from tblfactEPS where TIMEID not in (select timeid from mbrTIME where calc = 'N')
If you will do that actually you will see records.
Kind Regards
Sorin Radulescu -
*ERROR* FX-300 Timeid=20110200 - Nothing Extract from Fact - CLCFXTRANS
Hi Friends
I am getting and error while i am running FX Restatement Package.below is my error message. I even analyzed the notes and some threads, there is no solution. Most of the threads says its missing rates in Rate application, but still i am maintaining relevant rates.
SPRunConversion Version 7.5.106
Warning : No Rate found in the opening period
ERROR FX-300 Timeid=20110200 - Nothing Extract from Fact - CLCFXTRANS
Please help me.Hi John
Thank you so much for ur reply.
I maintained all the relevant dims and properties and rechecked couple of times.Data maintained in all dims and same 2011 data was maintained in Cons app and Rates in Rate app
Regards,
Pratap
Edited by: pratap varma on Feb 3, 2012 9:49 AM -
BPC Dimension TIME. How is TIMEID Format?
Hi All.
Anybody has a information about TIMEID format for WEEK and DAY?
For MONTH I used January 2010 --> 20100100
For YEAR and QUARTER Total 2010 --> 10000001
Q1 --> 10000002
Q2 --> 10000003
But I'm not sure about WEEK and DAY.
The values of TIMEID is important? or is only necessary that this is unique.
Thanks
MarcoSome info provided in the following post :
Re: Time Dimension Master Data : Days -
Hi,
I'm on BPC MS 10.0.4.0, and I have a time dimension for 2013-2016 with one input period per year (see attached). I've created timeid's as per standard for the months (YYYYMM00) and the years and quarters have 10000002, 10000003 etc, starting on 2013.TOTAL. The problem is that the system automatically creates timeid's for my input periods that are identical to those of year and quarters of 2013. I've tried to enter 90000001, 90000002 etc and also 11000001, 11000002 etc but the system reverts back to the duplicates. The system writes correctly to timeid 10000006 when entering data on 2016.INPUT (presumably because 2013.Q4 is calculated) but I assume there will be a conflict if using TMVL in script logic.
Any thoughts on this?
/CeciliaHi Cecilia,
sorry I didn't understood that this order was intentional, maybe it's a bug, but to be sure have you tried inserting in the second group (year) that next numbers, i.e. 10000007 etc. (from your screenshot) instead of other numbers?
"but I assume there will be a conflict if using TMVL in script logic"
never tried but i think TMVL user the PRIOR property (if this is still present in 10 version) so it can works also with duplicate timeID, in SQL you will not have problems using timeID in query because you have only children but you can have problems if you use parents in reports or MDX.
You have to try or revert back to the old order.
Regards
Roberto -
Hi everyone,
I've got a problem with writting a formula wich will calculate a closing balance for each account side, I mean debet and credit. In my SQL database I've got columns with: OpeningBalanceDt, OpeningBalanceCt , DtTurnover, CtTurnover, IDaccount and TIMEID.
When I create a Calculated Field:
BalanceDt:=IF(([OBDt+Dt]-[ObCt+Ct])>0;[OBDt+Dt]-[ObCt+Ct];0)
BalanceCt:=IF(([ObCt+Ct]-[OBDt+Dt])>0;[ObCt+Ct]-[OBDt+Dt];0)
it works for particular account eg:11575, but it doesn't when I remove filter and check global account nr 111 (then I have per account result).
Do you have any idea what formula I need to write to have a proper view it pivot table for both account side ? Meaby I need to create a calculate column not filed...
The problem concerns the fact that pp check columns globally and then compare calculeted sum. In this case global sum of BalanceDt has a higher value than BalanceCt so the final balance is Dt.
In excel I can calculate 2 columns:
=if((OBDt+Dt-(ObCt+Ct))<=0;0;OBDt+Dt-(ObCt+Ct))
=if((OBCt+Ct-(ObDt+Dt))<=0;0;OBCt+Ct-(ObDt+CDt))
and when I create a sum I've got a proper result. Maybe the solution will be in grouping the accounts and then conduct a comparision.
Thanks in advice,
PaulHi,
I will change a subject a little bit. Now I have the following columns:
ObrotyKontID, WN, MA, BO_WN, BO_MA, KontoFinansoweID, KontoSyntetyczneID and TIMEID. Guy from ERP wrote two formulas which works perfect in system and calculate closing balance for each account side:
Debit
Sum(Filter(existing[KontoAnalityczne],[Measures].[ObrotyWNNar]>[Measures].[ObrotyMANar]),[Measures].[ObrotyWNNar]-[Measures].[ObrotyMANar])
Credit
Sum(Filter(existing[KontoAnalityczne],[Measures].[ObrotyWNNar]<[Measures].[ObrotyMANar]),[Measures].[ObrotyMANar]-[Measures].[ObrotyWNNar])
and 2 more formulas to calculate Debit and Credit
ObrotyWNNar
Sum(StrToMember("[Czas].[Miesiąc].&["+left(Tail(existing [SET_Data]).Item(0).Properties("KEY"),4)+"01]"
):StrToMember("[Czas].[Miesiąc].&["+left(Tail(existing [SET_Data]).Item(0).Properties("KEY"),6)+"]"
),[Measures].[ObrotyWN]+[Measures].[BO WN])
ObrotyMANar
Sum(StrToMember("[Czas].[Miesiąc].&["+left(Tail(existing [SET_Data]).Item(0).Properties("KEY"),4)+"01]"
):StrToMember("[Czas].[Miesiąc].&["+left(Tail(existing [SET_Data]).Item(0).Properties("KEY"),6)+"]"
),[Measures].[ObrotyMA]+[Measures].[BO MA])
I have got the same sum in ObrotyWNNar by forumla
=[WN]+[BO_WN]
and ObrotyMANar by
=[MA]+[BO_MA]
However I can't create proper formulas in powerpiwot which calculate Debit and Credit. I suppose that I need to use some agregate formulas like SUMX.
If anyone have any idea ?
Thanks in advice,
Paul -
Using asynchronous timer for data flow control
Hi all,
I am using system sleep to control the data flow (some digital lines and analog output). The pseudo code is something like this
Sleep(150);
// the following sections are exectuted in parallel
#pragma omp parallel sections
#pragma omp section
DAQmxWriteDigitalLines(...); // output TTL to one digitla line
#pragma omp section
DAQmxWriteDigitalLines(...); // output TTL to another digitla line
#pragma omp section
Sleep(2); // sleep 2ms
// the following sections are exectuted in parallel
#pragma omp parallel sections
#pragma omp section
DAQmxWriteDigitalLines(...); // output TTL to one digitla line
#pragma omp section
DAQmxWriteAnalogScalarF64(...); // analog output to one channel
#pragma omp section
Sleep(1); // delay 1ms
// the following sections are exectuted in parallel
#pragma omp parallel sections
#pragma omp section
DAQmxWriteDigitalLines(...); // output TTL to one digitla line
#pragma omp section
DAQmxWriteAnalogScalarF64(...); // analog output to one channel
#pragma omp section
DAQmxWriteAnalogScalarF64(...); // analog output to another channel
#pragma omp section
Sleep(11); // delay 11ms
// ... other stuffs
I am running windows XP and I know it is not possible to get realtime control but I want a as precise timing as possible. Above code is not perfect but it works 95% of times. I just read an article about using the asynchronous timer to control the time delay. I try that idea with the following code frame
int CVICALLBACK ATCallback(int reserved, int timerId, int event, void *callbackData, int eventData1, int eventData2)
if (event==EVENT_TIMER_TICK)
int *nextdelay = (int *)callbackData;
SuspendAsyncTimerCallbacks();
if (timerId>=0)
double time;
if (*nextdelay==0) time=2.0;
else if (*nextdelay==1) time=1.0;
else time=12.0;
SetAsyncTimerAttribute(timerId, ASYNC_ATTR_INTERVAL, time);
if (*nextdelay==0)
#pragma omp parallel sections
#pragma omp section
DAQmxWriteDigitalLines(...); // output TTL to one digitla line
#pragma omp section
DAQmxWriteDigitalLines(...); // output TTL to another digitla line
*nextdelay++;
else if (*nextdelay==2)
#pragma omp parallel sections
#pragma omp section
DAQmxWriteDigitalLines(...); // output TTL to one digitla line
#pragma omp section
DAQmxWriteAnalogScalarF64(...); // analog output to one channel
*nextdelay++;
else if (*nextdelay==3)
#pragma omp parallel sections
#pragma omp section
DAQmxWriteDigitalLines(...); // output TTL to one digitla line
#pragma omp section
DAQmxWriteAnalogScalarF64(...); // analog output to one channel
#pragma omp section
DAQmxWriteAnalogScalarF64(...); // analog output to another channel
*nextdelay++;
ResumeAsyncTimerCallbacks();
return 0;
void main(void)
int n = 0;
int timeid;
timeid = NewAsyncTimer(120.0/1000.0, 3, 1, ATCallback, &n);
But it doesn't work. There is no compilation and runtime error but the timing just not right. I wonder do I have to suspend the timer in the callback function when I reset the delay for next call? If I do so, I am worry if it will apply too much delay (since I suspend and resume the timer in the delay) so it will cause even worse timing. But if I don't suspend the timer before I reset the time, what happen if the code running in the callback function not finished before the next callback arrive. It is quite confusing how to use asynchronous timer in this case. Thanks.Yeah, unfortunately the 6711 doesn't have clocked digital I/O. There are only two counters anyway so even if you could use them to generate your signals you wouldn't have enough (*maybe* something with the 4 AO channels and a counter depending on what your output signals need to look like? The AO channels can output "digital" as well if you write 0V or 5V only).
A PCI DAQ card which does support clocked digital I/O and has 2 analog outputs is the 6221 (or if you could use PCIe the 6321 is a more updated version with two extra counters and some additional functionality).
If there isn't a way to implement clocked outputs afterall, one thing you could do to make your code a little more efficient is to consolidate the writes. You can put your digital lines into a single task and write them at ocne, and you can put your analog channels into a single task and write them at once as well.
I'm not sure about the callback issue, you might find some more help in the CVI forum. I don't think it's going to solve your underlying problem though as ultimately the execution timing of your software calls is at the mercy of your OS.
Best Regards,
John Passiak -
Opening and Closing Stock Calculation In SAP BPC 10.0 NW
Hello Experts,
Need your guidance on this calculation.
BI Cube: Receipts and Issues only Available on day basis
BPC Report / Cube Context
Product = Product1, Product2,
Account = receipts, Issues, Opening Stock, Closing stock,
Flow = Other
Audittrail = Input
UOM = QTY
rptcurrency = LC
Category = Actual
TIme = All Periods (Monthly)
Plant = Plant1, Plant2, Plant3, Plant4
In the Cube I don't Have Opening Stock, without Which I cannot calculate Closing stock.
Scenario: If I Enter Manually Opening stock for all products at some starting point, say In Year 2008 Jan. How To take this closing stock of this month automatically to next month opening stock and So on and so forth to following Periods? Is it possible through "Carry Forward Business rule" in this case, as Closing stock is a calculated value using Member dimension Formula. I am having receipts and issues in Account dimension.
Dimension Formula used: Closing Stock = Opening Stock+Receipts- Issues.
Please find attachment of the report screen shot.
Thanking you
PraveenHello Vadim,
1. The Cube storage Type is "Periodic".
2. Acctype of the account dimension is "AST"
3. Time Dimension Is based on Month.
ID
Description
RELEVANT
Base Period
CLOSED
Level
Month Number
Period
TIMEID
Year
Calendar
2006.01
2006 Apr
1
MONTH
1
APR
20060100
2006
2006.Q1
2006.02
2006 May
2
MONTH
2
MAY
20060200
2006
2006.Q1
2006.03
2006 June
3
MONTH
3
JUN
20060300
2006
2006.Q1
2006.04
2006 July
4
MONTH
4
JUL
20060400
2006
2006.Q2
2006.05
2006 August
5
MONTH
5
AUG
20060500
2006
2006.Q2
2006.06
2006 September
6
MONTH
6
SEP
20060600
2006
2006.Q2
2006.07
2006 October
7
MONTH
7
OCT
20060700
2006
2006.Q3
2006.08
2006 November
8
MONTH
8
NOV
20060800
2006
2006.Q3
2006.09
2006 December
9
MONTH
9
DEC
20060900
2006
2006.Q3
2006.10
2007 Jan
10
MONTH
10
JAN
20061000
2006
2006.Q4
2006.11
2007 Feb
11
MONTH
11
FEB
20061100
2006
2006.Q4
2006.12
2007 Mar
12
MONTH
12
MAR
20061200
2006
2006.Q4
2006.Q1
2006 Q1
3
QUARTER
3
Q1
2006
2006.TOTAL
2006.Q2
2006 Q2
6
QUARTER
6
Q2
2006
2006.TOTAL
2006.Q3
2006 Q3
9
QUARTER
9
Q3
2006
2006.TOTAL
2006.Q4
2006 Q4
12
QUARTER
12
Q4
2006
2006.TOTAL
2006.TOTAL
2006
12
YEAR
12
TOTAL
2006
Thank You
Praveen -
I'm trying to call an entity bean froma session bean i get the error :-
7/02/27 14:35:25 javax.ejb.ObjectNotFoundException: Exception [EJB - 10008]: Cannot find bean of type [SalesBean] using finde
[findByCustID].
7/02/27 14:35:25 at oracle.toplink.internal.ejb.cmp.EJBExceptionFactory.objectNotFound(EJBExceptionFactory.java:325)
7/02/27 14:35:25 at oracle.toplink.internal.ejb.cmp.finders.Finder.checkNullResult(Finder.java:224)
My session bean looks like this :-
public class HelloBean implements SessionBean
public String helloWorld (String pzCustomerID) throws SQLException,RemoteException
String lzRevenue=null;
int liCustomerID=Integer.parseInt(pzCustomerID);
try
Context initial = new InitialContext();
Object objref = initial.lookup("SalesBean");
SalesHome salesHome =(SalesHome) PortableRemoteObject.narrow(objref,SalesHome.class);
Sales sales=salesHome.findByCustID(liCustomerID);
lzRevenue=(String) sales.findByCustID(liCustomerID);
My entity bean looks like this:-
public class SalesBean implements EntityBean
public String factPK;
public int timeID;
public int custID;
public int locID;
public int itemID;
public int entityID;
public String currency;
public float qty;
public float unitPrice;
public float amount;
public EntityContext context;
private Connection con;
private void makeConnection() {
try {
InitialContext ic = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) ic.lookup("jdbc/DSource");
con = ds.getConnection();
} catch (Exception ex) {
throw new EJBException("Unable to connect to database. " +
ex.getMessage());
public SalesBean()
public String ejbFindByCustID(int custID) throws SQLException,RemoteException,FinderException
makeConnection();
PreparedStatement pstmt = con.prepareStatement("select sum(amount) from sales where cust_id= ? ");
pstmt.setInt(1, custID);
ResultSet rset = pstmt.executeQuery();
if (!rset.next())
throw new RemoteException("no records present" );
return rset.getString(1);
}My entity bean's home interface looks like this:-
public interface SalesHome extends EJBHome
public Sales create() throws RemoteException, CreateException;
public Sales findByCustID(int custID) throws SQLException,RemoteException,FinderException;
My entity bean's remote interface looks like this:-
public interface Sales extends EJBObject
public String findByCustID(int custID) throws SQLException,RemoteException,FinderException;
my ejb-jar.xml looks like this:-
<enterprise-beans>
<session>
<description>Hello Bean</description>
<ejb-name>HelloBean</ejb-name>
<home>myEjb.HelloHome</home>
<remote>myEjb.HelloRemote</remote>
<ejb-class>myEjb.HelloBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
<entity>
<ejb-name>SalesBean</ejb-name>
<home>myEjb.SalesHome</home>
<remote>myEjb.Sales</remote>
<ejb-class>myEjb.SalesBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<cmp-field>
<field-name>factPK</field-name>
</cmp-field>
<cmp-field>
<field-name>timeID</field-name>
</cmp-field>
<cmp-field>
<field-name>custID</field-name>
</cmp-field>
<cmp-field>
<field-name>locID</field-name>
</cmp-field>
<cmp-field>
<field-name>itemID</field-name>
</cmp-field>
<cmp-field>
<field-name>entityID</field-name>
</cmp-field>
<cmp-field>
<field-name>currency</field-name>
</cmp-field>
<cmp-field>
<field-name>qty</field-name>
</cmp-field>
<cmp-field>
<field-name>unitPrice</field-name>
</cmp-field>
<cmp-field>
<field-name>amount</field-name>
</cmp-field>
<primkey-field>factPK</primkey-field>
<resource-ref>
<res-ref-name>jdbc/DSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
please help me out of this trouble.I'm trying to call an entity bean froma session bean i get the error :-
7/02/27 14:35:25 javax.ejb.ObjectNotFoundException: Exception [EJB - 10008]: Cannot find bean of type [SalesBean] using finde
[findByCustID].
7/02/27 14:35:25 at oracle.toplink.internal.ejb.cmp.EJBExceptionFactory.objectNotFound(EJBExceptionFactory.java:325)
7/02/27 14:35:25 at oracle.toplink.internal.ejb.cmp.finders.Finder.checkNullResult(Finder.java:224)
My session bean looks like this :-
public class HelloBean implements SessionBean
public String helloWorld (String pzCustomerID) throws SQLException,RemoteException
String lzRevenue=null;
int liCustomerID=Integer.parseInt(pzCustomerID);
try
Context initial = new InitialContext();
Object objref = initial.lookup("SalesBean");
SalesHome salesHome =(SalesHome) PortableRemoteObject.narrow(objref,SalesHome.class);
Sales sales=salesHome.findByCustID(liCustomerID);
lzRevenue=(String) sales.findByCustID(liCustomerID);
My entity bean looks like this:-
public class SalesBean implements EntityBean
public String factPK;
public int timeID;
public int custID;
public int locID;
public int itemID;
public int entityID;
public String currency;
public float qty;
public float unitPrice;
public float amount;
public EntityContext context;
private Connection con;
private void makeConnection() {
try {
InitialContext ic = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) ic.lookup("jdbc/DSource");
con = ds.getConnection();
} catch (Exception ex) {
throw new EJBException("Unable to connect to database. " +
ex.getMessage());
public SalesBean()
public String ejbFindByCustID(int custID) throws SQLException,RemoteException,FinderException
makeConnection();
PreparedStatement pstmt = con.prepareStatement("select sum(amount) from sales where cust_id= ? ");
pstmt.setInt(1, custID);
ResultSet rset = pstmt.executeQuery();
if (!rset.next())
throw new RemoteException("no records present" );
return rset.getString(1);
}My entity bean's home interface looks like this:-
public interface SalesHome extends EJBHome
public Sales create() throws RemoteException, CreateException;
public Sales findByCustID(int custID) throws SQLException,RemoteException,FinderException;
My entity bean's remote interface looks like this:-
public interface Sales extends EJBObject
public String findByCustID(int custID) throws SQLException,RemoteException,FinderException;
my ejb-jar.xml looks like this:-
<enterprise-beans>
<session>
<description>Hello Bean</description>
<ejb-name>HelloBean</ejb-name>
<home>myEjb.HelloHome</home>
<remote>myEjb.HelloRemote</remote>
<ejb-class>myEjb.HelloBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
<entity>
<ejb-name>SalesBean</ejb-name>
<home>myEjb.SalesHome</home>
<remote>myEjb.Sales</remote>
<ejb-class>myEjb.SalesBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<cmp-field>
<field-name>factPK</field-name>
</cmp-field>
<cmp-field>
<field-name>timeID</field-name>
</cmp-field>
<cmp-field>
<field-name>custID</field-name>
</cmp-field>
<cmp-field>
<field-name>locID</field-name>
</cmp-field>
<cmp-field>
<field-name>itemID</field-name>
</cmp-field>
<cmp-field>
<field-name>entityID</field-name>
</cmp-field>
<cmp-field>
<field-name>currency</field-name>
</cmp-field>
<cmp-field>
<field-name>qty</field-name>
</cmp-field>
<cmp-field>
<field-name>unitPrice</field-name>
</cmp-field>
<cmp-field>
<field-name>amount</field-name>
</cmp-field>
<primkey-field>factPK</primkey-field>
<resource-ref>
<res-ref-name>jdbc/DSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
please help me out of this trouble. -
GROUP BY - Is there a way to have some sort of for-each statement?
Hi there,
This discussion is a branch from https://forums.oracle.com/thread/2614679
I data mart I created for a chain of theatres. The fact table contain information about ticket sales, and I have a some dimensions including DimClient and DimTime.
Here is an example of each table:
FactTicketPurchase
TICKETPURCHASEID
CLIENTID
PRODUCTIONID
THEATREID
TIMEID
TROWID
SUMTOTALAMOUNT
60006
2527
66
21
942
40
7
60007
2527
72
21
988
36
6
60008
2527
74
21
1001
40
6
60009
2527
76
21
1015
37
6
60010
2527
79
21
1037
39
6
DDL for FactTicketPurchase
CREATE TABLE FactTicketPurchase(
TicketPurchaseID NUMBER(10) PRIMARY KEY,
ClientID NUMBER(5) CONSTRAINT fk_client REFERENCES DimClient,
-- ProductionID NUMBER(5) CONSTRAINT fk_prod REFERENCES DimProduction,
-- TheatreID NUMBER(5) CONSTRAINT fk_theatre REFERENCES DimTheatre,
TimeID NUMBER(6) CONSTRAINT fk_time REFERENCES DimTime,
-- TRowID NUMBER(5) CONSTRAINT fk_trow REFERENCES DimTRow,
SumTotalAmount NUMBER(22) NOT NULL);
DimClient
CLIENTID
CLIENT#
NAME
TOWN
COUNTY
2503
1
LEE M1
West Bridgford
Nottingham
2504
2
HELEN W2
Hyson Green
Nottingham
2505
3
LEE M3
Lenton Abbey
Nottingham
2506
4
LORA W4
Beeston
Nottingham
2507
5
SCOTT M5
Radford
Nottingham
2508
6
MINA W6
Hyson Green
Nottingham
..cff.
DDL for DimClient
CREATE TABLE DimClient(
ClientID NUMBER(5) PRIMARY KEY,
Name VARCHAR2(30) NOT NULL);
DimTime
TIMEID
FULLDATE
YEAR
SEASON
MONTH
MONTHDAY
WEEK
WEEKDAY
817
02-MAR-10
2010
Spring
3
2
9
3
818
03-MAR-10
2010
Spring
3
3
9
4
819
04-MAR-10
2010
Spring
3
4
9
5
820
05-MAR-10
2010
Spring
3
5
9
6
821
06-MAR-10
2010
Spring
3
6
9
7
822
07-MAR-10
2010
Spring
3
7
9
1
DDL for DimTime
CREATE TABLE DimTime(
TimeID NUMBER(6) PRIMARY KEY,
Year NUMBER(4) NOT NULL,
Season VARCHAR2(20));
I have the following analysis request to perform on this data mart:
Top 5 clients by value of ticket sale for each season
For this requirement I came up with the following query:
SELECT * FROM
(SELECT FacTIC.ClientID, DimCLI.Name, SUM(SumtotalAmount) SumTotalAmount, DimTIM.Season
FROM FactTicketPurchase FacTIC, DimClient DimCLI, DimTime DimTIM
WHERE FacTIC.ClientID = DimCLI.ClientID
AND FacTIC.TimeID = DimTIM.TimeID
AND Season = 'Spring' AND Year = 2010
GROUP BY Season, FacTIC.ClientID, DimCLI.Name
ORDER BY Season ASC, SumTotalAmount DESC)
WHERE rownum <=5;
As you can see, in line 06 of the above query, I am explicitly specifying the season for the query to return.
However what I would like to do is just one query that could autocratically go through the seasons and years available in the time dimension in a fashion similar to a FOR-EACH statement. This way, if we get more years added to the time dimension, we wouldn't have to amend the query.
Is this possible?
Regards,
P.I think I fixed it!
The trick was to look into the r_num value. As soon as I added it to my query I started to see how r_num was being calculated and I realised that I had to add Season to my partition, right after Year.
SELECT Year, Season, TotalAmount, Name
FROM (
SELECT DimCLI.Name
, DimTIM.Year
, DIMTIM.Season
, SUM(FacTIC.SumTotalAmount) TotalAmount
, RANK() OVER (PARTITION BY Year, Season
ORDER BY SUM(FacTIC.SumTotalAmount) DESC
) AS r_num
FROM FactTicketPurchase FacTIC
, DimClient DimCLI
, DimTime DimTIM
WHERE FacTIC.ClientID = DimCLI.ClientID
AND FacTIC.TimeID = DimTIM.TimeID
GROUP BY DimTIM.Year
, DimTIM.Season
, DimCLI.Name
WHERE r_num <= 5 -- Need to amend this line on my data sample to show 2 rows.
ORDER BY Year, Season, TotalAmount DESC;
Looking at my data sample, I got the following:
YEAR
SEASON
TOTALAMOUNT
CLIENTID
2010
Autumn
29
2504
2010
Autumn
26
2503
2010
Spring
25
2503
2010
Spring
14
2506
2010
Summer
26
2506
2010
Summer
26
2504
2010
Winter
28
2503
2010
Winter
26
2506
2011
Autumn
23
2506
2011
Autumn
14
2503
2011
Spring
25
2505
2011
Spring
13
2503
2011
Summer
21
2505
2011
Summer
14
2503
2011
Winter
19
2505
Now, looking at my real data, (considering the top 5 rows, not the top 2), I got:
YEAR
SEASON
TOTALAMOUNT
NAME
2010
Autumn
141
BUSH M225
2010
Autumn
140
DIANA W66
2010
Autumn
136
HANA W232
2010
Autumn
120
DIANA W220
2010
Autumn
120
WILSON M459
2010
Spring
137
DAVID M469
2010
Spring
125
ALEX M125
2010
Spring
124
PETER M269
2010
Spring
115
ZHOU M463
2010
Spring
114
TANIA W304
2010
Summer
138
JANE W404
2010
Summer
105
MINA W8
2010
Summer
97
DAVID M275
2010
Summer
96
CLINTON M483
2010
Summer
93
ANNA W288
2011
Spring
12
LUISE W20
2011
Spring
7
ANNA W432
2011
Spring
7
LEE M409
2011
Spring
7
CHRIS W274
2011
Spring
7
HELEN W136
2011
Spring
7
LILY W114
2011
Spring
7
LUISE W348
2011
Spring
7
LIU M107
2011
Spring
7
VICTORY W194
2011
Spring
7
DIANA W240
2011
Spring
7
HELEN W120
2011
Spring
7
LILY W296
2011
Spring
7
MATTHEW M389
2011
Spring
7
PACO M343
2011
Spring
7
YANG M411
2011
Spring
7
ERIC M101
2011
Spring
7
ALEX M181
2011
Spring
7
SMITH M289
2011
Spring
7
DIANA W360
2011
Spring
7
MATTHEW M63
2011
Spring
7
SALLY W170
2011
Spring
7
JENNY W258
2011
Spring
7 -
BPC 7.5NW SP8 PERIODIC APP–EVDRE TOTALS USING YTD MEASURE ARE INCORRECT
Hello u2013
I have 4 application sets with periodic applications in which all measures are set up exactly the same in BPC 7.5 NW SP8. Time in each of the appsets includes months, quarters, seasons and year. Measures include Periodic, QTD, STD, YTD and Rolling12. All measures work correctly with the exception of one application in which the YTD measure is summing incorrectly. This issue exists in both the DEV and PROD environments for this application.
The Time dimension is maintained using fiscal years. The fiscal yearu2019s months run from February -> January. Time uses the same setup in all 4 appsets.
The following steps have been taken in an attempt to fix this issue:
1. Verified the Time dimension hierarchy and levels are set up correctly
2. Cleared client cache
3. Deleted Time dimension .xls, .xlt and .xml files from the BW and re-processed the dimension
4. Ran light and full optimizations
5. Verified the formula in the BW for this app is the same as the formula in the other apps
6. Refreshed client-side dimension files
7. Used the How-to-guide u201CHow to Maintain Measure Dimension for BPCu201D and verified the UJA_FORMULA_APP table and UJA_API_DATA_CHECKER function module are maintained automatically and no missing entry messages exist
8. Deleted the PARENTH1 hierarchy from the Time dimension, processed, added the hierarchy back into the member sheet and re-processed
9. Updated application description and modified application
Has anyone else had this problem? Any assistance in resolving this issue will be most appreciated.
Thanks,
Carrie
YTD Measure Formula:
MEMBER [MEASURES].[YTD] AS 'IIF([%ACCT_TRANS%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="INC",SUM(PERIODSTODATE([%TIME%].[LEVEL00], [%TIME%].CURRENTMEMBER),-[MEASURES].[/CPMB/SDATA]),IIF([%ACCT_TRANS%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="EXP",SUM(PERIODSTODATE([%TIME%].[LEVEL00], [%TIME%].CURRENTMEMBER),[MEASURES].[/CPMB/SDATA]),IIF([%ACCT_TRANS%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="AST",([MEASURES].[/CPMB/SDATA], CLOSINGPERIOD([%TIME%].[LEVEL03])),IIF([%ACCT_TRANS%].CURRENTMEMBER.PROPERTIES("2/CPMB/ACCTYPE")="LEQ",-([MEASURES].[/CPMB/SDATA], CLOSINGPERIOD([%TIME%].[LEVEL03])),-[MEASURES].[/CPMB/SDATA]))))';SOLVE_ORDER=3
*EVDRE RESULTS *
MONTH YTD
FY2010 FEB 128,790,195
FY2010 MAR 214,054,796
FY2010 APR 63,828,203
FY2010 MAY 445,898,233
FY2010 JUN 377,079,009
FY2010 JUL 288,502,058
FY2010 AUG 517,947,504
FY2010 SEP 678,612,886
FY2010 OCT 593,190,135
FY2010 NOV 879,439,971
FY2010 DEC 784,580,667
FY2010 JAN 949,300,083
FY2010 TOTAL 949,300,083
TIME DIMENSION
ID PARENTH1 LEVEL MONTHNUM TIMEID
2010.FEB 2010.Q1 MONTH 1 20100100
2010.MAR 2010.Q1 MONTH 2 20100200
2010.APR 2010.Q1 MONTH 3 20100300
2010.MAY 2010.Q2 MONTH 4 20100400
2010.JUN 2010.Q2 MONTH 5 20100500
2010.JUL 2010.Q2 MONTH 6 20100600
2010.AUG 2010.Q3 MONTH 7 20100700
2010.SEP 2010.Q3 MONTH 8 20100800
2010.OCT 2010.Q3 MONTH 9 20100900
2010.NOV 2010.Q4 MONTH 10 20101000
2010.DEC 2010.Q4 MONTH 11 20101100
2011.JAN 2010.Q4 MONTH 12 20101200
2010.Q1 2010.STD1 QUARTER 3 10000001
2010.Q2 2010.STD1 QUARTER 6 10000002
2010.Q3 2010.STD2 QUARTER 9 10000003
2010.Q4 2010.STD2 QUARTER 12 10000004
2010.STD1 2010.TOTAL 6 10000005
2010.STD2 2010.TOTAL 12 10000006
2010.TOTAL YEAR 12 10000007Hi Carrie,
Your configuration looks OK to me. Can you provide us the output of the same EVDRE using the Periodic measure? Also, have you raised a customer message with SAP?
Ethan -
Using user defined variables in SAP BPC 7.0 NW
Hi,
I am using BPC 7.0 SP2 NW version. I want to do some calculatioins and/or comparision in the script logic by using user defined variables.
For Ex: I want to assign the property TIMEID of TIME dimension to a variable and then use this variable in my IIF statement.
I have tried a lot but not getting any solution.
Can anyone guide me in how to use user defined variables in Script Logic.
Your valuable reply is appreciated.
Thanks & Regards
Manoj DamleHi,
Thanks for the valuable reply.
But i want to define variables in the Script Logic and not in the Data Manager.
The scenario is like this:
I want to check the value of the DUMMYACC1 member of GL_ACCOUNT dimension with a constant and depending on the condition i want to update a user defined variable. This variable will further be used in the *SELECTCASE statement for decision making.
The Code is as follows:
*XDIM_MEMBERSET COMP_CODE = COMP_CODE_1
*XDIM_MEMBERSET BUS_AREA = BUS_AREA_1
*XDIM_MEMBERSET VERSION = VERSION_1
*XDIM_MEMBERSET CURRENCY = AUD
*XDIM_MEMBERSET DATASRC = DATASOURCE_1
*XDIM_MEMBERSET GL_ACCOUNT = SALESREVENUE,PRICE,QUANTITY,DUMMYACC1
*XDIM_MEMBERSET TIME=2009.MAY,2009.JUN
*XDIM_MEMBERSET CUSTOMERCATEGORY = CUSTOMER_CAT_1
*XDIM_MEMBERSET PROFIT_CTR = PROFIT_CTR_1
*XDIM_MEMBERSET SEGMENT = SEGMENT1
*XDIM_MEMBERSET MEASURES = PERIODIC
*FUNCTION PRO(%VAR1%,%VAR2%)
[%VAR1%].CURRENTMEMBER.PROPERTIES("%VAR2%")
*ENDFUNCTION
*FOR %GL_ACC% = DUMMYACC1
*FOR %CV_TIM% = 2009.MAY,2009.JUN
#CUR_MTH = IIF(([GL_ACCOUNT].[%GL_ACC%],[TIME][%CV_TIM%]) = 1.,1,NULL)
*NEXT
*NEXT
*SELECTCASE #CUR_MTH
*CASE 1
#CURRENTMTH = PRO(TIME,TIMEID)
*ENDSELECT
The errors which system gives is:
1. Duplicate formula found
2. Invalid MDX statement
3. #CUR_MTH & #CURRENTMTH is not a valid member
Please give your valuable suggestion.
Thanks and Regards
Manoj Damle -
Error while running allocation: Driver stored in Rate Application
Hi,
I have the allocation driver stored in the Rate application.
I have a custom application which has different dimensions than the Rate application. In the allocation logic I pick up the driver from the Rate Application -
e.g. *APP WHAT=MYPLANNING; WHERE=MYPLANNING; USING=RATE
When I run the allocation I get the following error. Any inputs would be greatly appreciated.
thx
Sumangal
====================
ExecuteBaseLogic::Incorrect syntax near ','. in:
select [CATEGORY],[INPUTCURRENCY],[RATE],[RATEENTITY],[TIMEID],SIGNEDDATA
into #941281
from tblFactRATE
where [RATE] = 'ALLOCFACTOR' and [TIMEID] in ('20050100','20050200','20050300','20050400','20050500','20050600','20050700','20050800','20050900','20051000','20051100','20051200')
insert into #941281 ([CATEGORY],[INPUTCURRENCY],[RATE],[RATEENTITY],[TIMEID],SIGNEDDATA)
select [CATEGORY],[INPUTCURRENCY],[RATE],[RATEENTITY],[TIMEID],SIGNEDDATA
from tblFactWBRATE
where [RATE] = 'ALLOCFACTOR' and [TIMEID] in ('20050100','20050200','20050300','20050400','20050500','20050600','20050700','20050800','20050900','20051000','20051100','20051200') and SOURCE = 0
insert into #941281 ([CATEGORY],[INPUTCURRENCY],[RATE],[RATEENTITY],[TIMEID],SIGNEDDATA)
select [CATEGORY],[INPUTCURRENCY],[RATE],[RATEENTITY],[TIMEID],SIGNEDDATA
from tblFac2RATE
where [RATE] = 'ALLOCFACTOR' and [TIMEID] in ('20050100','20050200','20050300','20050400','20050500','20050600','20050700','20050800','20050900','20051000','20051100','20051200')
select ,sum(SIGNEDDATA) as amtTOTAL
into #TOTAL_941281 from #941281 a
group by
drop table #941281
======================Hi ATW-
Please repost this question in the forum for BPC, version for Microsoft:
[SAP Planning and Consolidation, version for the Microsoft platform|SAP Planning and Consolidation, version for the Microsoft platform;
Regards,
Sheidon -
Error while running Account Transformation...
Hi Experts,
I'm trying to run Account Transformation using the script logic below but unfortunately nothing gets calculated. When I check the package, it status is mark "CANCELED" though I did not cancel the execution of the package. Checking the detail of the status it only show the below info:
Script Logic:
*RUN_PROGRAM CALC_ACCOUNT
CATEGORY = %CATEGORY_SET%
CURRENCY = %CURRENCY_SET%
TID_RA = %TIME_SET%
OTHER = [COMPANY=%COMPANY_SET%]
CALC = CALC_RE
*ENDRUN_PROGRAM
Package Detail Log:
/CPMB/MODIFY completed in 0 seconds
[Selection]
(Member Selection)
COMPANY: 1403
CATEGORY: ACTUAL
CURRENCY: LC
TIME: 2005.JAN
[Messages]
Application: CONSOL Package status: SUCCESS
By the way, I used the process chain for ALLOCATION, I put the code for Account Transformation in the ALLOCATION.LGF since it's the logic being called by the said process chain. Checking further using the TCODE ST22 it gives the following error:
Runtime Errors: GETWA_NOT_ASSIGNED
Short Text: Field symbol has not been assigned.
What happened: Error in ABAP Application Program. The current ABAP program "CL_UJK_UTIL================CP" had to be terminated because it has come across a statement that unfortunately cannot be executed.
Cheking "Information on where terminated" code is terminated here...
READ TABLE <lt_mem> ASSIGNING <l_member> INDEX 1.
ASSIGN COMPONENT 'TIMEID' OF STRUCTURE <l_member> TO <l_timeid>.
MODIFY ct_timeid FROM <l_timeid>.
"ASSIGN COMPONENT 'TIMEID' OF STRUCTURE <l_member> TO <l_string>.
I checked the properties and the TIMEID property is existent. Was there anything wrong with my syntax? Any idea regarding this kind of error?
Thanks,
MarvinAfter checking all the dimension and using TCODE RSA1 to check the server side, I found that INTCO property is existent in the member worksheet but not in the server so I maintain the dimension properties and re-add INTCO property in the Entity dimension. After that package runs successfully.
Maybe you are looking for
-
Error while deploying EJB 1.1 on Weblogic 10.3.0.0
I am trying to deploy an EJB (1.1) jar which is succesfully running on JBoss5.0 on WebLogic 10.3.0.0; I am getting following Error while deploying the jar on weblogic; Exception preparing module: EJBModule(ejb_RemoteServicesEjb) Unable to deploy EJB:
-
Ringtones and text tones not working
I finally figured out on my own that I have to turn OFF Do Not Disturb for my Iphone 4 to alert me to calls or texts. I had it set for DNDisturb 10p-9a. It's 6:55p. I got sick of missing calls and texts. Why is DND messed up? This has been happening
-
Data Table Fixed rows and Scroll Bar
Hi I have data table which displays the data dynamically, but when there is no data , the table is shrinking and moving the other elements of the page. Is there any way i can keep to fixed number of rows irrespective of data presence? Like i need to
-
Hi friends, what considrations should be takeen while creating a dimension in a infocube?. I want to know what type of cahrs to be included in one dimension to improve reporting performance and also the cube. Can anyone please tell me or direct me t
-
Watch Brazil vs Germany Live Stream WC Semi Final
http://www.boston.com/community/forums/sports/mixed-bag/general/watch-brazil-vs-germany-live-stream-wc-semi-final/100/7232884 http://www.boston.com/community/forums/sports/mixed-bag/general/watch-brazil-vs-germany-live-stream-wc-semi-final/100/723288