---
title: "Simple Issue Language"
canonical: "https://support.appfire.com/space/PSJ/15489652/Simple%20Issue%20Language"
format: markdown
---
> Macro (aura-html)

> ℹ️ Support for Atlassian Server Products (and apps like Power Scripts) ended Feb.15 2024.  
> ℹ️ Are you planning a migration to Cloud? Make sure you don't lose your Power Scripts data/configurations in the process. Check out the [Server to Cloud Migration](https://appfire.atlassian.net/wiki/spaces/PSJ/pages/15481528) page for information on how to migrate your Power Scripts data to Cloud. Contact our support team if you have any questions.

---

## Key SIL components

### Jira standard variables

SIL provides a list of standard variables that you can use to change issues fields.

For example, to change the issue description, you can use the standard variable description:

```
description = "Issue description";
```

> ℹ️ Learn more about standard variables [here](https://appfire.atlassian.net/wiki/spaces/PSJ/pages/15483075).

### Functions

SIL comes with a library of standard functions to use in scripts. There are functions for handling arrays, strings, and dates, and there are specific app functions.

> ℹ️ Learn more about SIL functions [here](https://appfire.atlassian.net/wiki/spaces/PSJ/pages/15480629/Functions+Routines?atlOrigin=eyJpIjoiYjczMWMxNTk4ZDFiNGM1ZDljZWNhZDNjMmVmODI4ZTUiLCJwIjoiYyJ9).

---

## SIL example script

To get a taste of what a SIL script looks like and does, here's an example that assigns an administrator as both assignee and reporter, sets various issue fields including description and due date, handles custom fields with conditional logic, creates a new issue, and automatically transitions the original issue to a new workflow state.

```
string k;
assignee = "admin"; 
reporter = assignee;
description = "some description";
dueDate = currentDate() + "1d";

// Custom fields
if(isNull(cfnumber)){
    cfnumber = 1;
} else {
    cfnumber = cfnumber + 1;
}

// Create issue routine
k = createIssue("TSTP", "", issueType, "auto-created issue");
%k%.votes = %k%.votes + 1;

// Autotransition
autotransition(721, key);
```

Let's explore SIL together, building your knowledge step by step through practical examples and clear explanations.


> Macro (excerpt)
> 
> ```
> string k;
> 
> assignee = "admin";
> reporter = assignee;
> description = "some description";
> dueDate = currentDate() + "1d";
> env = "environment";
> estimate = "2d" + "3h";
> originalEstimate = "1d 4h" + "21h";
> priority = "Critical";
> 
> if(not contains(summary, "test")){
>     summary = "test " + summary;
> } else {
>     summary = "random summary assigned";
> }
> 
> spent = "2d";
> updated = currentDate() - "1d";
> votes = votes + 1;
> 
> //Custom fields here
> UPPG = "admin";
> 
> //time interval custom field
> if(isNull(tt1)) {
>     tt1 = estimate + "1h";
> } else {
>     tt1 = tt1 + "1h";
> }
> 
> //number custom field
> if(isNull(cfnumber)){
>     cfnumber = 1;
> } else {
>     cfnumber = cfnumber + 1;
> }
> 
> //create routine
> k = createIssue("TSTP", "", issueType, "auto-created issue");
> %k%.votes = %k%.votes + 1;
> 
> //autotransition
> autotransition(721,key);
> //or:
> //autotransition("Send report","PRJ-123");
> 
> ```