ERPs Pitfall

Implementing  ERP system and the likes is a major investment decision for any company.  ERPs impacts everyone within the organization, from front line staff to the senior executives.  ERPS implementations can be complex and if not managed properly can quickly lead to failure. Here are 5 common pitfalls, which can easily be avoided during implementation:

  1. Making a Choice Based on  ERPs Features Only

ERPS features are not the only thing to consider when deciding on which system to use. During  ERPs selection process, some people get dazzled by these features and make a choice based on that. Of importance to consider is the success history, flexibility, ease of customization and the ability to integrate the system with existing processes.

  1. Ignoring Departmental End-users in The Decision-Making Process

The implementation of  ERPS system is too important and delicate to be left on the hands of the leadership executives only. As a result, key employees actively involved in its use should be part of the process to ensure the search and implementation of a system that works for all. It’s not just for the IT department but also for operations, warehouse, and finance and so on.

  1. Inadequate requirement gathering

Managers make the mistake of implementing  ERPs in their existing business processes just as they are. It is important to conduct an analysis of the processes forming part of the gathering for  ERP requirements.  ERP systems should aim at improving the existing business processes. A bad process doesn’t get better just because it is automated. Therefore, it is important to highlight the critical issues prior to migration.

  1. Doing Everything at Once

Trying to implement  ERPS systems at once is not possible due to their complex nature. For that reason, it is difficult to gather all requirements upfront, implement the system, train user and go live. Instead, implementation should occur in smaller chunks with the involvement of all departments to establish what is required, test, find gaps and then repeat the process.

  1. Failure to Weigh the Benefits of Cloud-based and On-Premises  ERPs

Before settling on any  ERPS solution, the pros and cons of a cloud-based and on-premises  ERP systems must be analyzed. Ideally, a cloud system needs good internet connection and is beneficial especially for those working remotely. For on-premises option, there must be a dedicated team to support the  ERP solution. SaaS is quickly becoming the platform of choice for many companies due to its ease of implementation and post go live support. However, SaaS software do not have high flexibility for customizations, and can force business to adapt to the software rather than the other way around. This can especially be problematic for companies with unique business processes.

No one wants to find themselves in a scenario where their  ERPS is not working as expected. The above 5 mistakes can easily be avoided and allow organizations to have a higher return on their  ERPS investment.


Import, Export in Sage X3

Sage X3 Import/Export utility function is used to define the file formats used by the import and export functions for an object in order to integrate or extract data from the software database.

A file that can be used by the import module and generated by the export module is based on a file with one of the following structures :

  • flat file with fixed length fields.
  • flat file with separator between the fields (and records).
  • XML file

You can download my Volume 1


Manipulate time and date: Sage X3

I will be discussing how to manipulate time and date in Sage X3.

To get the current date in a Date variable , use the date function $ .
In the same way, to have the current date and time in a Datetime variable , use the datetime function $ (only from U9).
The canonical form to represent date and time with a string is:

YYYY-MM-DDThh: mm: ssZ #attention to the "extra" letters T and Z

Generally, date and time have “YYYY-MM-DDThh: mm: ss” format

num $ (date $) #To get today's date string
num $ (time $) #To get the current time as a string
num $ (datetime $) #To get today's date and time as a canonical string
gdat $ (DAY, MONTH, YEAR) #To get a date, day, month and year data
gdatetime $ (str) #To get a Datetime variable from a canonical string
year (date) #To get the year of a date
month (data) #To get the month number of a date
month $ (date) #To get the month name of a date in the current language
day (data) #To get the day number of the month (1-31)
day $ (date) #To get the name of the day of the week
dayn (data) #To get the day of the week number (1 = Monday, 7 = Sunday)
week (date) #To get the week number (1-53)
nday ​​(data) #To get the number of days passed since January 1, 1600
nday ​​$ (NUM) #To get a later date of NUM days from January 1, 1600
eomonth (data) #To get the last day of a given month


You can also perform simple operations:

Local Date DATA
DATE = [1/2/2015] +5 #DATA will contain [06/02/2015]
DATA = [1/2/2015] -1 #DATA will contain [31/01/2015]

For example:

Local date LASTDATE
LASTDATE = eomonth ([1/2/2015])
Infbox num $ (LASTDATE) # will display the date [28/02/2015]

To obtain a date as a string with the desired format:

format $ ( "D: YYYYMMDD [_] hhmmss", $ date)   

December 31, 2018 at 12.30 and 56 seconds will correspond to “20181231_123056”.

Note that square brackets are used to insert a space or other constant elements:

To get the date and time as a formatted string, you can also use AFNC.FDH.
With this call, use the formatting contained in the global variable GFMDAT.
Suppose today is January 19, 2018, and GFMDAT contains “DD [/] MM [/] YY”:

func AFNC.FDH (dates $, "121531") # returns "01/19/18 12:15:31"
func AFNC.FDH (dates $, "") # returns "19/01/18 17:08:27"
func AFNC.FDH (dates $, "15:32") # returns "19/01/18 15:32:00"
func AFNC.FDH (dates $, "15") # returns "19/01/18 15:00:00"
func AFNC.FDH (dates $, "15:") # returns "19/01/18 15:00:00"
func AFNC.FDH (date $, "string-errata") # returns "19/01/18"
func AFNC.FDH (dates $ + 1, "x") # returns "01/20/18"

It must be remembered that there are several global variables containing formatting strings,
all preset according to the various predefined parameters.
They are useful for maintaining a standard that is adapted to different users, sites, etc.

The order day-month-year of these formats depends precisely on the location and user settings.

The variables are these:

GFMDAT = standard date, with 2 characters per day, 2 for the month, 2 for the year
GFMDAT4 = date with the 4-digit year
GFMDAT3 = date with the month expressed in three letters
GFMDAT9 = date with the month written in letters
GFMMOI = month-year
GFMMOI4 = month-year with 4-digit year
GFMJOU = day-month