Survey banner
Switching to Dataiku - a new area to help users who are transitioning from other tools and diving into Dataiku! CHECK IT OUT

Trigger and Create Scenario using External API's

sj0071992
Trigger and Create Scenario using External API's

Hi Team,

 

I just want to confirm like, can we trigger or Create a Dataiku Scenario using External Python rest API's?

 

Thanks in Advance

0 Kudos
6 Replies
VitaliyD
Dataiker

Hi @sj0071992,

Yes, you can trigger the scenario programmatically using external Dataiku API. Please find the code sample below:

import dataikuapi

host = "DSS_host"
global_api_key = "your_api_key"
project_key = 'new_model'

​scenario_name = 'scenario_name'
client = dataikuapi.DSSClient(host, global_api_key)
project = client.get_project(project_key)
scenario = project.get_scenario(scenario_name)

​scenario.run_and_wait()

To create a scenario, you will need to use the Projects API create_scenario() function:
https://doc.dataiku.com/dss/latest/python-api/projects.html#dataikuapi.dss.project.DSSProject.create...

For a complete list of available Scenario API functions, please refer to our documentation here:
https://doc.dataiku.com/dss/latest/python-api/scenarios.html
https://doc.dataiku.com/dss/latest/python-api/scenarios-inside.html

Best,
Vitaliy

tanguy

Why does dataiku allow to create a scenario using dataiku's API but does not allow to modify the created scenario (I am trying to do this : create a scenario from a plugin and then define its content but dataiku only allows to modify a scenario inside it, not outside it)?

0 Kudos
VitaliyD
Dataiker

Hi, you probably mean modifying the scenario's settings. You can do it by following examples from our docs https://doc.dataiku.com/dss/latest/python-api/scenarios.html#enable-scenarios-from-a-list-of-ids.

For example, you can do something like below:

import dataiku
client = dataiku.api_client()
project = client.get_default_project()
scenario = project.get_scenario("scenario_id")
settings = scenario.get_settings()
raw_setttings = settings.get_raw()
#modify raw settings:
raw_setttings["name"] = "new_name"
#and save the settings:
settings.save()

 

If the above is not what you mean, please elaborate on what you want to modify and provide an example. 

0 Kudos
tanguy

Thanks for the reply @VitaliyD. I have tried to do that, however my objectif is to change the content of a scenario (e.g. adding and specifying a new step or changing python code inside a scenario). I have not managed to do this with a step-based scenario, but it seems it is possible to change the code of a custom code scenario.

0 Kudos
lightnessofbein
Level 2

Hey @tanguy , have you found a way to change the code of a custom scenario? I only found a way to change the code of step with custom Python code in step-based scenarios, no clue how to do it for custom code scenarios.

0 Kudos

Hi @lightnessofbein, I am interested in your solution to modify custom python code in a step based scenario 🙂.

Regarding custom scenarios, maybe you can change it by using the payload methods (there is `get_payload` method and a `set_payload` method)?

modify_scenarios.JPG

 

0 Kudos