Michel Zijlema wrote:.Net API is not exactly my area of expertise, but...
Could the issue not 'just' be the fact that CX uses CAM authentication and the .Net API is not capable of handling this or is handling this in an other way than expected?
I don't frickin' believe this.
Remember how these geniuses "forgot" to include the .Net API "Help" file
in 10.1? And how they lied to... sorry, told me that they would put it up for download Real Soon Now (over
six freaking months ago) and how it was going to be reinstated with 10.2?
Well, I just looked in my 10.2 folders and found that it wasn't there.
Ineptitude is one thing, but this is something else. For last July they snuck
this piece of cr@p past us, which I missed at the time:
TM1 10.1.x and up releases
The dotNet documentation is no longer delivered with the TM1 Product in version 10 and higher.
Please choose to develop software with the TM1 API in C++ and Java only.
Are you ****ING KIDDING ME????
First of all, dear IBM, most TM1 programmers started out in Excel. Which means that their programming skills are VBA based, from which we go to VB, from which we go to VB DOT FREAKIN' NET, one of the most widely used freaking languages On. This. Freaking. Planet. That's the planet that
we're on. Not necessarily the planet that those in charge of the direction of TM1 development these days are on.
Secondly, the "classic" API, which is what I presume that you Big Blue Einsteins were alluding to in your typically ham-fisted manner in the page quoted above, was intended for C, not C++. Read your own sodding documentation if you don't believe me. There are, it will surprise you to learn, differences between the two languages.
C++ is an object oriented language that would be a better fit with, oh, I dunno, what was it again... oh, right, the also-object oriented .Net API, now I remember. (That having been said all of the documentation for the .Net API referred to its cousin C#, which I note that you also omit the mention of in your document. No mention of VB, no mention of C#. Couldn't have anybody writing in a Microsoft language now, could we? Newsflash: MS isn't going anywhere in the foreseeable future, and neither are those with MS-based skills, IBM. Except maybe to competing products if you persist in screwing them over. Learn to love the concept.)
Thirdly,
{insert anatomically impossible suggestions here} that piece of
{insert infinite stream of invective-based expletives here} Java and all who sail in her. If anyone chooses to use that security-holed, bug-ridden, update-every-day piece of garbage, that's their choice and they're welcome to it. I, however, do not wish to be forced down that path. (Two years later edit: "Even though I was, eventually.")
Fourthly, I'll come back to in a minute.
Anyway, having dug the file out of the remnants of my 9.5.2 install, I can confirm that it
is supposed to support CAM authentication:
Applix.TM1.API Namespace > TM1ServerInfo Class : LoginUsingCAMNamespace Method
C#
C++/CLI nameSpace
CAM namespace. strUserID
User ID for logging-in to CAM server. strPassword
Password for logging-in. Logs into the TM1Server database server using a CAM namespace.
Syntax
Visual Basic (Declaration)
Public Function LoginUsingCAMNamespace( _
ByVal nameSpace As String, _
ByVal strUserID As String, _
ByVal strPassword As String _
) As TM1Server
Visual Basic (Usage) Copy Code
Dim instance As TM1ServerInfo
Dim nameSpace As String
Dim strUserID As String
Dim strPassword As String
Dim value As TM1Server
value = instance.LoginUsingCAMNamespace(nameSpace, strUserID, strPassword)
C#
public TM1Server LoginUsingCAMNamespace(
string nameSpace,
string strUserID,
string strPassword
)
Managed Extensions for C++
public: TM1Server* LoginUsingCAMNamespace(
string* nameSpace,
string* strUserID,
string* strPassword
)
C++/CLI
public:
TM1Server^ LoginUsingCAMNamespace(
String^ nameSpace,
String^ strUserID,
String^ strPassword
Parameters
nameSpace
CAM namespace.
strUserID
User ID for logging-in to CAM server.
strPassword
Password for logging-in.
Return Value
A TM1Server object that provides access to the resources of the database. If the login attempt is unsuccessful then null is returned.
Oh, fourth, that's right, fourth.
Given that they've pulled the documentation with nothing but a notice to that effect in some obscure page tossed onto the garbage dump that passes for IBM's web site, does anyone want to make a bet that they'll pull support for the whole .Net API (probably with a similar amount of notice) at some point in the future? (Which seems to be what they're hinting at with that not so cryptic little comment about how people should "choose" to develop only in C++ or Java; pah! Like it's a "choice" when options are removed.) And that they'll therefore similarly pull any support for VB/VB.Net APIs notwithstanding the number of people who still use the Excel interface? For after all, Java is our saviour, all hail Java! The point being... I'm not sure that I'd put a hellofalot of effort into developing tools in the .Net API if there's a risk of IBM pulling the rug out from under your feet and notifying you about it in a one liner on a nondescript web page in the middle of the Cyberspace equivalent of nowhere.
Now I grant you that there probably hasn't been a
lot of development done using the .Net API, certainly not compared to the amount done using the classic API. And probably not even compared to the Java API, which I nonetheless suspect is not as widely used as IBM thinks it is; there are still a lot of places that follow the creed that if you don't need Java, you shouldn't install Java. However that's down to IBM shipping the .Net API in a half-birthed state with minimal functionality and even less real, useful documentation, not down to a lack of desire to connect to TM1 via as many routes as possible. Yeah, the .Net API was a screw up, albeit an occasionally useful screwup. And
YOU screwed it up IBM. You throttled it in its cradle and ensured that it wouldn't be widely used by not giving it anywhere near enough functionality. For the record, killing it ain't fixing it.
I swear to the gods, I've been p*ssed with IBM before but this marks a new high water mark. I thought I'd better mention that as some of you may have missed the subtlety that I employed in the subtext above.