Stephen Smith's Blog

Musings on Machine Learning…

Archive for August 2013

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.

Advertisements

Sage Billing and Payments

with 11 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

Sage 300 Online

with 13 comments

Introduction

At our Sage Summit conference we officially rolled out our new Sage 300 Online service. Sage 300 ERP has had an online hosted version for over ten years. The new Sage 300 Online service is meant to radically modernize our cloud version. It is now hosted in Microsoft Azure, sign on is via SageID, and the virtualization software is vastly improved.

We support all the standard Sage 300 ERP Modules, along with integrations to other Sage applications like Sage Exchange and host a number of third party ISV products. Financial Reporting and Business Intelligence is provided via Sage Intelligence (Sage Alchemex).

Using the cloud version of Sage 300 means that you don’t need to maintain your own servers or other hardware, you don’t need to be responsible for backing up your data and you aren’t responsible for data center support. Further you aren’t responsible for maintaining and upgrading the software. We install all necessary hotfixes and product updates. We even perform major version upgrades for you, which can be a major cost saving.

Modern businesses tend to be distributed over many geographic locations with many employees working from home or working while on road trips. Using a cloud based ERP allows all these people to access the central cloud based ERP from any place with Internet access. This is much easier than maintaining expensive and slow VPN type networks.

First we’ll run through how the service looks and then talk about some of the various aspects of it.

Usage

To access and run Sage 300 Online, you go to an URL in your browser that redirects you to SageID.

sage300online1

You now enter your SageID credentials and are signed into the system. This leads to the following page which gives a list of programs that you are allowed to run.

sage300online2

Clicking on “Sage 300 Online” will then launch the Sage 300 Online desktop. Below is a screenshot of the Desktop run from the landing web page and then running the Order Entry UI.

sage300online3

Notice that it now looks exactly like you are running Sage 300 locally. You no longer run a terminal server client which presents a new Windows desktop inside your existing Windows desktop.

SageID

When you first sign up for the service, you provide an e-mail address which will become your SageID. This first user is the administrator for your company and can invite other users from a SageID administrative website to use the system. SageID will then be your login for our site.

Your SageID will be your login for all Sage Cloud services and is also connected to the back end billing systems, so we can provide one bill for all your services attached to your SageID. This includes the Sage Mobile applications unveiled at Sage Summit. This will make reporting and billing very simple for cloud users.

Microsoft Azure

Our Sage 300 Online service is hosted in Microsoft Azure. These are Microsoft’s cloud data centers with locations all over the world. We use Azure due to its reliability and redundancy. If something were to happen to one data center we could operate out of another. Also the Microsoft network that connects these data centers to the Internet is extremely fast and have very low latency leading to great performance.

Microsoft Azure supports both PaaS and IaaS infrastructures. We use PaaS infrastructure for the initial web pages and for the databases. We use IaaS infrastructure to run Sage 300 ERP in a virtualized environment.

Microsoft Azure allows us to offer our cloud solutions to all our customers no matter where in the world they are located from data centers that are in their region or close to their region. Currently Microsoft has Azure Data Centers in the US, Ireland, Hong Kong, Singapore and Amsterdam with locations opening soon in Sydney and Melbourne.

Microsoft Virtualization Framework

Within the Azure environment we run a standard Microsoft virtualization environment that Microsoft has created for any datacenter. This is run on a number of Windows Server 2012’s. The virtualization environment is accessed via RDP8 which supports our SageID integration, supports virtualizing just the applications (rather than a Windows Desktop login), supports expected functionality like copy/paste, supports printing to local printers and supports transferring files to and from the cloud environment.

Microsoft Azure SQL

We run the Sage 300 company and system databases on Azure SQL servers which are a PaaS implementation of SQL Server. This database provides reliability performing every write to three separate places. Further as Microsoft develops out their cloud roadmap, many new features and services are planned for Azure SQL to improve the general robustness of cloud solutions.

ISVs

With our initial offering, we don’t support all Sage 300 third party solutions, but we do provide a set of some of the most popular. Generally the third party solution has to be able to run in the cloud which usually means it must be written with the Sage 300 SDK (the exception to make the rule is PrintBoss).

The third party products we support are: Orchid EFT and RMA, Pacific Technologies Purchasing Workflow and Funds Availability Wellspring PrintBoss, Aatrix Payroll Reports and Avalara Sales Tax.

Customization

Since all companies using this cloud solution are running the same Sage 300 programs, you cannot customize the system by installing any EXEs or DLLs, since then these would be used by all companies subscribing to the system. Similarly security is a much bigger concern in the cloud and we have to carefully regulate what can get into the system.

Also since this is a multi-tenant environment we can’t allow any arbitrary third party solution to be installed. For any ISV that wants to participate in this offering, we need to verify that their solution will run in our Azure setup correctly and not cause any problems for other tenants.

Summary

We’ve started letting people use our Sage 300 Online offering with a Sage Summit Preview program. Then in a couple of months we’ll be making it officially generally available. The Microsoft Azure cloud gives us much more scalability and global reach than we previously had. Integrating with SageID and using newer virtualization technology greatly improves the usability and convenience of our product. We are very excited about this project and are looking forward to adding to it as we develop it forward.