DEV Community

Cover image for How create a custom Job which execute a script in SFRA πŸ”¨
DanieleAurilio
DanieleAurilio

Posted on β€’ Edited on

How create a custom Job which execute a script in SFRA πŸ”¨

Intro πŸ’‘

Many times you had think how you can automate a script, but you don't know how jobs works in SFRA or how you can create a custom jobs? Don't worry, first time can be difficult for all. I am here for explain to you whats is a job and how you can customize it and automate routine tasks or long-running processes.

Note: you can create jobs through business manager but I don’t explain how do it in this article.

I know, you can't wait to automate your processes, so what are we waiting for, let's automate!

Let’s Create File to execute! πŸ› οΈ

Go create a js file under the path your_directory/cartridge/scripts/jobs/scriptFile.js

I created and exported a simple function which log a string, but you can do everything you want.

Remember to export function you want execute.

image

Let’s Declare Job! βš™οΈ

Go create a xml file under the path your_directory/sites/sites_template/file_name.xml

Here we declare job which execute a script, all jobs are included in tag <jobs> </jobs>.

image

In <jobs> </jobs> you can declare all jobs, every job is unique and it is identified by job-id. In job you must start a <flow> </flow> which include <step> </step>. Every step is unique and it is identified by step-id. Step include a <description> </description> and a <parameters> </parameters>. In <parameters> you can include how many <parameter> </parameter> you want. Every parameter have a name, In name=β€œβ€ you must specify input Parameters, you can find all input Parameters with description in official documentation.

  • In name <parameter name="ExecuteScriptModule.Module">app_project/cartridge/scripts/jobs/scriptFile.js
    </parameter>
    You have to pass ExecuteScriptModule.Module which accept as input parameters Script File.

  • In <parameter name="ExecuteScriptModule.FunctionName">execute</parameter> You have to pass as input parameters function’s name exported in script file.

  • In <parameter name="ExecuteScriptModule.Transactional">false</parameter> You have to pass a boolean value, but It must be true if in function you are using class Transaction.

With <triggers> </triggers> you can specify when run job.

Upload and import your job file .xml in Business Manager in Administration -> Operations -> Import & Export.
Now you can import your job immediately or wait the day and the time specified in the xml file.

Agent.ai Challenge image

We're dropping a new challenge with Agent.ai on January 15!

Sign up now so you don't miss the announcement.

See more β†’

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

πŸ‘‹ Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay