As developers, we are always trying to get table and field information from Dynamics GP

This primer will cover a number of different ways to get that information and discuss the benefits of each.

There is no 'best way', it really depends on what's going on and where you are in the system.

We want to note that David Musgrave has a similar blog entry here:

David is a treasure of information on all things related to Dynamics GP development, well worth following or attending his classes at conferences.



Sql procedure error codes returned:
Error Number = 399  Stored Procedure= taPMTransactionInsert  Error Description = Charge Amount is incorrect - CHRGAMNT <> DOCAMNT - CASHAMNT - CHEKAMNT - CRCRDAMT - DISTKNAM
Node Identifier Parameters: taPMTransactionInsert
VCHNUMWK = 00427824
VENDORID = 4164          
DOCNUMBR = TPO000009          
DOCDATE = 8/3/2016
Related Error Code Parameters for Node : taPMTransactionInsert
CHRGAMNT = Note: This parameter was not passed in, no value for the parameter will be returned.
DOCAMNT = 420.00000
CASHAMNT = Note: This parameter was not passed in, no value for the parameter will be returned.
CHEKAMNT = Note: This parameter was not passed in, no value for the parameter will be returned.
CRCRDAMT = Note: This parameter was not passed in, no value for the parameter will be returned.
DISTKNAM = Note: This parameter was not passed in, no value for the parameter will be returned.
  <VENDORID>4164           </VENDORID>
  <DOCNUMBR>TPO000009           </DOCNUMBR>
<eConnect xmlns:xsi="" xmlns:xsd="">
    <eConnectProcessInfo xsi:nil="true" />
    <taRequesterTrxDisabler_Items xsi:nil="true" />
    <taUpdateCreateVendorRcd xsi:nil="true" />
    <taCreateVendorAddress_Items xsi:nil="true" />
    <taPMTransactionTaxInsert_Items xsi:nil="true" />
    <taPMDistribution_Items xsi:nil="true" />
    <taAnalyticsDistribution_Items xsi:nil="true" />
      <VENDORID>4164           </VENDORID>
      <DOCNUMBR>TPO000009           </DOCNUMBR>
    <taMdaUpdate_Items xsi:nil="true" />
It's much easier (faster) to work if you have a query already written when you start. This is a template query that starts with the PM apply table and joins in the check and the voucher, and then shows the purchasing distribution.
Here is the script for the Top 10 Customers by Year dashboard
SSRS Servers <= 2014 cannot be configured to send email using a password. And in this day and age, what idiot allows their email server to relay unauthenticated email?

If you have any interest in SSRS, please remember where this blog entry is, you'll want it, and it'll save you the days that I've spent on this.

This article will walk you through setting up a mail server on a Server 2012 box with SQL 2014, and then configuring the mail server to only accept connections from the SQL server. This provides the security that we need to be sure that we're not an open relay.

Here we go:

This query will return the Recovery Model (FULL or SIMPLE) for each Database on a SQL Server

I can't swear this technique will work in all forms, but it works in Sales Transaction Entry. (3/5/2018: and PM Transaction Entry)

We often need to make change to data in a form, and we need to do it before the form saves or after it populates with data.

This technique will show you how.

I've recently started using the DetailsView control in .NET. This article is a basic template for how to use the controls (so I don't forget)

There are two technologies combined here, we're using a Telerik RadWindow for a popup control, and the DetailsView control

This is the code necessary to allow a winforms rad grid to handle dragging and dropping. It's basically a copy of the Telerik documentation but it makes me happy to have it here, and my code is a little more concise


This is a simple example of how to code the RadTileList. The code in the code behind could probably have been put in the markup... but that's the way that it evolved.

Does anyone know how to close Dynamics GP programmatically, using VS Tools?

In .NET I'd do form.close... but I'm not seeing how to get a reference to the main form.

I am debugging an existing piece of Dex code and am fairly new to Dexterity

In defining tables, how can i reference a table in a database other than the default  database? Is it possible to define such table? If yes, How?


I'm doing research for an article on how to find table information in Dynamics GP, and I'm looking at the Table Finder in my demo install of GP. I've not used this window, and it's completely blank. No data anywhere. Can anyone tell me how to make it work?

I'm familiar with recording and saving Macros in GP but primarily from GP 9.

We have moved to GP 2015 R2 and while I can still create a macro in GP, I'm not sure how to create the macro code that will actually log into GP 2015.

The XML below is working fine, however I am interested in retrieving the POP10110.ORD value that I just created this PO line for.  Can someone please advise whether this is possible using eConnect's CreateTransactionEntity method?

<eConnect xmlns:xsi="" xmlns:xsd="">


The Item Stock Inquiry screen is not displaying all of the in/out activity showing in the tables. I attached a screenshot of the Inquiry screen as well as a screenshot of the HITB SSRS report which pulls from the SEE30303 table. 

I checked the following:

1)  The option for "Maintain History" is selected under the Item Maintenance Options screen for this part#.

2) The "In" adjustments highlighted in yellow on the HITB report are missing from the Item Stock Inquiry screen.  I verified that these transactions were, however, in tables IV30300, IV10200, IV10201, IV00102 (On hand is correct), IV30200, IV30301, & SEE30303. 

I'm at a loss as to why the Item Stock Inquiry Screen is not showing all of the "In" transactions show in table IV10201.  Any help would be great.




Hello Everyone,

    I am pretty familiar with econnect at this time.  I am trying to figure out how to import an invoice to GP using eConnect.  I was able to import a Purchase Invoice which matched with the Receipt and PO but am unable to determine how to import a standard invoice.  No match on a po or receipt.  Just importing a standard invoice with GL Accounts.

Could anyone point me to the correct Nodes to look into?





So  I installed the incoming and out going service but when I run  the eConnectMSMQControl and go to the private que that was setup I click open and nothing happens. I also don't know where to drop the econnect xml files.

 I am assuming if I can drop a properly fotmatted econnect xml somewhere on the server the msmq will pick it up and send it to gp




Variable Allocation: I am using Unit Account for variable allocation.  The system seem to round the percentage of allocation to 5th decimal place (25.328%), is there a way to change to remove the decimal limitation.  For example, my unit accounts are setup as 1,2,3,4,5,6, it totals 21.  Is there a way to ask the system not to round when it's preparing the allocation?


I've been wrangling with purchase order receipts and landed cost.  I managed to get the landed cost portion working of "taPopRcptLineInsert" however, the way we end up doing landed cost is not by item-by-item basis.  Using the eConnect procedure, a landed cost entry is made in POP10700 for each receipt line in POP10500.  However, in the UI, it seems our company does it differently.  From the "Receivings Transaction Entry" window in purchasing, on the selected receipt we go to the "Landed Cost" button at the bottom of the window and proceed to make one entry for landed cost.

What this ends up doing in POP10700 is making two lines as shown here

Alternatively, I've tried calling the "taPopRcptLandedCost" stored procedure itself to enter these two lines.  Bizarrely, it works fine when I'm using the procedure to make a landed cost against a receipt number that doesn't exist.  However, when running it against receipt number that does exist (the whole point, really) I get error 8059 - "Input variable contains a duplicate document (POPRCTNM)."

I know there's a thread on this -

However, I've provided a line number and still gives me the error.  What's more, in the screenshot I posted of the two lines generated when doing things from the UI side, one entry only retains the "LCLINENUMBER" and omits RCPTLNNM as well as the header line LCHDRNUMBER.



I have a number of customizations in GP specifically on the Sales Transaction entry window.

I need to be able to open the Trade Discount window, apply a value and then close the form.

I can do this with a GP Macro but am unsure how to call the Macro from within GP and specifically using VB scripts.

Any advise is appreciated.

HI All,

Is there any way to post bank transfer from a .NET web application using GP web Service or econnect. 

Thanks in advance..!!

I am using SmartConnect which uses eConnect.  I am trying to import a payable transaction file with the check information included. 
I keep getting  the following error:
'Payment Number (CAMPYNNBR) for Check Payment already exists in PM Key Master PM00400'
I have my file grouped on Docnumber and DocDate and the file contains all the files needed, I think
DocType, Vendor, DocDate, DocNumber, Purchase Amount, Account, DistType, Debit, Credit, CheckbookID, CheckNumber and CheckDate
Any ideas what I am missing?
Will a 3rd party application created on eConnect for GP 2015 work with eConnect for GP 2010?

Que tablas en GP 10.0 relacionan las facturas con su respectiva nota de crédito?

What tables in GP 10.0 relate invoices with their respective credit note ?


Hi Team,

I am getting this error message when I try to import PO and GRN "Required fields cannot be null or blank: 'Item Number', 'Vendor Item Number'. Insert not attempted."

Please provide me the fix if you and share it.


Prabu Raghupathi

Hi Team,

I am getting this error "Account number string does not exist for the Inventory Account Number (442) Check the following fields on the POP Transaction Line object: 'Inventory Account Number'. " when I try to import PO and GRN with GP9.

I am able to find the Account Number using GP tables but unable to find the Inventory Account Number through GP tables.

Please provide me a solution which will help me a lot to fix the issue.


Prabu Raghupathi


I have a client using GP10 and want to do PO change orders to update revision numbers and make adjustements to the line items (even cancelling lines if needed).

I don't see how that can be done. Is there a separate proc or do we try to use the the <taPoLine> node?

Any input would be helpful. thanks!


Table Definition Quick Links
All Tables
SOP Tables
RM Tables
GL Tables
POP Tables
HR Tables
PM Tables
UPR Tables
IV Tables
Olympic Tables