RPI Consultants Knowledge Base

Office Hours: ImageNow Application Plans

Perceptive Content Application Plans, occasionally referred to by the legacy name LearnMore, are powerful applets within ImageNow that allow you to interact with other business applications – local and web-based. Application Plans most commonly allow you to automate searches based on an open record in another window, or retrieve and index documents with keywords from the open application. To accomplish this, Application Plans sometimes need to be manipulated with VB Scripting and/or AppGetData for shifting values in third-party applications. These customizations are typically completed by your consultant, but can be learned and used by system administrators, as well.

Transcript

Michael Madsen:

All right. So, I’m going to go ahead and let’s just jump into my little PowerPoint here. Welcome everybody to RPI Office Hours. If you haven’t done this with us before, it’s just something where we’re trying to show you some functionality with stuff that we’ve worked with in the past, to hopefully help you out with things that you need for your business.

See if I can close that, there we go. Okay, so we only have a few slides to go through. Essentially, what I’ll do is just kind of talk to you about some upcoming stuff that we’ve got going on, kind of give you an idea of what Office Hours is, and then we’ll just jump straight into our Application Plans presentation.

So, first of all, hello, I’m Michael Madsen, I’m a lead consultant at RPI Consultants. I’ve worked with Perceptive Content software for around six years, specializing in Back Office and Higher Education solutions, but we also kind of run the gamut on all the other types of businesses as well, so not just focused on those.

We have some upcoming webinars. We generally do webinars every month. The next one coming up are going to be just a what’s new in Kofax, and what’s new in Kofax ReadSoft Online and those are both going to be on November 6th, so if those interest you at all, please hop over to our website and sign up for those, and then the next Office Hours presentation is going to be on November 15th to talk a little bit about Perceptive Experience, what you can do with that and how it works.

To give you some background around RPI Consultants. We have over 100 full-time consultants scattered throughout the country. We have offices in Tampa, Baltimore, and here in Kansas City where we’re located. Most of our Content and Process Automation consultants are in the Kansas City office. We specialize in a lot of different things. We can cover any consulting needs you need. We have project managers, we have technical architects, we can kind of do essentially your one stop shop for consulting around your imaging software.

And then what is RPI Office Hours? I’ve mentioned it a little bit before, but really what we’re going to do today is go through the AppGet tree functionality around your LearnModes and how we can work those in. A lot of people had issues after the ImageNow upgrade using the older functionality that caused some things to slow down with their application plans, and this is a way to fix that to get around those issues. I’m going to give you a live demonstration on what we’ve built in our test environment and I have some VB script code that I’ve put together to make it work. Feel free, if you want the code, you can request it from us, we’re happy to give it over to you so that you can play with it yourself in your environment. And kind of teach yourself some things.

We have kind of a basic presentation, so just keep in mind there’s a lot of stuff you can do with this functionality, so don’t feel like what we have set up is your only option. There’s a lot of stuff online, you can go to the community portal website where you can find a lot of knowledge-based articles around how to do accomplish specific functionality and then I’ll also show you on doc.hyland.com how you can get to the original setup guide for what we’re going to be using.

And then after I go through my presentation feel free, or even while I’m giving my presentation, feel free to throw questions into Go-To-Webinar, and we’ll try to hit those.

One thing to keep in mind though is that any recommendations and advice we provide aren’t guaranteed. I’m kind of just working through this with you, and I’ll give you as much information as I have. I’m not going to know the answer to every single question right here, and we aren’t going to have enough time to cover every single thing, so just keep that in mind. This is really just supposed to be a jumping off point for you, so that you have a better idea of what you need to do to get this done. And then obviously if you do do this, be sure to test in your test environment, not in your production environment, but that should be pretty obvious.

Today for application plans, we’re going to be talking about the AppGetData functionality and we’ll be going through VB scripts. It’s not a huge presentation, we’re just talking about AppGetData, to try to show you how we can get around using the old AppGet tree, but that’s essentially what we’re covering.

Let me flip out of my PowerPoint here, and I’m going to jump into our test environment where I’ve got this started. Actually, I’m sorry, I’m going to go first to the documentation. When it comes to the functionality that we’re talking about, technically Hyland does not have documentation around how to build this out generically. They have it only the documentation specifically around Ellucian. We’re just going to use that, because it is functional with other systems, so I’m just going to show you how to get the documentation to give you the jumping off point, and then we’ll kind of edit that code, or I’ll show you what I’ve done to edit the code for us to make it work with Lawson, because I’m going to be using it with Lawson for the example.

Docs.hyland.com will bring you to this page where we have a whole bunch of different documentation for different Hyland products. Generally, if I’m working on something and I need to find documentation around something, this is going to be the first post that I come to. You can try to find exactly what you’re looking through, through the huge list, but I know what I’m looking for, so I’m just going to search for it from the search bar. AppGet tree. And just putting in my AppGet tree in search, pulls up my search results for this Ellucian form mode that we’re going to open up. And again, even though it says Ellucian, we’re just going to pull what we need from this so that we can edit it.

This documents pretty big, go through a lot of different stuff here, but in the table of contents I see this AppGet tree option, so I’m just going to jump straight down to that. Get through some of the fluff here. And you can see on this page, I have my script template. This is what I start out with. If I am doing this from scratch and I want to create an application plan that’s going to utilize this new functionality, I’m going to take this script template that they have and copy it directly out of this document so that I can build off of this.

Now, one thing to note is there’s a lot of stuff set up in here that’s going to point to stuff that we are not actually using, like for example these highlighted search values are things that I can trim out. I’m not necessarily wanting to link to this parent node or anything like that. So, this does take a little bit of effort on your end to try to get to work the way that you need it to, so don’t just drop this in expecting it to work right away.

You can also see down at the bottom, they’re assigning specific fields, specific values to these different fields, and these fields aren’t necessarily what we’re going to be using in the application plan. Just use this as your starting point, and then edit it from there.

I just to speed this up a little bit, I’ve taken all of this code out already, and kind of put together my own set up. This is my script that I put together to work with my application plan that I have in the test environment. I guess I’ll jump in, before I get too deep into this code, I’ll jump into the management console where I actually have that.

So just like any other application plan, like a traditional one that you might set up, you’re just going to create your normal learn mode application plan I have one here called AppGet tree invoice linking. I’m just using the viewpoint type. And inside of here just like you’re used to, you can set up your screen. This is the Lawson screen that I’ll be pulling from. You can see that I already have some data in here that I plan on using for my script.

I have my identifier in here with my wild card, just like you normally would. I can capture it if I just want to make sure that it’s pulling it in, which it looks like it’s not displaying correctly here, but it’s working. The nice thing about using this functionality is that a lot of the time when you guys are setting these up, you’re going to have to do some kind of pinning or if you have specific scripting that you want to add to each item, you would need to add them to your dictionary values individually.

With the VB script I can take my whole script for every single value, and just tie it to one, because when it runs for one, it will run for all of them. I have already set up my mapping, so if I had a true document that I was wanting to link this to I set up my vendor number, vendor name, invoice number, invoice amount, all based on my dictionary values on the left side here. For the script, all I did was I just tied it to invoice number. If I open up any of these, you’re going to see I don’t have any kind of processing script tied to any of my other values here. It’s only on invoice number right now.

There’s my AppGet tree script. If you needed add a new one, or you needed to create it from scratch, you can just click add script, and then click create and it will open up a new script for you to type in, then you can modify that to create your new script, but we don’t need to do that. Double click on this, open up AppGet tree.

Here is my code for that AppGet tree functionality. Everything that’s in here is essentially what I have built out inside of my Notepad++ here. And I wanted to put it in here, just because I know that this is kind of hard to read. It’s really kind of hard to read anyway, but it’s a little bit easier to see some of the stuff that I’m doing here.

So, one of the things that you’ll notice in the documentation if after we grabbed our script logic and everything we can go to the apply script section inside of that document. The apply script section is going to be what walks you through how to get this set up, because before we can grab our values, we need to grab the tree so that we see where our values are located. The tree, once we build that out is going to look a little bit like it used to using the older style. If anybody remember using ACC Explorer and having to map out every single node, and putting in your number, pipe, number, pipe, number, pipe over and over again just to get to your one field, this is essentially replacing that. You still sometimes have to do some counting, but it’s not near as complicated as having to use ACC Explorer.

Again, one thing to mention is this is written around using Banner 9, but the basic principles are the same. So, the first thing you’re going to hit when you’re working through this documentation is they’re going to be talking about this dev app tree here. The dev app tree inside of the script, which you can see in there. Let me just pull up Notepad++. Inside of my script I have my dev app tree, it’s commented out right now, because I don’t want to build the tree every single time.

But essentially what this is doing is if I uncomment this and run that application plan, it’s going to run this dev app function where it’s going to create my tree in a text file in a directory that I specify inside of that function so that I have something to look at to see where my values are actually located within the tree. The first thing that I’ll do is come in here to my code that’s actually running, and I’m going to uncomment that out. I don’t need to save this and run it or anything like that, I can just click test right here, and what it’s going to do it, it will pop up a notepad file that contains my entire tree.

I just click test, and it popped this up for me, which is the entire tree of my Lawson screen here. If you close out of this by accident or lose it, that’s fine, because it’s still saving that file to whichever directory you set it to, so if I wanted to open it in Notepad++ or something to make it a little bit easier for me to look at I can do that. And you can always re run it. If you lose it for some reason, just rerun it and it will [inaudible 00:14:09].

In my application plan, I’m wanting to pull invoice number, vendor number, vendor name and invoice amount. So, if I look on the Lawson screen you can see I have my invoice number, my vendor number, my vendor name, and my invoice amount here. So, these are going to be the values that I’m looking for inside of that tree. The easiest thing to do, is if I already know what it is, do I know my vendor number, or I know my invoice number is invoice 123456. Just going to copy that out, take a look inside of here for invoice number 123456. When I search, I can see that number inside of the tree here.

Now it’s just a matter of how do I actually get to this number. Inside of my code I have these split functions where I’m basically splitting out all of my nodes into an array. Inside of this logic right here, I’m just looping one by one through each node trying to find an identifier an anchor that I’m connecting to. This is going to be different for every single system that you’re trying to apply this to.

For me, when I was taking a look at my output, let me just get it over here so I don’t have to keep jumping back and forth. What would be nice is if Lawson made it so that inside of the tree I had an easy identifier like invoice number right here. That would make it a lot easier to just anchor off specifically this field to know that’s exactly where I need to be, but it’s not like that.

So, we’ve got to figure out how to actually get down here. I can’t just do the text brackets, because I have text brackets all over the place. So, if I tried to do that, I’m not going to pull a value at all, or pull the wrong value. What I want to do is try to find something that’s unique that I can anchor off of to count down from. If I move backwards in this list, I hit this labor buyer code. Labor buyer code is what I’m using pretty much for all of these, because you can see I’ve got my invoice number, my vendor number, pretty much everything that I’m looking for is underneath buyer code in this same kind of area. When I’m setting up my code, let me move this over. If I am trying to get vendor number, which is this 100004 number, I’m saying let’s anchor off of label buyer code. Label buyer code, and I’m moving down two lines, so one, two.

Just putting in the line plus two inside of this logic right here is going to automatically move it down to pull this information. The problem is that we can’t just do that. See this get name two function that I have here? If I didn’t have this, and I was just trying to pull that node, I’m going to pull more information than I need, because it’s going to pull that whole line. I basically have to create a function that trims that up for me.

The original script that’s in the documentation, they use this get name function. If you look in my script, I’m still using that original get name function for vendor name, but I’ll explain the differences here in just a second. If I look at get name, the original get name function that was in the banner software, you can see what they’re trying to do is pull the value in between brackets. So, my value is not in between brackets here, so it’s not going to find the right value if I try to use this get name function.

