Apr 15 2024

Arc+ The most advanced developer experience for IBM Planning Analytics

Arc+ is a comprehensive tool that integrates Pulse features into Arc for support and administration purposes. It aims to optimise efficiency, reduce maintenance, and encourage best practices in the Planning Analytics implementation lifecycle. Arc+ offers several benefits, including best practice validation, comparing dimensions, advanced monitoring, full model search, object usage tracking, testing features, chores process history, and integrating documentation. The presentation demonstrates the various features of Arc+, including Pulse integration, documentation access, search model, change tracking, compare tool, and the Test Center. The goal is to provide TM1 professionals with a comprehensive tool that covers all phases of the application lifecycle.

Reach out to edu@cubewise.com to learn more or head to https://cubewise.com

Transcript

(disclaimer: this transcript has been automatically transcribed so it may contain errors)

Okay. Hi everyone. Welcome to the Horizon 2023. I hope you’ve been enjoying the Horizon so far. So this is Kemp from Melbourne. I’m the host of this session. So the session is brought to you by Harvey. He’s based in Melbourne. He’s part of our CODE team. So he is gonna talk about the ARC plus the most advanced developer experience for PA slash TM1.

So if you do have any questions during the presentation, please feel free to leave that in the q and a session. We’ll try to answer the questions during the presentation. And also we do have a sort of a small amount of time we serve towards the end of the presentation for the q and a. If you want to ask questions till then you can also do it.

However, in between the presentation and the q and a I’m going to pop up a survey so that you can, you know, provide your feedback to us because your feedbacks are super important to us. So now we don’t any further delay. I’ll hand this over to Harvey. Thanks Kemp. Okay, my name’s Harvey Withington, I’m from the Cubewise CODE team coming at you from Melbourne, Australia. And I’ll just share my screen always the hardest bit. Okay, so today I’m gonna talk to you about ARC plus the most advanced developer experience for IBM Planning Analytics, even if we do say so ourselves. So this is pertinent to the application lifecycle, which hopefully you are familiar with. If you’re not here they are. I’ve got a slide on it.

So let me just switch. Okay, so the phases of the application lifecycle are planning, develop, test, migrate and support. I won’t read out the slide, you can read it as we go. But our goal in the Cubewise CODE team has always been to optimize efficiency, reduce maintenance, encourage standardization and best practice across all the disparate phases of the Planning Analytics implementation lifecycle. And as such, we have attempted to plug the gaps by creating several applications and tools over the years. So we’ve got Arc for developers primarily, or at least classically has been. We’ve got Pulse for administrators and support people. We’ve got Slice and Apliqo UX which is targeted end users in designing applications for them. And we also have our open source and community driven Bedrock and TM1py, which are also for developers but more of a community driven driven project. So as you can see, it’s been somewhat like a very extended and expensive game of whack-a-Mole to plug all of the gaps in the implementation lifecycle. So Arc itself has always aimed to offer many benefits over the default tools that come with Planning Analytics. If we compare workspace, you can see from the diagram here that both have always supported the phases of develop and support.

Workspace and Arc have typically been targeted at the same phases, but Arc Plus is intended to change all that. So we’re looking in the future to fulfill the needs of the entire application lifecycle. Now the initial phase of this is to integrate Pulse features inside Arc, which will give us the support and administration phase. But the greater goal is actually more ambitious than that.

Arc Plus is set to take TM1 professionals places we’ve never been before and I’ll give you a bit of a taste of that during the the presentation. So if you happen to be a Planning Analytics developer who wears many hats and I’ve never met one who didn’t, arc plus is the tool for you. And even more so going forward. Okay, so Arc and Pulse integration, it’s available right now. We’ve got best practice validation, we’ve got comparing Dimensions, advanced monitoring, full Model Search Object uses tracking and a few additional things. And coming up we’ve got a testing feature, chores process history, who’s doing what and integrating documentation. In this presentation I’m gonna take you through how to activate Arc Plus show you the features already included in the current 4.2 release and give you a bit of a teaser for what’s on the roadmap in the next year or so. And if you’re a tech nerd like me, it’s pretty exciting. So yeah, if there are any questions as Kemp said, you can ask them in the chat or use the q and a feature. I’ll answer them at the end, but we’ve already spoken too much.

Let’s see something in action. So I’m gonna fire up Arc or at least I’ve already got it fired up. And if you, if you’re watching this on a small screen or even on a laptop, it’s probably best to go full screen so that you can see the full glory of the application as I present it. Okay, so this is what Arc looks like when you run it.

Now in the current release, actually this is not the current release, this is a little bit advanced of the current release, but I’ll show you that in a sec. And as you can see here, the main difference is you’ve got this pulse icon down here. You may have seen that in your version of Arc and wondered what it does well you can click on it and it gives you a bit of a status about your Pulse connection.

In this case, we’re not connected so it gives you a error and just a bit of a taste of what Arc Plus is intended to do. You can click this find out more button and it’ll give you instructions on how to connect. We’re not gonna do that because it’s three lines in your settings file. So we give it a pulse URL in my case that’s local host, but yours might be on a server or wherever we give it Pulse Environment, which is the name that you gave your environment and Pulse when you first set it up. And we’re gonna set pulse tracking to true, that means that ARC will now start sending data to Pulse. So Pulse can report on it. It’s that easy. Three lines, no big deal.

So if you do need help at any stage though, this or this link will always get you back to the help document to be able to do it. So if we refresh, everything’s green. So end of presentation, everything’s perfect. Just kidding, no there’s more. But it’s always nice to see a green indicator. You’ll also notice that now we have this documentation tab here as well with a few buttons.

What that does is enables you to get the pulse documentation that you might be familiar with if you have Pulse from the pulse server. These just come through as PDFs. I’ll give you an example of say the flow diagram. So if you haven’t seen the pulse flow diagram, that’s what it looks like. It’s a pretty cool feature that lets you see all of the connections between all of the disparate objects in your TM1 model.

So that’s pretty handy, but it’s nothing more than what Pulse would give you out of the box. It’s just now we can do it from Arc. You’ve also got a few things down here saying what the current features are and what’s coming soon. So, but again, this is not quite up to date in the current version so we’re gonna go a bit further than that.

Okay, so the other thing you might notice that’s changed is the Pulse connection Icon up here. So if we click on that, it’ll show you that you’re connected to Pulse and all is good. But you’ll notice that the indicator here is yellow. We really want it to be green, we want everything to be green. Green is our favorite color so we need to log in to do that.

So if I just mouse over this, it’ll tell you what’s wrong. Connection to Pulse, not logged in. Okay, well let’s log into Pulse. So I have admin log into Pulse, so I’m gonna use that. That way we will have access to all of the features. So admin and I’m not gonna tell you my password but it’s definitely not Pulse so don’t even try it.

And now we’re logged in, we have a green light and we can finally calm down and relax ’cause everything is green and that must mean it’s good. So I’ll close the Pulse connection page and you can see now something else that’s changed is these little dots here. These dots, the service status coming out of Pulse. So we’ve made, by default, they’re quite compact and and small.

But if you prefer you can come in here and customize them. So if you like the icon set that Pulse uses, you can set it to that and save and it’ll show them as big ticks. Instead, if one of the server came, one of the services came down, you would see it in here. It would turn red, orange, whatever.

And if you get any kind of other notification in Pulse, it’ll show here as well. So you don’t need to keep switching between applications to monitor the status of your service. It’s right here in one little dot. You’ll also notice, oh actually if we click on one of those also it’ll give you the sessions screen. So the old arc session screen started below this line of widgets here.

This is a a new feature that’s added in once you connect to Pulse. And this is telling you the memory usage, CPU usage, how many waiting users and all of that stuff that comes out of Pulse. You can reorder these if you want to. So if you decide that the memory usage is the most important thing, you might want to drop that on the left.

And if you don’t like the look of it for some reason or if you prefer to do it, there’s a few different options in here. One is to use dials. As you can see here, this is a slightly more visual representation although it’s not very exciting until you actually start running some stuff and then it all starts to fire right up. I don’t know how many I should do, but hopefully not too many ’cause we do have to wait till they finish at some point we can see here the waiting users springs up, the runtime will keep counting up and so on and so forth. And our server is under a lot of stress and and very upset right now. So all of this data comes out of Pulse and if you look in Pulse you’ll see it’s got exactly the same numbers.

