Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Jira SIL™ interpreter  basically extends the capabilities of the standard interpreter. The standard SIL™ Interpreter provides a registry for all routines functions and the Issue SIL™ Interpreter adds the additional routines into functions into this registry including Jira interactions.

...

Just like any other programming language, a standalone SIL™ program contains variables, functions, and conditional and repetitive clauses. Putting this inside a Jira context enables you to use Jira related routines functions like createIssue or linkIssue (so the script "has Jira context").  Adding an issue context inside the Jira context (so the script "has an issue context"), enables you to use field values stored on the issue, regardless of whether they are standard fields like summary, description, assignee, or custom fields.

...

Outside Jira

Inside Jira

Code Block
start block // context_0 - this is your program
	declare variable a;
	start block // push context_1
		declare variable b;
		start block // push context_2
			declare variable c;
			use variable b; // from context_1
		end block // pop context_2
		// no more variable c here
	end block // pop context_2
	// no more variable b here
end block
		
Code Block
start block // JIRA context
// defines JIRA-related routinesfunctions like createIssue(...)
	start block // issue context - transparent to the user
	// this context contains the issue field definitions
	// you can imagine this contains instructions like
	// string summary = "the summary of the issue";
		start block
			// context_0 - this is your program
			declare variable a;
			start block // push context_1
				declare variable b;
				start block // push context_2
					declare variable c;
					use variable b; // from context_1
				end block // pop context_2
				// no more variable c here
			end block // pop context_2
			// no more variable b here
		end block // this is the end of the program
	// behind-the-scene post-processing
	end block // pop the issue context
end block // pop the JIRA context

...

  • What happens in case of an error? If a program throws an exception, we do not want to corrupt the issue data by storing only the changes that were made before the error occurred, so we just throw it all out and report the error, leaving the issue as it was.


Warning
Routines

Functions exception

At the moment certain routines functions (like createIssue) cannot be undone automatically and will persist their changes regardless of whether the script was read-only or if there was an error.