I do have other values that are, which is kind of what I was getting at a minute ago. If I’m looking at, find my vendor name here. Right here. Inside of Lawson, my vendor name is A-H-C-A and I can see that in my tree here as bracket A-H-C-A. The reason it’s doing that is because it’s technically a label, it’s not a text field or anything like that.

This get name function, looking for the value in between the brackets will work for my vendor name, but for my invoice number it’s not going to work, because my invoice number is behind that arrow. So, I basically just copied this out. I copied this function, recreated it, gave it get name two instead of get name, and then I updated it so that it’s looking for whatever value is behind the arrow and then I’m ending my sub string at the length of what’s behind the arrow. So, this should get me this entire value right here.

I also added in some trims, and the only reason I did that was that I noticed on I believe it was vendor number here. Especially with Lawson, if anybody works with Lawson, Lawson likes to add in a lot of blanks spaces in the values. For my vendor number here, when I pulled it in using this get name function without this left trim right trim it would pull it in including these white spaces, which is not what I want to pull into the document. I just want the vendor number period.

So, I added in the left trim and the right trim just to clear out any additional spaces in front of or behind the number value that I’m wanting to capture.

After creating this second get name function so I can actually hit all of my values here, I essentially just go through and anything that isn’t in a bracket, which is essentially everything except for vendor name, I give it that function and I count out from my buyer code.

My vendor number is two behind buyer code, my invoice number is 15 behind buyer code and so on and forth, 2, 15, 31, 23. So that’s how I come to those numbers.

So, I already went through why we’re using the brackets on this guy, so that’s why I have the get name instead of get name two. Once I have all of this in, now it’s just a matter of testing it against what I have in Lawson to make sure that it’s actually pulling back in my fields in the application plan.

I’m going to jump back to the application plan here. I’m going to comment dev out, out so that we don’t generate that text file again. Going to click okay. Okay. And then I’m going to go ahead and hit test dictionary. So, if I hit this blue button, it’s just going to test the script that I have. And you can see in my columns for invoice number, I’m pulling back the correct invoice number, I’m pulling back the correct vendor number, vendor name, invoice amount. You can see that it only took .8 seconds to run that look up. It fixed a lot of our speed issues with the older version, because some of those were taking 15 seconds or more to pull back and it just got ridiculous with linking…so this definitely fixes those problems.

To give you another example, if we wanted to add in a new item, so let’s say that I wanted to pull in my vendor address here. To pull in vendor address, I’m going to do the exact same thing. I’m going to take this logic that I have where I’m looping through all of my notes here, I’ll take this logic, copy that out, put another one in, and the reason that I’m using…actually, let me show you it here. So yeah, it actually shows up right here. This is the same vendor address that was showing up inside of Lawson. The reason that I’m copying my vendor name functionality, instead of my invoice amount functionality, is because my vendor address is in between these brackets. So, this is another example of wanting to use get names instead of get names two.

So, for here, I’m still checking off of buyer code, because buyer code is still the anchor element that I’m taking a look at here. I’m going to update my value that I’m applying it to, because if I do this I need to add one more idem down here. My fields I guess one thing to mention too, is that my fields here, if I’m saying my field of invoice amount, this is linking back to those dictionary values that I’ve mapped out inside of the application plan. I still have my test window open. So, these values here inside of my dictionary.

So, the first thing I want to do is just add a new dictionary item called vendor address. Now I have that, I’ll take this guy right here, copy that and say vendor address here instead of invoice amount. And you can see that for each field I’m making it equal an item that I found inside of my loop here. I don’t want to do invoice amount, I’ve got to update this guy to match vendor address. So, I’ll just type vendor address.

So now that I’ve created this, my vendor address is going to equal my get name value for this node, and I’m tying it back to vendor address. However, I haven’t updated my count yet, so it’s still going to just pull back vendor name for vendor address. The easiest thing to do here is just fine one that’s close so the vendor name is on this 23, so this is where I’m pulling vendor name right here. So, I can just countdown from here. So, one, two, three, four, five, six.

