State Response Format Changes
This page will house the State Response Format Changes that Nlets is aware of.
Driver/Registration Parser Change Log
• Parsing framework logged the error "General Error Thrown: System.ArgumentException: An item with the same key has already been added." Cause: The state sent records where the address line was malformed by including extra city, state, zip information, e.g., "XXXXX AAAA ST, LAKE ON, OH, 44429, LAKE MILTON, OH 44429"; Solution: HandleStaticLines already had logic to handle the case where the address did not fit the expected pattern but was not incrementing the dictionary key counter for these cases, but simply continued. Removed the continue statement so it would increment the counter as needed for each owner encountered.
• Cause: State sent records containing "DRIVER RECORD NOT FOUND" that the parser had not yet seen; Solution: Added the error notification text to Parsers.xml for the ORI.
• Cause: State sent records containing "THE NAME HAS BEEN CHANGED" that the parser had not yet seen; Solution: Added the error notification text to Parsers.xml for the ORI.
• Cause: State sent records containing "THE DATABASE IS TEMPORARILY NOT AVAILABLE" that the parser had not yet seen; Solution: Added the error notification text to Parsers.xml for the ORI.
• Cause: State sent multi-hit DR records containing lines starting with "SUSPENDED" that now also contain "BLOOD TYPE:" on the same line and the parser was only looking for an exact match to "SUSPENDED"; Solution: Refactored HandleDynamicLines to detect lines that start with "SUSPENDED" and process the line accordingly.
• Cause: The state sent records containing either error notification strings or not on file strings the parser had not yet seen, including "INSUFFICIENT NAM", "NON-ALPHA NAME", and "NAME INQ END". The INSUFFICIENT NAM line also contained original query information; Solution: Refactored the isNoRecordFound || isStateErrorNotification logic in the Parse method to include logic that checks whether the ContentToParse contains any one of the strings for which there is original query information. If so, it calls a new method GetOriginalQuery that parses the original query information. Added the new Error Notification strings to Parsers.xml settings file
Parser logging the error "General Error Thown: System.ArgumentOutOfRangeException: Index and length must refer to a location within the string". Refactored HandleStaticLines to check the length of the DAQ field and TRDA field before parsing the content.
Parser logged the error "UNKNOWN RECORD TYPE" when state sent records containing "NJ DMV Responses Unavailable at this time". Solution was to add the error notification text to Parsers.xml for the ORI.
Parser throwing the error "An error occurred while receiving" "General Error Thown: System.NullReferenceException: Object reference not set to an instance of an object." Solution was to add the error notification string to Parsers.xml for the ORI.
Parsing framework logged the error "Message being handled by default parser, a new parser might be needed". Created a new parser (VIDRParser) that will process only NO RECORD FOUND messages; otherwise, it will log an error to indicate there is content to parse. At that point, we can add parsing logic based on the structure of the VI DR responses.
State added the line "INITIAL PERMIT ISSUE DATE:" that the parser had not yet seen. State also added field names and colon delimiters for the NAME and ADDRESS lines that formerly had no field names or delimiters. Refactored HandleDynamicLines to detect and process the "INITIAL PERMIT ISSUE DATE:" line. Refactored HandleStaticLines to detect and process the colon-delimited NAME: and ADDRESS: lines.
State added a line "TBD OWNER" that the parser had not yet seen. Refactored HandleStaticLines to detect and parse the "TBD OWNER NAME" line.
Changed to fully tagged
Changed to fully tagged
Changed to fully tagged
Changed to fully tagged
The state sent a DR with an unparsable residential address line that caused the AddressParser class to throw an exception by trying to access an array element that did not exist.
The state sent error response RRs containing a string the parser had not yet seen and where the original query information included LIY and LIT in addition to LIC.
The state sent a multi-hit DR which contained the known not-on-file string "NO VALID ILLINOIS LICENSE" in one of the hits which caused the parser to flag the entire message as a not on file which directed the parser down an invalid path.
State added a caveat line to multi hit responses the parser had not yet seen.
State sent records where the AN/PN field contained "SN" which the parser had not yet seen.
State began sending multi-hit responses the parser was not programmed to handle. Some records had an extra comma in the address line (, APT 123) the parser was not programmed to handle.
State changed the content of their multi-hit responses and the "DATE OF BIRTH" line became "DATE-OF-BIRTH" and the parser wasn't handling it. The new record also changed the structure of the name line.
State changed the format of their single hit record (Nov 2020) and added a multi-hit record (Jan 2021) that have not shown up until now when DCICE1414 began receiving parsed DRs from states.
The state changed the format of the "DECAL/YR" content to be a 4-digit year
Parser was not handling a record where the address line contained only state and zip (no street or city).
Parser was not handling the line "VICT 2020/07/09" after the MORE DATA line.
There were records where the text ", #6" and ", #28" appeared after the VST line and the parser was unable to handle those lines. Turns out, those lines are part of the address later in the record...most likely an error in the DMV record. There were records where the VMO content was "---" and "-----". The parser was checking for "---" as an indicator of a new section in the record.
Parser was not handling the line "For additional vehicle information, contact Oklahoma Tax Commission at: OKLIC0000". Parser was not handling records with the line "ZIP/0" in the Lien area. Parser was not handling records where the line should have started with "MAKE/" and contained "YEAR/ and VIN/", but actually started with "YEAR/" and contained "VIN/"
Parser was logging the error "Unexpected Content Encountered in REMARKS section"
IL DR parser has been updated to handle additional information on City line, and to sub-string additional information on the PID/ EXP/ ISS/ line.
OK RR parser has been updated to handle Multi-hit Tribal information. This change for OK only involved the Nlets.MessageParsing.Parsers.Oklahoma.dll
Added logic to handle lines with owner date of birth DOB and no owner name OWNER information. This change is limited to the Nlets.MessageParsing.Parsers.NewMexico.dll.
Update to the Parser.xml file for NM DR to handle the following Error Notification messages. This change for the NM DR is limited to the Parser.xml file.
NC added a line for customers who order multiple plates in series. This was causing an additional information in Dynamic lines error. Added logic to handle this line and separate out the plate count, issue date and expiration date. This change is limited to the Nlets.MessageParsing.Parsers.NorthCarolina.dll.
Update to the MN RR Parser to handle CTY,STA,ZIP,VYR, VMA and pending forfeiture fields that were appearing causing errors. This change is limited to the Nlets.MessageParsing.Parsers.Minnesota.dll.
Update to the Parsers.xml file for NC DR to handle the following Not_On_File messages.
The WV DR parser was erroring with the addition of a new field named "COMM IMP" with no data yet.
Updated the Nlets.MessageParsing.Parsers.Arkansas.dll. The root cause of the message "The DRIVE_OUT_START_DATE/DRIVE_OUT_START_TIME/DRIVE_OUT_END_DATE/DRIVE_OUT_END_TIM line could not be substringed" is a change in the spacing after the START DATE-TIME: and END DATE-TIME: label. Original map was counting 2 spaces after each label, we only have one space after each in the errored samples.
Updated Nlets.MessageParsing.Parsers.Idaho.dll with additional logic to address the changes for error-ing with additional information that needed to be handled.I was able to create output logic for this to handle it.
Updated and deployed the Nlets.MessageParsing.Parsers.California.dll that contains the fixes addressing returned unhanded Notice Messages, , a New field IDENT: for Off Road Vehicles. Handle Mileage passed in as Kilometers, Handle Registered Owner Information for Mexicali/Mexico Addresses.
Updated and deployed the Nlets.MessageParsing.Parsers.Nebraska.dll that contains the changes for the following areas: Title Information, Insurance Information, Brand Information, Vehicle Information, Owner Information, Lien/Lien Holder Information
Updated Parser.xml with additional logic to return specific messages that are appearing on the second line of information from error notification for No Match Found queries.
Updated Parser.xml with additional logic to allow parser to interpret and return the new Alert message section returned after the restriction of an RR.
Updated Parser.xml with additional logic for the CO RR parser to return the License or VIN from the original query when Soap Error notification is returned.
Updated Parser.xml with additional logic for address issues resulting from unexpected content on the first line of the message due to introduction of a new ORI.
Updated the Parser.xml file for the CT RR parser to handle a Not On File message.
Updated the Parser.xml file and Nlets.MessageParsing.Parsers.Nevada.dll for the NV RR parser to handle to handle a Not On File message, Name suffix was not being handled when there was more than one space between the name and the suffix, and to handle an issue when the number of cylinders is presented as "00".
Updated the Nlets.MessageParsing.Parsers.Oregon.dll file for the OR RR parser to handle to handle a blank Fleet Number.
Updated Parser.xml with additional logic for address issues resulting from varied character spacing
Updated the VA DR parser to handle ID Restrictions, DMV_Restrictions, and logic to handle Dwelling Address that is missing City/State/Zip.
ORIs MD002015V MD002016V MD002017V MD002018V MD002019V MD002020V MD002021V MD002022V MD002030V MD002031V MD002032V MD002033V MD002034V MDMVA0000 Not_On_File messages "RECORD NOT FOUND" "No vehicle found" "SQL ERROR!"
Update to the Parser.xml file for UT DR to handle a new Not_On_File message of "TEMPORARILY UNAVAILABLE".
Update to the Parser.xml file for ND DR to handle a new Not_On_File message of "YOUR QUERY FAILED TO EXECUTE".
|7/15/2020||ID||Registration||Added logic to return the original query and additional information when a Not on file error occurs.|
|7/15/2020||TX||Registration||Added logic to handle Out of Range Exception for two owners on the vehicle and their combined name length was beyond a specific char count.|
|7/15/2020||IN||Driver||Added "** STARS is currently not processing" to the error response section of the IN DR parser.|
|7/14/2020||CT||Registration||Added the indicator of "NO DATA FOUND" and "DATA RETRIEVAL ERROR".|
|7/14/2020||GA||Registration||Added logic to handle responses containing "Vehicle Not Found".|
|7/14/2020||AL||Registration||Added logic to handle new header line: *** DMV REGISTRATION RESPONSE ***|
|7/14/2020||MI||Registration||MI parsers updated to handle DRs and RRs from the same MI ORI (MI230015V).|
|7/14/2020||OH||Driver||Added "** Error occurred while processing the request." to the error response section of the OH DR parser.|
|7/9/2020||MS||Registration||Resolved issue with no County on Vehicle line. Had to pad the string before it could be parsed.|
|7/9/2020||WY||Registration||Added logic to handle &/OR in names|
|7/9/2020||CA||Registration||City did not have the "CITY:" as a delimiter, also additional information showing up in the dynamic lines. Added logic to handle the message.|
|7/9/2020||IA||Driver||Message marked as fully-tagged XML contains a response text element|
|7/9/2020||OR||Driver||Unexpected content encountered on first or second line|
|7/9/2020||OR||Registration||Unexpected content encountered on first or second line|
|7/9/2020||AZ||Registration||Message marked as fully-tagged XML contains a response text element that is not an indication of record not on file|
|7/9/2020||NM||Registration||Had to change logic to deal with owner section of the message when an address is not present|
|6/22/2020||OK||Registration||OK Parser update for two new fields in RR Messages|
|6/22/2020||ID||Registration||ID Parser update for positional start of text logic for LIC line in RR Messages|
|6/22/2020||NJ||Registration||NJ Parser update for the original RR Query in the first line position in RR Messages|
|6/22/2020||MI||Registration||MI RR Parser update for Error_Notification and Not_On_File_Text messages|
|6/22/2020||AZ||Registration||Adjust for NOT ON FILE messages|
|6/22/2020||OK||Registration||The OK RR parser was having issues with the new Vehicle Field "Color: and Dynamic Field Communication Disability."
I have added the logic in the Parser to handle the two new fields above.
|6/22/2020||ID||Registration||The ID RR message have started to appear with SingleFile and MultiHit files Both have intermittent LIC/ Line starting on line 0 rather than line 1.
I have added changes to make code more dynamic to handle the possibility of the two situations, in the two file types.
|06/3/2020||DE||Registration||Update to holder parsing|
|06/2/2020||AK||Driver||Update to address parsing|
|06/2/2020||CA||Driver||Update to handle additional caveat lines|
|06/2/2020||CA||Registration||Update to handle additional caveat lines|
|06/2/2020||DE||Registration||Update to LIC handling|
|06/2/2020||HI||Driver||Update to Med Field indicator|
|06/2/2020||ME||Registration||Additional Caveat handling|
|05/27/2020||OR||Registration||"Update to handle new BRAND field. Update to support new Holder codes. Major refactoring to the parsing of address|
|05/27/2020||OR||Driver||Update to address handling and to account for new “USE THIS NO” address|
|05/27/2020||TX||Registration||Update to handle new COMM IMPED field|
|05/27/2020||OH||Registration||Updates to address parsing to account for addresses with two street lines|
|05/27/2020||NM||Registration||Can now handle responses that indicate an State specific error has occurred|
|05/27/2020||NB||Driver||Multi-hit address parsing update|
|05/27/2020||WI||Registration||Addition of a new NOF strings to configuration|
|05/27/2020||NM||Registration||Addition of a new State Error Notification strings to configuration|
|05/22/2020||AZ||Driver||AZ is now sending fully-tagged NIEM|
|05/22/2020||AZ||Registration||AZ is now sending fully-tagged NIEM|
|05/22/2020||KS||Driver||Update to restriction handling|
|05/22/2020||KS||Registration||Can now handle responses that indicate an State specific error has occurred|
|05/22/2020||XX||Driver||Addition of a new State Error Notification string to configuration|
|05/14/2020||AZ||Driver||Addition of a new NOF string to configuration|
|05/13/2020||KY||Driver||Update to handle owners with "AND/OR"|
|05/13/2020||KY||Registration||Update to the processing Next of Kin|
|05/13/2020||FL||Registration||Can now handle responses that indicate an State specific error has occurred|
|05/13/2020||AR||Driver||Update to address parsing|
|05/13/2020||AR||Registration||Update to Insurance Parsing, State Error Notification Handling|
|05/13/2020||NJ||Driver||Update to handle Age|
|05/13/2020||TX||Driver||Update to handle person description|
|05/13/2020||TX||Registration||Update to handle empty EXP dates|
|05/13/2020||AL||Driver||AL switched to fully tagged responses|
|05/13/2020||AZ||Driver||AZ switched to fully tagged responses|
|05/13/2020||MI||Driver||MI switched to fully tagged responses|
|05/13/2020||NJ||Driver||New USCIS not authorized string|
|05/13/2020||AZ||Registration||AZ switched to fully tagged responses|
|05/13/2020||FL||Registration||New NOF strings added to config|
|05/13/2020||MO||Registration||MO switched to fully tagged responses|
|05/13/2020||MI||Registration||MI switched to fully tagged responses|
|05/13/2020||CT||Registration||CT switched to fully tagged responses|
|04/10/2020||MI||Registration||New NOF strings added to the configuration|
|04/10/2020||SD||Driver||Update to support safe extraction from fields dictionary Update to endorsement handling Update to MedCert handling|
|04/10/2020||AZ||Driver||Handle responses with "No matching drivers found" in the body|
|04/10/2020||AZ||Driver||Can now handle responses that indicate an State specific error has occurred|
|04/10/2020||AZ||Registration||Addition of a new MSC field|
|04/10/2020||MI||Driver||MI switched to fully tagged responses|
|03/26/2020||TX||Driver||Can now handle responses with "UNKNOWN NDLS RESPONSE" in the body|
|03/23/2020||CO||Registration||This resolved an issue with parsing CO mult-hit responses|
|03/23/2020||CO||Registration||CO started using a NEW ORI|
|03/23/2020||Al||Driver||Flag added for No Record Found or State Error Notification|
|03/23/2020||GA||Driver||GA switched to fully tagged responses|
|03/23/2020||AZ||Driver||AZ switched to fully tagged responses|
|03/23/2020||CO||Registration||CO switched to fully tagged responses|
|EXP||Expiration or Expiration Date|
|NOF||Not on File|