Site Installation
From PERPWiki
The following steps should get you a working pERP:
Contents |
Install and set up eGroupWare
Read through these instructions if you don't have an existing eGroupWare installation. This guide only deals with the pERP aspects of installation and setup, and assumes you get a working eGroupWare somewhere along the way.
Download pERP
There are three ways to get pERP, depending on what you want to do with it. These instructions are for Linux, so if you're running Windows, adjust as needed.
Normal People
Download the latest version from https://sourceforge.net/project/showfiles.php?group_id=166007, unpack and install.
$ tar zxf pERP-<version>.tar.gz
$ cd pERP-<version>
$ ./install.sh
Windows installation: install.sh is a text script file for Linux which gives an idea where the packages should go to in a Windows installation.
Skip to Install
eGroupWare + pERP SVN
pERP has an alias set up for eGroupWare + pERP
$ svn co https://perp.svn.sourceforge.net/svnroot/perp/aliases .
Due to the limitations of SVN, you'll wind up with ./default/egroupware/<good stuff>, so you may want to move things back up the tree.
Have a look in install.sh, there may be some things that need linking into eGroupWare directories.
pERP SVN
You can use SVN to get pERP into your current eGroupWare [SVN] directory.
From your eGroupWare root directory:
$ svn co https://perp.svn.sourceforge.net/svnroot/perp/trunk perp
You need the perp subdirectory instead of . because SVN doesn't like to mix and match. If you're not using eGroupWare SVN, it's probably not needed. That will download the latest and greatest code to ./perp/, so there's an install script to get everything in the right place.
Install pERP
- Go to your egroupware setup page
- Under Step 5, click "Manage Applications"
- Install all the perp_* modules
Note: perp_human_resources generates an error when installing:
CreateIndexSql('perp_staff_authentication_data','perp_staff_authentication','authentication_data',Array ( [0] => UNIQUE ) ) sql=Array ( [0] => ALTER TABLE perp_staff_authentication ADD UNIQUE INDEX perp_staff_authentication_data (authentication_data) ) BLOB/TEXT column 'authentication_data' used in key specification without a key length
This is a known error that doesn't cause any problems. It can be safely ignored, and will be fixed as time permits.
Setup pERP
The setup of pERP will probably take several hours, and that's if you have all the information on hand. Follow this guide from top to bottom, without skipping sections. When you get to the bottom, your site should be ready to go.
If you notice any discrepancies, please report them so this guide can be improved.
Special hurdle to EGW newcomers (1.5.0.15): a) EGW does not display the perp application icons until they are given a position in the admin section. b) Even (!) for the admin (in 1.5.0.15), all access to the perp applications is denied by default. So applications can only be seen or the following setup can only be performed after appropriate access rights are given in admin->groups.
Reports
pERP has a very pretty, potentially customizable system for generating reports using Open Office templates. To get them working:
- Click Admin->pERP->Find and register all pERP reports
- Set the default output format for your users in Preferences -> pERP -> Preferences.
- Set the users allowed to access each report when you set up the rest of the ACLs, below.
Groups and Users
If this is a new eGroupWare installation, you should add the following group structure, or an equivalent:
- Staff
- Admins
- Accounting
- Managers
- Purchasing
- Production
- Sales
- Customer Service
- Clients
[n.b., worth pointing out these global categories should be added only to the addressbook application? If added as global categories to EGW they will show up everywhere else, like stock categories etc.]
Some of these groups are used by pERP for various things, the rest will help you keep the permissions easier to deal with. You can assign your minimum permissions to Staff, then add per-department permissions on top of that.
If this is not a new eGroupWare installation, you should probably have an equivalent group structure anyway. Failing that, at least have the groups themselves.
Cornflakes alert: EGW requires at least one user to be in a newly created group, which is obviously a pain when setting up lots of new groups. You can add yourself as the admin user to the groups you create, but you cannot remove yourself from the groups management screen (it won't let you as then the group would be empty). You have to go to your user page and remove yourself from all these extra groups there.
More cornflakes alert: At least EGW 1.6.002 has a nasty bug when performing the above action, or any action in the user management screen. During setup, if you created an administrator account with an arbitrary username, the "User account prefix" value is not prefixed to the username. However, after use of this screen the username is immediately and silently changed, with the "User account prefix" value added. This results in an immediate logout and attempts to login as the administrator user will fail because that account name you were using will no longer exist.
Minimum Data
There is some minimum data that needs to be set up before pERP will do much of anything. Below is the list, and the approximate order in which it should be entered. Generally, go through the Admin section from top to bottom and visit each item. Site Configuration and Configure Access Permissions should be done afterwards are dealt with below.
Do not try to jump around, or skip parts because you don't understand them. Do not try out parts before you are done setting things up. They probably won't work, and you will get confused and frustrated. This will probably take at least 2-3 hours, if you have all the information you need at hand. It will take much longer if you don't, and have to get it from other people. A relatively small manufacturer, without all the information available, took more than a month to enter correctly. A large manufacturer, with all the information available, took about 3 months to enter and was still requiring occasional tweaks for weeks afterwards.
- pERP
- Units of Measure
- Shippers
- Currencies
- Payment Terms
- Payment Type
- Taxes
- General Ledger
- sequences
- account sections
- account groups
- accounts
- bank accounts
- transaction types
- Accounts Payable
- Suppliers
- Supplier catalog
- Suppliers
- Inventory
- Stock Categories
- General Ledger accounts
- Stock Items
- Locations
- Stock Categories
- Manufacturing
- Build Options
- Bill of Materials
- Inventory
- Stock Items
- Bill of Materials
- Build Options
- First stock count
- Stock Items
- Sales Orders
- Sales Areas
- Sales Types
- Sales Categories
- Price Lists
- Accounts Receivable
- Hold Reasons
- Customer information
- Accounts
- Physical Branches or outlets
- Pricing, per client discounts
Site Configuration
Most of the Site Configuration should be fairly self explanatory, but many drop downs will be empty until after the minimum data has been entered. "... Narrative" and "... Number Format" use sprintf to include the fields as detailed, so any sprintf options are valid.
Configure Access Permissions
Almost as important as entering the minimum data is configuring the access permissions. The first step is to give users access to the applications they need, through the Admin -> user group (or account) section. A user does not need to be able to run an application to use the information in it. That access is controlled by the ACLs.
ACLs in pERP are per-section, with the idea that if a user doesn't have a certain access to something, they shouldn't know that they don't have that access. As an example, if a user doesn't have read access to the stock list, they will never see the Inventory -> Stock icon. Caution is required though, because that user will not be able to work with Bill of Materials, Options, or Work Orders and will have trouble with shipments, sales orders, price lists, etc.
R = Read, A = Add, E = Edit, D = Delete
pERP
Read (R) on everything except acl
General Ledger
account - R
account_group - R
ledger - A
transaction_type - R
Accounts Payable
catalog - R
purchase_order - RAE
supplier - R
Inventory
Read (R) on everything except acl and production
Accounts Receivable
client - R
client_branch - R
Sales
Nothing required
Of course, adjust the above as required by your organization, but be aware of the possiblility of information being missing when it is used by other modules.
Training
Your new users will need to be trained on how to use pERP. This is a very important step, as this is where you affect the user's perception of the new system.
Mirroring
You may want to consider mirroring your newly set up pERP system for training / testing.
Virtualisation
One of the easiest ways to offer training on the new system is to use virtualisation to create a complete virtual clone of the production server. This virtual machine can be distributed to users desktops for training and be a completely secure sandbox environment allowing users to fully explore, test and abuse the system to the point of destruction. By taking a snapshot of the original state of the virtual machine, all changes and damage on all levels (from OS to database to file configurations) can instantly be reversed back to the working starting point - in real time - and as if they had never happened. Users can also create snapshots of the virtual machine before they try and do something, so if it doesn't work there is an ultimate global "undo" solution no matter what part of the system the user just modified or destroyed.
Sun's Virtual Box is a free, open source and easy virtualisation system which runs many operating systems on many others, and is fully suitable (and proven) for running an eGroupware/projectERP Linux server on a Windows host. The user can interact with this server using their normal Windows desktop browser whilst the virtualisation system creates a fake network bridge to the Linux virtual machine hosting the software. Because of this, actions in eGroupWare that may use the Internet can be restricted. This has many other benefits, for example, allowing your test system to use real data knowing that real customers will not have emails sent to them, your live website won't be defaced and the real data cannot be sent over the internet and stolen. Virtualisation also removes the added overhead and expense of real servers to host the test system, as well as the time and maintenance effort required to keep the test system closely mirroring the production system, as well as undoing the frequent damage that the testing users will cause.
-- Training Recommendations or link here --
