This integration is a web service. It is called via a batch job. Data will be retrieved from Aim, via a web service. The data is in JSON format. The batch job will execute using Spring Batch to retrieve the data, insert or update records in the database, and send an email with a report file attached.
AIM links:
Test URL: https://aimdev.uconn.edu/api/index?key=[API KEY]&method=BLDG_UPDATES&days=7&format=json
Stage URL: https://aimtest.uconn.edu/api/index?key=[API KEY]&method=BLDG_UPDATES&days=7&format=json
Prod URL: https://aim.uconn.edu/api/index?key=[API KEY]&method=BLDG_UPDATES&days=7&format=json
The documentation for the Aim web service can be found at https://confluence.uconn.edu/display/IL/AiM+API%3A+BLDG_UPDATES
Test Aim from local machine
Access/permission to the Aim site is needed. Contact Aim ITS Administrator for access.
http://localhost:8050/updateBuildingsFromAim.html
Sample JSON Building input:
[{"CAMPUS_ID":"01",
"CAMPUS_DESCRIPTION":"STORRS CAMPUS",
"BLDG":"0186",
"BLDG_DESCRIPTION":"MANSFIELD APTS BLDG 10 (4 UNITS)",
"BLDG_ADDRESS1":"ONE SOUTH EAGLEVILLE ROAD",
"BLDG_ADDRESS2":null,
"BLDG_CITY":"STORRS",
"BLDG_STATE_CODE":"CT",
"BLDG_ZIP":"06269",
"LATITUDE":"41.7991589200",
"LONGITUDE":"-72.2430733700",
"PROP_TYPE":"BUILDING",
"BLDG_CLASS":"RESIDENTIAL",
"BLDG_STATUS":"IN SERVICE",
"BLDG_OWNED_YN":"Y",
"DATE_BUILT":"1951",
"RENOVATION_YEAR":null,
"DATE_DISPOSED":null,
"BLDG_ABBREVIATION ":null,
"EXTRA_DESCRIPTION":null,
"GROSS_SQFT":"4,521.00",
"NET_SQFT":"3,280.00",
"ASSIGNABLE_SQFT":"3,117.34"}]
Source Code Definition for Aim Data: edu.uconn.webapi.model.aim.AimBuilding.java
KFS Table Definition:
SH_BUILDING_T | java field | Aim field | Description |
---|---|---|---|
CAMPUS_CD | campusCode | CAMPUS_ID | |
OBJ_ID | objectID | if new building, create new OBJ_ID | |
VER_NBR | versioNumber | if new building, set version number to 1 | |
BLDG_CD | buildingCode | BLDG | |
BLDG_NM | name | BLDG_DESCRIPTION | |
BLDG_STR_ADDR | streetAddress | BLDG_ADDRESS1 | |
BLDG_ADDR_CTY_NM | city | BLDG_CITY | |
BLDG_ADDR_ST_CD | stateCode | BLDG_STATE_CODE | |
BLDG_ADDR_ZIP_CD | zipCode | BLDG_ZIP | |
ALTRNT_BLDG_CD | alternateBuildingCode | BLDG_OWNED_YN | |
ROW_ACTV_IND | activeIndicator | BLDG_STATUS | when Aim is "disposed", set KFS to "N", otherwise set to "Y" |
BLDG_CNTRY_CD | countryCode | hardcode "US" |
Requirements:
- When the building does not exist in KFS, create an object id using java.util.UUID.randomUUID().toString() and set the version number to 1.
- When the building status is “DISPOSED”, the set the active indicator to “N”, otherwise set it to “Y”.
- Set the country code to “US”.
- When the building exists in KFS, just update the row with the supplied data, otherwise insert a new row using the supplied data.
- Create a formatted report file to list all transactions. The first line of the file is a header, the last line of the file is “***End of Report ***”.
- Send an email to inventorycontrol@uconn.edu with the input JSON in the body and the formatted report as an attachment.
Names of the files:
buildingData_date(yyyymmdd)_time(hhMMSS_SSS).txt
Execution Command:
/updateBuildingsFromAim.html
Control-M Schedule and Job:
UAT -
PRD -