Category Archives: Sage Accpac

#26 Sage Project and job Costing Technical Information

Date: 2 June 2013

Because Sage 300 ERP has the capacity to run on local area networks, there may be times when more than one user needs to use the same Project and Job Costing database. Sage 300 ERP has two basic rules for protecting data integrity when workstations share the same data:

• Make sure no more than one user is working in the same batch at the same time.
• Make sure no one is working in a batch that you want to print or post.

Sage 300 ERP uses the following access types to protect data in a multiuser environment:

Global Locks – While you run a global lock process, no other process can be run on the system until processing is finished.
Single-User Processes – While you run any one of the processes in this group, no other process in the group can be run. However, users may work in other Project and Job Costing forms not included in the group.
Passive Concurrency (Multiuser Data Protection) – You can run any of these processes while others are using them, but Project and Job Costing protects the data by preventing more than one user from making changes to the same record at the same time.



Tags: ,

#22 Understanding Sage 300 ERP Project and Job Costing Settings

Date: 6 May 2013

Sage 300 ERP PJC settings screen allows us to define how PJC is going to work for a particular organisation. It starts with the naming conversion of contract, Project and Categories. Sage PJC allows naming the contract, project and category to the company specific naming conversion. For instance if in a company contract is called as agreement and each project under agreement is called assignment then we can change the level 1, 2 names in “PJC Setting” to be agreement and assignment. Sage 300 ERP will respect the naming convention defined in PJC settings in all its modules.

Following is the Sage 300 ERP PJC “Settings” screen where we can define the setup.
PJC setup screen

Default labour Type: is the method how Labour cost is going to allocate to the projects. It gives you three options “None”, “Flat Rate Per Labor Hour/Unit”, “Percentage Of Labor Cost”.

  • None – System will not allocate labour cost to the Projects.
  • Flat Rate Per Labor Hour/Unit– System will allocate the predefined fixed labour cost per unit (Defined in Labor Rate field) to the Project.
  • Percentage of Labor cost– System will allocate the percentage of the actual labour cost (Defined in Labor Percentage field) to the Project.

Default Overhead Type: Overheads are the cost that cannot be directly allocated to the project but are necessary to complete the project like periodic expenses, such as utilities, rent, and administrative salaries are indirect costs that you often need to allocate to projects on some rational basis. “Default Overhead type” allows defining method how overhead cost is going to allocate to the projects. It gives you three options “None”, “Flat Rate per Unit”, “Percentage of Cost”.

  • None – System will not allocate Overhead cost to the Projects. You can allocate overhead manually by assigning overhead expenses to categories within a project.
  • Flat Rate Per Unit– System will allocate the predefined fixed overhead cost per unit (Defined in Overhead Rate field) to the Project. This method will be used when overhead cost is in the proportion to the number of units of equipment used in the project.
  • Percentage of cost– System will allocate the percentage of the Overhead cost (Defined in Overhead Percentage field) to the Project. This method is used if the overhead is in the proportion to the total project cost.

Force Listing of Transactions: if selected, this option will force you to print the transaction listing before you can post the transaction.

Default Accounting Method: Accounting method determines how the system will recognise the revenue. Accounting Method selected in the “Default accounting method” field will be the default for the new contract or project. The options that we can select in this field are:

  • Completed Project
  • Total Cost Percentage Complete
  • Labour Hours Percentage Complete
  • Billings and Costs
  • Project Percentage Complete
  • Category Percentage Complete
  • Accrual Basis

Each accounting method will recognise revenue differently. I will explain each accounting method in detail in my next post.

Default Contract Style: Style tells system at which level to track the cost for each project. Selected contract style will be default for new contract but can be changed for each contract. Similarly selected style for contract will be the default for the project under that contract but can be change for each project. Different contract styles that are available under this option are:

  • Standard- Under Standard style the cost is tracked at the resource level. System allows you to use separate forms to assign resources to a project.
  • Basic- Under Basic style you can only track cost at up to category level.

Default A/R Item Number: For “time and materials” and “fixed price” projects if “item type” Invoice is issues it will take default A/R item selected in this option. Default item on the item type invoice can be set different for each project.

Default A/R Unit of Measure: Unit of measure selected in this option will be default for the item-type invoices. Each project can have different Unit of measurement as default.

