BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Rsadiq
Calcite | Level 5

Hello

 

I'm not sure what this error means,

 

 %macro step0 ;
53         data sasdata.dialerfiles;
54         set /*dialer.mcp_manual_20170124*/
55         dialer2.qual_not_on_dialer_20170222_new  ;
56         dialer2.march_dialer ;
57         run;
58         %mend step0;
59         %step0;

 

NOTE: Line generated by the invoked macro "STEP0".
59          data sasdata.dialerfiles; set  dialer2.qual_not_on_dialer_20170222_new  ; dialer2.march_dialer ; run;
                                                                                      ____________________
                                                                                      557
ERROR: DATA STEP Component Object failure.  Aborted during the COMPILATION phase.
ERROR 557-185: Variable dialer2 is not an object.

1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User

When posting log snippets, use the {i} icon/button to open a window that will preserve formatting.

 

You do have a semicolon between dialer2.qual_not_on_dialer_20170222_new and dialer2.march_dialer. Since the name.method notation is part of the hash object language (component objects), this explains the ERROR message.

View solution in original post

4 REPLIES 4
TheShark
Obsidian | Level 7

The character limit for dataset names (I believe) is 32. Try to shorten that up a little bit and let us know if it works then! It also seems to be complaining about dialer2 library not being valid? Maybe it's the long name throwing SAS off into a tizzy but you may need to look into that as well if it doesn't clear up after shortening. 

Astounding
PROC Star

You have an extra semicolon in the middle of the SET statement.  If you are reading multiple data sets on the SET statement, there should still be only one semicolon at the end.

Kurt_Bremser
Super User

When posting log snippets, use the {i} icon/button to open a window that will preserve formatting.

 

You do have a semicolon between dialer2.qual_not_on_dialer_20170222_new and dialer2.march_dialer. Since the name.method notation is part of the hash object language (component objects), this explains the ERROR message.

Kurt_Bremser
Super User

I also seriously doubt the necessity of a macro definition for what you are doing, since no dynamic code is created by the macro.

Also always test code for itself before wrapping into a macro definition. Makes debugging easier.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 10313 views
  • 2 likes
  • 4 in conversation