I’m not sure what i’m missing here.
Getting error as : {
“Message”: “An exception occured when deserializing the request - Exception occurred when parsing and deserializing parameter ‘record’ - ‘Error while deserializing contract class’”,
“ExceptionType”: “XppServicesDeserializationException”,
“ActivityId”: “9df60635-4832-0006-5d42-f69d3248da01”
}
Json:
{
“record”: [
{
“Header”: {
“SalesId”: “Test”,
“DeliveryDate”: “2024-01-01”
},
“Lines”: [
{
“ItemId”: “Test1”,
“Quantity”: 2
},
{
“ItemId”: “Test2”,
“Quantity”: 5
}
]
}
]
}
Code used:
public class ARTPackingSlipService extends SysOperationServiceBase
{
[AifCollectionType(‘record’, Types::Class, classStr(ARTPackingSlipContract))]
public str process(List record)
{
ARTPackingSlipContract contract = new ARTPackingSlipContract();
ARTPackingSlipHeaderContract headerContract = new ARTPackingSlipHeaderContract();
ARTPackingSlipLineContract lineContract = new ARTPackingSlipLineContract();
PackingSlipId result;
List errors = new List(Types::String);
ListEnumerator headerle;
ListEnumerator linele;
List headerList;
List lineList;
SalesId salesId;
TransDate deliveryDate;
ItemId itemId;
Qty qty;
ListEnumerator enumerator = record.getEnumerator();
while (enumerator.MoveNext())
{
contract = enumerator.current();
try
{
headerList = contract.parmHeader();
headerle = headerList.getEnumerator();
while (headerle.moveNext())
{
headerContract = headerle.current();
salesId = headerContract.parmSalesId();
deliveryDate = str2Date(strDel(headerContract.parmDeliveryDate(), 11, strLen(headerContract.parmDeliveryDate())),321);
}
lineList = contract.parmLine();
linele = lineList.getEnumerator();
while (linele.moveNext())
{
lineContract = linele.current();
itemId = lineContract.parmItemId();
qty = lineContract.parmQuantity();
}
}
catch
{
}
}
return "";
}
}
[DataContract]
class ARTPackingSlipContract
{
List header;
List line;
[
DataMemberAttribute('Header'),
DataCollectionAttribute(Types::Class, classStr(ARTPackingSlipHeaderContract))
]
public List parmHeader(List _header = header)
{
header = _header;
return header;
}
[
DataMemberAttribute('Lines'),
DataCollectionAttribute(Types::Class, classStr(ARTPackingSlipLineContract))
]
public List parmLine(List _line = line)
{
line = _line;
return line;
}
}
[DataContract]
class ARTPackingSlipHeaderContract
{
str salesId;
str deliveryDate;
[DataMember('SalesId')]
public str parmSalesId(str _SalesId = salesId)
{
salesId = _SalesId;
return salesId;
}
[DataMember('DeliveryDate')]
public str parmDeliveryDate(str _DeliveryDate = deliveryDate)
{
deliveryDate = _DeliveryDate;
return deliveryDate;
}
}
[DataContract]
class ARTPackingSlipLineContract
{
str itemId;
Qty qty;
[DataMember('ItemId')]
public str parmItemId(str _itemId = itemId)
{
itemId = _itemId;
return itemId;
}
[DataMember('Quantity')]
public Qty parmQuantity(Qty _qty = qty)
{
qty = _qty;
return qty;
}
}