Tuesday, February 24, 2009

Opportunity

It will be very rare when I criticize a SAS PR release but this one was a bad release, in my opinion:

http://www.sas.com/news/preleases/AberdeenReport.html?utm_medium=RSS&utm_source=Corp_PressRelease

It infers that only mid-size businesses use spreadsheets and that it shows a level of immaturity. My current client, a SAS user, is 15x the size of SAS and uses a lot of spreadsheets. Why? because it is easy and it works. Also, let's not use a generic term spreadsheets. EVERYONE uses Excel so put a name on the usage and don't generalize.

I found this sentence the most galling:

Hatch said that the most successful midsized enterprises are much more likely to be using powerful and relevant technologies such as those from SAS, the leader in business analytics software and services.

A business can use SAS and be relevant while also using Excel. Trying to say that someone needs to use SAS end-to-end is the major issue I have today with SAS. SAS is extremely powerful but to say that their interfaces have to be the vehicle for BI is nonsense. Excel is a fantastic delivery mechanism for SAS BI.

Bad press release, IMO. I am unsure who it targets. The 'unsuccessful' midsized enterprises who love Excel and just want SAS to work with it or the ferociously succesful large businesses who have melded the 2 sides and view them as compatible.

Sell SAS guys but do so with an understanding of what clients want: SAS to work with Microsoft and display data in Excel, Word, Project, Powerpoint, SharePoint, etc. No need for a rift when the 2 sides work well together.

Tuesday, February 17, 2009

Microsoft Project and Inserting Columns

I am doing a LOT of work right now with SAS and Microsoft Project using the Microsoft Project interop, Base SAS, and SAS/IntrNet. One of the client requirements was to add in additional columns to the default MS Project columns. Well, I searched high and low and couldn't figure out how to do it. After some slogging, here is what I came up with:



class MsProjectTest
{
Project p ;
object m = Missing.Value;
string file = @"c:\temp\test.mpp";

public void Process()
{
Application app = new Application();
app.Alerts(false);
p = app.Projects.Add(m,m,m);
Task t = p.Tasks.Add("Test", m);
t.Name = "Test Node";
t.Start = "03/20/2009";
t.Start7 = "03/31/2009";
p.Application.TableEdit("Entry", true, m, m, m, m,
"Start7", "Start Test", 10, PjAlignment.pjLeft,
true, true, 255, 1, 4, 1, m, m);
p.Application.TableApply("Entry");
p.SaveAs(file, PjFileFormat.pjMPP, m, m, m, m,
m, m, m, m, m, m, m, m, m);
app.Quit(PjSaveType.pjDoNotSave);

System.Diagnostics.Process.Start(file);
}
}



I hope this helps some other interop developer out
there struggling with the same issue.

SAS throwing RPC error

If you are doing code in C#  and get this error when creating a LanguageService: The RPC server is unavailable. (Exception from HRESULT:...