PHP is one of the most versatile programming languages for building web applications. However, one of the problems with PHP is that there is more than one way to do the same thing. This might not sound like a problem, but PHP's ease of use is also its downfall. Because there are less restrictions on the structure of the code you write, it's much easier to write bad code. The solution to this problem is to use a framework and design pattern such as Model, View, and Controller (MVC).
There are many PHP frameworks out there. Here, at WebSan, one of the PHP frameworks we use regularly is Codeigniter. The reason is that it is well documented, small footprint, exceptional performance and has a large user community.
Here are some resources to get started with Codeigniter:
CodeIgniter From Scratch: Day 1, Nettuts.com - Getting Started With the Framework
CodeIgniter From Scratch: Day 2, Nettuts.com - Database Selecting Methods
CodeIgniter From Scratch: Day 3, Nettuts.com - Sending Emails
CodeIgniter From Scratch: Day 4, Nettuts.com - Newsletter Signup
The foundations of ERP are found in manufacturing resource planning, traditionally used by companies which produced tangible goods in factories. The adoption of ERP and MRP systems was initially quite slow – management were content with the status quo and saw no reason to change what seemed to be working. However, the recession experienced in the late 1980s and early 1990s forced many companies to make a choice: Either find new ways of operating more efficiently and effectively, or go under. This created a massive boom in the ERP market, which lead to massive changes in the ways in which fundamental business operations were conducted, and those organizations that made it through the recession came out stronger.
North America is no longer the goods-producing collection of nations it once was and is instead dominated by service industries. However, many of the same problems that existed in manufacturing organizations twenty years ago still exist in these businesses: Lack of integration, inability to respond and take advantage of environmental change, time and money wasted on data entry and redundancies, and so on. Much like the recession twenty years ago, the economic downturn caused by the subprime mortgage crisis has forced many modern companies to find new ways of performing more effectively and efficiently.
This is the time to get ahead of the competition, and Microsoft Dynamics GP is the perfect solution for organizations looking for more than simple accounting and reporting features without high maintenance costs and complexity.
As promised from my last entry, I will be discussing SmartList functionality this time – how to use them to your advantage and how to build/modify your own.
SmartList in a nutshell is a powerful means of accessing your Dynamics GP data in simple to read form for reporting and analysis. They can be found right in the Microsoft Dynamics GP dropdown menu. There are predefined SmartLists for all modules, which means there is one for everybody. Examples of a few that come with the system are PA Cost Categories found in the Project Accounting folder and Open Purchase Orders, which is located in the Purchasing folder. Using a SmartList is as simple as clicking on the SmartList icon in the desired module. After the data is generated, you could then export to Excel for further data manipulation. There is also an option to export to Word if required.
If the standard SmartLists do not satisfy all of your analysis purposes, there is an add-on tool called SmartList Builder that allows you to customize the standard SmartLists as well as create your own to query a customized set of information. If available, the tool can be found in Micrsoft Dynamics GP-> Tools-> SmartList Builder->SmartList Builder. SmartList Builder allows you to link up to 32 tables in the system and configure your own column headings to suit your reporting needs. I will go through the steps of creating a new SmartList for my own purposes: Contract ID with Project ID and Project Name. To begin, name your SmartList and choose the Product that the data will come from. Project details are found in Project Accounting so that was the product I selected.
To start adding tables, simply click on the “+” symbol on the left panel and select “Microsoft Dynamics GP Table”. From there, you can choose and/or link up to 32 tables of your choosing to incorporate your desired set of data. There will be some research to be done in order to link the right combination of tables for your own purposes. The information I need is found in the PA Contract Master File and PA Project Master Files so I need to first add the PA Contract table and then link the Project Master table based on a common field (Contract ID):
I can then select the fields I require to be displayed in my dataset:
Just save the SmartList and it will be good to go in the SmartList window!
You can also choose to further filter your dataset using the Search button on the SmartList menu:
I hope this helped! My next blog entry will cover the Report Modifier feature in GP!
416-499-1235 x. 209
The Setup Checklist in Microsoft Dynamics GP is a great little tool to guide you in the configuration of a new client on the system because it provides a systematic and efficient list of tasks for a complete deployment. I found the tool to be excellent in ensuring the proper setup tasks were completed in the right order because many latter and complex tasks such as in modules such as Sales and Project are dependent on initial setup such as GL account creation and Currencies to be finished first.
When opening up the checklist using the path Microsoft Dynamics GP -> Tools -> Setup -> Setup Checklist, you will find a nifty Setup Guide that pops up right beside the Checklist. I found this to be very helpful in the explanation of the task at hand and how to find more information in the related links below the task description. Here is the Guide that appears when configuring System Security:
As you can see, after the brief task description follows a list of more information that the user can click to further learn about the task and its relationship and effect on various other functions. Since System Security is related to users directly, you would find links for personal security and security roles in links. I noted in my first entry that the Help menu does a superb job of providing necessary information when stuck on a task and it continues to be as I am continuing with my configuration duties.
One complaint that I do have so far is the inability to maximize every single setup window when doing configuration. Usually the first window in a path can be easily maximized (i.e. Account Maintenance) but say if you wanted to Lookup the accounts, the results list must be manually enlarged instead of using the window maximize button. Although a small complaint, I believe that one-click window maximization should be found on every drilldown window in the system for added convenience.
My next issue will cover the concept and handiness of Smartlists and how they can help you with your production in Dynamics GP. I will be sure to provide an example of a custom one and the type of data that can be derived from it.
As the newest member to the Dynamics GP Consulting practice at WebSan, it is my responsibility as a junior analyst to learn how the system works through Microsoft E-Learning and actual hands-on practice in QA environments. My goal with my blog entries is to take you through my learning process with the system. It is my intention to provide any new users or potential future users of the system an objective view of how I perceive and adapt to Dynamics GP.
Coming from a systems background with experience in ERP and warehouse management systems, the first thing that came to mind when interacting with Dynamics GP initially was how easy it was on the eyes. This is an attribute that many software developers neglect because they fail to think like a user. I personally believe that more appealing GUI’s are successful than their bland counterparts in the efficiency department. Nobody likes monochrome work environments.
I’ve also found the navigation to be very intuitive. I have been able to get where I need to go in my basic training exercises in usage and configuration. The help menu has been doing a great job covering any questions I had. Any challenging issues I have definitely had to inquire a senior analyst. Although the software has an accounting backbone and I don’t come from an accounting background, I did not have much difficulty accomplishing basic tasks such as setting up GL accounts or running reports.
I am currently working through the configuration of a new WebSan client on Dynamics GP. My next blog entry will describe my experience with it, including any challenges and lessons learned. Stay tuned!
In the first volume of this series, we discussed one of the key advantages a well-designed warehouse management system (WMS) delivers – visibility of inventory. For volume two we will touch upon the direct correlations between an effective WMS and increased customer service.
By implementing the appropriate WMS solution to fit your warehousing needs, you are telling your customers through your actions that, “Hey, we really do care that you get your product on time and in an accurate fashion”. It’s one thing to promise your customers that you can do something for them and another to keep that promise.
The simple concept of customer service is very often confused and misplaced in a world full of fancy gadgets and new-age business theories. At the end of the day, just make them happy; it’s really all they ask for.
A WMS increases customer service directly through:
- Improved warehouse organization
- Efficient usage of warehouse space means lower storage and overhead costs. This translates into a competitive advantage you can leverage to provide more attractive pricing to customers
- A return system that actually works
- An ineffective return merchandise authorization (RMA) program is as frustrating to customers as misleading promotional deals. A returns processing applet is typically integrated in a well-designed WMS
- Better inventory accuracy
- If a customer needs to order a product and your website says that it’s available then you should be making sure this is true. A WMS increases inventory visibility, which reduces the number of stock-out confusions
- By forecasting inventory trends, buyers can determine when a demand spike for certain products will arise and make appropriate purchases to support it
- Faster order cycle times
- A WMS is not only software – it is a complete integrated system that works with your ERP system. RF devices can be incorporated to increase order-fill rates. Shipping stations can be established with shipping partners for automation and shipment management
Vernon Johnson is a warehouse management specialist at WebSan Solutions Inc. He can be reached at 416-499-1235.
An often-used buzzword over the last few years in the IT sector has been virtualization - the process of turning one server that hosts a single operating system into a super-system that can potentially host 10 or more operating systems. By now most large corporations and agencies have some sort of virtualized infrastructure in place, and for good reason. The benefits to using this technology are numerous: hardware and operation costs are drastically reduced, virtualization provides enhanced flexibility with the allocation of resources, and production environment’s mission critical applications have been noticing improvements of up time. But how can a virtualized server improve your organizations testing and development cycles?
One of the major benefits of a virtualized test server is the ability to swiftly bring new resources online and create new development environments. Cloning a standard template that has been authored with the fundamental tools required by the development team can create these new environments. Procuring, configuring and installing hardware used to take weeks - but all of the sudden your development team’s new environment is up and running in less than the amount of time it takes to get a cup of coffee.
Another true benefit to a virtualized test server is that there is less risk of cross-contamination between environments. There is no longer an issue when development team A modifies core system files that could possibly interrupt development team B from using that code library. Why? Because both teams have completely separate environments using completely different virtual hard drives connected to completely different virtual networks.
So what about the cost? The common perception is that you need a really powerful and expensive server - but this is not the case. Taking into account the timesavings you will experience, you will also find that there is there is not much investment needed to get a virtualized test server online, especially now that VMWare’s ESXi Hypervisor is available as a free download. Perhaps that server sitting in the basement can be used to get your foot in the virtualization doorstep.