Insert API to receipt Enter

i want to add new record to receipt Entry using this API name Erp.BO.ReceiptSvc/GetNewRcvHead
I had got status 200 from swagger but i cannot find the new record from the system. what’s wrong with my way of doing it?
this is my json body

{  
  "vendorNum": 1,
  "purPoint": "",
  "ds": {
    "RcvHead": [
      {
        "Company": "EPIC03",
        "VendorNum": 1,
        "PurPoint": "",
        "PackSlip": "11556",
        "ReceiptDate": "2025-04-30T02:23:21.501Z",
        "EntryPerson": "",
        "SaveForInvoicing": true,
        "Invoiced": true,
        "ReceiptComment": "",
        "ReceivePerson": "",
        "ShipViaCode": "",
        "EntryDate": "2025-04-30T02:23:21.501Z",
        "Plant": "",
        "PONum": 4144,
        "LCReference": "",
        "LCComment": "",
        "LandedCost": 0,
        "LegalNumber": "",
        "LCVariance": 0,
        "ICLinked": true,
        "GlbCompany": "",
        "GlbVendorNum": 0,
        "GlbPurPoint": "",
        "GlbPackSlip": "",
        "ContainerID": 0,
        "Weight": 0,
        "LCDisburseMethod": "",
        "AutoReceipt": true,
        "AutoTranType": "",
        "POType": "",
        "AutoTranID": 0,
        "WeightUOM": "",
        "UpliftPercent": 0,
        "SpecDutyAmt": 0,
        "AppliedLCAmt": 0,
        "LCDutyAmt": 0,
        "LCIndCost": 0,
        "ApplyToLC": true,
        "Received": true,
        "ArrivedDate": "2025-04-30T02:23:21.501Z",
        "AppliedRcptLCAmt": 0,
        "LCUpliftIndCost": 0,
        "AppliedLCVariance": 0,
        "TranDocTypeID": "",
        "ImportNum": "",
        "ImportedFrom": 0,
        "ImportedFromDesc": "",
        "GrossWeight": 0,
        "GrossWeightUOM": "",
        "SysRevID": 0,
        "SysRowID": "00000000-0000-0000-0000-000000000000",
        "ChangedBy": "",
        "ChangeDate": "2025-04-30T02:23:21.501Z",
        "TaxRegionCode": "",
        "TaxPoint": "2025-04-30T02:23:21.501Z",
        "TaxRateDate": "2025-04-30T02:23:21.501Z",
        "InPrice": true,
        "HdrTaxNoUpdt": true,
        "TaxRateGrpCode": "",
        "TaxesCalculated": true,
        "InAppliedLCAmt": 0,
        "InAppliedLCVariance": 0,
        "InAppliedRcptLCAmt": 0,
        "InLandedCost": 0,
        "InLCDutyAmt": 0,
        "InLCIndCost": 0,
        "InLCUpliftIndCost": 0,
        "InLCVariance": 0,
        "InSpecDutyAmt": 0,
        "CNDeclarationBill": "",
        "CNBonded": true,
        "APTaxRoundOption": 0,
        "ASNID": "",
        "AddrList": "",
        "PartialReceipt": true,
        "POLine": 0,
        "PORel": 0,
        "POTypeDesc": "",
        "ShipViaDesc": "",
        "TotalAmt": 0,
        "TotDedTaxAmt": 0,
        "TotDutiesAmt": 0,
        "TotGrossWeight": 0,
        "TotGrossWeightUOM": "",
        "TotIndirectCostsAmt": 0,
        "TotLinesAmt": 0,
        "TotSATaxAmt": 0,
        "TotTaxAmt": 0,
        "TotWeight": 0,
        "TotWeightUOM": "",
        "TotWHTaxAmt": 0,
        "UpdateDtlArvdDate": true,
        "UpdateDtlRcptDate": true,
        "UpdateDtlRecs": true,
        "AllowLCUpdate": true,
        "AllowUplift": true,
        "CurrencyCode": "",
        "DispLandedCost": 0,
        "eshReceived": true,
        "IntQueID": 0,
        "LCMessage": "",
        "LegalNumberMessage": "",
        "OrigLandedCost": 0,
        "AddrListFormatted": "",
        "EDIEnable": true,
        "BitFlag": 0,
        "PurPointName": "",
        "PurPointCountry": "",
        "PurPointState": "",
        "PurPointAddress3": "",
        "PurPointAddress1": "",
        "PurPointPrimPCon": 0,
        "PurPointAddress2": "",
        "PurPointCity": "",
        "PurPointZip": "",
        "ShipViaCodeWebDesc": "",
        "ShipViaCodeDescription": "",
        "TaxRegionCodeDescription": "",
        "VendorNumState": "",
        "VendorNumTermsCode": "",
        "VendorNumVendorID": "",
        "VendorNumAddress2": "",
        "VendorNumCity": "",
        "VendorNumDefaultFOB": "",
        "VendorNumCurrencyCode": "",
        "VendorNumName": "",
        "VendorNumZIP": "",
        "VendorNumCountry": "",
        "VendorNumAddress3": "",
        "VendorNumAddress1": "",
        "vrPONumCNBonded": true,
        "vrPONumShipToConName": "",
        "vrPONumShipName": "",
        "XbSystReceiptTaxCalculate": true,
        "XbSystAPTaxLnLevel": true,
        "RowMod": ""
      }
    ]
  }
}

Hi Casper

Bare minimum you will need to also send an Update request.

GetNew just creates a row in the RcvHead datatable on the dataset (in memory).

I suggest you go back to the basics of just tracing the process to know all of the business objects and methods to call.

3 Likes

HI michael,

so at first i have to call GetNewRcvDtl and then call Erp.BO.ReceiptSvc/UpdateMaster to insert one record?
does it means when i call GetNewRcvDtl I should have fill up the object myself or i just pass in empty object? should i put anything to sysrowID during GetNewRcvDtl or? i am really new to this.

1 Like

You can pass an empty dataset to GetNew. It will return the new row in the dataset with RowMod = “A”

Then you make the necessary changes to the ds before passing to Update (or some variation of update such as UpdateMaster)

Do not pass anything to SysRowID. The server will take care of that.

HI michael, what should i put into object sysrowID and sysrowRef? empty string “” ? beside from this what should i beware of, the rest of the column i can put some default value or ignore it?

so first i just have to pass this json to GetNew

{  
  "vendorNum": 1,
  "purPoint": "",
  "ds": {   
  }
}

then update the ds detail then POST the returned ds to update master and i will have success insert new line? correct me if i am wrong.

image
I found out the SysRevID and SysRowID from the returned ds object still showing invalid value, when it will change to valid value? because if i pass this ds to UpdateMaster it will pass this invalid SysRevID and SysRowID to it right?

You should do a trace in Epicor (Create the item by hand in classic or Web UX)

Then you need to copy mimic the calls that Epicor makes , Epicor uses its own API

Here’s a couple of tools that might help

3 Likes

HI Jose,

this is what i do, i open kinetic , open tracing option and using the setting as pic


then i open receipt entry and add new record and after done i off kinetic and load the file to Epicor trace Parser and i could not find receipt related BO from the list, which step i do it wrong?
i only see 4 BO which is
Ice.Proxy.BO.UserTracingImpl
Ice.Proxy.BO.SysMonitorImpl
Ice.Proxy.BO.UserFileImpl
Ice.Proxy.Lib.SessionModImpl

Are you using the Kinetic UX? That tracer you are showing is for Classic interface.

1 Like

I am using the new interface, so i have to use back the old screen in order to let this trace log function? i thought kinetic and epicor mostly just different interface but same function no?

HI Jose,
I was using the old screen to do insert and i do get much more data from the logs but i could not find what i supposed to found, i should have find getNew and update master from Erp.BO.ReceiptSvc , but cannot find any…this make me more confused…
TraceData20972.txt (1.8 MB)

If possible, you can try to do the operation in the browser with dev tools open on the network tab. It will show you all the API end points being called. Then you can click on them and choose payload or return to see both the data sent and data received. That is how I do my tracing these days most of the time.

I haven’t don’t receipt entry specifically, but like other said, call the first method and set the return object to a variable. Modify said variable as needed, then use it as the parameter for the second method (Update/UpdateMater/ect).

3 Likes

hi Anthony,
although this is not the direct way to my answer but it bring me closer to what i look for. Thank you