V7R6 , date sur 6 positions en RPG

Vous avez un nouveau paramètre sur les commandes CRTBNDRPG ou CRTRPGMOD DATEYY( )

DATE WITH 2-DIGIT YEARS . . . . DATEYY( *ALLOW)

Ce paramètre n’est pas encore documenté dans l’aide mais vous comprenez , que c’est pour les dates sur 6 caractères

Rappel sur les dates à 6 , vous avez un point de bascule:
40 – 99 : Le siècle est supposé être « 19 »
00 – 39 : Le siècle est supposé être « 20 »

C’est dans 14 ans

Pour ce paramètre, DATEYY vous avez 3 valeurs possibles

DATEYY(*ALLOW) : autorise tous les formats de date, autrement dit, n’effectue aucune validation. DATEYY(WARN) : si une date est détectée, elle est considérée comme une année sur deux caractères, une erreur de compilation de niveau 10 est générée.
DATEYY(*NOALLOW) : si une date pourrait être détectée, la compilation est renvoyée avec une erreur de niveau 30. La valeur par défaut est « *ALLOW ».

il est conseillé de compiler avec *WARM, vous aurez une liste des problèmes potentiels

Ce message apparaitra

Msg id Sv Number Seq Message text
*RNF0201 10 5 002300 WARNING: A DATE WITH 2 DIGITS FOR THE YEAR ONLY SUPPORTS
THE YEARS 1940 TO 2039. REASON CODE: xxxxxx.

Rappel:
Pensez dans SQL à bien utiliser des formats sur 8 *ISO par exemple pour tous vos calculs

Exec SQL
Set Option
Datfmt = *iso ;