Stephen Smith's Blog

All things Sage 300…

Sage 300 Articles

with 36 comments

Here is a categorized directory of all my articles on Sage 300 ERP.

Architecture

Accpac and its Databases
International Support in Accpac
Accpac Multi-Version Support
Moving on to Unicode
The Sage 300 System Manager Core DLLs
Multi-Threading in Sage 300
Synchronizing Data with Sage 300

Customization

Day End Processing
Accpac A/R Database Structure
Tables and Data Flow of the Accpac General Ledger Module
Tables and Data Flow of the Accpac Order Entry Module
Tables and Data Flow of the Accpac Inventory Control Module – Part 1
Tables and Data Flow of the Accpac Inventory Control Module – Part 2
Tables and Data Flow of the Accpac Purchase Order Module
Tables and Data Flow of the Accpac Accounts Payable Module
Tables and Data Flow of the Sage 300 ERP Payroll Module
Tables and Data Flow of the Sage 300 ERP System Manager Module
Sage ERP Accpac Macro Tips and Tricks
Customizing Crystal Reports for Sage ERP Accpac
Sage 300 ERP – Only Activate What You Need
Sage ERP Accpac 6 Customization
Migrating Customizations to Sage ERP Accpac 6
Customizing Quotes to Orders
Customizing the Order Details in Quote to Orders
Displaying Social Media in the Accpac 6 Portal
Customizing Sage ERP Accpac Inquiry
Reporting Via Macros
Sage 300 ERP Macros

Deployment

Accpac and Business Continuity
Accpac in the Cloud
Accpac on the Amazon Cloud
Accpac and SQL Server
User Roles and Security in Sage 300 ERP
Sage ERP Accpac 6 Deployment
Installing and Deploying Sage ERP Accpac 6.0A
Setting up Sage ERP Accpac 6.0A Securely
Accpac 6 Online
Sage 300 Online
Branching by Feature
Sage 300 ERP 2016 SQL Server Only
Installing the Sage 300c Web UIs
Installing the New Sage 300 Web UIs Securely
Scaling and Availability for the new Sage 300 Web UIs
International Support in Sage 300c

Features/Versions

Sage ERP Accpac 6.0A Compelling Installed Base Value
Accpac 6 FAQ
The Sage ERP Accpac 6.0A Portal
Sage ERP Accpac 6.0 Adhoc Query
Sage ERP Accpac 6.0 Quote to Orders
Sage ERP Accpac 6.0 Data Portlets
Sage ERP Accpac 6.0 – Locking Fiscal Periods by Module
Drilling Down from Crystal Reports in Sage ERP Accpac 6
Running Classic Forms in Sage ERP Accpac 6
Sage ERP Accpac 6 User Assistance
Sage 300 ERP 2012 RTM
Sage Advisor Update
Sage Advisor PEP
Sage 300 ERP 2012 Payment Processing
Sage 300 ERP Inquiry Queries for 2012
Value Added Application Features for Sage 300 ERP 2012
Sage Visual Process Flows
Sage 300 ERP 2012
Colorful Companies in Sage 300 ERP
New Payroll with Sage 300 ERP 2012 Product Update 1
Sage 300 ERP Desktops Through the Ages
Visual Process Flows for Sage 300 ERP 2014
Sage Mobile Service
Sage Billing and Payments
Sage Mobile Sales
Managing Lanpaks in Sage 300 ERP 2014
Screen Improvements in Sage 300 ERP 2014
Sage Intelligence 7.4
Looking Back on 2013 and Forward to 2014
Evicting Users from Sage 300 ERP
Sage 300 Moves into the Browser
The New Sage 300 Home Page
The Sage 300 2016 KPIs
Sage 300 2016 RTM
Accounting in the Web with Sage 300
Sage 300 2016 Operations Beta
Passing the Torch

Operations

On Database Dump and Load
Sage 300 ERP – Data Integrity
How to Best Demo Sage ERP Accpac 6.0A
SaaSifying Accpac
Sage 300 on Windows 8
Sage 300 ERP 2012 Supported Platforms

Programming/SDK

Accpac’s Business Logic
To SDK or Not to SDK
Entering Orders and Header/Detail Views
Opening Sage 300 ERP Sessions
The Sage 300 ERP Java API
Data Execution Prevention
Launching Non-SDK Programs From the Desktop
An Introduction to the Sage 300 ERP .Net API
Starting to Program the Sage 300 ERP Views in .Net
Composing Views in the Sage 300 ERP .Net API
Using the Sage 300 ERP View Protocols with .Net
Using Browse Filters in the Sage 300 ERP .Net API
Using the Sage 300 .Net API from ASP.Net MVC
Error Reporting in Sage 300 ERP
Sage 300 ERP Metadata
Sage 300 ERP Optional Fields
Using the Sage 300 .Net Helper APIs
CSQRY from the .Net API
Drilldown in Sage 300 ERP
Performance and the Sage 300 Views Part 1
Performance and the Sage 300 Views Part 2
Skills for Developing for Sage 300c
Sage 300 Web UI Internals
Introducing the SDK for the Sage 300 Web UIs
Sage 300 Web UI SDK – Adding UI Controls
Sage 300 Web UI SDK – Adding JavaScript
Adding Your Application to the Home Page
Adding a Grid to Your Sage 300 Web UI
Stateless Versus Stateful Sage 300c Web UIs
Accessing Sage 300c’s Business Logic from the Web UIs
Sage 300c Web Services

SageCRM

SageCRM 7.1 Released
What’s New in the Sage CRM Integration for Sage 300 ERP 2012
Sage CRM 7.2 Available for Sage 300 ERP
How to Run Customized Sage 300 Screens from Sage CRM

SData

SData in Sage ERP Accpac 6
More on SData and Sage ERP Accpac 6
Stateful SData
On the Sage GCRM Contract
Fun with SData
A Roadmap for SData Integration to Sage Products
Defining SData Feeds for Sage 300 ERP
SData Training Videos
SData Enhancements for Sage 300 ERP 2012
SData Referenced Resources

Troubleshooting

Diagnosing Problems Running Accpac Part 1
Diagnosing Problems Running Accpac Part 2
Diagnosing Problems Running Accpac Part 3
Diagnosing Problems Running Accpac Part 4
RVSpy and DBSpy
Diagnosing Problems with Sage ERP Accpac 6.0A 

Using Sage 300 ERP

Efficient Data Entry in Accpac
Accpac Credit Card Processing
Accpac Payment Processing
Export
G/L Account Structure in Sage 300 ERP

Written by smist08

April 26, 2013 at 11:37 pm

36 Responses

