RPI has been consulting on Perceptive Content so long we remember when it was Lexmark Enterprise Software, and ImageNow before that. In that time, we’ve seen a lot of solutions using iScripts and eForms – some that were really creative and great (and some not so great).
Either way, these custom development solutions can automate many manual processes and tasks, making your Perceptive Content solution more effective for end users and your IT department.
In this webinar, Senior Solutions Architect Alex Lindsey and Lead Consultant Michael Madsen will share some of our favorite – and not so favorite – Perceptive iScripts and eForms.
Hello everyone and welcome to another Webinar Wednesday. Today we’ll be talking about iScripts and eForms. Before we get started, a few housekeeping items. This webinar will be recorded and will be posted to our website and on YouTube, and the deck will be available later this week. You can view this recording and all of our previous recorded webinars on www.rpic.com/webinars, then you can also please submit ideas for other webinars you’d like to see. We’re always apt to get those.
So we have another upcoming webinar today. Oh no, I’m sorry, these are for the December 5th webinars. We have AP automation with Kofax TotalAgility, Lawson APIA at 11:00 a.m. and then content management with Infor Lawson at 1:00 p.m. central.
Sure thing. To introduce ourselves a little bit before we start talking about the iScripts and eForm solutions, my name is Alex Lindsey. I’m a Senior Solution Architect with RPI Consultants. I’ve been working with the Perceptive Suite for quite a long time as well as some of the supplementary OCR technologies that go with it, specializing in just weird solutions and accounts payable mostly. I’m also a novice axe thrower.
And hello, my name is Michael Madsen. I’m a Lead Consultant at RPI. I have extensive experience scoping and designing custom solutions for the higher education space, accounts payable and also manufacturing. I am a bad movie connoisseur. Oh, hi Mark.
Yes. So a little bit on the agenda today, we’re going to start out by talking about ourselves again. We’re going to jump right into kind of an overview of what Perceptive Content iScripts and eForms is, we’ll cover a few creative solutions for use you can use iScripts to help your solutions out, and we’ll cover some more of the non-standard eForm solutions that you might see, and then we’ll open up for questions.
A little bit on RPI Consultants, we are a services firm. We have over 80 full time consultants, project managers, technical resources, people that are much smarter than myself working across several offices in Baltimore, Tampa, and right here in Kansas City. We offer a range of services from design work, to managed services, basically run the gamut of what you need to do for your software suite. The softwares that we do work with and we are partnered with are Kofax, Infor, and Hyland as well.
So what we’re going to start with if Perceptive Content iScripts, and then what we’ll do is move over to the eForms overview.
Some general uses for iScripts would just be like automated routing, external lookups and queries. So if you want a query against an ERP database or an external source, we can set that up inside of iScript. Custom data manipulation, so if we had a date field on a form and we wanted to put together a standard format for that field, we could utilize custom data manipulation for that to massage the value to make it look how we want it to look.
Also, automated notifications. A lot of people have clerks that put together emails and send them out. That’s a lot of stuff that we can automate. We don’t need people to type out these emails every single time, so you can create iScripts that send out these notifications so you don’t have to write them. Finally, one thing to note about iScripts is that there is a vast library, it’s called the STL. This is the library that Perceptive has put together for us to use with iScripts, so there are a lot of functions that are already available for us to use. We just need to tap into the STL to add into our script.
Perceptive eForms is just a general overview. Some of you may have eForms already within your Perceptive Solutions, but essentially it is a user interface that allows you to store additional metadata to do look ups, to do validations, the most common one for a lot of your customers is the APE form, which we’ll touch on in a little bit. With any eForm, whether it’s a standard or product eForm, we can add a lot of just general customizations to it, or validations essentially, like Mike was mentioning field validation is required, character length, things like that.
It’s great for lookups. That what we generally use eForm data for. If you have a workflow solution or a workflow process that’s in place or not in place right now, you can basically use an eForm to store metadata or have users input certain things to basically process them through. Again, they’ll do look ups just like iScripts do.
There are several ways to deploy forms. There’s basically custom forms, there’s also product forms. But custom eForms that can be built within the Perceptive Suite to store data, these can be as basic or complex as you need them to be. You can have buttons that can do certain things, or trigger other actions and things like that. There’s also Forms Server and Yoga Forms. Forms Server and Yoga Forms, they’re slightly similar. But essentially, if you have a submission process in place, there’s a site set up where your users can kick off a process, input the data, attach documents, supporting documents and then push that into Perceptive to basically kick off a workflow process, or just archive it and store it.
What we’re going to go start with is some Creative Solutions Using Perceptive iScript. If we talk about iScript, we can talk about iScript all day long. We thought the best way to approach this would just be to go into a few solutions that we put together using iScript for some of our customers.
The first example is an accrual report merge. The problem that a customer had was they were generating an accrual report inside of Perceptive content, but then also creating their own manual report through a different process outside of content. Some of the data may be similar, but they’re also pulled from different areas, so they wanted a way to merge these reports together so that they had a complete report that showed their true accrual. What we did to do that was we can utilize CLIB, the CLIB library inside of iScript, to read the CSV files that they were generating through these reports.
When we read those reports into iScript, we can then loop through the lines on each of those reports to compare the lines to each other. If we find duplicates, then we wipe that out. Then we take all of the unique lines, loop through every item inside of the unique line, and then match the company value to determine totals at the end because another thing that they wanted to add to that report was a summary total list at the bottom of the report. So using those functions, we’re able to generate our final report.
That’s extremely important for accruals, especially if you’re monitoring specific accounts. If you had a corporate account that you know can’t go over a certain threshold, you can add that total to the bottom and you kind of keep a closer eye on the accounts that you’re charging your invoices against.
Another example is tax form imports. We have a customer who would generate their tax forms in a batch, so they would get one single PDF that was a multi-page PDF. But each page was dedicated to an individual employee. What we needed to do was split those PDFs out so that we could actually link them into the employee folder. Keep in mind that when you’re working with iScript, you aren’t barred to just using iScript. You can really think out of the box and do things outside of iScript before it hits the script.
In this example, what we did is we actually utilized Ghostscript as its own process before hitting the iScript. We can use Ghostscript to not only split out the PDF pages into their own files, but we can even create text files that contain the data within that PDF that we can read through using iScript. So essentially what we did is we split those out, created an index file to go along with the individual pages, and then through iScript we can use regex to try to find the format that matches the social security number within that text file. Once we find that social security number, we know that that PDF links to the employee folder that’s found in Perceptive because they store the social security number on the folder. So if the social security numbers match, we know that that form can go directly into the employee folder.
Another common problem for a lot of our clients could be auditing. Whether it’s a standard audit, or emergency audit, anything like that, but basically you would like to give your auditors documents that are stored within the Perceptive system, but you don’t necessarily want to give them access. So if they need to review a bunch of contracts that you have, and they’re stored within Perceptive, then you need a way to get them out.
One thing you could do is basically use an iScript to basically look at a specific view. This is the easiest way to do it essentially, where you create an iScript view within Perceptive Content. So document view, and you could call it whatever you want, and then just limit it to the results that you’d like returned for those documents. The iScript hits that view, decides which documents to pull, and basically exports that out. This can be batched into whatever format you like, so however the auditors are asking for it, or whatever you agreed upon, you can batch all of those documents together into a zip or however you need to deliver. Or electronically to an FTP if you’d like.
Along with that, similar to what Mike said, you can get basically an index file associated with it too. We can rename the documents so that they’re relevant, so Contract A, Contract B, or there can be kind of a reference index document that goes along with it. This would typically be run via a BAT file, so basically a batch job to kick this script off. The way we would build it would basically make it more configurable for the end user so if you have to do this again or replicate this process for maybe a different document type, we basically set it up that way.
Yeah, and one thing to note too is that part of that view search that we’re doing inside of that script is one of those STL functions, so I don’t actually have to manually build out this function that will utilize content to run my document view. I can just go into the STL library, find the function I want to use, pull it in and link it to my iScript and I’m done.
Right. And kind of the last piece when it comes to iScripts, the last example anyway, is around approvals. A lot of our clients that have accounts payable solutions also have approvals in place. Sometimes that’s workflow based, or task based approvals within Perceptive content. But the big thing is, if you’re doing approvals, sometimes they can get stuck. You may not have an escalation or a notification process in place that really fits your needs. I know the accounts payable solution has a standard script that was probably deployed for a lot of your solutions, but what we’ve been finding a lot lately with a lot of our client is that it just doesn’t quite do the trick.
This is an example of an approval escalation script that I’ve worked on that was catered to this specific client, to get the invoice moving through the process. If it was taking weeks, and weeks, and weeks to get an invoice through the system approved and pushed into their ERP, this escalation process was deployed to essentially help them and encourage with maybe some heavy handed language a little bit, to get them moving, to actually take it seriously to approve their invoices.
So this example essentially said an invoice gets a task assigned to it to basically go through approvals. It gets assigned to a person, they get a standard notification for three days. This would be something like, “Hey you have an invoice that you need to approve. Please complete this task or return it.” On the fourth day though, actually, so this is a pretty quick turnaround, an elevated email gets sent out. It’s an email with different language that we’ve configured to say, “Hey, you really need to pay attention to this,” and it’s sent to the original approver and they also copy the next level approver or manager.
Day five, if they didn’t respond on day four, it automatically gets escalated to the next person with specific language to that person. So it’s not just a recurring, it gives great insight to the end users like where this invoice is. This day five, when they get it, if I’m someone’s manager and I get this email that says, “Hey, you’re getting this. You have to approve it because the person below you,” or the person downstream, “didn’t approve it.” So it kind of creates some oversight and some thought processes for them.
Day six through nine, the same standard three day notification with specific language. If that’s not approved by then, at day 10 it actually gets removed from workflow, sent back to AP, and they are then notified that, “Hey, we waited 10 days. This person just sat on it. It even got escalated, and it still didn’t get approved. You need to go take some action to kind of move this invoice along.”
And to expand a little bit on just the notifications in general, the nice thing about iScript is that because we can regex, we can create an entire list of different kinds of email bodies that we may want to use in our notifications. Inside of those email bodies we can put in certain codes, or whatever we’re going to use when we search using regex for those values that we want to replace. So I have say bracket invoice number literally in my email body, I can use regex to search for bracket invoice number later in my iScript to replace invoice number with the true invoice number on the document. The emails that go out, you can set up either as plain text or HTML so we can even embed URL links and everything inside of the email.
Right. It really enables them to see kind of what they’re opening.
Switching gears here, over to eForms, the AP eForm, which a lot of our clients are very familiar with, this is just an overview. It allows you to store header and line details for your invoice data. Is it great if you have a front end OCR technology like a Brainware or a Kofax to basically get those values extracted and then mapped over. That’s great. But the APE form is actually a little bit customizable. It is a box, but it’s a flexible box, essentially. So you can add additional fields or validations if you’d like to, or additional look ups in certain places.
Obviously, a custom eForm you could do whatever you want. But with the APE form, you also have your built in validations, your duplicate check, your required fields, your GL account strings, so when you are coding a non-PO invoice and you’re entering the GL data for the accounts that you need to charge against, it’s going to check against your host ERP, your accounting system essentially, and that be done via an ODBC connection or web API. To basically see if that’s a valid account stream. It is very workflow centric, meaning that it is part of a process. You don’t necessarily just have a form that’s just sitting there, the APE form anyway. It’s usually embedded with a process, a review process and approval process, and things like that.
In this example, this is the wire transfer form. We actually had a client who was utilizing the out of the box product APE form, so they did not have a custom form. But the APE product form wasn’t doing quite exactly what they needed. So in this scenario they had foreign companies where they occasionally needed to send wires out, and they needed a way to record those. So one requirement from them was that because their AP team was so used to using the product APE form, they wanted this wire transfer form to look and feel as close to the product form as possible. This is just a little section of the wire transfer form, but the rest of it looks exactly like the product APE form.
What we’ve done here really is just given them an area where they can enter their wire transfer information, and another area where they can enter their beneficiary information. Now this can be a lot of information to type in, especially if we’re doing a bunch of different addresses, names, account numbers, stuff like that. So what we wanted to do was in scenarios where we may have a wire that goes out to the same person every single time, we want to store that in a database. So we actually created a custom table where we can store the beneficiary information linking to the vendor that they’re paying.
So when they open up the wire transfer form, once the vendor’s in place, they can just click import template, and it imports all of the beneficiary information from the data base and doesn’t require them to actually fill it out.
Another good example is expense forms. We’ve all probably logged expenses in some place. We have clients that are using Perceptive content do to their expense reporting. So you can do this a number of different ways. Typically, since it is a submission process, you could use Yoga Forms or Forms Server to essentially fill out your details, add an expense. This was air fare. And you can basically select static values. These can be from look ups essentially, but your coding for expenses typically don’t change that much, but we can reference an ERP or a static lookup or anything like that to basically get that air fare expense cost, or what does this actually need to be charged to.
That could be done within Perceptive Workflow or it can be done on the front end when you’re using Yoga Forms or Forms Service. You can also attach receipts along with this well, but essentially it just gives the user the ability to basically manage their expense reporting when they’re actually trying to get reimbursed. This, again, can be kind of integrated with your ERP and however you need to post this information, and make sure that they get paid or reimbursed.
So we’ve been talking about a lot of forms that kind of link into an account payable process, but try to keep in mind that you can use the form for just about anything. If you have a certain form type that you fill out over and over, and over again, we can create those forms so that you don’t have to actually write them out or scan them in. So in this example, we have employee onboarding. This example is actually using Yoga Forms. This is a product that we can utilize to actually make it really easy for you to build forms on the fly. This is what it looks like. In our employee onboarding form, you can go into Yoga Forms and add or remove field however you want. These can be accessed through a URL and submitted through a URL directly to Perceptive content, so we can actually send it into specific workflow queues, and it’ll read in as its own document type.
In summary, that is kind of an overview of some iScripts and eForm examples that we work with pretty commonly, and we’ve also come up with creative solutions to kind of help our clients manage their solutions that they have. If you’re interested in any of these service, we do offer solution health checks where someone will come on site for just two days typically, not a big commitment there, review your solution, come up with maybe some recommendations or some low hanging fruit that we can fix on the fly. If you have any ideas for new iScripts or eForm developments, or enhancements to your existing stuff, then we’d be happy to talk to you about that as well. If you have any questions, now is the time to put them in the go to webinar.
All right, here’s our first question: Have you done anything with eForm saving data directly to a database? For an example, a survey form that may have paragraphs of data after the form is submitted. The end user would like to run a report on the form field data.
Yep, so just like we were talking about a little bit with the wire transfer form, that wire transfer form we’re having them enter the disbursement information directly on the form and then along with being able to import the information, there is also a save template button on the form. So when we save the template, that’s when we’re doing our insert into our custom table to apply that data there.
Then for reporting purposes, you could do a number of different things. You could run a script that pulls this information and it gives you some kind of output. There’s also Yoga Dashboard, which we’ve talked about too. So if you’d like an actual HTML website where you could actually pull this information and run it, you could do that as well.
Yeah, Alex brings up a good point. Try to remember too with iScript that a lot of the time people view the index keys and custom properties as the only things that you can access in a document and image now. But with iScript we can get every single node on the form, so as long as we can map out the form page, we can grab those values. In some scenarios, you may not even need to put these in a database. You may just need to run a view to pull back the documents you want to look at and then just grab the data directly from the form.
Alright, I think that’s it.
All right. Thank you guys so much for joining. We encourage you to sign up for our next round of webinars. We have a few additional resources or knowledge base. If you want to check out more about Yoga, which we’ve mentioned a couple of times, you can go to this site and then we also can register for our additional webinars.
Thank you guys so much.