var jsonStrings = JsonConvert.SerializeObject(obj); PXTrace.WriteInformation(jsonStrings); var jsonString = JObject.Parse(jsonStrings);
PXTrace.WriteInformation(jsonString.ToString());
var URL = "https://globalrubberindustrieslimited.acumatica.com/entity/CustomEndpoint/22.200.001/PurchaseReceipt"; var httpRequest = (HttpWebRequest)WebRequest.Create(URL); httpRequest.Method = "PUT"; httpRequest.ContentType = "application/json"; httpRequest.Headers.Add("Authorization", "Bearer " + my token); httpRequest.SendChunked = true;
using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) { streamWriter.Write(jsonString); }
var httpResponse = (HttpWebResponse)httpRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); var responseJson = JsonConvert.DeserializeObject(responseText); PXTrace.WriteInformation(responseText);
}
Json object in Trace
But , when calling the API It shows an error.And also ,When I use the same json via Postman It shows the same error.
Can someone please help me for that.
Page 1 / 1
@jeewanishalika20 Try the following:
{ RootObject obj = new RootObject { Type = "Receipt", VendorID = "GRI SL", VendorRef = "2131", Location = "Main", // Corrected the typo here ShipmentRef = "00028", Date = DateTime.ParseExact("10/10/2022", "dd/MM/yyyy", CultureInfo.InvariantCulture), PostPeriod = DateTime.ParseExact("10/10/2022", "dd/MM/yyyy", CultureInfo.InvariantCulture) };
// Directly use the serialized string string URL = "https://globalrubberindustrieslimited.acumatica.com/entity/CustomEndpoint/22.200.001/PurchaseReceipt"; var httpRequest = (HttpWebRequest)WebRequest.Create(URL); httpRequest.Method = "PUT"; httpRequest.ContentType = "application/json"; httpRequest.Headers.Add("Authorization", "Bearer " + myToken); // Ensure 'myToken' is securely stored httpRequest.SendChunked = true;
using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) { streamWriter.Write(jsonStrings); // Directly write the serialized JSON string }
using (var httpResponse = (HttpWebResponse)httpRequest.GetResponse()) { using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); PXTrace.WriteInformation(responseText);
// Optional: Deserialize the response if needed // var responseJson = JsonConvert.DeserializeObject(responseText); } } } catch (WebException webEx) { // Handle WebException PXTrace.WriteInformation("WebException: " + webEx.Message); } catch (Exception ex) { // Handle other exceptions PXTrace.WriteInformation("Exception: " + ex.Message); }
Hi ,
I tried with that. but same error is occured
Hi @jeewanishalika20 ,
To create a purchase receipt, there is no need to pass the shipment number. I have provided a sample JSON for creating a purchase receipt through the API. You can structure the JSON as shown below and give it a try.
{
"Type": {
"value": "Receipt"
},
"VendorID": {
"value": "CONGOODTOL"
},
"VendorRef": {
"value": "000109-ret"
},
"Location": {
"value": "MAIN"
},
"PostPeriod": {
"value": "102023"
},
"Date": {
"value": "2023-10-28"
},
"Details": <
{
"InventoryID": {
"value": "CONTRAIN1"
},
"ReceiptQty": {
"value": 1200.000000
}
}
]
}
Hi Jinin,
Okey , But my concern is acumatica is only accept like this format.
{"Type": {
value: "Receipt"
}
}
But , my generated json is below like that.
{"Type": "Receipt"
}
How I do that.
Hi @jeewanishalika20
Please find the Sample code,
using Newtonsoft.Json; using System; using System.Collections.Generic;
class Program { static void Main() { // Create an instance of the PurchaseReceipt class and populate its properties PurchaseReceipt purchaseReceipt = new PurchaseReceipt { Type = new PropertyValue { Value = "Receipt" }, VendorID = new PropertyValue { Value = "CONGOODTOL" }, VendorRef = new PropertyValue { Value = "000109-ret" }, Location = new PropertyValue { Value = "MAIN" }, PostPeriod = new PropertyValue { Value = "102023" }, Date = new PropertyValue { Value = "2023-10-28" }, Details = new List<Detail> { new Detail { InventoryID = new PropertyValue { Value = "CONTRAIN1" }, ReceiptQty = new PropertyValue { Value = "1200.000000" } } } };
// Convert the object to JSON string json = JsonConvert.SerializeObject(purchaseReceipt, Formatting.Indented);
// Print the generated JSON Console.WriteLine(json); } }
// Define the classes to represent the structure of the JSON public class PurchaseReceipt { public PropertyValue Type { get; set; } public PropertyValue VendorID { get; set; } public PropertyValue VendorRef { get; set; } public PropertyValue Location { get; set; } public PropertyValue PostPeriod { get; set; } public PropertyValue Date { get; set; } public List<Detail> Details { get; set; } }
public class Detail { public PropertyValue InventoryID { get; set; } public PropertyValue ReceiptQty { get; set; } }
public class PropertyValue { public string Value { get; set; } }