This is some debugging information regarding a program written to using a format library as a lookup table. Sorry but it may not make sense without all the details!
In this case the statement to create the control value based on the a key’s format was as follows:
control=put(key,control.);
However, when SAS can’t find a key value the [format] lookup table it will define the control variable using the initial value of the variable key.
Proc format defines a default length to be the longest value it finds in the dataset when it uses the CNTLIN option. If the longest value SAS initially discovers for the control variable has a length of 6 SAS will thus round off any future values that are greater than a length of 6 (e.g. 12345678 would become 12345600). Setting a larger value length by adding "default 12" to the retain statement will fix this.
libname library '/path/to/sasdata';
libname sasdata '/path/to/sasdata';
data ctrl;
set sasdata.control(rename=(key=start control=label));
retain fmtname 'control' type 'n' default 12;
output;
run;
proc format library=library cntlin=ctrl fmtlib;
run;