<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=Sir2000_User_Language_Tools</id>
	<title>Sir2000 User Language Tools - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://m204wiki.rocketsoftware.com/index.php?action=history&amp;feed=atom&amp;title=Sir2000_User_Language_Tools"/>
	<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Sir2000_User_Language_Tools&amp;action=history"/>
	<updated>2026-05-10T18:22:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Sir2000_User_Language_Tools&amp;diff=105106&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Sir2000_User_Language_Tools&amp;diff=105106&amp;oldid=prev"/>
		<updated>2018-02-08T22:00:52Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:00, 8 February 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://m204wiki.rocketsoftware.com/index.php?title=Sir2000_User_Language_Tools&amp;diff=105105&amp;oldid=prev</id>
		<title>JAL: /* Sir2000  topic list */ edit section title</title>
		<link rel="alternate" type="text/html" href="https://m204wiki.rocketsoftware.com/index.php?title=Sir2000_User_Language_Tools&amp;diff=105105&amp;oldid=prev"/>
		<updated>2018-02-02T22:02:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Sir2000  topic list: &lt;/span&gt; edit section title&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Overview==&lt;br /&gt;
The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Sir2000 User Language Tools&amp;lt;/var&amp;gt; is a package of products designed to help you change and test User Language ([[SOUL]]) applications for correct operation across the millennium rollover. The package consists of several components that are described below.&lt;br /&gt;
&lt;br /&gt;
===The APPDATE command===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The &amp;lt;var&amp;gt;[[The Sir2000 APPDATE command|APPDATE]]&amp;lt;/var&amp;gt; command allows you to control the operation of date and time oriented User Language $functions. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Date $functions===&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Sir2000 User Language Tools includes $functions that manipulate datetime values,&lt;br /&gt;
support improved datetime formats, while providing enhanced 2-digit year handling&lt;br /&gt;
(&amp;lt;var&amp;gt;CENTSPAN&amp;lt;/var&amp;gt;/&amp;lt;var&amp;gt;SPANSIZE&amp;lt;/var&amp;gt;) and improved error handling. These $functions replace and/or augment some standard Model&amp;amp;nbsp;204 date-related functions. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Datetime formats====&lt;br /&gt;
The $functions included with the Sir2000 User Language Tools allow you to specify&lt;br /&gt;
formats for datetime values that include all of the tokens and separator characters for any common application, including mixed case, variable length, and day of week. Date and time are handled uniformly, and there are no special $function names, special arguments, nor customization parameters to control the date formats.&lt;br /&gt;
&lt;br /&gt;
To get the current date in a different format with the standard Model&amp;amp;nbsp;204 date $functions, you must specify a special switch and/or use combinations of different $functions, frequently involving string concatenation or substring to deal with composite date and time formats. &lt;br /&gt;
&lt;br /&gt;
With the Sir2000 date $functions, each function performs some datetime related&lt;br /&gt;
calculation, and you can specify a combination of tokens to determine the format,&lt;br /&gt;
which may include time of day. For example, the following SOUL code&lt;br /&gt;
fragment is required to print the current day of the week using the standard&lt;br /&gt;
$functions provided with Model&amp;amp;nbsp;204:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PRINT $DAY($DAYI($DATECNV(&amp;#039;CYY-MM-DD&amp;#039;, &amp;#039;CYYDDD&amp;#039;, $DATE(2)))) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the Sir2000 User Language Tools, this set of nested $function calls becomes:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;PRINT $SIR_DATE(&amp;#039;Wkday&amp;#039;) &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also get the current date and time conveniently for a report:&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;%D STRING LEN 40&lt;br /&gt;
%D = $SIR_DATE(&amp;#039;Wkday, DAY Month YYYY @ HH:MI:SS AM&amp;#039;)&lt;br /&gt;
SET HEADER 1 %D &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This sets a line such as the following at the top of each page:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;code&amp;quot;&amp;gt;Monday, 1 January 2001 @ 01:11:10 PM &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Processing two digit years (CENTSPAN/SPANSIZE)====&lt;br /&gt;
The $functions included with the Sir2000 User Language Tools provide a robust&lt;br /&gt;
technique for handling 2-digit years. An optional &amp;lt;var&amp;gt;CENTSPAN&amp;lt;/var&amp;gt; argument supplies the beginning of year of the up to 100-year range of dates covered by the two-digit years.&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;var&amp;gt;CENTSPAN&amp;lt;/var&amp;gt; provides both of these: &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;An absolute specification, in which the full 4-digit start year is specified &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;A relative specification, in which the start year is specified relative to the current time, for example, 50 years ago &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The default &amp;lt;var&amp;gt;CENTSPAN&amp;lt;/var&amp;gt; value is &amp;lt;code&amp;gt;-50&amp;lt;/code&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To reduce the ambiguities caused by mapping two-digit years into four digit years,&lt;br /&gt;
&amp;lt;var&amp;gt;SPANSIZE&amp;lt;/var&amp;gt; is used to limit the number of years mapped. &amp;lt;var&amp;gt;SPANSIZE&amp;lt;/var&amp;gt; and its relationship to &amp;lt;var&amp;gt;CENTSPAN&amp;lt;/var&amp;gt; is explained in [[Sir2000 datetime processing considerations#CENTSPAN|CENTSPAN]]. The default &amp;lt;var&amp;gt;SPANSIZE&amp;lt;/var&amp;gt; is &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Error handling====&lt;br /&gt;
The $Sir_Date&amp;lt;i&amp;gt;xxx&amp;lt;/i&amp;gt; and Sir2000 datetime $functions that process user-provided datetime format strings or datetime values accept an optional last argument that is a character string specifying the action to be taken if the function detects an error. If this argument is omitted, the action taken upon an error is determined by the current state of the &amp;lt;var&amp;gt;USER&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;SYSTEM&amp;lt;/var&amp;gt; switches of &amp;lt;var&amp;gt;DATE_ERR&amp;lt;/var&amp;gt;. The &amp;lt;var&amp;gt;DATE_ERR&amp;lt;/var&amp;gt; switches can be set by an &amp;lt;var&amp;gt;APPDATE&amp;lt;/var&amp;gt; command with a &amp;lt;var&amp;gt;DATE_ERR&amp;lt;/var&amp;gt; clause or by the &amp;lt;var&amp;gt;$Sir_Date_Err&amp;lt;/var&amp;gt; function. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;DATE_ERR&amp;lt;/var&amp;gt; allows the interception of date processing errors at their source, making it much easier to perform ad-hoc testing and validation of date processing. The following error actions can be specified:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;thJustBold&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;CANCEL&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If a datetime $function (including the non-Sirius functions) detects an error, an error message is produced describing the nature of the error and the current request is cancelled. Sirius datetime $functions produce detailed error messages describing the precise nature of the error. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;REPORT&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If a datetime $function detects an error, a warning message is produced describing the nature of the error, and the appropriate standard error value is returned by the $function. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;IGNORE&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;If a datetime $function detects an error, the appropriate standard error value is returned by the $function. &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The errors that are detected include:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Invalid datetime format specification &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Datetime string not matching format &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Datetime out of range for the format &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Invalid &amp;lt;var&amp;gt;CENTSPAN&amp;lt;/var&amp;gt; value &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Datetime out of range for &amp;lt;var&amp;gt;CENTSPAN&amp;lt;/var&amp;gt;/&amp;lt;var&amp;gt;SPANSIZE&amp;lt;/var&amp;gt; combination. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
In addition, an &amp;lt;var&amp;gt;APPDATE&amp;lt;/var&amp;gt; command with a &amp;lt;var&amp;gt;DATE_ERR&amp;lt;/var&amp;gt; clause can specify that warning and error messages should include the procedure name and line number of the failing $function. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Subroutines for FUNU===&lt;br /&gt;
Included with the Sir2000 User Language Tools is a set of subroutines that can be invoked by user-provided [[Assembler language subroutines for FUNU|assembler language (FUNU) $functions]] to obtain the current&lt;br /&gt;
date and time using the appropriate &amp;lt;var&amp;gt;APPDATE&amp;lt;/var&amp;gt; clock, if any. They are compatible with the similar set of subroutines Rocket Model&amp;amp;nbsp;204 provides for current date only, with an additional entry point which allows you to obtain the current date and time using any of the Sirius datetime formats.&lt;br /&gt;
&lt;br /&gt;
===SirPro===&lt;br /&gt;
[[SirPro]] provides a highly productive integrated environment for the development and maintenance of Model&amp;amp;nbsp;204 applications. SirPro efficiently manages very large procedure&lt;br /&gt;
files while providing high performance search and global replace features. SirPro also provides a full screen interface for commonly used Model&amp;amp;nbsp;204 commands. &lt;br /&gt;
&lt;br /&gt;
===SirLib===&lt;br /&gt;
[[SirLib]] is a comprehensive change management system for Model&amp;amp;nbsp;204 SOUL&lt;br /&gt;
applications. SirLib enables multiple programmers to simultaneously work on the same procedures, with tools for resolving update conflicts and backing out individual changes&lt;br /&gt;
or projects. SirLib is modeled on the change control system used by IBM and virtually all large scale mainframe product developers. SirLib support is integrated within SirPro to minimize its intrusion into the development process.&lt;br /&gt;
&lt;br /&gt;
==Documentation topics==&lt;br /&gt;
The &amp;lt;var class=&amp;quot;product&amp;quot;&amp;gt;Sir2000 User Language Tools&amp;lt;/var&amp;gt; documentation consists of the pages listed below. This list is also available as a &amp;quot;See also&amp;quot; link from each of the pages. &lt;br /&gt;
&lt;br /&gt;
Also:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;See [[List of Model 204 messages#msir|MSIR. messages]] for information about product error messages. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;See the [[List of $functions]] for documentation for all $functions except the Sir2000-specific $functions, which are documented in [[List of Sir2000 User Language Tools $functions]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sir2000 UL Tools  topic list===&lt;br /&gt;
{{Template: Sir2000 topic list}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Sir2000 User Language Tools]]&lt;/div&gt;</summary>
		<author><name>JAL</name></author>
	</entry>
</feed>