Stephen Smith's Blog

Musings on Machine Learning…

Posts Tagged ‘sage 100 erp

Sage Mobile Sales

with 10 comments

Introduction

This is the third article in my series on Sage’s new Web and Mobile applications that were released at Sage Summit this year. Previously I blogged on our Sage Mobile Service iPhone Application and our Sage Billing and Payments Web Site.

For this article, I’m going to be looking at our new Sage Mobile Sales application. This application has two parts, an iPad native application for taking sales and a web site for managing inventory, customers and sales people.

This application enables sales people to show customers products right from a catalog on their iPad, they can review and edit customer information, they can create a quote and have it e-mailed to the customer, they can check product availability and they can enter an order and accept immediate payment.

Generally this application is best for salespeople working directly with clients to create a quote or order. It makes getting information on the items being sold easy as well as allows you to easily create the order.

The diagram below shows the mobile application interfaced to the Sage Data Cloud and the Sage Data Cloud connected to the on-premise ERP system to synchronize data. You can take credit card payments directly from the iPad or take orders on account. If you take the order on account then you can use the Sage Billing and Payments application to collect the money which is also shown connected to the Sage Data Cloud.

ERP-mobility-launch-graphic-ms

The iPad Application

The sales people will install this native iPad application onto their iPad from the Apple store. You can see the Apple store entry here. This application fully uses the capabilities of the iPad to make life as easy as possible for the sales people. Below is a screen shot of the customer list:

sms3

If you tap any of these customers then you will get more detailed information on that customer:

sms4

This includes their contact information as well as giving you their sales history.

Similarly you can get a list of inventory items and if you tap them you get detailed information on the item for sale:

sms5

Notice you see the price and the quantity available. You also get a number of photos of the item. You can immediately add it to a quote. You also see links to similar items.

The application is written in Objective-C and developed using Apple’s XCode integrated environment. Note that this application requires at least iOS 6, which means you need at least an iPad 2. If you need to be truly mobile, then you would need the cellular version of the iPad (rather than the Wi-Fi only one) and a mobile data plan.

The Web Application

You use the web application to manage your inventory, customers and sales people. The initial data is uploaded from your on-premise ERP system, but there is some additional data that you would want to add to make this a better experience. Further this is a good portal to get information on how your sales are going and how your sales people are doing.

Below is a screen shot of the inventory list screen:

sms1

From here you click on an inventory item to get more detailed information:

sms2

Here you do things like setup related items or add the item to a category (which makes browsing them on the iPad much quicker). You can also add more photos for the item. Generally these should be produced professionally and not just taken with your iPad camera.

For the Team, tab you can manage your sales team, set quotas and see how your sales people are performing against their quotas.

Connected to ERP

Like the other two mobile/web applications I blogged about, this one uses the Sage Data Cloud and will work with any ERP that is connected to this cloud. Currently that is Sage 100 ERP and Sage 300 ERP with Sage 50 ERP (Canadian and US) following shortly.

If you were to use all three of these application, you would still only use one connector which would synchronize ERP data to and from the Sage Data Cloud and would share common items like the customer master file.

Credit card processing is via Sage Payment Services so again everything here is synchronized between the ERP, Sage Payment’s virtual terminal and the Sage Data Cloud.

Summary

This iPad native application is a great way to enable a mobile sales team to interact with customer and build quotes and orders. It has many ease of use features that iPad users expect and fully integrates with your current Sage on-premise ERP system.

Sage Billing and Payments

with 12 comments

Introduction

Sage Billing and Payments is one of the three web/mobile applications that was shown as a POC (Proof of Concept) at last year’s Summit conference and then released at this year’s Summit conference. Sage Billing and Payment is strictly a Web application, and although it will run as a Web application on mobile devices, doesn’t have a mobile native component.

Sage Billing and Payments is meant to help improve the collection of Accounts Receivable. It provides a mechanism to e-mail people their invoices and then to collect their money via credit card. The application has mechanisms to customize all your client communications.

Last week we looked at Sage Mobile Service where technicians performed billable work. If they took payment by credit card, then they are paid, but if they took payment on account, then this application is to help collect that money.

Walk Through

To use this application you go to its URL in your favorite browser and sign-on with SageID. This then leads you to the following dashboard/home screen.

sbp1

This page gives you information on the invoices that need to be processed and how many people are paying their invoices.

Within the application there is a great deal of functionality around customizing your communications. There are a number of templates for invoices and receipts. You can select one of the existing ones from this page.

sbp2

If this suites your needs you can go ahead and use it and if it doesn’t then you can select it and then edit it to further customize it.

When you choose to customize it you go into a visual HTML editor where you can create an invoice to match your companies branding and communications policies.

sbp4

Once everything is setup, you can go into customers to manage contacts and manage their receivables.

sbp3

From this page you can send or print any invoice. As well as review their invoices and payment history.

From here you can also mark whether to just send invoices and payment receipts to the customer automatically (you can also do this for all the customers in settings). Generally this is much more efficient than going through all the customers and manually triggering the e-mails.

When a customer receives and invoice there is a link which will take them into their browser and go to a customized payment website where they can pay their bill instantly by credit card. Of course this site they go to is completely customizable and one is shown below.

sbp5

Why Not Do This in ERP?

To some degree you can do all this in your ERP system, so why would you want to subscribe to this Web service? Basically this service is designed to address a number of pain points people have performing this work from within their on-premise ERP system:

  • Integrating to e-mail to e-mail invoices is hard to setup and operate. In their efforts to fight spam, Microsoft has made it harder and harder for programs to send out automated e-mails. Outlook will popup a messagebox whenever any program accesses the address book or attempts to send an e-mail. Supporting all the various e-mail systems out there is hard and tends to concentrate on Exchange.
  • Performing customization to invoices and receipts in Crystal Reports is hard. Often you have to hire a Business Partner to make any changes to your custom invoices.
  • Automatically collecting payment via credit card right out of the e-mail isn’t supported.

Basically this solution is meant to make the whole process much easier and much more effective. Dealing with e-mail systems becomes our problem. The pages to edit and customize all the forms in this offering are far simpler than dealing with Crystal Reports. Then there is the integration to Sage Payment Solutions for credit card processing right out of the e-mails via a web site that we host.

Technology

This solution is hosted in the Microsoft Azure cloud. It uses the Sage Data Cloud to store information and communicates back to the on-premise ERP application via a connector that is installed there. The actual web application is written in ASP.Net MVC and is deployed to Azure using PaaS Web and Worker roles. We use Telerik’s Kendo UI for our grid controls. This is a nice UI library of HTML/JavaScript controls that provide a very nice rich client user experience in the web. Another tools we find really helpful is JetBrain’s Resharper. This tool adds a lot of advanced refactoring and static code analysis functionality to Visual Studio that we missed from Eclipse. For source control management we use Git on GitHub. To perform continuous integration and to manager deployments to the various web sites (development, staging, production, etc.) we use JetBrain’s TeamCity. This is integrated to our GitHub source control repository and can build as the source code changes and continuously run automated tests. Then we can push a branch out to an Azure subscription whenever we want.

Like most web sites we have put in place the infrastructure to update the site fairly regularly so we can immediately address problems and can add features and functionality on a frequent basis.

The data is stored in a multi-tenant Azure SQL database as part of the Sage Data Cloud. This data cloud is shared by other mobile and web applications like Sage Mobile Service. This way your data isn’t duplicated to the cloud for every service you subscribe to.

The ERP connector is the same one used by Sage Mobile Service and is available currently for Sage 100 ERP and Sage 300 ERP with a version for Sage 50 ERP (Canadian and US) to follow shortly.

Summary

Sage Billing and Payments is a web application that is connected to your on-premise ERP system to help you more efficiently collect money from your customers. It relieves you of the pain of accepting payments over the phone, managing email system integrations and performing difficult Crystal customizations.

