Date Issue in Pipeline Parameter

Hi All,

I have a requirement to pass date in YYYY-MM-DD format and I am using the expression “Date.now().toLocaleDateString()” but I have the below issue.

When I use it in pipeline parameter “Effective_Date” then use _Effective_Date in the pipeline it fails but when I use it directly it works. When I pass something hardcoded in the pipeline parameter it also works e.g. 2022-01-01

Could you suggest what is happening here and what is needed to get it fixed?

Below is not working

Below is working

Can anyone suggest, please?

Hi, can anyone suggest me a workaround, please?

Hi @amit.saroha,

The values that are passed from parameters, are always a string. So in your case, you’re not passing a function, but a string.

In order your pipeline to work is, either leave the BatchParameter to get the date directly from the pipeline execute like shown on the picture above, or, use the eval() function with the parameter.

eval(_Effective_Date)

That way your function passed like a parameter, will be evaluated and considered as a function.

Hope this helps,
Bojan

Thanks @bojanvelevski - It works but when I pass 2022-11-20 in same parameter instead of expression the eval (Effective_Date) returns 1991 but I need it as it is 2022-11-20.

Please suggest if there is a way to do it, I want both the options working.

Tell us more on the use case. You have situation where sometimes the date should be current timestamp and sometimes just a date?

If yes, what is the condition?

You can pass an enhanced expression like :
CONDITION ? Date.now() : '2022-11-20'

and wrap this in eval() in the snap itself.

Hello @bojanvelevski,

Sometimes we may have to run the pipeline with old dates due to any issue in our server, network or third-party outages hence I need to pass a date like 2022-11-20, but generally it will be today’s date so I have to use the expression. We don’t care about timestamp only the date in format YYYY-MM-DD.

Also, please help me little more on what you explained in above reply. I am using it as below as of now -

When you need to run the pipeline with earlier dates, is it going to be a manual configuration and run?

You can simply configure the BatchParameterD1 like this:

_Effective_Date == "" ? Date.now().toLocaleDateString() : _Effective_Date

That way, if the parameter is not empty, it will be taken into consideration, if it is, than the current date will be generated.

Hi @bojanvelevski, yes, it will be a manual run. I tried the expression you have suggested but it didn’t work. Could you suggest what is wrong what I have done.