Aging Periods: Here you can define five aging periods that can be used to classify the documents as current and overdue on reports.

Update Budget: If selected, system will update the budget whenever you process a transaction. System will take long time if it needs to update the budget for each transaction. So select this option only if you need to update the budget for each transaction.

Update Payroll: If this option is selected system will use the payroll expense and employee expense accounts from PJC when update Payroll option is used in PJC. If not selected system will use the accounts specified in US/Canadian Payroll system.

Percentage Complete Method: In this option we can specify when to clear billings and WIP Accounts for “Percentage Complete Accounting Method” Projects. Options are:

  • Clear Billings and WIP during Revenue Recognition: Generally used for short term contracts.
  • Clear Billings and WIP during Project Close.


To be Continue…


Tags: , , ,

#16 Accpac Finder

Date: 17 July 2011

The Finder is a pop-up window that displays records in a column format for a view. Records are displayed in one of two formats, selected by the user. The user can also select the order for record display. If desired, the caller can provide a filter to restrict the records displayed by the Finder.

Uses of the Finder
The Finder can be used for:

Inquiry In this case, the Finder provides a detailed list of items. The user can select the fields to be displayed by the Finder.
Searching In this case, the user chooses the Finder button to initiate the search for a specific item. The selection is placed in a buffer and the Finder is terminated. For this purpose, the Finder should be started modally by the calling program, so that no further work can be done by the caller until a selection has been made.
Selection In this case, the Finder selects an item to be operated on by another object. After the item has been selected, an object is started, and the selection is passed to it. After the object has been started, the Finder can either remain or terminate. If the Finder remains, the object started by the Finder is modeless. Subsequent Finder selections can be made and further instances of the object started. The objects started can be either peers or children of the Finder. If an object started is a peer, the user can terminate the Finder, but any other objects started by the Finder will not be terminated. If an object started is a child of the Finder, terminating the Finder causes all the Finder’s children to also be terminated.
If the Finder terminates after starting an object, the object obviously must have been started as a peer. The Finder provides the primary key for the selected item in the key area of the object that is started. It is also possible for the caller to provide a user area to be passed to the object started by the Finder.

Following is the code to call the finder that will show the item form ICITEM table in Accpac

Private Sub Cmditemfrm_Click()
Dim fnd As AccpacFinder.ViewFinder
Set fnd = New AccpacFinder.ViewFinder
fnd.Session = AccpacSession
fnd.ViewID = “IC0310”
fnd.DisplayFieldIDs = Array(7, 3, 5, 1, 8 )
fnd.ReturnFieldIDs = Array(7, 3)
fnd.Filter = “” ‘condition here
fnd.AutoTabAway = False
If fnd.Finder = True Then
‘Code here
End If
End Sub


1 Comment

Posted by on July 17, 2011 in Accpac Macro, Accpac Support, Sage Accpac


Tags: , , ,

#15 Accpac Views Protocol for INSERTING and UPDATING Data

Date: 10 July 2011

When we are using Accpac views to insert data into Accpac most of the validation it does by itself. This is one of the most important reasons, why we need to use Accpac views to insert or update data into Accpac Database.

The protocol that Accpac follows while doing Insert is as follows:
1. If the next header number is generated by the view, Put zero in the header number field and use Init to generate the next available header number. If the header number is specified by the caller, use Init to initialize the fields of the header, then Put the header
number in the header view.
2. Put the fields in the header.
3. Init detail to initialize the fields.
4. Put zero into the detail number field to insert from the start.
5. Put values in the other detail fields.
6. Verify detail. (Optional.)
7. Insert detail.
8. Go to step 5 until no more detail.
9. Verify header. (Optional.)
10. Insert the header. (This will do a Post of the details.)

Protocol for updating the data in Accpac is as follows (Including deleting the details):
1. Put header key into header view.
2. Read or Browse/Fetch the header view to get to the header.
3. Put the fields to be updated in the header view. (Optional.)
4. Put detail key into the detail view.
5. Read or Browse/Fetch the detail view to get to the detail.
The header number in the detail view should have been set by the header (because of the explicit composition).
6. Put the fields to be updated in the detail view.(Optional.)
7. Verify the detail. (Optional.)
8. Update or delete the detail.
9. Go to step 4 to process another detail.
10. Verify the header. (Optional.)
11.Update the header. (This will do a Post of the details.)