Sage Mobile Service

with 22 comments

Introduction

Last year at Sage Summit we showed proof of concept demos of a number of mobile applications we were developing. At this year’s Sage Summit we announced that these were now shipping. In this blog posting, I’m going to talk about one of these new mobile applications, namely Sage Mobile Service. This application dispatches technicians to perform work for customers and enables them to get directions, customer information and to collect payments.

Common users of this service would be plumbers or electricians. Where calls come into a dispatch center and they need to be scheduled to visit various sites. There they perform work and can collect payments. Hopefully any companies that perform work of this nature will find this App helpful.

This application consists of three parts: a web application to manage customers and dispatch work orders, an iPhone application for technicians to receive information and take payments and then a connection to your on premise ERP system to share transactions and data.

The Dispatch Web Site

The Dispatch Web Site is a standard web application that runs in any modern browser. From this website you can manage your customers and create work orders for your technicians to perform. Below is the welcome/dashboard home page for this website.

service2

You can get lists of the current work orders along with lists of your customers and drill down into the detailed information of anything listed.

service3

When a call comes in from a customer, perhaps for a plumbing problem, you can enter in all the information and then schedule a technician to perform the work.

service1

As soon as the work order is saved with an assigned technician and scheduled time, it will be available on his iPhone so he can go do the work.

The iPhone App

The technician receives these service call requests from their iPhone via an App. This App lets them know where they should be and when. The App will present a schedule of the work they need to perform today, tomorrow and in the future. This gives the technician an idea of all the work they have to do today and how long they have been scheduled to perform that work. Below is a screen shot of a work order on an iPhone, you can scroll down for more information or tap to drill down for more detailed information.

service5

They can also get additional information on the customer, like their location, directions and contact people. They can also bring up a history of service calls for that customer so they know ahead of time what work has been performed previously.

service4

From the App they can also add work items and parts. So if they need to add their billable hours or add any chargeable parts then they can do this.

When the work is completed, the technician can either receive payment via swiping a credit card through a device attached to their iPhone or they can mark it on account. Of course all sales taxes will be calculated automatically as part of this process. If it’s on account then an invoice will be sent later. Next week I’ll talk about the Sage Billing and Payments web application which can be used to collect these invoices if they aren’t paid on time.

Connected to ERP

Where do the customers come from? Where do the payments made go? The answer is your on premise ERP system. A small connector is installed onto your on premise ERP system which is configured to communicate with your Sage cloud account. This connector will upload information from your ERP like your list of customers to the cloud and will download transactions as they are completed to the ERP. Initially we have connectors for Sage 100 ERP and Sage 300 ERP. We will have connectors for Sage 50 ERP (US and Canada) following shortly.

cloudconnector

In the case of Sage Mobile Service all the customer information along with information required to fill out A/R Invoices is uploaded to the cloud and then A/R Invoices are downloaded and inserted into the ERP as transactions are processed in the cloud or on the mobile devices. The connectors for Sage 100 ERP and Sage 300 ERP run continuously as a Windows service and need to be installed on a server that is generally running. The Sage 50 ERP connectors are part of the product and need to be run manually every now and again.

All the requests are queued, so if one system or another is down, things will catch up again once it is available. The connectors only call up to the cloud, the cloud never calls down to the ERP. This means you don’t need to operate a web server and you don’t need to reconfigure your firewall. Installation is very easy and transparent.

International

Initially we have been rolling this out in North America. We will be rolling this out internationally, but first we have to provide the sales tax calculation engine (currently we use Avalara) and we need to provide integration to local credit card processors. Depending on the region, it might make sense to roll out the service, perhaps without credit card support, but this will be on a case by case basis. Fortunately most regions have simpler VAT type sales taxes rather than the crazy US system.

Summary

The world of mobile applications is opening up all sorts of new opportunities to expand ERP systems from beyond hidden backroom offices out into the real world. No one wants to have to enter data twice, so these applications are great mechanisms to get transactions entered directly into the ERP from the point of work and not relying on paper records that are later typed in (perhaps inaccurately). Sage Service Billing is one of our first wave of these applications with more to follow.

Written by smist08

August 10, 2013 at 7:26 pm

Virtualization

with 5 comments

Introduction

There was a discussion on LinkedIn the other day, that was started since the latest version of Sage 100 ERP only allows one copy of itself to be installed on a given computer. Many programs operation this way such as most Microsoft products and other Sage products like Sage 300 ERP. The main reason for this is to avoid confusion for users when they are using integration technologies like COM or .Net. Since then it’s easy to know what you are talking to when you integrate from another program. This is also how the Windows Installer works, so if you want to use this technology then this is what you get.

But the topic came up as to what to do to support multiple customers? The answer given was to use virtualization. We use this fairly extensively here at Sage for Development, QA and Support. This blog posting is to cover a bit more fully our uses of virtualization and some of the things we have discovered along the way.

virtualization

VirtualBox

The Sage 100 and Sage X3 groups use Oracle VirtualBox. This one is nice because it’s open source (Oracle acquired it as part of Sun). I’ve run VMs created with this, but never created one myself or have too much experience with it.

VMWare

The Sage 300 team uses VMWare. It used to be that you could use the VMWare player for free, but now it is only free for non-commercial use, but at least it’s fairly cheap. Generally you only need the Player and not the Workstation version. One nice feature is the unity feature which does an amazing job of integrating the virtual environment with your desktop environment which is good for demo purposes.

VMWarePlayerUnity

For server based VMs we use VMWare because our experience is that the memory usage is much better than the Microsoft Windows Server versions (but I haven’t played with Windows Server 2012 yet). The MS Server ones tend to force a lot of locked memory and you can’t run as many VMs. Our support department keeps a library of all supported operating systems times all supported versions installed, so if a client problem comes up say running XX version 3 on Windows XP 32-bit, then we boot up the right VM and try to reproduce the customer’s problem.

Generally we find it useful to create a base operating system image like Windows 7 (64-bit) and keep a clean copy that we update every now and then with Windows updates. Then when we want a VM we just get a copy of the base operating system and install what we want on top of it. (We also keep some images of popular operating systems with office and SQL Server as a better starting point). Generally to give a quick way to get running when a need arises.

VirtualPC

We used to use MS VirtualPC a lot, but have moved away from it because MS doesn’t seem to be updating it anymore and it doesn’t support 64-bit client operating systems. This one is included with MSDN subscriptions, so it you have one of these, you probably have access to it.

It seems Microsoft is repurposing its VirtualPC software to their XP Mode feature to allow you to run Windows XP only software easily on Windows 7.

Client Operating System Licenses

Generally all the developers at Sage have an MSDN Universal subscriptions so this gives us the licensing to do what we need with the client operating systems. But for most development partners, there is a lot of benefit in having an MSDN subscription yourselves.

Hardware Requirements

One disadvantage of virtual machines in the past has been how large they are (usually around 32Gig). This uses up disk space fast, but with cheap 3TB hard drives, this doesn’t seem to be much of a problem anymore.

I’ve found the main thing you need for good performance in virtual environments is lots of memory. If your computer has 8Gig RAM then you can allocate 4Gig to the VM and still have 4Gig for your base operating system. Even though I find frequently switching back and forth between things in the VM and things in the base operating system can be slow, so I like to work for longer periods in on or the other.

Also quite a few laptops have hardware virtualization support turned off by default, going into the BIOS setup and turning this on can speed up VMs quite a bit.

Summary

To me virtualization software is quite amazing. I’m astounded that I can just run Windows 8 or Linux easily on my Windows 7 laptop. I think virtualization software has come a long way and is still progressing quickly. If you haven’t tried it out recently and you need to keep things separated, then you really should try one of these out. It saves a lot of headaches not having to worry about the installation of one thing messing up something else you have installed.

Sage Visual Process Flows

with 7 comments