Subscribe to comments with RSS.

  1. […] Here is a categorized directory of all my articles on Sage 300 ERP. Architecture Accpac and its Databases International Support in Accpac Accpac Multi-Version Support Customization Day End Processi…  […]

  2. Steve,

    Hope you are doing well.. i have a question. What is the use of clone property in accpac datasource. could please explain with a sample scenario where its application is essential and most appropriate.

    thanks,
    Krish

    Krish

    August 17, 2013 at 8:42 am

    • Usually this is used to connect to multiple companies. Once you have a session signed onto one organization, then you can clone to get a session for another organization without providing the credentials again.

      smist08

      August 17, 2013 at 3:17 pm

  3. Yes. Clone is a method
    . I wanted to understand the usage of it so that, I will be using it effectively. Looking forward to your response.

    Thanks,
    Krish

    Krish

    August 17, 2013 at 8:45 am

  4. Hi – We run Sage ERP 6.0.a. I am responsible for entering and changing customer prices. We have about 750 customers. Some prices are the same across all customers while others are customer specific. We have about 8000 skus. Customers buy subsets of the 8000 skus and only those items they buy are entered into their account.

    Have you written an article on entering and changing prices? Or can you refer me to some ACCPAC ERP documentation on the following?

    Specifically, have you written about porting prices in an excel spreadsheet to a customer’s price list? About copying and pasting the prices of multiple skus from one price list to another and indicating that these were changed or will be changed on a specific future date? About deleting multiple skus in a price list?

    Regards,

    Bruce Kahn

    Bruce Kahn

    February 10, 2014 at 4:09 pm

    • I haven’t blogged specifically on this topic. Within Sage 300, check out the Copy Item Pricing and Update Item Pricing screens in the I/C Items and Price Lists folder. These are intended to perform the operations you mention. Plus you could record macros of these to create custom functionality.

      smist08

      February 12, 2014 at 5:05 am

  5. Hi Steve,

    I’m struggling with something that I hope you can shed a little light on. I’ve read many of your excellent articles on working with the 300/Accpac APIs and they’ve solved many problems for me. However, I have one that has been nagging, and even DPP support, who are also quite excellent, haven’t been able to help much in the past.

    The issue is that it seems to me that an insert/update of an OE Shipment or OE Invoice creates an automatically “chained” update to the original OE Order that is linked to the Shipment or Invoice. This even seems to happen when Day End runs. Let me illustrate what I mean with an example that also describes the problem I am having.

    I have a small module that does two main things — first, it deploys a table into the company database that is used to track if an order inside of our external system has been “locked,” as in, no modifications should be allowed to it. Second, it sub-classes the OEORDH view in such a way that when an update to the order is fired, it first confirms that the given order is not marked as locked in the previously mentioned table. If the order is not locked, the standard OEORDH update code runs ahead as normal, and if the order is locked, the update is stopped and an error is presented to the user indicating the lock is preventing their modifications.

    The problem with this is the “chaining” that seems to occur in Accpac when a Shipment or Invoice are entered against that original order, or Day End runs. This is particularly a problem in our case with the Invoice post or Day End because those functions don’t impact data on the original order that impact our external system, so we really don’t need to prevent those updates. Yet, the updates end up being prevented because something seems to chain the Day End and Invoice modifications through to resulting in a call to the Order update method.

    Is this an architectural limitation that I cannot work around, or is the approach of sub-classing the OEORDH update incorrect? Another thought I had was, is there a way to tell the source of the OEORDH update call, and discriminate against updates that are direct calls to OEORDH update, as opposed to these calls that seem to be “chained” from accounting functions that don’t impact inventory (our external system only cares about inventory… item numbers, quantities ordered/committed/picked/shipped, serials and lots, etc.). I can’t find any documentation indicating if this is possible.

    Nathan

    March 12, 2014 at 7:48 pm

    • One thing you can try. Before shipment/invoice updates OEORDH, they would first call OEORDH.viewCallParam with the parameter “op” value = 144, such that OEORDH only does a physical record update and nothing else (e.g. generation of temporary records, calculation of quantity deltas etc), so your subclassed view can detect the same exception.

      smist08

      March 13, 2014 at 12:49 am

      • Thanks Steve, this is a great reply, I have been searching high and low for advice on this and this is wonderful!

        A couple follow-ups:
        1. Is it possible to distinguish between an OEORDH update that occurs as a result of a shipment entry vs. an invoice entry?
        2. Is it possible to distinguish between an OEORDH update that occurs as a result of Day End vs. any other sources that trigger the update?

        Nathan

        March 13, 2014 at 1:58 pm

      • I think you can tell if day end is running, but then you couldn’t tell if someone is doing a shipment/invoice while day end is running (say on another workstation.

        smist08

        March 13, 2014 at 3:26 pm

  6. Hi Stephen,

    When you sharing this knowledge, you are doing a great job for dev community.
    Thanks to your articles, I confidently work with Sage .NET API.

    Can you please help me with following point:

    I need to get recently modified transactions (order entry) from .net API – I need to get all transactions list that was modified in an hour for example.
    But I can not find any relevant fields in order entry. It is “[AUDTDATE] and [AUDTTIME]” fields in MS SQL database. I am able to get other fields (like order number, addresses, shipto, etc.) but not this one.

    Do you have any suggestions how I can get this values or idea about any workaround for my issue?

    My environment: Sage 300 2012, .net API, MS SQL 2008 R2.

    Dmitry K.

    April 2, 2014 at 3:56 pm

    • I don’t think there is an easy way to do this. The Audtime field isn’t exposed from the Views. You could read the database with ODBC or something to get this (just don’t write back this way). Or you just need to read the records and calculate a hash value that you compare to something you stored to see if the record changed.

      smist08

      April 5, 2014 at 8:13 pm

  7. Hi Steve,

    I have some code that uses the Sage 300 ERP .NET Libraries portion of the API/SDK that creates IC Adjustments from external system data. On rare, but troublesome, occasions, I receive the following error:

    Options.

    Record has been modified by another program.

    Certainly, I understand what the “record has been modified…” error means. What I’m wondering is, what does “Options” tell me? My gut feeling is that I have one or more views opened with a read/write DBLink that should just be opened with a read DBLink, and wondering if the mention of “Options” in the error would possibly indicate what view(s) might not like that?

    Thanks.

    Nathan

    July 10, 2014 at 2:43 pm

    • The usual reason you get these is due to the next sequence numbers for various things being stored in Options records. Generally in our transactions we try to minimize these by updating these late in a transaction so there isn’t much room for these, or if we can we allocate several numbers at one shot. If you are setting transactions yourself, it might be that they’ve gotten quite large.

      smist08

      July 10, 2014 at 3:41 pm

      • Thanks, Steve.

        I don’t entirely follow what you mean. I’m not setting transactions using TransactionBegin, etc., if that’s what you mean?

        Nathan

        July 17, 2014 at 3:25 pm

      • Yes, just I’ve seen some people use the dblink.Transbegin type functions to make transactions bigger and then gotten a lot more multi-user errors as a result.

        smist08

        July 17, 2014 at 10:40 pm

      • Are there any other things that can cause this error since I’m not explicitly using the Transaction methods?

        Nathan

        July 21, 2014 at 1:08 pm

      • Hi Smist,

        I am getting following error, while posting in SAGE ERP 300 – Inventory control — IC Transfer. Could you pl help in this regard.

        Transfer detail lot number – record has been modified
        postt-pd-10 (6204 ICPOSTT1.C)
        internal error gl-init-03 (943 ICDEP1.C)
        Cannot post general ledger transcations
        day end processing could not process all transaction
        posting/saving failed

        Regards
        ACG

        acg

        May 11, 2015 at 4:50 pm

  8. Is there a way one can change a contract’s billing type from Non-Billable to billable on Sage ERP Project Job Costing (there is already an invoice captured against this contract)? If one has to change it in the tables, which tables will be affected?

    Jean Dauth

    September 30, 2014 at 11:36 am

    • I imagine that if the UI is preventing you from changing this, then its protecting the data. That if this did change then the collected numbers for the contract would be incorrect. You might be better off creating a new contract in this case.

      smist08

      October 2, 2014 at 2:51 am

  9. Great articles on Sage 300 ERP you have here!

    Equation

    October 7, 2014 at 8:24 pm

  10. Can you please explain why you don’t use stored procedures with Sage 300 ERP (Accpac)?

    Sage 300 ERP

    October 7, 2014 at 8:27 pm

    • Generally we try to stick to standard SQL for portability. Even now that we are only using SQL Server, we have to contend with Azure SQL which is quite different. There are many articles that state stored procedures are bad like http://weblogs.asp.net/fbouma/38178. I don’t think they are inherently bad and would use them for very narrow purposes, but would rather have my business logic clearly defined at a higher layer..

      smist08

      October 7, 2014 at 10:19 pm

  11. Hi Stephen. Please help me understand the events that results in the various Transaction Types assignments in the AROBL Table. For example:
    11 = Invoice – Item Issued
    12 = Invoice – Summary Entered
    14 = Invoice – Summary Issued
    15 = Invoice – Item Entered

    Leroy Gordon

    November 9, 2014 at 7:09 pm

    • Its the type of document you get as a result of posting. Here is the longer list:

      1 = Unapplied Cash – Posted
      11 = Invoice – Item Issued
      12 = Invoice – Summary Entered
      13 = Invoice – Recurring Charge
      14 = Invoice – Summary Issued
      15 = Invoice – Item Entered
      21 = Debit Note – Item Issued
      22 = Debit Note – Summary Entered
      24 = Debit Note – Summary Issued
      25 = Debit Note – Item Entered
      26 = Debit Note – Advance Credit Claim
      31 = Credit Note – Item Issued
      32 = Credit Note – Summary Entered
      34 = Credit Note – Summary Issued
      35 = Credit Note – Item Entered
      40 = Interest Charge
      50 = Prepayment – Posted
      51 = Receipt – Posted
      73 = Refund – Posted

      Have a look at https://smist08.wordpress.com/2011/04/09/accpac-ar-database-structure/ for an idea of how posting works.

      smist08

      November 10, 2014 at 4:07 am

  12. Hello Steve,
    Hope you are doing well. I am a programmer in Thailand. Now I am using Sage 300 ERP. May I ask you any question? Can I change value of optional field that is used in Purchase order details through database directly ?

    Thank you very much in advance

    Thanet

    Thanet

    November 4, 2015 at 7:04 am

    • Perhaps have a look at this article: https://smist08.wordpress.com/2014/01/04/sage-300-erp-optional-fields/ to see how to do this via our API.

      We don’t support people changing the database directly as it can break database integrity.

      smist08

      November 4, 2015 at 11:01 pm

      • Thank you for your suggestion.
        More question,
        Around 3 months ago I found some error 5-6 times on OE Order entry that showed “Record has been modified by another program”.
        There are 20 users in my system (access to Accpac by remote to terminal service server), 6 of all users used OE Order entry but this error happened to only one user.

        I am positive there is no user uses the same document at the same time.
        I tried to solve this by created the new user ID but it still has error.

        Please advise.
        Thank you very much.

        Thanet

        November 5, 2015 at 6:41 am

      • A lot of times the contention can be on something else, like an options record. Often this can depend on the various settings you have for I/C and O/E. If you are creating sub-ledger batches during posting, perhaps try switching this to during Day End.

        smist08

        November 5, 2015 at 9:56 pm

  13. I am creating program that is similar to Accpac OE Order entry and send transaction to Accpac by using Acapac API.
    I have some problem when the customer credit available is not enough that causes my code is not working.
    Are there any solutions for check customer credit available before send transaction to Accapc.
    I am using Sage 300 ERP.

    Thank you.

    Thanet

    November 10, 2015 at 2:48 am

  14. […] Here is a categorized directory of all my articles on Sage 300 ERP.  […]

  15. Client using Sage ERP V2016 with MS SQL 2012 R2

    Today user able to log in to Sage ERP 300 V2016 using User ID ADMIN and PW but no menu options displaying at the left hand task pane except Intelligent Reporting . We have guided user to login as admin in sample database also and guided her to create new database then to do a dbload with no security also same screen shot no menu options displaying at the left hand task pane except Intelligent Reporting

    As confirmed by IT colleague there is NO any network changes or windows update was conducted in past few days We have guided users to access to Database Setup of respective database to run Propagate – OK ,

    Remote access to server or from all the 5 WS same screen shot no menu options displaying at the left hand task pane except Intelligent Reporting

    Run the system diagnostic on server and workstation and check the log file system – OK

    Run scanism – OK

    Able to print system information and displaying all the modules installed .

    Able to access to all the tables from Management Studio – OK

    Able to load the client’s dbdump datafiles at our office – OK , run Verify /CDI – OK

    Any other possible areas to look into besides uninstall and install the Sage ERP V2016 programs again

    Belinda Chua - Singapore

    October 31, 2016 at 6:33 am

    • Sometime multiple installs, and multiple runtime folders in the PATH can cause this sort of thing. Double check the program path and data path look ok in system information as well.

      smist08

      October 31, 2016 at 3:05 pm

      • Thanks for the prompt info.

        We have checked the size/date of the files at each folder \AR63A\ENG\GRP.DAT ; \AP63A\ENG\GRP.DAT; \GL63A\ENG\GRP.DAT,\BK63A\ENG\GRP.DAT; \TX63A\ENG\GRP.DAT; \AM62A\ENG\GRP.DAT; \AS63A\ENG\GRP.DAT all changed to the extension of D2B

        We managed to resolve the issue by repairing all the Sage V2016 programs and have to install Norming Fixed Assets V6.2 again to repair , Servers being attacked by virus and all he excel files and GRP.DAT
        to different extensions. There are no trace of virus attacks at Event Logs

        Belinda Chua - Singapore

        November 2, 2016 at 1:08 am


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: