Setting UDA in MDX
Hi all:
Is there any way to assign a UDA label to an ASO member via an MDX script? I have a script that uses the TOPPERCENT function to determine which sales reps contribute to 80% of total sales for a region. Once the sales rep have been determined, I want to be able to tag them for indentification on a report. I figured that setting a UDA would be one way, but not sure this is supported. If not, is there any other way I can tag or "isolate" the top 80% of sales reps?
thanks,
Axe
MDX does not do outline changes just retrieve data from a cube. You could have a MDX extract create a file that is used to create UDAs
Similar Messages
-
Hi all
I have a date dimension that (type time) with attributes
- [FiscalYear] (type years)
- [FiscalMonth] (type months)
- [FiscalWeek] (type weeks)
In addition to the attributes used in the natural hierarchy, I have an attribute [PerType] containing one member comming from the relational table 'WTD' which corresponds to 'Current Date'. All other members of this attribute hierarchy are calculated members (defined in the MDX script). Examples:
--Last year
CREATE MEMBER CURRENTCUBE.[Date].[PerType].[LY] AS NULL,
VISIBLE = 1;
SCOPE([Date].[PerType].[LY]);
SCOPE(DESCENDANTS([Date].[Fiscal].[All], [Date].[Fiscal].[Year], SELF_AND_AFTER));
THIS = ([Measures].CurrentMember, [Date].[PerType].[WTD], ParallelPeriod([Date].[Fiscal].[Year], 1));
END SCOPE;
END SCOPE;
--Month to date
CREATE MEMBER CURRENTCUBE.[Date].[PerType].[MTD] AS NULL,
VISIBLE = 1;
SCOPE([Date].[PerType].[MTD]);
SCOPE(DESCENDANTS([Date].[Fiscal].[All], [Date].[Fiscal].[Week], SELF_AND_AFTER));
THIS = Aggregate(CrossJoin({[Date].[PerType].[WTD]}, MTD([Date].[Fiscal].CurrentMember)));
END SCOPE;
END SCOPE;
--Year to date
CREATE MEMBER CURRENTCUBE.[Date].[PerType].[YTD] AS NULL,
VISIBLE = 1;
SCOPE([Date].[PerType].[YTD]);
SCOPE(DESCENDANTS([Date].[Fiscal].[All], [Date].[Fiscal].[Period], SELF_AND_AFTER));
THIS = Aggregate(CrossJoin({[Date].[PerType].[WTD]}, YTD([Date].[Fiscal].CurrentMember)));
END SCOPE;
END SCOPE;
The defalut member of FiscalWeek attribute hierarchy is set dynamically in the MDX script:
ALTER CUBE CURRENTCUBE UPDATE DIMENSION [Date].[FiscalWeek], DEFAULT_MEMBER =
Filter(
[Date].[FiscalWeek].Members,
[Date].[FiscalWeek].Properties( "FiscalWeekStartDate", TYPED) <= DateAdd("d", -2, CDate(CStr(Month(Now())) + "/" + CStr(Day(Now())) + "/" + CStr(Year(Now()))))
AND
[Date].[FiscalWeek].Properties( "FiscalWeekEndDate", TYPED) >= DateAdd("d", -2, CDate(CStr(Month(Now())) + "/" + CStr(Day(Now())) + "/" + CStr(Year(Now()))))
)(0).PrevMember;
If I run the following query:
with member
measures.x as [Date].[Fiscal].DefaultMember.Name
measures.y as [Date].[FiscalWeek].DefaultMember.Name
select
measures.x,
measures.y
} on axis(0)
from [GLWeekly]
it gives me back correctly the default member set over the MDX script.
I order the statements in the MDX Script so that the default period (week) is set at the beginning of the script (just after the calculate).
I do not understand why creating the following calculated member I am obliged to specify [Date].[Fiscal].CurrentMember in the tuple to have correct results:
MEMBER [Account].[CoA].[Standard Engagement Revenue (MTD)] AS ([Account].[CoA].[Standard Engagement Revenue], [Date].[PerType].[MTD], [Date].[Fiscal].CurrentMember)
I would expect that:
([Account].[CoA].[Standard Engagement Revenue], [Date].[PerType].[MTD])
is sufficient.
If the default week is specified in the slicer using a member of the natural hierachy (=> [Date].[Fiscal].x) it works.
Why can't SSAS use the default member if it is must defined in the MDX script?
Can someone explains me this. Thanks a lot in advance.Hi Ina,
have you thought about adding a dynamic statement inside the MDX script? You could define the default member like this:
... DEFAULT_MEMBER = iif( Day( Now() ) = 3, <expression for previous month>, <expression for current month> );
This way you don't need to change it everytime by running a script.
By the way, what do you mean it doesn't update the default member? When you execute this MDX what does it says?
with member measures.x as [Dimension].[HierarchyName].DefaultMember.Name
select { measures.x } on 0 from Cubename
If this returns the correct name, then the problem is somewhere else. I believe it should return you the correct name. Look here, test this on Adventure Works, statement by statement and see what happens.
ALTER
CUBE [Adventure Works]
UPDATE
DIMENSION [Product].[Product Categories],
DEFAULT_MEMBER = [Product].[Product Categories].[Category].&[1]
with
member measures.x
as [Product].[Product Categories].DefaultMember.Name
select measures.x on 0
from [Adventure Works]
ALTER
CUBE [Adventure Works]
UPDATE
DIMENSION [Product].[Product Categories],
DEFAULT_MEMBER = [Product].[Product Categories].[All Products]
with
member measures.x
as [Product].[Product Categories].DefaultMember.Name
select measures.x on 0
from [Adventure Works]
I think you can see which members are default (on related hierarchies) using
MDX Studio. This should help you detect which attributes have not moved accordingly and hence cause problems in your report. The usual suspects are those attributes used in your last month reports. If that's too much for you, just copy paste the definition
of the measure x and use .CurrentMember instead .DefaultMember. And so for all related hierarchies of your dimension. You can run it as one query, just put enough measures (x1, x2, ...), one for each hierarchy, ok?
Here's a test for Day():
with
member measures.y
as
iif( Day(Now()) = 28, 'Yes', 'No' )
select
measures.y on 0
from [Adventure Works]
Today this returns Yes, tomorrow it will be No.
Ups, I just checked one more thing. When you run the script, it sets the default member only for that session. If you execute the first two of the four statements that I've sent you, it will set the default member on Bikes and show you that.
But, if you open another query windows and execute that select statement (only), you'll see All member instead. So, it has set it to Bikes only for the currect session. Consequence? You reports are not aware of it. So, better use dynamic statement in
your MDX script.
Regards,
Tomislav Piasevoli
Business Intelligence Specialist
www.softpro.hr -
The MDX function CURRENTMEMBER failed because the coordinate for the attribute contains a set
How to handle this error: The MDX function CURRENTMEMBER failed because the coordinate for the attribute contains a set. when executing MDX query:
SELECT (
{ [Measures].[Amount]}
)ON COLUMNS,
[OrganizationUnits].[Description].[Description].MEMBERS,
[OrganizationUnits].[IsCURRENT].[IsCURRENT]
) ON ROWS
FROM
(SELECT [OrganizationUnits].[Description] ON 0
FROM
[CubeName]
WHERE(
{[OrganizationUnits].[Description].&[Unit1],[OrganizationUnits].[Description].&[Unit2]}
Thanks!!Hi Arth81,
Please try the query below.
WITH MEMBER MEASURES.IsCURRENT AS [OrganizationUnits].[IsCURRENT].[IsCURRENT].CURRENTMEMBER.NAME
SELECT
{ [Measures].[Amount],MEASURES.IsCURRENT} ON COLUMNS,
{[OrganizationUnits].[Description].[Description].MEMBERS,
} ON ROWS
FROM
(SELECT [OrganizationUnits].[Description].MEMBERS ON 0
FROM
[CubeName]
WHERE(
{[OrganizationUnits].[Description].&[Unit1],[OrganizationUnits].[Description].&[Unit2]}
Regards,
Charlie Liao
TechNet Community Support -
Hi all,
I have query below which works and I understand the output. However, if I remove the Generate I also get the top 5 products per country, descending order, but the Order amounts or not the same and thus not correct.
My question, what does the generate actually do to make it a different output?
WITH SET [5MostInternetOrderedProductsByCountry] AS
GENERATE([Customer].[Customer Geography].[Country].Members,
CROSSJOIN([Customer].[Customer Geography].CurrentMember,
HEAD(
ORDER([Product].[Product].[Product].Members,
[Measures].[Internet Order Count],BDESC),
5)
SELECT
{[Measures].[Internet Order Count]} ON COLUMNS,
{[5MostInternetOrderedProductsByCountry]} ON ROWS
FROM
[Adventure Works]
Thanks in advance for helping!Hi,
Generate( Set_Expression1 , Set_Expression2 [ , ALL ] )
Applies a set to each member of another set, and then joins the resulting sets by union.
If a second set is specified, the Generate function returns a set generated by applying the tuples in the second set to each tuple in the first set, and then joining the resulting sets by union. If
ALL is specified, the function retains duplicates in the resulting set.
Generate (MDX)
Regards,
Charlie Liao
TechNet Community Support -
Automatically configure UDA question
First,I set 'automatically configure user device affinity from usage data' in UDA settings to 'No',then client will send a state message (TopticID:1600) indicates that CCM client is waiting the UDA request to be approved and save it in wmi during
the user affinity usage task.State message and logs look like this:
>>>>>>Starting processing user affinity usage task<<<<<<
Auto affinity threshold settings Days = '30', User minutes threshold = '2880', Auto approve affinity = '0'.
Clean up agents user logon events...
Retrieving user minutes map...
Loading approved and pending user affinities...
Checking if any pending affinity is approved...
Checking usage minutes per user against current minutes threshold...
User 'abc\def' has 3425 usage minutes
Setting auto affinity for user 'abc\def'.
Successfully sent user affinity state message for user 'abc\def'.
Successfully created pending user affinity for user 'abc\def' into WMI.
>>>>>>Finished processing user affinity usage task<<<<<<
After that,I turn on 'automatically configure user device affinity from usage data' ,but client will only refresh the old state message (TopticID:1600) in wmi which indicates it has automatically set uda for the user and
will not send the new state message to site server becasue it consider the same state message existing in wmi.
>>>>>>Starting processing user affinity usage task<<<<<<
Auto affinity threshold settings Days = '7', User minutes threshold = '1500', Auto approve affinity = '1'.
Clean up agents user logon events...
Retrieving user minutes map...
Loading approved and pending user affinities...
Checking if any pending affinity is approved...
User 'abc\def' in pending affinity is not approved yet
Checking usage minutes per user against current minutes threshold...
User 'abc\def' has 3608 usage minutes
Setting auto affinity for user 'abc\def'.
Found same state message existing. (was sent before) Skip sending same state message for user 'abc\def'..
>>>>>>Finished processing user affinity usage task<<<<<
I can manually delete the TopicID 1600 message in wmi and restart the ccm client,after that the new uda state message will send into the site dabase and pending request in console will be disappeared.
That is my question.Actually the state message content is different from the old one.Why ccm client consider they are the same messages and will not send it so that the uda information is not set for user in ccm database.(In console it
always display as a pending request)Sorry for the delay.
I tested the situation again and came into the same result.
1. If the logged on user have already reached the threshold before you changed the Client Setting to Yes for Auto UDA, the State Message did not send out again. Because the agent thought this box is in pending state, no more state message needed.
2. If the logged on user have not reached the threshold before you changed that setting, the Auto UDA State Message will send if the user reaches the threshold in the future.
Seems this is by design. Anyway, I recorded this situation.
Juke Chou
TechNet Community Support -
MDX to DAX Conversion - Data Mismatch
Hi,
I’m pulling data from a Tabular cube, for the given time period as filter. When I run an mdx query, it pulls around 9 million records in more than 6 hours. Since I need to run it frequently and quickly so I’ve converted the MDX to DAX (below). DAX
is executing much faster (20 minutes) than the MDX but results between two approaches are not the same and I’m struggling hard to find why!
All the dimensions used inside SUMMARIZE clause are having a relationship with Primary Dimension/TableName. High level observations:
Number of Records are different between the result set of DAX & MDX.
Sum of each measures(DAX) differ from the sum of their corresponding measures(MDX)
DAX results have no rows where all the measures have zero values, whereas the MDX results has.
DAX omits many of the rows where all the measures have zero values except one. It appears that due to the omission of these kind of records, we have the data mismatch but reason for
omission is unknown.
Any help will be appreciated!!
MDX
SELECT NON EMPTY {
[Measures].[Calculated Measure 1],
[Measures].[Calculated Measure 2],
[Measures].[Calculated Measure 8]
} ON COLUMNS,
NON EMPTY
[Dimension1].[DimAttribute1].children
, [Dimension2].[DimAttribute1].children
, [Dimension2].[DimAttribute2].children
, [Dimension10].[DimAttribute1].children
) } ON ROWS
FROM (SELECT ([Time].[Fiscal Month].&[May, 2014) ON COLUMNS
FROM [Cube Name]
WHERE (Filter Condition)
Converted DAX
EVALUATE(CALCULATETABLE(ADDCOLUMNS(SUMMARIZE(
PrimaryDimension/PrimaryTableName
,Dimension1[Attribute1]
,Dimension2[Attribute1]
,Dimension2[Attribute2]
,Dimension10[Attribute1]
MeasureGroup1.[Calculated Measure 1],
MeasureGroup2.[Calculated Measure 2],
MeasureGroup4.[Calculated Measure 8]
,Time[Fiscal Month] = "May, 2014"
,Filter Condition
Thanks,
AmitAmit, the two queries are not semantically equivalent.
SUMMARIZE returns rows that have at least one row in the table you pass as a first argument for the given combination of columns you pass in the following arguments (think to a SELECT DISTINCT for all the columns you include, with an INNER JOIN between all
the tables included by the colulmns you specified in the following arguments). You can read more about this here:
http://www.sqlbi.com/articles/from-sql-to-dax-projection/
The MDX query returns any existing combination of the cartesian product of the columns you included, and depending on the measures you include, you might see data also for combinations of column values that don't exist in the original source.
The reason why you have a slow MDX is probably because of the cost of non empty evaluation for certain measures. The solution is probably to optimize the DAX code you are using in Tabular.
The equivalent DAX statement should be something like
EVALUATE
ADDCOLUMNS (
FILTER (
CROSSJOIN (
VALUES ( table1[columnA] ),
VALUES ( table2[columnB] )
[Measure] <> 0
"Measure", [Measure]
But don't expect better performance comparing this to MDX. Only when you can make assumptions that allow you using SUMMARIZE you might see performance benefits, but if these assumptions are not correct, you can get different results (as you experienced).
Marco Russo (Blog,
Twitter,
LinkedIn) - sqlbi.com:
Articles, Videos,
Tools, Consultancy,
Training
Format with DAX Formatter and design with
DAX Patterns. Learn
Power Pivot and SSAS Tabular. -
Need to retrieve all the UDAs associated to a member and its respective children in Excel
Dear Experts,
I'm working on Essbase version 11.1.2.1.106 and Hyperion smart view 11.1.2.1. There is a custom dimension in the outline and UDAs are assigned to all the members of that custom dimension.
Now the requirement is to retrieve all the UDAs of a particular member and its respective children in Excel. Please let me know if there is any option to fulfill the requirement.
Let say there is a member A and it has 10 childrens(A1-A10). All these members have UDAs assigned to them. Now i would like to retrieve/adhoc analysis all these members as well as its associated UDA in Excel. How can we do that using smart view.
All your inputs are appreciated.
Thanks in AdvanceSree,
If one does as you suggest, the individual UDAs can be viewed in the member selector dialog box and then members (not the UDAs) can be selected based on that.
That is not, I think, what the OP wants:
>>Now the requirement is to retrieve all the UDAs of a particular member and its respective children in Excel.
Your approach doesn't provide the above.
People have thought about using MDX to get the UDAs (and maybe someone really good with MDX metadata queries might come up with this), but that doesn't seem to be the case:
Retrieving all Uda using Mdx Query-what should be string_value_expression?
The API or Applied OLAP's new and improved Outline Extractor would seem to be the way to go. Or of course you could export out the outline using MaxL and then parse the XML.
Regards,
Cameron Lackpour -
Setting member properties through Build rule.
I have a hierarchy where the product structure needs to be updated.
Now, I also need to add three different UDAs to each member.. and make some members Never share. (All in build rule)
Please suggest me with any solutions.
TIA,
KRIS.To set the data storage you need to set the column field type to property in the rule file and then the value in the record to set to datastorage to "Never Share" will be N
A list of properties are available at :- http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_dbag/dotrules.html#dotrules_2
Also there is detailed information about building load rules
You would set the column to UDA field type for UDAs
An example parent/child build to set a member to "Never Share" and set UDAs would be
Parent,Child,Datastorage,UDA1,UDA2
Prod,ProdA,N,UDAName1,UDAName2
Your load rule for a parent/child build would look something like
PARENT0,Product Child0,Product Property0,Product UDA0,Product UDA0,Product
Prod ProdA N UDAName1 UDAName2
Cheers
John
http://john-goodwin.blogspot.com/ -
hi,
I am in the process of updating my essbase outline using load rules. I have succesfully loaded my first rule which maps the Hierarchy, however I am unable to load the Attribute and UDA properties into the outline.
Does anyone have any suggestions or know the steps on how to do this?
Thanks,This is already discussed in the forum. please go through the below threads.
To build attribute dimensions
Re: Create Attribute Dimension by rule file
Re: dimension building
For the isuues in setting udas.
Re: Dim Build does not update all UDA values
Re: Building multiple UDAs via a build rule -
Hi,
when I run this applet with deprection I get the following warnings, I have also got an error with the mouseDragged, How do I solve these. I hope the code isn't too long for you to understand.
macnero
javac -deprecation precess2.java
C:Java_Progs>javac -deprecation precess2.java
precess2.java:28: precess2 should be declared abstract; it does not define mouseDragged(java.awt.event.MouseEvent) in precess2
public class precess2 extends Applet implements Runnable, ActionListener, MouseListener, MouseMotionListener
^
precess2.java:97: warning: size() in java.awt.Component has been deprecated
d=size(); // method below.
^
precess2.java:154: warning: suspend() in java.lang.Thread has been deprecated
t.suspend();
^
precess2.java:158: warning: resume() in java.lang.Thread has been deprecated
t.resume();
^
precess2.java:162: warning: stop() in java.lang.Thread has been deprecated
t.stop();
^
1 error
4 warnings
import java.applet.Applet;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.geom.*;
public class precess2 extends Applet implements Runnable, ActionListener, MouseListener, MouseMotionListener
Dimension offDimension,d;
Image offImage;
Graphics offGraphics;
int tipLength=16;
int tipWidth=10;
int time=0;
int Hfield=20;
int mx=100;
int my=50;
int tip1x=100;
int tip1y=50;
int tip2x=100;
int tip2y=50;
int set=0;
double freq=(2.0*3.1415/2000.);
double damp=0.0001;
double sinPhi=0;
double cosPhi=1;
Thread t;
Button b1, b2, b3, b4, b5, b6, b7;
int[] hArrowXpoints =
{100, 100+tipWidth/2, 100-tipWidth/2};
int[] hArrowYpoints = {50-Hfield,
50-Hfield+tipLength,
50-Hfield+tipLength};
int[] mArrowXpoints =
{100, 100+tipWidth/2, 100-tipWidth/2};
int[] mArrowYpoints = {50,
50+tipLength,
50+tipLength};
public void init()
setLayout(new BorderLayout(10,10));
Panel p1 = new Panel();
p1.setLayout(new GridLayout(7,1));
b1 = new Button("Increase H");
b2 = new Button("Decrease H");
b3 = new Button("More Damping");
b4 = new Button("Less Damping");
b5 = new Button("Pause");
b6 = new Button("Resume");
b7 = new Button("Finish");
p1.add(b1);
p1.add(b2);
p1.add(b3);
p1.add(b4);
p1.add(b5);
p1.add(b6);
p1.add(b7);
add("East", p1);
t=new Thread(this);
t.start();
addMouseListener(this);
addMouseMotionListener(this);
public void paint(Graphics g)
d=size();
update(g);
public void mouseDragged(MouseEvent e, int mDx, int mDy)
if(mDx<200)
time=0;
set=0;
sinPhi=(mDx-100)/Math.sqrt
((mDx-100)*(mDx-100)
+(150-mDy)*(150-mDy));
cosPhi=(150-mDy)/Math.sqrt
((mDx-100)*(mDx-100)
+(150-mDy)*(150-mDy));
repaint();
//return true;
public void mouseReleased(MouseEvent e, int mDx, int mDy)
set=1;
//return true;
public void actionListener(ActionEvent e, Object o)
if (o.equals("Increase H"))
freq = freq*1.1;
Hfield = Hfield+2;
else if (o.equals("Decrease H"))
freq = freq*0.9;
Hfield = Hfield-2;
else if (o.equals("More Damping"))
damp = damp*1.1;
else if (o.equals("Less Damping"))
damp = damp*0.9;
else if (o.equals("Pause"))
t.suspend();
else if (o.equals("Resume"))
t.resume();
else if (o.equals("Finish"))
t.stop();
hArrowYpoints[0] = 50-Hfield;
hArrowYpoints[1] = 50-Hfield+tipLength;
hArrowYpoints[2] = 50-Hfield+tipLength;
//return true;
public void run()
while(true)
int a = (int) (100*sinPhi*(Math.exp(time*damp*(-1)))*
(Math.cos(time*freq)));
int b = (int) (50*sinPhi*(Math.exp(time*damp*(-1)))*
(Math.sin(time*freq)));
mx= 100+a;
my= (int) (150-100*Math.sqrt(1-(sinPhi)*(sinPhi)*
Math.exp((-2)*time*damp))-b);
// Now calculate the vertices for the triangular vector tip
tip1x=mx+(int)(((100-mx)*tipLength+(tipWidth/2)*(my-150))/
Math.sqrt((my-150)*(my-150)+(mx-100)*(mx-100)));
tip2x=mx+(int)(((100-mx)*tipLength-(tipWidth/2)*(my-150))/
Math.sqrt((my-150)*(my-150)+(mx-100)*(mx-100)));
tip1y=my+(int)(((150-my)*tipLength-(tipWidth/2)*(mx-100))/
Math.sqrt((my-150)*(my-150)+(mx-100)*(mx-100)));
tip2y=my+(int)(((150-my)*tipLength+(tipWidth/2)*(mx-100))/
Math.sqrt((my-150)*(my-150)+(mx-100)*(mx-100)));
mArrowXpoints[0] = mx;
mArrowXpoints[1] = tip1x;
mArrowXpoints[2] = tip2x;
mArrowYpoints[0] = my;
mArrowYpoints[1] = tip1y;
mArrowYpoints[2] = tip2y;
if (set!=0)
repaint();
time=time+1;
public void update(Graphics g)
if((offGraphics ==null)
||(d.width !=offDimension.width)
|| (d.height != offDimension.height))
offDimension=d;
offImage=createImage(d.width, d.height);
offGraphics=offImage.getGraphics();
offGraphics.setColor(getBackground());
offGraphics.fillRect(0,0, d.width, d.height);
offGraphics.setColor(Color.blue);
offGraphics.drawLine(100, 150, 100, (50-Hfield));
offGraphics.fillPolygon(hArrowXpoints, hArrowYpoints, 3);
offGraphics.setColor(Color.red);
offGraphics.drawLine(100, 150, mx, my);
offGraphics.fillPolygon(mArrowXpoints, mArrowYpoints, 3);
if( mx > 90-tipWidth/2 && mx < 110+tipWidth/2
&& my < (int) (150-100*Math.sqrt(1-(sinPhi)*(sinPhi)*
Math.exp((-2)*time*damp))))
offGraphics.setColor(Color.blue);
offGraphics.drawLine(100, 150, 100, (50-Hfield));
offGraphics.fillPolygon(hArrowXpoints, hArrowYpoints, 3);
g.drawImage(offImage, 0, 0, this);
}I believe that interrupt replaces suspend... though interrupt, from what I have read, behaves more like a suggestion.... Although I could be way way off base... Again, my personal choice is to have some method (stop() can't be used... kill() die() done() work!) that sets the "running" boolean to false. This breaks the while loop...
So a
while(true)
becomes
while(running)
and
die()
{running=false;}
re-starting is actually re-threading... ie, creating a new Thread variable (or re-assigning the old one) and starting it.
if you had a "int count" that was 30 when 'stopped'.... rethreading
(ie...
if (t==null){t=new Thread(this); t.start();}
SHOULD keep int at 30 when it starts, assuming that it is not 0'd out at the beginning..
So...
while(running)
count++;
Would start where it was topped the next time rethreaded, because the Object still has a variable count with the value of 30...
~Dave -
Hello everyone,
I know this is a very repetitive question but i still havent found a satisfying solution anywhere.
Here is the scenario:
I am developing a MIDlet which recieves an Account number as the body of an SMS.
I have a database in MS-Access which stores account numbers and corresponding account balances.
I need to retrieve the balance from the database.
HTTP connection allows the asp functionality on Java ME SDK 3.0 but not when the midlet is installed on my Samsung SGH-X700 phone.
I want the connectivity between the phone and PC through USB cable.
I mean the midlet works on emulators but does not access the files through USB cable
How to access http://localhost/test1.asp (which is on PC) through the cable?
OR can it be done through a CommConnection?Please help.thanks for the reply Prakash.
So, i'm using websphere with JCO to connect Bw.
Actually, i encountered the same return message in my java code and during the se37 transaction.
In se37 transaction:
I call the Bapi BAPI_MDDATASET_CREATE_OBJET
I set manually an mdx command generated with MDXTEST
on my BW query.
this BAPI return a DATASETID
the persistence of the object is ok.
after that, if i use the bapi BAPI_MDDATASET_CHECK_SYNTAX
or BAPI_MDDATASET_SELECT_DATA with this DATASETID...
I have always the same error as return message.
RS_EXCEPTION : CL_RSR_MDX_COMMAND========CP
the problem is coming from the DATASETID?
Thanks,
best regards,
Ben -
Initiating batch scripts from Maxl Script Editor in Admin Console??
Guys,
Is it possible to initiate batch scripts from Maxl script editor in Admin Console.
I dont want to automate the scripts as my data loading process can happen at any time.
Thanks in advance
AHi A,
I'm not sure what you're asking? Do you want to run a batch of Maxl scripts, or a batch file, or a single Maxl Script? Why do you choose to use the Admin console to do this? Could you run what you're trying to run in batch from the command line?
Executing MaxL and MDX Scripts
To execute a MaxL script or an MDX script:
Open or create the script.
From the server drop-down list on the toolbar, select the Analytic Server to execute the script against.
The drop-down list contains only Analytic Servers that are displayed in your Enterprise View. For more information about connections, see Connecting to Analytic Servers in MaxL and MDX Script Editors.
Specify how errors should be handled during execution. See Setting MaxL and MDX Execution Options.
Specify how you want results to be displayed in the Results tab. See Viewing MaxL and MDX Results.
If the script contains variables, specify how undefined variables are resolved during execution. See Resolving Undefined Variables.
To execute the entire script, right-click and select Execute from the pop-up menu.
To execute only part of the script, highlight the statement or statements that you want to execute, right-click, and select Execute from the pop-up menu.
The script executes against the specified Analytic Server, and the results are displayed in the Results panel.Regards,
Robb Salzmann -
JAVA(JCO) and BW Connectivity
Hi,
I am using JCO to get data from R/3. At the same time I want to get data from BW server also. Is there any methods available for this activity.
How make it possible, Please provide details.
Thanks,
Ask123thanks for the reply Prakash.
So, i'm using websphere with JCO to connect Bw.
Actually, i encountered the same return message in my java code and during the se37 transaction.
In se37 transaction:
I call the Bapi BAPI_MDDATASET_CREATE_OBJET
I set manually an mdx command generated with MDXTEST
on my BW query.
this BAPI return a DATASETID
the persistence of the object is ok.
after that, if i use the bapi BAPI_MDDATASET_CHECK_SYNTAX
or BAPI_MDDATASET_SELECT_DATA with this DATASETID...
I have always the same error as return message.
RS_EXCEPTION : CL_RSR_MDX_COMMAND========CP
the problem is coming from the DATASETID?
Thanks,
best regards,
Ben -
Filter to show a range of TOP members of a dimension
Hi there,
I am trying to create a TOP Filter that will display the following Values:
TOP 25, TOP 50 and TOP 100
I have a Location Dimension who has a attribute called Rank. This Rank is based on a column of the Location table which has a fixed value per location that was assigned manually in the database.
So when I select the TOP 25 member of the TOP Filter, I will be showing the top 25 locations based on Rank column.
What I did was sorting the Locations in the dimension using the Rank attribute and then building dynamics sets using TOPCOUNT mdx expression. The problem is the performance is very bad.
Could anyone advice me on how would be the best way to achieve the above with a good performance?
Thanks and best regards,
JossHi Joss,
your issue became interest for me and i have done some tests. i have created dimension table and filled by 5 000 000 elements having the different ranks, created dimension that contains three attributes: ID, Rank and Name. Then i defined calculation in cube
script:
CREATE MEMBER CURRENTCUBE.[Measures].[Rank_1]
AS [Product].[Rank].member_value, VISIBLE = 1;
CREATE DYNAMIC SET [Rank_25_1]
AS TOPCOUNT([Product].[Product].[Product],25,[Measures].[Rank_1]);
and run query
WITH MEMBER [NewMember] as NULL
SELECT
[Measures].[NewMember] on 0 ,[Rank_25_1] on 1
FROM [Cube]
The command duration is about 22 sec. Then created real Measure [Rank_2] based on dimension attribute and add new dynamic set:
CREATE DYNAMIC SET [Rank_25_2]
AS TOPCOUNT([Product].[Product].[Product],25,[Measures].[Rank_2]);
the below query was running about 8 sec.
WITH MEMBER [NewMember] as NULL
SELECT
[Measures].[NewMember] on 0 ,[Rank_25_2] on 1
FROM [Cube]
So, performance is not so bad. I suppose you used in query some complex calculated members or used a lot of dimensions in axises.
Best regards. -
Help with setting a MDX goal expression in SSAS
Our data is updated monthly and the last date of available data can be anywhere from 45-75 days behind. For example, data is current through 6/30/2014
as of 8/25/2014.
I have a Time dimension hierarchy named [Calendar] with [Year]>[Half Year]>[Quarter]>[Month]>[Date]
I have a measure, [Measures].[Fatalities] set as a calculated member.
I have a KPI with [Measures].[Fatalities] set as the Value Expression. My issue is with setting up the goal expression.
I am trying to set a goal expression that is a percent reduction for a 5-year baseline average (Year-7:Year-3). So for the current year (2014, with data through
June 2014), the goal would be a 20% reduction of the average of the Jan-Jun 2007, Jan-Jun 2008,Jan-Jun 2009,Jan-Jun 2010,Jan-Jun 2011.
I have set up the following MDX as the goal expression:
.8*((
([Measures].[Fatalities],
PARALLELPERIOD([Time].[Calendar].[Year],7,[Time].[Calendar].CurrentMember))
+
([Measures].[Fatalities],
PARALLELPERIOD([Time].[Calendar].[Year],6,[Time].[Calendar].CurrentMember))
+
([Measures].[Fatalities],
PARALLELPERIOD([Time].[Calendar].[Year],5,[Time].[Calendar].CurrentMember))
+
([Measures].[Fatalities],
PARALLELPERIOD([Time].[Calendar].[Year],4,[Time].[Calendar].CurrentMember))
+
([Measures].[Fatalities],
PARALLELPERIOD([Time].[Calendar].[Year],3,[Time].[Calendar].CurrentMember))
)/5
The problem is that the goal is taking the entire year average at the year level of the Calendar hierarchy. For example, in the attached screenshot, the
Fatalities Goal would be empty when the fatalities is empty, and more importantly, the goal at the Year level of the Calendar hierarchy would only be the sum of Jan-Jun goal. The Fatalities Goal in this example should read 549.28 at the Calendar 2014
Year level and the status would still be green.
http://i.imgur.com/peHD9Wl.pngyou might find this app interesting: http://ivolume.en.softonic.com/mac.
Maybe you are looking for
-
I have a new computer and would like to transfer all my I tune library of 3000 songs from my old to new computer. Can anyone please help me. Also how do I back up my entire library on to DVD's>
-
Problem with Compaq Presario CQ60 Laptop
Periodically laptop will not turn on. I had a message "critically low battery". Tried plugging in and no response. couple of days later, computer responded and did turn on. This situation causes great distress as I fear work will be lost forever.
-
i recently brought a iphone 3gs and had it unlocked then my boyfriend restored it to factory setting now my screen just has the apple icon stuck on it any suggestions as what to do?
-
Youtube video not working in firefox.
Hi everyone, I'm having problems playing youtube videos on firefox. Yet I don't seem to have any problem playing flash supported videos on other sites, but whenever I try to play a video on youtube all I get a is a black box. Is there any suggestion
-
How to disable default InDesign loading Fonts?
Hi, How to prevent indesign loading fonts and how to give manual folder path for indesign loading fonts? please help. thanks,