attribute := expression : DEPRECATED [ ( message ) ] ;
| attribute | The name of the Attribute. |
| expression | The definition of the attribute. |
| message | Optional. The text to append to the warning if the attribute is used. |
The DEPRECATED service displays a warning when the attribute is used in code that instantiates a workunit or during a syntax check. This is meant to be used on attribute definitions that have been superseded.
When used on a structure attribute (RECORD, TRANSFORM, FUNCTION, etc.), this must be placed between the keyword END and its terminating semi-colon.
Example:
OldSort := SORT(Person,Person.per_first_name) : DEPRECATED('Use NewSort instead.');
NewSort := SORT(Person,-Person.per_first_name);
OUTPUT(OldSort);
//produces this warning:
// Attribute OldSort is marked as deprecated. Use NewSort instead.
//**********************************************
ds := DATASET(['A','B','C'],{STRING1 letter});
R1 := RECORD
STRING1 letter;
END : DEPRECATED('Use R2 now.');
R2 := RECORD
STRING1 letter;
INTEGER number;
END;
R1 Xform1(ds L) := TRANSFORM
SELF.letter := Std.Str.ToLowerCase(L.letter);
END : DEPRECATED('Use Xform2 now.');
R2 Xform2(ds L, integer C) := TRANSFORM
SELF.letter := Std.Str.ToLowerCase(L.letter);
SELF.number := C;
END;
OUTPUT(PROJECT(ds,Xform1(LEFT))); //produces these warnings:
// Attribute r1 is marked as deprecated. Use R2 now.
// Attribute Xform1 is marked as deprecated. Use Xform2 now.