Introduction

Sage ERP X3 has had a feature called “Visual Process Flows” for some time now. These process flows help users navigate the product to perform their daily tasks. They are fully customizable and you can create these for all the roles in your organization. Below is a picture of a process flow in the Sage ERP X3 desktop.

However, this visual process flow tool wasn’t just built into the Sage X3 desktop. It was actually developed as a standalone component that could be integrated into any product. Now we are in the process of integrating this into a number of other Sage ERP products starting with Sage 300 ERP 2012.

Notice that there is now a “Sage Visual Processes” top level menu item on the Sage 300 Desktop, which contains the list of process flows that have been assigned to a user. To assign flows to users there is an Administrative Services program for this purpose. The shown example isn’t complete yet, but when Sage 300 ERP 2012 ships it will include a number of stock process flows. We can then augment this collection as we go along using Sage Advisor Update. If you have the proper security rights, you can right click on the item in the tree and select edit from the context menu to edit the process flow. The Process Flows we ship with go in the program files area as templates, and then any customized one go in a separate area in shared data. This way we can freely update the templates without overwriting customized flows.

Process Flows

The primary goal of these Process Flows is to allow users to quickly find their tasks and launch screens without searching through the ERP’s giant tree of icons. Within the Process Flows, it is easy to include much more descriptive text of what needs to get done. Most small business products like Sage 50 ERP present the user with this model of navigation. However for mid-market ERP, having a number of static hard coded process flows is inadequate. With this tool you can customize Process Flows for all roles that a mid-market customer requires. You have the ability to add your own graphics and to be quite creative in the creation and look of these flows.

You could argue that Process Flows doesn’t give you anything new since you are still running the same old screens and after all you can customize the tree of icons to limit what a user sees to run. However from all our usability studies, we find that even with this, users still spend quite a lot of time searching for the correct screen to run, especially ones that they run very infrequently. Plus, I think the Process Flows are quite attractive and more appealing than just displaying a list of icons.

You can run one process flow from another, so using these you can construct wizards to step people through longer processes. A great use is to create Process Flow’s for our old setup checklists. Another thing you can do is have a master process flow that drills down into more detailed process flows, creating a more graphical representation of our tree of icons.

If you are familiar with Sage ERP X3 and its Process Flows, then you should feel right at home with the tool in Sage 300 ERP. You can even export a process flow from one product and import it into the other, then you just need to change the Sage ERP X3 screen codes to the Sage 300 ERP screen codes (rotoids like OE1100). The actual Process Flows are stored in JSON format, which is a text file format which is easy to deal with. Along the same lines if you have taken the Sage University course on working with Sage ERP X3 Process Flows then you already know how to work with Sage 300 ERP process flows.

Sage 100/500 ERP

These are being fitted into the Sage 300 ERP Desktop first, and then later they will be fitted into the Sage 100 ERP and Sage 500 ERP Desktops. Later we will also consider running these from our Sage 300 ERP Web Portal. For that matter we can look at other places to run the Process Flow tool, perhaps as a starting page for tablet applications for instance.

Sharing and Collaboration

I know partners like to charge for what they do, but it would be nice if there was a central place where Process Flows can be freely shared. I wonder if Sage started such a site; would many partners contribute to it? Would customers contribute to it? If there was a lot of contribution it could eventually provide a much larger library of Process Flows than anyone could develop individually. The stone soup approach has worked quite well in other areas, but I know when we tried this with Crystal Reports, it failed quite badly. Still crowd sourcing and open source techniques are a very effective manner to really build critical mass. Sage X3 ERP has over 150 process flows, the other Sage ERPs are starting from scratch but will leverage the X3 work to catch up. Hopefully with community participation we can exceed this by quite a bit.

Summary

Adding Visual Process Flows to all our products, not only makes them easier to learn and use, but it complements the various branding initiatives to start making all the various Sage ERPs become a family of related products. Plus this feature gives all our desktops a nice visual refresh to make them much more appealing and modern.