What is our primary use case?
We are using ActiveBatch to automate as many of our processes as we can, limiting the amount of time operators are running recurring jobs. Included in that is about 99.5 percent of our nightly cycles. We call a mixture of executables: SSIS jobs, SQL queries, and PowerShell scripts. We also call processes in both PeopleSoft and another third-party package software.
How has it helped my organization?
As an IT department, we do solutions for the entire business and control everything. Our nightly cycles affect everybody in the company, so we do have some jobs that we run in one department, then create output which goes to another department. Based on email distribution lists, we can let anybody in the company know when things run.
We don't really use ActiveBatch for sharing knowledge. It's more for sharing output. We have some processes that run SSRS reports that distribute links to many people across the organization all at once, so they all get the same data fed to them simultaneously.
The most complex process that we run is our nightly cycle, which is made up of about 230 individual jobs triggered based on other jobs completing or files showing up in the system. It integrates a mixture of executables, a third-party policy system called LifePRO, and PeopleSoft. With all the handshaking back and forth between the systems, it allows an operator to start a job at around eight o'clock at night. Then, at around two in the morning, the last job finish with very minimal interaction from the operator, who is more sitting there watching to see if a job fails or not.
The operator used to run a job for our nightly cycles and go off doing something, then they would come back to see if the job was finished. If it was, they would start the next job. With the operator's intervention, this entire process would run for around eight hours. We have managed to streamline that down, because we're no longer waiting for an operator to look for a job completion, to run in about five hours. This allows us to have one nighttime operator instead of two, so we have cut the number of staff at night in half.
Additionally, daytime jobs are what we are starting to focus on now to allow our daytime operators to basically sit there and watch different jobs run. We'll be retraining both the nighttime and daytime operators to do different jobs. For example, with our nighttime operator, while the job is running in the background, she doesn't have to do anything anymore. She has now been tasked with other systems, like upgrading servers, and doing other things that cannot be done when the majority of our staff are in the building. So, not only have we removed half of our nighttime staff, we have repurposed our one person whose there to do both jobs.
Internally, we ran a number of executables. Our operators used to run these jobs all manually and press buttons within our console. Now, all those processes are automated. The operator doesn't do anything. We have a number of reports that just get generated automatically throughout the course of the night or based on their own dependency. The operators used to have to wait for a specific job to finish before they could do all these pieces. Currently, those just automatically trigger on their own. In addition to that, with our financial system, PeopleSoft, we can call any job within it automatically. This is without our operators even opening up the PeopleSoft console. In our LifePRO policy system, we have about 150 jobs that we can call those automatically as well, including some daytime jobs that run processes every five minutes. Instead of having the operator sit there like Homer Simpson pressing a button, these jobs trigger automatically, ensuring that all the data is kept updated in real-time.
It is a system that calls other jobs. Therefore, it will return error codes from those other systems. If it's a job that is truly an ActiveBatch job and doing biomanipulation, it will return error codes. The logs associated with those error codes are usually pretty in-depth to let you know exactly what happened. This prevented problems from becoming fires. We have an email that goes out every day with a list of all the jobs that failed to ensure that we hit every single one and can take care any issues.
We have one job that runs every 30 minutes, handling batch input into our system. If one of those jobs fails, then it keeps the rest of them from working the rest of the day. Then, if one of those fails, the entire team that supports that is notified immediately, giving them the full amount of time to rectify the issue before the next time that process runs. In the past, when this was done manually, we would have to wait for someone to notice that there was an error and then find the right person to deal with it. Now, within 10 seconds, an email has been sent out saying, "There is an issue. Fix it."
For our nightly cycles, we have some cycles that will run from start to finish without a single error because it is controlling when jobs run. It does a lot of clean up before the system starts. Therefore, it knows where certain files are supposed to be and where they are. So, we don't have to worry about somebody clicking the wrong button; everything runs from start to finish.
What is most valuable?
We can control the runtime of files, based on timing, by a file showing up. They can be controlled by an email being sent into the system. We get error codes back. Therefore, we have one centralized location where we can see how jobs are running. We have the ability to notify end users when jobs are finished or if there are problems with jobs. It's a very robust system, which allows for a lot of different functionality.
The system is very easy to use. In a short amount of time, we trained a couple people who have been able to create jobs on their own. For the two people whom I have trained so far, I spent about an hour or two with them. They were able to start creating minor jobs themselves by looking at existing jobs. We gave them minor jobs to work on. Then, within a couple hours, they were able to create jobs and processes that work correctly.
A lot of our processes are jobs that we know run one job after another, along with a hierarchical system, e.g., once this one job finishes, it triggers these three. Then, as soon as those three are done, it triggers a fifth job. The scheduling of those in that format is very easy to do.
You can set up automated controls where as soon as one job finishes, then another one kicks off. You can put in constraints where a job won't start until other situations are met. It's very easy to use.
The console is very easy and flexible to use. Whenever we have come up with something that we wanted to try in ActiveBatch, we have managed to find a solution. When you're calling an application, you can call it through a batch job or script. You can also call the executable directly or through PowerShell. Depending on how it's running and how the security needs to pass through the system, there are many different ways to get the processes to work.
ActiveBatch provides a central automation hub for scheduling and monitoring, bringing everything together under a single pane of glass. There is a daily activity screen within ActiveBatch that shows you every job currently running. You can look in the past and future. I think you can set it all the way up to seven days in the future. So, if you have jobs scheduled to run on a timeframe, then those will show up. It will show everything that is on hold. You can limit it down to show only the stuff that has run in the last hour, if you are trying to deal with a specific problem. You can set the ranges, to say, "Okay, show me between 5:00 and 8:00 PM." It is very easy to use in that regard.
It handles a lot of different business-critical system for us. We have applications that our agents use out on the field which trigger other things that run in the office. Those run every five minutes looking for input to make sure that we can keep things running smoothly. Things that we would have needed to have the operators, or somebody, just running every couple of minutes, we have about a dozen of those run automatically looking for input to keep things running. It also allows our financial system to integrate with all our other systems without anybody having to do the work. Our whole nightly cycle is automated through this. We just did an inventory, and I think we have about 500 unique jobs that we run through ActiveBatch now. These are things that somebody would have had to run manually in the past.
You can keep history of run times, so you can start setting up SLAs on job performance. We have one job setup now where if that job takes more than 15 minutes to run, then it automatically aborts the job, sending an email saying, "This job needs to be looked at, as it's running past its run time."
The have done a pretty good job with the operator interface. There are a number of different screens which can be used to see what is going on. We have chosen the daily activity screen because it gives the most complete view of what's going on: what's finished, what's failed, and what's currently running.
The performance on ActiveBatch has been stellar.
What needs improvement?
There are some issues with this version and finding the jobs that it ran. If you're looking at 1,000 different jobs, it shows based on the execution time, not necessarily the run time. So, if there was a constraint waiting, you may be looking for it in the wrong time frame. Plus, with thousands of jobs showing up and the way it pages output jobs, sometimes you end up with multiple pages on the screen, then you have to go through to find the specific job you're looking for. On the opposite side, you can limit the daily activity screen to show only jobs that failed or jobs currently running, which will shrink that back down. However, we have operators who are looking at the whole nightly cycle to make sure everything is there and make sure nothing got blocked or was waiting. Sometimes, they have a hard time finding every item within the list.
Now, it integrates well with our other solutions. There were some issues initially with getting ActiveBatch to work, but once we found a solution that worked, it was easy to replicate. The initial issues were a mixture of the fact that very few people had done this type of work before, and partly the person we had working on it at the time. We're not sure exactly what the issue was. We actually reached out to ActiveBatch who helped us to get this to work.
It is a very complex application because the code we are trying to connect to was COBOL based and still dealt with INI files. So, we had to trick the system into thinking it was calling the system the exact same way. Once we did, everything worked fine, including getting the error messages back and being able to display them within ActiveBatch.
It was the connection between systems that became complex. Basically, we had to set about a dozen environment variables within a script in ActiveBatch. So, when we called the outside application, all those variables were set and we could understood what it was trying to do. The complexity was on the actual calling of the third-party application. It was not from the ActiveBatch side.
You have to be careful with automation tools. We had one job where the person who initially programmed it created an infinite loop, so it kept triggering itself. It ran for less than a second, so we couldn't stop it.
For how long have I used the solution?
The company has been using ActiveBatch for about five or six years. I have been using it for about three years.
What do I think about the stability of the solution?
Stability-wise, there is only one function that we have had trouble with. We haven't even reached out to ActiveBatch to try and figure it out because we're trying to figure out what is causing it. There is one DLL within the system that gets the current date, but will just stop working from time to time. The rest of the system is very stable. On occasion, we will have to reboot a server to release some locks on things, but that's once a month where we have to do anything like that.
I maintain all the jobs in production. There is nothing out of the ordinary that needs to be done. It does its own self-cleanup. It also deletes history periodically on its own.
What do I think about the scalability of the solution?
We started with just a few jobs and are right now up to 500 jobs that we run. When adding new things, it allows you to put everything in its own folders, so you can keep track of different parts. You can flag them as part of different systems, if you want. As we have added more things, we have seen no degradation in the performance.
We use it more as an automation tool, so it is just running jobs. In terms of people who go into ActiveBatch to look at it, we have our two daily operators who go in and look how things are running. We do have some jobs that they go in and trigger, because we're still automating the actual execution of these jobs, but they're all still controlled from ActiveBatch. We have a number of programmers, probably about a dozen, who will go into ActiveBatch. Some will tinker around with creating jobs that they need in our test system. Some will go into production to see how their jobs ran, if they're supporting the system. They can go in and see what the end result was, if it came back successful, had a warning, or an error. They can look at the logs to see what the problem was, allowing them to fix the process themselves.
Right now, we don't have any end users going into the system directly. We're building them a web interface front-end where they will be able to trigger specific jobs, so they can see the jobs that they can control. We have it setup through the ActiveBatch API so it returns the results to that web interface of how the job ran the previous time and when it ran last.
Our nightly cycle is 99.5 percent automated right now. We're finishing up the last few pieces of that. We have started looking at all of our daytime operator jobs. Those are being worked on next. All of our reports sent out to users on a daily basis are all automated within ActiveBatch to be triggered at specific times and sent out. The next piece that we will be working on is giving our programmers the ability to bring up Azure sites as needed, then we will be starting to add in all of our FTP jobs into ActiveBatch as well.
How are customer service and technical support?
In the past, we haven't used their technical support that much. The few times that I have called and asked them questions, they have been very easy to work with and get the answers from. They are in the process of changing their whole structure on how they support their clients, along with having their pricing structures change.
They are trying to make the system more user-friendly from the support side, so you can go and look for the information yourself as opposed to trying to call someone.
Which solution did I use previously and why did I switch?
Previously, we have only used some scheduling through Microsoft Schedulers and SSRS schedulers.
How was the initial setup?
I was not involved for the initial setup. Though, the installation of ActiveBatch was straightforward.
I was involved the last time that we did an upgrade. Everything was straightforward. Moving the jobs from one version to the next was relatively straightforward. The initial application that they picked to interface with was one of our more complex ones. That may have been why the person who was doing the program initially had an issue, because nobody had done this before with this type of system.
There are a lot of APIs for packages that you can get with ActiveBatch for doing connections. We don't use a lot of their integration tools, though it does integrate with a lot of different ones. The one we do use right now is PeopleSoft. The issues with the integration of PeopleSoft have been more on the PeopleSoft side, not the ActiveBatch side. We had to reconfigure how we had PeopleSoft setup, so it would allow outside applications to communicate into it.
Once we decided to do the installation, I think it was done in the course of a day over a weekend.
What about the implementation team?
We did the installation ourselves. It was done by our systems department. One of my coworkers did all the work. She installed the new system and exported everything out of the old version into the new one. On top of that, we broke one system into two, because we used to have our model and production on one server. In the course of upgrading to version 12, we put our test and production systems on different servers.
What was our ROI?
Since we are no longer waiting for an operator to see that a job is finished, we have changed our daily cycle from running in eight hours down to about five. We had a third shift-operator retire and that position was never refilled.
The person who used to run all these jobs now just watches the system run. She is doing other stuff while she is working. On top of that, with the pandemic, we have managed to be able to allow our second shift operator to run everything remotely from home. They don't even have to be in the building anymore to run our cycles.
The central automation hub for scheduling and monitoring brings everything together under a single pane of glass by streamlining everything:
- It takes less time to run everything.
- It's less expensive because we no longer have the extra operator running jobs.
- There is less chance of an operator clicking the wrong button because we run both a test system and production system side by side. In the past, where they might have run the job in the wrong system, this makes sure that the correct system is running the right jobs.
- It automatically will send an output where it needs to go in real-time. We have management reports that used to have to be run by an operator. Now, if management comes in early, the report is there just waiting for them.
What's my experience with pricing, setup cost, and licensing?
Make sure that the pricing is in the contract.
ActiveBatch is currently redesigning themselves. In the past, they were a low cost solution for automation. They had a nice tool that was very inexpensive. With their five-year plan, they will be more enhancement-driven, so they're trying to improve their software, customer service, and the way that their customers get information from them. In doing that, they're raising the price of their base system. They changed from one pricing model to another, which has caused some friction between ActiveBatch and us. We're working through that right now with them. That's one of the reasons why we're why we were evaluating other software packages. For the time being, we are staying with ActiveBatch because we like it the best of the four.
Up until now, if you wanted to do a training class through them or go into some of their deep dives, you needed to pay additionally for that. The new way that they are doing their structured agreements has that all part of the contract. Now that we will be paying for it, we will be looking at their deep dives a lot more and seeing the stuff that they have done in the past.
Which other solutions did I evaluate?
It is the only automation tool that we're using. We are actually moving items from other automation tools that we have into this, so we have one central location where everything is automated. In the past, we have used some of our Microsoft Servers' scheduling tools and SQL Servers to automate the distribution of reports. Now, we are moving everything into one place so it's all controlled centrally. Then, you can look in one place to see where everything is.
We have looked at a few different solutions in this past six months to see if they offer that same type of functionality and evaluated three other ones, which are very similar. I like ActiveBatch the best among the four solutions. The other tools seemed to not have the file manipulation tasks, and kept saying, "Well, you can do that in Doc." I thought, "That's okay. Welcome to the eighties." They basically said, "We don't have any filing manipulation tools built in because you can do that other ways." However, we're trying to put everything in one place. There is a lot of archiving of files that we do based on different criteria. For example, there was one job that we wrote which looks at the size of an Access database. When the size of the file gets too large, it notifies that team, saying, "You need to go delete data out of it." Those kinds of things were not available within other solutions.
What other advice do I have?
I would recommend reaching out to a client who has used it, especially if you have questions. While talking with customer support is great, people who use it on the build have better knowledge of how to use it in the business area.
We haven't used any of the APIs directly through ActiveBatch yet. We have started playing around with having our own little outside website which allows our end users to trigger jobs directly within ActiveBatch. But, we have not fully implemented that yet.
We have started looking at cloud solutions for bringing Azure sites up and down. We have not implemented that yet.
I would rate this solution as a nine out of 10.
Which deployment model are you using for this solution?
On-premises
Disclosure: PeerSpot contacted the reviewer to collect the review and to validate authenticity. The reviewer was referred by the vendor, but the review is not subject to editing or approval by the vendor.
One of the best software to use for automating your work without any need for scripts. I have been coding in Python and I struggle to automate the test cases for it. But I felt this app is much easier to use and very helpful for beginners as well to learn this tool directly as this will be the future and easy way to automate things. I'm able to deliver faster, track my workload, and monitor my routines.