Jump to content

Automate Sales Software


Recommended Posts

I currently work as a PC tech for a small business in my area. The business has recently bought software to print invoices and manage stock. Unfortunately, it turned out that the sales team, which is now required to type invoices in the field instead of write them, is having a difficult time adapting to the software. The software itself is not intuitive either, and it's easy to lose sale opportunities with the time it takes to navigate and type in all the information. On top of that, some input fields that do not change during the day are not saved from one form to the other and have to be retyped each time, increasing frustration.

Switching to another solution is not possible in the short term because of the lack of alternatives (we're not in the US so the options are fewer) and funding, and our feature requests may take time to implement. I remembered that back in the day I used to play with AutoIt and thought it might come in handy.

I've been thinking of using AutoIt GUI to create a small form which meets our workflow needs. The sales rep will open the invoice screen and press a hotkey to bring up this form. After quickly filling it out and pressing Enter, the script will take over and populate the invoice screen with necessary data.

I see there are several ways to interact with Windows controls in AutoIt. Unfortunately, upon first glance it seems our software is built with PowerBuilder and uses custom controls all over the place, so sending a series of keystrokes the good old way may be the only way to go. Since that approach is not quite reliable, perhaps I could implement some validation by throwing a "copy" (CTRL+C) signal at certain input fields and compare the clipboard content with what it should be.

Of course, the script will have to be adapted for each new version of the software, but that should be easy enough. The primary objective is make things easier for the sales people.

How does this all sound?

Edited by yehuda
Link to comment
Share on other sites

Of course, the script will have to be adapted for each new version of the software, but that should be easy enough. The primary objective is make things easier for the sales people.

If this software is still being updated, my first action would be to contact the developers with a clear description of your problems with the software and a concept of what you think, might work better. (Perhaps even crete a dummy interface in AutoIt)

If they do not want to change their interface, request that they add a reliable way to bypass it. This could be done with a control that takes a single formatted string containing all the data required, the STDIN stream, temp files, or many other ways.

If you're not successfull with the above ideas, then your option might be the best way to go, however I would make sure to create a backup database of transactions, so when the input in the other software fails, you don't lose the information. (might be a problem with confidentiality and company rules though)

How does this all sound?

It sounds like a pain. Good luck.

In all seriousness though. Your idea of inputting the information using keystrokes and then doing a check to see if the information ended up in the expected controls might work ok. Preferably you'd use two different ways of going through the controls for inputting and verifying the input.

Link to comment
Share on other sites

It might also be an idea to automatically populate the fields that do not change each day. Wait until this window becomes active, then automatically populate the fields with settings from earlier that day. This will relieve some tension of using the program, and maybe it will be all you need.

And remember: "Simplicity is prerequisite for reliability".

Edited by Manadar
Link to comment
Share on other sites

It might also be an idea to automatically populate the fields that do not change each day. Wait until this window becomes active, then automatically populate the fields with settings from earlier that day. This will relieve some tension of using the program, and maybe it will be all you need.

That seems to be a very good idea to just make a bad situation a little better, while keeping reliability.

You could also just make a simple interface that will make the needed windows more accessible in a logical order. (Button 1 will attempt to open the window you typically need first, button two attempts to open the seconds etc.)

This way you're still entering the data directly into the used software which is probably more reliable than any form of automation using keystrokes/mouseclicks.

And remember: "Simplicity is prerequisite for reliability".

It's hard to keep solutions simple when the problem is needlessly complicated though, that's why I suggested to request a simpler interface for the software first.
Link to comment
Share on other sites

It's hard to keep solutions simple when the problem is needlessly complicated though, that's why I suggested to request a simpler interface for the software first.

You're correct when you suggested that. For all you know there is a development team on the other side who never hears anything from customers and have no idea that their software is crap (apart from some junior developers suspecting, but who can't do anything about that). : )
Link to comment
Share on other sites

Thanks very much for your helpful replies :)

@Tvern

The software is still supported and in development. I've raised our feature requests in phone calls with the support team, but now that you mentioned it, it may be a good idea to write a clear description of what we need. The emphasis should be we need improved usability rather than a bunch of particular changes. I can send it to the devs, and perhaps meet up with them too.

If they do not want to change their interface, request that they add a reliable way to bypass it. This could be done with a control that takes a single formatted string containing all the data required, the STDIN stream, temp files, or many other ways.

I noticed the software forms are internally associated with templates, and you can create new forms. Maybe we can have a custom template built for us that we'll use instead of the regular one.

@Manadar

Changing only specific fields is not possible because of the way the app is built (one dialog affects another). I need to go "all out".

Link to comment
Share on other sites

Changing only specific fields is not possible because of the way the app is built (one dialog affects another). I need to go "all out".

You can selectively fill specific fields in specific forms. If you only want to fill fields in a particular window, while not in another. That is possible. If you say that the sales department have problems with filling in "default" values, then those can be set. After all, if a human can do it, then AutoIt can do it.

It does not matter that one form affects another.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...