Detailed Description of RVN Validator

Tests the input string as a RVN (Rentenversicherungsnummer - German personal ID) and verifies its validity. This step verifies RVN length, value of the check digit and whether a character corresponding to the first character of the first given name is in the correct position. If the binding "genderHint" or the binding "dateHint" is filled in, then the RVN is tested for these values as well.

The method of the resultant gender computation is as follows:

The method of the resultant birth date computation is as follows:

In addition to this standard behavior, the step takes care of the special RVN forms which can occur when the day or month of birth (or both) is not specified. Such RVN are defined as valid. Since the date part is not complete, the birth date cannot be computed, and if the input birth date is also missing (binding "dateHint"), then the output birth date (binding "dateOut") remains empty.

RVN date information is verified by separate parts - days, months and years are validated independently. If a part is missing then an appropriate scoring flag is set - RV_RVN_DAY_UNKNOWN or RV_RVN_MONTH_UNKNOWN. These flags are set independently of the comparison of the computed and input date and are set only if the RVN is valid (passes length and sum check tests).

If the input RVN is not specified, but input birth date and gender are both specified, then the step attempts to generate a fake RVN. The generation requires also information about location of the RVN release and first letter of the person's given name. These additional values are defined in the genLocation and genSurnameLetter properties. The value specified for genLocation must contain only two digit characters and the value for the genSurnameLetter only one letter character.

An RVN is generated only if the input RVN is empty, e.g., for the input RVN value 'abcd' which is eliminated during the cleansing to an empty string, the fake RVN is not generated and only the scoring flag RVN_MISSING (which indicates an empty RVN value after cleansing) is set.


Top of page

Example: Example
<step id='alg' className='cz.adastra.cif.tasks.clean.ge.RVNValidatorAlgorithm'>
        <properties>
                <rvn>rvn</rvn>
                <rvnOut>rvn_out</rvnOut>
                <genderHint>gender_in</genderHint>
                <genderOut>gender_out</genderOut>
                <dateHint>date_in</dateHint>
                <dateOut>date_out</dateOut>
                <omitInvalidRVN>false</omitInvalidRVN>
                <maleDefinition>M</maleDefinition>
                <femaleDefinition>F</femaleDefinition>
                <scorer explanationColumn='expl'>
                        <scoringEntries>
                                <scoringEntry key="RV_RVN_MISSING" score="1000" explain="true" />
                                <scoringEntry key="RV_RVN_INVALID_LENGTH" score="1000" explain="true" />
                                <scoringEntry key="RV_RVN_INVALID_SURNAME" score="1000" explain="true" />
                                <scoringEntry key="RV_RVN_INVALID_CHECK" score="1000" explain="true" />
                                <scoringEntry key="RV_GNDR_HINT_INVALID" score="1000" explain="true" />
                                <scoringEntry key="RV_GNDR_HINT_MISSING" score="1000" explain="true" />
                                <scoringEntry key="RV_GNDR_MISMATCH" score="1000" explain="true" />
                                <scoringEntry key="RV_DATE_HINT_MISSING" score="1000" explain="true" />
                                <scoringEntry key="RV_DATE_MISMATCH" score="1000" explain="true" />
                                <scoringEntry key="RV_RVN_INVALID_DATE" score="1000" explain="true" />
                                <scoringEntry key="RV_RVN_DAY_UNKNOWN" score="1000" explain="true" />
                                <scoringEntry key="RV_RVN_MONTH_UNKNOWN" score="1000" explain="true" />
                                <scoringEntry key="RV_RVN_NOT_GENERATED" score="1000" explain="true" />
                                <scoringEntry key="RV_RVN_GENERATED" score="1000" explain="true" />
                        </scoringEntries>
                </scorer>
        </properties>
</step>

iWay Software