I am trying to invoke the global and form level procedures available in VS tools. However, I cannot find the parameter names of the procedures. I have checked the VS tools SDK; these are documented as parm1, parm2 and so forth. Some functions take up to 12 parameters.

Example: For procedure Dynamics.Procedures.GetBudgetDates, the documentation available in visual studio is void GetBudgetDatesProcedure.Invoke (FieldReadOnly inParam1, ref Field outParam2, ref Field outPranm3)

There is no information about what these parameters do. Is there any way to find parameter name and description of procedures and functions?

I've come across an issue where seems to keep changing the size of my buttons. It only seems to happen on the buttons and only when seems to want to relead the graphical view. Anyone had this issue and come up with a solution? It's really frustrating to have to fix the design every time I edit the form.

I have some code (see below) where I am trying to see if a vendor exists. However, in the case where the vendor does not exist I get an exception thrown from the webservice. If the vendor is there then all is good. So besides traping the error and assuming (this would be bad) that the issue was the vendor did not exist, is there some other way to check to see if they exist? I really don't want to pull back *all* vendors just to loop through them as this could get memory intensive.


    Private Function GetVendorByKey(ByVal AgentID As String, ByVal CompanyId As Integer) As Vendor
        Dim companyKey As New CompanyKey
        Dim context As New Context
        Dim vendor As New Vendor
        Dim vendorKey As New VendorKey
        Dim gpWS As New DynamicsGP
            gpWS.UseDefaultCredentials = True
            gpWS.Credentials = System.Net.CredentialCache.DefaultCredentials
            gpWS.Timeout = System.Threading.Timeout.Infinite

            companyKey.Id = CompanyId

            context.OrganizationKey = DirectCast(companyKey, OrganizationKey)
            context.CultureName = "en-US"

            vendorKey.Id = AgentID
            vendor = gpWS.GetVendorByKey(vendorKey, context)
        Catch ex As Exception
            GP.SharedMethods.Errors.ReportException(ex, "There was a problem finding then agent " & AgentID & " .", True)
            vendor = Nothing
            'Clean up
            companyKey = Nothing
            context = Nothing
            vendor = Nothing
            vendorKey = Nothing
            gpWS = Nothing
        End Try

        Return vendor
    End Function


An error occurred while using the BCP utility--Data was not correctly copied to the server.  Please verify your odbc settings and that BCP has been correctly installed.  Great Plains Utilities will now exit

I've used David Musgrave's Support Debugging Tool several times, it's just been updated. You'll want to look at this...

Here's a quick walkthrough on creating your first VSTools project.

Open Visual Studio (the screen shots here are from VS 2008)


You should see something like the below. If not, you haven't installed VS Tools correctly. Go back to the install documentation.


Hi Gurus,

I need to determine the user id and company name when a particular user log in msgp. Thanks in advance.



Dear Stev

I make some customization on SOP screen, using e-Connect in GP10.

Everything is working very well.

Now I am facing a new problem which is want some PC's to connect to GP through Workgroup environment.

I am facing this error when e-Connect is starting to run

"Logging failed for user''. The user is not associated with a trusted SQL Server connection"
I make the following:
1.       DTC Logon Account is set to NT AUTHORITY\NetworkService
Please advise me what to do.


We are practically brand new to eConnect so this very well may be a simple answer (to someone who knows what they're doing).

 We have an internal Windows Forms app that we use for all our in-house activity.  We are importing NACHA formatted reject bank files into our database and intend to pass the info through eConnect to Great Plains to create reject invoices in the RM module.  The only code example we have been able to find uses the Sales Order Processing module of GP, which is not where we do it.  We have taken the code and attempted to convert it to the RM class, but it is mainly guesswork.  We were successful in shooting a batch header and a single line item to GP, but cannot get it to work with multiple line items.  The class has less options than the SOP module, but I find it hard to believe that something this simple can't be done.  Can someone take a look at our code and give us some idea what we're doing wrong?  This is the section of code that creates the XML file that is passed to eConnect.  The lines in yellow are the ones that are causing it not to compile.  It's basically the Microsoft sample SOP code, where we have commented out and replaced with RM specific info.  Thanks for any help you can provide!


        'This subroutine creates an eConnect invoice XML document and writes the XML to a file

        Public Sub SerializeReceivablesObject(ByVal filename As String)




                Dim receivablesOrder As New RMTransactionType               'As New SOPTransactionType

                Dim receivablesLine0 As New taRMTransaction                  'As New taSopLineIvcInsert_ItemsTaSopLineIvcInsert

                Dim receivablesLine1 As New taRMTransaction                 'As New taSopLineIvcInsert_ItemsTaSopLineIvcInsert

                Dim receivablesHDR As New taCreateUpdateBatchHeaderRcd      'As New taSopHdrIvcInsert

                Dim LineItems(1) As taRMTransaction                         'As taSopLineIvcInsert_ItemsTaSopLineIvcInsert


                'Populate the elements of the first invoice line

                With receivablesLine0

                    .RMDTYPAL = 1 'If origin is 1 then 1 sales/invoice, 2 error, 3 debit memo, 4 finance charge, 5 service/repairs, 6 warranties, 7 credit memo

                    .DOCNUMBR = "Test1"

                    .DOCDATE = "05/26/2009"

                    .BACHNUMB = "ACHREJ052609"

                    .CUSTNMBR = "19860-27528"

                    .DOCAMNT = 39.0

                    .SLSAMNT = 39.0

                End With


                'Add the invoice line to the array

                LineItems(0) = receivablesLine0


                'Populate the elements of the second invoice line

                With receivablesLine1

                    .RMDTYPAL = 1 'If origin is 1 then 1 sales/invoice, 2 error, 3 debit memo, 4 finance charge, 5 service/repairs, 6 warranties, 7 credit memo

                    .DOCNUMBR = "Test2"

                    .DOCDATE = "05/26/2009"

                    .BACHNUMB = "ACHREJ052609"

                    .CUSTNMBR = "28613-00000"

                    .DOCAMNT = 100.0

                    .SLSAMNT = 100.0

                End With


                'Add the invoice line to the array

                LineItems(1) = receivablesLine1


                'Use the array of invoice lines to populate the transaction types array of line items

                ReDim Preserve receivablesOrder.taRMTransaction(1)

                receivablesOrder.taRMTransaction = LineItems


                'Populate the elements of the taCreateUpdateBatchHeaderRcd XML node

                With receivablesHDR

                    .BACHNUMB = "ACHREJ052609"

                    .BCHCOMNT = "ACH Rejects settling on 05/26/09"

                    .SERIES = 3

                    '.BCHSOURC = "VCS"

                    .DOCAMT = 139.0

                    .ORIGIN = 1 ' 1 is transaction entry (reject) 2 is cash receipt (collection)

                    .NUMOFTRX = 2

                    .GLPOSTDT = "05/26/2009"

                    '.CHEKBKID = 1

                End With


                'Add the header node to the transaction type object

                receivablesOrder.taSopHdrIvcInsert = receivablesHDR


                'Create an eConnect document object and populate it with the transaction type object

                Dim eConnect As New eConnectType

                receivablesOrder.taRMTransaction = receivablesLine0

                ReDim Preserve eConnect.RMTransactionType(0) 'SOPTransactionType(0)

                eConnect.RMTransactionType(0) = receivablesOrder


                'Create a file on the hard disk

                Dim fs As New FileStream(filename, FileMode.Create)

                Dim writer As New XmlTextWriter(fs, New UTF8Encoding)


                ' Serialize using the XmlTextWriter to the file

                Dim serializer As New XmlSerializer(GetType(eConnectType))

                serializer.Serialize(writer, eConnect)



            Catch ex As System.Exception


            End Try

        End Sub


    End Class


We are developing a PO integration with Non-Inventory items into GP10 using eConnect 10.

Microsoft Dynamics GP\Tools\Setup\Purchasing\Purchase Order Processing\Options.. configuration has
Tax Calculation: Advanced
Tax Options: Base on vendor for Non-inventory items, Freight and Misc

The sample integration XML looks like:

<?xml version="1.0" encoding="UTF-8"?>
<eConnect xmlns:xsi= 
        <InventoryAccount>0010-0000-1220  -000</InventoryAccount>

Vendor "VEN1" has TaxScheduleID="PURCH"
Vendor "VEN1" has Purchase address, which has TaxScheduleID="PURCH"
SiteID "MAIN" has TaxScheduleID="PURCH"

TaxScheduleID "PURCH" has GST in it, so it' 5%

eConnect 10 creates PO with PO lines no problem. 
However when I open PO in GP10 client header tax amount nor details tax amount are 
calculated. When I change quantity or cost or Cut/Copy back 
TaxScheduleID in PO using GP10 client detail taxes get calculated on focus leave 
from the editbox control.

It feels like the tax calculation engine is not being invoked by 
eConnect 10, because POP10100.TXENGCLD=0 for the integrated PO header.

What am I doing wrong that taxes don't get calculated during the 
integration? Is there a way to invoke or force tax re-calculation via eConnect 10?

Please advise me what to do.

Edit 9/16/15 View the main article for this error here 

I am importing SOP invoices from XML files prepared by a client.  The file appears to be correct, but when I attempt to import it, I get the error

"Subtotal does not match the line item totals".

I have asked them to include the Subtotal node in their XML because the transactions are coming from an eCommerce web site, and I want to ensure that the data and subtotals being imported from the XML files matches what GP calculates.  In theory, this shouldn't be a problem, as there should be no issue including the Subtotal node (and I've done other eConnect imports that have the Subtotal node that work fine).

To try and rule out any issues with tax and freight and do a basic test, I have even tried modifying the file so that it only has one line line item with no tax or freight, but the same error occurs.  Entering the transaction directly into GP doesn't give any errors or other clues.

I'm hoping it's something simple, like a missing node or a simple mistake, but I'm not seeing it...

Any help would be appreciated...


 eConnect error: Microsoft.GreatPlains.eConnect.eConnectException: Error Number = 67  Stored Procedure taSopHdrIvcInsert  Error Description = Subtotal does not match the line item totals

Sql procedure error codes returned:
Error Number = 67  Stored Procedure taSopHdrIvcInsert  Error Description = Subtotal does not match the line item totals
Node Identifier Parameters: taSopHdrIvcInsert                                  
SOPNUMBE = 940843-123557
Related Error Code Parameters for Node : taSopHdrIvcInsert                                  
SUBTOTAL = 30.00





Processing complete: 6/23/2009 12:15:14 PM


 <?xml version="1.0" encoding="utf-8"?>
<eConnect xmlns:xsi="" xmlns:xsd="">


Edit 9/17/15 View the main article for this error here 

Is there a way to insert line items via taPopRcptLineInsert onto an existing receipt?  When I try to feed it the desired existing POPRCTNM, I get the error 'Input variable contains a duplicate document (POPRCTNM)".  It works of course if I leave the POPRCTNM field empty, but it places each separate transaction on its own receipt and I would like to manage the receipts better than that.  Any ideas?

Are there any custom nodes out there for the Dynamics Manufacturing or Horizons Manufacturing?  I remember talking to some MSFT developers 3 or 4 years ago and they said some manufacturing functionality would be available soon, but I haven't heard anything since.  Any alternatives out there?  We have been doing screen-level integration and I can't tolerate it any more for obvious reasons...

Edit 9/17/15 View the main article for this error here 

I'm new to eConnect & trying to use eConnect for project accounting. the first thing I need to know is the hierarchy of creating a full project, i.e, contract, project, cost category, timesheet, etc.

I used eConect and created a contract successfully, but got stuck on project. Soem guidance and sampel codes aer appreciated.




Hi all

I'm using the <taSopTrackingNum> element to record information against a sales order.

Can anyone tell me which screen I have to use to see it when it has been loaded



Paul (appologies if off topic)

Dear All

I am working with GP 10 SP3.

In Screen:

Inventory à Transaction à Transfer Entry

Inventory à Transaction à Transaction Entry

Sales à Transaction à Sales Transaction Entry

I want to know the sequence that GP uses when I Post a transaction in any of the above screens, what are the tables affected and what fields affected inside these tables and Lots too.

I know that tables names in SQLSERVER2005 but I don’t know the sequence and I don’t know what the effected fields inside these tables are.

So please I need you advise if you please.

Thank you

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