So the other main change in the user interface is that you now have other nodes underneath the pulse node down here which give you the additional pages that you can access. So just go through these quickly. You’ve got search model. So this is actually in object search. So it actually searches the text of rules and TI processes and so on. It doesn’t just use the name of the file or of the TM1 object.

So we can search for, let’s say you, one thing I used that you can see in my search history there is I was trying to look for the name of the process that does bedrock weight and I knew it called sleep or it had the word sleep in it. So I type sleep, it gives me bedrock server weight and you can see here it’s got the word sleep in there.

So that was one way that I used it to find something just before. But something that you might do in the real world is general ledger. This will give you a list of all the objects that are related to the general ledger. So you can see here you’ve got general ledger measure, of course you’ve got the rule, you’ve got the cube, but you’ve also got some drills that drill to the general ledger as well.

You can open it up and see that the, the TI actually drills into the general ledger. So that’s something that would be very hard to find out. You’d have to go through all of your drill processes one by one to work out how many things drill into the general ledger and then you see this elements cube. Why would that have it? Well because General Ledger me measure is actually the measures dimension of that.

It’s just a test object I created. It’s not a real cube. You can also see of course all the rules that feed to the general ledger. So that’s very useful as well to get that all in one place. And you can probably just trust my word for it that all the other objects have the word general ledger in there somewhere. So that’s a pretty useful utility as is the change tracking.

So you can see here this is just a list of all the changes that have happened between the date ranges that are selected in the page here. You can refresh it just to get a a new list whenever you want to. And you can actually click in here and see what changes have been made. Unfortunately I’ve just been rehearsing this presentation so I’ve changed it back and forth.

But let’s do it again and you’ll be able to see that we actually get notified of every change as well. So if I go into the process and find that error one and make a change in the prologue, I’m just gonna add a comment, I’ll save that. Now it takes a little while because you know Pulse works on a cycle so it doesn’t, it doesn’t detect changes immediately. But I’m pretty confident if you start to hold your breath right now and you only let go when the notification comes, there you go. So you would’ve been fine, it wouldn’t have been more than four minutes and caused brain damage. So you’re in good hands. I wouldn’t put you in that sort of danger. But yeah, so any notification that you get out of Pulse, whether you’ve set up alerts or whether a server goes down or anything else that generates an alerts in Pulse will also generate an alert in arc, which is extremely handy. You don’t have to switch between the applications to see them. And again, you can see here our change to the Adot profile has appeared in here as well.

The other page that I wanna show is the compare tool. This is again a very handy feature like could do some save some amazing heavy lifting in the long run. So I’m going to log into a second server, we’ll do, we’ll use test framework and then that becomes available in here. So I can actually compare two dimensions that are on different servers, which is something that’s been very difficult to do typically in the past. So in test framework I’ll just leave, well what do I have in here? Account, account two, I’ll just call it account. I’ll just actually, I’ll just compare the two account dimensions. That’s probably the easiest way to go. So these are two different account dimensions across two different servers and there’s three modes.

So we’ve got the quick mode that’ll tell you if the count of the dimensions or the basic statistics of the dimension are different. So it’s got the same number of attributes and the same number of levels but everything else is different. So obviously there’s differences between these two dimensions. So you can look at the inline view, which just gives you a single table of everything that’s different between the two dimensions.

And as you can see here, this 1160 and 1165 has all been added. There’s also a test and a sha, we do a lot of weird testing on the Cubewise code team. Yeah, I’ve got all that involved. And we can also do the beside view, which you might prefer. It’s pretty much the same data but just presented with each dimension separately, side by side. So you can compare them that way. One thing to be aware of is of course set your maximum elements to something intelligent because if you set that to a million, the comparison can take quite a while. So, but again, a very useful feature and something that hasn’t been available up until now. Now I’m gonna skip the test center for a second and just show you a few other things because for me the test center is the piece to resistance or yeah, I shouldn’t try to say French words, that’s stupid. But anyway, it’s the, the grand finale actually that’s also French. Everything’s French so I can’t really avoid it. Anyway, there’s one other feature that I wanna show you first. So let’s go into the employee rules.

Okay, now I showed you earlier the pulse validation report. So you can click that, you can generate a a validation report and you can get all of the issues that arise in the current instance in one big document. And it’s really handy, it’s really good for handing to it or giving to a developer and saying, you know, attend to all of these or whatever. It’s not that good if you are in the middle of writing your rules and you want to know whether you’re following best practice or not.

So what we’ve done is we’ve integrated the pulse validation into the rule editor. So now we’ve got this validate code using pulse button and you can click that at any point and it’ll give you a list of all of the issues that it finds for this particular set of rules. You can see down here also it’s high highlighted the lines that are associated with it.

So you can get a big list if you prefer and you can click over here to get to the line that’s being complained about. And you can see here when you mouse over, it’ll give you a description out of pulse of what the rule says that you should do. This is pretty handy because obviously as you are developing you can attend to these problems without having having to generate a document or print it out and read it or you know go through a big list or whatever.

It’s also really handy if you are setting up, if you’re an administrator, you’re using Pulse and you’re setting up validation rules for the organization that you work for. So, so let’s say in your organization you’ve got a general ledger and the performance isn’t going so well and you find out that developers who will not be named overfeeding the general ledger because they’re not sure how to write a good feeder or be efficient with it.

So one way you might deal with that is to go into Pulse and create a custom validation rule. So let me just log in and I promise I’m not typing pulse right now and we’ll go into the administration section and the validation rules. And you can see there’s a list of all the default rules here. I’ve added a new one, I don’t want to do this in front of you because number one it would just be boring.

And number two, it involves writing regular expressions which can be quite challenging and I’d probably screw it up. But the idea of this rule is to detect overfeeding or detect any feeding of the GL cube. So what we’re gonna do is we’re gonna type a a regular expression that’ll trigger whenever we see close bracket feed, db, general ledger, the rest of it’s just padding and whatever allowing for all of that kind of stuff.

And we’re gonna put in the message you are feeding the general ledger from this queue. Make sure you don’t overfeed and slow down geo reporting. You could be a lot more pointed than that but that’s a nice way to put it I think. And we’ll just enable that and save and we’ll go back and we click our validation again. And you can see now we’ve got nine issues and feeding GL cube is one of them.

And if I scroll down you can see here that’s our message coming up. So it’s a really good way to get a message out to developers that you want to have responded to in real time. All right, so for the last little bit, the test center, let’s have a look at it. So typically testing in tmm one hasn’t really been a thing at all.

And that’s probably because a lot of tier one consultants come from accounting backgrounds and not IT backgrounds but as someone who did come from an IT background, it it’s initially quite a terrifying prospect that you are writing all this code and stuff and there’s no safety net of testing to catch it. So what we’re doing is adding unit testing capabilities to tmm one and I’ll just show you quickly ’cause we’re nearly out of time.

But you can create unit tests here and you can create collections of unit tests. So the collections are what you run and they’ll run each test in sequence and tell you whether it passed or failed basically. So if we have a look at one of these unit tests, you can see it’s got just name and description, you can give it a category, that’s what the coloring is, makes it look pretty. And in the execution you give it the object that you want to test, right? So in this case we’re just testing bedrock server, wait, it’s a good one to test ’cause it doesn’t do anything and it won’t destroy your model. You’ve got set up and tear down, that’s just a ti script that you can run before you do the action.

And then you have assertions and this is what tests whether or not you are passing or failing your test. So if we have a, just a quick look in there, this is testing if operating profit is bigger than zero and you have to go in and check the general ledger with the operating profit to see if the amount is greater than zero and then you just set greater than or equal and then zero.

Now if we go back to collections, we can see that that one’s actually included in in this test. And if we click test this, import CapEx data, one is the one that we just looked at and you can see that fails. The reason it fails is because our operating profit is less than zero, it shouldn’t be, we’re not doing very well.

So it’s something that you might wanna be alerted by. And the only other thing that’s that’s really gonna solidify this testing as a sort of more cultural thing is we’re integrating it all the way through arc. So if I go into say the general ledger and view it and I want to test this cell, right? So 873 66, I want to check that that cell is equal to that or greater than that or something else.

I can right click say create a new test. I can give it whatever details but it gives some defaults here I can give it a category if I want to General ledger. And you can see in here it’s already created the assertion for me because that’s quite a complicated, complicated part of the process. So I can say greater than zero. Okay, save I can add that into my test collection.

So we’ll go into the entries and find it. I think it’s this one, let’s get rid of that. And now when we do our test it’ll run that one as well. So let’s see if it passes. It should do all right, it did pass. So that’s that means that yeah our test has been successful. So I think I need to stop there.

Kemp, have I got time to do anything else or is that about right? You stick quite a few minutes, I think you can continue. Alright, I’ll show you very quickly the data collection features Pulse. So I’ll just go back into Pulse. Let’s go to reports and performance, sorry. And then Pulse Explorer. So this opens Gabana and silently in the background.

The whole time we’ve been doing this presentation, pulse has been collecting data on everything that I did. So I’ve created a little dashboard here which just shows if I make it say year to date, this shows all the interactions that are being monitored over the last year. So you can see here I edited a lot of processes, dunno why that is but probably I was creating a TI library or something like that.

And you can see here it, it monitors opening views, subsets, any cells rules and processes. And if I go into explore and show you the table itself. So you can see here this is the all of the list of everything that’s been done. And you’ll notice here that if I just saw correctly, so you’ll see here this is the stuff that we just did.

So opening the general ledger default view and so on, all of the stuff that we’ve just been doing in the presentation has been tracked and logged. Sorry, here it is. So this was opening the error ti, this is opening the employee cube and this is opening the default view of the general ledger. So you can imagine that’s gonna give you all sorts of insights into user behavior and so on and it can go down to the user as well.

So it tells you that it was the admin that was logged in which server and so on. So yeah, it’s very useful. You can create dashboards and customize that in any way you see fit. I haven’t put in much time, but if you do it’ll pay big rewards. All right. Should we open it to questions Before we do it? So Harvey can you, I’ll just change back to the camera. So basically thanks for your presentation. So before we go into the q and a, I’ll quickly pull up the feedback page. Yes. And then Good idea If you can like spend some time to, to do the feedback for us, that would be great because your feedbacks is super like important to us, we can make this like Horizon better.

So I’ll give you a minute or two to finish that. But while you are doing the feedback, so there’s, there are a few questions that I haven’t answered. Okay. The latest one will be, I think I can answer this one is the monitor captive fit to the company or the CW or Cubewise have access to the locks in real time. So basically Cubewise wouldn’t have access to the, the post log it, you know, all the log is stored, you know where your post is hosted. If your post is hosted on TM1 server only the company the customer can have access unless you are willing to share with us for some benchmarking, that’s another story but we don’t have access. So you do have full privacy on that. It would be Vulnerable.

Yeah. Yeah. And then there’s another question is are edges the same as defined the graph theory? I’m not quite sure I understand that question Kevin. So Edges the same as defined in graph theory. Kevin, I will have to get back to you on that after studying. Just Probably having base with you, you know, in the, in the networking session, like the platform here. Yeah and there’s another one for, And we’ll we’ll talk about that you might need to explain a bit further. Yeah, there’s another one for David Rice. Is there a thought to decommission Pulse, a separate application now it’s mo, it’s mostly integrated with arc. Yes there’s been some talk about whether ARC could be the front end for Pulse, but there’s a lot of work to do before that could even be considered. So for the time being we’re gonna keep the same both user interfaces but yeah, who knows in a year or two? Yeah Pulse will always be a separate server application. It may just have its front end integrated into, Oh it might be, yeah it might be hidden in the backend,

right? We probably not emphasize in the future but in the back end we still need like a post to be able to capture all the activities and lots and put them into into the database. Okay. Is there any further question? If not then thanks again everyone for joining us and thanks Harvey for such a good presentation. So I’ll probably end the session from now, but if you do have any questions, feel free to reach out to us. And also if you’re interested, look at the TM1 team championship. You know that will be really interesting. I hope you enjoy the rest of probably 16 or whatever hours remaining to the Horizon 2023. Thank you everyone. Thanks everyone.

Related content

Loading related content