I'm able to set sales order item fulfilled qty and lot/serials for lines but not for kit components.
Seems like the only difference is the componentsequencnumber in the SalesComponentKey.
salesdoc.Lines[j].Components[k].QuantityFulfilled.Value = salesdoc.Lines[j].Components[k].QuantityFulfilled.Value + CLine.DeltaQty;
Then for lots:
var lots = new List<SalesComponentLot>();
for (int i = 0; i < ShipItem.Distributions.Length; i++)
{
SalesComponentLot lot = new SalesComponentLot();
lot.LotNumber = ShipItem.Distributions[i].LotSerial;
lot.Quantity = new Quantity { Value = ShipItem.Distributions[i].Quantity };
lot.Bin = null;
lot.Key = new SalesComponentLotKey();
lot.Key.QuantityType = QuantityType.OnHand;
lot.Key.SequenceNumber = (i + 1);
lot.Key.SalesComponentKey = new SalesComponentKey();
lot.Key.SalesComponentKey.ComponentSequenceNumber = salesdoc.Lines[j].Components[k].Key.ComponentSequenceNumber;
lot.Key.SalesComponentKey.SalesLineKey = new SalesLineKey();
lot.Key.SalesComponentKey.SalesLineKey.LineSequenceNumber = salesdoc.Lines[j].Components[k].Key.SalesLineKey.LineSequenceNumber;
lot.Key.SalesComponentKey.SalesLineKey.SalesDocumentKey = new SalesDocumentKey();
lot.Key.SalesComponentKey.SalesLineKey.SalesDocumentKey.Id = salesdoc.Lines[j].Components[k].Key.SalesLineKey.SalesDocumentKey.Id;
lots.Add(lot);
}
salesdoc.Lines[j].Components[k].Lots = lots.ToArray();
Action: Create Current User Name: V-TECH\Judy Input parameters: Exception type: Microsoft.Dynamics.GP.eConnect.eConnectException Exception message: Sql procedure error codes returned: Error Number = 115 Stored Procedure= taSopLineIvcInsert Error Description = Unable to insert the component record Node Identifier Parameters: taSopLineIvcInsert SOPNUMBE = TST0034 SOPTYPE = 2 LNITMSEQ = 16384 Error Number = 3462 Stored Procedure= taSopLineIvcInsertComponent Error Description = if AUTOALLOCATELOT = 1 or 2, the taSopLotAuto node must be called with a DOCID that fulfills or QTYFULFI > 0 Node Identifier Parameters: taSopLineIvcInsertComponent SOPNUMBE = TST0034 SOPTYPE = 2 ITEMNMBR = TEST03 LNITMSEQ = 16384 Related Error Code Parameters for Node : taSopLineIvcInsertComponent AUTOALLOCATELOT = 1 QTYFULFI = 1.00000
<
taSopLineIvcInsert
>
<
SOPTYPE
>2</
SOPTYPE
>
<
SOPNUMBE
>TST0034</
SOPNUMBE
>
<
CUSTNMBR
>AARONFIT0001</
CUSTNMBR
>
<
DOCDATE
>2017-04-12T00:00:00</
DOCDATE
>
<
LOCNCODE
>WAREHOUSE</
LOCNCODE
>
<
ITEMNMBR
>TEST03</
ITEMNMBR
>
<
AutoAssignBin
>0</
AutoAssignBin
>
<
UNITPRCE
>50.00000</
UNITPRCE
>
<
XTNDPRCE
>50.00000</
XTNDPRCE
>
<
TOTALQTY
>1.00000</
TOTALQTY
>
<
MRKDNPCT
>0</
MRKDNPCT
>
<
PRCLEVEL
>RETAIL</
PRCLEVEL
>
<
ITEMDESC
>test03</
ITEMDESC
>
<
NONINVEN
>0</
NONINVEN
>
<
LNITMSEQ
>16384</
LNITMSEQ
>
<
DROPSHIP
>0</
DROPSHIP
>
<
DOCID
>TESTORD</
DOCID
>
<
SALSTERR
>TERRITORY 1</
SALSTERR
>
<
SLPRSNID
>PAUL W.</
SLPRSNID
>
<
PRSTADCD
>WAREHOUSE</
PRSTADCD
>
<
ShipToName
>Aaron Fitz Electrical BBB</
ShipToName
>
<
ADDRESS1
>4 Fernwood Drive</
ADDRESS1
>
<
ADDRESS2
>Suite 1234566</
ADDRESS2
>
<
ADDRESS3
>Building 2</
ADDRESS3
>
<
CNTCPRSN
>Bob Fitz</
CNTCPRSN
>
<
FAXNUMBR
>31255501040000</
FAXNUMBR
>
<
CITY
>test</
CITY
>
<
STATE
>CT</
STATE
>
<
ZIPCODE
>06070</
ZIPCODE
>
<
COUNTRY
>USA</
COUNTRY
>
<
PHONE1
>31255501000000</
PHONE1
>
<
PHONE2
>31255501020000</
PHONE2
>
<
PHONE3
>31355501030000</
PHONE3
>
<
ReqShipDate
>2017-04-12T00:00:00</
ReqShipDate
>
<
SHIPMTHD
>GROUND</
SHIPMTHD
>
<
AUTOALLOCATESERIAL
>1</
AUTOALLOCATESERIAL
>
<
AUTOALLOCATELOT
>1</
AUTOALLOCATELOT
>
<
RequesterTrx
>0</
RequesterTrx
>
<
ALLOCATE
>0</
ALLOCATE
>
<
UpdateIfExists
>1</
UpdateIfExists
>
<
KitCompMan
>0</
KitCompMan
>
<
DEFPRICING
>0</
DEFPRICING
>
<
DEFEXTPRICE
>1</
DEFEXTPRICE
>
<
CURNCYID
>Z-US$</
CURNCYID
>
<
UOFM
>EACH</
UOFM
>
<
IncludePromo
>0</
IncludePromo
>
<
CKCreditLimit
>0</
CKCreditLimit
>
<
QtyShrtOpt
>2</
QtyShrtOpt
>
<
INVINDX
>000-1300-01</
INVINDX
>
<
CSLSINDX
>000-4510-01</
CSLSINDX
>
<
SLSINDX
>000-4110-01</
SLSINDX
>
<
MKDNINDX
>000-1205-00</
MKDNINDX
>
<
RTNSINDX
>000-1330-01</
RTNSINDX
>
<
INUSINDX
>000-1520-00</
INUSINDX
>
<
INSRINDX
>000-1300-01</
INSRINDX
>
<
DMGDINDX
>000-4700-00</
DMGDINDX
>
<
IVITMTXB
>1</
IVITMTXB
>
<
ITMTSHID
>ALL DETAILS</
ITMTSHID
>
<
TAXSCHID
>USASTCITY-6*</
TAXSCHID
>
<
INTEGRATIONSOURCE
>0</
INTEGRATIONSOURCE
>
<
QTYTBAOR
>0.00000</
QTYTBAOR
>
<
QUANTITY
>1.00000</
QUANTITY
>
<
QTYCANCE
>0.00000</
QTYCANCE
>
<
QTYFULFI
>1.00000</
QTYFULFI
>
<
RecreateDist
>0</
RecreateDist
>
</
taSopLineIvcInsert
>
Stack Trace: at Microsoft.Dynamics.GP.eConnect.EntityMessageProcessor.ExecuteSqlCommands(XElement transactionNode, EntityMessage message) at Microsoft.Dynamics.GP.eConnect.eConnectMethods.ProcessMessageImport(EntityMessage message) at Microsoft.Dynamics.GP.eConnect.eConnectMethods.EntityImportImplementation(String connectionString, String sXML, Boolean isTransaction) at Microsoft.Dynamics.GP.eConnect.eConnectMethods.CreateEntity(String connectionString, String sXML) Exception type: Microsoft.Dynamics.GP.eConnect.eConnectException Exception message: Error Number = 115 Stored Procedure taSopLineIvcInsert Error Description = Unable to insert the component record Error Number = 3462 Stored Procedure taSopLineIvcInsertComponent Error Description = if AUTOALLOCATELOT = 1 or 2, the taSopLotAuto node must be called with a DOCID that fulfills or QTYFULFI > 0 Stack Trace: