<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://greggsmith.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andreyn</id>
		<title>SDU - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://greggsmith.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andreyn"/>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=Special:Contributions/Andreyn"/>
		<updated>2026-09-23T09:25:04Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.1</generator>

	<entry>
		<id>http://greggsmith.net/wiki/index.php?title=Operators&amp;diff=3762</id>
		<title>Operators</title>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=Operators&amp;diff=3762"/>
				<updated>2009-03-03T16:27:29Z</updated>
		
		<summary type="html">&lt;p&gt;Andreyn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Category:Customizations]]&lt;br /&gt;
{{Global Header}}&lt;br /&gt;
{{Global Announcement}}&lt;br /&gt;
&lt;br /&gt;
== Arithmetic Operators ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
+  Addition&lt;br /&gt;
-   Subtraction&lt;br /&gt;
*  Multiplication&lt;br /&gt;
/   Division&lt;br /&gt;
% Modulo, for example a % b will result in the remainder of a divided by b&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comparison (Relational) Operators ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
== Equal to&lt;br /&gt;
!=  Not Equal to&lt;br /&gt;
&amp;lt;= Less than or equal to&lt;br /&gt;
&amp;lt;  Less than&lt;br /&gt;
&amp;gt;= Greater than&lt;br /&gt;
&amp;gt;  Greater than&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Concatenation Operators ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
+&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logical Operators ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;amp;&amp;amp;&lt;br /&gt;
!&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Assignment Operators ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
=   simple assignment&lt;br /&gt;
+= Compound addition, like in C&lt;br /&gt;
-=  Compound subtraction&lt;br /&gt;
*= Compound multiplication&lt;br /&gt;
/= Compound division&lt;br /&gt;
%= Compound modulo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreyn</name></author>	</entry>

	<entry>
		<id>http://greggsmith.net/wiki/index.php?title=Operators&amp;diff=3761</id>
		<title>Operators</title>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=Operators&amp;diff=3761"/>
				<updated>2009-03-03T16:18:45Z</updated>
		
		<summary type="html">&lt;p&gt;Andreyn: /* Arithmetic Operators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Category:Customizations]]&lt;br /&gt;
{{Global Header}}&lt;br /&gt;
{{Global Announcement}}&lt;br /&gt;
&lt;br /&gt;
== Arithmetic Operators ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
+  Addition&lt;br /&gt;
-   Subtraction&lt;br /&gt;
*  Multiplication&lt;br /&gt;
/   Division&lt;br /&gt;
% Modulo, for example a % b will result in the remainder of a divided by b&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Comparison Operators ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
==&lt;br /&gt;
!=&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Concatenation Operators ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
+&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logical Operators ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
&amp;amp;&amp;amp;&lt;br /&gt;
!&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreyn</name></author>	</entry>

	<entry>
		<id>http://greggsmith.net/wiki/index.php?title=Spel_Reference_Guide&amp;diff=3760</id>
		<title>Spel Reference Guide</title>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=Spel_Reference_Guide&amp;diff=3760"/>
				<updated>2009-03-03T16:14:50Z</updated>
		
		<summary type="html">&lt;p&gt;Andreyn: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Category:Customization]]&lt;br /&gt;
{{Global Header}}&lt;br /&gt;
{{Global Announcement}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Spel is CA proprietary code used to script Service Desk core operations. Spel code can be found in .spl and .maj files located in [[$NX_ROOT]]\bopcfg\majic and [[$NX_ROOT]]\site\mods\majic directories. Other examples can be found in the [[$NX_ROOT]]\samples directory.&lt;br /&gt;
&lt;br /&gt;
Note: .spl files with a ''pcd'' preceding the .spl are encrypted files, such as chgpcd.spl or itilpcd.spl.&lt;br /&gt;
&lt;br /&gt;
Spel is usually used to write methods for object or attribute triggers.  Examples may be attribute validation, notification, post processing, etc.&lt;br /&gt;
&lt;br /&gt;
Spel is interpreted and executed by the Method Engine (spel_srvr), it can also be executed from the command line with bop_cmd command that interprets the fragment (.frg) files and executes the code.&lt;br /&gt;
&lt;br /&gt;
The language resembles C++.  Unlike C or C++, Spel does not support pointers or structures.&lt;br /&gt;
&lt;br /&gt;
== Reference Sections ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3|'''&amp;lt;font size=&amp;quot;3&amp;quot;&amp;gt;Functions&amp;lt;/font&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
*[[format]]&lt;br /&gt;
*[[getenv]]&lt;br /&gt;
*[[now]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
*[[send_wait]]&lt;br /&gt;
*[[sindex]]&lt;br /&gt;
*[[strlen]]&lt;br /&gt;
*[[substr]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
*[[workshift_abs2work]]&lt;br /&gt;
*[[workshift_work2abs]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3|'''&amp;lt;font size=&amp;quot;3&amp;quot;&amp;gt;Statements&amp;lt;/font&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
*[[if]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
*[[for]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
*[[while]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=3|'''&amp;lt;font size=&amp;quot;3&amp;quot;&amp;gt;Other&amp;lt;/font&amp;gt;'''&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;34%&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
*[[Data Type Conversion]]&lt;br /&gt;
*[[Operators]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
*[[Spel FAQ]]&lt;br /&gt;
*[[Triggering Reaction]]&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
*[[Troubleshooting Spell Code|Troubleshooting]]&lt;br /&gt;
*[[Variables and Types]]&lt;br /&gt;
*[[Methods handling]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[WSSIWYG]] by Nero Le Velu&lt;/div&gt;</summary>
		<author><name>Andreyn</name></author>	</entry>

	<entry>
		<id>http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3759</id>
		<title>Sindex</title>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3759"/>
				<updated>2009-03-03T16:02:30Z</updated>
		
		<summary type="html">&lt;p&gt;Andreyn: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Global Header}}&lt;br /&gt;
{{Global Announcement}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
A spel function which, although much diffrent in syntax, works similar to regex (Regular Expression) string matches found in most other programming languages.&lt;br /&gt;
&lt;br /&gt;
Returns the index of the first appearance of the pattern in the search string.  Patterns can be regular expressions.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
int sindex(string search_str, string pattern);&lt;br /&gt;
&lt;br /&gt;
Returns the index of the first appearance of PATTERN in the SEARCH_STR.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
Sindex will return a -1 is no match is found or the position of the first character of the match. Position count starts from zero.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* If statement using sindex (matching a string against a string)&lt;br /&gt;
 if (sindex(&amp;quot;test string&amp;quot;, &amp;quot;test&amp;quot;)==0) {return;}&lt;br /&gt;
&lt;br /&gt;
* Pushing the results of sindex into a variable (matching a string in another variable)&lt;br /&gt;
 int results;&lt;br /&gt;
 results=sindex(group.id, &amp;quot;776B094702EABB4B87F04A139E72D44B&amp;quot;);&lt;br /&gt;
 if (results==-1) {&lt;br /&gt;
       set_return_data(&amp;quot;No Match&amp;quot;);&lt;br /&gt;
 } else {&lt;br /&gt;
       set_return_data(&amp;quot;Match!&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Regular expression example&lt;br /&gt;
&lt;br /&gt;
sindex(action_desc, &amp;quot;(wf:[0-9]+)&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// This will print &amp;quot;sindex: 2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
printf(&amp;quot;sindex: %d\n&amp;quot;, sindex(&amp;quot;This is a test message.&amp;quot;, &amp;quot;is&amp;quot;));&lt;/div&gt;</summary>
		<author><name>Andreyn</name></author>	</entry>

	<entry>
		<id>http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3758</id>
		<title>Sindex</title>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3758"/>
				<updated>2009-03-03T16:01:21Z</updated>
		
		<summary type="html">&lt;p&gt;Andreyn: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Global Header}}&lt;br /&gt;
{{Global Announcement}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
A spel function which, although much diffrent in syntax, works similar to regex (Regular Expression) string matches found in most other programming languages.&lt;br /&gt;
&lt;br /&gt;
Returns the index of the first appearance of the pattern in the search string.  Patterns can be regular expressions.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
int sindex(string search_str, string pattern);&lt;br /&gt;
&lt;br /&gt;
Returns the index of the first appearance of PATTERN in the SEARCH_STR.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
Sindex will return a -1 is no match is found or the position of the first character of the match. Position count starts from zero.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* If statement using sindex (matching a string against a string)&lt;br /&gt;
 if (sindex(&amp;quot;test string&amp;quot;, &amp;quot;test&amp;quot;)==0) {return;}&lt;br /&gt;
&lt;br /&gt;
* Pushing the results of sindex into a variable (matching a string in another variable)&lt;br /&gt;
 int results;&lt;br /&gt;
 results=sindex(group.id, &amp;quot;776B094702EABB4B87F04A139E72D44B&amp;quot;);&lt;br /&gt;
 if (results==-1) {&lt;br /&gt;
       set_return_data(&amp;quot;No Match&amp;quot;);&lt;br /&gt;
 } else {&lt;br /&gt;
       set_return_data(&amp;quot;Match!&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
// Regular expression example&lt;br /&gt;
sindex(action_desc, &amp;quot;(wf:[0-9]+)&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// This will print &amp;quot;sindex: 2&amp;quot;&lt;br /&gt;
printf(&amp;quot;sindex: %d\n&amp;quot;, sindex(&amp;quot;This is a test message.&amp;quot;, &amp;quot;is&amp;quot;));&lt;/div&gt;</summary>
		<author><name>Andreyn</name></author>	</entry>

	<entry>
		<id>http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3757</id>
		<title>Sindex</title>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3757"/>
				<updated>2009-03-03T15:58:49Z</updated>
		
		<summary type="html">&lt;p&gt;Andreyn: /* Results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Global Header}}&lt;br /&gt;
{{Global Announcement}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
A spel function which, although much diffrent in syntax, works similar to regex (Regular Expression) string matches found in most other programming languages.&lt;br /&gt;
&lt;br /&gt;
Returns the index of the first appearance of the pattern in the search string.  Patterns can be regular expressions.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
int sindex(string search_str, string pattern);&lt;br /&gt;
&lt;br /&gt;
Returns the index of the first appearance of PATTERN in the SEARCH_STR.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
Sindex will return a -1 is no match is found or the position of the first character of the match. Position count starts from zero.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* If statement using sindex (matching a string against a string)&lt;br /&gt;
 if (sindex(&amp;quot;test string&amp;quot;, &amp;quot;test&amp;quot;)==0) {return;}&lt;br /&gt;
&lt;br /&gt;
* Pushing the results of sindex into a variable (matching a string in another variable)&lt;br /&gt;
 int results;&lt;br /&gt;
 results=sindex(group.id, &amp;quot;776B094702EABB4B87F04A139E72D44B&amp;quot;);&lt;br /&gt;
 if (results==-1) {&lt;br /&gt;
       set_return_data(&amp;quot;No Match&amp;quot;);&lt;br /&gt;
 } else {&lt;br /&gt;
       set_return_data(&amp;quot;Match!&amp;quot;);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Andreyn</name></author>	</entry>

	<entry>
		<id>http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3756</id>
		<title>Sindex</title>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3756"/>
				<updated>2009-03-03T15:53:56Z</updated>
		
		<summary type="html">&lt;p&gt;Andreyn: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Global Header}}&lt;br /&gt;
{{Global Announcement}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
A spel function which, although much diffrent in syntax, works similar to regex (Regular Expression) string matches found in most other programming languages.&lt;br /&gt;
&lt;br /&gt;
Returns the index of the first appearance of the pattern in the search string.  Patterns can be regular expressions.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
int sindex(string search_str, string pattern);&lt;br /&gt;
&lt;br /&gt;
Returns the index of the first appearance of PATTERN in the SEARCH_STR.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
Sindex will return a -1 is no match is found or a 0 if a match is made.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* If statement using sindex (matching a string against a string)&lt;br /&gt;
 if (sindex(&amp;quot;test string&amp;quot;, &amp;quot;test&amp;quot;)==0) {return;}&lt;br /&gt;
&lt;br /&gt;
* Pushing the results of sindex into a variable (matching a string in another variable)&lt;br /&gt;
 int results;&lt;br /&gt;
 results=sindex(group.id, &amp;quot;776B094702EABB4B87F04A139E72D44B&amp;quot;);&lt;br /&gt;
 if (results==-1) {&lt;br /&gt;
       set_return_data(&amp;quot;No Match&amp;quot;);&lt;br /&gt;
 } else {&lt;br /&gt;
       set_return_data(&amp;quot;Match!&amp;quot;);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Andreyn</name></author>	</entry>

	<entry>
		<id>http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3755</id>
		<title>Sindex</title>
		<link rel="alternate" type="text/html" href="http://greggsmith.net/wiki/index.php?title=Sindex&amp;diff=3755"/>
				<updated>2009-03-03T15:52:35Z</updated>
		
		<summary type="html">&lt;p&gt;Andreyn: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Global Header}}&lt;br /&gt;
{{Global Announcement}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
A spel function which, although much diffrent in syntax, works similar to regex (Regular Expression) string matches found in most other programming languages.&lt;br /&gt;
&lt;br /&gt;
Returns the index of the first appearance of the pattern in the search string.  Patterns can be regular expressions.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
sindex(''&amp;quot;string&amp;quot;'',''&amp;quot;match&amp;quot;'');&lt;br /&gt;
&lt;br /&gt;
Unknown if any wildcards are supported&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
Sindex will return a -1 is no match is found or a 0 if a match is made.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* If statement using sindex (matching a string against a string)&lt;br /&gt;
 if (sindex(&amp;quot;test string&amp;quot;, &amp;quot;test&amp;quot;)==0) {return;}&lt;br /&gt;
&lt;br /&gt;
* Pushing the results of sindex into a variable (matching a string in another variable)&lt;br /&gt;
 int results;&lt;br /&gt;
 results=sindex(group.id, &amp;quot;776B094702EABB4B87F04A139E72D44B&amp;quot;);&lt;br /&gt;
 if (results==-1) {&lt;br /&gt;
       set_return_data(&amp;quot;No Match&amp;quot;);&lt;br /&gt;
 } else {&lt;br /&gt;
       set_return_data(&amp;quot;Match!&amp;quot;);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Andreyn</name></author>	</entry>

	</feed>