attach Dynamic file in folder in scenario

Solved!
gikeylian
Level 2
attach Dynamic file in folder in scenario

Hello everyone, 

After the creation of a scenario there is an option of adding Reporter to it,

i tried creating a reporter as mail and add the file that the scenario create 
(scenario runs weekly and name the file based on the date).

I want to attach the file within the folder with all the other files present, in the mail reporter i am able to see the folder but dont know how i would proceed to put a "dynamic name" or latest file option.

Can anybody help me with this?

Best regards

0 Kudos
1 Solution
LouisDHulst

Hi @gikeylian,

If I understand your Flow structure correctly you have some processing steps leading to a Folder that contains several files, and want to be able to pick the latest file added in the folder and send that via the Mail reporter?

As far as I know Dataiku doesn't offer a way to do that through the visual interface, but you can change the settings of a reporter via the Python API. 

client = dataiku.api_client()
project = client.get_default_project()
scenario = project.get_scenario('YOUR_SCENARIO')
settings = scenario.get_settings()
json = settings.raw_reporters #returns reference to the settings

#Change the settings to change the filepath used by reporter
json[0]['messaging']['configuration']['attachments'][0]['params']['attachedItemPath'] = 'new_filepath'
#Save
settings.save()

So you would add a Python script step in your Scenario, then use this code to change the settings of the reporter.

Getting the correct filepath will depend on how you name your files. If the name increases sequentially you can just take the current filepath and modify it, so if the filepath is 'YYYYMMDD.csv' you could extract the date component, add a day using datetime.timedelta and then convert the date back to string.

 

View solution in original post

0 Kudos
1 Reply
LouisDHulst

Hi @gikeylian,

If I understand your Flow structure correctly you have some processing steps leading to a Folder that contains several files, and want to be able to pick the latest file added in the folder and send that via the Mail reporter?

As far as I know Dataiku doesn't offer a way to do that through the visual interface, but you can change the settings of a reporter via the Python API. 

client = dataiku.api_client()
project = client.get_default_project()
scenario = project.get_scenario('YOUR_SCENARIO')
settings = scenario.get_settings()
json = settings.raw_reporters #returns reference to the settings

#Change the settings to change the filepath used by reporter
json[0]['messaging']['configuration']['attachments'][0]['params']['attachedItemPath'] = 'new_filepath'
#Save
settings.save()

So you would add a Python script step in your Scenario, then use this code to change the settings of the reporter.

Getting the correct filepath will depend on how you name your files. If the name increases sequentially you can just take the current filepath and modify it, so if the filepath is 'YYYYMMDD.csv' you could extract the date component, add a day using datetime.timedelta and then convert the date back to string.

 

0 Kudos