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.