Getting Multiple Records from Web API
I am integrating an employee system with another system that tracks our employee background checks. The Web API returns several records for an employee.
body Dictionary
LASTNAME "Smith"(Text)
USER_ID 1234567(Number (Integer))
FIRSTNAME "Bob"(Text)
BGCDATA List of Dictionary - 3 items
Dictionary
SERVICENAME "Fingerprinting"(Text)
TYPENAME "Background Check Option for School Teachers"(Text)
BGCDATE "July, 25 2018 00:00:00"(Text)
BGCSTATUS "Complete"(Text)
BGCCOMMENTS ""(Text)
Dictionary
SERVICENAME "MYB"(Text)
TYPENAME "EMPLOYEE"(Text)
BGCDATE "October, 24 2023 08:00:26"(Text)
BGCSTATUS "Complete"(Text)
BGCCOMMENTS null(Null)
Dictionary
SERVICENAME "MYB"(Text)
TYPENAME "EMPLOYEE"(Text)
BGCDATE "April, 19 2017 09:22:39"(Text)
BGCSTATUS "Complete"(Text)
BGCCOMMENTS null(Null)
Here is the XSD for the CDT that I am storing the data into.
@Column(length=255)
@Column(length=255)
@Column(length=255)
@Column(length=255)
@Column(length=255)
I have an expression rule that converts the resultant JSON to the CDT.
a!localVariables(
if (
a!isNotNullOrEmpty(ri!result),
'type!{urn:com:appian:types:PMSO}PMSO_BGCData'(
USER_ID: ri!result.USER_ID,
/*FIRSTNAME: ri!result.FIRSTNAME,*/
/*LASTNAME: ri!result.LASTNAME,*/
SERVICENAME: ri!result.SERVICENAME,
TYPENAME: ri!result.TYPENAME,
BGCDATE: ri!result.BGCDATE,
BGCSTATUS: ri!result.BGCSTATUS,
BGCCOMMENTS: ri!result.COMMENTS
),
null
)
)
The problem is that I do not get multiple records, just one. If the resultant is multiple records, I get this from the Expression Rule.
MSO_BGCData
USER_ID 1234567(Number (Integer))
SERVICENAME ""(Text)
TYPENAME ""(Text)
BGCDATE ""(Text)
BGCSTATUS ""(Text)
BGCCOMMENTS ""(Text)
If the resultant API call is a single record, I get this from the Expression Rule.
PMSO_BGCData
USER_ID 1234567(Number (Integer))
SERVICENAME "Fingerprinting"(Text)
TYPENAME "Background Check Option for School Teachers"(Text)
BGCDATE "July, 25 2018 00:00:00"(Text)
BGCSTATUS "Complete"(Text)
BGCCOMMENTS ""(Text)
I am trying to use the USER_ID for each of the nested records. I am not sure that the result is well formed or I am not doing something correctly.
