Splunk Search

Why am I getting "Error in 'SearchParser': The definition of macro is expected to be an eval expression that returns a string."

herve1
Engager

This is an eval-based macro to be used before the first |
macro definition:
if($Id$=="", " ", " LOGIN_NAME=$Id$ ")
I am using it like this in a splunk search:
... `add_Id(Id=
)` | ...
I get this message:
Error in 'SearchParser': The definition of macro 'add_Id(1)' is expected to be an eval expression that returns a string.
What am I doing wrong?

Tags (1)
0 Karma
1 Solution

acharlieh
Influencer

So there are two issues here apparently... First, macro definitions include the argument names, therefore you should be able to invoke it like so:

index=foo `add_Id(*)` | ...

Secondly, playing with it locally, I think you should change your macro definition slightly to make sure the parameter is treated correctly like so. from: if($Id$=="*", " ", " LOGIN_NAME=$Id$ ") to: if("$Id$"=="*", " ", " LOGIN_NAME=$Id$ ")

View solution in original post

0 Karma

acharlieh
Influencer

So there are two issues here apparently... First, macro definitions include the argument names, therefore you should be able to invoke it like so:

index=foo `add_Id(*)` | ...

Secondly, playing with it locally, I think you should change your macro definition slightly to make sure the parameter is treated correctly like so. from: if($Id$=="*", " ", " LOGIN_NAME=$Id$ ") to: if("$Id$"=="*", " ", " LOGIN_NAME=$Id$ ")

0 Karma
Get Updates on the Splunk Community!

Community Content Calendar, November Edition

Welcome to the November edition of our Community Spotlight! Each month, we dive into the Splunk Community to ...

October Community Champions: A Shoutout to Our Contributors!

As October comes to a close, we want to take a moment to celebrate the people who make the Splunk Community ...

Stay Connected: Your Guide to November Tech Talks, Office Hours, and Webinars!

What are Community Office Hours? Community Office Hours is an interactive 60-minute Zoom series where ...