DynDeveloper.com

DynDeveloper.com

Sign Up Now! Log In

Archives

 

I love my job. Really. Every day is something new.

Yesterday a major ISV contacted us for help with what appeared to be a failed eConnect install, they were using the Transaction Requestor functionality in eConnect to get data about a Vendor in GP and it was failing with an odd error. I've seen a great number of eConnect errors <smiles>, this one was new.

The error said (in part):

Error getting Vendor for vendor ID '<vendor name>': The specified schema name "dbo" either does not exist or you do not have permission to use it.
Cannot find the object 'raRequesterVendor2', because it does not exist or you do not have permission.
Could not find stored procedure 'dbo.taRequesterVendor2'

During the troubleshooting, we discovered that the eConnect_out_setup table had only 1 line. It should have around 500. In our case, it only had the Cash_Receipt line, which is the first one in our demo install.

There should also be two or three stored procedure in the database that start with 'taRequester' for each line in eConnect_out_setup. We had only three, the three that go with Cash_Receipt: taRequesterCash_Receipt0, taRequesterCash_Receipt1, taRequesterCash_Receipt2.

This article discusses how to troubleshoot and repair this failed eConnect install.


 
 
 

This article provides a simple function to return the last day of the input month.

Possible uses are below

I know that this is a forum dedicated to Dynamics GP development, but this issue has happened to me too many times not to blog. I just want to have the answer handy so the next time it happens I can get back to work quickly. I'll file this under 'off topic'

The issue is that Outlook sometimes opens up with the favorites folders rearranges and resists efforts to re-arrange them.

 

I have occasion to need to FTP data in order to integrate it. Usually I use the FTP components that come with .NET, but they don't handle SFTP. It's a changing world.

The code sample below shows how to use the Renci.SshNet dll. It's free, here:

https://github.com/sshnet/SSH.NET

If I have occasion to need this again I'll blow it out into a full class, but for now I just need the upload.


 

Hi,

 

So I managed to get a working eConnect solution in dev, have deployed to live and am getting the following validation error:

 

eCONNECT VALIDATION ERROR: Microsoft.Dynamics.GP.eConnect.eConnectException: Sql procedure error codes returned: 

Error Number = 4612  Stored Procedure= taPopRcptLineInsert  Error Description = Invalid Account Index
Node Identifier Parameters: taPopRcptLineInsert
POPTYPE = 3
POPRCTNM = R000033
ITEMNMBR = Laynards x 30
Related Error Code Parameters for Node : taPopRcptLineInsert
INVINDX = Note: This parameter was not passed in, no value for the parameter will be returned.


<taPopRcptLineInsert>
  <POPTYPE>3</POPTYPE>
  <POPRCTNM>R000033</POPRCTNM>
  <ITEMNMBR>Item x 30</ITEMNMBR>
  <ITEMDESC>Item x 30</ITEMDESC>
  <VENDORID>TAN002</VENDORID>
  <RCPTLNNM>1</RCPTLNNM>
  <UOFM>Each</UOFM>
  <UNITCOST>43.20</UNITCOST>
  <EXTDCOST>86.40</EXTDCOST>
  <NONINVEN>1</NONINVEN>
  <QTYSHPPD>2</QTYSHPPD>
  <QTYINVCD>2</QTYINVCD>
  <Purchase_IV_Item_Taxable>3</Purchase_IV_Item_Taxable>
  <LOCNCODE>NO PROJECT</LOCNCODE>
  <CURNCYID>GBP</CURNCYID>
</taPopRcptLineInsert>

   at Microsoft.Dynamics.GP.eConnect.eConnectMethods.CreateEntity(String ConnectionString, String sXML)
   at RemoteServerTest.Program.PostXMLToDynamics()

 

 

Ihave attempted to add the INVINDX to the eConnect object, but for some reason this parameter does not serialise

 

 

My C# is 

 

[code]

 

                //Invoice Header Details
                invoiceHeader.POPRCTNM = invoice.SupplierDocumentNumber;    //receipt number placeholder
                invoiceHeader.POPTYPE = 3;                                  //Shipping/invoice
                invoiceHeader.VNDDOCNM = invoice.InvoiceNumber;             //invoice number
                invoiceHeader.CURNCYID = "GBP";                             //currency defaults to GBP
                invoiceHeader.TAXSCHID = invoice.TaxSchedule;               //Tax Code
                invoiceHeader.receiptdate = invoice.InvoiceDate.ToString("dd/MM/yyyy");
                invoiceHeader.USINGHEADERLEVELTAXES = 2;
                invoiceHeader.AUTOCOST = 1;
                invoiceHeader.BACHNUMB = batchNumberPlaceHolder;

                oPOPReceivingsType.taPopRcptHdrInsert = invoiceHeader;

                //Invoice lines

                oPOPReceivingsType.taPopRcptLineInsert_Items = new taPopRcptLineInsert_ItemsTaPopRcptLineInsert[invoice.InvoiceLines.Count];

                foreach (OutgoingInvoiceLine line in invoice.InvoiceLines)
                {

                    taPopRcptLineInsert_ItemsTaPopRcptLineInsert ecLine = new taPopRcptLineInsert_ItemsTaPopRcptLineInsert();

                    ecLine.POPRCTNM = invoice.SupplierDocumentNumber;
                    ecLine.VENDORID = vendorReference;
                    ecLine.CURNCYID = "GBP";
                    ecLine.ITEMNMBR = line.ItemDescription;
                    ecLine.ITEMDESC = line.ItemDescription;
                    ecLine.UOFM = "Each";
                    ecLine.QTYINVCD = line.Quantity;
                    ecLine.QTYSHPPD = line.Quantity;
                    ecLine.UNITCOST = Decimal.Parse(line.UnitCost.ToString());
                    ecLine.EXTDCOST = Decimal.Parse(Convert.ToString(line.UnitCost * line.Quantity));
                    ecLine.Purchase_IV_Item_Taxable = 3;
                    ecLine.EXTDCOSTSpecified = true;
                    ecLine.UNITCOSTSpecified = true;
                    ecLine.NONINVEN = 1;
                    ecLine.LOCNCODE = "NO PROJECT";  //default Location Code
                    ecLine.RCPTLNNM = lineNumber;
                    ecLine.POPTYPE = 3;
                    ecLine.INVINDX = 0;

                    oPOPReceivingsType.taPopRcptLineInsert_Items[lineIndex] = ecLine;

                    totalTax += line.UnitCost * line.Quantity;
                    lineIndex++;
                    lineNumber++;
                }

                //Invoice Tax
                invoiceTax.TAXTYPE = 0;
                invoiceTax.POPRCTNM = invoice.SupplierDocumentNumber;
                invoiceTax.VENDORID = vendorReference;
                invoiceTax.TAXDTLID = invoice.TaxDetail;
                invoiceTax.TAXAMNT = totalTax;
                invoiceTax.MSCTXAMT = Decimal.Parse("0.00");
                invoiceTax.FRTTXAMT = Decimal.Parse("0.00");


                oPOPReceivingsType.taPopRcptLineTaxInsert_Items = new taPopRcptLineTaxInsert_ItemsTaPopRcptLineTaxInsert[] { invoiceTax };

 

[/code]

 

 

 

Having a look around I suspect this is a GL Account set up issue (difference between the databases) - but I can't actually see where I would set this within the XML

 We have an existing PAEmployeeExp integration and I'm getting the following error which I have not seen before. The Project Budget already has significant costs under the cost category being used so this is not a budget issue I don't think. Could this be related to this being the first costs of the new fiscal year 2016?

Error: You are not allowed to have negative actual costs

Error: Purchase order number does not exist

Trying to receive inventory and I'm getting the following error.

Error Number = 2052  Stored Procedure= taPopRcptLineInsert  Error Description = Purchase order number does not exist Node Identifier Parameters

<?xml version="1.0" encoding="UTF-8"?>
<eConnect xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <POPReceivingsType>
      <taPopRcptLineInsert_Items>
         <taPopRcptLineInsert>
            <POPTYPE>3</POPTYPE>
            <POPRCTNM>REC65999</POPRCTNM>
            <PONUMBER>4400001168</PONUMBER>
            <ITEMNMBR>ASENA00008</ITEMNMBR>
            <VENDORID>SPE00011</VENDORID>
            <VNDITNUM>ASENA00008</VNDITNUM>
            <QTYSHPPD>250</QTYSHPPD>
            <QTYINVCD>250</QTYINVCD>
         </taPopRcptLineInsert>
      </taPopRcptLineInsert_Items>
      <taPopRcptHdrInsert>
         <POPRCTNM>REC65999</POPRCTNM>
         <POPTYPE>3</POPTYPE>
         <VNDDOCNM>REC65999</VNDDOCNM>
         <receiptdate>1/5/2016</receiptdate>
         <BACHNUMB>R-1-5-2016</BACHNUMB>
         <VENDORID>SPE00011</VENDORID>
      </taPopRcptHdrInsert>
   </POPReceivingsType>
</eConnect>

 

 

What is required to move a copy of our existing integration's from Dynamics 2010 to Dynamics 2015?

Is the code portable between the various version of eConnect like integration manager integration's will be?

 

Thank you

 

Mark

 

 

Error: Decimal Places passed in for UNITCOST does not match setup

 

Hello, Can anyone guide me on how to resolve the decimal places passed error. I'm using GP version 9 and trying to process the PO manually, I found the error in scribe console error. I have tried to process the po after removing the decimal places but still it is not working.

Can you help with the following select query that I need for a client?

 

Tables:

IV10200 – Inventory Receipts (ONE)

IV10201 – Inventory Receipts Detail (MANY)   

 

select

r.itemnmbr as 'Item',

r.trxloctn as 'Location',

r.DATERECD as 'DocDate',

r.rcptnmbr as 'Receipt No',

r.RCTSEQNM as 'Receipt SEQ',

r.qtyrecvd as 'Qty Received',

r.QTYSOLD as 'total qty sold',

r.unitcost as 'Unit Cost',

s.origindocid as 'Sales Doc',

s.qtysold as 'Qty Sold'

from IV10200 r

join IV10201 s on r.itemnmbr = s.ITEMNMBR and r.RCTSEQNM = s.SRCRCTSEQNM

order by r.ITEMNMBR

 

 

Here’s where I need your help, For r.qtyrecvd I only want an amount to appear on the first row all the others should be zero.

 

Thanks

 

 


 

Editor's note: the main article for this error is here 

Hi, I've tried everything suggested, even got a team viewer session onto their server to check but cannot figure out why this is not working on their test system but it works on my sample data system

eCONNECT VALIDATION ERROR: Microsoft.Dynamics.GP.eConnect.eConnectException: Sql procedure error codes returned: 

Error Number = 4612  Stored Procedure= taPopRcptLineInsert  Error Description = Invalid Account Index
Node Identifier Parameters: taPopRcptLineInsert
POPTYPE = 3
POPRCTNM = R000095
ITEMNMBR = Laynards x 30
Related Error Code Parameters for Node : taPopRcptLineInsert
INVINDX = Note: This parameter was not passed in, no value for the parameter will be returned.


<taPopRcptLineInsert>
  <POPTYPE>3</POPTYPE>
  <POPRCTNM>R000095</POPRCTNM>
  <ITEMNMBR>Laynards x 30</ITEMNMBR>
  <ITEMDESC>Laynards x 30</ITEMDESC>
  <VENDORID>TAN002</VENDORID>
  <RCPTLNNM>1</RCPTLNNM>
  <UOFM>Each</UOFM>
  <UNITCOST>43.20</UNITCOST>
  <EXTDCOST>86.40</EXTDCOST>
  <NONINVEN>1</NONINVEN>
  <QTYSHPPD>2</QTYSHPPD>
  <QTYINVCD>2</QTYINVCD>
  <Purchase_IV_Item_Taxable>3</Purchase_IV_Item_Taxable>
  <LOCNCODE>NO PROJECT</LOCNCODE>
  <CURNCYID>GBP</CURNCYID>
</taPopRcptLineInsert>

   at Microsoft.Dynamics.GP.eConnect.eConnectMethods.CreateEntity(String ConnectionString, String sXML)
   at RemoteServerTest.Program.PostXMLToDynamics()

 

XML

<?xml version="1.0" encoding="UTF-8"?>
    <POPReceivingsType>
        <taPopRcptLineInsert_Items>
            <taPopRcptLineInsert>
                <POPTYPE>3</POPTYPE>
                <POPRCTNM>R000095</POPRCTNM>
                <ITEMNMBR>Laynards x 30</ITEMNMBR>
                <ITEMDESC>Laynards x 30</ITEMDESC>
                <VENDORID>TAN002</VENDORID>
                <RCPTLNNM>1</RCPTLNNM>
                <UOFM>Each</UOFM>
                <UNITCOST>43.20</UNITCOST>
                <EXTDCOST>86.40</EXTDCOST>
                <NONINVEN>1</NONINVEN>
                <QTYSHPPD>2</QTYSHPPD>
                <QTYINVCD>2</QTYINVCD>
                <Purchase_IV_Item_Taxable>3</Purchase_IV_Item_Taxable>
                <LOCNCODE>NO PROJECT</LOCNCODE>
                <CURNCYID>GBP</CURNCYID>
            </taPopRcptLineInsert>
        </taPopRcptLineInsert_Items>
 
        <taPopRcptLineTaxInsert_Items>
            <taPopRcptLineTaxInsert>
                <VENDORID>TAN002</VENDORID>
                <POPRCTNM>R000095</POPRCTNM>
                <TAXDTLID>PSTD</TAXDTLID>
                <TAXTYPE>0</TAXTYPE>
                <ACTINDX>102</ACTINDX>
                <ACTNUMST>1300-00</ACTNUMST>
                <TAXAMNT>8.64</TAXAMNT>
                <RCPTLNNM>1</RCPTLNNM>
            </taPopRcptLineTaxInsert>
        </taPopRcptLineTaxInsert_Items>
 
        <taPopRcptHdrInsert>
            <POPRCTNM>R000095</POPRCTNM>
            <POPTYPE>3</POPTYPE>
            <VNDDOCNM>87521</VNDDOCNM>
            <receiptdate>01/01/0001</receiptdate>
            <BACHNUMB>15012016042005</BACHNUMB>
            <AUTOCOST>1</AUTOCOST>
            <TAXSCHID>PSTD</TAXSCHID>
            <USINGHEADERLEVELTAXES>2</USINGHEADERLEVELTAXES>
            <CURNCYID>GBP</CURNCYID>
        </taPopRcptHdrInsert>
 
    </POPReceivingsType>
</eConnect>

 

Posting Accounts - all set up

 

GL00105 table:

ACTINDX: 102 

ACTNUMST: 1300-00                                                                                                                          

 

 

What else am I missing?  Thanks a lot

I'm getting the error 

Could not load file or assembly 'Microsoft.Dynamics.GP.eConnect' or one of its dependencies. An attempt was made to load a program with an incorrect format 

Problem is this is the second site on this server.  Site one works fine, Site two doesn't work and gets this error.  They use the same application pool and I have already told it to enable 32bit.

 
 

How to know a particular user is having access to contents in smartlist, How can we check this in SQL or in application itself...

Scenario is one of the user is having access to all the smartlist contents, but the other user is having only some of them, how can we provided access to all and update his smartlist view...I have already done the below steps but still there is no luck

Step 1. I have provided access in Smart list Security

Step 2. I have provided access in Smartlist builder - user security windows - update smartlist, View Smartlist with SQL tables

Could anyone help me with this issue...

Hello,

 I am attempting to send a credit (return) type 4 XML message into eConnect.

Generally these are successful. however I am being asked to add content to the message so that the return is linked to an existing invoice number.

To accomplish this I am adding the header elements ORIGNUMB and ORIGTYPE where I supply the corresponding invoice and type=3 respectively.

On dropping this message I am now receiving this error:

 "Originating Order Type and Originating Order Number are not allowed on Returns"  so I assume this is literally telling me supplying those values on a return message is a no-go? If this is indeed the case, how can I link a return to its originating invoice via a

<eConnect><SOPTransactionType> message?

 Thanks Stephen

Hello Everyone,

I have a large monthly batch that billers are constantly adding invoice transactions to, in doing so, this batch is constantly being sent to batch recovery with a status of "posting interrupted" and I'm not sure why.  We use the password functionality on the sales batches so none of the billers can accidentally post this monthly batch too soon.   I know how to fix the monthly batch by running the scripts in sql but I'm more interested and knowing why its happening.  Is it because two people are trying to add to it at once?  Is it because one of them is maybe trying to print and edit list while the other is trying to add to it?

Any feedback would be much appreciated as I would like to put in a better process to improve this daily reset of the stuck batch.

 thanks in advance!

Error: The Inventory Offset Account does not exist in IV setup

 

<?xml version="1.0" encoding="UTF-8"?>
<eConnect xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <IVInventoryTransactionType>
      <eConnectProcessInfo xsi:nil="true" />
      <taRequesterTrxDisabler_Items xsi:nil="true" />
      <taUpdateCreateItemRcd xsi:nil="true" />
      <taIVTransactionSerialInsert_Items xsi:nil="true" />
      <taIVTransactionLotInsert_Items xsi:nil="true" />
      <taIVTransactionLineInsert_Items>
         <taIVTransactionLineInsert>
            <IVDOCNBR>ADJ2381888</IVDOCNBR>
            <IVDOCTYP>1</IVDOCTYP>
            <ITEMNMBR>20015601MRS</ITEMNMBR>
            <UOFM>EA</UOFM>
            <TRXQTY>1</TRXQTY>
            <TRXLOCTN>SITELocation</TRXLOCTN>
         </taIVTransactionLineInsert>
      </taIVTransactionLineInsert_Items>
      <taAnalyticsDistribution_Items xsi:nil="true" />
      <taIVTransactionMultiBinInsert_Items xsi:nil="true" />
      <taIVTransactionHeaderInsert>
         <BACHNUMB>C1-26-2016</BACHNUMB>
         <IVDOCNBR>ADJ2381888</IVDOCNBR>
         <IVDOCTYP>1</IVDOCTYP>
         <DOCDATE>1/26/2016</DOCDATE>
      </taIVTransactionHeaderInsert>
   </IVInventoryTransactionType>
</eConnect>

Hi all,

 

I'm doing an enter match invoice entry for a  client>

I know the procs I need to enter in order but can I process each line item separately?

 Example:  I need to process the following 3 econnect procs per Invoice per Item

<taPopRcptLineTaxInsert>
<taPopDistribution>
<taPopEnterMatchInvLine>

 

Can I call Tax, Disbribution and the Line proc in order per item on the invoice?

Or do I need to insert all the Tax Lines before doing the Distribution for all items?  Then for all items do the EnterMatchInvLine?

Thanks

Mark