Hi experts,
I have developed an API and I am expecting to get request value from external application in the following format:
{
"_leaveDetails": [
{
"personnelNumber": "PN001",
"leaveType": "SICK"
},
{
"personnelNumber": "PN002",
"leaveType": "SICK"
}
]
}
Not sure where I am wrong, my service class nothing reading from the JSON payload. always this bringing the null value.
Need your guidance to fix this issue.
I am thinking either JSON payload structure is wrong or List contract class signature is wrong or service class parameter is wrong.
List class signature:
[DataMemberAttribute('_leaveDetails'), DataCollectionAttribute(Types::Class,
classStr(XXXChildRequest))]
public List parmLeaveDetailList(List _leaveDetailList = _leaveDetails)
Service class signature
public str processAbsenceRequest(XXXParentListRequest _leaveDetails) // List class
I wrote following code but getting error while accessing from service class:
Request class:
[DataContractAttribute]
public class XXXChildRequest
{
str leaveType;
str personnelNumber;
List leaveDetailList;
[
DataMemberAttribute('Leave Type')
//SysOperationDisplayOrderAttribute('1'),
//SysOperationLabelAttribute(literalStr('Leave Type'))
]
public TransDate parmLeaveType(Str _leaveType = leaveType)
{
leaveType = __leaveType;
return leaveType;
}
[
DataMemberAttribute('Personnel Number')
SysOperationDisplayOrderAttribute('2'),
SysOperationLabelAttribute(literalStr('Personnel Number'))
]
public str parmPersonnelNumber(str _personnelNumber = personnelNumber)
{
personnelNumber = _personnelNumber;
return personnelNumber;
}
}
List Contract class:
[DataContractAttribute]
public class XXXParentListRequest
{
List _leaveDetails;
public void new()
{
_leaveDetails = new List(Types::Class);
}
[DataMemberAttribute('_leaveDetails'), DataCollectionAttribute(Types::Class,
classStr(XXXChildRequest))]
public List parmLeaveDetailList(List _leaveDetailList = _leaveDetails)
{
_leaveDetails = _leaveDetailList;
return _leaveDetails;
}
}
Service class:
[SysEntryPointAttribute]
public class XXXRequestService
{
public str processAbsenceRequest(XXXParentListRequest _leaveDetails) // List class
{
List leaveList;
ListEnumerator listEnum;
// Code to get list request value
}
return jsonString;
}
}