Please share what SAS code you have executing which doesn't provide the SYMPUT correctly, preferably in an executed SAS log (COPY/PASTE into a post-reply).
Also, for your own debugging, consider using the SAS command(s) below to display your user-assigned macro variables -- and there are considerations for GLOBAL versus LOCAL macro variables depending on whether or not you are using the SAS MACRO language:
%PUT _USER_;
...or...
%PUT _LOCAL_;
%PUT _GLOBAL_;
And for diagnosing your SAS program, you will want to activate as much SAS-generate compilation/processing output directed to your SAS log, using the command:
OPTIONS SOURCE SOURCE2 MACROGEN /* SYMBOLGEN */ MPRINT;
And, you would use the macro variable from the SYMPUT to assign the ID variable a new/replacement value in a DATA step, writing back to your permanent SAS data library member used for tracking.
Scott Barry
SBBWorks, Inc.
SAS Macro Language: Reference - Scope of Macro Variables:
http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/a002047080.htm
SAS Macro Language: Reference - Introduction to the Macro Facility
http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/a002293969.htm
SAS Macro Programming for Beginners
Susan J. Slaughter, Avocet Solutions, Davis, CA
Lora D. Delwiche, Delwiche Consulting, Winters, CA
http://www2.sas.com/proceedings/sugi29/243-29.pdf