This is what I had before I think. Okay, I updated some of these numbers. Yes, I did. Two, 15, 31, 23. 23, that is working, okay, 2, 15, 31, 23 so then 29 should be vendor address. Take my code here, drop that in. Click okay on it, okay. I did not…my global app. And you can see that I’ve now pulled in vendor address into that vendor address field.

This gives kind of the basic functionality of how this works. Again, if anybody has any questions, let us know in the question section inside of Go-To-Webinar. One thing to point out too, while anybody’s asking any questions is there’s a lot of functionality that you can add into this that we didn’t just for this easy demonstration. You can do anything that you could originally do in VB script you can do here. Just because I’m pulling the values in directly from my tree doesn’t mean that I can’t get creative with how to create the value inside of the application plan. For instance, let’s say that for the address. Let’s say that maybe all of my vendor addresses have some address one number and then a dash with some additional information, and maybe I just want to grab anything before that hyphen. You can add in the VB script any kind of data massaging that you want to inside of that application script.

So, if you want to pull out the trailing characters from your address and only grab that first value, you can throw that in the script as well. You can do whatever you want inside of that. This is just a basic example of how to grab those fields.

John:

So, we have a question. I wonder if you can do AppGet tree for more than screen. The person who asked that, could you clarify that question? Maybe walk through how we identify the screen in the script.

Michael Madsen:

Yeah. Okay. Just like if we’re looking at just the application plan where I’m doing my screen identifier for info, in for loss and basic invoice, I have to add that into the script as well. In this value, I’m doing my find window here, so it’s the exact same thing. I still have to send it to find the window that I’m trying to pull the data from. If you had multiple screens, I think you’d have to build additional application plans for those additional screens unless I suppose you could potentially put in VB script logic to loop through different windows, if you were trying to grab multiple values from different windows. Your script is going to get kind of complicated as you move forward with that. Again, anything you can do in VB script you can do inside of this.

John:

Can we build a new screen two? Yeah, I think we’re still not quite clear on what the question is there. We can certainly reach out after this to discuss a little further. Another question is does this solution apply to IE 11?

Michael Madsen:

Yeah, I mean IE 11, I generally built these out in Chrome, just because we have fewer issues with it. But IE 11 would have a tree, so you could set it up with IE 11.

John:

I think there’s something about…

Michael Madsen:

John’s taking a look. He thinks there something around 32-bit versus 64-bit that might be an issue. To kind of go back to that different screen item, what I was talking about is if we have in our visual codes here my find window for this specific window, you technically could create a new value H2 equals find window. Find window, and then add in whatever your next window is that you’re selecting from. The only thing is that you’d have to build your error handling around how it grabs it, because you can see right down under here, if your first window is built out, and it doesn’t return a value, it’s going to pop up this message box of window not found. So again, you could just clear that out. You just have to get creative with your code.

John:

Does not work on 32-bit.

Michael Madsen:

Does not, okay so it does not work on…

John:

In applications.

Michael Madsen:

…on 32-bit operating systems or applications.

John:

So that means no 32-bit Windows 7, which I think is the last operating system that would apply to.

Michael Madsen:

Edge, I’m not sure about Edge.

John:

It should work in Edge.

Michael Madsen:

Yeah, Edge would be…

John:

It should theoretically work on anything, because it’s using a Windows API.

Michael Madsen:

As far as the PeopleSoft question goes, someone asked if we could share the AppGet tree script for PeopleSoft. My test environment, the only thing that I have access to is Blossom, so that’s why I built it out with Blossom. I imagine that we potentially have some PeopleSoft code around for pulling the information. If I find it, if you want to send us an email or something asking for it, then we can reply to try to send you what we have, if we have something from PeopleSoft. It should be the same idea, you just build out the tree and then find your mapping inside of that tree, but if we have anything PeopleSoft specific, then we’ll definitely get it over to you.

John:

PeopleSoft suffers from the exact same problem as Lawson with that vendor name field where it’s a possibility that it’s a label, which is where we would typically [inaudible 00:33:41] scripts. So, script would be almost exactly the same, you would just change the mapping.

Michael Madsen:

Yeah, so what John’s talking about there is just where I had to add in these two different get name functions for the script inside of the label with brackets versus the actual text field value.

John:

Another request for PeopleSoft. If anybody wants to share their screen, we could take a stab at walking through building a PeopleSoft script. No promises on whether we can get through it. Do you have the minimum requirements in front of you or in the documentation?

Michael Madsen:

Let’s see. I’m not sure if it’s there. Let me check here…it does not look like it. At least not in this, maybe in…I doubt introduction. Yeah, it doesn’t look like there’s any minimum requirements.

John:

I think what about the top? Yeah, right there at the top, the very first page. You see how it says 7.1.5?

Michael Madsen:

Oh yeah, yeah.

John:

So, you do have to be on those versions to use this, or higher. Will App Tree work with NetSuite? I don’t know if we’ve seen that one.

Michael Madsen:

I’m not sure I have.

John:

It will work, if you just right click on a page…like go to Lawson real quick. Do the name source.

Michael Madsen:

It does not like F12 in this. Open source.

John:

Just click on channel one…

Michael Madsen:

Oh yeah.

John:

As long as you can see the values that you’re trying to get to inside of the page source, they should be in here somewhere, or maybe not the source, but it should be in here somewhere.

Michael Madsen:

I think it’s the source based on a table that you’re clicking on.

John:

Or am I thinking of dev tools.

Michael Madsen:

I think you’re thinking of dev tools. That’s what I was trying to get to…

John:

You should be able to see the code behind the page…

Michael Madsen:

Yeah, here it is.

John:

Somewhere in this tree are the values that we’re trying to get to. So basically, all the GetApp tree is going to pull down this structure in a little bit different way and allow us to get to the value via code. So as long as Net Suite has these exposed and they’re not framed inside of some sort of Flash or Java application, we should be able to get to them.

Michael Madsen:

Yup, and the nice thing about using Chrome is just what you’re seeing what I’m doing on the screen here, this just lets us know for sure that we’re going to be able to see this stuff. See how it’s highlighting that one when I get over in this section in the page source here. That’s how I know for sure that it’s going to show up in my tree.

John:

Next question, should we be using Window Walker or Viewpoint, or doesn’t matter?

Michael Madsen:

I normally use Viewpoint, but it doesn’t…

John:

Yeah, the only one I would say don’t use is Internet Explorer, because every time it loads it has a little overhead. Have you ever tried to get this to work with Blackbaud? I have not ever even heard of Blackbaud.

Michael Madsen:

I have not.

John:

Certainly, willing to try. Impressive solution, much appreciated.

Michael Madsen:

Well, thank you.

John:

Thanks Mike. Yeah, so if you have any other questions, feel free to throw them in there. Great questions so far.

Michael Madsen:

Again, if you want the code, just let us know, because I’ve already kind of gone through and cleaned up some of the extra stuff that’s that Ellucian code, any of the stuff that we didn’t need, like if we’re looking inside of here at our app tree information, there’s a lot of stuff in here that we do not need. I’m not searching based on any kind of rejects or basing off of finding the anchor automatically, I’m literally just typing it in and telling it exactly where to go. There’s a lot of functionality in here that I’m just not using that I pulled out, but I keep going back to this. You can get as creative as you want with it.

Another thing that we’ve run into is how I’m grabbing the trunks of the tree, so right here in this section you see my tree chunks or my AppGet tree and they’re passing in this parent element. In my code, I’ll pull up my Notepad++ here. In my code, I am not doing that. Where is it? Right here. In my code, I’m setting the tree trunks as the entire tree. I did not put in a parent element to base off of. The reason you might want to do that is sometimes it’s just easier to work with that way. If I’m taking a look at the tree that’s returned, let me move this back out to my other Notepad++ here. Pretty much anything inside of this tree that you see a plus in front of is considered that parent element.

Whereas I’m pulling everything in right here, I could just say I just want to pull in my basic invoice section, so that way it only returns the stuff, the nodes where I know specifically my values are located. These are all child element to that parent element.

If you do that, it can be a little bit easier just to find what you’re looking for, but it’s also a little finicky. So, depending on what version of browser you’re using or how you’re setting stuff up, it can be a little frustrating figuring out how to actually get that syntax perfectly right to get it pulled in. I tried for a little while to get it to work specifically only with this section, but it was not returning in my version for some reason, so I just got the whole tree.

If you have a lot of time to sit down with it and break it all out, you can really make it extremely efficient. I didn’t worry too much about it, because my values are returning at under a second anyway, so there just didn’t seem to be a point to do that. If you have a much larger application where that tree is huge and it does seem like it’s taking a little bit of time to loop through every single node value, you might want to add in that parent element so you can just grab the section you need.

John:

Another question is will we share the script?

Michael Madsen:

Yes. Maybe we should just email it.

John:

Yeah.

Michael Madsen:

…all the webinar attendees.

John:

When we send out the slide deck, I think we can attach it. Or maybe we can’t attach it, we’ll send out a download link. I don’t think most email takes too kindly to scripts being attached.

Michael Madsen:

Yeah, so when we send out the slides we’ll send the script along with it, either in the email or as a download link from Box or something like that.

John:

A couple notes just from our experience is that we have generally found that you should only need to build one script per browser, so we’re pretty often right now with the AppGet data you have to build one script per user even, this is a lot more robust. There are going to be differences between someone that uses Firefox and Chrome, but among users that are using Chrome it should only take one.

Michael Madsen:

Mm-hmm (affirmative), yeah, mainly because we can actually use that anchor down instead of manually putting in every single number in those pipes like we had to do with ACC Explorer. Now we actually have something that we can anchor onto it’s a lot easier to make it work with everybody’s system instead of having to manually go through and put in all those if statements, to go through every single possibility.

John:

Do you want to just try Internet Explorer real quick just to see if it pulls the tree down? I’m not 100% sure that Lawson will even load correctly in IE 11.

Michael Madsen:

I don’t think I’ve tried it.

John:

Okay. I guess try a different page, MSN or something. I don’t think it’s going to load.

Michael Madsen:

Try to get these out of here. There we go, okay. See if we actually capture it. All right. Script here. There it goes. Got to find where that was. Take dev out of there. It doesn’t seem like it’s liking it. Oh, there it goes. Yup, it did it.

So, since all I’m doing is just logging out the tree of the page, I don’t really need to change anything else in the script yet, obviously my values aren’t going to work using just the MSN page. But if all I’m wanting to do is log out the tree, I just uncomment this out, again put in my find window value, and it spit out my MSN tree here. So, it should work.

John:

In Edge I guess.

Michael Madsen:

Mm-hmm (affirmative).

John:

Just close out your IE.

Michael Madsen:

Edge is one…whoops. I don’t know if we have Edge on the server.

John:

I guess it’s too old, okay. Okay, well if there’s any other questions, feel free to submit them. I think we’re about ready to wrap up here. Anything else you want to cover?

Michael Madsen:

Yeah, I guess the only other thing would be, we went through how to put the script together, but skipped over how to set up the application plane period. This is all going to be the exact same as how you set up your normal application planes. The only difference is just how we’re applying the script to the field.

If you’re familiar with setting up application plans it’s going to be the same, it’s just going to be using this script instead of a different one. Setting that up in a workflow queue with the link and everything, all that’s still the same.

I think that’s pretty much it. All right, well thank you everybody for joining. We’ll send out the slides, and I’ll get my script added to that so everybody has a copy of my script. Don’t forget to go to docs.hyland.com to search for that AppGet tree documentation. That will help you out. There’s a lot of stuff in there that you don’t need, but it’s a nice place to go if you need to grab that template for the script to use that as a jumping off point.

John:

One last thing, if I understand, your script is based on the Hyland script, but you added/developed improved it.

Michael Madsen:

Yup. Yes, so just like…

John:

Mostly trimmed it down.

Michael Madsen:

Yeah, really I just kind of changed it. I just took out stuff that I wasn’t using, and then I added in a function to do an additional massage on some of my other values. The original function that was in there would have only pulled my values between brackets, so I just added in a second function that was a mirror image of that to pull my values after the arrow instead of inside of the brackets. So, it’s still pretty much the same script, I just took out anything I didn’t need and added in that extra massage step.

John:

Only scripting, so there’s a million ways to skin it.

Michael Madsen:

Yup, and you can add in whatever you want. It works with VB script, so whatever VB scripting you add in, it will work with. You can get pretty creative with it. All right, well thank you everybody, and we will get those sent out. I hope to see you in the next Office Hours, and don’t forget to check out our webinars. Thank you.

Want More Content?

Sign up and get access to all our new Knowledge Base content, including new and upcoming Webinars, Virtual User Groups, Product Demos, White Papers, & Case Studies.

[gravityform id=”4″ title=”false” description=”false” ajax=”false” /]

Follow us online for faster access to announcements, knowledge base updates, and upcoming events!

Entire Knowledge Base

All Products, Solutions, & Professional Services

Contact Us to Get Started

Don’t Just Take Our Word for it!

See What Our Clients Have to Say

Denver Health

“RPI brought in senior people that our folks related to and were able to work with easily. Their folks have been approachable, they listen to us, and they have been responsive to our questions – and when we see things we want to do a little differently, they have listened and figured out how to make it happen. “

Keith Thompson
Director of ERP Applications

Atlanta Public Schools

“Prior to RPI, we were really struggling with our HR technology. They brought in expertise to provide solutions to business problems, thought leadership for our long term strategic planning, and they help us make sure we are implementing new initiatives in an order that doesn’t create problems in the future. RPI has been a God-send. “

Skye Duckett
Chief Human Resources Officer

Nuvance Health

“We knew our Accounts Payable processes were unsustainable for our planned growth and RPI Consultants offered a blueprint for automating our most time-intensive workflow – invoice processing.”

Miles McIvor
Accounting Systems Manager

San Diego State University

“Our favorite outcome of the solution is the automation, which enables us to provide better service to our customers. Also, our consultant, Michael Madsen, was knowledgeable, easy to work with, patient, dependable and flexible with his schedule.”

Catherine Love
Associate Human Resources Director

Bon Secours Health System

“RPI has more than just knowledge, their consultants are personable leaders who will drive more efficient solutions. They challenged us to think outside the box and to believe that we could design a best-practice solution with minimal ongoing costs.”

Joel Stafford
Director of Accounts Payable

Lippert Components

“We understood we required a robust, customized solution. RPI not only had the product expertise, they listened to our needs to make sure the project was a success.”

Chris Tozier
Director of Information Technology

Bassett Medical Center

“Overall the project went really well, I’m very pleased with the outcome. I don’t think having any other consulting team on the project would have been able to provide us as much knowledge as RPI has been able to. “

Sue Pokorny
Manager of HRIS & Compensation

MD National Capital Park & Planning Commission

“Working with Anne Bwogi [RPI Project Manager] is fun. She keeps us grounded and makes sure we are thoroughly engaged. We have a name for her – the Annetrack. The Annetrack is on schedule so you better get on board.”

Derek Morgan
ERP Business Analyst

Aspirus

“Our relationship with RPI is great, they are like an extension of the Aspirus team. When we have a question, we reach out to them and get answers right away. If we have a big project, we bounce it off them immediately to get their ideas and ask for their expertise.”

Jen Underwood
Director of Supply Chain Informatics and Systems

Our People are the Difference

And Our Culture is Our Greatest Asset

A lot of people say it, we really mean it. We recruit good people. People who are great at what they do and fun to work with. We look for diverse strengths and abilities, a passion for excellent client service, and an entrepreneurial drive to get the job done.

We also practice what we preach and use the industry’s leading software to help manage our projects, engage with our client project teams, and enable our team to stay connected and collaborate. This open, team-based approach gives each customer and project the cumulative value of our entire team’s knowledge and experience.

The RPI Consultants Blog

News, Announcements, Celebrations, & Upcoming Events

News & Announcements

Go to Top