It was be absolutely invaluable to have the ability to impersonate a 'contributor' during form development.
Currently, when developing a form, I have 2 sesssions of Excel open - one as me and one as a contributor. This means I need to create a cycle and an assignment also and republish every time I make a change to the form I'm working on. Merely to validate that I am getting 'yellow cells' as expected (which is by no means a sure thang!).
A feature, similar to Analysis Services where I can impersonate a particular user/role would eliminate the need for all that extra effort - republishing, regenerating etc.
If you too would value this functionality, please vote for it at https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=380070&SiteID=181
Wednesday, 5 November 2008
PerformancePoint Planning - Impersonate a Contributor during Form Development
Posted by
Kristen Hodges
at
2:55 pm
0
comments
Labels: PerformancePoint, Planning
PerformancePoint Planning - Object Names
Just a quick FYI....
In PerformancePoint Planning, objects are named as follows:
- Cubes: ApplicationLabel_ModelSiteLabel
- Databases: As specified in PAC during create
- Application Label must be unique and cannot be changed
- When connecting to an application, the Application Name is displayed
Posted by
Kristen Hodges
at
1:32 pm
0
comments
Labels: PerformancePoint, Planning
Tuesday, 4 November 2008
Microsoft Azure.... the blue loo
Microsoft announced it's Azure service last week. In their words Azure is a tool that allows you to "Build new applications in the cloud - or use interoperable services that run on Microsoft infrastructure to extend and enhance your existing applications". From our, the BI developers', perspective Azure is hosting not just data but also Visual Studio solutions ie developing and deployment within the cloud.
Not that it's limited to Microsoft tools and environments of course.
So I immediately joined the CTP for SQL Services. I've downloaded the SQL Data Services SDK and have been placed on a waitlist for access to the cloud.
From what I can tell so far, you can use REST or SOAP for CRUD operations and LINQ for queries. Interestingly, there is no 'schema' as such - new properties can be added to entities as required - no need to add a new 'column'. What that means in practical terms I'm yet to find out. I suppose it will become apparent once I can access the cloud.
More info will follow shortly.
Posted by
Kristen Hodges
at
9:01 am
0
comments
Labels: Microsoft Azure, SQL
Tuesday, 28 October 2008
What’s New in SQL 2008 – Part 3 – Table Type
The new Table type allows you to save a table definition in the database which can be reused later to define table variables, stored procedure parameters and functions. To create a Type, we use the CREATE TYPE clause, for example: Examples Create Table-Type Variables DECLARE @t as dbo.ProductList; Creating a Stored Procedure with a Table-typed Parameter CREATE PROC dbo.uspGetOrdersforProduct ( Passing Table-parameters into Stored Procedures DECLARE @t as dbo.ProductList; EXEC dbo.uspGetOrdersforProduct @tCREATE TYPE dbo.ProductList as TABLE ( ProductName varchar(200) NULL, ProductCategory varchar(200) NOT NULL)Important Notes:The metadata is visible using sys.table_typesVariables/parameters cannot be set to NULL – if no table is supplied, an empty table is generatedNot affected by transaction rollbacksDo not cause recompilations
INSERT INTO @t VALUES
('Grey Slate Paver 10x10','Paver'),
('Blue Slate Paver 10x10','Paver'),
('Heritage Blue 12x6','Brick')
@t as dbo.ProductList READONLY,
@StartDate as Date,
@EndDate as Date
) AS
SELECT o.OrderId,
o.OrderDate,
o.CustomerId,
o.ProductId,
o.Amount,
o.Qty
FROM tOrder as o
INNER JOIN tProduct t on t.ProductId = o.ProductId
INNER JOIN @t as f on f.ProductCategory = t.ProductCategory and (t.ProductName is NULL or t.ProductName = f.ProductName)
WHERE o.OrderDate between @StartDate and @EndDate
INSERT INTO @t VALUES
(NULL,'Paver'),
(NULL,'Brick')
Posted by
Kristen Hodges
at
3:01 pm
0
comments
Labels: SQL
What’s New in SQL 2008 – Part 2 – Data Types
Date and Time Data Type Size (bytes) Example Notes Client Providers DATE 3 '2009-10-01' OLEDB: DBTYPE_DBDATE TIME 3-5 '13:12:00.1234567' Accurate to 100 nanoseconds OLEDB: DBTYPE_DBTIME DATETIME2 6-8 '2009-10-01 13:12:00.1234567' Accurate to 100 nanoseconds OLEDB: DBTYPE_DBTIMESTAMP DATETIMEOFFSET 8-10 '2009-10-01 13:12:00.1234567+02:00' Accurate to 100 nanoseconds OLEDB: DBTYPE_DBTIMESTAMP There are a number of new functions which can also be used with these new datatypes including: Other Data Type Size (bytes) Useage Returns Notes HIERARCHYID VARBINARY DECLARE @h hierarchyid = hierarchyid::GetRoot() DECLARE @c hierarchyid '/1/' Represents position in a hierarchy Actually a CLR function with several methods eg
ADO.Net: DateTime
ODBC: SQL_DATE
ADO.Net: TimeSpan
ODBC: SQL_TIME
Can specify precision ie decimal places eg DATETIME(3)
ADO.Net: DateTime
ODBC: SQL_TIMESTAMP
ADO.Net: DateTime
ODBC: SQL_TIMESTAMP
eg 5 bytes for 100k records at 6-LevelsSET @c = @h.GetDescendant(NULL, NULL)
SELECT @c.ToString()
Posted by
Kristen Hodges
at
2:52 pm
0
comments
Labels: SQL
What's New in SQL 2008 - Part 1 - Functionality
Function Usage Example Notes Declare & Initialise DECLARE @iValue as integer = 100; Compound Assignments SET @iValue -= 50 += -= *= /= %= Multi-Row Inserts Using VALUES INSERT INTO dimProduct (Label, BusinessKey,LastUpdatedBy,LastUpdatedDate) VALUES The insert is executed as a single transaction. MERGE MERGE INTO dbo.dimProduct as d INSERT (ProductName,ProductCategory) VALUES (s.ProductName, s.ProductCategory) WHEN NOT MATCHED BY SOURCE THEN DELETE Grouping Sets SELECT Year(OrderDate) as OrderYear, ()); () empty brackets represents an 'ALL' grouping Filtered Indexes CREATE NONCLUSTERED INDEX idxOrders_Product Change Data Capture Tracks data changes into a table.
UPDATE dimCustomer SET Balance += 200
('Grey Slate Paver 10x10',1111,'dbo','20091001 13:12:00'),
('Blue Slate Paver 10x10',1112,'dbo','20091001 13:12:00'),
('Black Slate Paver 10x10',1113,'dbo','20091001 13:12:00')
Interestingly, it can also be used like this:
SELECT * FROM (VALUES
('Grey Slate Paver 10x10',1111,'dbo','20091001 13:12:00')
('Blue Slate Paver 10x10',1112,'dbo','20091001 13:12:00')
('Black Slate Paver 10x10',1113,'dbo','20091001 13:12:00')
) as p (Label, BusinessKey,LastUpdatedBy,LastUpdatedDate)
USING dbo.dimProductStage as s ON d.ProductKey = s.ProductId
WHEN MATCHED THEN
UPDATE SET
d.ProductName = s.ProductName,
d.ProductCategory = s.ProductCategory
WHEN NOT MATCHED THEN
OUTPUT $action,
deleted.ProductId as DeletedId,
inserted.ProductId as InsertedId;
SalespersonId,
OrderType,
count(OrderId) as OrderCount,
sum(Amount) as OrderAmount
FROM factOrders
GROUP BY GROUPING SETS (
(OrderType, Year(OrderDate)),
(SalespersonId,OrderType, Year(OrderDate)),
(SalespersonId, Year(OrderDate)),
(Year(OrderDate)),
ON factOrders(OrderId,ProductId)
WHERE CreditFlag IS NULL
** to be discussed in further detail in an upcoming post **
Enabled using sys.sp_cdc_enable_db or sys.sp_cdc_enable_table
Disabled using sys.sp_cdc_disable_db or sys.sp_cdc_disable_table
Uses SQL Agent
Posted by
Kristen Hodges
at
2:50 pm
0
comments
Labels: SQL
SharePoint Magazine - Part 2 available now
My next article for SharePoint Magazine is available now.
http://sharepointmagazine.net/technical/administration/sell-sell-sell-why-build-a-dashboard-anyway-part-2-of-6
Posted by
Kristen Hodges
at
11:12 am
2
comments
Labels: Monitoring and Analysing, PerformancePoint, Sharepoint 2007 (MOSS)