Browse/Fetch is the functions that help us to navigate through the data. Browse property do not have the “Where” or “Having” clause so we can use if condition to filter our data.


Leave a comment

Posted by on July 10, 2011 in Accpac Macro, Sage Accpac


Tags: ,

#14 Filtering Optional Field Values on Crystal Report from Accpac Database

Date: 03 July 2011

Recently I came to know that some of my colleagues and crystal report writers are facing issues at the time of fetching the optional fields form the Accpac database and showing it on the reports. It is may be because the way Accpac keeping the entries in the Database. Ok, now lets see how Accpac maintaining the optional fields and how we can easily filter it into our reports.

When we create any optional field, Accpac create a new entry in the optional field table. Let’s take Inventory control there is the master table “ICITEM” where all items will be saved. Now if we want to attach optional fields with the inventory then first we have to create optional fields from the Common Services “Optional Fields” form. Optional fields and there values will be stored in the optional field table “CSOPTFH” and “CSOPTFD” table. Further when we link it to inventory control module this information save into “ICOFD” table. Now at the time of creating new item we attach already created optional field with the new item and assign optional field value to it. Then, Accpac will store optional field values for each item in “ICITEMO” table with respective item numbers. I will try to explain this by diagrammatic representation:

From the above structure we can figure it out that In “ICITEMO” table the Item and optional field are coming from “ICITEM” and “ICOFD” tables.

Now the problem comes when we are trying fetching this information on the crystal report table where we have to show Optional fields horizontally. If we are putting condition like where optional field is equal to OPT1 then it will not bring OPT2 value on the report and if we not give any condition then it will duplicate the record. To solve this dilemma use duplicate tables instead of trying to retrieve data from one table. Here I am talking about “ICITEMO” table.

For example we need crystal report as follows

Here we can see that optional value one and two for each item is coming in front of respective item. How to do this easily? Let’s see. We know that the optional values are coming from one table “ICITEMO”. So we need to attach this table on the report and link it with “ICITEM”. But as I stated earlier if we give the condition for the optional value then either some optional value will not come or it will duplicate the data. Now to solve this, make and link alias of “ICITEMO” table on crystal report. Take as many number of “ICITEMO” tables as optional fields are. Like, here two optional values are there so we will take the Alias of “ICITEMO” table two times. Further we put the condition for each optional field with separate table. Let’s see how. Following is the crystal report link screen:

Here we can see that the ICITEMO table is used twice and linked to the “itemno” column of “ICITEM” table. Now this is how we can create the alias of the same table with different alias names. Here it is “ICITEMO” and “ICITEMO_1”. We can also give the alias name as the name of the optional field to make it easy. Just note down here that each alias is going to give one optional field value. Now after making such kind of link we have to set the condition also to retrieving the right value. So we will put the condition for each alias.

Now see the fig above, we can see that we are putting the condition that opt1 value should match with “ICITEMO” table and OPT2 should match with “ICITEMO_1” table. After doing this report is ready only we need to put right field at right place.

Like this we can take Optional value one from table “ICITEMO” and optional value two from “ICITEMO_1”.

Hope that this post will help the people how to take optional fields and make the report right. Further to add every person has its own way of doing things and each of them thinks he is right. But I want to say the option that I am giving will solve your problem and this is the easiest way among the couple of other solutions that I have. Even thought if any of you have any better one please comment and share with us.



#13 Accpac Help Not working

Date 05 June 11

Last week one of my clients faces an issue where on his PC Client help was not working. And the error he getting is “Internet Explorer cannot display the webpage”. Is it related to Sage Accpac? No way, this error is related to Accpac.
Then why it is coming when pressing F1 to access Accpac help. It is since Accpac Help is not in the URL allows list setting in the registry.

The solution to the above problem is:
Log is to the registry by following command
Then follow the following path:
If not available then create one.
Further add following two values under the above key:
“MaxAllowedZone” as Dword value and set it either 1 or 2 or 3 or 4
“UrlAllowedList” as string value =”Accpac server help folder path”

After doing the above just restart your PC and enjoy your Accpac help is working now.



Tags: ,

%d bloggers like this: