<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://techwiki.neosys.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joel</id>
	<title>NEOSYS Technical Support Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://techwiki.neosys.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joel"/>
	<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php/Special:Contributions/Joel"/>
	<updated>2026-05-29T18:16:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Configuring_Thunderbird&amp;diff=4045</id>
		<title>Configuring Thunderbird</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Configuring_Thunderbird&amp;diff=4045"/>
		<updated>2024-06-03T06:38:25Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Configure Email Tags and Colour */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Setting Up the Inbox Accounts==&lt;br /&gt;
&lt;br /&gt;
The instructions given below explain how to set up the &amp;quot;Support&amp;quot; account on Thunderbird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Open Mozilla Thunderbird. Choose the &amp;quot;Create a new account&amp;quot; option. Click on &amp;quot;Skip this and use my existing email&amp;quot; option on the &amp;quot;Welcome to Thunderbird&amp;quot; window.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. In the Mail Account Setup window, enter &amp;quot;support@neosys.com&amp;quot; for Your Name, &amp;quot;support@neosys.com&amp;quot; for Email Address and the password provided by Neosys staff. Click on continue.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Click on &amp;quot;Manual Config&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Key in &amp;quot;imap.neosys.com&amp;quot; for incoming IMAP host name, server hostname &amp;quot;smtp.neosys.com&amp;quot; and port &amp;quot;587&amp;quot; for outgoing SMTP and &amp;quot;support.neosys&amp;quot; as username. For SMTP, change the SSL to &amp;quot;STARTTLS&amp;quot; and authentication to &amp;quot;No authentication&amp;quot;. Click on the &amp;quot;Re-test&amp;quot; button and then click &amp;quot;Done&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BEFORE clicking on inbox and BEFORE adding other inboxes, you MUST refer to [[Configuring_Thunderbird#Adding_email_accounts_with_large_numbers_of_emails | Adding email accounts with large numbers of emails]]. This is because if you add all the accounts together at once, they will all sync together and it will take 1-2 days for the sync to complete.&lt;br /&gt;
&lt;br /&gt;
For backups@neosys.com, support2@neosys.com (Nagios), name.neosys@gmail.com repeat the steps mentioned above, with the below-mentioned replacements.&lt;br /&gt;
&lt;br /&gt;
1. For backups@neosys.com, enter &amp;quot;backups@neosys.com&amp;quot; for Your Name, &amp;quot;backups@neosys.com&amp;quot; for Email address and enter the password provided by Neosys staff.&lt;br /&gt;
Enter the username as &amp;quot;backups.neosys&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. For support2@neosys.com, enter &amp;quot;support2@neosys.com&amp;quot; for Your Name, &amp;quot;support2@neosys.com&amp;quot; for Email address and enter the password provided by Neosys staff.&lt;br /&gt;
Enter the username as &amp;quot;support2.neosys&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. For name.neosys@gmail.com, enter your full name for Your Name, &amp;quot;name.neosys@gmail.com&amp;quot; for Email address and enter the password. You do not need to follow the steps for manual config as the settings will be automatically configured.&lt;br /&gt;
&lt;br /&gt;
[[File:thunderbird_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:thunderbird_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Account Settings==&lt;br /&gt;
&lt;br /&gt;
Verify that the account settings for all the accounts are entered as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings2.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings3.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings4.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Account junk.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
For backups@neosys.com account, under &amp;quot;Synchronization and Storage&amp;quot;, change the setting to &amp;quot;Delete messages more than 365 days old&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Synchronisation &amp;amp; Storage settings should be changed to the settings shown below only at a convenient time, since downloading all the emails will take a lot of time for accounts with large number of emails. Also see [[Configuring_Thunderbird#Adding_email_accounts_with_large_numbers_of_emails |Adding email accounts with large number of emails]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings6.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings7.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings8.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Adding email accounts with large numbers of emails===&lt;br /&gt;
&lt;br /&gt;
After adding email accounts with large numbers of emails, in order to avoid long wait while downloading all the emails, it is best to change the account settings - BEFORE clicking on INBOX, which triggers the download/sync - to download the bodies of only the last 30 days of emails. The email headings are always synced but that does not take long.&lt;br /&gt;
&lt;br /&gt;
See Account Settings, Synchronisation and Storage.&lt;br /&gt;
&lt;br /&gt;
Since searching of emails only works when the bodies of emails have been downloaded, if you need to text search all emails, then, at a convenient time, you can remove or increase the number of days in the setting and somehow trigger the full sync.&lt;br /&gt;
&lt;br /&gt;
[[File:thla.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Configuring Outgoing SMTP Mail Servers===&lt;br /&gt;
&lt;br /&gt;
By default Thunderbird adds a new smtp profile with each Inbox added.&lt;br /&gt;
&lt;br /&gt;
However you only need two, main and backup. &lt;br /&gt;
&lt;br /&gt;
1. Right click on any Inbox &amp;gt; Settings.&lt;br /&gt;
&lt;br /&gt;
2. Scroll down and click &amp;quot;Outgoing Server (SMTP)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Delete all smtp server profiles except the default and ensure your settings match below screenshot.&lt;br /&gt;
[[File:Smtpsettings.png]]&lt;br /&gt;
&lt;br /&gt;
4. Add a new profile with settings in below screenshot.&lt;br /&gt;
&lt;br /&gt;
TODO - setup backup imap2 container and add settings screenshot here. (old imap2 smtp port 2500)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Add-ons==&lt;br /&gt;
&lt;br /&gt;
#Install addons: General settings menu (Top right 3 bars) &amp;gt; Addons &lt;br /&gt;
#Search and install the addons in below screenshot.&lt;br /&gt;
#Configure Mailbox Alert by Right e.g support inbox &amp;gt; Mailbox Alert: &lt;br /&gt;
##Check default sound and message.&lt;br /&gt;
[[File:Addon2.png]]&lt;br /&gt;
&lt;br /&gt;
==Other General Configurations==&lt;br /&gt;
&lt;br /&gt;
===Configure inbox to display selected columns===&lt;br /&gt;
&lt;br /&gt;
The below options MUST be set in Support Inbox. To do so Right click on a column heading and select the below options:  &lt;br /&gt;
&lt;br /&gt;
#Thread&lt;br /&gt;
#Starred&lt;br /&gt;
#Attachment&lt;br /&gt;
#Subject&lt;br /&gt;
#Correspondents&lt;br /&gt;
#Received: You MUST add column RECEIVED which is the email date received to email inbox because the default Date seems to be the DATE SENT whereas we are primarily interested in the date we received the email. The difference is due to delays in email servers or spam tricks.&lt;br /&gt;
&lt;br /&gt;
The below options MUST NOT be set in Support Inbox&lt;br /&gt;
&lt;br /&gt;
#Junk status: Emails will automatically be moved to Junk folder if the junk icon in this column is clicked. Hence remove Junk Status column so that emails are not accidentally moved to junk. To remove, right-click on a column heading and untick &amp;quot;Junk Status&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configure Mail Content===&lt;br /&gt;
&lt;br /&gt;
Settings &amp;gt; Privacy &amp;gt; untick &amp;quot;Allow remote content in messages&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Support MUST set the &amp;quot;Allow remote content in messages&amp;quot; as blocked in Thunderbird without adding any exceptions for any email id. The reason is remote content i.e embedded images, stylesheets etc is a privacy concern as it sends your private information to the mail sender. We do not know the source of these embedded content in emails so cannot trust them as they can be web bugs.&lt;br /&gt;
&lt;br /&gt;
===Configure Layout View===&lt;br /&gt;
&lt;br /&gt;
Layout view should be set as Vertical view.&lt;br /&gt;
&lt;br /&gt;
===Optimise Titlebar Space===&lt;br /&gt;
&lt;br /&gt;
Follow below steps to merge the titlebar with the tabs bar to reduce wastage of screen space.&lt;br /&gt;
&lt;br /&gt;
#Go to Settings -&amp;gt; General&lt;br /&gt;
#Scroll to the bottom and click &amp;quot;Config Editor...&amp;quot;&lt;br /&gt;
#Search for mail.tabs.drawInTitlebar&lt;br /&gt;
#Change its value to &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Thunderbird Preferences===&lt;br /&gt;
&lt;br /&gt;
#Preferences &amp;gt; Display &amp;gt; Advanced &amp;gt; untick &amp;quot; Automatically mark messages as read&amp;quot;.&lt;br /&gt;
#Keep settings as below for Preferences &amp;gt; Security.&lt;br /&gt;
#Keep settings as below for Preferences &amp;gt; Composition &amp;gt; Spelling.&lt;br /&gt;
&lt;br /&gt;
[[File:Globaljunk.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Composition.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Configure MailAlert===&lt;br /&gt;
&lt;br /&gt;
Right click Inbox &amp;gt; Mailbox Alert &amp;gt; Edit Mailbox Alert alerts &amp;gt; Select Default message. Set as below. Once set Right click Inbox &amp;gt; Mailbox Alert &amp;gt; check Default message&lt;br /&gt;
&lt;br /&gt;
[[file:thsh.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Configure Auto Resize Image===&lt;br /&gt;
&lt;br /&gt;
Set the preferences for the Auto Resize Image add-on as shown in the screenshot at the end of this section.&lt;br /&gt;
&lt;br /&gt;
To handle different scenarios when resizing images in emails, follow the below steps:&lt;br /&gt;
&lt;br /&gt;
*Resize all images in the email: Click &amp;quot;Send&amp;quot; followed by &amp;quot;Confirm&amp;quot; on the Auto resize screen.&lt;br /&gt;
&lt;br /&gt;
*Skip resize all images in the email: Click &amp;quot;Send&amp;quot; followed by &amp;quot;Cancel Resizing&amp;quot; on the Auto resize screen.&lt;br /&gt;
&lt;br /&gt;
*Resize Images only in the email trail and skip resizing new images: Click &amp;quot;Resize&amp;quot; on top of your screen and proceed with writing the email/adding new images. When ready to send the email, follow above step for skipping resize all images in the email.&lt;br /&gt;
&lt;br /&gt;
[[File:Resize2.png]]&lt;br /&gt;
&lt;br /&gt;
===Configure Header Tools Lite===&lt;br /&gt;
&lt;br /&gt;
Set the preferences for the Header Tools Lite add-on as shown in the screenshot below.&lt;br /&gt;
&lt;br /&gt;
[[File:headertoolslite.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Configure Dorando Keyconfig===&lt;br /&gt;
&lt;br /&gt;
Menu &amp;gt; Add-ons &amp;gt; Edit Keyconfig Preferences &amp;gt; Disable shortcuts for &#039;Archive&#039; and &#039;Junk&#039; as shown in the screenshots below.&lt;br /&gt;
&lt;br /&gt;
[[File:Keyconfig1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Keyconfig2.png]]&lt;br /&gt;
&lt;br /&gt;
===Getting access to NEOSYS support calendar===&lt;br /&gt;
&lt;br /&gt;
After confirming that the steps below are successfully done, delete your local personal calendar and make the shared support calendar the default.&lt;br /&gt;
&lt;br /&gt;
In Thunderbird, add a new CalDAV network calendar by navigating to File (Alt+f) -&amp;gt; New -&amp;gt; Calendar.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal1.png]]&lt;br /&gt;
&lt;br /&gt;
Location: https://nextcloud.hosts.neosys.com:44318/remote.php/dav/calendars/support/support_shared_by_steve/&lt;br /&gt;
&lt;br /&gt;
You will have to enter your nextcloud user and pass.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal2.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Cal3.png]]&lt;br /&gt;
&lt;br /&gt;
It should show a tick if successful, otherwise you will have to Unsubscribe and try again.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal4.png]]&lt;br /&gt;
&lt;br /&gt;
Change the new calendar properties to Refresh every 5 mins.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal5.png]]&lt;br /&gt;
&lt;br /&gt;
===Applying filter for backup failure emails===&lt;br /&gt;
&lt;br /&gt;
In order to filter any backup failure emails as Important, go to Tools &amp;gt; Message Filters and create a new filter with settings as shown below:&lt;br /&gt;
&lt;br /&gt;
Refer to filters list of other staff members.&lt;br /&gt;
&lt;br /&gt;
===Shared Email Tags between Support machines===&lt;br /&gt;
1. Add the new tag name and color in Thunderbird UI.&lt;br /&gt;
&lt;br /&gt;
2. Find and open the prefs.js file in your profile directory. It should be in the &#039;default&#039; folder usually.&lt;br /&gt;
 find ~/.thunderbird/ -name prefs.js &lt;br /&gt;
&lt;br /&gt;
 nano /home/gregory/.thunderbird/s3bqjf24.dsfaefawe/prefs.js&lt;br /&gt;
3. The tag would have been created with a name and color, which needs to be replaced to &amp;quot;$label....&amp;quot; as shown below. Copy the new color and tag lines.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label1.color&amp;quot;, &amp;quot;#FF0000&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label1.tag&amp;quot;, &amp;quot;Important&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label2.color&amp;quot;, &amp;quot;#FF9900&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label2.tag&amp;quot;, &amp;quot;Work&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label3.color&amp;quot;, &amp;quot;#009900&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label3.tag&amp;quot;, &amp;quot;Joel&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label4.color&amp;quot;, &amp;quot;#3333ff&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label4.tag&amp;quot;, &amp;quot;Greg&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label5.color&amp;quot;, &amp;quot;#993399&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label5.tag&amp;quot;, &amp;quot;Arvind&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label6.color&amp;quot;, &amp;quot;#ff6e6e&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label6.tag&amp;quot;, &amp;quot;Follow up&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label7.color&amp;quot;, &amp;quot;#eb007b&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label7.tag&amp;quot;, &amp;quot;Client issue&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label8.color&amp;quot;, &amp;quot;#28e2d8&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label8.tag&amp;quot;, &amp;quot;Delay support&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label9.color&amp;quot;, &amp;quot;#986a44&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label9.tag&amp;quot;, &amp;quot;Pending review&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;4. Next step is to recreate it across all Support machines. Thunderbird should not be running on any of the machines as the prefs.js file is overwritten on application exit.&lt;br /&gt;
&lt;br /&gt;
5. Add the new lines to the prefs.js file and then start Thunderbird again.&lt;br /&gt;
&lt;br /&gt;
==[[Procedures#Email_Retention_Policy| Email Retention Policy]]==&lt;br /&gt;
&lt;br /&gt;
==[[Procedures#Handling_junk.2Fspam_email| Handling junk/spam emails]]==&lt;br /&gt;
&lt;br /&gt;
==Viewing long running processes on Thunderbird==&lt;br /&gt;
When setting up and configuring Thunderbird, using its Activity Manager (Tools &amp;gt; Activity Manager) and possibly using the header bar &amp;quot;Always on top&amp;quot; option on the Activity Manager window may be helpful to know what long running processes are being performed.&lt;br /&gt;
&lt;br /&gt;
[[File:Activity manager.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Deleting Thunderbird accounts==&lt;br /&gt;
Check the option &amp;quot;Remove Message Data&amp;quot; when removing accounts from Thunderbird. Otherwise, the old messages stay forever taking space on the disk.&lt;br /&gt;
&lt;br /&gt;
[[File:dt2.png]]&lt;br /&gt;
&lt;br /&gt;
Select Remove Message Data option as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:dt.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Clearing out old improperly deleted Thunderbird Accounts==&lt;br /&gt;
&lt;br /&gt;
If you delete Thunderbird accounts without checking the option &amp;quot;Remove Message Data&amp;quot; the old messages stay forever taking space on the disk.&lt;br /&gt;
&lt;br /&gt;
To locate any such unnecessary files&lt;br /&gt;
&lt;br /&gt;
 ls -l -h /home/*/.thunderbird/*.default/ImapMail/*/INBOX&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-rw------- 1 arvind arvind  16M May 25 16:36 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.gmail.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 668M Mar 29 08:54 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-1.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 242M May 28 14:45 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-2.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 755M May 25 12:39 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-3.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 420M Apr 24 10:27 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-4.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind  13G May 28 14:37 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys.com/INBOX&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the dates, which indicate the date of the last message received, to get a rough idea of what accounts are in use and not in use&lt;br /&gt;
&lt;br /&gt;
Check which of the folders are currently in use by looking in Thunderbird settings for each account one by one, &amp;quot;Server Settings&amp;quot;, &amp;quot;Local Directory&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Delete the folders and files which are not in use using whatever method you like.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.thunderbird&amp;quot;, like all files and folders which start with a dot, is a hidden folder which you can make visible in Nautilus File Manager by pressing Ctrl+h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting Thunderbird==&lt;br /&gt;
&lt;br /&gt;
===High CPU usage when idling===&lt;br /&gt;
&lt;br /&gt;
If Thunderbird consumes 100+% CPU when there is no activity seen on Thunderbird activity manager (Tools -&amp;gt; Activity Manager), then try the below steps from https://kb.mozillazine.org/Performance_-_Thunderbird :&lt;br /&gt;
&lt;br /&gt;
#Go to Settings -&amp;gt; General &lt;br /&gt;
#Scroll to the bottom and click &amp;quot;Config Editor...&amp;quot;&lt;br /&gt;
#Search for mail.db.idle_limit&lt;br /&gt;
#Change its value to 30000000 (7 zeroes, not 5 zeroes) and save&lt;br /&gt;
#Restart Thunderbird&lt;br /&gt;
&lt;br /&gt;
===Emails show wrong body===&lt;br /&gt;
&lt;br /&gt;
Sometimes emails may not load correctly. Clicking an email will show some other email&#039;s body. To fix this:&lt;br /&gt;
&lt;br /&gt;
#Right click the Thunderbird folder that has the issue (e.g. Inbox)&lt;br /&gt;
#Properties&lt;br /&gt;
#Repair Folder&lt;br /&gt;
This will rebuild the folder index that connects email subjects with message bodies.&lt;br /&gt;
&lt;br /&gt;
[[File:Repair_folder.jpg]]&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Configuring_Thunderbird&amp;diff=4044</id>
		<title>Configuring Thunderbird</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Configuring_Thunderbird&amp;diff=4044"/>
		<updated>2024-06-03T05:56:29Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Setting Up the Inbox Accounts==&lt;br /&gt;
&lt;br /&gt;
The instructions given below explain how to set up the &amp;quot;Support&amp;quot; account on Thunderbird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Open Mozilla Thunderbird. Choose the &amp;quot;Create a new account&amp;quot; option. Click on &amp;quot;Skip this and use my existing email&amp;quot; option on the &amp;quot;Welcome to Thunderbird&amp;quot; window.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. In the Mail Account Setup window, enter &amp;quot;support@neosys.com&amp;quot; for Your Name, &amp;quot;support@neosys.com&amp;quot; for Email Address and the password provided by Neosys staff. Click on continue.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Click on &amp;quot;Manual Config&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Key in &amp;quot;imap.neosys.com&amp;quot; for incoming IMAP host name, server hostname &amp;quot;smtp.neosys.com&amp;quot; and port &amp;quot;587&amp;quot; for outgoing SMTP and &amp;quot;support.neosys&amp;quot; as username. For SMTP, change the SSL to &amp;quot;STARTTLS&amp;quot; and authentication to &amp;quot;No authentication&amp;quot;. Click on the &amp;quot;Re-test&amp;quot; button and then click &amp;quot;Done&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BEFORE clicking on inbox and BEFORE adding other inboxes, you MUST refer to [[Configuring_Thunderbird#Adding_email_accounts_with_large_numbers_of_emails | Adding email accounts with large numbers of emails]]. This is because if you add all the accounts together at once, they will all sync together and it will take 1-2 days for the sync to complete.&lt;br /&gt;
&lt;br /&gt;
For backups@neosys.com, support2@neosys.com (Nagios), name.neosys@gmail.com repeat the steps mentioned above, with the below-mentioned replacements.&lt;br /&gt;
&lt;br /&gt;
1. For backups@neosys.com, enter &amp;quot;backups@neosys.com&amp;quot; for Your Name, &amp;quot;backups@neosys.com&amp;quot; for Email address and enter the password provided by Neosys staff.&lt;br /&gt;
Enter the username as &amp;quot;backups.neosys&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. For support2@neosys.com, enter &amp;quot;support2@neosys.com&amp;quot; for Your Name, &amp;quot;support2@neosys.com&amp;quot; for Email address and enter the password provided by Neosys staff.&lt;br /&gt;
Enter the username as &amp;quot;support2.neosys&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. For name.neosys@gmail.com, enter your full name for Your Name, &amp;quot;name.neosys@gmail.com&amp;quot; for Email address and enter the password. You do not need to follow the steps for manual config as the settings will be automatically configured.&lt;br /&gt;
&lt;br /&gt;
[[File:thunderbird_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:thunderbird_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Account Settings==&lt;br /&gt;
&lt;br /&gt;
Verify that the account settings for all the accounts are entered as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings2.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings3.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings4.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Account junk.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
For backups@neosys.com account, under &amp;quot;Synchronization and Storage&amp;quot;, change the setting to &amp;quot;Delete messages more than 365 days old&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The Synchronisation &amp;amp; Storage settings should be changed to the settings shown below only at a convenient time, since downloading all the emails will take a lot of time for accounts with large number of emails. Also see [[Configuring_Thunderbird#Adding_email_accounts_with_large_numbers_of_emails |Adding email accounts with large number of emails]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings6.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings7.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings8.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Adding email accounts with large numbers of emails===&lt;br /&gt;
&lt;br /&gt;
After adding email accounts with large numbers of emails, in order to avoid long wait while downloading all the emails, it is best to change the account settings - BEFORE clicking on INBOX, which triggers the download/sync - to download the bodies of only the last 30 days of emails. The email headings are always synced but that does not take long.&lt;br /&gt;
&lt;br /&gt;
See Account Settings, Synchronisation and Storage.&lt;br /&gt;
&lt;br /&gt;
Since searching of emails only works when the bodies of emails have been downloaded, if you need to text search all emails, then, at a convenient time, you can remove or increase the number of days in the setting and somehow trigger the full sync.&lt;br /&gt;
&lt;br /&gt;
[[File:thla.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Configuring Outgoing SMTP Mail Servers===&lt;br /&gt;
&lt;br /&gt;
By default Thunderbird adds a new smtp profile with each Inbox added.&lt;br /&gt;
&lt;br /&gt;
However you only need two, main and backup. &lt;br /&gt;
&lt;br /&gt;
1. Right click on any Inbox &amp;gt; Settings.&lt;br /&gt;
&lt;br /&gt;
2. Scroll down and click &amp;quot;Outgoing Server (SMTP)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Delete all smtp server profiles except the default and ensure your settings match below screenshot.&lt;br /&gt;
[[File:Smtpsettings.png]]&lt;br /&gt;
&lt;br /&gt;
4. Add a new profile with settings in below screenshot.&lt;br /&gt;
&lt;br /&gt;
TODO - setup backup imap2 container and add settings screenshot here. (old imap2 smtp port 2500)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Add-ons==&lt;br /&gt;
&lt;br /&gt;
#Install addons: General settings menu (Top right 3 bars) &amp;gt; Addons &lt;br /&gt;
#Search and install the addons in below screenshot.&lt;br /&gt;
#Configure Mailbox Alert by Right e.g support inbox &amp;gt; Mailbox Alert: &lt;br /&gt;
##Check default sound and message.&lt;br /&gt;
[[File:Addon2.png]]&lt;br /&gt;
&lt;br /&gt;
==Other General Configurations==&lt;br /&gt;
&lt;br /&gt;
===Configure inbox to display selected columns===&lt;br /&gt;
&lt;br /&gt;
The below options MUST be set in Support Inbox. To do so Right click on a column heading and select the below options:  &lt;br /&gt;
&lt;br /&gt;
#Thread&lt;br /&gt;
#Starred&lt;br /&gt;
#Attachment&lt;br /&gt;
#Subject&lt;br /&gt;
#Correspondents&lt;br /&gt;
#Received: You MUST add column RECEIVED which is the email date received to email inbox because the default Date seems to be the DATE SENT whereas we are primarily interested in the date we received the email. The difference is due to delays in email servers or spam tricks.&lt;br /&gt;
&lt;br /&gt;
The below options MUST NOT be set in Support Inbox&lt;br /&gt;
&lt;br /&gt;
#Junk status: Emails will automatically be moved to Junk folder if the junk icon in this column is clicked. Hence remove Junk Status column so that emails are not accidentally moved to junk. To remove, right-click on a column heading and untick &amp;quot;Junk Status&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Configure Mail Content===&lt;br /&gt;
&lt;br /&gt;
Settings &amp;gt; Privacy &amp;gt; untick &amp;quot;Allow remote content in messages&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Support MUST set the &amp;quot;Allow remote content in messages&amp;quot; as blocked in Thunderbird without adding any exceptions for any email id. The reason is remote content i.e embedded images, stylesheets etc is a privacy concern as it sends your private information to the mail sender. We do not know the source of these embedded content in emails so cannot trust them as they can be web bugs.&lt;br /&gt;
&lt;br /&gt;
===Configure Layout View===&lt;br /&gt;
&lt;br /&gt;
Layout view should be set as Vertical view.&lt;br /&gt;
&lt;br /&gt;
===Optimise Titlebar Space===&lt;br /&gt;
&lt;br /&gt;
Follow below steps to merge the titlebar with the tabs bar to reduce wastage of screen space.&lt;br /&gt;
&lt;br /&gt;
#Go to Settings -&amp;gt; General&lt;br /&gt;
#Scroll to the bottom and click &amp;quot;Config Editor...&amp;quot;&lt;br /&gt;
#Search for mail.tabs.drawInTitlebar&lt;br /&gt;
#Change its value to &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Thunderbird Preferences===&lt;br /&gt;
&lt;br /&gt;
#Preferences &amp;gt; Display &amp;gt; Advanced &amp;gt; untick &amp;quot; Automatically mark messages as read&amp;quot;.&lt;br /&gt;
#Keep settings as below for Preferences &amp;gt; Security.&lt;br /&gt;
#Keep settings as below for Preferences &amp;gt; Composition &amp;gt; Spelling.&lt;br /&gt;
&lt;br /&gt;
[[File:Globaljunk.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Composition.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Configure MailAlert===&lt;br /&gt;
&lt;br /&gt;
Right click Inbox &amp;gt; Mailbox Alert &amp;gt; Edit Mailbox Alert alerts &amp;gt; Select Default message. Set as below. Once set Right click Inbox &amp;gt; Mailbox Alert &amp;gt; check Default message&lt;br /&gt;
&lt;br /&gt;
[[file:thsh.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Configure Auto Resize Image===&lt;br /&gt;
&lt;br /&gt;
Set the preferences for the Auto Resize Image add-on as shown in the screenshot at the end of this section.&lt;br /&gt;
&lt;br /&gt;
To handle different scenarios when resizing images in emails, follow the below steps:&lt;br /&gt;
&lt;br /&gt;
*Resize all images in the email: Click &amp;quot;Send&amp;quot; followed by &amp;quot;Confirm&amp;quot; on the Auto resize screen.&lt;br /&gt;
&lt;br /&gt;
*Skip resize all images in the email: Click &amp;quot;Send&amp;quot; followed by &amp;quot;Cancel Resizing&amp;quot; on the Auto resize screen.&lt;br /&gt;
&lt;br /&gt;
*Resize Images only in the email trail and skip resizing new images: Click &amp;quot;Resize&amp;quot; on top of your screen and proceed with writing the email/adding new images. When ready to send the email, follow above step for skipping resize all images in the email.&lt;br /&gt;
&lt;br /&gt;
[[File:Resize2.png]]&lt;br /&gt;
&lt;br /&gt;
===Configure Header Tools Lite===&lt;br /&gt;
&lt;br /&gt;
Set the preferences for the Header Tools Lite add-on as shown in the screenshot below.&lt;br /&gt;
&lt;br /&gt;
[[File:headertoolslite.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Configure Dorando Keyconfig===&lt;br /&gt;
&lt;br /&gt;
Menu &amp;gt; Add-ons &amp;gt; Edit Keyconfig Preferences &amp;gt; Disable shortcuts for &#039;Archive&#039; and &#039;Junk&#039; as shown in the screenshots below.&lt;br /&gt;
&lt;br /&gt;
[[File:Keyconfig1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Keyconfig2.png]]&lt;br /&gt;
&lt;br /&gt;
===Getting access to NEOSYS support calendar===&lt;br /&gt;
&lt;br /&gt;
After confirming that the steps below are successfully done, delete your local personal calendar and make the shared support calendar the default.&lt;br /&gt;
&lt;br /&gt;
In Thunderbird, add a new CalDAV network calendar by navigating to File (Alt+f) -&amp;gt; New -&amp;gt; Calendar.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal1.png]]&lt;br /&gt;
&lt;br /&gt;
Location: https://nextcloud.hosts.neosys.com:44318/remote.php/dav/calendars/support/support_shared_by_steve/&lt;br /&gt;
&lt;br /&gt;
You will have to enter your nextcloud user and pass.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal2.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Cal3.png]]&lt;br /&gt;
&lt;br /&gt;
It should show a tick if successful, otherwise you will have to Unsubscribe and try again.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal4.png]]&lt;br /&gt;
&lt;br /&gt;
Change the new calendar properties to Refresh every 5 mins.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal5.png]]&lt;br /&gt;
&lt;br /&gt;
===Applying filter for backup failure emails===&lt;br /&gt;
&lt;br /&gt;
In order to filter any backup failure emails as Important, go to Tools &amp;gt; Message Filters and create a new filter with settings as shown below:&lt;br /&gt;
&lt;br /&gt;
Refer to filters list of other staff members.&lt;br /&gt;
&lt;br /&gt;
===Configure Email Tags and Colour===&lt;br /&gt;
&lt;br /&gt;
Find the prefs.js file in your profile directory:&lt;br /&gt;
 find ~/.thunderbird/ -name prefs.js &lt;br /&gt;
Edit the prefs.js file&lt;br /&gt;
 nano /home/gregory/.thunderbird/s3bqjf24.dsfaefawe/prefs.js&lt;br /&gt;
Replace the all the &amp;quot;user_pref(&amp;quot;mailnews.tags.&amp;quot; with the new set of tag configurations below and restart Thunderbird.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label1.color&amp;quot;, &amp;quot;#FF0000&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label1.tag&amp;quot;, &amp;quot;Important&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label2.color&amp;quot;, &amp;quot;#FF9900&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label2.tag&amp;quot;, &amp;quot;Work&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label3.color&amp;quot;, &amp;quot;#009900&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label3.tag&amp;quot;, &amp;quot;Joel&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label4.color&amp;quot;, &amp;quot;#3333ff&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label4.tag&amp;quot;, &amp;quot;Greg&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label5.color&amp;quot;, &amp;quot;#993399&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label5.tag&amp;quot;, &amp;quot;Arvind&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label6.color&amp;quot;, &amp;quot;#ff6e6e&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label6.tag&amp;quot;, &amp;quot;Follow up&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label7.color&amp;quot;, &amp;quot;#eb007b&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label7.tag&amp;quot;, &amp;quot;Client issue&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label8.color&amp;quot;, &amp;quot;#28e2d8&amp;quot;);&lt;br /&gt;
user_pref(&amp;quot;mailnews.tags.$label8.tag&amp;quot;, &amp;quot;Delay support&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Procedures#Email_Retention_Policy| Email Retention Policy]]==&lt;br /&gt;
&lt;br /&gt;
==[[Procedures#Handling_junk.2Fspam_email| Handling junk/spam emails]]==&lt;br /&gt;
&lt;br /&gt;
==Viewing long running processes on Thunderbird==&lt;br /&gt;
When setting up and configuring Thunderbird, using its Activity Manager (Tools &amp;gt; Activity Manager) and possibly using the header bar &amp;quot;Always on top&amp;quot; option on the Activity Manager window may be helpful to know what long running processes are being performed.&lt;br /&gt;
&lt;br /&gt;
[[File:Activity manager.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Deleting Thunderbird accounts==&lt;br /&gt;
Check the option &amp;quot;Remove Message Data&amp;quot; when removing accounts from Thunderbird. Otherwise, the old messages stay forever taking space on the disk.&lt;br /&gt;
&lt;br /&gt;
[[File:dt2.png]]&lt;br /&gt;
&lt;br /&gt;
Select Remove Message Data option as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:dt.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Clearing out old improperly deleted Thunderbird Accounts==&lt;br /&gt;
&lt;br /&gt;
If you delete Thunderbird accounts without checking the option &amp;quot;Remove Message Data&amp;quot; the old messages stay forever taking space on the disk.&lt;br /&gt;
&lt;br /&gt;
To locate any such unnecessary files&lt;br /&gt;
&lt;br /&gt;
 ls -l -h /home/*/.thunderbird/*.default/ImapMail/*/INBOX&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-rw------- 1 arvind arvind  16M May 25 16:36 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.gmail.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 668M Mar 29 08:54 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-1.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 242M May 28 14:45 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-2.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 755M May 25 12:39 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-3.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 420M Apr 24 10:27 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-4.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind  13G May 28 14:37 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys.com/INBOX&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the dates, which indicate the date of the last message received, to get a rough idea of what accounts are in use and not in use&lt;br /&gt;
&lt;br /&gt;
Check which of the folders are currently in use by looking in Thunderbird settings for each account one by one, &amp;quot;Server Settings&amp;quot;, &amp;quot;Local Directory&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Delete the folders and files which are not in use using whatever method you like.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.thunderbird&amp;quot;, like all files and folders which start with a dot, is a hidden folder which you can make visible in Nautilus File Manager by pressing Ctrl+h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting Thunderbird==&lt;br /&gt;
&lt;br /&gt;
===High CPU usage when idling===&lt;br /&gt;
&lt;br /&gt;
If Thunderbird consumes 100+% CPU when there is no activity seen on Thunderbird activity manager (Tools -&amp;gt; Activity Manager), then try the below steps from https://kb.mozillazine.org/Performance_-_Thunderbird :&lt;br /&gt;
&lt;br /&gt;
#Go to Settings -&amp;gt; General &lt;br /&gt;
#Scroll to the bottom and click &amp;quot;Config Editor...&amp;quot;&lt;br /&gt;
#Search for mail.db.idle_limit&lt;br /&gt;
#Change its value to 30000000 (7 zeroes, not 5 zeroes) and save&lt;br /&gt;
#Restart Thunderbird&lt;br /&gt;
&lt;br /&gt;
===Emails show wrong body===&lt;br /&gt;
&lt;br /&gt;
Sometimes emails may not load correctly. Clicking an email will show some other email&#039;s body. To fix this:&lt;br /&gt;
&lt;br /&gt;
#Right click the Thunderbird folder that has the issue (e.g. Inbox)&lt;br /&gt;
#Properties&lt;br /&gt;
#Repair Folder&lt;br /&gt;
This will rebuild the folder index that connects email subjects with message bodies.&lt;br /&gt;
&lt;br /&gt;
[[File:Repair_folder.jpg]]&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Restricting_usage_of_NEOSYS_to_licence_period&amp;diff=4027</id>
		<title>Restricting usage of NEOSYS to licence period</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Restricting_usage_of_NEOSYS_to_licence_period&amp;diff=4027"/>
		<updated>2023-07-12T07:32:05Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Restricting usage of NEOSYS to licence period ==&lt;br /&gt;
*A NEOSYS software licence key is granted depending on the last paid up invoice licence period plus optional grace days.&lt;br /&gt;
*The NEOSYS software prevents, after the grace period, creation of new documents not dated within the licence period.&lt;br /&gt;
*The NEOSYS software does not at any time place any limitation whatsoever on the use of documents already created in the system or the creation of new documents dated within the licence period.&lt;br /&gt;
*The intention of NEOSYS licence expiry is to allow the user to continue using the NEOSYS system normally for documents that apply to valid licence periods while at the same time, after a grace period after the expiry of the licence, to prevent them from entering new documents that are related to periods outside the valid licence periods.&lt;br /&gt;
*Once a licence has been entered in a database, then usage of that database is thereafter subject to licensing restrictions.&amp;lt;BR&amp;gt;(Currently there are no usage restrictions prior to entering any licence, however this may change in later versions of the NEOSYS software and no database may be used without valid licensing in place)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The last paid up invoice for software support and licence covered a licence period of one month from &#039;&#039;&#039;1 Oct 2009&#039;&#039;&#039; to &#039;&#039;&#039;31 Oct 2009&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A licence key has been installed in the database for the same period and with a grace period of 7 days.&lt;br /&gt;
&lt;br /&gt;
Up to &#039;&#039;&#039;7th Nov 2009&#039;&#039;&#039; users can create documents without restriction.&lt;br /&gt;
&lt;br /&gt;
From the &#039;&#039;&#039;8th Nov 2009&#039;&#039;&#039; onwards:&lt;br /&gt;
*Users can view and amend any document already created&lt;br /&gt;
*Users can create documents dated up to &#039;&#039;&#039;31 Oct 2009&#039;&#039;&#039;&lt;br /&gt;
*Users *cannot* create any new document dated &#039;&#039;&#039;1st Nov 2009&#039;&#039;&#039; or later&lt;br /&gt;
&lt;br /&gt;
When a user tries to save a new document that &amp;lt;BR&amp;gt;&lt;br /&gt;
*does not fall within a valid licence period and &lt;br /&gt;
*the current date is more than the number of grace days after the licence expiry date&lt;br /&gt;
the user will get the following message:&lt;br /&gt;
&lt;br /&gt;
[[image:licence_period.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Entering NEOSYS licensing information ===&lt;br /&gt;
&lt;br /&gt;
If adding multiple licences to a database that currently has no licence restrictions, be careful to add any current licences first and historical licences last, so that any active users working on current periods do not get locked out , however briefly.&lt;br /&gt;
&lt;br /&gt;
To view the licences already entered in the database&lt;br /&gt;
&lt;br /&gt;
On exodus screen 6,&lt;br /&gt;
 ./run &amp;lt;dbname&amp;gt;&lt;br /&gt;
 x&lt;br /&gt;
 chklic&lt;br /&gt;
&lt;br /&gt;
For AREV, enter CHKLIC in maintenance mode&lt;br /&gt;
&lt;br /&gt;
The list of licences is generated as shown below&lt;br /&gt;
&lt;br /&gt;
[[image:licence_list.png]]&lt;br /&gt;
&lt;br /&gt;
==== Step 1 – Generate “licencetext” ====&lt;br /&gt;
&lt;br /&gt;
Depending on what licence you want to grant, enter the following command. It will show a line of “licencetext” including the computerid and databaseid.&lt;br /&gt;
&lt;br /&gt;
Exodus:&lt;br /&gt;
 ./run &amp;lt;dbname&amp;gt;&lt;br /&gt;
 x&lt;br /&gt;
 addlic &#039;&#039;modulenames fromdate uptodate daygrace&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AREV:&lt;br /&gt;
 ADDLIC &#039;&#039;modulenames fromdate uptodate daygrace&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All parameters are required and must appear in the order shown.&lt;br /&gt;
&lt;br /&gt;
Generally support should just renew the licence similar to the previous licence unless otherwise instructed. All the required parameters (i.e. modulenames, licence period and days grace) are available in the list of licences report (CHKLIC) mentioned in the previous section.&lt;br /&gt;
&lt;br /&gt;
If the prior licence allows more than 7 days grace, then the days grace for the new licence MUST be determined by NEOSYS accounts team (or whoever asked for the licence to be added).&lt;br /&gt;
&lt;br /&gt;
If there are no prior licences, then the module names, licence period and days grace MUST all be decided by NEOSYS accounts team (or whoever asked for the licence to be added).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;modulenames&#039;&#039; can be any combination of the following, separated by commas with NO spaces, or a single * to allow all modules.&lt;br /&gt;
&lt;br /&gt;
*MEDIA&lt;br /&gt;
*JOBS&lt;br /&gt;
*FINANCE&lt;br /&gt;
*TIMESHEETS&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;daygrace&#039;&#039; is how many days after the licence expiry before NEOSYS starts restricting creation of new documents to dates within the licence period.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 addlic * 1/4/2021 30/6/2021 7&lt;br /&gt;
&lt;br /&gt;
The output for the above code appears as shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PLEASE GIVE THE FOLLOWING TEXT TO YOUR EXODUS SUPPORT STAFF&lt;br /&gt;
&amp;quot;* 1/4/2021 30/6/2021 7 234200 29C7B98A&amp;quot;&lt;br /&gt;
What is the verification code?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 2 – Generate verification code ====&lt;br /&gt;
&lt;br /&gt;
# Remove the spaces in the license text returned by addlic.&lt;br /&gt;
# ./run &amp;lt;dbname&amp;gt;&lt;br /&gt;
# x&lt;br /&gt;
# secid &amp;lt;string from step 1&amp;gt; &amp;lt;security code&amp;gt;&lt;br /&gt;
Contact support manager for the security code&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 secid *1/1/201731/12/2021723420029C7B98A &amp;lt;security code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Step 3 – Do addlic and enter the verification code ====&lt;br /&gt;
&lt;br /&gt;
Either enter the same command as in step 1 and enter the code when prompted, or enter the following command. The format of the command is almost identical to step 1 but adds computerid databaseid licencecode.&lt;br /&gt;
&lt;br /&gt;
 addlic &#039;&#039;modulenames fromdate uptodate daysgrace computerid databaseid verificationcode&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 addlic * 1/4/2021 30/6/2021 7 234200 29C7B98A 654321&lt;br /&gt;
&lt;br /&gt;
==== Step 4 – Verify that the licence has been added successfully ====&lt;br /&gt;
&lt;br /&gt;
Email should be received with details of the newly added licence restriction.&lt;br /&gt;
&lt;br /&gt;
Run chklic again to generate the list of existing licences and verify that the new licence information has been added to this list.&lt;br /&gt;
&lt;br /&gt;
== Removing NEOSYS Licences ==&lt;br /&gt;
If it is no longer required to restrict usage of NEOSYS to a licence period for a database, then delete the licence from that database. All licences installed in a database get removed/deleted once the below commands are followed.&lt;br /&gt;
&lt;br /&gt;
====Step 1 - Generate the licence deletion text====&lt;br /&gt;
Exodus&lt;br /&gt;
 ./run &amp;lt;dbname&amp;gt;&lt;br /&gt;
 x&lt;br /&gt;
 dellic&lt;br /&gt;
Arev:&lt;br /&gt;
&lt;br /&gt;
In maintenance mode, enter the following command&lt;br /&gt;
 DELLIC&lt;br /&gt;
In some versions of NEOSYS, the DELLIC command will remove licenses without prompting for a verification code.&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/root/hosts/empire/work Command? dellic                           &lt;br /&gt;
Begin transaction                                                                                                                   &lt;br /&gt;
========================================                                                                                            &lt;br /&gt;
Delete all EXODUS Licences?                                                                                                         &lt;br /&gt;
 1. Yes                                                                                                                             &lt;br /&gt;
*2. No                                                                                                                              &lt;br /&gt;
 Please enter 1 - 2 or Enter to default or 0 to cancel.                                                                             &lt;br /&gt;
1   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PLEASE GIVE THE FOLLOWING TEXT TO YOUR EXODUS SUPPORT STAFF                                                                                                                                                                                                             &lt;br /&gt;
&amp;quot;DELLIC 589801 27E86CFB&amp;quot;                                                                                                                                                                                                                                                &lt;br /&gt;
What is the verification code? &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Step 2 - Generate verification code====&lt;br /&gt;
#Remove the spaces in the license text returned by dellic.&lt;br /&gt;
# ./run &amp;lt;dbname&amp;gt;&lt;br /&gt;
# x&lt;br /&gt;
# secid &amp;lt;string from step 1&amp;gt; &amp;lt;security code&amp;gt;&lt;br /&gt;
Contact support manager for the security code&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 secid dellic23420029C7B98A &amp;lt;security code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Step 3 - Enter the verification code====&lt;br /&gt;
Either enter the same command as in step 1 and enter the verification code when prompted, or enter the following command in maintenance mode&lt;br /&gt;
&lt;br /&gt;
 dellic &#039;&#039;verificationcode&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
 dellic 915036&lt;br /&gt;
&lt;br /&gt;
====Step 4 - Verify that all licences have been removed successfully====&lt;br /&gt;
Run chklic in maintenance mode to generate the list of existing licences. The NEOSYS licences report should show &amp;quot;No records found&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4015</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4015"/>
		<updated>2023-02-01T06:54:34Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* 3. Run CHK.ALLOC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cross-Year Cross Check Balance Warnings==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
=== Producing P&amp;amp;L and Retained Earnings Accounts ===&lt;br /&gt;
Refer to [https://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Cross_Check_Balance_error_on_all_Profit_and_Loss_accounts_and_Retained_Earnings_account CCB on P&amp;amp;L and Retained Earnings accounts]&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!!! WARNING !!!&lt;br /&gt;
&lt;br /&gt;
This is a dangerous procedure. &lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts:&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*AREV Both LIVE and TEST databases&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Meaning of other messages===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
===Re-enabling CCB warning mail notifications===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
===Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51841 voucher_index recs&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;                                    &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2500. *JOB4714*1&amp;quot;1401*815*1ü815&amp;quot;  &amp;quot;1ü815&amp;quot; bad company&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher                                                     &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Different Date - Correct index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;        &lt;br /&gt;
Correct index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Correct None&lt;br /&gt;
 4. Correct All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Commit or Revert current changes===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Finished in 2 mins, 45 secs&lt;br /&gt;
What next boss ?&lt;br /&gt;
========================================&lt;br /&gt;
Commit any database updates ?&lt;br /&gt;
 1. Commit&lt;br /&gt;
 2. Rollback&lt;br /&gt;
 Please enter 1 - 2&lt;br /&gt;
? 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select 1 to commit changes.&lt;br /&gt;
&lt;br /&gt;
==Checking if a voucher is fully posted==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
===First line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
===Last line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
===First and last lines are posted===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
==Voucher number missing from posted batches==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts:&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkvindex&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkvindex&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*AREV Both LIVE and TEST databases&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
==[http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS]==&lt;br /&gt;
&lt;br /&gt;
==Using CHK.POST to fix some types of Cross Check Balance (CCB) errors==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors&lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Redo_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
==B10 &amp;amp; B12 Errors==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch. See [[Procedures#Amending.2FReposting_Journal_Entries|Amending/Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals that are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;(While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Editing and Reposting Vouchers==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
===UNPOST===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
===EDIT===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
===REPOST===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing strange outstanding items on accounts that have balance of zero==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reinstating Open Item Statements after Clear Open Items==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
===1. Check, solve, record all existing cross check balances===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
===2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
===3. Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
====Exodus====&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter minimum period to start check from.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/root/hosts/test/work Command? chkalloc&lt;br /&gt;
Begin transaction&lt;br /&gt;
Making a new document/report 52360178.htm:&lt;br /&gt;
----------------------------------------&lt;br /&gt;
Minimum voucher year.period to check?&lt;br /&gt;
(0 for all)&lt;br /&gt;
201601&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter 1 for all accounts. Enter 2 if you want to look at a specific a/c.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
========================================&lt;br /&gt;
CHK.ALLOC&lt;br /&gt;
*1. All Vouchers/Accounts&lt;br /&gt;
 2. One Account`s Indexed Vouchers Only&lt;br /&gt;
 Please enter 1 - 2 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter specific a/c no. or press Enter for all.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
----------------------------------------&lt;br /&gt;
Which account do you want ?&lt;br /&gt;
Give the account number or name,&lt;br /&gt;
or press [Enter] if not known.&lt;br /&gt;
(separate multiple entries with spaces)&lt;br /&gt;
? &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Choose option 3 (Yes to all).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 REC*1:2*1 12/03/19 OPTI,A 2/   (Unposted) Voucher &amp;quot;REC*1:2*1&amp;quot; ln:2 missing from index &amp;quot;*OPTI*A&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
Missing from O/I index&lt;br /&gt;
Add it? (5.4KB)&lt;br /&gt;
 1. Yes&lt;br /&gt;
*2. No&lt;br /&gt;
 3. Yes to all&lt;br /&gt;
 4. No to all&lt;br /&gt;
 5. Yes to all &amp;quot;*OPTI*A&amp;quot;&lt;br /&gt;
 6. No to all &amp;quot;OPTI&amp;quot;&lt;br /&gt;
 7. Skip all unposted vouchers&lt;br /&gt;
 Please enter 1 - 7 or Enter to default or 0 to cancel.&lt;br /&gt;
? 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====AREV====&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4. Check for cross check balances===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Speeding up CHK.VOUCHERS CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
==Check steps of each CHK program==&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CONTROLS===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VOUCHERS===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BATCHES===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VINDEX===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.OB===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BALANCES===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CHARTS===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ACCOUNTS===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
==Fixing opening balance of new year does not agree with the closing balance of the previous year==&lt;br /&gt;
&lt;br /&gt;
In order to fix this problem, redo the open new year procedure for the problematic year, where recreating opening balances (which is part of the opennewyear.subs program) should fix the issue.&lt;br /&gt;
&lt;br /&gt;
===Redo Open New Year procedure===&lt;br /&gt;
&lt;br /&gt;
In latest versions of NEOSYS, you can reopen a year using the below command.&lt;br /&gt;
&lt;br /&gt;
 REOPENYEAR &amp;lt;Companycodes&amp;gt; YYYY &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :REOPENYEAR A,AA 2020                                                      │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Maintenance mode, run CHK.OB and include a few prior years as well, to see if all balances are fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4014</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4014"/>
		<updated>2023-02-01T06:39:35Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Running CHK.VOUCHERS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cross-Year Cross Check Balance Warnings==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
=== Producing P&amp;amp;L and Retained Earnings Accounts ===&lt;br /&gt;
Refer to [https://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Cross_Check_Balance_error_on_all_Profit_and_Loss_accounts_and_Retained_Earnings_account CCB on P&amp;amp;L and Retained Earnings accounts]&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!!! WARNING !!!&lt;br /&gt;
&lt;br /&gt;
This is a dangerous procedure. &lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts:&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*AREV Both LIVE and TEST databases&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Meaning of other messages===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
===Re-enabling CCB warning mail notifications===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
===Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51841 voucher_index recs&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;                                    &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2500. *JOB4714*1&amp;quot;1401*815*1ü815&amp;quot;  &amp;quot;1ü815&amp;quot; bad company&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher                                                     &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Different Date - Correct index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;        &lt;br /&gt;
Correct index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Correct None&lt;br /&gt;
 4. Correct All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Commit or Revert current changes===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Finished in 2 mins, 45 secs&lt;br /&gt;
What next boss ?&lt;br /&gt;
========================================&lt;br /&gt;
Commit any database updates ?&lt;br /&gt;
 1. Commit&lt;br /&gt;
 2. Rollback&lt;br /&gt;
 Please enter 1 - 2&lt;br /&gt;
? 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select 1 to commit changes.&lt;br /&gt;
&lt;br /&gt;
==Checking if a voucher is fully posted==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
===First line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
===Last line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
===First and last lines are posted===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
==Voucher number missing from posted batches==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts:&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkvindex&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkvindex&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*AREV Both LIVE and TEST databases&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
==[http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS]==&lt;br /&gt;
&lt;br /&gt;
==Using CHK.POST to fix some types of Cross Check Balance (CCB) errors==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors&lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Redo_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
==B10 &amp;amp; B12 Errors==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch. See [[Procedures#Amending.2FReposting_Journal_Entries|Amending/Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals that are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;(While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Editing and Reposting Vouchers==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
===UNPOST===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
===EDIT===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
===REPOST===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing strange outstanding items on accounts that have balance of zero==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reinstating Open Item Statements after Clear Open Items==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
===1. Check, solve, record all existing cross check balances===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
===2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
===3. Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4. Check for cross check balances===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Speeding up CHK.VOUCHERS CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
==Check steps of each CHK program==&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CONTROLS===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VOUCHERS===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BATCHES===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VINDEX===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.OB===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BALANCES===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CHARTS===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ACCOUNTS===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
==Fixing opening balance of new year does not agree with the closing balance of the previous year==&lt;br /&gt;
&lt;br /&gt;
In order to fix this problem, redo the open new year procedure for the problematic year, where recreating opening balances (which is part of the opennewyear.subs program) should fix the issue.&lt;br /&gt;
&lt;br /&gt;
===Redo Open New Year procedure===&lt;br /&gt;
&lt;br /&gt;
In latest versions of NEOSYS, you can reopen a year using the below command.&lt;br /&gt;
&lt;br /&gt;
 REOPENYEAR &amp;lt;Companycodes&amp;gt; YYYY &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :REOPENYEAR A,AA 2020                                                      │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Maintenance mode, run CHK.OB and include a few prior years as well, to see if all balances are fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4013</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4013"/>
		<updated>2023-02-01T06:26:37Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Running CHK.VOUCHERS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cross-Year Cross Check Balance Warnings==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
=== Producing P&amp;amp;L and Retained Earnings Accounts ===&lt;br /&gt;
Refer to [https://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Cross_Check_Balance_error_on_all_Profit_and_Loss_accounts_and_Retained_Earnings_account CCB on P&amp;amp;L and Retained Earnings accounts]&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!!! WARNING !!!&lt;br /&gt;
&lt;br /&gt;
This is a dangerous procedure. &lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts:&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*AREV Both LIVE and TEST databases&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Meaning of other messages===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
===Re-enabling CCB warning mail notifications===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
===Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51841 voucher_index recs&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;                                    &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2500. *JOB4714*1&amp;quot;1401*815*1ü815&amp;quot;  &amp;quot;1ü815&amp;quot; bad company&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher                                                     &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Different Date - Correct index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;        &lt;br /&gt;
Correct index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Correct None&lt;br /&gt;
 4. Correct All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Commit or Revert current changes===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Finished in 2 mins, 45 secs&lt;br /&gt;
What next boss ?&lt;br /&gt;
========================================&lt;br /&gt;
Commit any database updates ?&lt;br /&gt;
 1. Commit&lt;br /&gt;
 2. Rollback&lt;br /&gt;
 Please enter 1 - 2&lt;br /&gt;
? 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select 1 to commit changes.&lt;br /&gt;
&lt;br /&gt;
==Checking if a voucher is fully posted==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
===First line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
===Last line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
===First and last lines are posted===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
==Voucher number missing from posted batches==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts:&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*AREV Both LIVE and TEST databases&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
==[http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS]==&lt;br /&gt;
&lt;br /&gt;
==Using CHK.POST to fix some types of Cross Check Balance (CCB) errors==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors&lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Redo_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
==B10 &amp;amp; B12 Errors==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch. See [[Procedures#Amending.2FReposting_Journal_Entries|Amending/Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals that are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;(While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Editing and Reposting Vouchers==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
===UNPOST===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
===EDIT===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
===REPOST===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing strange outstanding items on accounts that have balance of zero==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reinstating Open Item Statements after Clear Open Items==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
===1. Check, solve, record all existing cross check balances===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
===2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
===3. Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4. Check for cross check balances===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Speeding up CHK.VOUCHERS CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
==Check steps of each CHK program==&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CONTROLS===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VOUCHERS===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BATCHES===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VINDEX===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.OB===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BALANCES===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CHARTS===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ACCOUNTS===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
==Fixing opening balance of new year does not agree with the closing balance of the previous year==&lt;br /&gt;
&lt;br /&gt;
In order to fix this problem, redo the open new year procedure for the problematic year, where recreating opening balances (which is part of the opennewyear.subs program) should fix the issue.&lt;br /&gt;
&lt;br /&gt;
===Redo Open New Year procedure===&lt;br /&gt;
&lt;br /&gt;
In latest versions of NEOSYS, you can reopen a year using the below command.&lt;br /&gt;
&lt;br /&gt;
 REOPENYEAR &amp;lt;Companycodes&amp;gt; YYYY &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :REOPENYEAR A,AA 2020                                                      │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Maintenance mode, run CHK.OB and include a few prior years as well, to see if all balances are fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4012</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4012"/>
		<updated>2023-02-01T06:17:35Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cross-Year Cross Check Balance Warnings==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
=== Producing P&amp;amp;L and Retained Earnings Accounts ===&lt;br /&gt;
Refer to [https://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Cross_Check_Balance_error_on_all_Profit_and_Loss_accounts_and_Retained_Earnings_account CCB on P&amp;amp;L and Retained Earnings accounts]&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!!! WARNING !!!&lt;br /&gt;
&lt;br /&gt;
This is a dangerous procedure. &lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts:&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*AREV Both LIVE and TEST databases&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Meaning of other messages===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
===Re-enabling CCB warning mail notifications===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
===Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51841 voucher_index recs&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;                                    &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2500. *JOB4714*1&amp;quot;1401*815*1ü815&amp;quot;  &amp;quot;1ü815&amp;quot; bad company&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher                                                     &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Different Date - Correct index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;        &lt;br /&gt;
Correct index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Correct None&lt;br /&gt;
 4. Correct All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Commit or Revert current changes===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Finished in 2 mins, 45 secs&lt;br /&gt;
What next boss ?&lt;br /&gt;
========================================&lt;br /&gt;
Commit any database updates ?&lt;br /&gt;
 1. Commit&lt;br /&gt;
 2. Rollback&lt;br /&gt;
 Please enter 1 - 2&lt;br /&gt;
? 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select 1 to commit changes.&lt;br /&gt;
&lt;br /&gt;
==Checking if a voucher is fully posted==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
===First line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
===Last line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
===First and last lines are posted===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
==Voucher number missing from posted batches==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
Run the following command in maintenance mode and check for errors. &lt;br /&gt;
 &lt;br /&gt;
 F5&lt;br /&gt;
 UTIL&lt;br /&gt;
 CHK.VOUCHERS  &lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
==[http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS]==&lt;br /&gt;
&lt;br /&gt;
==Using CHK.POST to fix some types of Cross Check Balance (CCB) errors==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors&lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Redo_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
==B10 &amp;amp; B12 Errors==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch. See [[Procedures#Amending.2FReposting_Journal_Entries|Amending/Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals that are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;(While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Editing and Reposting Vouchers==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
===UNPOST===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
===EDIT===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
===REPOST===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing strange outstanding items on accounts that have balance of zero==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reinstating Open Item Statements after Clear Open Items==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
===1. Check, solve, record all existing cross check balances===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
===2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
===3. Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4. Check for cross check balances===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Speeding up CHK.VOUCHERS CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
==Check steps of each CHK program==&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CONTROLS===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VOUCHERS===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BATCHES===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VINDEX===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.OB===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BALANCES===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CHARTS===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ACCOUNTS===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
==Fixing opening balance of new year does not agree with the closing balance of the previous year==&lt;br /&gt;
&lt;br /&gt;
In order to fix this problem, redo the open new year procedure for the problematic year, where recreating opening balances (which is part of the opennewyear.subs program) should fix the issue.&lt;br /&gt;
&lt;br /&gt;
===Redo Open New Year procedure===&lt;br /&gt;
&lt;br /&gt;
In latest versions of NEOSYS, you can reopen a year using the below command.&lt;br /&gt;
&lt;br /&gt;
 REOPENYEAR &amp;lt;Companycodes&amp;gt; YYYY &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :REOPENYEAR A,AA 2020                                                      │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Maintenance mode, run CHK.OB and include a few prior years as well, to see if all balances are fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4011</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4011"/>
		<updated>2023-02-01T06:14:43Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cross-Year Cross Check Balance Warnings==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
=== Producing P&amp;amp;L and Retained Earnings Accounts ===&lt;br /&gt;
Refer to [https://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Cross_Check_Balance_error_on_all_Profit_and_Loss_accounts_and_Retained_Earnings_account CCB on P&amp;amp;L and Retained Earnings accounts]&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!!! WARNING !!!&lt;br /&gt;
&lt;br /&gt;
This is a dangerous procedure. &lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts:&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*AREV Both LIVE and TEST databases&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Meaning of other messages===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
===Re-enabling CCB warning mail notifications===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
===Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51841 voucher_index recs&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;                                    &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2500. *JOB4714*1&amp;quot;1401*815*1ü815&amp;quot;  &amp;quot;1ü815&amp;quot; bad company&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher                                                     &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Different Date - Correct index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;        &lt;br /&gt;
Correct index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Correct None&lt;br /&gt;
 4. Correct All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Commit or Revert current changes===&lt;br /&gt;
Finished in 2 mins, 45 secs&lt;br /&gt;
What next boss ?&lt;br /&gt;
========================================&lt;br /&gt;
Commit any database updates ?&lt;br /&gt;
 1. Commit&lt;br /&gt;
 2. Rollback&lt;br /&gt;
 Please enter 1 - 2&lt;br /&gt;
? 0&lt;br /&gt;
&lt;br /&gt;
==Checking if a voucher is fully posted==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
===First line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
===Last line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
===First and last lines are posted===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
==Voucher number missing from posted batches==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
Run the following command in maintenance mode and check for errors. &lt;br /&gt;
 &lt;br /&gt;
 F5&lt;br /&gt;
 UTIL&lt;br /&gt;
 CHK.VOUCHERS  &lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
==[http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS]==&lt;br /&gt;
&lt;br /&gt;
==Using CHK.POST to fix some types of Cross Check Balance (CCB) errors==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors&lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Redo_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
==B10 &amp;amp; B12 Errors==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch. See [[Procedures#Amending.2FReposting_Journal_Entries|Amending/Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals that are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;(While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Editing and Reposting Vouchers==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
===UNPOST===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
===EDIT===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
===REPOST===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing strange outstanding items on accounts that have balance of zero==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reinstating Open Item Statements after Clear Open Items==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
===1. Check, solve, record all existing cross check balances===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
===2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
===3. Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4. Check for cross check balances===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Speeding up CHK.VOUCHERS CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
==Check steps of each CHK program==&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CONTROLS===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VOUCHERS===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BATCHES===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VINDEX===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.OB===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BALANCES===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CHARTS===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ACCOUNTS===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
==Fixing opening balance of new year does not agree with the closing balance of the previous year==&lt;br /&gt;
&lt;br /&gt;
In order to fix this problem, redo the open new year procedure for the problematic year, where recreating opening balances (which is part of the opennewyear.subs program) should fix the issue.&lt;br /&gt;
&lt;br /&gt;
===Redo Open New Year procedure===&lt;br /&gt;
&lt;br /&gt;
In latest versions of NEOSYS, you can reopen a year using the below command.&lt;br /&gt;
&lt;br /&gt;
 REOPENYEAR &amp;lt;Companycodes&amp;gt; YYYY &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :REOPENYEAR A,AA 2020                                                      │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Maintenance mode, run CHK.OB and include a few prior years as well, to see if all balances are fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4010</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=4010"/>
		<updated>2023-01-23T07:45:20Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cross-Year Cross Check Balance Warnings==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
=== Producing P&amp;amp;L and Retained Earnings Accounts ===&lt;br /&gt;
Refer to [https://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Cross_Check_Balance_error_on_all_Profit_and_Loss_accounts_and_Retained_Earnings_account CCB on P&amp;amp;L and Retained Earnings accounts]&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!!! WARNING !!!&lt;br /&gt;
&lt;br /&gt;
This is a dangerous procedure. &lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts:&lt;br /&gt;
&lt;br /&gt;
*Exodus TEST Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. /root/neosys/test &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
2. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
3. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Exodus LIVE Database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Stop all LIVE processes. (pressing x won&#039;t return prompt to enter check command if other LIVE processes running)&lt;br /&gt;
2. Run /root/neosys/run &amp;lt;DBCODE&amp;gt;&lt;br /&gt;
3. After startup press &amp;quot;x&amp;quot; key.&lt;br /&gt;
4. Type: &amp;quot;chkalloc&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*AREV Both LIVE and TEST databases&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Meaning of other messages===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
===Re-enabling CCB warning mail notifications===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
===Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
51841 voucher_index recs&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 &amp;quot;P831&amp;quot; different account &amp;quot;P823&amp;quot;                                    &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2500. *JOB4714*1&amp;quot;1401*815*1ü815&amp;quot;  &amp;quot;1ü815&amp;quot; bad company&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;1401*815*1ü815&amp;quot;  L=1 V=PUR*11516:7*1ü815 15/01/14 missing voucher                                                     &lt;br /&gt;
Delete the index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Delete None&lt;br /&gt;
 4. Delete All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
===Different Date - Correct index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;&lt;br /&gt;
========================================&lt;br /&gt;
&amp;quot;*P831*1&amp;quot;  L=8 V=PUR*180123*1 30/06/18 B=13653 different date &amp;quot;12/02/18&amp;quot;        &lt;br /&gt;
Correct index entry?&lt;br /&gt;
*1. No&lt;br /&gt;
 2. Yes&lt;br /&gt;
 3. Correct None&lt;br /&gt;
 4. Correct All&lt;br /&gt;
 Please enter 1 - 4 or Enter to default or 0 to cancel.&lt;br /&gt;
? 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
==Checking if a voucher is fully posted==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
===First line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
===Last line is not posted===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
===First and last lines are posted===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
==Voucher number missing from posted batches==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
Run the following command in maintenance mode and check for errors. &lt;br /&gt;
 &lt;br /&gt;
 F5&lt;br /&gt;
 UTIL&lt;br /&gt;
 CHK.VOUCHERS  &lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
==[http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS]==&lt;br /&gt;
&lt;br /&gt;
==Using CHK.POST to fix some types of Cross Check Balance (CCB) errors==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors&lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Redo_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
==B10 &amp;amp; B12 Errors==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch. See [[Procedures#Amending.2FReposting_Journal_Entries|Amending/Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals that are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;(While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Editing and Reposting Vouchers==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
===UNPOST===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
===EDIT===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
===REPOST===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing strange outstanding items on accounts that have balance of zero==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reinstating Open Item Statements after Clear Open Items==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
===1. Check, solve, record all existing cross check balances===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
===2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
===3. Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4. Check for cross check balances===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Speeding up CHK.VOUCHERS CHK.ALLOC==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
==Check steps of each CHK program==&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ALLOC===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CONTROLS===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VOUCHERS===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BATCHES===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.VINDEX===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.OB===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.BALANCES===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.CHARTS===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
===Run CHK.ACCOUNTS===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
==Fixing opening balance of new year does not agree with the closing balance of the previous year==&lt;br /&gt;
&lt;br /&gt;
In order to fix this problem, redo the open new year procedure for the problematic year, where recreating opening balances (which is part of the opennewyear.subs program) should fix the issue.&lt;br /&gt;
&lt;br /&gt;
===Redo Open New Year procedure===&lt;br /&gt;
&lt;br /&gt;
In latest versions of NEOSYS, you can reopen a year using the below command.&lt;br /&gt;
&lt;br /&gt;
 REOPENYEAR &amp;lt;Companycodes&amp;gt; YYYY &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :REOPENYEAR A,AA 2020                                                      │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Maintenance mode, run CHK.OB and include a few prior years as well, to see if all balances are fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=4009</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=4009"/>
		<updated>2023-01-13T13:48:13Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Configuring services to autostart during login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
===Screens===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0: /&lt;br /&gt;
    General work for server services/configs. i.e /etc/nagios, /etc/apache2, /var/log/mail.log or general networking.&lt;br /&gt;
&lt;br /&gt;
1: /root/exodus/&lt;br /&gt;
    Exodus core is installed. Contains build and make libraries here ./libexodus&lt;br /&gt;
&lt;br /&gt;
2: /root/exodus/libexodus/exodus&lt;br /&gt;
    Core exodus library source code which emulate the AREV system e.g var.cpp&lt;br /&gt;
    &lt;br /&gt;
3: /root/exodus/cli/src&lt;br /&gt;
    Exodus Command Line Interface E.g edir, edic, list, listfiles, delete, createdb, deletedb.&lt;br /&gt;
    &lt;br /&gt;
4: root/exodus/service&lt;br /&gt;
    EXODUS core default host directory but also contains scripts that create/manage requirements of a service (create_service, create_db, create_site, backup_db, restore_db, start, stop, status)&lt;br /&gt;
    The www/3/exodus has generic .htm, php and .js which provide basic website functionality i.e Login page, Support Menu, User details, Authorization.&lt;br /&gt;
    NEOSYS www files linked into ./www, from /root/neosys/web, which pulled from NEOSYS www git.&lt;br /&gt;
&lt;br /&gt;
5: /root/exodus/service/src&lt;br /&gt;
    Exodus core service programs (programs that are not related to NEOSYS agency operations and can be used to support other non-NEOSYS services) eg listen, usersubs, sendmail, openfile, select, sort, list,.&lt;br /&gt;
&lt;br /&gt;
    Extra info:    &lt;br /&gt;
    The dat/ has generic dictionary files. (See Section Dictionaries &amp;amp; Psql Functions)&lt;br /&gt;
    TODO: compall currently throws few warnings. Read them and familiarise. In case new warnings appear, notify Steve.    &lt;br /&gt;
        &lt;br /&gt;
6: /root/neosys&lt;br /&gt;
    NEOSYS specific client installation &amp;amp; management scripts e.g .doall, import_db and import_files (from AREV), ./run ./test (see below for these two commands)&lt;br /&gt;
    &lt;br /&gt;
7: /root/neosys/src&lt;br /&gt;
    NEOSYS Agency programs (see section How AREV programs are distributed in EXODUS src/*.cpp&lt;br /&gt;
    /root/neosys has the neosys .git&lt;br /&gt;
&lt;br /&gt;
8: /root/hosts&lt;br /&gt;
    client specific files  e.g logs, images, (shared ./www -&amp;gt; root/exodus/service/www&lt;br /&gt;
&lt;br /&gt;
9: /root/exodus/test/src&lt;br /&gt;
    series of programs that test whether subroutines (specifically Exodus core libraries) work as they should eg for the var lib - &amp;quot;assert( var(&amp;quot;11111&amp;quot;).isnum());&amp;quot;&lt;br /&gt;
&lt;br /&gt;
10: bash /bin/top&lt;br /&gt;
    Monitor for NEOSYS client processes&lt;br /&gt;
    Displays customised format: sorted by total time spend and by processor time.&lt;br /&gt;
     Press &amp;quot;=&amp;quot; : to change to standard top format&lt;br /&gt;
     Press shift + w : to save format settings, replacing the old customised top format&lt;br /&gt;
     To go back to the customised format do:&lt;br /&gt;
        Press &amp;quot;o&amp;quot;&lt;br /&gt;
        Type &amp;quot;COMMAND=serve_agy&amp;quot;&lt;br /&gt;
        shift + t : this sorts by total time spent&lt;br /&gt;
        shift + p : this sorts by processor time&lt;br /&gt;
        shift + w : to save this setting and enter  &#039;y&#039; to confirm&lt;br /&gt;
&lt;br /&gt;
11: /var/log/syslog&lt;br /&gt;
     Log of NEOSYS client requests&lt;br /&gt;
&lt;br /&gt;
12: /root/exodus/service/quick&lt;br /&gt;
     Displays the last time the svr file (in /root/hosts/&amp;lt;client&amp;gt;/data/&amp;lt;dbname&amp;gt;) was updated.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Object Code/Libraries==&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
&lt;br /&gt;
==Dictionaries &amp;amp; Psql Functions==&lt;br /&gt;
&lt;br /&gt;
Dictionaries - data used to describe other data; specifically the fields of other files. &lt;br /&gt;
&lt;br /&gt;
There are three types of fields: &amp;lt;pre&amp;gt;&lt;br /&gt;
(F) Field for raw data E.g &amp;quot;Office 44 Building Rush&amp;quot;&lt;br /&gt;
(S) Symbolic or calculated E.g for total ans=field1+field2&lt;br /&gt;
(G) General or Group E.g &amp;quot;@CRT&amp;quot; which contains always contains the default columns to show on the output of the list program; if no columns provided in list command.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Show dictionary using &amp;quot;EXO_DATA=test list dict.clients&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Development and deployment using &#039;dat&#039; files===&lt;br /&gt;
&lt;br /&gt;
====Rationale====&lt;br /&gt;
&lt;br /&gt;
Part of system development is the creation of various data that is neither programs nor layout i.e. not cpp, h, html, js, php files etc.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
*Dictionaries are data about data.&lt;br /&gt;
*Language files are data about text to use for various languages.&lt;br /&gt;
*“Change logs” are data about changes in the system.&lt;br /&gt;
&lt;br /&gt;
Historically, in EXODUS and NEOSYS, the above data has been deployed in exodus database files using SQL text files. However SQL files are not convenient for development.&lt;br /&gt;
&lt;br /&gt;
Therefore, &#039;dat&#039; text files will be used now so that standard development tools including editors and git can be fully exploited.&lt;br /&gt;
&lt;br /&gt;
====&#039;dat&#039; files====&lt;br /&gt;
&lt;br /&gt;
Each database file is represented by an os directory of the same name.&lt;br /&gt;
&lt;br /&gt;
Each record in the database file is represented by an os text file where filename is the primary key.&lt;br /&gt;
&lt;br /&gt;
For example a record with key &#039;&#039;&#039;DEADLINE&#039;&#039;&#039; in a dat file &#039;&#039;&#039;dict.materials&#039;&#039;&#039; would be represented as an os text file &#039;&#039;&#039;dat/dict.materials/DEADLINE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in the os text file represents one field in the db record. In other words, db record FM characters are represented by new line characters in &#039;dat&#039; files. Any actual new line characters required in the record, and any backslashes, are escaped and appear as &#039;\n&#039; and &#039;\\&#039; in &#039;dat&#039; files. Other database field separator characters such as VM, SM, TM and STM are stored without any conversion.&lt;br /&gt;
&lt;br /&gt;
====Location of dat files====&lt;br /&gt;
&lt;br /&gt;
The development versions are stored in exodus and neosys src/dat dirs. They form part of the standard git repositories in parallel with cpp files.&lt;br /&gt;
&lt;br /&gt;
The operational versions are stored in ~/dat and ~/live/dat alongside bin and lib dirs and are automatically installed into databases as database files on service startup. Any database functions embedded in the text files (pgsql) are also automatically installed at the same time.&lt;br /&gt;
&lt;br /&gt;
===Delete Database dictionary file===&lt;br /&gt;
&lt;br /&gt;
cli syncdat deletes database files if the dat dir is empty or contains a file &#039;SYNCDAT_DELETE&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
touch neosys/src/dat/dict.users/SYNC_DELETE&lt;br /&gt;
neosys/src~: syncdat&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Editing and deploying a &#039;dat&#039; file====&lt;br /&gt;
&lt;br /&gt;
It is currently a three step process to edit and deploy such &#039;dat&#039; files. &lt;br /&gt;
&lt;br /&gt;
=====Edit the &#039;dat&#039; file (i.e dict.file record)=====&lt;br /&gt;
&lt;br /&gt;
Note that EXODUS service and NEOSYS service have different src/dat folders.&lt;br /&gt;
&lt;br /&gt;
Editing language items:&lt;br /&gt;
&lt;br /&gt;
 edir dat/alanguage/SCHEDULES*ARABIC&lt;br /&gt;
&lt;br /&gt;
Editing a dictionary item:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE&lt;br /&gt;
&lt;br /&gt;
Editing a pgsql function in a dictionary:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE 8&lt;br /&gt;
&lt;br /&gt;
=====Copy all &#039;dat&#039; files to ~/dat =====&lt;br /&gt;
&lt;br /&gt;
This step might be removed at a later date.&lt;br /&gt;
&lt;br /&gt;
This will cause all test databases to immediately restart and load any &#039;dat&#039; file changes into dictionaries and data files and also create any new or modified pgsql functions.&lt;br /&gt;
&lt;br /&gt;
If any ~/neosys/src/dat files were edited:&lt;br /&gt;
&lt;br /&gt;
 cd ~/neosys/src&lt;br /&gt;
 &lt;br /&gt;
 ./compall dat&lt;br /&gt;
&lt;br /&gt;
and/or, if exodus/service/dat files were edited&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service/src&lt;br /&gt;
 &lt;br /&gt;
 ./compall dat&lt;br /&gt;
&lt;br /&gt;
=====Copy all programs and &#039;dat&#039; files to ~/live/bin|lib|dat=====&lt;br /&gt;
&lt;br /&gt;
This should only be run after testing. It will cause all live databases to automatically restart and do the same as the test databases mentioned above.&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service&lt;br /&gt;
 &lt;br /&gt;
 ./copyall CONFIRM&lt;br /&gt;
&lt;br /&gt;
=====Delete dat record =====&lt;br /&gt;
&lt;br /&gt;
Simply open the corresponding dat file, remove all lines and save.&lt;br /&gt;
&lt;br /&gt;
===Psql unaccent extension===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The unaccent extension and the immutable_unaccent function are created in the db ‘template1’ during exodus installation while user is postgres which is a superuser.&lt;br /&gt;
&lt;br /&gt;
Thereafter all new databases are created as copies of template1 so they contain the extension and function&lt;br /&gt;
&lt;br /&gt;
====Error====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MVDBException:ERROR: function immutable_unaccent(text) does not exist&lt;br /&gt;
ERROR:  permission denied to create extension &amp;quot;unaccent&amp;quot;&lt;br /&gt;
HINT:  Must be superuser to create this extension. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
sudo -u postgres psql -c &#039;ALTER USER exodus WITH SUPERUSER;&#039;&lt;br /&gt;
&lt;br /&gt;
==Processes==&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
==Postgres==&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 alias psql=&#039;sudo -u postgres psql&#039;&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Debugging Exodus==&lt;br /&gt;
&lt;br /&gt;
===Debugging Live/Test services===&lt;br /&gt;
&lt;br /&gt;
./test &amp;lt;dbname&amp;gt; - execute test programs on _test database.&lt;br /&gt;
&lt;br /&gt;
./run &amp;lt;dbname&amp;gt;  - execute test programs on live database.&lt;br /&gt;
&lt;br /&gt;
===Debugging var values===&lt;br /&gt;
&lt;br /&gt;
Explanation of var flag value in gdb debug mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) p varx                                                           &lt;br /&gt;
$2 = {var_str = &amp;quot;&amp;quot;, var_int = 0, var_dbl = 0, var_typ = {flags_ = 2}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each exodus var object contains 4 variables of type std::string (var_str), int (var_int), long double (var_dbl) and another int (var_typ i.e flags).&lt;br /&gt;
&lt;br /&gt;
The first 3 bits of var_typ (flags_) are used to signify which of the other variables are assigned.&lt;br /&gt;
&lt;br /&gt;
First bit = string is un/assigned. Second bit = int is un/assigned. Third bit = double un/assigned (a combination of these bits describes whether var_str/ var_int/ var_dbl are assigned.&lt;br /&gt;
&lt;br /&gt;
Examples: &lt;br /&gt;
&lt;br /&gt;
000 (binary) =  0 (decimal) = non are assigned.&lt;br /&gt;
&lt;br /&gt;
100 (binary) =  1 (decimal) = var_str is assigned. (var_int &amp;amp; var_dbl are not)&lt;br /&gt;
&lt;br /&gt;
010 (binary) =  2 (decimal) = var_int is assigned. (var_str &amp;amp; var_dbl are not)&lt;br /&gt;
&lt;br /&gt;
001 (binary) =  4 (decimal) = var_dbl is assigned. (var_str var_int are not)&lt;br /&gt;
&lt;br /&gt;
Combinations:&lt;br /&gt;
&lt;br /&gt;
110 (binary) =  3 (decimal) = var_str &amp;amp; var_int are assigned. (var_dbl is not)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To inspect a “common” variable====&lt;br /&gt;
&lt;br /&gt;
e,g, a variable called ba.ledgern&lt;br /&gt;
&lt;br /&gt;
 p ((subExodusProgram::&amp;lt;b&amp;gt;ba&amp;lt;/b&amp;gt;_common)&amp;lt;b&amp;gt;ba&amp;lt;/b&amp;gt;).&amp;lt;b&amp;gt;ledgern&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====To inspect a common block====&lt;br /&gt;
&lt;br /&gt;
e.g. a common block ba&lt;br /&gt;
&lt;br /&gt;
 ptype (subExodusProgram::ba_common)ba&lt;br /&gt;
&lt;br /&gt;
====To dump all variables in a common====&lt;br /&gt;
&lt;br /&gt;
e.g all variables in ba&lt;br /&gt;
&lt;br /&gt;
 p (subExodusProgram::ba_common)ba&lt;br /&gt;
&lt;br /&gt;
====What types are available in a program?====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;info types common&lt;br /&gt;
info types subExodus&lt;br /&gt;
info types libexodus&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Other commands====&lt;br /&gt;
&lt;br /&gt;
 explore subExodusProgram::ba_common&lt;br /&gt;
&lt;br /&gt;
===Process Hung or consuming +100% CPU===&lt;br /&gt;
If process is consuming +100% CPU then it is likely stuck in an infinite loop.&lt;br /&gt;
&lt;br /&gt;
 ./doall &amp;lt;CLIENT&amp;gt; stop&lt;br /&gt;
&lt;br /&gt;
 ./run &amp;lt;CLIENT&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 ./test &amp;lt;CLIENT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Search through recent logs for &amp;lt;CLIENT&amp;gt; looking for requests that didn&#039;t return OK at the time nagios alerted of Hung process.&lt;br /&gt;
&lt;br /&gt;
A user may also instigate the error again, so monitor the CLIENT&#039;s service CPU usage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If cause found recreate it in test and once test process hit +100% break in test debugger.&lt;br /&gt;
&lt;br /&gt;
If cause not found, you will have to continue checking logs for the request that caused it or hope a user recreates the issue in live debugged service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve broken in the debugged with the error, enter &amp;quot;n&amp;quot; and hold the enter key until you just seeing line repeat.&lt;br /&gt;
&lt;br /&gt;
Pay attention to start of loops code. E.g WHILE or FOR. (there is likely an error is there)&lt;br /&gt;
&lt;br /&gt;
==./doall==&lt;br /&gt;
====General====&lt;br /&gt;
&lt;br /&gt;
~/neosys/doall [LIVE|TEST] &amp;lt;DBCODE|ALL&amp;gt; &amp;lt; ACTION [OPTIONS,..]  | bash -- COMMAND ]&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 ./doall TEST ALL create_site t-&lt;br /&gt;
Result:&lt;br /&gt;
Create site for ALL TEST databases, using domain name prefix option &amp;quot;t-&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Using git to make changes===&lt;br /&gt;
&lt;br /&gt;
Before following steps you must have a tested updated to a program/file/script. Do not commit untested changes to avoid a messy git history of reverts.&lt;br /&gt;
&lt;br /&gt;
Update your local repo before committing to local repo using the g alias for &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check which updates/files have not yet been staged and/or committed:&lt;br /&gt;
Add your updates to the staged area:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add &amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if all the changes made need to be staged:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make a commit with a descriptive message on purpose of updates:&lt;br /&gt;
&amp;lt;pre&amp;gt;git commit -m &amp;lt;description n purpose of changes&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again use g alias:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other useful git cmds===&lt;br /&gt;
&lt;br /&gt;
Do not use this commands unless you know what WILL happen. &lt;br /&gt;
*git pull - Instead use the safe &amp;quot;git pull --ff-only&amp;quot;&lt;br /&gt;
Stick to the alias &amp;quot;g&amp;quot; which does &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*git log - display history of commits to master branch&lt;br /&gt;
*git diff - display the differences in files between working files and files in local repo.&lt;br /&gt;
*git status - display: which updated files are staged/not staged(tracked)&lt;br /&gt;
*git stash - &lt;br /&gt;
*git branch - switch to a new branch&lt;br /&gt;
*git branch &amp;lt;branchname&amp;gt; - will switch to this branch only if it exists&lt;br /&gt;
*git checkout - DESTROYS/Updates the state of local working directory with the state of the files in the local repo. (YOU WILL LOSE non staged updates)&lt;br /&gt;
*git restore &amp;lt;filename&amp;gt; - DESTROYS/Updates the file with the version in the local repo. (like with git checkout but for a specific file)&lt;br /&gt;
*git checkin - &lt;br /&gt;
*git revert &amp;lt;commitHash&amp;gt; - reverses a specific commit (use git log to get the chosen commit hash)&lt;br /&gt;
*git ..&lt;br /&gt;
&lt;br /&gt;
==Converting AREV programs to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
&lt;br /&gt;
Do in Master AREV Installation Maintenance mode: (win7)&lt;br /&gt;
&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; &lt;br /&gt;
#*ADECOMALL              *all programs   (CHECK FIRST)&lt;br /&gt;
&lt;br /&gt;
Include the option &amp;quot;(V)&amp;quot; in the command to print the C++ to a notepad, which can easily be copy and pasted.&lt;br /&gt;
&lt;br /&gt;
===Getting C++ program to Exodus Installation===&lt;br /&gt;
&lt;br /&gt;
Two methods: (use the first for one off programs)&lt;br /&gt;
&lt;br /&gt;
====Copy &amp;amp; Paste====&lt;br /&gt;
&lt;br /&gt;
Compile program and open source code in notepad&lt;br /&gt;
&lt;br /&gt;
 ADECOM &amp;lt;programname&amp;gt; (V)&lt;br /&gt;
&lt;br /&gt;
Find which directory the program belongs. e.g fin/med/job/sys e.t&lt;br /&gt;
&lt;br /&gt;
 find /cygdrive/d/exodus/pickos | grep &amp;lt;program name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If cpp in SYS, the program belongs in ~/exodus/service/src OR if in MED JOB FIN GEN AGY the program belongs in ~/neosys/src&lt;br /&gt;
&lt;br /&gt;
Copy the source code in the text file from the first command.&lt;br /&gt;
&lt;br /&gt;
In Exodus, create a new .cpp (in correct directory) and paste the source code.&lt;br /&gt;
&lt;br /&gt;
Compile &amp;amp; Test&lt;br /&gt;
&lt;br /&gt;
====Rsync====&lt;br /&gt;
&lt;br /&gt;
 /d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
&lt;br /&gt;
If cpp in MED JOB FIN GEN AGY then: *~/neosys/src&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart         #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrading Exodus==&lt;br /&gt;
&lt;br /&gt;
#Develop patch in Dev system &lt;br /&gt;
&lt;br /&gt;
===Patching neosys/src or exodus/service/src===&lt;br /&gt;
&lt;br /&gt;
#Manually insert patches and compile into test programs.&lt;br /&gt;
#If patch dat files then run neosys/compall to get dat files into ~/dat&lt;br /&gt;
*If Patsalides:&lt;br /&gt;
*#SITE_DIR=ptcy ./test basic &lt;br /&gt;
*#login to BASIC_TEST and test&lt;br /&gt;
*Other clients:&lt;br /&gt;
*#./test DBCODE&lt;br /&gt;
*#login to DBCODE and test patches works&lt;br /&gt;
#run exodus/service/copyall and check only the patched programs are listed. (if not, see Troubleshoot below)&lt;br /&gt;
#Inform users to log off for 10mins. As a rule of thumb, live services must be stopped before copying test programs to live.&lt;br /&gt;
#exodus/service/copyall CONFIRM&lt;br /&gt;
&lt;br /&gt;
====Troubleshoot====&lt;br /&gt;
&lt;br /&gt;
=====./copyall lists programs you have not patched=====&lt;br /&gt;
Use exodus/service/copyone to copy only your patched programs one by one. (./copyone will not copy dat files)&lt;br /&gt;
&lt;br /&gt;
===Upgrading to new version===&lt;br /&gt;
&lt;br /&gt;
READ: remember there is no test version of libexodus programs. This means that if libexodus programs are compiled and installed, neosys/src and exodus/services LIVE programs MUST BE UPGRADED.&lt;br /&gt;
&lt;br /&gt;
#Upgrade test system to test&lt;br /&gt;
##If a dev system like de2, git stash any uncommitted changes other staff may be working on.&lt;br /&gt;
##Run &amp;quot;g&amp;quot; in ~/exodus (to do git pull --ff-only)&lt;br /&gt;
##Run &amp;quot;m&amp;quot; in ~/exodus (to compile and install libexodus)&lt;br /&gt;
##Run &amp;quot;~/neosys/upgrade.all.sh live&amp;quot; in ~/neosys (to upgrade exodus/service and neosys/src live programs)&lt;br /&gt;
##Begin testing&lt;br /&gt;
#Upgrade clients&lt;br /&gt;
##*Client hosted - Schedule a planned upgrade with client.&lt;br /&gt;
##*NEOSYS hosted - Inform all clients/users of planned morning upgrade, 24hours in advanced.      (TODO: &#039;What&#039;s New in NEOSYS&#039;) AND (emailallusers.cpp)&lt;br /&gt;
##Day of upgrade, check USB backup was successful &amp;amp; make a container snapshot, otherwise do not proceed.&lt;br /&gt;
##Stop services&lt;br /&gt;
##Run &amp;quot;g&amp;quot; in ~/exodus (to do git pull --ff-only)&lt;br /&gt;
##Run &amp;quot;m&amp;quot; in ~/exodus (to compile and install libexodus)&lt;br /&gt;
##Run &amp;quot;~/neosys/upgrade.all.sh live&amp;quot;. &lt;br /&gt;
##Check services started automatically without issues.&lt;br /&gt;
#Inform users their system has been upgraded and they can login.&lt;br /&gt;
&lt;br /&gt;
===Roll Back Upgrade===&lt;br /&gt;
&lt;br /&gt;
If for any reason the entire upgrade needs to be reverted (excludes clients database), follow steps below:&lt;br /&gt;
&lt;br /&gt;
#Inform users that there is a problem and services need to be stopped.&lt;br /&gt;
#Stop all exodus processes.&lt;br /&gt;
#Restore the morning&#039;s USB backup by: (Note this backup contains:  source/obj code, /etc, neosys scripts but not client data)&lt;br /&gt;
##Login into container&#039;s host and rsync the morning&#039;s usb backup to the container&#039;s /:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;rsync --dry-run -avz -e &#039;ssh -p &amp;lt;C_SSHPORT&amp;gt;&#039; /backups/usb/&amp;lt;C_CODE&amp;gt; &amp;lt;C_CODE&amp;gt;:/      (Example: rsync --dry-run -avz -e &#039;ssh -p 19582&#039; /backups/usb/ad1 ad1:/&amp;lt;/pre&amp;gt;)&lt;br /&gt;
#Quick sane check, the latest git commit is not the latest git commit in the remote repo.&lt;br /&gt;
#Inform users they can login.&lt;br /&gt;
&lt;br /&gt;
==Configuring services to autostart during login==&lt;br /&gt;
For PTCY,&lt;br /&gt;
&lt;br /&gt;
#Create a file &#039;autostart.cfg&#039; in the data folder &lt;br /&gt;
&lt;br /&gt;
 touch /root/hosts/&amp;lt;dbname&amp;gt;/data/autostart.cfg&lt;br /&gt;
&lt;br /&gt;
This will autostart a database service as long as at least one database service in that directory is running.&lt;br /&gt;
&lt;br /&gt;
For example, demo service will autostart during login if,&lt;br /&gt;
#/root/hosts/demo/data/autostart.cfg exists and&lt;br /&gt;
#demo_test service is running&lt;br /&gt;
&lt;br /&gt;
==Speedup postgresql importing databases==&lt;br /&gt;
&lt;br /&gt;
Can be sped up by a factor of 10 BUT may result in corrupt files in case of hard OS crash where the dirty memory is not flushed to storage.&lt;br /&gt;
&lt;br /&gt;
Therefore it is advisable to use this feature only briefly and REMEMBER TO REMOVE IT! &lt;br /&gt;
&lt;br /&gt;
Email to support@neosys.com whenever using it or use personal notes not memory.&lt;br /&gt;
&lt;br /&gt;
nano /etc/postgresql/12/main/postgresql.conf&lt;br /&gt;
&lt;br /&gt;
Uncomment or add a line&lt;br /&gt;
 fsync = off&lt;br /&gt;
Restart postgres … will break any neosys/exodus running processes.&lt;br /&gt;
 r postgresql&lt;br /&gt;
or reload postgres may also work&lt;br /&gt;
&lt;br /&gt;
==Database Attach==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@exodus:~/exodus/cli/src# dbattach&lt;br /&gt;
dbattach - Attach foreign database files to the current default database&lt;br /&gt;
&lt;br /&gt;
Syntax is dbattach TARGETDB [FILENAME,...] {OPTION...}&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
&lt;br /&gt;
  F   Forcibly delete any normal files in the current default database.&lt;br /&gt;
&lt;br /&gt;
  R   Detach foreign files&lt;br /&gt;
  RR  Remove foreign database connection.&lt;br /&gt;
  RRR Remove all foreign database connections and attachments.&lt;br /&gt;
&lt;br /&gt;
  L   List attached foreign files in the current default database&lt;br /&gt;
&lt;br /&gt;
If no filenames are provided then a database connection is created.&lt;br /&gt;
This is *required* before filenames can be provided and attached.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
Attachments are permanent until re-attached or removed.&lt;br /&gt;
&lt;br /&gt;
Indexes on attached files behave strangely.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Issues:&lt;br /&gt;
&lt;br /&gt;
TARGETDB must be on the same connection as the current default database.&lt;br /&gt;
&lt;br /&gt;
Current user must have access to the foreign database.&lt;br /&gt;
&lt;br /&gt;
If EXO_USER and EXO_PASS are not set then exodus defaults are used.&lt;br /&gt;
&lt;br /&gt;
exodus .config file is not used currently.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3950</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3950"/>
		<updated>2022-01-17T13:29:05Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Configuring services to autostart during login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
===Screens===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0: /&lt;br /&gt;
    Work regarding exodus server. i.e /etc/nagios or general networking or /var/log/mail.log&lt;br /&gt;
&lt;br /&gt;
1: /root/exodus/&lt;br /&gt;
    Exodus core is installed Contains build and make libraries here ./libexodus&lt;br /&gt;
&lt;br /&gt;
2: /root/exodus/libexodus/exodus&lt;br /&gt;
    Core exodus (libraries that emulate the AREV system e.g mv.h )&lt;br /&gt;
    &lt;br /&gt;
3: /root/exodus/cli/src&lt;br /&gt;
    Exodus Command Line Interface e.g edir, edic, list, listfiles, delete, createdb&lt;br /&gt;
    &lt;br /&gt;
4: root/exodus/service&lt;br /&gt;
    EXODUS core default host directory but also contains scripts that create/manage requirements of a service (create_service, create_db, create_site, backup_db, restore_db, start, stop, status)&lt;br /&gt;
    One exception is NEOSYS www files are in ./www, which pulled from NEOSYS www git.&lt;br /&gt;
&lt;br /&gt;
5: /root/exodus/service/src&lt;br /&gt;
    Exodus core service programs (programs that are not related to NEOSYS agency operations and can be used to support other non-NEOSYS services) eg listen, usersubs, sendmail, openfile, select, sort, list,.&lt;br /&gt;
&lt;br /&gt;
    Extra info:    &lt;br /&gt;
    sql directory contains basic dictiorary files converted to sql instructions used when creating a EXODUS psql database&lt;br /&gt;
    e.g dict_voc.sql is a file that describes what to expect in certain fields of the voc file.&lt;br /&gt;
    TODO: compall currently throws few warnings. Read them and familiarise. In case new warnings appear, notify Steve.    &lt;br /&gt;
        &lt;br /&gt;
6: /root/neosys&lt;br /&gt;
    NEOSYS specific client installation management scripts e.g .doall, import_db and import_files (from AREV), ./run ./test (see below for these two commands)&lt;br /&gt;
    &lt;br /&gt;
7: /root/neosys/src&lt;br /&gt;
    NEOSYS Agency programs (see section How AREV programs are distributed in EXODUS src/*.cpp&lt;br /&gt;
    ../ has .git&lt;br /&gt;
&lt;br /&gt;
8: /root/hosts&lt;br /&gt;
    client specific files  e.g logs, images, (shared ./www -&amp;gt; root/exodus/service/www&lt;br /&gt;
&lt;br /&gt;
9: /root/exodus/test/src&lt;br /&gt;
    series of programs that test whether subroutines (specifically Exodus core libraries) work as they should eg for the var lib - &amp;quot;assert( var(&amp;quot;11111&amp;quot;).isnum());&amp;quot;&lt;br /&gt;
&lt;br /&gt;
10: bash /bin/top&lt;br /&gt;
    Monitor for NEOSYS client processes&lt;br /&gt;
    Displays customised format: sorted by total time spend and by processor time.&lt;br /&gt;
     Press &amp;quot;=&amp;quot; : to change to standard top format&lt;br /&gt;
     Press shift + w : to save format settings, replacing the old customised top format&lt;br /&gt;
     To go back to the customised format do:&lt;br /&gt;
        Press &amp;quot;o&amp;quot;&lt;br /&gt;
        Type &amp;quot;COMMAND=serve_agy&amp;quot;&lt;br /&gt;
        shift + t : this sorts by total time spent&lt;br /&gt;
        shift + p : this sorts by processor time&lt;br /&gt;
        shift + w : to save this setting and enter  &#039;y&#039; to confirm&lt;br /&gt;
&lt;br /&gt;
11: /var/log/syslog&lt;br /&gt;
     Log of NEOSYS client requests&lt;br /&gt;
&lt;br /&gt;
12: /root/exodus/service/quick&lt;br /&gt;
     Displays the last time the svr file (in /root/hosts/&amp;lt;client&amp;gt;/data/&amp;lt;dbname&amp;gt;) was updated.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Object Code/Libraries==&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
==Dictionaries==&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
==Processes==&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
==Postgres==&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debugging Exodus==&lt;br /&gt;
&lt;br /&gt;
===Debugging Live/Test services===&lt;br /&gt;
&lt;br /&gt;
./test &amp;lt;dbname&amp;gt; - execute test programs on _test database.&lt;br /&gt;
&lt;br /&gt;
./run &amp;lt;dbname&amp;gt;  - execute test programs on live database.&lt;br /&gt;
&lt;br /&gt;
===Debugging var values===&lt;br /&gt;
&lt;br /&gt;
Explanation of var flag value in gdb debug mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) p varx                                                           &lt;br /&gt;
$2 = {var_str = &amp;quot;&amp;quot;, var_int = 0, var_dbl = 0, var_typ = {flags_ = 2}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each exodus var object contains 3 variables of type string, int and double.&lt;br /&gt;
&lt;br /&gt;
All 3 may be unassigned or only the string be assigned or just the int and double e.t.&lt;br /&gt;
&lt;br /&gt;
You can tell which variable type of a var object are set based on the var&#039;s flag value.&lt;br /&gt;
&lt;br /&gt;
1 = Means the string is assigned&lt;br /&gt;
2 = Means the int is assigned&lt;br /&gt;
4 = Means the double is assigned&lt;br /&gt;
&lt;br /&gt;
Example: If the flag is 7 (1+2+4), then all types are assigned.&lt;br /&gt;
&lt;br /&gt;
==./doall==&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Using git to make changes===&lt;br /&gt;
&lt;br /&gt;
Before following steps you must have a tested updated to a program/file/script. Do not commit untested changes to avoid a messy git history of reverts.&lt;br /&gt;
&lt;br /&gt;
Update your local repo before committing to local repo using the g alias for &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check which updates/files have not yet been staged and/or committed:&lt;br /&gt;
Add your updates to the staged area:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add &amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if all the changes made need to be staged:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make a commit with a descriptive message on purpose of updates:&lt;br /&gt;
&amp;lt;pre&amp;gt;git commit -m &amp;lt;description n purpose of changes&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again use g alias:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other useful git cmds===&lt;br /&gt;
&lt;br /&gt;
Do not use this commands unless you know what WILL happen. &lt;br /&gt;
*git pull - Instead use the safe &amp;quot;git pull --ff-only&amp;quot;&lt;br /&gt;
Stick to the alias &amp;quot;g&amp;quot; which does &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*git log - display history of commits to master branch&lt;br /&gt;
*git diff - display the differences in files between working files and files in local repo.&lt;br /&gt;
*git status - display: which updated files are staged/not staged(tracked)&lt;br /&gt;
*git stash - &lt;br /&gt;
*git branch - switch to a new branch&lt;br /&gt;
*git branch &amp;lt;branchname&amp;gt; - will switch to this branch only if it exists&lt;br /&gt;
*git checkout - DESTROYS/Updates the state of local working directory with the state of the files in the local repo. (YOU WILL LOSE non staged updates)&lt;br /&gt;
*git restore &amp;lt;filename&amp;gt; - DESTROYS/Updates the file with the version in the local repo. (like with git checkout but for a specific file)&lt;br /&gt;
*git checkin - &lt;br /&gt;
*git revert &amp;lt;commitHash&amp;gt; - reverses a specific commit (use git log to get the chosen commit hash)&lt;br /&gt;
*git ..&lt;br /&gt;
&lt;br /&gt;
==Converting AREV programs to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
&lt;br /&gt;
Do in Master AREV Installation Maintenance mode: (win7)&lt;br /&gt;
&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; &lt;br /&gt;
#*ADECOMALL              *all programs   (CHECK FIRST)&lt;br /&gt;
&lt;br /&gt;
Include the option &amp;quot;(V)&amp;quot; in the command to print the C++ to a notepad, which can easily be copy and pasted.&lt;br /&gt;
&lt;br /&gt;
===Getting C++ program to Exodus Installation===&lt;br /&gt;
&lt;br /&gt;
Two methods: (use the first for one off programs)&lt;br /&gt;
&lt;br /&gt;
====Copy &amp;amp; Paste====&lt;br /&gt;
&lt;br /&gt;
Compile program and open source code in notepad&lt;br /&gt;
&lt;br /&gt;
 ADECOM &amp;lt;programname&amp;gt; (V)&lt;br /&gt;
&lt;br /&gt;
Find which directory the program belongs. e.g fin/med/job/sys e.t&lt;br /&gt;
&lt;br /&gt;
 find /cygdrive/d/exodus/pickos | grep &amp;lt;program name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If cpp in SYS, the program belongs in ~/exodus/service/src OR if in MED JOB FIN GEN AGY the program belongs in ~/neosys/src&lt;br /&gt;
&lt;br /&gt;
Copy the source code in the text file from the first command.&lt;br /&gt;
&lt;br /&gt;
In Exodus, create a new .cpp (in correct directory) and paste the source code.&lt;br /&gt;
&lt;br /&gt;
Compile &amp;amp; Test&lt;br /&gt;
&lt;br /&gt;
====Rsync====&lt;br /&gt;
&lt;br /&gt;
 /d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
&lt;br /&gt;
If cpp in MED JOB FIN GEN AGY then: *~/neosys/src&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart         #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
==Updating a pgsql function in an exodus dictionary==&lt;br /&gt;
&lt;br /&gt;
PENDING&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting postfix emailing issues==&lt;br /&gt;
&lt;br /&gt;
To view current configuration in main.cf&lt;br /&gt;
 postconf -n&lt;br /&gt;
&lt;br /&gt;
To update the value of a parameter&lt;br /&gt;
 postconf relayhost=mailout.neosys.com:2500&lt;br /&gt;
&lt;br /&gt;
To restart postfix service&lt;br /&gt;
 service postfix restart&lt;br /&gt;
&lt;br /&gt;
Send a test email using &amp;quot;mail&amp;quot; and watch the logs to verify&lt;br /&gt;
 mail &amp;lt;email&amp;gt;&lt;br /&gt;
 journalctl -f&lt;br /&gt;
&lt;br /&gt;
==Development and deployment using &#039;dat&#039; files==&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
Part of system development is the creation of various data that is neither programs nor layout i.e. not cpp, h, html, js, php files etc.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
*Dictionaries are data about data.&lt;br /&gt;
*Language files are data about text to use for various languages.&lt;br /&gt;
*“Change logs” are data about changes in the system.&lt;br /&gt;
&lt;br /&gt;
Historically, in EXODUS and NEOSYS, the above data has been deployed in exodus database files using SQL text files. However SQL files are not convenient for development.&lt;br /&gt;
&lt;br /&gt;
Therefore, &#039;dat&#039; text files will be used now so that standard development tools including editors and git can be fully exploited.&lt;br /&gt;
&lt;br /&gt;
===&#039;dat&#039; files===&lt;br /&gt;
&lt;br /&gt;
Each database file is represented by an os directory of the same name.&lt;br /&gt;
&lt;br /&gt;
Each record in the database file is represented by an os text file where filename is the primary key.&lt;br /&gt;
&lt;br /&gt;
For example a record with key &#039;&#039;&#039;DEADLINE&#039;&#039;&#039; in a dat file &#039;&#039;&#039;dict.materials&#039;&#039;&#039; would be represented as an os text file &#039;&#039;&#039;dat/dict.materials/DEADLINE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in the os text file represents one field in the db record. In other words, db record FM characters are represented by new line characters in &#039;dat&#039; files. Any actual new line characters required in the record, and any backslashes, are escaped and appear as &#039;\n&#039; and &#039;\\&#039; in &#039;dat&#039; files. Other database field separator characters such as VM, SM, TM and STM are stored without any conversion.&lt;br /&gt;
&lt;br /&gt;
===Location of dat files===&lt;br /&gt;
&lt;br /&gt;
The development versions are stored in exodus and neosys src/dat dirs. They form part of the standard git repositories in parallel with cpp files.&lt;br /&gt;
&lt;br /&gt;
The operational versions are stored in ~/dat and ~/live/dat alongside bin and lib dirs and are automatically installed into databases as database files on service startup. Any database functions embedded in the text files (pgsql) are also automatically installed at the same time.&lt;br /&gt;
&lt;br /&gt;
===Editing and deploying a &#039;dat&#039; file===&lt;br /&gt;
&lt;br /&gt;
It is currently a three step process to edit and deploy such &#039;dat&#039; files. &lt;br /&gt;
&lt;br /&gt;
====Edit the &#039;dat&#039; file====&lt;br /&gt;
&lt;br /&gt;
Note that EXODUS service and NEOSYS service have different src/dat folders.&lt;br /&gt;
&lt;br /&gt;
Editing language items:&lt;br /&gt;
&lt;br /&gt;
 edir dat/alanguage/SCHEDULES*ARABIC&lt;br /&gt;
&lt;br /&gt;
Editing a dictionary item:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE&lt;br /&gt;
&lt;br /&gt;
Editing a pgsql function in a dictionary:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE 8&lt;br /&gt;
&lt;br /&gt;
====Copy all &#039;dat&#039; files to ~/dat ====&lt;br /&gt;
&lt;br /&gt;
This step might be removed at a later date.&lt;br /&gt;
&lt;br /&gt;
This will cause all test databases to immediately restart and load any &#039;dat&#039; file changes into dictionaries and data files and also create any new or modified pgsql functions.&lt;br /&gt;
&lt;br /&gt;
If any ~/neosys/src/dat files were edited:&lt;br /&gt;
&lt;br /&gt;
 cd ~/neosys/src&lt;br /&gt;
 &lt;br /&gt;
 ./compall dat&lt;br /&gt;
&lt;br /&gt;
and/or, if exodus/service/dat files were edited&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service/src&lt;br /&gt;
 &lt;br /&gt;
 ./compall dat&lt;br /&gt;
&lt;br /&gt;
====Copy all programs and &#039;dat&#039; files to ~/live/bin|lib|dat====&lt;br /&gt;
&lt;br /&gt;
This should only be run after testing. It will cause all live databases to automatically restart and do the same as the test databases mentioned above.&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service&lt;br /&gt;
 &lt;br /&gt;
 ./copyall CONFIRM&lt;br /&gt;
​&lt;br /&gt;
&lt;br /&gt;
==Upgrading Exodus==&lt;br /&gt;
&lt;br /&gt;
#Inform clients.&lt;br /&gt;
#*Client hosted - Schedule a planned upgrade with client.&lt;br /&gt;
#*NEOSYS hosted - Inform all clients/users of planned morning upgrade, 24hours in advanced.      (TODO: &#039;What&#039;s New in NEOSYS&#039;) AND (emailallusers.cpp)&lt;br /&gt;
#If the morning&#039;s USB backup failed, do NOT continue upgrade procedure because if upgrade fails, we need a way to roll back system to last working state.&lt;br /&gt;
#Check upgrade works on test service using:/root/neosys/upgrade.all.sh test&lt;br /&gt;
#Check the latest patch is working.&lt;br /&gt;
#Run/root/neosys/upgrade.all.sh live&lt;br /&gt;
#Inform users their system has been upgraded and they can login.&lt;br /&gt;
&lt;br /&gt;
===Roll Back Upgrade===&lt;br /&gt;
&lt;br /&gt;
If for any reason the entire upgrade needs to be reverted (excludes clients database), follow steps below:&lt;br /&gt;
&lt;br /&gt;
#Inform users that there is a problem and services need to be stopped.&lt;br /&gt;
#Stop all exodus processes.&lt;br /&gt;
#Restore the morning&#039;s USB backup by: (Note this backup contains:  source/obj code, /etc, neosys scripts but not client data)&lt;br /&gt;
##Login into container&#039;s host and rsync the morning&#039;s usb backup to the container&#039;s /:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;rsync --dry-run -avz -e &#039;ssh -p &amp;lt;C_SSHPORT&amp;gt;&#039; /backups/usb/&amp;lt;C_CODE&amp;gt; &amp;lt;C_CODE&amp;gt;:/      (Example: rsync --dry-run -avz -e &#039;ssh -p 19582&#039; /backups/usb/ad1 ad1:/&amp;lt;/pre&amp;gt;)&lt;br /&gt;
#Quick sane check, the latest git commit is not the latest git commit in the remote repo.&lt;br /&gt;
#Inform users they can login.&lt;br /&gt;
&lt;br /&gt;
==Configuring services to autostart during login==&lt;br /&gt;
&lt;br /&gt;
Create a file &#039;autostart.cfg&#039; in the data folder &lt;br /&gt;
&lt;br /&gt;
 touch /root/hosts/xxx/data/autostart.cfg&lt;br /&gt;
&lt;br /&gt;
This would autostart a database service as long as one database service in that directory is running.&lt;br /&gt;
&lt;br /&gt;
For example, demo service will autostart during login if,&lt;br /&gt;
#/root/hosts/demo/data/autostart.cfg exists and&lt;br /&gt;
#demo_test service is running&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3949</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3949"/>
		<updated>2022-01-17T13:17:18Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Configuring services to autostart */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
===Screens===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0: /&lt;br /&gt;
    Work regarding exodus server. i.e /etc/nagios or general networking or /var/log/mail.log&lt;br /&gt;
&lt;br /&gt;
1: /root/exodus/&lt;br /&gt;
    Exodus core is installed Contains build and make libraries here ./libexodus&lt;br /&gt;
&lt;br /&gt;
2: /root/exodus/libexodus/exodus&lt;br /&gt;
    Core exodus (libraries that emulate the AREV system e.g mv.h )&lt;br /&gt;
    &lt;br /&gt;
3: /root/exodus/cli/src&lt;br /&gt;
    Exodus Command Line Interface e.g edir, edic, list, listfiles, delete, createdb&lt;br /&gt;
    &lt;br /&gt;
4: root/exodus/service&lt;br /&gt;
    EXODUS core default host directory but also contains scripts that create/manage requirements of a service (create_service, create_db, create_site, backup_db, restore_db, start, stop, status)&lt;br /&gt;
    One exception is NEOSYS www files are in ./www, which pulled from NEOSYS www git.&lt;br /&gt;
&lt;br /&gt;
5: /root/exodus/service/src&lt;br /&gt;
    Exodus core service programs (programs that are not related to NEOSYS agency operations and can be used to support other non-NEOSYS services) eg listen, usersubs, sendmail, openfile, select, sort, list,.&lt;br /&gt;
&lt;br /&gt;
    Extra info:    &lt;br /&gt;
    sql directory contains basic dictiorary files converted to sql instructions used when creating a EXODUS psql database&lt;br /&gt;
    e.g dict_voc.sql is a file that describes what to expect in certain fields of the voc file.&lt;br /&gt;
    TODO: compall currently throws few warnings. Read them and familiarise. In case new warnings appear, notify Steve.    &lt;br /&gt;
        &lt;br /&gt;
6: /root/neosys&lt;br /&gt;
    NEOSYS specific client installation management scripts e.g .doall, import_db and import_files (from AREV), ./run ./test (see below for these two commands)&lt;br /&gt;
    &lt;br /&gt;
7: /root/neosys/src&lt;br /&gt;
    NEOSYS Agency programs (see section How AREV programs are distributed in EXODUS src/*.cpp&lt;br /&gt;
    ../ has .git&lt;br /&gt;
&lt;br /&gt;
8: /root/hosts&lt;br /&gt;
    client specific files  e.g logs, images, (shared ./www -&amp;gt; root/exodus/service/www&lt;br /&gt;
&lt;br /&gt;
9: /root/exodus/test/src&lt;br /&gt;
    series of programs that test whether subroutines (specifically Exodus core libraries) work as they should eg for the var lib - &amp;quot;assert( var(&amp;quot;11111&amp;quot;).isnum());&amp;quot;&lt;br /&gt;
&lt;br /&gt;
10: bash /bin/top&lt;br /&gt;
    Monitor for NEOSYS client processes&lt;br /&gt;
    Displays customised format: sorted by total time spend and by processor time.&lt;br /&gt;
     Press &amp;quot;=&amp;quot; : to change to standard top format&lt;br /&gt;
     Press shift + w : to save format settings, replacing the old customised top format&lt;br /&gt;
     To go back to the customised format do:&lt;br /&gt;
        Press &amp;quot;o&amp;quot;&lt;br /&gt;
        Type &amp;quot;COMMAND=serve_agy&amp;quot;&lt;br /&gt;
        shift + t : this sorts by total time spent&lt;br /&gt;
        shift + p : this sorts by processor time&lt;br /&gt;
        shift + w : to save this setting and enter  &#039;y&#039; to confirm&lt;br /&gt;
&lt;br /&gt;
11: /var/log/syslog&lt;br /&gt;
     Log of NEOSYS client requests&lt;br /&gt;
&lt;br /&gt;
12: /root/exodus/service/quick&lt;br /&gt;
     Displays the last time the svr file (in /root/hosts/&amp;lt;client&amp;gt;/data/&amp;lt;dbname&amp;gt;) was updated.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Object Code/Libraries==&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
==Dictionaries==&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
==Processes==&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
==Postgres==&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debugging Exodus==&lt;br /&gt;
&lt;br /&gt;
===Debugging Live/Test services===&lt;br /&gt;
&lt;br /&gt;
./test &amp;lt;dbname&amp;gt; - execute test programs on _test database.&lt;br /&gt;
&lt;br /&gt;
./run &amp;lt;dbname&amp;gt;  - execute test programs on live database.&lt;br /&gt;
&lt;br /&gt;
===Debugging var values===&lt;br /&gt;
&lt;br /&gt;
Explanation of var flag value in gdb debug mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) p varx                                                           &lt;br /&gt;
$2 = {var_str = &amp;quot;&amp;quot;, var_int = 0, var_dbl = 0, var_typ = {flags_ = 2}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each exodus var object contains 3 variables of type string, int and double.&lt;br /&gt;
&lt;br /&gt;
All 3 may be unassigned or only the string be assigned or just the int and double e.t.&lt;br /&gt;
&lt;br /&gt;
You can tell which variable type of a var object are set based on the var&#039;s flag value.&lt;br /&gt;
&lt;br /&gt;
1 = Means the string is assigned&lt;br /&gt;
2 = Means the int is assigned&lt;br /&gt;
4 = Means the double is assigned&lt;br /&gt;
&lt;br /&gt;
Example: If the flag is 7 (1+2+4), then all types are assigned.&lt;br /&gt;
&lt;br /&gt;
==./doall==&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Using git to make changes===&lt;br /&gt;
&lt;br /&gt;
Before following steps you must have a tested updated to a program/file/script. Do not commit untested changes to avoid a messy git history of reverts.&lt;br /&gt;
&lt;br /&gt;
Update your local repo before committing to local repo using the g alias for &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check which updates/files have not yet been staged and/or committed:&lt;br /&gt;
Add your updates to the staged area:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add &amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if all the changes made need to be staged:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make a commit with a descriptive message on purpose of updates:&lt;br /&gt;
&amp;lt;pre&amp;gt;git commit -m &amp;lt;description n purpose of changes&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again use g alias:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other useful git cmds===&lt;br /&gt;
&lt;br /&gt;
Do not use this commands unless you know what WILL happen. &lt;br /&gt;
*git pull - Instead use the safe &amp;quot;git pull --ff-only&amp;quot;&lt;br /&gt;
Stick to the alias &amp;quot;g&amp;quot; which does &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*git log - display history of commits to master branch&lt;br /&gt;
*git diff - display the differences in files between working files and files in local repo.&lt;br /&gt;
*git status - display: which updated files are staged/not staged(tracked)&lt;br /&gt;
*git stash - &lt;br /&gt;
*git branch - switch to a new branch&lt;br /&gt;
*git branch &amp;lt;branchname&amp;gt; - will switch to this branch only if it exists&lt;br /&gt;
*git checkout - DESTROYS/Updates the state of local working directory with the state of the files in the local repo. (YOU WILL LOSE non staged updates)&lt;br /&gt;
*git restore &amp;lt;filename&amp;gt; - DESTROYS/Updates the file with the version in the local repo. (like with git checkout but for a specific file)&lt;br /&gt;
*git checkin - &lt;br /&gt;
*git revert &amp;lt;commitHash&amp;gt; - reverses a specific commit (use git log to get the chosen commit hash)&lt;br /&gt;
*git ..&lt;br /&gt;
&lt;br /&gt;
==Converting AREV programs to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
&lt;br /&gt;
Do in Master AREV Installation Maintenance mode: (win7)&lt;br /&gt;
&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; &lt;br /&gt;
#*ADECOMALL              *all programs   (CHECK FIRST)&lt;br /&gt;
&lt;br /&gt;
Include the option &amp;quot;(V)&amp;quot; in the command to print the C++ to a notepad, which can easily be copy and pasted.&lt;br /&gt;
&lt;br /&gt;
===Getting C++ program to Exodus Installation===&lt;br /&gt;
&lt;br /&gt;
Two methods: (use the first for one off programs)&lt;br /&gt;
&lt;br /&gt;
====Copy &amp;amp; Paste====&lt;br /&gt;
&lt;br /&gt;
Compile program and open source code in notepad&lt;br /&gt;
&lt;br /&gt;
 ADECOM &amp;lt;programname&amp;gt; (V)&lt;br /&gt;
&lt;br /&gt;
Find which directory the program belongs. e.g fin/med/job/sys e.t&lt;br /&gt;
&lt;br /&gt;
 find /cygdrive/d/exodus/pickos | grep &amp;lt;program name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If cpp in SYS, the program belongs in ~/exodus/service/src OR if in MED JOB FIN GEN AGY the program belongs in ~/neosys/src&lt;br /&gt;
&lt;br /&gt;
Copy the source code in the text file from the first command.&lt;br /&gt;
&lt;br /&gt;
In Exodus, create a new .cpp (in correct directory) and paste the source code.&lt;br /&gt;
&lt;br /&gt;
Compile &amp;amp; Test&lt;br /&gt;
&lt;br /&gt;
====Rsync====&lt;br /&gt;
&lt;br /&gt;
 /d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
&lt;br /&gt;
If cpp in MED JOB FIN GEN AGY then: *~/neosys/src&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart         #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
==Updating a pgsql function in an exodus dictionary==&lt;br /&gt;
&lt;br /&gt;
PENDING&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting postfix emailing issues==&lt;br /&gt;
&lt;br /&gt;
To view current configuration in main.cf&lt;br /&gt;
 postconf -n&lt;br /&gt;
&lt;br /&gt;
To update the value of a parameter&lt;br /&gt;
 postconf relayhost=mailout.neosys.com:2500&lt;br /&gt;
&lt;br /&gt;
To restart postfix service&lt;br /&gt;
 service postfix restart&lt;br /&gt;
&lt;br /&gt;
Send a test email using &amp;quot;mail&amp;quot; and watch the logs to verify&lt;br /&gt;
 mail &amp;lt;email&amp;gt;&lt;br /&gt;
 journalctl -f&lt;br /&gt;
&lt;br /&gt;
==Development and deployment using &#039;dat&#039; files==&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
Part of system development is the creation of various data that is neither programs nor layout i.e. not cpp, h, html, js, php files etc.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
*Dictionaries are data about data.&lt;br /&gt;
*Language files are data about text to use for various languages.&lt;br /&gt;
*“Change logs” are data about changes in the system.&lt;br /&gt;
&lt;br /&gt;
Historically, in EXODUS and NEOSYS, the above data has been deployed in exodus database files using SQL text files. However SQL files are not convenient for development.&lt;br /&gt;
&lt;br /&gt;
Therefore, &#039;dat&#039; text files will be used now so that standard development tools including editors and git can be fully exploited.&lt;br /&gt;
&lt;br /&gt;
===&#039;dat&#039; files===&lt;br /&gt;
&lt;br /&gt;
Each database file is represented by an os directory of the same name.&lt;br /&gt;
&lt;br /&gt;
Each record in the database file is represented by an os text file where filename is the primary key.&lt;br /&gt;
&lt;br /&gt;
For example a record with key &#039;&#039;&#039;DEADLINE&#039;&#039;&#039; in a dat file &#039;&#039;&#039;dict.materials&#039;&#039;&#039; would be represented as an os text file &#039;&#039;&#039;dat/dict.materials/DEADLINE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in the os text file represents one field in the db record. In other words, db record FM characters are represented by new line characters in &#039;dat&#039; files. Any actual new line characters required in the record, and any backslashes, are escaped and appear as &#039;\n&#039; and &#039;\\&#039; in &#039;dat&#039; files. Other database field separator characters such as VM, SM, TM and STM are stored without any conversion.&lt;br /&gt;
&lt;br /&gt;
===Location of dat files===&lt;br /&gt;
&lt;br /&gt;
The development versions are stored in exodus and neosys src/dat dirs. They form part of the standard git repositories in parallel with cpp files.&lt;br /&gt;
&lt;br /&gt;
The operational versions are stored in ~/dat and ~/live/dat alongside bin and lib dirs and are automatically installed into databases as database files on service startup. Any database functions embedded in the text files (pgsql) are also automatically installed at the same time.&lt;br /&gt;
&lt;br /&gt;
===Editing and deploying a &#039;dat&#039; file===&lt;br /&gt;
&lt;br /&gt;
It is currently a three step process to edit and deploy such &#039;dat&#039; files. &lt;br /&gt;
&lt;br /&gt;
====Edit the &#039;dat&#039; file====&lt;br /&gt;
&lt;br /&gt;
Note that EXODUS service and NEOSYS service have different src/dat folders.&lt;br /&gt;
&lt;br /&gt;
Editing language items:&lt;br /&gt;
&lt;br /&gt;
 edir dat/alanguage/SCHEDULES*ARABIC&lt;br /&gt;
&lt;br /&gt;
Editing a dictionary item:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE&lt;br /&gt;
&lt;br /&gt;
Editing a pgsql function in a dictionary:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE 8&lt;br /&gt;
&lt;br /&gt;
====Copy all &#039;dat&#039; files to ~/dat ====&lt;br /&gt;
&lt;br /&gt;
This step might be removed at a later date.&lt;br /&gt;
&lt;br /&gt;
This will cause all test databases to immediately restart and load any &#039;dat&#039; file changes into dictionaries and data files and also create any new or modified pgsql functions.&lt;br /&gt;
&lt;br /&gt;
If any ~/neosys/src/dat files were edited:&lt;br /&gt;
&lt;br /&gt;
 cd ~/neosys/src&lt;br /&gt;
 &lt;br /&gt;
 ./compall dat&lt;br /&gt;
&lt;br /&gt;
and/or, if exodus/service/dat files were edited&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service/src&lt;br /&gt;
 &lt;br /&gt;
 ./compall dat&lt;br /&gt;
&lt;br /&gt;
====Copy all programs and &#039;dat&#039; files to ~/live/bin|lib|dat====&lt;br /&gt;
&lt;br /&gt;
This should only be run after testing. It will cause all live databases to automatically restart and do the same as the test databases mentioned above.&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service&lt;br /&gt;
 &lt;br /&gt;
 ./copyall CONFIRM&lt;br /&gt;
​&lt;br /&gt;
&lt;br /&gt;
==Upgrading Exodus==&lt;br /&gt;
&lt;br /&gt;
#Inform clients.&lt;br /&gt;
#*Client hosted - Schedule a planned upgrade with client.&lt;br /&gt;
#*NEOSYS hosted - Inform all clients/users of planned morning upgrade, 24hours in advanced.      (TODO: &#039;What&#039;s New in NEOSYS&#039;) AND (emailallusers.cpp)&lt;br /&gt;
#If the morning&#039;s USB backup failed, do NOT continue upgrade procedure because if upgrade fails, we need a way to roll back system to last working state.&lt;br /&gt;
#Check upgrade works on test service using:/root/neosys/upgrade.all.sh test&lt;br /&gt;
#Check the latest patch is working.&lt;br /&gt;
#Run/root/neosys/upgrade.all.sh live&lt;br /&gt;
#Inform users their system has been upgraded and they can login.&lt;br /&gt;
&lt;br /&gt;
===Roll Back Upgrade===&lt;br /&gt;
&lt;br /&gt;
If for any reason the entire upgrade needs to be reverted (excludes clients database), follow steps below:&lt;br /&gt;
&lt;br /&gt;
#Inform users that there is a problem and services need to be stopped.&lt;br /&gt;
#Stop all exodus processes.&lt;br /&gt;
#Restore the morning&#039;s USB backup by: (Note this backup contains:  source/obj code, /etc, neosys scripts but not client data)&lt;br /&gt;
##Login into container&#039;s host and rsync the morning&#039;s usb backup to the container&#039;s /:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;rsync --dry-run -avz -e &#039;ssh -p &amp;lt;C_SSHPORT&amp;gt;&#039; /backups/usb/&amp;lt;C_CODE&amp;gt; &amp;lt;C_CODE&amp;gt;:/      (Example: rsync --dry-run -avz -e &#039;ssh -p 19582&#039; /backups/usb/ad1 ad1:/&amp;lt;/pre&amp;gt;)&lt;br /&gt;
#Quick sane check, the latest git commit is not the latest git commit in the remote repo.&lt;br /&gt;
#Inform users they can login.&lt;br /&gt;
&lt;br /&gt;
==Configuring services to autostart during login==&lt;br /&gt;
&lt;br /&gt;
Create a file &#039;autostart.cfg&#039; in the data folder &lt;br /&gt;
&lt;br /&gt;
 touch /root/hosts/xxx/data/autostart.cfg&lt;br /&gt;
&lt;br /&gt;
For this to work, there must be a service running for another database in the same /data/ folder where autostart.cfg was created.&lt;br /&gt;
&lt;br /&gt;
For example, publiscreen service will autostart during login if,&lt;br /&gt;
#/root/hosts/publiscreen/data/autostart.cfg exists and&lt;br /&gt;
#publiscreen_ksa services are running&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3948</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3948"/>
		<updated>2022-01-17T12:57:22Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
===Screens===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0: /&lt;br /&gt;
    Work regarding exodus server. i.e /etc/nagios or general networking or /var/log/mail.log&lt;br /&gt;
&lt;br /&gt;
1: /root/exodus/&lt;br /&gt;
    Exodus core is installed Contains build and make libraries here ./libexodus&lt;br /&gt;
&lt;br /&gt;
2: /root/exodus/libexodus/exodus&lt;br /&gt;
    Core exodus (libraries that emulate the AREV system e.g mv.h )&lt;br /&gt;
    &lt;br /&gt;
3: /root/exodus/cli/src&lt;br /&gt;
    Exodus Command Line Interface e.g edir, edic, list, listfiles, delete, createdb&lt;br /&gt;
    &lt;br /&gt;
4: root/exodus/service&lt;br /&gt;
    EXODUS core default host directory but also contains scripts that create/manage requirements of a service (create_service, create_db, create_site, backup_db, restore_db, start, stop, status)&lt;br /&gt;
    One exception is NEOSYS www files are in ./www, which pulled from NEOSYS www git.&lt;br /&gt;
&lt;br /&gt;
5: /root/exodus/service/src&lt;br /&gt;
    Exodus core service programs (programs that are not related to NEOSYS agency operations and can be used to support other non-NEOSYS services) eg listen, usersubs, sendmail, openfile, select, sort, list,.&lt;br /&gt;
&lt;br /&gt;
    Extra info:    &lt;br /&gt;
    sql directory contains basic dictiorary files converted to sql instructions used when creating a EXODUS psql database&lt;br /&gt;
    e.g dict_voc.sql is a file that describes what to expect in certain fields of the voc file.&lt;br /&gt;
    TODO: compall currently throws few warnings. Read them and familiarise. In case new warnings appear, notify Steve.    &lt;br /&gt;
        &lt;br /&gt;
6: /root/neosys&lt;br /&gt;
    NEOSYS specific client installation management scripts e.g .doall, import_db and import_files (from AREV), ./run ./test (see below for these two commands)&lt;br /&gt;
    &lt;br /&gt;
7: /root/neosys/src&lt;br /&gt;
    NEOSYS Agency programs (see section How AREV programs are distributed in EXODUS src/*.cpp&lt;br /&gt;
    ../ has .git&lt;br /&gt;
&lt;br /&gt;
8: /root/hosts&lt;br /&gt;
    client specific files  e.g logs, images, (shared ./www -&amp;gt; root/exodus/service/www&lt;br /&gt;
&lt;br /&gt;
9: /root/exodus/test/src&lt;br /&gt;
    series of programs that test whether subroutines (specifically Exodus core libraries) work as they should eg for the var lib - &amp;quot;assert( var(&amp;quot;11111&amp;quot;).isnum());&amp;quot;&lt;br /&gt;
&lt;br /&gt;
10: bash /bin/top&lt;br /&gt;
    Monitor for NEOSYS client processes&lt;br /&gt;
    Displays customised format: sorted by total time spend and by processor time.&lt;br /&gt;
     Press &amp;quot;=&amp;quot; : to change to standard top format&lt;br /&gt;
     Press shift + w : to save format settings, replacing the old customised top format&lt;br /&gt;
     To go back to the customised format do:&lt;br /&gt;
        Press &amp;quot;o&amp;quot;&lt;br /&gt;
        Type &amp;quot;COMMAND=serve_agy&amp;quot;&lt;br /&gt;
        shift + t : this sorts by total time spent&lt;br /&gt;
        shift + p : this sorts by processor time&lt;br /&gt;
        shift + w : to save this setting and enter  &#039;y&#039; to confirm&lt;br /&gt;
&lt;br /&gt;
11: /var/log/syslog&lt;br /&gt;
     Log of NEOSYS client requests&lt;br /&gt;
&lt;br /&gt;
12: /root/exodus/service/quick&lt;br /&gt;
     Displays the last time the svr file (in /root/hosts/&amp;lt;client&amp;gt;/data/&amp;lt;dbname&amp;gt;) was updated.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Object Code/Libraries==&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
==Dictionaries==&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
==Processes==&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
==Postgres==&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debugging Exodus==&lt;br /&gt;
&lt;br /&gt;
===Debugging Live/Test services===&lt;br /&gt;
&lt;br /&gt;
./test &amp;lt;dbname&amp;gt; - execute test programs on _test database.&lt;br /&gt;
&lt;br /&gt;
./run &amp;lt;dbname&amp;gt;  - execute test programs on live database.&lt;br /&gt;
&lt;br /&gt;
===Debugging var values===&lt;br /&gt;
&lt;br /&gt;
Explanation of var flag value in gdb debug mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) p varx                                                           &lt;br /&gt;
$2 = {var_str = &amp;quot;&amp;quot;, var_int = 0, var_dbl = 0, var_typ = {flags_ = 2}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each exodus var object contains 3 variables of type string, int and double.&lt;br /&gt;
&lt;br /&gt;
All 3 may be unassigned or only the string be assigned or just the int and double e.t.&lt;br /&gt;
&lt;br /&gt;
You can tell which variable type of a var object are set based on the var&#039;s flag value.&lt;br /&gt;
&lt;br /&gt;
1 = Means the string is assigned&lt;br /&gt;
2 = Means the int is assigned&lt;br /&gt;
4 = Means the double is assigned&lt;br /&gt;
&lt;br /&gt;
Example: If the flag is 7 (1+2+4), then all types are assigned.&lt;br /&gt;
&lt;br /&gt;
==./doall==&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Using git to make changes===&lt;br /&gt;
&lt;br /&gt;
Before following steps you must have a tested updated to a program/file/script. Do not commit untested changes to avoid a messy git history of reverts.&lt;br /&gt;
&lt;br /&gt;
Update your local repo before committing to local repo using the g alias for &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check which updates/files have not yet been staged and/or committed:&lt;br /&gt;
Add your updates to the staged area:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add &amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if all the changes made need to be staged:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make a commit with a descriptive message on purpose of updates:&lt;br /&gt;
&amp;lt;pre&amp;gt;git commit -m &amp;lt;description n purpose of changes&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again use g alias:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other useful git cmds===&lt;br /&gt;
&lt;br /&gt;
Do not use this commands unless you know what WILL happen. &lt;br /&gt;
*git pull - Instead use the safe &amp;quot;git pull --ff-only&amp;quot;&lt;br /&gt;
Stick to the alias &amp;quot;g&amp;quot; which does &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*git log - display history of commits to master branch&lt;br /&gt;
*git diff - display the differences in files between working files and files in local repo.&lt;br /&gt;
*git status - display: which updated files are staged/not staged(tracked)&lt;br /&gt;
*git stash - &lt;br /&gt;
*git branch - switch to a new branch&lt;br /&gt;
*git branch &amp;lt;branchname&amp;gt; - will switch to this branch only if it exists&lt;br /&gt;
*git checkout - DESTROYS/Updates the state of local working directory with the state of the files in the local repo. (YOU WILL LOSE non staged updates)&lt;br /&gt;
*git restore &amp;lt;filename&amp;gt; - DESTROYS/Updates the file with the version in the local repo. (like with git checkout but for a specific file)&lt;br /&gt;
*git checkin - &lt;br /&gt;
*git revert &amp;lt;commitHash&amp;gt; - reverses a specific commit (use git log to get the chosen commit hash)&lt;br /&gt;
*git ..&lt;br /&gt;
&lt;br /&gt;
==Converting AREV programs to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
&lt;br /&gt;
Do in Master AREV Installation Maintenance mode: (win7)&lt;br /&gt;
&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; &lt;br /&gt;
#*ADECOMALL              *all programs   (CHECK FIRST)&lt;br /&gt;
&lt;br /&gt;
Include the option &amp;quot;(V)&amp;quot; in the command to print the C++ to a notepad, which can easily be copy and pasted.&lt;br /&gt;
&lt;br /&gt;
===Getting C++ program to Exodus Installation===&lt;br /&gt;
&lt;br /&gt;
Two methods: (use the first for one off programs)&lt;br /&gt;
&lt;br /&gt;
====Copy &amp;amp; Paste====&lt;br /&gt;
&lt;br /&gt;
Compile program and open source code in notepad&lt;br /&gt;
&lt;br /&gt;
 ADECOM &amp;lt;programname&amp;gt; (V)&lt;br /&gt;
&lt;br /&gt;
Find which directory the program belongs. e.g fin/med/job/sys e.t&lt;br /&gt;
&lt;br /&gt;
 find /cygdrive/d/exodus/pickos | grep &amp;lt;program name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If cpp in SYS, the program belongs in ~/exodus/service/src OR if in MED JOB FIN GEN AGY the program belongs in ~/neosys/src&lt;br /&gt;
&lt;br /&gt;
Copy the source code in the text file from the first command.&lt;br /&gt;
&lt;br /&gt;
In Exodus, create a new .cpp (in correct directory) and paste the source code.&lt;br /&gt;
&lt;br /&gt;
Compile &amp;amp; Test&lt;br /&gt;
&lt;br /&gt;
====Rsync====&lt;br /&gt;
&lt;br /&gt;
 /d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
&lt;br /&gt;
If cpp in MED JOB FIN GEN AGY then: *~/neosys/src&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart         #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
==Updating a pgsql function in an exodus dictionary==&lt;br /&gt;
&lt;br /&gt;
PENDING&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting postfix emailing issues==&lt;br /&gt;
&lt;br /&gt;
To view current configuration in main.cf&lt;br /&gt;
 postconf -n&lt;br /&gt;
&lt;br /&gt;
To update the value of a parameter&lt;br /&gt;
 postconf relayhost=mailout.neosys.com:2500&lt;br /&gt;
&lt;br /&gt;
To restart postfix service&lt;br /&gt;
 service postfix restart&lt;br /&gt;
&lt;br /&gt;
Send a test email using &amp;quot;mail&amp;quot; and watch the logs to verify&lt;br /&gt;
 mail &amp;lt;email&amp;gt;&lt;br /&gt;
 journalctl -f&lt;br /&gt;
&lt;br /&gt;
==Development and deployment using &#039;dat&#039; files==&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
Part of system development is the creation of various data that is neither programs nor layout i.e. not cpp, h, html, js, php files etc.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
*Dictionaries are data about data.&lt;br /&gt;
*Language files are data about text to use for various languages.&lt;br /&gt;
*“Change logs” are data about changes in the system.&lt;br /&gt;
&lt;br /&gt;
Historically, in EXODUS and NEOSYS, the above data has been deployed in exodus database files using SQL text files. However SQL files are not convenient for development.&lt;br /&gt;
&lt;br /&gt;
Therefore, &#039;dat&#039; text files will be used now so that standard development tools including editors and git can be fully exploited.&lt;br /&gt;
&lt;br /&gt;
===&#039;dat&#039; files===&lt;br /&gt;
&lt;br /&gt;
Each database file is represented by an os directory of the same name.&lt;br /&gt;
&lt;br /&gt;
Each record in the database file is represented by an os text file where filename is the primary key.&lt;br /&gt;
&lt;br /&gt;
For example a record with key &#039;&#039;&#039;DEADLINE&#039;&#039;&#039; in a dat file &#039;&#039;&#039;dict.materials&#039;&#039;&#039; would be represented as an os text file &#039;&#039;&#039;dat/dict.materials/DEADLINE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each line in the os text file represents one field in the db record. In other words, db record FM characters are represented by new line characters in &#039;dat&#039; files. Any actual new line characters required in the record, and any backslashes, are escaped and appear as &#039;\n&#039; and &#039;\\&#039; in &#039;dat&#039; files. Other database field separator characters such as VM, SM, TM and STM are stored without any conversion.&lt;br /&gt;
&lt;br /&gt;
===Location of dat files===&lt;br /&gt;
&lt;br /&gt;
The development versions are stored in exodus and neosys src/dat dirs. They form part of the standard git repositories in parallel with cpp files.&lt;br /&gt;
&lt;br /&gt;
The operational versions are stored in ~/dat and ~/live/dat alongside bin and lib dirs and are automatically installed into databases as database files on service startup. Any database functions embedded in the text files (pgsql) are also automatically installed at the same time.&lt;br /&gt;
&lt;br /&gt;
===Editing and deploying a &#039;dat&#039; file===&lt;br /&gt;
&lt;br /&gt;
It is currently a three step process to edit and deploy such &#039;dat&#039; files. &lt;br /&gt;
&lt;br /&gt;
====Edit the &#039;dat&#039; file====&lt;br /&gt;
&lt;br /&gt;
Note that EXODUS service and NEOSYS service have different src/dat folders.&lt;br /&gt;
&lt;br /&gt;
Editing language items:&lt;br /&gt;
&lt;br /&gt;
 edir dat/alanguage/SCHEDULES*ARABIC&lt;br /&gt;
&lt;br /&gt;
Editing a dictionary item:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE&lt;br /&gt;
&lt;br /&gt;
Editing a pgsql function in a dictionary:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE 8&lt;br /&gt;
&lt;br /&gt;
====Copy all &#039;dat&#039; files to ~/dat ====&lt;br /&gt;
&lt;br /&gt;
This step might be removed at a later date.&lt;br /&gt;
&lt;br /&gt;
This will cause all test databases to immediately restart and load any &#039;dat&#039; file changes into dictionaries and data files and also create any new or modified pgsql functions.&lt;br /&gt;
&lt;br /&gt;
If any ~/neosys/src/dat files were edited:&lt;br /&gt;
&lt;br /&gt;
 cd ~/neosys/src&lt;br /&gt;
 &lt;br /&gt;
 ./compall dat&lt;br /&gt;
&lt;br /&gt;
and/or, if exodus/service/dat files were edited&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service/src&lt;br /&gt;
 &lt;br /&gt;
 ./compall dat&lt;br /&gt;
&lt;br /&gt;
====Copy all programs and &#039;dat&#039; files to ~/live/bin|lib|dat====&lt;br /&gt;
&lt;br /&gt;
This should only be run after testing. It will cause all live databases to automatically restart and do the same as the test databases mentioned above.&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service&lt;br /&gt;
 &lt;br /&gt;
 ./copyall CONFIRM&lt;br /&gt;
​&lt;br /&gt;
&lt;br /&gt;
==Upgrading Exodus==&lt;br /&gt;
&lt;br /&gt;
#Inform clients.&lt;br /&gt;
#*Client hosted - Schedule a planned upgrade with client.&lt;br /&gt;
#*NEOSYS hosted - Inform all clients/users of planned morning upgrade, 24hours in advanced.      (TODO: &#039;What&#039;s New in NEOSYS&#039;) AND (emailallusers.cpp)&lt;br /&gt;
#If the morning&#039;s USB backup failed, do NOT continue upgrade procedure because if upgrade fails, we need a way to roll back system to last working state.&lt;br /&gt;
#Check upgrade works on test service using:/root/neosys/upgrade.all.sh test&lt;br /&gt;
#Check the latest patch is working.&lt;br /&gt;
#Run/root/neosys/upgrade.all.sh live&lt;br /&gt;
#Inform users their system has been upgraded and they can login.&lt;br /&gt;
&lt;br /&gt;
===Roll Back Upgrade===&lt;br /&gt;
&lt;br /&gt;
If for any reason the entire upgrade needs to be reverted (excludes clients database), follow steps below:&lt;br /&gt;
&lt;br /&gt;
#Inform users that there is a problem and services need to be stopped.&lt;br /&gt;
#Stop all exodus processes.&lt;br /&gt;
#Restore the morning&#039;s USB backup by: (Note this backup contains:  source/obj code, /etc, neosys scripts but not client data)&lt;br /&gt;
##Login into container&#039;s host and rsync the morning&#039;s usb backup to the container&#039;s /:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;rsync --dry-run -avz -e &#039;ssh -p &amp;lt;C_SSHPORT&amp;gt;&#039; /backups/usb/&amp;lt;C_CODE&amp;gt; &amp;lt;C_CODE&amp;gt;:/      (Example: rsync --dry-run -avz -e &#039;ssh -p 19582&#039; /backups/usb/ad1 ad1:/&amp;lt;/pre&amp;gt;)&lt;br /&gt;
#Quick sane check, the latest git commit is not the latest git commit in the remote repo.&lt;br /&gt;
#Inform users they can login.&lt;br /&gt;
&lt;br /&gt;
==Configuring services to autostart==&lt;br /&gt;
&lt;br /&gt;
#Create a file &#039;autostart.cfg&#039; in the data folder (Path: /root/hosts/xxx/data/)&lt;br /&gt;
#Make sure there is a service running for another database in the same /data/ folder where autostart.cfg was created.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3898</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3898"/>
		<updated>2021-12-06T07:16:01Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Development and deployment using &amp;#039;dat&amp;#039; files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCREEN NAME      STANDARD PATH                            PURPOSE&lt;br /&gt;
#ex1_root        - /root                                  - general usage &lt;br /&gt;
#exodus          - /root/exodus                           - &lt;br /&gt;
#exodus src      - /root/exodus/exodus/libexodus/exodus   - LibExodus is the core EXODUS library source files (emulating AREV CRUD)&lt;br /&gt;
#exo cli         - /root/exodus/cli/src                   - Core EXODUS program which can be executed from bash (clearfile, edir, edic, compile)&lt;br /&gt;
#service         - /root/exodus/service                   - Default working environment for EXODUS only service, including EXODUS core www and data directories. Also used to keep NEOSYS database installation scripts.&lt;br /&gt;
#ser src         - /root/exodus/service/src               -&lt;br /&gt;
#neosys          - /root/neosys                           - ./doall&lt;br /&gt;
#neo src         - /root/neosys/src                       -&lt;br /&gt;
#hosts           - /root/hosts                            -   &lt;br /&gt;
#test src        - /root/exodus/test/src                  - &lt;br /&gt;
#t10             - ~/                                     - &lt;br /&gt;
#t11             - ~/                                     - &lt;br /&gt;
#t12             - ~/                                     - &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Code/Libraries===&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
===Dictionaries===&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
===Processes===&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
===Postgres===&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===./doall===&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Using git to make changes===&lt;br /&gt;
&lt;br /&gt;
Before following steps you must have a tested updated to a program/file/script. Do not commit untested changes to avoid a messy git history of reverts.&lt;br /&gt;
&lt;br /&gt;
Update your local repo before committing to local repo using the g alias for &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check which updates/files have not yet been staged and/or committed:&lt;br /&gt;
Add your updates to the staged area:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add &amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if all the changes made need to be staged:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make a commit with a descriptive message on purpose of updates:&lt;br /&gt;
&amp;lt;pre&amp;gt;git commit -m &amp;lt;description n purpose of changes&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again use g alias:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other useful git cmds===&lt;br /&gt;
&lt;br /&gt;
Do not use this commands unless you know what WILL happen. &lt;br /&gt;
*git pull - Instead use the safe &amp;quot;git pull --ff-only&amp;quot;&lt;br /&gt;
Stick to the alias &amp;quot;g&amp;quot; which does &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*git log - display history of commits to master branch&lt;br /&gt;
*git diff - display the differences in files between working files and files in local repo.&lt;br /&gt;
*git status - display: which updated files are staged/not staged(tracked)&lt;br /&gt;
*git stash - &lt;br /&gt;
*git branch - switch to a new branch&lt;br /&gt;
*git branch &amp;lt;branchname&amp;gt; - will switch to this branch only if it exists&lt;br /&gt;
*git checkout - DESTROYS/Updates the state of local working directory with the state of the files in the local repo. (YOU WILL LOSE non staged updates)&lt;br /&gt;
*git restore &amp;lt;filename&amp;gt; - DESTROYS/Updates the file with the version in the local repo. (like with git checkout but for a specific file)&lt;br /&gt;
*git checkin - &lt;br /&gt;
*git revert &amp;lt;commitHash&amp;gt; - reverses a specific commit (use git log to get the chosen commit hash)&lt;br /&gt;
&lt;br /&gt;
==Converting AREV to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
(Do in win10a Maintenance mode)&lt;br /&gt;
&lt;br /&gt;
#Apply tested patch to win10a (master AREV Dev system)&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOMALL                          *all programs   (CHECK THIS FIRST)&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; *(CHECK IF THIS WORKS)&lt;br /&gt;
&lt;br /&gt;
===Send c++ files from win10a to nl19===&lt;br /&gt;
(Do in win10a Cygwin)&lt;br /&gt;
&lt;br /&gt;
#/d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
===Get c++ files from nl19 to exodus===&lt;br /&gt;
(Do in Exodus system)&lt;br /&gt;
&lt;br /&gt;
#If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
#If cpp in MED JOB FIN GEN AGY then: *~/neosys/src ./getpickos&lt;br /&gt;
#Compile single cpp then: c &amp;lt;programname&amp;gt; e.g &amp;quot;c monitor2&amp;quot;&lt;br /&gt;
#Compile all cpp then: ./compall (PENDING WHICH/WHERE? many compall)&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart                    #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
==Updating a pgsql function in an exodus dictionary==&lt;br /&gt;
&lt;br /&gt;
PENDING&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting postfix emailing issues==&lt;br /&gt;
&lt;br /&gt;
To view current configuration in main.cf&lt;br /&gt;
 postconf -n&lt;br /&gt;
&lt;br /&gt;
To update the value of a parameter&lt;br /&gt;
 postconf relayhost=mailout.neosys.com:2500&lt;br /&gt;
&lt;br /&gt;
To restart postfix service&lt;br /&gt;
 service postfix restart&lt;br /&gt;
&lt;br /&gt;
Send a test email using &amp;quot;mail&amp;quot; and watch the logs to verify&lt;br /&gt;
 mail &amp;lt;email&amp;gt;&lt;br /&gt;
 journalctl -f&lt;br /&gt;
&lt;br /&gt;
==Development and deployment using &#039;dat&#039; files==&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
Part of system development is the creation of various data that is neither programs nor layout i.e. not cpp, h, html, js, php files etc.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
*Dictionaries are data about data.&lt;br /&gt;
*Language files are data about text to use for various languages.&lt;br /&gt;
*“Change logs” are data about changes in the system.&lt;br /&gt;
&lt;br /&gt;
Historically, in EXODUS and NEOSYS, the above data has been deployed in exodus database files using SQL text files. However SQL files are not convenient for development.&lt;br /&gt;
&lt;br /&gt;
Therefore, &#039;dat&#039; text files will be used now so that standard development tools including editors and git can be fully exploited.&lt;br /&gt;
&lt;br /&gt;
===&#039;dat&#039; files===&lt;br /&gt;
&lt;br /&gt;
Each database file is represented by an os directory of the same name.&lt;br /&gt;
&lt;br /&gt;
Each record in the database file is represented by an os text file where filename is the primary key.&lt;br /&gt;
&lt;br /&gt;
Each line in the os text file represents one field in the db record. In other words, db record FM characters are represented by new line characters in &#039;dat&#039; files. Any actual new line characters required in the record, and any backslashes, are escaped and appear as &#039;\n&#039; and &#039;\\&#039; in &#039;dat&#039; files. Other database field separator characters such as VM, SM, TM and STM are stored without any conversion.&lt;br /&gt;
&lt;br /&gt;
The text files are automatically installed into databases as database files on service startup. Any database functions embedded in the text files, like pgsql, are also automatically installed at the same time.&lt;br /&gt;
&lt;br /&gt;
===Editing and deploying a &#039;dat&#039; file===&lt;br /&gt;
&lt;br /&gt;
It is currently a three step process to edit and deploy such &#039;dat&#039; files. &lt;br /&gt;
&lt;br /&gt;
====Edit the &#039;dat&#039; file====&lt;br /&gt;
&lt;br /&gt;
Note that EXODUS service and NEOSYS have different src/dat folders.&lt;br /&gt;
&lt;br /&gt;
Editing language items:&lt;br /&gt;
&lt;br /&gt;
 edir dat/alanguage/SCHEDULES*ARABIC&lt;br /&gt;
&lt;br /&gt;
Editing a dictionary item:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE&lt;br /&gt;
&lt;br /&gt;
Editing a pgsql function in a dictionary:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE 8&lt;br /&gt;
&lt;br /&gt;
====Install all &#039;dat&#039; files====&lt;br /&gt;
&lt;br /&gt;
This step might be removed at a later date.&lt;br /&gt;
&lt;br /&gt;
This will cause all test databases to immediately restart and load any &#039;dat&#039; file changes into dictionaries and data files and also create any new or modified pgsql functions.&lt;br /&gt;
&lt;br /&gt;
 cd ~/neosys/src &amp;amp;&amp;amp; ./compall&lt;br /&gt;
&lt;br /&gt;
or, if exodus/service/dat files were edited&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service/src &amp;amp;&amp;amp; ./compall&lt;br /&gt;
&lt;br /&gt;
====Copy all programs and &#039;dat&#039; files to live====&lt;br /&gt;
&lt;br /&gt;
This will cause all live databases to automatically restart and do the same as the test databases mentioned above.&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service &amp;amp;&amp;amp; ./copyall CONFIRM&lt;br /&gt;
​&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3897</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3897"/>
		<updated>2021-12-06T06:55:53Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCREEN NAME      STANDARD PATH                            PURPOSE&lt;br /&gt;
#ex1_root        - /root                                  - general usage &lt;br /&gt;
#exodus          - /root/exodus                           - &lt;br /&gt;
#exodus src      - /root/exodus/exodus/libexodus/exodus   - LibExodus is the core EXODUS library source files (emulating AREV CRUD)&lt;br /&gt;
#exo cli         - /root/exodus/cli/src                   - Core EXODUS program which can be executed from bash (clearfile, edir, edic, compile)&lt;br /&gt;
#service         - /root/exodus/service                   - Default working environment for EXODUS only service, including EXODUS core www and data directories. Also used to keep NEOSYS database installation scripts.&lt;br /&gt;
#ser src         - /root/exodus/service/src               -&lt;br /&gt;
#neosys          - /root/neosys                           - ./doall&lt;br /&gt;
#neo src         - /root/neosys/src                       -&lt;br /&gt;
#hosts           - /root/hosts                            -   &lt;br /&gt;
#test src        - /root/exodus/test/src                  - &lt;br /&gt;
#t10             - ~/                                     - &lt;br /&gt;
#t11             - ~/                                     - &lt;br /&gt;
#t12             - ~/                                     - &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Code/Libraries===&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
===Dictionaries===&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
===Processes===&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
===Postgres===&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===./doall===&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Using git to make changes===&lt;br /&gt;
&lt;br /&gt;
Before following steps you must have a tested updated to a program/file/script. Do not commit untested changes to avoid a messy git history of reverts.&lt;br /&gt;
&lt;br /&gt;
Update your local repo before committing to local repo using the g alias for &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check which updates/files have not yet been staged and/or committed:&lt;br /&gt;
Add your updates to the staged area:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add &amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if all the changes made need to be staged:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make a commit with a descriptive message on purpose of updates:&lt;br /&gt;
&amp;lt;pre&amp;gt;git commit -m &amp;lt;description n purpose of changes&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again use g alias:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other useful git cmds===&lt;br /&gt;
&lt;br /&gt;
Do not use this commands unless you know what WILL happen. &lt;br /&gt;
*git pull - Instead use the safe &amp;quot;git pull --ff-only&amp;quot;&lt;br /&gt;
Stick to the alias &amp;quot;g&amp;quot; which does &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*git log - display history of commits to master branch&lt;br /&gt;
*git diff - display the differences in files between working files and files in local repo.&lt;br /&gt;
*git status - display: which updated files are staged/not staged(tracked)&lt;br /&gt;
*git stash - &lt;br /&gt;
*git branch - switch to a new branch&lt;br /&gt;
*git branch &amp;lt;branchname&amp;gt; - will switch to this branch only if it exists&lt;br /&gt;
*git checkout - DESTROYS/Updates the state of local working directory with the state of the files in the local repo. (YOU WILL LOSE non staged updates)&lt;br /&gt;
*git restore &amp;lt;filename&amp;gt; - DESTROYS/Updates the file with the version in the local repo. (like with git checkout but for a specific file)&lt;br /&gt;
*git checkin - &lt;br /&gt;
*git revert &amp;lt;commitHash&amp;gt; - reverses a specific commit (use git log to get the chosen commit hash)&lt;br /&gt;
&lt;br /&gt;
==Converting AREV to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
(Do in win10a Maintenance mode)&lt;br /&gt;
&lt;br /&gt;
#Apply tested patch to win10a (master AREV Dev system)&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOMALL                          *all programs   (CHECK THIS FIRST)&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; *(CHECK IF THIS WORKS)&lt;br /&gt;
&lt;br /&gt;
===Send c++ files from win10a to nl19===&lt;br /&gt;
(Do in win10a Cygwin)&lt;br /&gt;
&lt;br /&gt;
#/d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
===Get c++ files from nl19 to exodus===&lt;br /&gt;
(Do in Exodus system)&lt;br /&gt;
&lt;br /&gt;
#If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
#If cpp in MED JOB FIN GEN AGY then: *~/neosys/src ./getpickos&lt;br /&gt;
#Compile single cpp then: c &amp;lt;programname&amp;gt; e.g &amp;quot;c monitor2&amp;quot;&lt;br /&gt;
#Compile all cpp then: ./compall (PENDING WHICH/WHERE? many compall)&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart                    #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
==Updating a pgsql function in an exodus dictionary==&lt;br /&gt;
&lt;br /&gt;
PENDING&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting postfix emailing issues==&lt;br /&gt;
&lt;br /&gt;
To view current configuration in main.cf&lt;br /&gt;
 postconf -n&lt;br /&gt;
&lt;br /&gt;
To update the value of a parameter&lt;br /&gt;
 postconf relayhost=mailout.neosys.com:2500&lt;br /&gt;
&lt;br /&gt;
To restart postfix service&lt;br /&gt;
 service postfix restart&lt;br /&gt;
&lt;br /&gt;
Send a test email using &amp;quot;mail&amp;quot; and watch the logs to verify&lt;br /&gt;
 mail &amp;lt;email&amp;gt;&lt;br /&gt;
 journalctl -f&lt;br /&gt;
&lt;br /&gt;
==Development and deployment using &#039;dat&#039; files==&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
Part of system development is the creation of various data that is neither programs nor layout i.e. not cpp, h, html, js, php files etc.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
*Dictionaries are data about data.&lt;br /&gt;
*Language files are data about text to use for various languages.&lt;br /&gt;
*“Change logs” are data about changes in the system.&lt;br /&gt;
&lt;br /&gt;
Historically in EXODUS and NEOSYS we have deployed the above data in exodus database files using SQL text files.&lt;br /&gt;
&lt;br /&gt;
However SQL files are not convenient for development.&lt;br /&gt;
&lt;br /&gt;
Therefore we will now use &#039;dat&#039; text files so that standard development tools including editors and git can be fully exploited.&lt;br /&gt;
&lt;br /&gt;
===&#039;dat&#039; files===&lt;br /&gt;
&lt;br /&gt;
Each database file is represented by an os directory of the same name.&lt;br /&gt;
&lt;br /&gt;
Each record in the database file is represented by an os text file where filename is the primary key.&lt;br /&gt;
&lt;br /&gt;
Each line in the os text file represents one field in the db record. In other words, db record FM characters are represented by new line characters in dat files. Any actual new line characters required in the record, and any backslashes, are escaped and appear as &#039;\n&#039; and &#039;\\&#039; in dat files. Other database field separator characters, VM, SM, TM and STM are stored without any conversion.&lt;br /&gt;
&lt;br /&gt;
The text files are automatically installed into databases as database files on service startup. Any database functions embedded in the text files, like pgsql, are also automatically installed at the same time.&lt;br /&gt;
&lt;br /&gt;
===Editing and deploying a &#039;dat&#039; file===&lt;br /&gt;
&lt;br /&gt;
It is currently a three step process to edit and deploy such dat files. &lt;br /&gt;
&lt;br /&gt;
====Edit the dat file====&lt;br /&gt;
&lt;br /&gt;
Note that EXODUS service and NEOSYS have different src/dat folders.&lt;br /&gt;
&lt;br /&gt;
Editing language items:&lt;br /&gt;
&lt;br /&gt;
 edir dat/alanguage/SCHEDULES*ARABIC&lt;br /&gt;
&lt;br /&gt;
Editing a dictionary item:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE&lt;br /&gt;
&lt;br /&gt;
Editing a pgsql function in a dictionary:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE 8&lt;br /&gt;
&lt;br /&gt;
====Install all dat files====&lt;br /&gt;
&lt;br /&gt;
This step might be removed at a later date.&lt;br /&gt;
&lt;br /&gt;
This will cause all test databases to immediately restart and load any dat file changes into dictionaries and data files and also create any new or modified pgsql functions.&lt;br /&gt;
&lt;br /&gt;
 cd ~/neosys/src &amp;amp;&amp;amp; ./compall&lt;br /&gt;
&lt;br /&gt;
or, if exodus/service/dat files were edited&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service/src &amp;amp;&amp;amp; ./compall&lt;br /&gt;
&lt;br /&gt;
====Copy all programs and dat files to live====&lt;br /&gt;
&lt;br /&gt;
This will cause all live databases to automatically restart and do the same as the test databases mentioned above.&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service &amp;amp;&amp;amp; ./copyall CONFIRM&lt;br /&gt;
​&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3896</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3896"/>
		<updated>2021-12-05T13:52:27Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCREEN NAME      STANDARD PATH                            PURPOSE&lt;br /&gt;
#ex1_root        - /root                                  - general usage &lt;br /&gt;
#exodus          - /root/exodus                           - &lt;br /&gt;
#exodus src      - /root/exodus/exodus/libexodus/exodus   - LibExodus is the core EXODUS library source files (emulating AREV CRUD)&lt;br /&gt;
#exo cli         - /root/exodus/cli/src                   - Core EXODUS program which can be executed from bash (clearfile, edir, edic, compile)&lt;br /&gt;
#service         - /root/exodus/service                   - Default working environment for EXODUS only service, including EXODUS core www and data directories. Also used to keep NEOSYS database installation scripts.&lt;br /&gt;
#ser src         - /root/exodus/service/src               -&lt;br /&gt;
#neosys          - /root/neosys                           - ./doall&lt;br /&gt;
#neo src         - /root/neosys/src                       -&lt;br /&gt;
#hosts           - /root/hosts                            -   &lt;br /&gt;
#test src        - /root/exodus/test/src                  - &lt;br /&gt;
#t10             - ~/                                     - &lt;br /&gt;
#t11             - ~/                                     - &lt;br /&gt;
#t12             - ~/                                     - &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Code/Libraries===&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
===Dictionaries===&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
===Processes===&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
===Postgres===&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===./doall===&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Using git to make changes===&lt;br /&gt;
&lt;br /&gt;
Before following steps you must have a tested updated to a program/file/script. Do not commit untested changes to avoid a messy git history of reverts.&lt;br /&gt;
&lt;br /&gt;
Update your local repo before committing to local repo using the g alias for &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check which updates/files have not yet been staged and/or committed:&lt;br /&gt;
Add your updates to the staged area:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add &amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if all the changes made need to be staged:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make a commit with a descriptive message on purpose of updates:&lt;br /&gt;
&amp;lt;pre&amp;gt;git commit -m &amp;lt;description n purpose of changes&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again use g alias:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other useful git cmds===&lt;br /&gt;
&lt;br /&gt;
Do not use this commands unless you know what WILL happen. &lt;br /&gt;
*git pull - Instead use the safe &amp;quot;git pull --ff-only&amp;quot;&lt;br /&gt;
Stick to the alias &amp;quot;g&amp;quot; which does &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*git log - display history of commits to master branch&lt;br /&gt;
*git diff - display the differences in files between working files and files in local repo.&lt;br /&gt;
*git status - display: which updated files are staged/not staged(tracked)&lt;br /&gt;
*git stash - &lt;br /&gt;
*git branch - switch to a new branch&lt;br /&gt;
*git branch &amp;lt;branchname&amp;gt; - will switch to this branch only if it exists&lt;br /&gt;
*git checkout - DESTROYS/Updates the state of local working directory with the state of the files in the local repo. (YOU WILL LOSE non staged updates)&lt;br /&gt;
*git restore &amp;lt;filename&amp;gt; - DESTROYS/Updates the file with the version in the local repo. (like with git checkout but for a specific file)&lt;br /&gt;
*git checkin - &lt;br /&gt;
*git revert &amp;lt;commitHash&amp;gt; - reverses a specific commit (use git log to get the chosen commit hash)&lt;br /&gt;
&lt;br /&gt;
==Converting AREV to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
(Do in win10a Maintenance mode)&lt;br /&gt;
&lt;br /&gt;
#Apply tested patch to win10a (master AREV Dev system)&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOMALL                          *all programs   (CHECK THIS FIRST)&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; *(CHECK IF THIS WORKS)&lt;br /&gt;
&lt;br /&gt;
===Send c++ files from win10a to nl19===&lt;br /&gt;
(Do in win10a Cygwin)&lt;br /&gt;
&lt;br /&gt;
#/d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
===Get c++ files from nl19 to exodus===&lt;br /&gt;
(Do in Exodus system)&lt;br /&gt;
&lt;br /&gt;
#If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
#If cpp in MED JOB FIN GEN AGY then: *~/neosys/src ./getpickos&lt;br /&gt;
#Compile single cpp then: c &amp;lt;programname&amp;gt; e.g &amp;quot;c monitor2&amp;quot;&lt;br /&gt;
#Compile all cpp then: ./compall (PENDING WHICH/WHERE? many compall)&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart                    #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
==Updating a pgsql function in an exodus dictionary==&lt;br /&gt;
&lt;br /&gt;
PENDING&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting postfix emailing issues==&lt;br /&gt;
&lt;br /&gt;
To view current configuration in main.cf&lt;br /&gt;
 postconf -n&lt;br /&gt;
&lt;br /&gt;
To update the value of a parameter&lt;br /&gt;
 postconf relayhost=mailout.neosys.com:2500&lt;br /&gt;
&lt;br /&gt;
To restart postfix service&lt;br /&gt;
 service postfix restart&lt;br /&gt;
&lt;br /&gt;
Send a test email using &amp;quot;mail&amp;quot; and watch the logs to verify&lt;br /&gt;
 mail &amp;lt;email&amp;gt;&lt;br /&gt;
 journalctl -f&lt;br /&gt;
&lt;br /&gt;
==Development and deployment using &#039;dat&#039; files==&lt;br /&gt;
&lt;br /&gt;
===Rationale===&lt;br /&gt;
&lt;br /&gt;
Part of system development is the creation of various data that is neither programs nor layout i.e. not cpp, h, html, js, php files etc.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
*Dictionaries are data about data.&lt;br /&gt;
*Language files are data about text to use for various languages.&lt;br /&gt;
*“Change logs” are data about changes in the system.&lt;br /&gt;
&lt;br /&gt;
Historically in EXODUS and NEOSYS we have deployed the above data in exodus database files using SQL text files.&lt;br /&gt;
&lt;br /&gt;
However SQL files are not convenient for development.&lt;br /&gt;
&lt;br /&gt;
Therefore we will now use &#039;dat&#039; text files so that standard development tools including editors and git can be fully exploited.&lt;br /&gt;
&lt;br /&gt;
===&#039;dat&#039; files===&lt;br /&gt;
&lt;br /&gt;
Each database file is represented by an os directory of the same name.&lt;br /&gt;
&lt;br /&gt;
Each record in the database file is represented by an os text file where filename is the primary key.&lt;br /&gt;
&lt;br /&gt;
Each line in the os text file represents one field in the db record. In other words, db record FM characters are represented by new line characters in dat files. Any actual new line characters required in the record, and any backslashes, are escaped and appear as &#039;\n&#039; and &#039;\\&#039; in dat files. Other database field separator characters, VM, SM, TM and STM are stored without any conversion.&lt;br /&gt;
&lt;br /&gt;
The text files are automatically installed into databases as database files on service startup. Any database functions embedded in the text files, like pgsql, are also automatically installed at the same time.&lt;br /&gt;
&lt;br /&gt;
===Editing and deploying a &#039;dat&#039; file===&lt;br /&gt;
&lt;br /&gt;
It is currently a three step process to edit and deploy such dat files. &lt;br /&gt;
&lt;br /&gt;
Edit the dat file. Note that EXODUS service and NEOSYS have different src/dat folders.&lt;br /&gt;
&lt;br /&gt;
Editing language items:&lt;br /&gt;
&lt;br /&gt;
 edir dat/alanguage/SCHEDULES*ARABIC&lt;br /&gt;
&lt;br /&gt;
Editing a dictionary item:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE&lt;br /&gt;
&lt;br /&gt;
Editing a pgsql function in a dictionary:&lt;br /&gt;
&lt;br /&gt;
 edir dat/dict.materials/DEADLINE 8&lt;br /&gt;
&lt;br /&gt;
Install all dat files. This step might be removed at a later date.&lt;br /&gt;
&lt;br /&gt;
This will cause all test databases to immediately restart and load any dat file changes into dictionaries and data files and also create any new or modified pgsql functions.&lt;br /&gt;
&lt;br /&gt;
 cd ~/neosys/src &amp;amp;&amp;amp; ./compall&lt;br /&gt;
&lt;br /&gt;
or, if exodus/service/dat files were edited&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service/src &amp;amp;&amp;amp; ./compall&lt;br /&gt;
&lt;br /&gt;
Copy all programs and dat files to live. This will cause all live databases to automatically restart and do the same as the test databases mentioned above.&lt;br /&gt;
&lt;br /&gt;
 cd ~/exodus/service &amp;amp;&amp;amp; ./copyall CONFIRM&lt;br /&gt;
​&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3895</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3895"/>
		<updated>2021-12-05T13:14:32Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCREEN NAME      STANDARD PATH                            PURPOSE&lt;br /&gt;
#ex1_root        - /root                                  - general usage &lt;br /&gt;
#exodus          - /root/exodus                           - &lt;br /&gt;
#exodus src      - /root/exodus/exodus/libexodus/exodus   - LibExodus is the core EXODUS library source files (emulating AREV CRUD)&lt;br /&gt;
#exo cli         - /root/exodus/cli/src                   - Core EXODUS program which can be executed from bash (clearfile, edir, edic, compile)&lt;br /&gt;
#service         - /root/exodus/service                   - Default working environment for EXODUS only service, including EXODUS core www and data directories. Also used to keep NEOSYS database installation scripts.&lt;br /&gt;
#ser src         - /root/exodus/service/src               -&lt;br /&gt;
#neosys          - /root/neosys                           - ./doall&lt;br /&gt;
#neo src         - /root/neosys/src                       -&lt;br /&gt;
#hosts           - /root/hosts                            -   &lt;br /&gt;
#test src        - /root/exodus/test/src                  - &lt;br /&gt;
#t10             - ~/                                     - &lt;br /&gt;
#t11             - ~/                                     - &lt;br /&gt;
#t12             - ~/                                     - &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Code/Libraries===&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
===Dictionaries===&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
===Processes===&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
===Postgres===&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===./doall===&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Using git to make changes===&lt;br /&gt;
&lt;br /&gt;
Before following steps you must have a tested updated to a program/file/script. Do not commit untested changes to avoid a messy git history of reverts.&lt;br /&gt;
&lt;br /&gt;
Update your local repo before committing to local repo using the g alias for &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Check which updates/files have not yet been staged and/or committed:&lt;br /&gt;
Add your updates to the staged area:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add &amp;lt;filename&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if all the changes made need to be staged:&lt;br /&gt;
&amp;lt;pre&amp;gt;git add -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make a commit with a descriptive message on purpose of updates:&lt;br /&gt;
&amp;lt;pre&amp;gt;git commit -m &amp;lt;description n purpose of changes&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Again use g alias:&lt;br /&gt;
&amp;lt;pre&amp;gt;g&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other useful git cmds===&lt;br /&gt;
&lt;br /&gt;
Do not use this commands unless you know what WILL happen. &lt;br /&gt;
*git pull - Instead use the safe &amp;quot;git pull --ff-only&amp;quot;&lt;br /&gt;
Stick to the alias &amp;quot;g&amp;quot; which does &amp;quot;git pull --ff-only ; git push &amp;amp;&amp;amp; git status&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*git log - display history of commits to master branch&lt;br /&gt;
*git diff - display the differences in files between working files and files in local repo.&lt;br /&gt;
*git status - display: which updated files are staged/not staged(tracked)&lt;br /&gt;
*git stash - &lt;br /&gt;
*git branch - switch to a new branch&lt;br /&gt;
*git branch &amp;lt;branchname&amp;gt; - will switch to this branch only if it exists&lt;br /&gt;
*git checkout - DESTROYS/Updates the state of local working directory with the state of the files in the local repo. (YOU WILL LOSE non staged updates)&lt;br /&gt;
*git restore &amp;lt;filename&amp;gt; - DESTROYS/Updates the file with the version in the local repo. (like with git checkout but for a specific file)&lt;br /&gt;
*git checkin - &lt;br /&gt;
*git revert &amp;lt;commitHash&amp;gt; - reverses a specific commit (use git log to get the chosen commit hash)&lt;br /&gt;
&lt;br /&gt;
==Converting AREV to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
(Do in win10a Maintenance mode)&lt;br /&gt;
&lt;br /&gt;
#Apply tested patch to win10a (master AREV Dev system)&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOMALL                          *all programs   (CHECK THIS FIRST)&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; *(CHECK IF THIS WORKS)&lt;br /&gt;
&lt;br /&gt;
===Send c++ files from win10a to nl19===&lt;br /&gt;
(Do in win10a Cygwin)&lt;br /&gt;
&lt;br /&gt;
#/d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
===Get c++ files from nl19 to exodus===&lt;br /&gt;
(Do in Exodus system)&lt;br /&gt;
&lt;br /&gt;
#If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
#If cpp in MED JOB FIN GEN AGY then: *~/neosys/src ./getpickos&lt;br /&gt;
#Compile single cpp then: c &amp;lt;programname&amp;gt; e.g &amp;quot;c monitor2&amp;quot;&lt;br /&gt;
#Compile all cpp then: ./compall (PENDING WHICH/WHERE? many compall)&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart                    #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
==Updating a pgsql function in an exodus dictionary==&lt;br /&gt;
&lt;br /&gt;
PENDING&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting postfix emailing issues==&lt;br /&gt;
&lt;br /&gt;
To view current configuration in main.cf&lt;br /&gt;
 postconf -n&lt;br /&gt;
&lt;br /&gt;
To update the value of a parameter&lt;br /&gt;
 postconf relayhost=mailout.neosys.com:2500&lt;br /&gt;
&lt;br /&gt;
To restart postfix service&lt;br /&gt;
 service postfix restart&lt;br /&gt;
&lt;br /&gt;
Send a test email using &amp;quot;mail&amp;quot; and watch the logs to verify&lt;br /&gt;
 mail &amp;lt;email&amp;gt;&lt;br /&gt;
 journalctl -f&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3887</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3887"/>
		<updated>2021-11-08T06:10:51Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Applying changes to files that exist per database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCREEN NAME      STANDARD PATH                            PURPOSE&lt;br /&gt;
#ex1_root        - /root                                  - general usage &lt;br /&gt;
#exodus          - /root/exodus                           - &lt;br /&gt;
#exodus src      - /root/exodus/exodus/libexodus/exodus   - LibExodus is the core EXODUS library source files (emulating AREV CRUD)&lt;br /&gt;
#exo cli         - /root/exodus/cli/src                   - Core EXODUS program which can be executed from bash (clearfile, edir, edic, compile)&lt;br /&gt;
#service         - /root/exodus/service                   - Default working environment for EXODUS only service, including EXODUS core www and data directories. Also used to keep NEOSYS database installation scripts.&lt;br /&gt;
#ser src         - /root/exodus/service/src               -&lt;br /&gt;
#neosys          - /root/neosys                           - ./doall&lt;br /&gt;
#neo src         - /root/neosys/src                       -&lt;br /&gt;
#hosts           - /root/hosts                            -   &lt;br /&gt;
#test src        - /root/exodus/test/src                  - &lt;br /&gt;
#t10             - ~/                                     - &lt;br /&gt;
#t11             - ~/                                     - &lt;br /&gt;
#t12             - ~/                                     - &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Code/Libraries===&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
===Dictionaries===&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
===Processes===&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
===Postgres===&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===./doall===&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, each repo has three main branches &lt;br /&gt;
&lt;br /&gt;
* master - not used &lt;br /&gt;
* 21.08 - live on ex1 &lt;br /&gt;
* dev - the development branch &lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, ex1b is a clone of ex1 but used as the development environment. &lt;br /&gt;
In order to use ex1b as development environment the ex1b has to be rebuilt every morning to get the development branch working otherwise it is a pure clone  of ex1 except disabled that is usually done early in the morning and may be automated in future using ~/neosys/onboot.sh there is no issue running all processes on ex1b actually since even live process emails to users are all deflected to sysmsg ie neosys to rebuild as the development branch in ex1b&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bold&amp;gt;DONT DO THIS IN ex1!!!!!!!!!!!!&amp;lt;/bold&amp;gt;&lt;br /&gt;
#in ~/neosys screen 6&lt;br /&gt;
#git stash &amp;amp;&amp;amp; git pull &amp;amp;&amp;amp; git switch dev&lt;br /&gt;
#./reinstall dev dev o-&lt;br /&gt;
#./reinstall first switches exodus to its dev branch and rebuilds it&lt;br /&gt;
&lt;br /&gt;
===Git commands===&lt;br /&gt;
&lt;br /&gt;
#Show log of commits (inc commit ID/msg)&lt;br /&gt;
 git log&lt;br /&gt;
#Show changes of a particular commit&lt;br /&gt;
Identify commit of interest and copy first 6 char of its ID. (use git log)&lt;br /&gt;
 git show &amp;lt;ID&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Converting AREV to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
(Do in win10a Maintenance mode)&lt;br /&gt;
&lt;br /&gt;
#Apply tested patch to win10a (master AREV Dev system)&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOMALL                          *all programs   (CHECK THIS FIRST)&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; *(CHECK IF THIS WORKS)&lt;br /&gt;
&lt;br /&gt;
===Send c++ files from win10a to nl19===&lt;br /&gt;
(Do in win10a Cygwin)&lt;br /&gt;
&lt;br /&gt;
#/d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
===Get c++ files from nl19 to exodus===&lt;br /&gt;
(Do in Exodus system)&lt;br /&gt;
&lt;br /&gt;
#If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
#If cpp in MED JOB FIN GEN AGY then: *~/neosys/src ./getpickos&lt;br /&gt;
#Compile single cpp then: c &amp;lt;programname&amp;gt; e.g &amp;quot;c monitor2&amp;quot;&lt;br /&gt;
#Compile all cpp then: ./compall (PENDING WHICH/WHERE? many compall)&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart                    #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applying changes to files that exist per database==&lt;br /&gt;
&lt;br /&gt;
Some files have a version of itself per client database in postgres, e.g. ALANGUAGE.&lt;br /&gt;
&lt;br /&gt;
Editing this file for one database will affect that specific database only.&lt;br /&gt;
&lt;br /&gt;
Below example shows how to edit the file for one database and then apply the changes to other databases:&lt;br /&gt;
&lt;br /&gt;
Case: Edited ALANGUAGE file in one db and applying it to another db&lt;br /&gt;
&lt;br /&gt;
#Update the file for a specific database &amp;lt;pre&amp;gt;EXO_DATA=&amp;lt;DB_NAME&amp;gt; edir ALANGUAGE COSTESTIMATES*ARABIC&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Save the file for use in future or other databases &amp;lt;pre&amp;gt;sudo -u postgres pg_dump &amp;lt;DB_NAME&amp;gt; -t ALANGUAGE -c &amp;gt; ~/neosys/src/sql/alanguage.sql &amp;lt;/pre&amp;gt;&lt;br /&gt;
#Apply changes to specific database or across all databases&lt;br /&gt;
#*Load the file into the database where you want to apply the fix &amp;lt;pre&amp;gt;cat ~/neosys/src/sql/alanguage.sql | sudo -u postgres psql &amp;lt;TARGET_DB_NAME&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
#*If applying to all databases, use the below command &amp;lt;pre&amp;gt;./doall all bash &amp;quot;cat ~/neosys/src/sql/alanguage.sql | sudo -u postgres psql \$EXO_DATA&amp;quot; &amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3886</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3886"/>
		<updated>2021-11-08T06:08:14Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Applying changes to files that exist per database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCREEN NAME      STANDARD PATH                            PURPOSE&lt;br /&gt;
#ex1_root        - /root                                  - general usage &lt;br /&gt;
#exodus          - /root/exodus                           - &lt;br /&gt;
#exodus src      - /root/exodus/exodus/libexodus/exodus   - LibExodus is the core EXODUS library source files (emulating AREV CRUD)&lt;br /&gt;
#exo cli         - /root/exodus/cli/src                   - Core EXODUS program which can be executed from bash (clearfile, edir, edic, compile)&lt;br /&gt;
#service         - /root/exodus/service                   - Default working environment for EXODUS only service, including EXODUS core www and data directories. Also used to keep NEOSYS database installation scripts.&lt;br /&gt;
#ser src         - /root/exodus/service/src               -&lt;br /&gt;
#neosys          - /root/neosys                           - ./doall&lt;br /&gt;
#neo src         - /root/neosys/src                       -&lt;br /&gt;
#hosts           - /root/hosts                            -   &lt;br /&gt;
#test src        - /root/exodus/test/src                  - &lt;br /&gt;
#t10             - ~/                                     - &lt;br /&gt;
#t11             - ~/                                     - &lt;br /&gt;
#t12             - ~/                                     - &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Code/Libraries===&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
===Dictionaries===&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
===Processes===&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
===Postgres===&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===./doall===&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, each repo has three main branches &lt;br /&gt;
&lt;br /&gt;
* master - not used &lt;br /&gt;
* 21.08 - live on ex1 &lt;br /&gt;
* dev - the development branch &lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, ex1b is a clone of ex1 but used as the development environment. &lt;br /&gt;
In order to use ex1b as development environment the ex1b has to be rebuilt every morning to get the development branch working otherwise it is a pure clone  of ex1 except disabled that is usually done early in the morning and may be automated in future using ~/neosys/onboot.sh there is no issue running all processes on ex1b actually since even live process emails to users are all deflected to sysmsg ie neosys to rebuild as the development branch in ex1b&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bold&amp;gt;DONT DO THIS IN ex1!!!!!!!!!!!!&amp;lt;/bold&amp;gt;&lt;br /&gt;
#in ~/neosys screen 6&lt;br /&gt;
#git stash &amp;amp;&amp;amp; git pull &amp;amp;&amp;amp; git switch dev&lt;br /&gt;
#./reinstall dev dev o-&lt;br /&gt;
#./reinstall first switches exodus to its dev branch and rebuilds it&lt;br /&gt;
&lt;br /&gt;
===Git commands===&lt;br /&gt;
&lt;br /&gt;
#Show log of commits (inc commit ID/msg)&lt;br /&gt;
 git log&lt;br /&gt;
#Show changes of a particular commit&lt;br /&gt;
Identify commit of interest and copy first 6 char of its ID. (use git log)&lt;br /&gt;
 git show &amp;lt;ID&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Converting AREV to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
(Do in win10a Maintenance mode)&lt;br /&gt;
&lt;br /&gt;
#Apply tested patch to win10a (master AREV Dev system)&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOMALL                          *all programs   (CHECK THIS FIRST)&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; *(CHECK IF THIS WORKS)&lt;br /&gt;
&lt;br /&gt;
===Send c++ files from win10a to nl19===&lt;br /&gt;
(Do in win10a Cygwin)&lt;br /&gt;
&lt;br /&gt;
#/d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
===Get c++ files from nl19 to exodus===&lt;br /&gt;
(Do in Exodus system)&lt;br /&gt;
&lt;br /&gt;
#If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
#If cpp in MED JOB FIN GEN AGY then: *~/neosys/src ./getpickos&lt;br /&gt;
#Compile single cpp then: c &amp;lt;programname&amp;gt; e.g &amp;quot;c monitor2&amp;quot;&lt;br /&gt;
#Compile all cpp then: ./compall (PENDING WHICH/WHERE? many compall)&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart                    #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applying changes to files that exist per database==&lt;br /&gt;
&lt;br /&gt;
Some files have a version of itself per client database in postgres, e.g. ALANGUAGE.&lt;br /&gt;
&lt;br /&gt;
Editing this file for one database will affect that specific database only.&lt;br /&gt;
&lt;br /&gt;
Below example shows how to edit the file for one database and then apply the changes to other databases:&lt;br /&gt;
&lt;br /&gt;
Case: Edited ALANGUAGE file in one db and applying it to another db&lt;br /&gt;
&lt;br /&gt;
#Update the file for a specific database &amp;lt;pre&amp;gt;EXO_DATA=&amp;lt;DB_NAME&amp;gt; edir ALANGUAGE COSTESTIMATES*ARABIC&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Save the file for use in future or other databases &amp;lt;pre&amp;gt;sudo -u postgres pg_dump &amp;lt;DB_NAME&amp;gt; -t ALANGUAGE -c &amp;gt; ~/neosys/src/sql/alanguage.sql &amp;lt;/pre&amp;gt;&lt;br /&gt;
#Load the file into the database where you want to apply the fix &amp;lt;pre&amp;gt;cat ~/neosys/src/sql/alanguage.sql | sudo -u postgres psql &amp;lt;NEXT_DB_NAME&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
#If applying to all databases, use the below command &amp;lt;pre&amp;gt;./doall all bash &amp;quot;cat ~/neosys/src/sql/alanguage.sql | sudo -u postgres psql \$EXO_DATA&amp;quot; &amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3884</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3884"/>
		<updated>2021-10-27T13:12:14Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCREEN NAME      STANDARD PATH                            PURPOSE&lt;br /&gt;
#ex1_root        - /root                                  - general usage &lt;br /&gt;
#exodus          - /root/exodus                           - &lt;br /&gt;
#exodus src      - /root/exodus/exodus/libexodus/exodus   - LibExodus is the core EXODUS library source files (emulating AREV CRUD)&lt;br /&gt;
#exo cli         - /root/exodus/cli/src                   - Core EXODUS program which can be executed from bash (clearfile, edir, edic, compile)&lt;br /&gt;
#service         - /root/exodus/service                   - Default working environment for EXODUS only service, including EXODUS core www and data directories. Also used to keep NEOSYS database installation scripts.&lt;br /&gt;
#ser src         - /root/exodus/service/src               -&lt;br /&gt;
#neosys          - /root/neosys                           - ./doall&lt;br /&gt;
#neo src         - /root/neosys/src                       -&lt;br /&gt;
#hosts           - /root/hosts                            -   &lt;br /&gt;
#test src        - /root/exodus/test/src                  - &lt;br /&gt;
#t10             - ~/                                     - &lt;br /&gt;
#t11             - ~/                                     - &lt;br /&gt;
#t12             - ~/                                     - &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Code/Libraries===&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
===Dictionaries===&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
===Processes===&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
===Postgres===&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===./doall===&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, each repo has three main branches &lt;br /&gt;
&lt;br /&gt;
* master - not used &lt;br /&gt;
* 21.08 - live on ex1 &lt;br /&gt;
* dev - the development branch &lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, ex1b is a clone of ex1 but used as the development environment. &lt;br /&gt;
In order to use ex1b as development environment the ex1b has to be rebuilt every morning to get the development branch working otherwise it is a pure clone  of ex1 except disabled that is usually done early in the morning and may be automated in future using ~/neosys/onboot.sh there is no issue running all processes on ex1b actually since even live process emails to users are all deflected to sysmsg ie neosys to rebuild as the development branch in ex1b&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bold&amp;gt;DONT DO THIS IN ex1!!!!!!!!!!!!&amp;lt;/bold&amp;gt;&lt;br /&gt;
#in ~/neosys screen 6&lt;br /&gt;
#git stash &amp;amp;&amp;amp; git pull &amp;amp;&amp;amp; git switch dev&lt;br /&gt;
#./reinstall dev dev o-&lt;br /&gt;
#./reinstall first switches exodus to its dev branch and rebuilds it&lt;br /&gt;
&lt;br /&gt;
===Git commands===&lt;br /&gt;
&lt;br /&gt;
#Show log of commits (inc commit ID/msg)&lt;br /&gt;
 git log&lt;br /&gt;
#Show changes of a particular commit&lt;br /&gt;
Identify commit of interest and copy first 6 char of its ID. (use git log)&lt;br /&gt;
 git show &amp;lt;ID&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Converting AREV to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
(Do in win10a Maintenance mode)&lt;br /&gt;
&lt;br /&gt;
#Apply tested patch to win10a (master AREV Dev system)&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOMALL                          *all programs   (CHECK THIS FIRST)&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; *(CHECK IF THIS WORKS)&lt;br /&gt;
&lt;br /&gt;
===Send c++ files from win10a to nl19===&lt;br /&gt;
(Do in win10a Cygwin)&lt;br /&gt;
&lt;br /&gt;
#/d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
===Get c++ files from nl19 to exodus===&lt;br /&gt;
(Do in Exodus system)&lt;br /&gt;
&lt;br /&gt;
#If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
#If cpp in MED JOB FIN GEN AGY then: *~/neosys/src ./getpickos&lt;br /&gt;
#Compile single cpp then: c &amp;lt;programname&amp;gt; e.g &amp;quot;c monitor2&amp;quot;&lt;br /&gt;
#Compile all cpp then: ./compall (PENDING WHICH/WHERE? many compall)&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart                    #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applying changes to files which exist per database==&lt;br /&gt;
&lt;br /&gt;
Some files have a version of itself per client db in postgres, for example, ALANGUAGE.&lt;br /&gt;
&lt;br /&gt;
Editing this file would affect the specific database only. To apply changes per database, please look at the below example.&lt;br /&gt;
&lt;br /&gt;
Case: Edited ALANGUAGE file in one db and applying it to another db&lt;br /&gt;
&lt;br /&gt;
#Update the file for a specific database &amp;lt;pre&amp;gt;EXO_DATA=&amp;lt;DB_NAME&amp;gt; edir ALANGUAGE COSTESTIMATES*ARABIC&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Save the file for use in future or other databases &amp;lt;pre&amp;gt;sudo -u postgres pg_dump &amp;lt;DB_NAME&amp;gt; -t ALANGUAGE -c &amp;gt; ~/neosys/src/sql/alanguage.sql &amp;lt;/pre&amp;gt;&lt;br /&gt;
#Load the file into the database where you want to apply the fix &amp;lt;pre&amp;gt;cat ~/neosys/src/sql/alanguage.sql | sudo -u postgres psql &amp;lt;NEXT_DB_NAME&amp;gt; &amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3883</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3883"/>
		<updated>2021-10-27T13:01:44Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCREEN NAME      STANDARD PATH                            PURPOSE&lt;br /&gt;
#ex1_root        - /root                                  - general usage &lt;br /&gt;
#exodus          - /root/exodus                           - &lt;br /&gt;
#exodus src      - /root/exodus/exodus/libexodus/exodus   - LibExodus is the core EXODUS library source files (emulating AREV CRUD)&lt;br /&gt;
#exo cli         - /root/exodus/cli/src                   - Core EXODUS program which can be executed from bash (clearfile, edir, edic, compile)&lt;br /&gt;
#service         - /root/exodus/service                   - Default working environment for EXODUS only service, including EXODUS core www and data directories. Also used to keep NEOSYS database installation scripts.&lt;br /&gt;
#ser src         - /root/exodus/service/src               -&lt;br /&gt;
#neosys          - /root/neosys                           - ./doall&lt;br /&gt;
#neo src         - /root/neosys/src                       -&lt;br /&gt;
#hosts           - /root/hosts                            -   &lt;br /&gt;
#test src        - /root/exodus/test/src                  - &lt;br /&gt;
#t10             - ~/                                     - &lt;br /&gt;
#t11             - ~/                                     - &lt;br /&gt;
#t12             - ~/                                     - &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Code/Libraries===&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
===Dictionaries===&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
===Processes===&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
===Postgres===&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===./doall===&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, each repo has three main branches &lt;br /&gt;
&lt;br /&gt;
* master - not used &lt;br /&gt;
* 21.08 - live on ex1 &lt;br /&gt;
* dev - the development branch &lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, ex1b is a clone of ex1 but used as the development environment. &lt;br /&gt;
In order to use ex1b as development environment the ex1b has to be rebuilt every morning to get the development branch working otherwise it is a pure clone  of ex1 except disabled that is usually done early in the morning and may be automated in future using ~/neosys/onboot.sh there is no issue running all processes on ex1b actually since even live process emails to users are all deflected to sysmsg ie neosys to rebuild as the development branch in ex1b&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bold&amp;gt;DONT DO THIS IN ex1!!!!!!!!!!!!&amp;lt;/bold&amp;gt;&lt;br /&gt;
#in ~/neosys screen 6&lt;br /&gt;
#git stash &amp;amp;&amp;amp; git pull &amp;amp;&amp;amp; git switch dev&lt;br /&gt;
#./reinstall dev dev o-&lt;br /&gt;
#./reinstall first switches exodus to its dev branch and rebuilds it&lt;br /&gt;
&lt;br /&gt;
===Git commands===&lt;br /&gt;
&lt;br /&gt;
#Show log of commits (inc commit ID/msg)&lt;br /&gt;
 git log&lt;br /&gt;
#Show changes of a particular commit&lt;br /&gt;
Identify commit of interest and copy first 6 char of its ID. (use git log)&lt;br /&gt;
 git show &amp;lt;ID&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Converting AREV to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
(Do in win10a Maintenance mode)&lt;br /&gt;
&lt;br /&gt;
#Apply tested patch to win10a (master AREV Dev system)&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOMALL                          *all programs   (CHECK THIS FIRST)&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; *(CHECK IF THIS WORKS)&lt;br /&gt;
&lt;br /&gt;
===Send c++ files from win10a to nl19===&lt;br /&gt;
(Do in win10a Cygwin)&lt;br /&gt;
&lt;br /&gt;
#/d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
===Get c++ files from nl19 to exodus===&lt;br /&gt;
(Do in Exodus system)&lt;br /&gt;
&lt;br /&gt;
#If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
#If cpp in MED JOB FIN GEN AGY then: *~/neosys/src ./getpickos&lt;br /&gt;
#Compile single cpp then: c &amp;lt;programname&amp;gt; e.g &amp;quot;c monitor2&amp;quot;&lt;br /&gt;
#Compile all cpp then: ./compall (PENDING WHICH/WHERE? many compall)&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart                    #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applying changes to files which exist per database==&lt;br /&gt;
&lt;br /&gt;
Some files have a version of itself per client db in postgres, for example, ALANGUAGE.&lt;br /&gt;
&lt;br /&gt;
Editing this file would affect the specific database only. To apply changes per database, please look at the below example.&lt;br /&gt;
&lt;br /&gt;
Case: Edited ALANGUAGE file in one db and applying it to another db&lt;br /&gt;
&lt;br /&gt;
#Update the file for a specific database&lt;br /&gt;
    export EXO_DATA=test&lt;br /&gt;
    edir ALANGUAGE COSTESTIMATES*ARABIC&lt;br /&gt;
#Save the file for use in future or other databases&lt;br /&gt;
    sudo -u postgres pg_dump &amp;lt;DB_NAME&amp;gt; -t ALANGUAGE -c &amp;gt; ~/neosys/src/sql/alanguage.sql&lt;br /&gt;
#Load the file into the database where you want to apply the fix&lt;br /&gt;
    cat ~/neosys/src/sql/alanguage.sql | sudo -u postgres psql &amp;lt;DB_NAME&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3882</id>
		<title>EXODUS Knowledge</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=EXODUS_Knowledge&amp;diff=3882"/>
		<updated>2021-10-27T13:00:48Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TMUX Screens==&lt;br /&gt;
&lt;br /&gt;
To create the EXODUS maintenance/programming environment&lt;br /&gt;
 exodus#: ./tmux.exodus&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SCREEN NAME      STANDARD PATH                            PURPOSE&lt;br /&gt;
#ex1_root        - /root                                  - general usage &lt;br /&gt;
#exodus          - /root/exodus                           - &lt;br /&gt;
#exodus src      - /root/exodus/exodus/libexodus/exodus   - LibExodus is the core EXODUS library source files (emulating AREV CRUD)&lt;br /&gt;
#exo cli         - /root/exodus/cli/src                   - Core EXODUS program which can be executed from bash (clearfile, edir, edic, compile)&lt;br /&gt;
#service         - /root/exodus/service                   - Default working environment for EXODUS only service, including EXODUS core www and data directories. Also used to keep NEOSYS database installation scripts.&lt;br /&gt;
#ser src         - /root/exodus/service/src               -&lt;br /&gt;
#neosys          - /root/neosys                           - ./doall&lt;br /&gt;
#neo src         - /root/neosys/src                       -&lt;br /&gt;
#hosts           - /root/hosts                            -   &lt;br /&gt;
#test src        - /root/exodus/test/src                  - &lt;br /&gt;
#t10             - ~/                                     - &lt;br /&gt;
#t11             - ~/                                     - &lt;br /&gt;
#t12             - ~/                                     - &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Object Code/Libraries===&lt;br /&gt;
LIVE and TEST processes use different sets of object code.&lt;br /&gt;
TEST processes use libraries in ~/lib/, whereas LIVE processes use object code in ~/neo/lib&lt;br /&gt;
&lt;br /&gt;
This means development &amp;amp; testing can be done stress free on TEST database, as opposed to testing on production databases.&lt;br /&gt;
&lt;br /&gt;
When compiling using edic, the TEST object code is updated if the compilation is successful. (~/lib)&lt;br /&gt;
In order to apply a tested patch to LIVE see [[Update LIVE programs]].&lt;br /&gt;
&lt;br /&gt;
===Dictionaries===&lt;br /&gt;
Dictionaries, the files used to describe the fields of a file&#039;s record.&lt;br /&gt;
Unlike in AREV, there is a copy of all dictionaries in each pgsql database (In AREV, updating a dictionary would affect all the databases).&lt;br /&gt;
&lt;br /&gt;
===Processes===&lt;br /&gt;
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.&lt;br /&gt;
&lt;br /&gt;
===Postgres===&lt;br /&gt;
Connect into postgres shell:&lt;br /&gt;
 sudo -u postgres psql&lt;br /&gt;
&lt;br /&gt;
List databases once in postgres shell:&lt;br /&gt;
 \l&lt;br /&gt;
&lt;br /&gt;
Delete a database:&lt;br /&gt;
 sudo -u postgres dropdb &amp;lt;dbcode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===./doall===&lt;br /&gt;
&lt;br /&gt;
====General====&lt;br /&gt;
Screen 6: ./doall script contains all the necessary information(codes) to setup an installation.&lt;br /&gt;
It includes scripts to backup, restore, create an Apache site, create/start/stop/status a service, import an AREV database into postgres and more.&lt;br /&gt;
&lt;br /&gt;
====backup_db====&lt;br /&gt;
&lt;br /&gt;
*Does a backup &amp;amp; restore of a LIVE database into the corresponding TEST database.&lt;br /&gt;
*Backup &amp;lt;dbcode&amp;gt;.sql file is written to /root/backups/sql; which is rsynced to nl19:/backups/current/exodus/&lt;br /&gt;
*Unlike AREV, postgres can perform a &amp;quot;backup&amp;quot; of a database whilst the system is in use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Git==&lt;br /&gt;
&lt;br /&gt;
There are two repositories, one for EXODUS and the other for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, each repo has three main branches &lt;br /&gt;
&lt;br /&gt;
* master - not used &lt;br /&gt;
* 21.08 - live on ex1 &lt;br /&gt;
* dev - the development branch &lt;br /&gt;
&lt;br /&gt;
As of 22/08/21, ex1b is a clone of ex1 but used as the development environment. &lt;br /&gt;
In order to use ex1b as development environment the ex1b has to be rebuilt every morning to get the development branch working otherwise it is a pure clone  of ex1 except disabled that is usually done early in the morning and may be automated in future using ~/neosys/onboot.sh there is no issue running all processes on ex1b actually since even live process emails to users are all deflected to sysmsg ie neosys to rebuild as the development branch in ex1b&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bold&amp;gt;DONT DO THIS IN ex1!!!!!!!!!!!!&amp;lt;/bold&amp;gt;&lt;br /&gt;
#in ~/neosys screen 6&lt;br /&gt;
#git stash &amp;amp;&amp;amp; git pull &amp;amp;&amp;amp; git switch dev&lt;br /&gt;
#./reinstall dev dev o-&lt;br /&gt;
#./reinstall first switches exodus to its dev branch and rebuilds it&lt;br /&gt;
&lt;br /&gt;
===Git commands===&lt;br /&gt;
&lt;br /&gt;
#Show log of commits (inc commit ID/msg)&lt;br /&gt;
 git log&lt;br /&gt;
#Show changes of a particular commit&lt;br /&gt;
Identify commit of interest and copy first 6 char of its ID. (use git log)&lt;br /&gt;
 git show &amp;lt;ID&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Converting AREV to EXODUS==&lt;br /&gt;
===Decompile AREV to C++===&lt;br /&gt;
(Do in win10a Maintenance mode)&lt;br /&gt;
&lt;br /&gt;
#Apply tested patch to win10a (master AREV Dev system)&lt;br /&gt;
#ATTACH ADECOMC &lt;br /&gt;
#*ADECOM &amp;lt;programname&amp;gt;   *single program&lt;br /&gt;
#*ADECOMALL                          *all programs   (CHECK THIS FIRST)&lt;br /&gt;
#*ADECOM &amp;lt;prog1&amp;gt; &amp;lt;prog2&amp;gt; *(CHECK IF THIS WORKS)&lt;br /&gt;
&lt;br /&gt;
===Send c++ files from win10a to nl19===&lt;br /&gt;
(Do in win10a Cygwin)&lt;br /&gt;
&lt;br /&gt;
#/d/exodus/arev/syncup.sh&lt;br /&gt;
&lt;br /&gt;
===Get c++ files from nl19 to exodus===&lt;br /&gt;
(Do in Exodus system)&lt;br /&gt;
&lt;br /&gt;
#If cpp in SYS then: ~/exodus/service/src ./getpickos&lt;br /&gt;
#If cpp in MED JOB FIN GEN AGY then: *~/neosys/src ./getpickos&lt;br /&gt;
#Compile single cpp then: c &amp;lt;programname&amp;gt; e.g &amp;quot;c monitor2&amp;quot;&lt;br /&gt;
#Compile all cpp then: ./compall (PENDING WHICH/WHERE? many compall)&lt;br /&gt;
&lt;br /&gt;
===Compile C++ files to TEST system===&lt;br /&gt;
&lt;br /&gt;
#*./test &amp;lt;DBNAME&amp;gt;&lt;br /&gt;
#*~/neosys ./doall TEST &amp;lt;DBNAME&amp;gt; restart    #to get one service to start start using the new lib files&lt;br /&gt;
#*~/neosys ./doall TEST all restart                    #to get all the services to start start using the new lib files&lt;br /&gt;
&lt;br /&gt;
===Install C++ files to LIVE System===&lt;br /&gt;
WARNING&lt;br /&gt;
&lt;br /&gt;
#~/exodus/service/ ./copyall            #to copy all the ~/lib and bin files to ~/live/lib and bin ... which is used by all exodus/live services&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Standard Exodus Core Function/Method Testing==&lt;br /&gt;
Screen 9: ~/exodus/test/src/&lt;br /&gt;
There are a series of test programs that check whether methods/functions behave as intended.&lt;br /&gt;
They do this using the function, assert.. a 1 or more argument values produce one and only one output)&lt;br /&gt;
&lt;br /&gt;
e.g test_multilang.cpp or test_sort.cpp&lt;br /&gt;
&lt;br /&gt;
Two methods of running test programs:&lt;br /&gt;
*Screen 9: make test&lt;br /&gt;
*after compiling using edic/compile/c, enter test_prog_name. (Since compile has moved it to ~/bin)&lt;br /&gt;
&lt;br /&gt;
Difference between the two methods is make calls gdb directly;&lt;br /&gt;
whereas ~/bin/test_prog_name uses exodus compile program&lt;br /&gt;
#~/neosys ./doall LIVE all restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applying changes to files which exist per database==&lt;br /&gt;
&lt;br /&gt;
Some files have a version of itself per client db in postgres, for example, ALANGUAGE.&lt;br /&gt;
&lt;br /&gt;
Editing this file would affect the specific database only. To apply changes per database, please look at the below example.&lt;br /&gt;
&lt;br /&gt;
Case: Edited ALANGUAGE file in one db and applying it to another db&lt;br /&gt;
&lt;br /&gt;
#Update the file for a specific database&lt;br /&gt;
&lt;br /&gt;
    export EXO_DATA=test&lt;br /&gt;
&lt;br /&gt;
    edir ALANGUAGE COSTESTIMATES*ARABIC&lt;br /&gt;
&lt;br /&gt;
#Save the file for use in future or other databases&lt;br /&gt;
&lt;br /&gt;
    sudo -u postgres pg_dump &amp;lt;DB_NAME&amp;gt; -t ALANGUAGE -c &amp;gt; ~/neosys/src/sql/alanguage.sql&lt;br /&gt;
&lt;br /&gt;
#Load the file into the database where you want to apply the fix&lt;br /&gt;
&lt;br /&gt;
    cat ~/neosys/src/sql/alanguage.sql | sudo -u postgres psql &amp;lt;DB_NAME&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3866</id>
		<title>Procedures</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3866"/>
		<updated>2021-08-19T06:08:58Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Handling Requests from people impersonating an Authorised person */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are procedures to be followed by Support Staff in respect to various technical matters in day to day operations of client issues.&lt;br /&gt;
&lt;br /&gt;
Once Support Staff have learnt how to follow these procedures &amp;amp; rules, you then start learning when and how to not follow them. Common sense trumps all rules! i.e. don&#039;t follow procedures and rules blindly all the time. Analyse the problem and solve it practically.&lt;br /&gt;
&lt;br /&gt;
BUT if you are doing something off-piste deliberately, then just add an appropriate comment about why you are.&lt;br /&gt;
&lt;br /&gt;
==Handling Clients with Overdue Invoice==&lt;br /&gt;
In order to maintain good payment speed by clients NEOSYS needs to restrict support to clients that dont pay their bills on time, however the degree of restriction needs to depend on an intimate knowledge of the client which cannot be expected from all NEOSYS support staff. Therefore we will use a simple escalation policy as follows:&lt;br /&gt;
&lt;br /&gt;
===Overdue Support List===&lt;br /&gt;
NEOSYS SUPPORT MANAGERS WILL maintain an overdue list on a whiteboard visible to all support staff. Generally, clients will go on the list immediately when their invoice is overdue and come off only after satisfactory commitment to pay have been obtained.&lt;br /&gt;
&lt;br /&gt;
The latest overdue list email MUST always be starred until there are no clients left on the overdue list (apart from the permanently overdue clients). When a client is added to the overdue list, support must set up a filter to move client support emails to the overdue folder. When a client is removed from the overdue list, client emails must be moved back into the support inbox. This way support team will know that there are still clients on the overdue list and will not mistakenly provide support to those clients.&lt;br /&gt;
&lt;br /&gt;
[[image:FilterOverdue.jpg]]&lt;br /&gt;
&lt;br /&gt;
For the first week of each quarter of the year, normal support should be provided for server failures and backup failures (including hung processes as it could eventually lead to backup failures).&lt;br /&gt;
&lt;br /&gt;
For any other support requests from overdue clients, respond with the following letter (where XYZ is the overdue client):&lt;br /&gt;
&lt;br /&gt;
 Dear &amp;lt;user&amp;gt;,&lt;br /&gt;
 There is an issue with your company&#039;s account. We have requested our Accounts team for approval in order to provide support to you and other &amp;lt;XYZ&amp;gt; users.&lt;br /&gt;
&lt;br /&gt;
Support staff MUST then provide the required support to the overdue client only after 4 working hours. Support Staff need not actually contact the Accounts team for approval, although that is what is mentioned in the letter. This delay in support is to encourage clients to settle their payments on time.&lt;br /&gt;
&lt;br /&gt;
After the first week of each quarter of the year, respond to any support requests from overdue clients with the above letter but MUST NOT PROVIDE SUPPORT even after 4 working hours. Instead, Support Staff must refer the support request to NEOSYS Support Manager.&lt;br /&gt;
&lt;br /&gt;
Managers may well instruct support to provide support on a case by case basis even if clients are on the overdue list. Being on the overdue list does not necessarily indicate a major issue with accounts.&lt;br /&gt;
&lt;br /&gt;
If the client provides proof of payment (e.g. cheque deposit slip), then carefully check all the details as mentioned in [https://userwiki.neosys.com/index.php/Sales_FAQ#When_can_NEOSYS_support_staff_start_installation_of_NEOSYS When can NEOSYS support staff start installation of NEOSYS], before getting approval from NEOSYS management to remove the client from the overdue list. &lt;br /&gt;
&lt;br /&gt;
===Handling complaints about Licence restrictions===&lt;br /&gt;
&lt;br /&gt;
Sometimes when a client delays payment of NEOSYS invoice, support places a licence restriction for the client. In such cases, users will not be able to create and save documents dated outside the licence period. Due to this sudden restriction, clients may raise complaints about the restriction placed.&lt;br /&gt;
&lt;br /&gt;
Support MUST simply inform them that licence restrictions are a default procedure followed by NEOSYS and is applied to all clients, so that the client will in future avoid delaying the payment.&lt;br /&gt;
&lt;br /&gt;
===Handling complaints about emails from NEOSYS Accounts Department===&lt;br /&gt;
&lt;br /&gt;
If a client calls Support team to complain about emails from NEOSYS accounts department (e.g. invoice payment reminder), then immediately make them realise that they are wasting their time talking to support because support is not involved in client invoices and reminders procedure.&lt;br /&gt;
&lt;br /&gt;
Any complaints or concerns they have MUST only be sent in reply to the email they received.&lt;br /&gt;
&lt;br /&gt;
==Handling Frozen NEOSYS Installations and Databases==&lt;br /&gt;
&lt;br /&gt;
Some clients retain fully operational NEOSYS installations or just particular databases even after they stop using them for some reason, either because they move to some other software, or because they terminate an operational division, or other reasons, and this can either be on NEOSYS or their own servers.&lt;br /&gt;
&lt;br /&gt;
In this case, various NEOSYS upgrade and maintenance processes may be suspended, downgraded or completely skipped especially if instant access to the server is no longer available. This does not mean that it should never be done, and pros and cons need to be assessed and documented in support emails on a case by case basis.&lt;br /&gt;
&lt;br /&gt;
*Upgrading NEOSYS version&lt;br /&gt;
*Upgrading/standardising NEOSYS database configuration and other files for consistency, security or other issues&lt;br /&gt;
*Patching Windows/IIS configuration for consistency, security or other issues&lt;br /&gt;
&lt;br /&gt;
==Handling Links and Email Attachments==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DO NOT TRUST ANY LINK OR ATTACHMENT IN ANY EMAIL EVEN FROM HIGHLY TRUSTED PEOPLE OR ORGANISATIONS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These days you can no longer trust links or attachments in emails from anybody - even emails from highly trusted people like your bank.&lt;br /&gt;
&lt;br /&gt;
If a personal computer or intermediate email server is hacked then even genuine emails sent out from it can be infected and modified in a hidden way that can result in the recipient being infected if they click or open anything in the email.&lt;br /&gt;
&lt;br /&gt;
Therefore you should know and understand how to avoid, as far as possible, getting tricked and infected via emails.&lt;br /&gt;
&lt;br /&gt;
Malware authors generally rely on the fact that most people devote no time at all to security precautions so a moderate cautious approach, slowing down a little to spending some time on security, even where it is apparently not required, is enough to defeat most attacks.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
Do NOT click on links, especially in emails that you are not expecting, but also anywhere else that you see links, without taking various precautions. The links in an email, even from someone you know and trust, can LIE to you about what website they will open and they can lead you to websites that mere browsing can infect your computer and then others inside our network.&lt;br /&gt;
&lt;br /&gt;
WHAT LINK/WEBSITE WILL BE OPENED MAY NOT BE WHAT IT SAYS IN THE BODY OF YOUR EMAIL!&lt;br /&gt;
&lt;br /&gt;
Therefore, to use a link in any and all emails, first hover your cursor over it and check the status bar at the bottom of the screen where you can see exactly what website will be opened, or, to be more sure exactly what website you are opening DO NOT click links in emails at all. COPY/PASTE the link to your browser, AFTER following the below points.&lt;br /&gt;
&lt;br /&gt;
*Make sure you know and trust the website being opened.&lt;br /&gt;
*Carefully inspect the spelling of the domain name to avoid tricky look-alike fraudulent links eg hcsb.com instead of hsbc.com&lt;br /&gt;
*If you trust the sender but you do not personally know the website then get independent confirmation from the sender. Reply to the email so that the sender can check the link you received has not been tampered with.&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&lt;br /&gt;
Below is an example of a phishing email that you can easily tell is malware&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot1.png]]&lt;br /&gt;
&lt;br /&gt;
*You don&#039;t expect it because it says &amp;quot;before your sign up is complete&amp;quot; ... but you didn&#039;t just sign up.&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t mean that links in emails that you ARE expecting ARE safe to open. All the usual cautions apply to emails you DO expect.&lt;br /&gt;
&lt;br /&gt;
*Hover mouse over the button and check the link visually&lt;br /&gt;
&lt;br /&gt;
In the example above, the email is supposed to be from Dropbox, but hovering the mouse over the button shows the below link, which is obviously wrong:&lt;br /&gt;
&lt;br /&gt;
http://fxloraisdoxbraxsil.com.br/dropbox.html&lt;br /&gt;
&lt;br /&gt;
*Even if the link looks genuine e.g. something from a service that we use that we didn&#039;t expect, be careful for misspelt links that look like genuine links e.g. drobbox.com, which could trick you if you are sloppy.&lt;br /&gt;
&lt;br /&gt;
Never click on links in emails unless you are absolutely 100% sure that the email and link is genuine.&lt;br /&gt;
&lt;br /&gt;
Copy the link using right click copy link then paste into your browser if there is the slightest doubt.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&lt;br /&gt;
In the following case, hovering over the first two links seem to go to real UPS website, BUT this is NOT sufficient to be sure since slight misspellings and other tricks can lead you to a totally different website.&lt;br /&gt;
&lt;br /&gt;
However, hovering over the third &amp;quot;link&amp;quot; shows that clicking the apparent link would go to some website http://behappy.vn (Vietnam) so clearly this is a DECEPTION.&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example 3:&lt;br /&gt;
&lt;br /&gt;
In this case, an unknown organization behind the phishing attack is pretending to work for Leaseweb sales company and is sending emails from an email address similar to Leaseweb’s, and with Leaseweb’s footer. They claim that the original payment was declined and ask to wire or transfer money to a new account. These kind of emails are quite sophisticated and require you to be vigilant. &lt;br /&gt;
&lt;br /&gt;
Try to confirm the sender’s identity before replying to email requests and before opening attachments or clicking on links, even if they appear to come from a legitimate source. &lt;br /&gt;
&lt;br /&gt;
Below is an example of a fraudulent email request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your payment has been declined!&lt;br /&gt;
Your invoice (100421) with Office 365 Service is due.&lt;br /&gt;
To make a payment, please log in with your email address and password at&lt;br /&gt;
&lt;br /&gt;
https://leaseweb.com/payment/100421&lt;br /&gt;
Once logged in please click select the Make a Payment icon in the Billing Tab. You may complete payment by Credit Card or Paypal on this page.&lt;br /&gt;
&lt;br /&gt;
Once paid no further action is needed and your account will remain active.&lt;br /&gt;
We thank you for your continued business and assistance in helping us to get this resolved.&lt;br /&gt;
Feel free to contact us if you have any questions, comments, or concerns.&lt;br /&gt;
&lt;br /&gt;
Regards; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Attachments===&lt;br /&gt;
&lt;br /&gt;
Please follow these rules strictly:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment that you did not expect.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  be curious to see what is in an attachment.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment if there is some other way for the info to be sent e.g. Screenshot of document.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the rules above are followed then:&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you have requested it and if sender is unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you get a good explanation of it contents from sender and they are unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
It is okay to save an attached eml file and open it with GEDIT as text, as it will not trigger any virus.&lt;br /&gt;
&lt;br /&gt;
This does NOT mean that you can open attached files freely. As per the procedures above, you should NOT open any unknown or unexpected attachments without CONSIDERABLE thought.&lt;br /&gt;
&lt;br /&gt;
But saving and then opening files with GEDIT to get an idea of their contents even if the view is mangled is okay. Although, there is little point in opening files like ZIP in gedit.&lt;br /&gt;
&lt;br /&gt;
There is no way to determine if an attachment, even from someone you know, has not been infected and is therefore, dangerous.&lt;br /&gt;
&lt;br /&gt;
The only protection is to rely on anti-virus/anti-malware e-mail filters and staff vigilance!&lt;br /&gt;
&lt;br /&gt;
You can check the names and file types/extensions of attached files to spot any obviously strange or unexpected attachments, but this is not very effective. The filename of an attachment could be spoofed. An attacker could potentially exploit this by tricking the user in to opening an attachment of a different type to the one expected.&lt;br /&gt;
&lt;br /&gt;
Attachments ending in .jar or any other unusual extensions shouldn’t be opened without SB&#039;s permission.&lt;br /&gt;
&lt;br /&gt;
If there are a lot of attached files, don&#039;t assume they are all safe, make sure you asked for each of them.&lt;br /&gt;
&lt;br /&gt;
==Handling emails from unknown email addresses==&lt;br /&gt;
&lt;br /&gt;
Any sort of contact from an unknown email address must be ignored entirely, i.e. no response whatsoever from Support, as these emails could be from a fraudulent source. If the email is genuine, then the sender can surely contact their managers.&lt;br /&gt;
&lt;br /&gt;
Support should keep in mind that hackers can send emails that look genuine, aiming to get private/confidential information and so should always stay alert when dealing with such emails.&lt;br /&gt;
&lt;br /&gt;
==Handling junk/spam email==&lt;br /&gt;
&lt;br /&gt;
In order to get better automatic spam email filtering please mark as many obviously spam emails as Junk, instead of just deleting them. Marking them will delete them so it takes not much longer to do.&lt;br /&gt;
&lt;br /&gt;
*DO NOT delete emails from Junk or Spam folder because they are used to identify future junk and spam emails.&lt;br /&gt;
*Any email identified as junk should be marked as Junk so that they automatically go into the Junk folder. The spam filter in the mail server will use these emails in the Junk folder to decide what is moved into the spam folder.&lt;br /&gt;
*You MUST ensure that all clearly junk/spam emails are marked as Junk/Spam in ALL email inboxes. In other words they MUST be moved to Junk/Spam folders and not left in our inboxes or other main folders.&lt;br /&gt;
*Any emails which are not clearly junk/spam emails or are similar to genuine emails, but you know are spam/junk MUST be deleted i.e. NOT left in inbox NOR moved to Junk/Spam folders.&lt;br /&gt;
&lt;br /&gt;
Failing the above we will have the following problems:&lt;br /&gt;
&lt;br /&gt;
*Real emails disappearing into junk/spam folders by our email server.&lt;br /&gt;
*More junk/spam emails appearing in our inboxes than necessary.&lt;br /&gt;
&lt;br /&gt;
The Junk email folder contains emails that have been manually marked as spam/junk whereas the &amp;quot;spam&amp;quot; email folder contains emails that have automatically been filtered out by the email server.&lt;br /&gt;
&lt;br /&gt;
==Avoid burdening email servers with excessive graphics==&lt;br /&gt;
&lt;br /&gt;
Support MUST install the &amp;quot;Auto Resize Image&amp;quot; addon in Thunderbird to reduce the size of images in emails resulting in a significant reduction in email size. See [[Configuring_Thunderbird#Configure_Auto_Resize_Image| setting up auto resize image]] for details.&lt;br /&gt;
&lt;br /&gt;
It reduces the burden on NEOSYS and NEOSYS client&#039;s email servers. This is especially important on long conversations about subjects that include many screenshots, since for just a simple one line reply, the email can consume many MB of space. It massively wastes the email server space and makes backups massive and generally a total waste of resources and time.&lt;br /&gt;
&lt;br /&gt;
To be able to refer back to graphics in previous emails, add the SIZE column to your email program so that you can locate large emails with graphics rapidly without searching back one by one.&lt;br /&gt;
&lt;br /&gt;
==Client Communication Policies==&lt;br /&gt;
===Client Meeting Report Policy===&lt;br /&gt;
&lt;br /&gt;
After every Client meeting online or otherwise Support MUST send a Follow-Up email to the Client which is open and fully informative and not brief, stating the events during the meet and any action required by either or both parties. The email to the client must not shrink from discussing contentious issues due to a false sense of politeness or timidity to address issues face on. Obviously one should not be rude but it is not rude to address issues openly.(cc Client managers and NEOSYS Managers)&lt;br /&gt;
&lt;br /&gt;
The follow-up email MUST be sent within 24 hours of completion of the meeting so that the points discussed during the meeting are fresh in all the meeting participants&#039; minds. This means that reports for meetings on the day before the weekend MUST be sent on the SAME day.&lt;br /&gt;
&lt;br /&gt;
In addition to above email if there is some information that needs to be shared internally and cannot be said in public to the client then send a Client Meeting report to Support.&lt;br /&gt;
&lt;br /&gt;
Support must also update the Client Contact Record file in Google Drive immediately after sending out the follow-up email.&lt;br /&gt;
&lt;br /&gt;
===Follow Up of Support Issues===&lt;br /&gt;
&lt;br /&gt;
All voice/chat communication MUST also be followed up with an email confirming at least the gist of the communication to keep the whole support team updated on the issue.&lt;br /&gt;
&lt;br /&gt;
If not possible to contact for any reason, then an email MUST be sent stating so and suggesting or requesting a time to connect.&lt;br /&gt;
&lt;br /&gt;
cc Client managers (and/or BCC NEOSYS Managers) MAY be done if thought to be useful and/or appropriate.&lt;br /&gt;
&lt;br /&gt;
===Handling Contentious Emails from Clients===&lt;br /&gt;
&lt;br /&gt;
If emails requesting support become contentious, then voice, phone call or chat is REQUIRED to save time. However, client support via phone call should be done only on local or low-cost calls. High-cost international calls should not be used except in extreme circumstances.&lt;br /&gt;
&lt;br /&gt;
If clients become deliberately combative or uncooperative then Support team is supposed to kick back a little but still emphasise the point. Perhaps it could be done better with a little ironic humour or a smiley. Avoid using !! while responding to contentious emails.&lt;br /&gt;
&lt;br /&gt;
===Apologising to clients for issues===&lt;br /&gt;
&lt;br /&gt;
We only need to apologise for major issues that are a) definitely our fault and b) we wish to indicate that there is some general issue in NEOSYS procedures and that we are dealing with it. &lt;br /&gt;
&lt;br /&gt;
We do not want to invite bullying by some clients by seeming to lack confidence in our ability.&lt;br /&gt;
&lt;br /&gt;
An explanation of the cause and possibly FP is of more value to the client, since an apology doesn’t really make any difference.&lt;br /&gt;
&lt;br /&gt;
===Discussing Pricing=== &lt;br /&gt;
All discussions about pricing must be done only in Sales inbox. If clients bring up pricing discussion in support emails, NEOSYS staff must respond to the client by starting a new thread in the Sales Inbox.&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Support Response Time Policy==&lt;br /&gt;
&lt;br /&gt;
NEOSYS contracts, in the few cases where we have a written contract with the client, specifies that maximum response time is one business day generally and one business hour for complete stoppages of the system. Obviously we have to do far better than this in practice.&lt;br /&gt;
&lt;br /&gt;
Support staff must inform clients of the progress of the issue if it is not resolved the same day but only if they contact at least 1 hour before office closing.&lt;br /&gt;
&lt;br /&gt;
Deciding to wait on issues is fine (also refer to:  [[Procedures#Handling_users_who_do_not_act_upon_standard_messages|Response to standard messages]]), but support MUST at least spend up to 5 minutes on issues to see if they can be handled quickly. Support MUST respond quickly to issues that can be handled quickly, otherwise the client suffers unnecessarily.&lt;br /&gt;
&lt;br /&gt;
When an issue is fixed or a client request has been implemented in NEOSYS, Support must immediately let users know that the issue is fixed, so that clients can continue their work without any further delay. Quick and prompt responses from Support will gain the client&#039;s appreciation.&lt;br /&gt;
&lt;br /&gt;
For routine requests for service where there is a reasonable expectation of delay by the client then no need to send rapid reply.&lt;br /&gt;
&lt;br /&gt;
==Default Browser for support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS supports and develops for Firefox primarily but other browsers such as Chrome and Edge MUST also be tested working fine. Support team currently uses Firefox for all work related tasks in Ubuntu which includes testing, wiki work etc.&lt;br /&gt;
&lt;br /&gt;
Also refer to [http://itwiki.neosys.com/index.php/Setting_up_Ubuntu_on_NEOSYS_Support_Computers#Mozilla_Firefox Setting up Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
==Handling errors discovered by support staff==&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
==Handling browser script errors==&lt;br /&gt;
&lt;br /&gt;
If a script error is faced, support should take a full screenshot of the script error including the script name, line number, etc.&lt;br /&gt;
&lt;br /&gt;
Include every detail available regarding the script error and also the steps to replicate it and escalate this to the programmer.&lt;br /&gt;
&lt;br /&gt;
Chrome JavaScript Error Notifier extension shows all the details available in the initial script error message itself. In Internet Explorer, you will have to click &#039;Yes&#039; on the script error message to get all the details.&lt;br /&gt;
&lt;br /&gt;
==Various checks done by Support to investigate errors==&lt;br /&gt;
&lt;br /&gt;
A list of logs/reports that Support must look at, depending on the situation, to solve issues or investigate errors.&lt;br /&gt;
&lt;br /&gt;
#Support inbox emails: Check old emails in Thunderbird. This is the quickest way to handle issues/errors that were handled recently.&lt;br /&gt;
#Logs/reports available in NEOSYS Menu&lt;br /&gt;
#*Request Log (Support -&amp;gt; RequestLog) - These logs can be checked to see what request were made and by which users etc., not as detailed as the xml logs mentioned under &amp;quot;Logs found on the server&amp;quot;.&lt;br /&gt;
#*NEOSYS logs (Support -&amp;gt; Log) - Log of alerts sent out via email, e.g. backup email, login failure, etc.&lt;br /&gt;
#*What&#039;s New report (Help -&amp;gt; What&#039;s new in NEOSYS) - Contains a list of all the features added in NEOSYS&lt;br /&gt;
#*List of Database processes (Support -&amp;gt; List of Database Processes) - Status of processes windows running on the server.&lt;br /&gt;
#*List of documents in use (Support -&amp;gt; List of Documents in Use) - Currently used documents.&lt;br /&gt;
#*User details page (Help -&amp;gt; User Details) - To check logins and IPs and password reset details.&lt;br /&gt;
#*Version logs of files - The history of edits made to files in NEOSYS. This is available at the bottom of files in NEOSYS (e.g. Schedule file, Voucher file, etc.)&lt;br /&gt;
#*Usage Statistics (Support -&amp;gt; Usage Statistics) - Shows no. of requests made per user, per department, per database, per hour etc.&lt;br /&gt;
#Logs found on the server:&lt;br /&gt;
#*Xml logs - These logs can be checked to see what request were made and by which users etc. in detail.&lt;br /&gt;
#*Process logs (.LOG files) - These log files contain entries showing start of database backup, and process startup logs.&lt;br /&gt;
#*Process windows - Check process windows on the server for error messages or anything unusual, e.g. hung processes.&lt;br /&gt;
#*Procexp (Process Explorer)- Used to check ntvdm processes running for specific installations (useful on servers with multiple installations).&lt;br /&gt;
#*System logs (Event viewer) - Used to check for unusual system events, eg: unexpected shutdown.&lt;br /&gt;
#*Task manager - Checked to monitor CPU usage, NTVDM running etc.&lt;br /&gt;
#NAGIOS - Monitors the status of all hosts and services.&lt;br /&gt;
&lt;br /&gt;
==Handling Cheques from Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff are not to accept deliveries from clients that might be cheques without prior instructions to accept the same. They can ask courier to wait a few minutes until NEOSYS accounts or management agrees but they may not be immediately available and probably will not agree anyway. If accounts or management is not immediate available, then cheque MUST not in any circumstances be accepted, otherwise client can cause problems in our accounts and we waste time visiting the bank to deposit.&lt;br /&gt;
&lt;br /&gt;
NEOSYS payment terms do not accept cheques although clients are free to deposit cheques by themselves.&lt;br /&gt;
&lt;br /&gt;
==Client Password Policy==&lt;br /&gt;
All client user passwords, including their initial one, are to be obtained via the user&#039;s email address using the password reminder/reset button on the login screen. [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#What_is_NEOSYS_password_policy.3F (NEOSYS password policy)]&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff should never know users passwords therefore NEOSYS will not obtain and grant user passwords. The reason for this is that in the event that users lose their passwords to other people who then login unauthorised then suspicion could fall on the NEOSYS staff who know their password. &lt;br /&gt;
&lt;br /&gt;
All parties concerned, including client management, client users and NEOSYS support staff, benefit greatly from trusting that if something in a NEOSYS database is registered as having been done by a particular user then it was not in fact somehow done by NEOSYS support staff. Nothing should be done that would break such fundamental trust. To achieve this, NEOSYS support staff must never log in as particular users, never ask for users passwords and generally enforce the idea that all work logged as being done by users IS done by users.&lt;br /&gt;
&lt;br /&gt;
Very limited amounts of work by NEOSYS support staff either in person or remotely using teamviewer is acceptable while a user is logged as long as the user login was performed by the user themselves, the user is present and the user specifically agrees with the work being done.&lt;br /&gt;
&lt;br /&gt;
===Support requests from ordinary client users===&lt;br /&gt;
Any support requests concerning inability to obtain passwords will be forwarded to known skilled users on the client staff since this is the most efficient (not fastest) way to handle such issues.&lt;br /&gt;
&lt;br /&gt;
===Support requests from senior client management===&lt;br /&gt;
Any support requests concerning inability to obtain passwords by senior client management users shall be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bearing in mind that NEOSYS staff should never know user&#039;s passwords this will probably involve NEOSYS staff using the Password Reminder/Reset button to send a new password to the user.&lt;br /&gt;
&lt;br /&gt;
===User Defined Passwords===&lt;br /&gt;
NEOSYS will provide user defined passwords in very special cases which must be pre-approved case by case by NEOSYS management. NEOSYS will not approve this due to the reasons mentioned [[Procedures#Client_Password_Policy|here]].&lt;br /&gt;
&lt;br /&gt;
If the user login gets blocked due to multiple login failures and the user requests support team to reset the password to the user defined password again, support MUST delay the response to this request by at least 1 hour in order to force the user to be more careful when typing the password.&lt;br /&gt;
&lt;br /&gt;
Currently permission for user defined password has only been granted to one NEOSYS client with several hundreds of databases.&lt;br /&gt;
&lt;br /&gt;
==Handling client issues and requests==&lt;br /&gt;
&lt;br /&gt;
All support issues must be dealt with through phone/email/chat. Support Staff can schedule client visits for User Training but should not schedule client visits solely for providing support for petty issues.&lt;br /&gt;
&lt;br /&gt;
ALL Support staff should check all the previous day&#039;s inbound emails for reply flags once in the morning. All Support staff will therefore be held responsible for any unreplied inbound email.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT waste time and delay support by investigating issues WITHOUT SUFFICIENT INFORMATION.&lt;br /&gt;
&lt;br /&gt;
Support must NOT get involved in any discussion about any document that is not directly out of NEOSYS, so that Support is able to reproduce it from NEOSYS screenshots of screen options that the client used.&lt;br /&gt;
&lt;br /&gt;
Support should look for similar issues when solving a particular problem to avoid similar issues in future. This saves the time and energy of Support as well as the Client.&lt;br /&gt;
&lt;br /&gt;
When sending screenshots to clients, support team should economise on space by minimising to the minimum that will show the problem clearly. This is because not every user will be viewing their emails on large wide screens like NEOSYS support team. Browser windows reformat their contents to suit the width available so this is particularly effective in most NEOSYS screens.&lt;br /&gt;
&lt;br /&gt;
Support team MUST be cautious while sending screenshots so that no private/unnecessary information is sent to Client. If you cannot avoid taking the screenshot without unnecessary information then you should hide it in the screenshot.&lt;br /&gt;
&lt;br /&gt;
Support team MUST learn not to do silly support for people, because we have an OPEN SUPPORT policy, which some users WILL try to abuse based on either poor understanding or lack of respect. &lt;br /&gt;
Either way support MUST learn to deal with abuse of privileges as it will save a lot of time, which could be spent on more important issues.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
===Handling new emails in Support inbox===&lt;br /&gt;
Support MUST spend up to 5 minutes on new emails and send a quick reply to the client, to acknowledge the request or give a quick solution in case it is a petty issue or has a documented solution in wiki.&lt;br /&gt;
&lt;br /&gt;
Client issues/requests should be prioritized, interrupting existing work and not wait for one hour and be dealt with quickly.&lt;br /&gt;
&lt;br /&gt;
For routine service requests where there is a reasonable expectation of delay by the client, Support need not send a rapid reply but must keep the email starred in Support inbox to indicate that it is pending or being worked on.&lt;br /&gt;
&lt;br /&gt;
===Handling starred emails in Support inbox===&lt;br /&gt;
&lt;br /&gt;
When an email is received in Support inbox,&lt;br /&gt;
&lt;br /&gt;
*if the email can be replied to immediately, then mark it as read after you have replied to the email.&lt;br /&gt;
*if the issue cannot be resolved immediately, then the email MUST be starred so that support does not forget to work on it. Once the issue has been resolved, Support should send an email to Support inbox confirming that the issue is closed. Only then should the email be unstarred.&lt;br /&gt;
&lt;br /&gt;
No issue should be silently dropped without being fully resolved.&lt;br /&gt;
&lt;br /&gt;
===Handling client-sensitive information in emails===&lt;br /&gt;
&lt;br /&gt;
Support should avoid including information that could be sensitive to clients e.g. screenshots of reports that should only be viewed by client&#039;s upper management.&lt;br /&gt;
&lt;br /&gt;
This can be done simply by clever cropping of images or blurring out of information in cases where cropping is not possible. &lt;br /&gt;
&lt;br /&gt;
Support MUST not delay response to any client by wasting time blurring or cropping out information that is not sensitive to clients, e.g. blurring out the URL and tabs in browsers etc.&lt;br /&gt;
&lt;br /&gt;
===Handling client call back requests===&lt;br /&gt;
&lt;br /&gt;
Clients who ask us to call them should be given our phone number and asked to call us unless there is some GOOD reason why we should make the effort and pay phone charges.&lt;br /&gt;
&lt;br /&gt;
===Handling login failure issues===&lt;br /&gt;
&lt;br /&gt;
Users often get login failure issues due to typing wrong password and they simply won&#039;t read and act according to the error message they get. In this case, Support must send the below email to the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
If you have trouble resetting password, please ask for assistance from your manager/IT Manager/Timesheet Administrator/NEOSYS-expert colleague.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local support users (TA or IT manager etc) have the LS key using which they can see the User Details page of all users. They should check all the information (usercode, registered email id, last login attempts etc) in the User Details page to find out what is the issue.&lt;br /&gt;
&lt;br /&gt;
This procedure will reduce the endless mails sent back and forth to solve petty issues which could easily be solved by the client&#039;s local support.&lt;br /&gt;
&lt;br /&gt;
===Handling requests or demands for &amp;quot;URGENT&amp;quot; or &amp;quot;PRIORITY&amp;quot; support===&lt;br /&gt;
&lt;br /&gt;
Any request for prioritised action *without giving any reason for the prioritisation* should be disregarded and the request handled with normal priority. If a reason is given then you may at your discretion prioritise a response but there is no obligation to do so.&lt;br /&gt;
&lt;br /&gt;
===Handling users who login with other people&#039;s NEOSYS usercodes===&lt;br /&gt;
This can cause a lot of confusion in both the client and NEOSYS support. It may also indicate that the correct NEOSYS monthly licensing fee is not being paid. There is no valid reason for anonymous logins or sharing logins between multiple users.&lt;br /&gt;
&lt;br /&gt;
Therefore if NEOSYS support team get requests for support about using NEOSYS from users who are not registered properly in NEOSYS with an personally identifiable user code, name and email then the following email should be sent cc admin@neosys.com.&lt;br /&gt;
&lt;br /&gt;
No exception should be granted to clients without NEOSYS management approval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear NEOSYSUSER,&lt;br /&gt;
&lt;br /&gt;
Please note that in order to receive support from NEOSYS you must personally have an identifiable user code, name and email address registered&lt;br /&gt;
in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
We can create new user account for you with your management approval. This may or may not have an impact on the NEOSYS monthly licensing fee &lt;br /&gt;
depending on the agreement in force.&lt;br /&gt;
&lt;br /&gt;
Please let us know what you would like us to do.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling support requests from expired users===&lt;br /&gt;
&lt;br /&gt;
If expired users call for any reason including not being able to login, they must not be given any support. They should only be told that their account is expired without any reason being offered because employers sometimes do not want any information at all being passed to expired users.&lt;br /&gt;
&lt;br /&gt;
===Handling support request from senior management===&lt;br /&gt;
&lt;br /&gt;
Any support requests from senior client management users concerning report generations should be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bear in mind that NEOSYS staff should not agree or offer to do client work. Support staff can advise senior management to contact a skilled user to help them with basic NEOSYS reporting. Support staff can also send screenshots of step by step procedure on how to take reports. Depending on the situation and reasons provided by senior management, support staff can at their discretion provide reports but after informing them that this is an exception and no more reports will be sent out as this is against NEOSYS procedures.&lt;br /&gt;
&lt;br /&gt;
===Handling requests that involve updating NEOSYS configuration files===&lt;br /&gt;
&lt;br /&gt;
Changes to any configuration file in NEOSYS MUST be performed only by NEOSYS support, because even the slightest misconfiguration of the system may cause unrecoverable errors and NEOSYS is responsible for support.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with unrelated subject line===&lt;br /&gt;
At times, clients forward old emails, with new issues, resulting in completely unrelated subject line. In such situations, support MUST follow the below steps to ensure that unrelated emails do not appear in the same conversation group when viewing emails in conversation mode:&lt;br /&gt;
&lt;br /&gt;
#Right click the email -&amp;gt; HeaderToolsLite -&amp;gt; Edit full source&lt;br /&gt;
#Modify the text that appears after &amp;quot;Message-ID: &amp;lt;&amp;quot;. (e.g. replace the first few characters with &amp;quot;xxxxxxxxx&amp;quot;)&lt;br /&gt;
#Remove all texts that appear after &amp;quot;References:&amp;quot; and &amp;quot;In-Reply-To:&amp;quot; and click OK.&lt;br /&gt;
#Click Reply All on the modified email.&lt;br /&gt;
#Change the subject to a relevant one.&lt;br /&gt;
#Delete old unrelated content from the email body.&lt;br /&gt;
&lt;br /&gt;
In the email reply, include a comment like &amp;quot;PS Please don&#039;t forward old emails for new issues, start a new email with a new subject so that emails can be traced easily.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sometimes the client does not bother putting the correct subject line for new issues (e.g. blank subject, or &amp;quot;Error&amp;quot;). Then support should add a meaningful subject line in order to make the email easy to search for.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with poor screenshots===&lt;br /&gt;
Sometimes Thunderbird shows full sized screenshots in a compact format that is not easy to read. These can be resized to make them more legible. To do this, make the email editable by hitting the &amp;quot;Reply&amp;quot; button, then click and drag to resize the screenshot as desired.&lt;br /&gt;
&lt;br /&gt;
If the screenshot sent by the user is genuinely small and hard to read, reply to the mail and request for a full size, clear screenshot.&lt;br /&gt;
&lt;br /&gt;
===Handling support-request emails sent to anywhere than support@neosys.com===&lt;br /&gt;
Client emails anywhere than support@neosys.com MUST be ignored. This is because ALL support must be recorded in support inbox without exception so that the whole support team is aware of the issue and action taken. If client complains about the delay in support then they can be told this is because they used the wrong email address.&lt;br /&gt;
&lt;br /&gt;
===Handling users who do not act upon standard messages===&lt;br /&gt;
When users do not bother to read and act on standard NEOSYS-generated messages and instead ask for help, Support staff MUST delay response time and thereafter send them an email which is the same as the message so they get the point that in future they should read the messages and handle issues themselves.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests to do Client work===&lt;br /&gt;
NEOSYS Support staff must not agree or offer to do work on behalf of the client. &lt;br /&gt;
&lt;br /&gt;
This is because doing client work while logged in as NEOSYS breaks security rules. Support uses the NEOSYS username which has unrestricted access, so when a user requests Support to do some work which they don’t have access to, and if Support agrees to do the work, the client has successfully defeated the security rules by accessing features that they are unauthorised to access.&lt;br /&gt;
&lt;br /&gt;
If a client makes a false claim about an issue in NEOSYS, i.e. if Support finds out that there is no real issue, then direct the client in the right direction so that they find out their mistake by themselves. Support MUST NOT show/explain the problem to them in detail, since you are just doing their work for them by explaining the problem and this will encourage the client to contact support for every petty issue they face. &lt;br /&gt;
&lt;br /&gt;
Client work also includes [[Procedures#Handling_issues_with_totals_on_reports|Handling issues with totals on reports]].&lt;br /&gt;
&lt;br /&gt;
====Requests for colour and font changes====&lt;br /&gt;
&lt;br /&gt;
Support should not be spending lots of time on colour and font changes. Clients can make as many changes as they want until they are happy with a selection. Clients MUST send a screenshot of their required color/font settings (not sample screen/reports) for Support to copy and setup for all users. If Support sees them doing something bad or poor then give comments or better suggestions.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests that require Approval from Higher Authority===&lt;br /&gt;
&lt;br /&gt;
The following is a list of user requests that must be handled by NEOSYS support staff only if they are approved by or come from a higher authority (manager/admin). The LIST is &#039;&#039;&#039;NOT&#039;&#039;&#039; a complete list so there may be other things which might require approval so use good judgement and/or ASK if in doubt.&lt;br /&gt;
&lt;br /&gt;
*Opening new financial year&lt;br /&gt;
*Adding new company/dataset&lt;br /&gt;
*Editing alert/backup email receiver addresses&lt;br /&gt;
*Customising Authorisation File ({{SensitiveSecurity }})&lt;br /&gt;
**Adding or removing accesses for existing users in Authorisation file&lt;br /&gt;
**[[Procedures#Handling_new_USER_creation| Adding new user(s) to Authorisation file]]&lt;br /&gt;
**Expiring a user&lt;br /&gt;
**[[Procedures#For_HTTPS_access| Allowing HTTPS/outside office access from any IP number]]&lt;br /&gt;
&lt;br /&gt;
If an unauthorized user sends one of these requests to support staff, support staff must immediately instruct the user to get the request approved by the higher authority.&lt;br /&gt;
&lt;br /&gt;
====Handling Requests from people impersonating an Authorised person====&lt;br /&gt;
Clients may impersonate an authorised person by using their email address or signature when they are told that the request must come from or be approved by the authorised person. Support must use their judgement to deal with such requests. &lt;br /&gt;
&lt;br /&gt;
If it is a simple request such as adding a new user or expiring one, Support can go ahead with the request.&lt;br /&gt;
&lt;br /&gt;
If it is a request with risk involved such as providing remote access or granting high-level authorisation, Support must then contact the authorised person and let them know that their approval for the request has been received and are proceeding with the request.&lt;br /&gt;
&lt;br /&gt;
===Handling User Requests to add an IP or range of IPs to access NEOSYS===&lt;br /&gt;
&lt;br /&gt;
Support staff must identify if the IP or range of IPs is for http or https access.&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
====For HTTP access====&lt;br /&gt;
Support staff can add local IP or range of local IPs when requested by the client. Top management approval is not needed to add local IP numbers. Listed below are the IP address ranges reserved for local network.&lt;br /&gt;
&lt;br /&gt;
10.0.0.0 – 10.255.255.255&lt;br /&gt;
&lt;br /&gt;
172.16.0.0 – 172.31.255.255&lt;br /&gt;
&lt;br /&gt;
192.168.0.0 – 192.168.255.255&lt;br /&gt;
&lt;br /&gt;
====For HTTPS access====&lt;br /&gt;
Any request for https access from any IP address or range of IP addresses (eg. 123.456.* or just *), or in other words any use of an asterisk in the IP restrictions, MUST have TOP management i.e. the company&#039;s decision makers approval. The Staff and their Managers are not the best decision makers in this affair because they usually ignore the risks and it is not really their decision. Security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc can be triggered if access from any IP is enabled. It is completely pointless to inform the staff who want the access about these risks because only their top managers could really decide that this is NOT going to be allowed. Hence the Top Management MUST be asked for approvals and at the same time WARN them about the security risks/threats behind the no IP restrictions.&lt;br /&gt;
&lt;br /&gt;
=====For clients with static IP=====&lt;br /&gt;
Any request to add a specific IP address to the list of allowed IP addresses MUST have management approval.&lt;br /&gt;
&lt;br /&gt;
=====For clients with dynamic IP=====&lt;br /&gt;
For clients with dynamic IP, support MUST NOT add their public IP to the allowed list as this will encourage the client to again request for access from new IP numbers every time their public IP changes. Instead, support MUST force the client to either get a static IP, install VPN or get the Top Management i.e. the company&#039;s decision maker&#039;s approval to enable access from any IP after explaining the security risks in doing so, as mentioned above.&lt;br /&gt;
&lt;br /&gt;
Support MUST also mention that installation of VPN by the Company is the industry standard way of providing access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER. Installation of VPN is to be done by their own IT support. Refer to [[Procedures#Using_VPN_to_enable_secure_access_from_outside_the_office|Using VPN to enable secure access from outside the office]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Sample Email addressed to Top Management:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear &amp;lt;XXXXX&amp;gt;,&lt;br /&gt;
 &lt;br /&gt;
I do not recommend allowing access from all IPs because security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc. can be triggered if access from any IP is enabled.&lt;br /&gt;
&lt;br /&gt;
I strongly recommend that you keep IP restrictions for &amp;lt;XXXXXX&amp;gt; dataset.&lt;br /&gt;
  &lt;br /&gt;
If you want to provide access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER, then installation of VPN is the industry standard of achieving this. Installation of VPN is to be done by your own IT support. &lt;br /&gt;
 &lt;br /&gt;
If you still wish to allow access from all IPs, kindly confirm that you acknowledge the security threats of doing so. &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling repeated request to allow users to access from all IPs===&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
If the client wants temporary access from outside for some staff twice in say a six months period then support should send the below email. The real reason is because we don&#039;t have the time to be doing this on a regular basis. If at all the client asks why we no longer support the provision of temporary outside access then we can say this is because of the frequency of such requests.&lt;br /&gt;
&lt;br /&gt;
 Dear XXX&lt;br /&gt;
 &lt;br /&gt;
 We have given you temporary outside access this time, as requested. Please note that we can no longer support the provision of temporary outside access. So in the future, you will have to choose between either permanent or no outside access. Alternatively, you can ask your management to install a VPN (which is the industry standard of achieving outside access to a corporate asset in a secure manner), so that you can log in to NEOSYS from outside.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create a new feature or modifying existing features===&lt;br /&gt;
&lt;br /&gt;
Many issues are small and not important but can still be considered for development because they may be easy and neatly added to NEOSYS. The aim here is to avoid development on hard issues for little benefit, or little issues that make NEOSYS more complex for little benefit.&lt;br /&gt;
&lt;br /&gt;
When a client requests to create a new feature or modify an existing feature, a workaround must be given to the user, which is either a permanent solution, for example if the issue is a rare case and not commonly faced by other clients (and the workaround is acceptable to the client), or a temporary solution until some better solution is discovered or can be developed.&lt;br /&gt;
&lt;br /&gt;
Support MUST check all options on all pages to look for any already existing solution or workaround to the problem before emailing the programmer.&lt;br /&gt;
&lt;br /&gt;
Any request to create a new feature or modify an existing feature MUST be discussed with other clients before forwarding it to the programmer because the other clients might not be comfortable with the change as it may not be in accordance with their workflow. If other clients agree to the proposed change then support should go ahead and request the programmer to implement it.&lt;br /&gt;
&lt;br /&gt;
Therefore before escalating a request to the programmer to modify a feature in NEOSYS, the approval for the same from other clients must be taken into account.&lt;br /&gt;
&lt;br /&gt;
Any request to fix or modify a feature in NEOSYS must be accompanied with good reason and some basic considerations, so that the programmer knows what level of priority it can be dealt with. &lt;br /&gt;
&lt;br /&gt;
When escalating the request to the programmer, support MUST avoid using &amp;quot;Is it possible..?&amp;quot; because the obvious answer to that is &amp;quot;Anything is possible&amp;quot; and because this question is only a way to avoid doing the real work of deciding whether the new feature/modification should be implemented.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to add more fields to List of Invoices reports===&lt;br /&gt;
&lt;br /&gt;
Many users may ask for the List of Invoices report to be expanded to show a zillion other things, but this makes it NOT a list of invoices. Therefore other break-downs MUST be obtained from other reports in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Updating Clients about unresolved issues===&lt;br /&gt;
Support should proactively inform clients if an issue is not solved within the same day it was raised, after judging the urgency of the issue and the time it was raised. An email to the client who raised the issue, before the end of each day, is a best practice that keeps the client updated and other support staff too. This email should be sent regardless of the degree to which the issue has been resolved or if the issue is unresolved. If the issue is unresolved, the email should explain why and also explain the cause of delay.&lt;br /&gt;
&lt;br /&gt;
===Handling new USER creation===&lt;br /&gt;
====Get Approval====&lt;br /&gt;
Support staff should create new USERS for clients ONLY when requested by an authorised person. If the authorised person is unavailable, for example on leave, then get approval from someone who is in the backup mail list.&lt;br /&gt;
&lt;br /&gt;
Ideally only people who are users in NEOSYS and have authority over some task can grant or request authority to do that task to other NEOSYS users. However, if this is not the case and the requesting person has some seniority in the company (but is either not a NEOSYS user, or is not actually currently authorised to perform the task themselves) you may decide that it is not wise to proceed without some confirmation. In such a case be very respectful of their position while rejecting any request perhaps stating something like:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Currently we have instructions to take requests concerning authorisation only from xxx, yyy and zzz. Please could this request be confirmed by one of them?&amp;quot; Rewrite this judiciously to suit the occasion.&lt;br /&gt;
&lt;br /&gt;
Consider that different sections of a company may have different chain of commands. For example one should not assume that a Sales Director has authority over Finance unless there is firm evidence. If there is any doubt consult NEOSYS Support Managers.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT directly contact the authorised person asking for approval/confirmation because that is client work.&lt;br /&gt;
&lt;br /&gt;
In a case where a client is [[Procedures#Handling_Requests_from_people_impersonating_an_Authorised_person|impersonating an Authorised person]] to get a new user request approved, Support may go ahead with the request. If the client is asking to create a high-level user, you may include users from the same department or other high-level users in your email.&lt;br /&gt;
&lt;br /&gt;
Clients should not be discouraged to create new users. Clients are billed as per user usage which is reviewed periodically. Over time old USERS are replaced with new USERS.&lt;br /&gt;
&lt;br /&gt;
====Creating User====&lt;br /&gt;
Preliminary:&lt;br /&gt;
&lt;br /&gt;
New user requirements :-&lt;br /&gt;
&lt;br /&gt;
*Full name                                      - (like John Smith and not generic name like Copy Writer)&lt;br /&gt;
*Email address                                  - (like johnsmith@example.com and not generic address like copywriter@example.com)&lt;br /&gt;
*Group level / User with similar authorisation&lt;br /&gt;
&lt;br /&gt;
The USER code is the first name of a user. &lt;br /&gt;
&lt;br /&gt;
1. Support MUST only create NEOSYS accounts with real names and email addresses WITH NO EXCEPTIONS unless agreed by NEOSYS management.&lt;br /&gt;
&lt;br /&gt;
It is acceptable, although inefficient, for one person to have multiple user accounts either concurrently or sequentially, but the opposite MUST never occur.&lt;br /&gt;
One NEOSYS user code/account MUST never have more than one real person associated with it neither concurrently nor sequentially.&lt;br /&gt;
In order to maintain efficiency, various fleeting temptations to cut corners and break the ONE TO ONE link between NEOSYS users accounts and real people MUST be resisted.&lt;br /&gt;
These principle remain mandatory even when pressure is exerted by people, even senior management, who may not appreciate the issues involved.&lt;br /&gt;
The fact that NEOSYS support does not know for certain who is the real person using an NEOSYS account does not change these principles.&lt;br /&gt;
&lt;br /&gt;
2. Support MUST not create GENERIC user codes like AUDITOR or MANAGEMENT (even to grant special access to such users like read-only access) as this breaks all security rules.&lt;br /&gt;
Do not re-use user codes. Always create NEW user codes for NEW users.&lt;br /&gt;
&lt;br /&gt;
3. Support MUST not create or modify any usable NEOSYS account that is or has been used by more than one user.&lt;br /&gt;
&lt;br /&gt;
4. Support is responsible to maintain the system in good working order and not knowing who is really doing the work in the system can make support harder.&lt;br /&gt;
&lt;br /&gt;
5. Support MUST not collude with clients to by-pass the principles. If asked to do so Support MUST refuse to create or update such accounts.&lt;br /&gt;
&lt;br /&gt;
6. Do not hand over user codes from one person to another in a mistaken attempt to represent a hand over to a replacement. EXPIRE THE OLD USER CODE/ACCOUNT AND CREATE A NEW USER CODE/ACCOUNT.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
7. Support team MUST NOT discuss billings with clients unless authorised to do so. Also see [[Procedures#Discussing_Pricing|Discussing Pricing]] &lt;br /&gt;
&lt;br /&gt;
8. Support team MUST NOT proceed with creating new users until the group level or existing user with similar authorisation has been clearly provided by the client, otherwise the new user may end up with more than the required authorisation, which can lead to problems in future.&lt;br /&gt;
&lt;br /&gt;
====After Creating New User====&lt;br /&gt;
&lt;br /&gt;
Support MUST send an email to the person who requested the creation of new user, confirming that the new user has been created along with a screenshot of that part of the authorisation table where the new user was created so that the new user&#039;s user code and email id is visible. This is done so that in case there is some error in the user code or email id, it is easily visible in the screenshot and also so that the person who requested the creation of the new user is informed about the user code of the new user.&lt;br /&gt;
&lt;br /&gt;
===Handling letterhead change requests===&lt;br /&gt;
&lt;br /&gt;
Support staff should reject any requests that require the letterhead to be setup on the TESTING dataset before it is setup in the MAIN dataset.This is to reduce double work for support staff and to ensure that clients have a clear understanding of their requirements and also send the correct logo image.&lt;br /&gt;
The MAIN dataset can be copied to the TEST dataset for any kind of testing.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Configuring_Letterhead#Changing_the_letterhead_for_printed_documents How to change letterhead]&lt;br /&gt;
&lt;br /&gt;
===Handling error messages===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Before Attempting to resolve client issues, please ensure that we have secure access to the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
#The very first step is understanding client problem. Ask questions to the client until you CLEARLY understand the problem.&lt;br /&gt;
#If the error is familiar and does not require a screenshot, resolve the problem immediately.&lt;br /&gt;
#If the error is unfamiliar and/or requires a screenshot and the user has not sent a screenshot, IMMEDIATELY ask the user to send a screenshot of the problem, along with the options used (basically you need to know HOW to replicate the error and the screenshot MUST show WHAT the error is).&lt;br /&gt;
#If the user says &amp;quot;nothing happens, so no screenshot of the error&amp;quot;, then IMMEDIATELY request for screenshots again with the exact steps to reproduce the problem using mouse and keyboard.&lt;br /&gt;
#Support team MUST NOT provide support without a screenshot, otherwise the client will not pay attention to support team in future and ignore requests for screenshots.&lt;br /&gt;
#Upon receipt of the error and steps to reproduce the error, follow the steps and reproduce the error. Also refer to [[Procedures#Addressing_Browser_related_issues|Addressing Browser related issues]]&lt;br /&gt;
#If the issue is unknown or you don’t understand it clearly, with the users acknowledgement use remote support to gain access to the users desktop to view how to replicate the error.&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
====Understanding Internal error messages====&lt;br /&gt;
&lt;br /&gt;
Internal errors messages appear in red on screen and an email which is sent to support with more details. (Example below)&lt;br /&gt;
&lt;br /&gt;
[[image:Rawformdatapng.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;ERROR NO:&amp;quot; line is comprised of the error number (B16), the program (MARGIN_BASE) and the line number (1). Sometimes the line number is wrong, refer to section &amp;quot;Misleading line numbers in error messages&amp;quot; below for more info.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;STACK:&amp;quot; line lists the &amp;quot;parent&amp;quot; calling programs &amp;quot;SYSMSG,LISTEN&amp;quot; used to trace how and where the error originates.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;DATA:&amp;quot; is a string of characters that is used to recreate the options used by the client in order to replicate the error message. See how to [[Troubleshooting_NEOSYS_Generally#Replicate_options_used_.26_error_using_sysmsg_Data: | replicate the error with the options used, using internal error email]]&lt;br /&gt;
&lt;br /&gt;
====Misleading line numbers in error messages====&lt;br /&gt;
&lt;br /&gt;
Many small NEOSYS utility programs are compiled to run faster than usual programs and will not report the correct line on errors like Variable Not Assigned.&lt;br /&gt;
&lt;br /&gt;
To get the actual line number, compile as usual. ie without the (CL) options mentioned below, and regenerate the error.&lt;br /&gt;
&lt;br /&gt;
Note that most of these programs should have a source line &amp;quot;linemark&amp;quot; or &amp;quot;*linemark&amp;quot; in them somewhere near the top. When single stepping in the debugger, the program will break on this line and this line alone.&lt;br /&gt;
&lt;br /&gt;
To compile a GBP program DATE for speed use something like the following:&lt;br /&gt;
&lt;br /&gt;
 COMPILE GBP DATE (CL)&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;L&amp;quot; means compile without line numbers. This makes them run faster, which is important for utility programs that are called extremely frequently eg for date or number input/output conversion.&lt;br /&gt;
*&amp;quot;C&amp;quot; means do not generate a symbol table in GBP $GETPERIOD. It makes no difference whether you do or do not.&lt;br /&gt;
&lt;br /&gt;
===Addressing Browser related issues===&lt;br /&gt;
&lt;br /&gt;
When resolving random browsing issues that seem to be on one user computer only, support MUST send the below email asking the user to check if the same issue occurs on other user computers. Rapidly convincing the user that the problem is only on their computer gains their willingness to sort the problem out at their end, using IT people if necessary and available.&lt;br /&gt;
&lt;br /&gt;
Handling random issues that appear to be on one computer is very very common and it is important to deal with it effectively, not requiring stages of &amp;quot;denial&amp;quot; by the users until they accept something has to be done at their end, and not by NEOSYS. Speeding up this process gains the confidence and appreciation of the users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Hi xxxx&lt;br /&gt;
&lt;br /&gt;
Is this error happening only on your computer? If that is the case, it may be due to an issue in your browser cache. Please clear your browser cache with assistance from your IT team if required. Then restart the browser and try again.&lt;br /&gt;
&lt;br /&gt;
If clearing browser cache does not fix the issue, I recommend a full browser reset to ensure that everything works fine.&lt;br /&gt;
&lt;br /&gt;
Follow these instructions for clearing browser cache and resetting browser:&lt;br /&gt;
http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers&lt;br /&gt;
&lt;br /&gt;
Please let us know if you face the issue again.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Handling_Browser_related_issues_in_NEOSYS| Handling Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
===Addressing Technical support emails===&lt;br /&gt;
&lt;br /&gt;
In the case of technical support issues, address emails to the IT person and cc the complete group of recipients of backup emails and other NEOSYS alert emails. This allows both NEOSYS and client IT staff to take credit for resolving issues that NEOSYS raises instead of working in the background unacknowledged.&lt;br /&gt;
&lt;br /&gt;
Technical support issues include backup failure, server failure, missing alert email, server connectivity issues and port forwarding issues and many other issues.&lt;br /&gt;
&lt;br /&gt;
For technical issues like browser configuration, clear cache, etc. support must send the user a link to the appropriate wiki article to help the user fix the problem. In some cases the user may be helpless and unable to follow the steps to fix the problem. In such cases, support MUST NOT waste time trying to help the user fix the problem, instead support MUST ask the user to get help from the IT person.&lt;br /&gt;
&lt;br /&gt;
===Acceptable report format when handling issues in NEOSYS reports===&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support must only resolve issues in NEOSYS output first. This is because only NEOSYS outputs can be trusted and user versions in Excel or PDF could be copied wrongly or edited by the user.&lt;br /&gt;
&lt;br /&gt;
In case users send reports in excel or other formats, get them to send the original NEOSYS HTML report as an attachment or copy-pasted in email.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create new charts or control accounts===&lt;br /&gt;
&lt;br /&gt;
[http://userwiki.neosys.com/index.php/Setting_up_and_Configuring_NEOSYS_Finance_System#Creating_New_Charts_or_Control_Accounts Refer here]&lt;br /&gt;
&lt;br /&gt;
===Handling issues with totals on reports===&lt;br /&gt;
&lt;br /&gt;
If a client has a problem with any total output by NEOSYS software then NEOSYS support will advise them which other NEOSYS report or reports provide a complete breakdown of the total (if necessary, to individual transactions) and ask the client to locate any offending transactions themselves.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff will handle any issues where the total on the breakdown report does not add up to the total on the summary report.&lt;br /&gt;
&lt;br /&gt;
Reconciling totals can be hard if there are many transactions involved. Regardless of how hard it may be, reconciliation is an operational task for users not for support staff since NEOSYS support staff will not get involved in understanding client transactions or data.&lt;br /&gt;
&lt;br /&gt;
====Trial Balance and Financial Statements====&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff do not have to prove or trace any figures in NEOSYS Trial Balance Reports or any financial reports. If a figure is stated to be wrong by the user, then NEOSYS support staff should ask for proof or say NEOSYS is confident that the figures are correct unless proved otherwise. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff should point out reports in NEOSYS which will support the figures in question but not actually run the reports. Support staff can suggest the users to refer to detailed ledger accounts to prove balances.&lt;br /&gt;
&lt;br /&gt;
==Using VPN to enable secure access from outside the office==&lt;br /&gt;
There are two ways in which a user can use VPN:&lt;br /&gt;
&lt;br /&gt;
*User connects to the their office router and makes the PC act like it is on the office LAN.&lt;br /&gt;
*User connects to a VPN service that provides a static IP number and can therefore be authorised by NEOSYS to login.&lt;br /&gt;
&lt;br /&gt;
If the client intends to use VPN to connect to their office router and make the PC act like it is on the office LAN, then it depends on what VPN protocols the client&#039;s office router supports.&lt;br /&gt;
&lt;br /&gt;
The alternative is to use a paid VPN service that provides a static IP number. Getting a dynamic IP number on VPN is very cheap and there are many suppliers, but getting a static IP number on VPN services seems to be more expensive.&lt;br /&gt;
&lt;br /&gt;
Internally in NEOSYS we use PFSENSE routers which support OPENVPN which is extremely flexible.&lt;br /&gt;
&lt;br /&gt;
==Handling issues with Office PBX phones==&lt;br /&gt;
&lt;br /&gt;
Support should check their respective Office PBX phones every morning to find out if the phone is up and working. In case Support finds any issue with their phone, immediately fix it so that clients do not lose contact with the  Support team via phone. Next send an email to Support inbox mentioning the fault, cause and solution for records/future prevention.&lt;br /&gt;
&lt;br /&gt;
==Running undocumented commands on Maintenance mode==&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST NOT run undocumented commands on ***LIVE*** database. Some commands are not documented for a reason, it could be because the commands might give an undesired output or because there is no clarity on what else could be effected by the command.&lt;br /&gt;
&lt;br /&gt;
Even if the command is tested in TESTING database and the output looks okay, support staff MUST get the programmer&#039;s approval before going ahead and running the command in LIVE database as there is no guaranty that the command is properly programmed and will do no damage.&lt;br /&gt;
&lt;br /&gt;
==Configuring Browsers to show Javascript errors in NEOSYS==&lt;br /&gt;
NEOSYS Support MUST ensure the following Settings for browsers because if NEOSYS generates any javascript error message, the same would appear in the bottom left corner of a window, which in turn helps the programmer to fix the error. This must be done after every Factory Reset.&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer===&lt;br /&gt;
Tools &amp;gt; Internet Options &amp;gt; Advanced &amp;gt; Browsing - the items Disable script debugging (Internet Explorer) and Disable script debugging (Other) are &#039;&#039;&#039;UNTICKED&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===Chrome=== &lt;br /&gt;
Chrome Menu &amp;gt; More Tools &amp;gt; Extensions &amp;gt; Get More Extensions, search for &#039;&#039;&#039;Javascript Errors Notifier&#039;&#039;&#039;. Add the extension to Chrome.&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome1.png]]&lt;br /&gt;
===Firefox===&lt;br /&gt;
Firebug add-on is used to NOTIFY about script errors because we have no other method to get any warning on screen but you should use the main firefox developer tools to investigate any errors as firebug is essentially replaced by built in developer tools. &lt;br /&gt;
&lt;br /&gt;
For developer tools, go to Tools &amp;gt; Web Console&lt;br /&gt;
&lt;br /&gt;
To enable notifications for script errors, download the add-on Firebug from [https://addons.mozilla.org/en-US/firefox/addon/firebug/ here]. When a Javascript error is encountered, the firebug icon will report the number of errors.&lt;br /&gt;
&lt;br /&gt;
Set your firebug as per the second screen shot and select &amp;quot;Enable All Panels&amp;quot; as well, the tick will not appear like the other options but the option will get selected. If you miss out on any one of these steps, you will not be able to capture script errors.&lt;br /&gt;
&lt;br /&gt;
[[file:firebug1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Firebug.png]]&lt;br /&gt;
&lt;br /&gt;
==Handling Browser related issues in NEOSYS==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Technical_/_Hardware_requirements#NEOSYS_Software_Browser_and_OS_Requirements NEOSYS browser requirements]&lt;br /&gt;
&lt;br /&gt;
Clients frequently ask [http://userwiki.neosys.com/index.php/General_FAQ#Why_doesnt_NEOSYS_support_my_XYZ_browser.3F Why NEOSYS doesn&#039;t support other browsers] &lt;br /&gt;
&lt;br /&gt;
To avoid browser errors, all new users must follow the steps given in [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#Getting_started_with_NEOSYS Getting started with NEOSYS] before logging in to NEOSYS for the first time.&lt;br /&gt;
&lt;br /&gt;
To troubleshoot browser related errors see [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers Troubleshooting Web Browsers]&lt;br /&gt;
&lt;br /&gt;
Users must clear browser cache after every NEOSYS Upgrade to avoid errors. See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS#Sample_email_to_be_sent_to_clients_who_face_issues_due_to_failure_in_clearing_browser_cache Sample email to clients who face issues due to failure in clearing browser cache]&lt;br /&gt;
&lt;br /&gt;
Pop-up blockers and any 3rd party toolbars must be deactivated/switched off or else certain pages and alert messages while using NEOSYS do not appear as a result of blocking from either the pop-up blocker or toolbars with built-in pop-up blockers. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support must ask users to Reset browser (See [http://userwiki.neosys.com/index.php/Reset_Browser Reset browser]) if they notice any user browsers which have pop-up blockers or 3rd party toolbars installed.&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Addressing_Browser_related_issues| Addressing Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
==Handling NEOSYS Upgrade==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS Upgrading NEOSYS]&lt;br /&gt;
&lt;br /&gt;
==Handling auto-reply emails like Out of Office etc.==&lt;br /&gt;
&lt;br /&gt;
From 28th May 2017 version, emails sent out by the NEOSYS system now contain headers that in effect request recipient email systems not to auto-reply for things like Out of Office. This is to reduce unnecessary chatter by silencing unnecessary automatic replies. There is no guarantee that recipient email systems will comply. The headers added are:&lt;br /&gt;
&lt;br /&gt;
*X-Auto-Response-Suppress: RN, NRN, OOF&lt;br /&gt;
*Precedence: bulk&lt;br /&gt;
&lt;br /&gt;
Support team should notify SB of any auto-responses that come despite their installation being patched.&lt;br /&gt;
&lt;br /&gt;
In NEOSYS versions after 10th Jun 2017, emails sent by NEOSYS from the NEOSYS Help menu, i.e. manually triggered emails, do NOT indicate that OOF replies are not wanted, since if you are sending emails to people using NEOSYS, you will want to know if they are OOF.&lt;br /&gt;
&lt;br /&gt;
==Using Support Tools==&lt;br /&gt;
===Website Live Support===&lt;br /&gt;
www.neosys.com is equipped with a Live Support software and clients can visit the website, click on this link and chat with any of our support staff, without the need for any installation. The client has to fill in their name and enter their questions to connect to an available support personnel. During non-working hours, the Live Support icon on the website automatically displays &amp;quot;offline&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support personnel who are authorised to provide such support, need to login to Live helper chat in Firefox using the link given below:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/&lt;br /&gt;
&lt;br /&gt;
Support personnel should enter the account details as provided by their Manager.&lt;br /&gt;
&lt;br /&gt;
Enable notifications for Live helper chat so that whenever there is a visitor trying to contact Support team, the Support personnel will get the notifications on his screen. &lt;br /&gt;
&lt;br /&gt;
Set the Live helper chat login page as your home page in Firefox and this page must be kept open for the whole duration of working hours. &lt;br /&gt;
&lt;br /&gt;
Support must always be alert and immediately reply to messages from visitors.&lt;br /&gt;
&lt;br /&gt;
Use the link below to enable notifications:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/chat/listchatconfig&lt;br /&gt;
&lt;br /&gt;
After setting up Live helper chat if you sign in to a new profile in Firefox, you might have to re enable the notifications after your Firefox is synced to the new profile.&lt;br /&gt;
&lt;br /&gt;
===Teamviewer===&lt;br /&gt;
Since Teamviewer allows no restriction on access once a fixed pass is installed, Support must not install fixed pass on teamviewer however convenient it might be.&lt;br /&gt;
&lt;br /&gt;
RULE: NO FIXED PASS TO BE INSTALLED ON TEAMVIEWER IN ANY NEOSYS OR NEOSYS CLIENT COMPUTER&lt;br /&gt;
&lt;br /&gt;
Running teamviewer live from a web link is fine because it does not allow installation of a permanent password&lt;br /&gt;
&lt;br /&gt;
For certain tasks that require temporary install of Teamviewer on the client servers (e.g. upgrading Cygwin remotely), use Teamviewer 7 on the server as well as Support staff computer. Contact NEOSYS IT for commercial license of Teamviewer 7. Teamviewer MUST be uninstalled after usage, otherwise it creates an additional unnecessary security risk.&lt;br /&gt;
&lt;br /&gt;
To support client users who use the latest version of Teamviewer, support staff must also install the latest Teamviewer version available alongside Teamviewer 7.&lt;br /&gt;
&lt;br /&gt;
==Documenting Processes in Wiki==&lt;br /&gt;
NEOSYS Support staff must be in continual learning mode. This is mandatory for support staff and is not an option. Support must read, learn and understand everything in the support emails and ask questions if they don&#039;t understand. This understanding must be transferred into wiki in the form of new articles and improvements to existing articles.&lt;br /&gt;
&lt;br /&gt;
For all articles related to formatting and editing in Wiki, see [http://itwiki.neosys.com/index.php/Documenting_NEOSYS_systems Documenting NEOSYS systems]&lt;br /&gt;
&lt;br /&gt;
===Avoiding duplication of text in wiki===&lt;br /&gt;
&lt;br /&gt;
Duplication of text in wiki is to be avoided almost at any cost. Duplication has the problem that when one copy is changed or improved in future then it is highly likely the editor will fail to update the other copy or copies and wiki will over time become an inconsistent mess.&lt;br /&gt;
&lt;br /&gt;
There are several ways to avoid duplication:&lt;br /&gt;
&lt;br /&gt;
#Two or more procedures which have significant areas of duplication can be rewritten as a single procedure with alternatives in the middle of the procedure&lt;br /&gt;
#Wiki Templates- Templates reproduce the same text in all places and editing one place edits all places. See [[How to create templates in wiki]]&lt;br /&gt;
#Wiki links- Only put the text in one place and put links to that in all the other places that it is appropriate.&lt;br /&gt;
#Place a note in all copies something to the effect that &amp;quot;This is similar to x, y and z&amp;quot;. This alerts any future editor of all other places in wiki that might also have to be updated.&lt;br /&gt;
&lt;br /&gt;
Future modifications in one place may or may not be appropriate to other places. The editor must decide whether to change one or all places&lt;br /&gt;
&lt;br /&gt;
===Highlighting information in wiki===&lt;br /&gt;
&lt;br /&gt;
To highlight particular instructions or info in wiki do NOT invent new styles which are not the way the rest of wiki is done. Instead, follow the USUAL STYLE or open a DISCUSSION with any recommendations you have BEFORE USING THEM.&lt;br /&gt;
&lt;br /&gt;
Instead of using various kinds of highlighting styles like bolding and words like &amp;quot;Note:&amp;quot;, use the following words IN CAPITALS especially the word MUST.&lt;br /&gt;
&lt;br /&gt;
The use of the following words IN CAPITALS indicates that you are using them in a special way with formally defined meaning as explained below. Use of the words in lower case indicates that you are using the word in an ordinary commonsense meaning.&lt;br /&gt;
&lt;br /&gt;
*MAY - means optional&lt;br /&gt;
*SHOULD - means recommended and you need GOOD reason (not just any weak excuse) to not follow to follow this recommendation&lt;br /&gt;
*MUST - mandatory&lt;br /&gt;
&lt;br /&gt;
Only in the rare cases where the consequences of doing or not doing something are irreversible or take a lot of work to reverse then you can use your own additional highlighting methods, eg ALL CAPS, stars, color red etc.&lt;br /&gt;
&lt;br /&gt;
====Explain WHY====&lt;br /&gt;
&lt;br /&gt;
Any sentence which uses the word &amp;quot;MUST&amp;quot; in capitals, MUST be followed by a SPECIFIC REASON explaining exactly why is the instruction is mandatory; the reason MUST not be vague and non-specific meaning no more than &amp;quot;or bad things will happen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules otherwise it will cause problems in future.&lt;br /&gt;
&lt;br /&gt;
 CORRECT way: You MUST also delete ads if deleting schedules otherwise the deleted schedules&#039; ads will still show in all media-diary like reports and screens&lt;br /&gt;
&lt;br /&gt;
The Wrong way above gives a general reason &amp;quot;it will cause problems in future&amp;quot; which is vague and a reader may even go ahead and ignore &amp;quot;MUST&amp;quot; because there is no objective or proper side effect mentioned for not following the MUST statement. Basically he doesn&#039;t understand the point behind following a certain rule. &lt;br /&gt;
&lt;br /&gt;
Whereas the Correct way gives a SPECIFIC reason for &amp;quot;deleting ads while deleting schedules&amp;quot;, so reader will exactly know the trouble that will be caused if ads are not deleted. Therefore &amp;quot;SPECIFIC REASON&amp;quot; behind using the word MUST must be to the point and very informative.&lt;br /&gt;
&lt;br /&gt;
====Why explain WHY====&lt;br /&gt;
The information contained in the WHY phrase is often &#039;&#039;&#039;extremely informative&#039;&#039;&#039; to the reader about things that you may otherwise not have considered saying.&lt;br /&gt;
&lt;br /&gt;
The most valuable information is usually contained in the &amp;quot;WHY&amp;quot; of something. There is an apocryphal story of a company where managers could be fired if they gave instructions to their staff without providing explanation. In almost all cases it is better for the efficiency of a team of people that any instructions they follow contain the &amp;quot;WHY&amp;quot; of something. Only in few cases should staff be expected to follow instructions without being well or fully informed.&lt;br /&gt;
&lt;br /&gt;
==Email Retention Policy==&lt;br /&gt;
&lt;br /&gt;
===Generally===&lt;br /&gt;
&lt;br /&gt;
Emails are retained permanently to allow old issues to be discovered in email searches.&lt;br /&gt;
&lt;br /&gt;
===Account: backups@neosys.com===&lt;br /&gt;
&lt;br /&gt;
Only the last 365 days of emails to backups@neosys.com are kept in general to reduce the burden on servers and clients due to the heavy number of emails.&lt;br /&gt;
&lt;br /&gt;
For the backups/neosys folder, only 31 days is kept due to the very high numbers of emails ~250/day.&lt;br /&gt;
&lt;br /&gt;
Deletions are configured in and done by a thunderbird client in NEOSYS IT so may not be continuous.&lt;br /&gt;
&lt;br /&gt;
==Use of personal email addresses by NEOSYS support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff MUST NOT use any personal email addresses for NEOSYS business. &lt;br /&gt;
&lt;br /&gt;
The xxxx.neosys@gmail.com addresses that are created by support staff for themselves on joining are also considered personal email addresses and must not be used for NEOSYS business. These email addresses might be linked to NEOSYS wiki accounts but that doesn&#039;t matter because wiki is not confidential.&lt;br /&gt;
&lt;br /&gt;
==Accessing NEOSYS accounts on personal devices==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff MUST NOT install NEOSYS accounts on skype/dropbox/gmail (or any other external tool) on their personal devices without written permission from NEOSYS management&lt;br /&gt;
&lt;br /&gt;
==Support Staff work-in-progress documents/files==&lt;br /&gt;
&lt;br /&gt;
Support Staff must not save working files hidden on their computer. Work that is not visible is not work .&lt;br /&gt;
Support work should not be done privately and should be shared to all.&lt;br /&gt;
&lt;br /&gt;
ALL personal working files however trivial MUST be stored in Dropbox and MUST NOT be stored anywhere in personal computer (My Documents/Desktop etc.)&lt;br /&gt;
&lt;br /&gt;
The personal encrypted pass file MUST be stored somewhere in personal folder under SB NEOSYS staff in Dropbox. This is because if there is a loss of OS/Computer, it should not lead to loss of access as all the passwords saved in the file will be lost.&lt;br /&gt;
&lt;br /&gt;
==Handling CLIENT/NEOSYS Servers==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff must exercise extreme caution when working on CLIENT and NEOSYS servers. Do not risk making changes without due care and attention to the fact that the consequences of errors can be serious on working production servers.&lt;br /&gt;
&lt;br /&gt;
===Handling Javascript Files in NEOSYS===&lt;br /&gt;
&lt;br /&gt;
All the files in NEOSYS installation folder with .JS and .JSE extension are the executable javascript files which startup NEOSYS processes (in a usual DOS window). Their default program is &#039;Microsoft Windows Based Script Host&#039; (wscript.exe). If a JavaScript file is opened using a notepad, the default program may change to notepad resulting in all NEOSYS processes to open up in a notepad.&lt;br /&gt;
&lt;br /&gt;
Hence be very CAREFUL when accessing a .JS and .JSE file and double check that the default program remains wscript.exe. Refer to [[Troubleshooting_NEOSYS_Generally#Fixing_wrong_default_program_assigned_to_open_a_file_type|Fixing wrong default program assigned to open a file type]] in case this issue comes up.&lt;br /&gt;
&lt;br /&gt;
==Handling &amp;quot;List of Open Ports&amp;quot; reports==&lt;br /&gt;
&lt;br /&gt;
This email comes to NEOSYS support team once a day showing only those client&#039;s servers which appear to have changed what TCP ports are open to the internet since yesterday. It will also come once a week showing all clients servers open ports.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support team should work patiently with client IT staff, over time if necessary, to close all ports that are not absolutely mandatory to be open.&lt;br /&gt;
&lt;br /&gt;
Clients with highly skilled IT staff may have a variety of ports open to various non-NEOSYS servers inside their organisation. In this case, NEOSYS plays little or no role other than getting their confirmation of exactly what ports are acceptable. Any new ports that appear over time should be handled in the same way.&lt;br /&gt;
&lt;br /&gt;
For clients without such staff, NEOSYS is their only real line of defence and since NEOSYS requested opening some ports, we should get all other ports closed by patiently following up until action is taken. Involving management may be the only way to get IT to act.&lt;br /&gt;
&lt;br /&gt;
High end port numbers (e.g. 49667) may represent transient outbound connections from users. Therefore for such port numbers, support team should contact the client only if the port remains open on the following working day.&lt;br /&gt;
&lt;br /&gt;
In particular, port 80 and 443 controlling internal or external routers should be closed. It is NOT acceptable except in HIGH IT EXPERTISE environments that critical routers should be exposed to the internet and they MUST NOT be accessible from the internet because routers that do not have their software updated can be hacked using known defects. Even updated routers can be hacked. Making it easy for client IT staff to access the router configuration from outside is NOT a good enough excuse to break this rule. Professional IT does not allow access to critical routers from the internet.&lt;br /&gt;
&lt;br /&gt;
Likewise, any port 80 (unencrypted web access) and port 3389 (RDP remote desktop) open to the NEOSYS server MUST be closed otherwise logins can be monitored and there is no way to guarantee server security.&lt;br /&gt;
&lt;br /&gt;
Port 23 (Telnet) is an insecure port because it is unencrypted and should never be open for usage. This is standard practice and well known by any network professional. Since the port is unencrypted, attackers can listen in, watch for credentials, inject commands via man-in-the-middle attacks and ultimately perform Remote Code Executions (RCE).&lt;br /&gt;
&lt;br /&gt;
If a port is definitely required and properly approved to be open by client IT support, please let NEOSYS IT (SB) know and it will be put in the &amp;quot;Authorised&amp;quot; column so that ports in the &amp;quot;Questionable&amp;quot; column are all pending action.&lt;br /&gt;
&lt;br /&gt;
The report does not attempt to detect UDP ports since UDP ports can receive information from the internet without responding in any way so there is no way to detect them reliably.&lt;br /&gt;
&lt;br /&gt;
Green color shows ports that have opened since the last report run. Open ports can sometimes not be detected accurately so a port may appear to disappear in one report and reappear in the next report.&lt;br /&gt;
&lt;br /&gt;
===Why should HTTP port 80 not be open on my router?===&lt;br /&gt;
&lt;br /&gt;
It is not advisable to expose any HTTP server for any private service on your computer network or router because HTTP is unencrypted and this means that all information regarding that service, including passwords, can be observed by any malware on your LAN and internet connection. This information can then be used to install horrible software on your internal PCs.&lt;br /&gt;
&lt;br /&gt;
What to do?&lt;br /&gt;
&lt;br /&gt;
Use https for any internal services - and advisably on a non-standard port, not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
For example, NEOSYS service is exposed as HTTPS (not HTTP) usually on port 4430 - not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
Commercial hacking is getting really common with things like FIREBALL and CRYPTOLOCKER causing a lot of damage.&lt;br /&gt;
&lt;br /&gt;
It is advisable to take basic precautions pro-actively before any attack exposes weaknesses.&lt;br /&gt;
&lt;br /&gt;
==Handling Nagios Client Monitoring system==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff on duty MUST follow the procedures outlined below in case the Firefox &amp;quot;imoin&amp;quot; add-on shows critical or warning messages for any service. Failure to schedule appropriate downtime will lead to REDUNDANT EMAIL ALERTS from Nagios every hour.&lt;br /&gt;
&lt;br /&gt;
Any alert on the Firefox &amp;quot;imoin&amp;quot; add-on means that there is an issue that has not been attended to properly, and &amp;quot;attended to&amp;quot; does not always mean solved. Support staff MUST solve the problem immediately if possible.&lt;br /&gt;
&lt;br /&gt;
If it is not possible to solve the problem immediately, then downtime/acknowledge the service and add a comment on the Nagios alert, explaining the problem briefly. &lt;br /&gt;
&lt;br /&gt;
Support should check Nagios frequently during the day to look for any new alerts so that issues are fixed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
*Nagios is required to be checked first thing in the morning and any critical or warning messages need to be dealt with to resolve the same at the earliest.&lt;br /&gt;
*Some of the messages could be related to backup failures and the usual procedure as stated in Handling failure and warning messages on nightly backup alerts needs to be followed. In case the backup issue isn&#039;t resolved by 9:30 am, the Nagios service needs to be downtimed with an appropriate comment for a minimum of 2 hours and maximum until 1 am next day if the issue cannot be solved.&lt;br /&gt;
*In case of &amp;quot;Backup not changed&amp;quot; warning status which occurs if the client has not interchanged the USB before 12 noon on that day, no action is required from the support staff and a downtime with a comment like &amp;quot;Backup media not changed - Emailed client&amp;quot; needs to be scheduled until 1 am next day.&lt;br /&gt;
*In case any HTTPS, SSH, PING service or Host is down, immediate action is required and the relevant IT people at the client side needs to be contacted to get this resolved. A downtime of 2 hours with a comment like &amp;quot;Service/host down - Emailed client&amp;quot; is required to be scheduled with further intervals of 2 hours in case this is not resolved. Support staff shouldn&#039;t schedule downtime till 1 am next day, just to get rid of the alerts for the day. Proactive follow up with the client is required to get this resolved before the business day - more so, if there is a weekend ahead.&lt;br /&gt;
*In case the HTTPS, SSH, PING service or Host goes down during the day, a grace period of 10 minutes is given before the issue is reported to the client IT, in case there is any temporary internet connection issue at the client or along the internet route.&lt;br /&gt;
*In case the HTTPS, SSH PING service or Host is down for more than 1 day, client IT should acknowledge the problem and give NEOSYS support staff an approximate time frame before which the issue will be resolved. Set an appropriate downtime with a descriptive comment for such events.&lt;br /&gt;
*In case Host is down for more than 2 days and there is no progress with the fix from client IT, the client management should be notified about the seriousness of not having access to server and their acknowledgement is mandatory.&lt;br /&gt;
&lt;br /&gt;
==Handling lack of remote access to NEOSYS server located in client’s premises==&lt;br /&gt;
&lt;br /&gt;
If access to the NEOSYS server is lost then we must determine the root cause by: &lt;br /&gt;
&lt;br /&gt;
#Checking if the server is UP and running&lt;br /&gt;
#If yes, please check internet connectivity on the server&lt;br /&gt;
#If there is connectivity, please check the router for connectivity issues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
Please note that we have currently lost access to the NEOSYS server. The server seems to be down at the moment and it seems that &lt;br /&gt;
NEOSYS processes are not running on the server.&lt;br /&gt;
Kindly check if the server is UP and running. If yes, please check internet connectivity on the server.&lt;br /&gt;
Do keep us posted on the server status so we can test connectivity from our side as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==New Router (Port Forwarding)==&lt;br /&gt;
&lt;br /&gt;
If you have changed your router then you may notice that external access to NEOSYS is unavailable. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to the NEOSYS Server as follows: &lt;br /&gt;
&lt;br /&gt;
#Port 19580 &amp;gt; 19580 for SSH&lt;br /&gt;
#Port 4430 &amp;gt; 4430 for HTTPS&lt;br /&gt;
&lt;br /&gt;
You can see [http://portforward.com/ Set Up Port Forwarding] to learn how to configure your Router.&lt;br /&gt;
&lt;br /&gt;
To see how to test/ troubleshoot port forwarding settings, go to [[Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding|Troubleshooting Port Forwarding]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
You are requested to kindly setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to &lt;br /&gt;
the NEOSYS Server,i.e.  port 19580 for SSH and port 4430 for HTTPS.&lt;br /&gt;
&lt;br /&gt;
Once this is complete, kindly send me an email to confirm the same so that we could test connectivity from our end as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Creating and Handling passwords==&lt;br /&gt;
===Creating a password===&lt;br /&gt;
Passwords are generated from a pass phrase and it is important to create a very difficult to guess pass phrase.&lt;br /&gt;
&lt;br /&gt;
Passwords made out of a pass phrase MUST be at least 10 characters since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts.&lt;br /&gt;
&lt;br /&gt;
For example, a good pass phrase would be: &#039;&#039;&#039;Today is a good day and it is the best time to go for a holiday&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The password for this would be &#039;&#039;&#039;Tiagd&amp;amp;iitbt2g4ah&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The important instructions for the above are:&lt;br /&gt;
&lt;br /&gt;
#You have to take the first letter of each word and that makes your password (i.e. by using initials)&lt;br /&gt;
#Wherever any word starts with a capital, then you have to take first letter as a capital (eg. For Today you will take T)&lt;br /&gt;
#Replace &#039;&#039;&#039;and&#039;&#039;&#039; with &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;to&#039;&#039;&#039; with &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;for&#039;&#039;&#039; with &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Handling passwords===&lt;br /&gt;
&lt;br /&gt;
#Never send the actual password - always send the pass phrase&lt;br /&gt;
#Make sure that the password created out of the pass phrase is at least 10 characters long since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts&lt;br /&gt;
#Pass phrases are never to be sent by email, whatever the case maybe.&lt;br /&gt;
#Pass phrases can be sent by chat - however they have to be broken down in two parts and sent separately over two different messengers or if you are using Gtalk then use the &#039;off the record&#039; mode.&lt;br /&gt;
#Using SMS to send pass phrases is the best known way as of now.&lt;br /&gt;
#If you save the passwords on your system in an file then:&lt;br /&gt;
#*Ensure that you only store pass phrases in the excel file&lt;br /&gt;
#*Ensure that the excel file is encrypted with a master password&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Maintenance Window==&lt;br /&gt;
&lt;br /&gt;
The NEOSYS server is functional from 6am – 1am. There is a 5hr window gap for the system to perform updates &amp;amp; backups.&lt;br /&gt;
&lt;br /&gt;
The 5hr maintenance window:-&lt;br /&gt;
&lt;br /&gt;
1. At 1am – The server performs a data backup on a USB (for the respective clients) &amp;amp; once the backup has been completed, the system automatically generates an email addressed to the neosys staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
2. At 2:45am – The main data over writes the test data on the server.&lt;br /&gt;
&lt;br /&gt;
3. At 3:00am – The server by itself performs an update for Windows.&lt;br /&gt;
&lt;br /&gt;
4. At 4:00am – The server performs a backup to the headquarters for clients, and then automatically generates an email addressed to the NEOSYS staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
5. At 6:00am – The server starts up NEOSYS.&lt;br /&gt;
&lt;br /&gt;
==Using NEOSYS Terminology while communicating with Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support must communicate in correct language to clients on finance issues in order to ensure that our records exactly represent reality. Conversely NEOSYS must not use other terminology because it can cause considerable confusion and poor quality results. In case client is new and still in training, use client terminology optionally as long as&lt;br /&gt;
&lt;br /&gt;
#It is only an addition to NEOSYS standard terminology&lt;br /&gt;
#Only if clear that it is client terminology by putting in brackets like this &amp;quot;Sales Invoices (called PI by you)&amp;quot;, where &amp;quot;you&amp;quot; means the client you are talking to or you can put the client company name instead perhaps.&lt;br /&gt;
&lt;br /&gt;
The objective is over time to avoid having the support team to have to know the terminology of the client. NEOSYS support team cannot possibly know and remember it for each client therefore the client MUST over time learn and use NEOSYS terminology. The initial period is one of relearning and translation for the client not for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
Many users operating NEOSYS finance module do not know proper financial procedures and may not appreciate how doing something in a wrong or unusual way now may not be correctable in the future.&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff must follow NEOSYS procedures only. If NEOSYS procedures need to be updated then this must be agreed in advance and not AFTER the fact.&lt;br /&gt;
&lt;br /&gt;
==Amending/Reposting Journal Entries==&lt;br /&gt;
In certain exceptional cases, amending/reposting of journal entries is allowed for only one day to enable clients to present reports in an alternative manner. &lt;br /&gt;
&lt;br /&gt;
It must be agreed with the client that reposting rights will be granted for only one day and NEOSYS Support will automatically remove it and check for CCB error thereafter.&lt;br /&gt;
&lt;br /&gt;
This would be subject to NEOSYS requiring a written LETTER OF APPROVAL duly signed and stamped by the highest management of the company.&lt;br /&gt;
&lt;br /&gt;
In case the client management decides to allow editing/reposting of journal entries, the following procedure is to be followed:&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;( While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Removal of unauthorized third-party software on client servers==&lt;br /&gt;
&lt;br /&gt;
Rule: Any third party software that is discovered by NEOSYS support staff on client servers that has been installed without the agreement of NEOSYS should be uninstalled immediately on discovery.&lt;br /&gt;
&lt;br /&gt;
However purposeful a software is, NEOSYS is contractually responsible for support and there are too many opportunities for poorly installed software to cause unpredictable damage to the NEOSYS database so NEOSYS has to have a clear and safe and simple policy to ensure the integrity of client data. Installing software without prior discussion with NEOSYS by itself indicates that insufficient care and consideration has been given to possible issues.&lt;br /&gt;
&lt;br /&gt;
Having unauthorized third party software on the server can possibly lead to a backup failure. For example, [[Backup_and_Restore#Error_Message:_.22LISTS_file_is_not_available.22|LISTS file not available]] error.&lt;br /&gt;
&lt;br /&gt;
Any software required by client IT for some purpose may only be installed after discussion and agreement from NEOSYS support staff concerning the configuration and operation of the software.&lt;br /&gt;
&lt;br /&gt;
The NEOSYS Software Licence and Support agreement requires that where NEOSYS software is installed on client servers that a dedicated server is provided and dedicated implies that no other software may be installed without the agreement of NEOSYS support.&lt;br /&gt;
&lt;br /&gt;
==Configuring tunnelier to autologin on opening tlp files==&lt;br /&gt;
If you have many tunnelier tlp files in a directory and connect by opening the desired tlp file the, instead of opening the file and then clicking Login you can also right click the file and select Connect.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can configure tunnelier to login (connect) automatically by following the procedure mentioned below. (Even if you configure automatic login, you can still open and not login by right clicking and choosing Open)&lt;br /&gt;
&lt;br /&gt;
===Windows 8===&lt;br /&gt;
&lt;br /&gt;
Cannot be done using standard Windows UI. Some download utilities can do it. TODO put a safe one in neosys.com/support&lt;br /&gt;
&lt;br /&gt;
===Windows XP/Vista/7/2008===&lt;br /&gt;
&lt;br /&gt;
#Go to My Computer&lt;br /&gt;
#Click on Tools -&amp;gt; Folder Options &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on File Types&lt;br /&gt;
#*Select TLP (Bitvise Tunnelier Profile) [Type &amp;quot;TLP&amp;quot; to find it quickly]&lt;br /&gt;
#*Click on Advanced &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-2.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Connect and Click on Set Default &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; [[image:tunnauto-3.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==International v/s Indian English==&lt;br /&gt;
&lt;br /&gt;
There are some words which have completely different meanings in International and Indian English. NEOSYS Staff should follow International English only. Below are the examples of few of those words:&lt;br /&gt;
&lt;br /&gt;
Word: &#039;&#039;&#039;Doubt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the English language word &amp;quot;doubt&amp;quot; means to distrust an alleged fact on the basis of a reason, depending on the strength of the reason which may be anything from factual to feeling e.g &amp;quot;I have no reason to doubt him&amp;quot;.&lt;br /&gt;
This usage is followed worldwide.&lt;br /&gt;
&lt;br /&gt;
Some people especially from Indian origin use &amp;quot;doubt&amp;quot; when they are unaware about a fact. e.g &amp;quot;I want to clear my doubts about this procedure&amp;quot;. This is incorrect. The word must be used when you do not agree on something on the basis of a reason and not when you do not have knowledge about it.&lt;br /&gt;
&lt;br /&gt;
==[[ New Employee Training Checklist]]==&lt;br /&gt;
&lt;br /&gt;
==[[ New Client Training Notes]]==&lt;br /&gt;
&lt;br /&gt;
==[[ General Office Procedures]]==&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3865</id>
		<title>Procedures</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3865"/>
		<updated>2021-08-19T06:02:09Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Handling Requests from people impersonating an Authorised person */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are procedures to be followed by Support Staff in respect to various technical matters in day to day operations of client issues.&lt;br /&gt;
&lt;br /&gt;
Once Support Staff have learnt how to follow these procedures &amp;amp; rules, you then start learning when and how to not follow them. Common sense trumps all rules! i.e. don&#039;t follow procedures and rules blindly all the time. Analyse the problem and solve it practically.&lt;br /&gt;
&lt;br /&gt;
BUT if you are doing something off-piste deliberately, then just add an appropriate comment about why you are.&lt;br /&gt;
&lt;br /&gt;
==Handling Clients with Overdue Invoice==&lt;br /&gt;
In order to maintain good payment speed by clients NEOSYS needs to restrict support to clients that dont pay their bills on time, however the degree of restriction needs to depend on an intimate knowledge of the client which cannot be expected from all NEOSYS support staff. Therefore we will use a simple escalation policy as follows:&lt;br /&gt;
&lt;br /&gt;
===Overdue Support List===&lt;br /&gt;
NEOSYS SUPPORT MANAGERS WILL maintain an overdue list on a whiteboard visible to all support staff. Generally, clients will go on the list immediately when their invoice is overdue and come off only after satisfactory commitment to pay have been obtained.&lt;br /&gt;
&lt;br /&gt;
The latest overdue list email MUST always be starred until there are no clients left on the overdue list (apart from the permanently overdue clients). When a client is added to the overdue list, support must set up a filter to move client support emails to the overdue folder. When a client is removed from the overdue list, client emails must be moved back into the support inbox. This way support team will know that there are still clients on the overdue list and will not mistakenly provide support to those clients.&lt;br /&gt;
&lt;br /&gt;
[[image:FilterOverdue.jpg]]&lt;br /&gt;
&lt;br /&gt;
For the first week of each quarter of the year, normal support should be provided for server failures and backup failures (including hung processes as it could eventually lead to backup failures).&lt;br /&gt;
&lt;br /&gt;
For any other support requests from overdue clients, respond with the following letter (where XYZ is the overdue client):&lt;br /&gt;
&lt;br /&gt;
 Dear &amp;lt;user&amp;gt;,&lt;br /&gt;
 There is an issue with your company&#039;s account. We have requested our Accounts team for approval in order to provide support to you and other &amp;lt;XYZ&amp;gt; users.&lt;br /&gt;
&lt;br /&gt;
Support staff MUST then provide the required support to the overdue client only after 4 working hours. Support Staff need not actually contact the Accounts team for approval, although that is what is mentioned in the letter. This delay in support is to encourage clients to settle their payments on time.&lt;br /&gt;
&lt;br /&gt;
After the first week of each quarter of the year, respond to any support requests from overdue clients with the above letter but MUST NOT PROVIDE SUPPORT even after 4 working hours. Instead, Support Staff must refer the support request to NEOSYS Support Manager.&lt;br /&gt;
&lt;br /&gt;
Managers may well instruct support to provide support on a case by case basis even if clients are on the overdue list. Being on the overdue list does not necessarily indicate a major issue with accounts.&lt;br /&gt;
&lt;br /&gt;
If the client provides proof of payment (e.g. cheque deposit slip), then carefully check all the details as mentioned in [https://userwiki.neosys.com/index.php/Sales_FAQ#When_can_NEOSYS_support_staff_start_installation_of_NEOSYS When can NEOSYS support staff start installation of NEOSYS], before getting approval from NEOSYS management to remove the client from the overdue list. &lt;br /&gt;
&lt;br /&gt;
===Handling complaints about Licence restrictions===&lt;br /&gt;
&lt;br /&gt;
Sometimes when a client delays payment of NEOSYS invoice, support places a licence restriction for the client. In such cases, users will not be able to create and save documents dated outside the licence period. Due to this sudden restriction, clients may raise complaints about the restriction placed.&lt;br /&gt;
&lt;br /&gt;
Support MUST simply inform them that licence restrictions are a default procedure followed by NEOSYS and is applied to all clients, so that the client will in future avoid delaying the payment.&lt;br /&gt;
&lt;br /&gt;
===Handling complaints about emails from NEOSYS Accounts Department===&lt;br /&gt;
&lt;br /&gt;
If a client calls Support team to complain about emails from NEOSYS accounts department (e.g. invoice payment reminder), then immediately make them realise that they are wasting their time talking to support because support is not involved in client invoices and reminders procedure.&lt;br /&gt;
&lt;br /&gt;
Any complaints or concerns they have MUST only be sent in reply to the email they received.&lt;br /&gt;
&lt;br /&gt;
==Handling Frozen NEOSYS Installations and Databases==&lt;br /&gt;
&lt;br /&gt;
Some clients retain fully operational NEOSYS installations or just particular databases even after they stop using them for some reason, either because they move to some other software, or because they terminate an operational division, or other reasons, and this can either be on NEOSYS or their own servers.&lt;br /&gt;
&lt;br /&gt;
In this case, various NEOSYS upgrade and maintenance processes may be suspended, downgraded or completely skipped especially if instant access to the server is no longer available. This does not mean that it should never be done, and pros and cons need to be assessed and documented in support emails on a case by case basis.&lt;br /&gt;
&lt;br /&gt;
*Upgrading NEOSYS version&lt;br /&gt;
*Upgrading/standardising NEOSYS database configuration and other files for consistency, security or other issues&lt;br /&gt;
*Patching Windows/IIS configuration for consistency, security or other issues&lt;br /&gt;
&lt;br /&gt;
==Handling Links and Email Attachments==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DO NOT TRUST ANY LINK OR ATTACHMENT IN ANY EMAIL EVEN FROM HIGHLY TRUSTED PEOPLE OR ORGANISATIONS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These days you can no longer trust links or attachments in emails from anybody - even emails from highly trusted people like your bank.&lt;br /&gt;
&lt;br /&gt;
If a personal computer or intermediate email server is hacked then even genuine emails sent out from it can be infected and modified in a hidden way that can result in the recipient being infected if they click or open anything in the email.&lt;br /&gt;
&lt;br /&gt;
Therefore you should know and understand how to avoid, as far as possible, getting tricked and infected via emails.&lt;br /&gt;
&lt;br /&gt;
Malware authors generally rely on the fact that most people devote no time at all to security precautions so a moderate cautious approach, slowing down a little to spending some time on security, even where it is apparently not required, is enough to defeat most attacks.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
Do NOT click on links, especially in emails that you are not expecting, but also anywhere else that you see links, without taking various precautions. The links in an email, even from someone you know and trust, can LIE to you about what website they will open and they can lead you to websites that mere browsing can infect your computer and then others inside our network.&lt;br /&gt;
&lt;br /&gt;
WHAT LINK/WEBSITE WILL BE OPENED MAY NOT BE WHAT IT SAYS IN THE BODY OF YOUR EMAIL!&lt;br /&gt;
&lt;br /&gt;
Therefore, to use a link in any and all emails, first hover your cursor over it and check the status bar at the bottom of the screen where you can see exactly what website will be opened, or, to be more sure exactly what website you are opening DO NOT click links in emails at all. COPY/PASTE the link to your browser, AFTER following the below points.&lt;br /&gt;
&lt;br /&gt;
*Make sure you know and trust the website being opened.&lt;br /&gt;
*Carefully inspect the spelling of the domain name to avoid tricky look-alike fraudulent links eg hcsb.com instead of hsbc.com&lt;br /&gt;
*If you trust the sender but you do not personally know the website then get independent confirmation from the sender. Reply to the email so that the sender can check the link you received has not been tampered with.&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&lt;br /&gt;
Below is an example of a phishing email that you can easily tell is malware&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot1.png]]&lt;br /&gt;
&lt;br /&gt;
*You don&#039;t expect it because it says &amp;quot;before your sign up is complete&amp;quot; ... but you didn&#039;t just sign up.&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t mean that links in emails that you ARE expecting ARE safe to open. All the usual cautions apply to emails you DO expect.&lt;br /&gt;
&lt;br /&gt;
*Hover mouse over the button and check the link visually&lt;br /&gt;
&lt;br /&gt;
In the example above, the email is supposed to be from Dropbox, but hovering the mouse over the button shows the below link, which is obviously wrong:&lt;br /&gt;
&lt;br /&gt;
http://fxloraisdoxbraxsil.com.br/dropbox.html&lt;br /&gt;
&lt;br /&gt;
*Even if the link looks genuine e.g. something from a service that we use that we didn&#039;t expect, be careful for misspelt links that look like genuine links e.g. drobbox.com, which could trick you if you are sloppy.&lt;br /&gt;
&lt;br /&gt;
Never click on links in emails unless you are absolutely 100% sure that the email and link is genuine.&lt;br /&gt;
&lt;br /&gt;
Copy the link using right click copy link then paste into your browser if there is the slightest doubt.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&lt;br /&gt;
In the following case, hovering over the first two links seem to go to real UPS website, BUT this is NOT sufficient to be sure since slight misspellings and other tricks can lead you to a totally different website.&lt;br /&gt;
&lt;br /&gt;
However, hovering over the third &amp;quot;link&amp;quot; shows that clicking the apparent link would go to some website http://behappy.vn (Vietnam) so clearly this is a DECEPTION.&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example 3:&lt;br /&gt;
&lt;br /&gt;
In this case, an unknown organization behind the phishing attack is pretending to work for Leaseweb sales company and is sending emails from an email address similar to Leaseweb’s, and with Leaseweb’s footer. They claim that the original payment was declined and ask to wire or transfer money to a new account. These kind of emails are quite sophisticated and require you to be vigilant. &lt;br /&gt;
&lt;br /&gt;
Try to confirm the sender’s identity before replying to email requests and before opening attachments or clicking on links, even if they appear to come from a legitimate source. &lt;br /&gt;
&lt;br /&gt;
Below is an example of a fraudulent email request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your payment has been declined!&lt;br /&gt;
Your invoice (100421) with Office 365 Service is due.&lt;br /&gt;
To make a payment, please log in with your email address and password at&lt;br /&gt;
&lt;br /&gt;
https://leaseweb.com/payment/100421&lt;br /&gt;
Once logged in please click select the Make a Payment icon in the Billing Tab. You may complete payment by Credit Card or Paypal on this page.&lt;br /&gt;
&lt;br /&gt;
Once paid no further action is needed and your account will remain active.&lt;br /&gt;
We thank you for your continued business and assistance in helping us to get this resolved.&lt;br /&gt;
Feel free to contact us if you have any questions, comments, or concerns.&lt;br /&gt;
&lt;br /&gt;
Regards; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Attachments===&lt;br /&gt;
&lt;br /&gt;
Please follow these rules strictly:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment that you did not expect.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  be curious to see what is in an attachment.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment if there is some other way for the info to be sent e.g. Screenshot of document.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the rules above are followed then:&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you have requested it and if sender is unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you get a good explanation of it contents from sender and they are unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
It is okay to save an attached eml file and open it with GEDIT as text, as it will not trigger any virus.&lt;br /&gt;
&lt;br /&gt;
This does NOT mean that you can open attached files freely. As per the procedures above, you should NOT open any unknown or unexpected attachments without CONSIDERABLE thought.&lt;br /&gt;
&lt;br /&gt;
But saving and then opening files with GEDIT to get an idea of their contents even if the view is mangled is okay. Although, there is little point in opening files like ZIP in gedit.&lt;br /&gt;
&lt;br /&gt;
There is no way to determine if an attachment, even from someone you know, has not been infected and is therefore, dangerous.&lt;br /&gt;
&lt;br /&gt;
The only protection is to rely on anti-virus/anti-malware e-mail filters and staff vigilance!&lt;br /&gt;
&lt;br /&gt;
You can check the names and file types/extensions of attached files to spot any obviously strange or unexpected attachments, but this is not very effective. The filename of an attachment could be spoofed. An attacker could potentially exploit this by tricking the user in to opening an attachment of a different type to the one expected.&lt;br /&gt;
&lt;br /&gt;
Attachments ending in .jar or any other unusual extensions shouldn’t be opened without SB&#039;s permission.&lt;br /&gt;
&lt;br /&gt;
If there are a lot of attached files, don&#039;t assume they are all safe, make sure you asked for each of them.&lt;br /&gt;
&lt;br /&gt;
==Handling emails from unknown email addresses==&lt;br /&gt;
&lt;br /&gt;
Any sort of contact from an unknown email address must be ignored entirely, i.e. no response whatsoever from Support, as these emails could be from a fraudulent source. If the email is genuine, then the sender can surely contact their managers.&lt;br /&gt;
&lt;br /&gt;
Support should keep in mind that hackers can send emails that look genuine, aiming to get private/confidential information and so should always stay alert when dealing with such emails.&lt;br /&gt;
&lt;br /&gt;
==Handling junk/spam email==&lt;br /&gt;
&lt;br /&gt;
In order to get better automatic spam email filtering please mark as many obviously spam emails as Junk, instead of just deleting them. Marking them will delete them so it takes not much longer to do.&lt;br /&gt;
&lt;br /&gt;
*DO NOT delete emails from Junk or Spam folder because they are used to identify future junk and spam emails.&lt;br /&gt;
*Any email identified as junk should be marked as Junk so that they automatically go into the Junk folder. The spam filter in the mail server will use these emails in the Junk folder to decide what is moved into the spam folder.&lt;br /&gt;
*You MUST ensure that all clearly junk/spam emails are marked as Junk/Spam in ALL email inboxes. In other words they MUST be moved to Junk/Spam folders and not left in our inboxes or other main folders.&lt;br /&gt;
*Any emails which are not clearly junk/spam emails or are similar to genuine emails, but you know are spam/junk MUST be deleted i.e. NOT left in inbox NOR moved to Junk/Spam folders.&lt;br /&gt;
&lt;br /&gt;
Failing the above we will have the following problems:&lt;br /&gt;
&lt;br /&gt;
*Real emails disappearing into junk/spam folders by our email server.&lt;br /&gt;
*More junk/spam emails appearing in our inboxes than necessary.&lt;br /&gt;
&lt;br /&gt;
The Junk email folder contains emails that have been manually marked as spam/junk whereas the &amp;quot;spam&amp;quot; email folder contains emails that have automatically been filtered out by the email server.&lt;br /&gt;
&lt;br /&gt;
==Avoid burdening email servers with excessive graphics==&lt;br /&gt;
&lt;br /&gt;
Support MUST install the &amp;quot;Auto Resize Image&amp;quot; addon in Thunderbird to reduce the size of images in emails resulting in a significant reduction in email size. See [[Configuring_Thunderbird#Configure_Auto_Resize_Image| setting up auto resize image]] for details.&lt;br /&gt;
&lt;br /&gt;
It reduces the burden on NEOSYS and NEOSYS client&#039;s email servers. This is especially important on long conversations about subjects that include many screenshots, since for just a simple one line reply, the email can consume many MB of space. It massively wastes the email server space and makes backups massive and generally a total waste of resources and time.&lt;br /&gt;
&lt;br /&gt;
To be able to refer back to graphics in previous emails, add the SIZE column to your email program so that you can locate large emails with graphics rapidly without searching back one by one.&lt;br /&gt;
&lt;br /&gt;
==Client Communication Policies==&lt;br /&gt;
===Client Meeting Report Policy===&lt;br /&gt;
&lt;br /&gt;
After every Client meeting online or otherwise Support MUST send a Follow-Up email to the Client which is open and fully informative and not brief, stating the events during the meet and any action required by either or both parties. The email to the client must not shrink from discussing contentious issues due to a false sense of politeness or timidity to address issues face on. Obviously one should not be rude but it is not rude to address issues openly.(cc Client managers and NEOSYS Managers)&lt;br /&gt;
&lt;br /&gt;
The follow-up email MUST be sent within 24 hours of completion of the meeting so that the points discussed during the meeting are fresh in all the meeting participants&#039; minds. This means that reports for meetings on the day before the weekend MUST be sent on the SAME day.&lt;br /&gt;
&lt;br /&gt;
In addition to above email if there is some information that needs to be shared internally and cannot be said in public to the client then send a Client Meeting report to Support.&lt;br /&gt;
&lt;br /&gt;
Support must also update the Client Contact Record file in Google Drive immediately after sending out the follow-up email.&lt;br /&gt;
&lt;br /&gt;
===Follow Up of Support Issues===&lt;br /&gt;
&lt;br /&gt;
All voice/chat communication MUST also be followed up with an email confirming at least the gist of the communication to keep the whole support team updated on the issue.&lt;br /&gt;
&lt;br /&gt;
If not possible to contact for any reason, then an email MUST be sent stating so and suggesting or requesting a time to connect.&lt;br /&gt;
&lt;br /&gt;
cc Client managers (and/or BCC NEOSYS Managers) MAY be done if thought to be useful and/or appropriate.&lt;br /&gt;
&lt;br /&gt;
===Handling Contentious Emails from Clients===&lt;br /&gt;
&lt;br /&gt;
If emails requesting support become contentious, then voice, phone call or chat is REQUIRED to save time. However, client support via phone call should be done only on local or low-cost calls. High-cost international calls should not be used except in extreme circumstances.&lt;br /&gt;
&lt;br /&gt;
If clients become deliberately combative or uncooperative then Support team is supposed to kick back a little but still emphasise the point. Perhaps it could be done better with a little ironic humour or a smiley. Avoid using !! while responding to contentious emails.&lt;br /&gt;
&lt;br /&gt;
===Apologising to clients for issues===&lt;br /&gt;
&lt;br /&gt;
We only need to apologise for major issues that are a) definitely our fault and b) we wish to indicate that there is some general issue in NEOSYS procedures and that we are dealing with it. &lt;br /&gt;
&lt;br /&gt;
We do not want to invite bullying by some clients by seeming to lack confidence in our ability.&lt;br /&gt;
&lt;br /&gt;
An explanation of the cause and possibly FP is of more value to the client, since an apology doesn’t really make any difference.&lt;br /&gt;
&lt;br /&gt;
===Discussing Pricing=== &lt;br /&gt;
All discussions about pricing must be done only in Sales inbox. If clients bring up pricing discussion in support emails, NEOSYS staff must respond to the client by starting a new thread in the Sales Inbox.&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Support Response Time Policy==&lt;br /&gt;
&lt;br /&gt;
NEOSYS contracts, in the few cases where we have a written contract with the client, specifies that maximum response time is one business day generally and one business hour for complete stoppages of the system. Obviously we have to do far better than this in practice.&lt;br /&gt;
&lt;br /&gt;
Support staff must inform clients of the progress of the issue if it is not resolved the same day but only if they contact at least 1 hour before office closing.&lt;br /&gt;
&lt;br /&gt;
Deciding to wait on issues is fine (also refer to:  [[Procedures#Handling_users_who_do_not_act_upon_standard_messages|Response to standard messages]]), but support MUST at least spend up to 5 minutes on issues to see if they can be handled quickly. Support MUST respond quickly to issues that can be handled quickly, otherwise the client suffers unnecessarily.&lt;br /&gt;
&lt;br /&gt;
When an issue is fixed or a client request has been implemented in NEOSYS, Support must immediately let users know that the issue is fixed, so that clients can continue their work without any further delay. Quick and prompt responses from Support will gain the client&#039;s appreciation.&lt;br /&gt;
&lt;br /&gt;
For routine requests for service where there is a reasonable expectation of delay by the client then no need to send rapid reply.&lt;br /&gt;
&lt;br /&gt;
==Default Browser for support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS supports and develops for Firefox primarily but other browsers such as Chrome and Edge MUST also be tested working fine. Support team currently uses Firefox for all work related tasks in Ubuntu which includes testing, wiki work etc.&lt;br /&gt;
&lt;br /&gt;
Also refer to [http://itwiki.neosys.com/index.php/Setting_up_Ubuntu_on_NEOSYS_Support_Computers#Mozilla_Firefox Setting up Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
==Handling errors discovered by support staff==&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
==Handling browser script errors==&lt;br /&gt;
&lt;br /&gt;
If a script error is faced, support should take a full screenshot of the script error including the script name, line number, etc.&lt;br /&gt;
&lt;br /&gt;
Include every detail available regarding the script error and also the steps to replicate it and escalate this to the programmer.&lt;br /&gt;
&lt;br /&gt;
Chrome JavaScript Error Notifier extension shows all the details available in the initial script error message itself. In Internet Explorer, you will have to click &#039;Yes&#039; on the script error message to get all the details.&lt;br /&gt;
&lt;br /&gt;
==Various checks done by Support to investigate errors==&lt;br /&gt;
&lt;br /&gt;
A list of logs/reports that Support must look at, depending on the situation, to solve issues or investigate errors.&lt;br /&gt;
&lt;br /&gt;
#Support inbox emails: Check old emails in Thunderbird. This is the quickest way to handle issues/errors that were handled recently.&lt;br /&gt;
#Logs/reports available in NEOSYS Menu&lt;br /&gt;
#*Request Log (Support -&amp;gt; RequestLog) - These logs can be checked to see what request were made and by which users etc., not as detailed as the xml logs mentioned under &amp;quot;Logs found on the server&amp;quot;.&lt;br /&gt;
#*NEOSYS logs (Support -&amp;gt; Log) - Log of alerts sent out via email, e.g. backup email, login failure, etc.&lt;br /&gt;
#*What&#039;s New report (Help -&amp;gt; What&#039;s new in NEOSYS) - Contains a list of all the features added in NEOSYS&lt;br /&gt;
#*List of Database processes (Support -&amp;gt; List of Database Processes) - Status of processes windows running on the server.&lt;br /&gt;
#*List of documents in use (Support -&amp;gt; List of Documents in Use) - Currently used documents.&lt;br /&gt;
#*User details page (Help -&amp;gt; User Details) - To check logins and IPs and password reset details.&lt;br /&gt;
#*Version logs of files - The history of edits made to files in NEOSYS. This is available at the bottom of files in NEOSYS (e.g. Schedule file, Voucher file, etc.)&lt;br /&gt;
#*Usage Statistics (Support -&amp;gt; Usage Statistics) - Shows no. of requests made per user, per department, per database, per hour etc.&lt;br /&gt;
#Logs found on the server:&lt;br /&gt;
#*Xml logs - These logs can be checked to see what request were made and by which users etc. in detail.&lt;br /&gt;
#*Process logs (.LOG files) - These log files contain entries showing start of database backup, and process startup logs.&lt;br /&gt;
#*Process windows - Check process windows on the server for error messages or anything unusual, e.g. hung processes.&lt;br /&gt;
#*Procexp (Process Explorer)- Used to check ntvdm processes running for specific installations (useful on servers with multiple installations).&lt;br /&gt;
#*System logs (Event viewer) - Used to check for unusual system events, eg: unexpected shutdown.&lt;br /&gt;
#*Task manager - Checked to monitor CPU usage, NTVDM running etc.&lt;br /&gt;
#NAGIOS - Monitors the status of all hosts and services.&lt;br /&gt;
&lt;br /&gt;
==Handling Cheques from Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff are not to accept deliveries from clients that might be cheques without prior instructions to accept the same. They can ask courier to wait a few minutes until NEOSYS accounts or management agrees but they may not be immediately available and probably will not agree anyway. If accounts or management is not immediate available, then cheque MUST not in any circumstances be accepted, otherwise client can cause problems in our accounts and we waste time visiting the bank to deposit.&lt;br /&gt;
&lt;br /&gt;
NEOSYS payment terms do not accept cheques although clients are free to deposit cheques by themselves.&lt;br /&gt;
&lt;br /&gt;
==Client Password Policy==&lt;br /&gt;
All client user passwords, including their initial one, are to be obtained via the user&#039;s email address using the password reminder/reset button on the login screen. [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#What_is_NEOSYS_password_policy.3F (NEOSYS password policy)]&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff should never know users passwords therefore NEOSYS will not obtain and grant user passwords. The reason for this is that in the event that users lose their passwords to other people who then login unauthorised then suspicion could fall on the NEOSYS staff who know their password. &lt;br /&gt;
&lt;br /&gt;
All parties concerned, including client management, client users and NEOSYS support staff, benefit greatly from trusting that if something in a NEOSYS database is registered as having been done by a particular user then it was not in fact somehow done by NEOSYS support staff. Nothing should be done that would break such fundamental trust. To achieve this, NEOSYS support staff must never log in as particular users, never ask for users passwords and generally enforce the idea that all work logged as being done by users IS done by users.&lt;br /&gt;
&lt;br /&gt;
Very limited amounts of work by NEOSYS support staff either in person or remotely using teamviewer is acceptable while a user is logged as long as the user login was performed by the user themselves, the user is present and the user specifically agrees with the work being done.&lt;br /&gt;
&lt;br /&gt;
===Support requests from ordinary client users===&lt;br /&gt;
Any support requests concerning inability to obtain passwords will be forwarded to known skilled users on the client staff since this is the most efficient (not fastest) way to handle such issues.&lt;br /&gt;
&lt;br /&gt;
===Support requests from senior client management===&lt;br /&gt;
Any support requests concerning inability to obtain passwords by senior client management users shall be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bearing in mind that NEOSYS staff should never know user&#039;s passwords this will probably involve NEOSYS staff using the Password Reminder/Reset button to send a new password to the user.&lt;br /&gt;
&lt;br /&gt;
===User Defined Passwords===&lt;br /&gt;
NEOSYS will provide user defined passwords in very special cases which must be pre-approved case by case by NEOSYS management. NEOSYS will not approve this due to the reasons mentioned [[Procedures#Client_Password_Policy|here]].&lt;br /&gt;
&lt;br /&gt;
If the user login gets blocked due to multiple login failures and the user requests support team to reset the password to the user defined password again, support MUST delay the response to this request by at least 1 hour in order to force the user to be more careful when typing the password.&lt;br /&gt;
&lt;br /&gt;
Currently permission for user defined password has only been granted to one NEOSYS client with several hundreds of databases.&lt;br /&gt;
&lt;br /&gt;
==Handling client issues and requests==&lt;br /&gt;
&lt;br /&gt;
All support issues must be dealt with through phone/email/chat. Support Staff can schedule client visits for User Training but should not schedule client visits solely for providing support for petty issues.&lt;br /&gt;
&lt;br /&gt;
ALL Support staff should check all the previous day&#039;s inbound emails for reply flags once in the morning. All Support staff will therefore be held responsible for any unreplied inbound email.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT waste time and delay support by investigating issues WITHOUT SUFFICIENT INFORMATION.&lt;br /&gt;
&lt;br /&gt;
Support must NOT get involved in any discussion about any document that is not directly out of NEOSYS, so that Support is able to reproduce it from NEOSYS screenshots of screen options that the client used.&lt;br /&gt;
&lt;br /&gt;
Support should look for similar issues when solving a particular problem to avoid similar issues in future. This saves the time and energy of Support as well as the Client.&lt;br /&gt;
&lt;br /&gt;
When sending screenshots to clients, support team should economise on space by minimising to the minimum that will show the problem clearly. This is because not every user will be viewing their emails on large wide screens like NEOSYS support team. Browser windows reformat their contents to suit the width available so this is particularly effective in most NEOSYS screens.&lt;br /&gt;
&lt;br /&gt;
Support team MUST be cautious while sending screenshots so that no private/unnecessary information is sent to Client. If you cannot avoid taking the screenshot without unnecessary information then you should hide it in the screenshot.&lt;br /&gt;
&lt;br /&gt;
Support team MUST learn not to do silly support for people, because we have an OPEN SUPPORT policy, which some users WILL try to abuse based on either poor understanding or lack of respect. &lt;br /&gt;
Either way support MUST learn to deal with abuse of privileges as it will save a lot of time, which could be spent on more important issues.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
===Handling new emails in Support inbox===&lt;br /&gt;
Support MUST spend up to 5 minutes on new emails and send a quick reply to the client, to acknowledge the request or give a quick solution in case it is a petty issue or has a documented solution in wiki.&lt;br /&gt;
&lt;br /&gt;
Client issues/requests should be prioritized, interrupting existing work and not wait for one hour and be dealt with quickly.&lt;br /&gt;
&lt;br /&gt;
For routine service requests where there is a reasonable expectation of delay by the client, Support need not send a rapid reply but must keep the email starred in Support inbox to indicate that it is pending or being worked on.&lt;br /&gt;
&lt;br /&gt;
===Handling starred emails in Support inbox===&lt;br /&gt;
&lt;br /&gt;
When an email is received in Support inbox,&lt;br /&gt;
&lt;br /&gt;
*if the email can be replied to immediately, then mark it as read after you have replied to the email.&lt;br /&gt;
*if the issue cannot be resolved immediately, then the email MUST be starred so that support does not forget to work on it. Once the issue has been resolved, Support should send an email to Support inbox confirming that the issue is closed. Only then should the email be unstarred.&lt;br /&gt;
&lt;br /&gt;
No issue should be silently dropped without being fully resolved.&lt;br /&gt;
&lt;br /&gt;
===Handling client-sensitive information in emails===&lt;br /&gt;
&lt;br /&gt;
Support should avoid including information that could be sensitive to clients e.g. screenshots of reports that should only be viewed by client&#039;s upper management.&lt;br /&gt;
&lt;br /&gt;
This can be done simply by clever cropping of images or blurring out of information in cases where cropping is not possible. &lt;br /&gt;
&lt;br /&gt;
Support MUST not delay response to any client by wasting time blurring or cropping out information that is not sensitive to clients, e.g. blurring out the URL and tabs in browsers etc.&lt;br /&gt;
&lt;br /&gt;
===Handling client call back requests===&lt;br /&gt;
&lt;br /&gt;
Clients who ask us to call them should be given our phone number and asked to call us unless there is some GOOD reason why we should make the effort and pay phone charges.&lt;br /&gt;
&lt;br /&gt;
===Handling login failure issues===&lt;br /&gt;
&lt;br /&gt;
Users often get login failure issues due to typing wrong password and they simply won&#039;t read and act according to the error message they get. In this case, Support must send the below email to the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
If you have trouble resetting password, please ask for assistance from your manager/IT Manager/Timesheet Administrator/NEOSYS-expert colleague.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local support users (TA or IT manager etc) have the LS key using which they can see the User Details page of all users. They should check all the information (usercode, registered email id, last login attempts etc) in the User Details page to find out what is the issue.&lt;br /&gt;
&lt;br /&gt;
This procedure will reduce the endless mails sent back and forth to solve petty issues which could easily be solved by the client&#039;s local support.&lt;br /&gt;
&lt;br /&gt;
===Handling requests or demands for &amp;quot;URGENT&amp;quot; or &amp;quot;PRIORITY&amp;quot; support===&lt;br /&gt;
&lt;br /&gt;
Any request for prioritised action *without giving any reason for the prioritisation* should be disregarded and the request handled with normal priority. If a reason is given then you may at your discretion prioritise a response but there is no obligation to do so.&lt;br /&gt;
&lt;br /&gt;
===Handling users who login with other people&#039;s NEOSYS usercodes===&lt;br /&gt;
This can cause a lot of confusion in both the client and NEOSYS support. It may also indicate that the correct NEOSYS monthly licensing fee is not being paid. There is no valid reason for anonymous logins or sharing logins between multiple users.&lt;br /&gt;
&lt;br /&gt;
Therefore if NEOSYS support team get requests for support about using NEOSYS from users who are not registered properly in NEOSYS with an personally identifiable user code, name and email then the following email should be sent cc admin@neosys.com.&lt;br /&gt;
&lt;br /&gt;
No exception should be granted to clients without NEOSYS management approval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear NEOSYSUSER,&lt;br /&gt;
&lt;br /&gt;
Please note that in order to receive support from NEOSYS you must personally have an identifiable user code, name and email address registered&lt;br /&gt;
in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
We can create new user account for you with your management approval. This may or may not have an impact on the NEOSYS monthly licensing fee &lt;br /&gt;
depending on the agreement in force.&lt;br /&gt;
&lt;br /&gt;
Please let us know what you would like us to do.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling support requests from expired users===&lt;br /&gt;
&lt;br /&gt;
If expired users call for any reason including not being able to login, they must not be given any support. They should only be told that their account is expired without any reason being offered because employers sometimes do not want any information at all being passed to expired users.&lt;br /&gt;
&lt;br /&gt;
===Handling support request from senior management===&lt;br /&gt;
&lt;br /&gt;
Any support requests from senior client management users concerning report generations should be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bear in mind that NEOSYS staff should not agree or offer to do client work. Support staff can advise senior management to contact a skilled user to help them with basic NEOSYS reporting. Support staff can also send screenshots of step by step procedure on how to take reports. Depending on the situation and reasons provided by senior management, support staff can at their discretion provide reports but after informing them that this is an exception and no more reports will be sent out as this is against NEOSYS procedures.&lt;br /&gt;
&lt;br /&gt;
===Handling requests that involve updating NEOSYS configuration files===&lt;br /&gt;
&lt;br /&gt;
Changes to any configuration file in NEOSYS MUST be performed only by NEOSYS support, because even the slightest misconfiguration of the system may cause unrecoverable errors and NEOSYS is responsible for support.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with unrelated subject line===&lt;br /&gt;
At times, clients forward old emails, with new issues, resulting in completely unrelated subject line. In such situations, support MUST follow the below steps to ensure that unrelated emails do not appear in the same conversation group when viewing emails in conversation mode:&lt;br /&gt;
&lt;br /&gt;
#Right click the email -&amp;gt; HeaderToolsLite -&amp;gt; Edit full source&lt;br /&gt;
#Modify the text that appears after &amp;quot;Message-ID: &amp;lt;&amp;quot;. (e.g. replace the first few characters with &amp;quot;xxxxxxxxx&amp;quot;)&lt;br /&gt;
#Remove all texts that appear after &amp;quot;References:&amp;quot; and &amp;quot;In-Reply-To:&amp;quot; and click OK.&lt;br /&gt;
#Click Reply All on the modified email.&lt;br /&gt;
#Change the subject to a relevant one.&lt;br /&gt;
#Delete old unrelated content from the email body.&lt;br /&gt;
&lt;br /&gt;
In the email reply, include a comment like &amp;quot;PS Please don&#039;t forward old emails for new issues, start a new email with a new subject so that emails can be traced easily.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sometimes the client does not bother putting the correct subject line for new issues (e.g. blank subject, or &amp;quot;Error&amp;quot;). Then support should add a meaningful subject line in order to make the email easy to search for.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with poor screenshots===&lt;br /&gt;
Sometimes Thunderbird shows full sized screenshots in a compact format that is not easy to read. These can be resized to make them more legible. To do this, make the email editable by hitting the &amp;quot;Reply&amp;quot; button, then click and drag to resize the screenshot as desired.&lt;br /&gt;
&lt;br /&gt;
If the screenshot sent by the user is genuinely small and hard to read, reply to the mail and request for a full size, clear screenshot.&lt;br /&gt;
&lt;br /&gt;
===Handling support-request emails sent to anywhere than support@neosys.com===&lt;br /&gt;
Client emails anywhere than support@neosys.com MUST be ignored. This is because ALL support must be recorded in support inbox without exception so that the whole support team is aware of the issue and action taken. If client complains about the delay in support then they can be told this is because they used the wrong email address.&lt;br /&gt;
&lt;br /&gt;
===Handling users who do not act upon standard messages===&lt;br /&gt;
When users do not bother to read and act on standard NEOSYS-generated messages and instead ask for help, Support staff MUST delay response time and thereafter send them an email which is the same as the message so they get the point that in future they should read the messages and handle issues themselves.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests to do Client work===&lt;br /&gt;
NEOSYS Support staff must not agree or offer to do work on behalf of the client. &lt;br /&gt;
&lt;br /&gt;
This is because doing client work while logged in as NEOSYS breaks security rules. Support uses the NEOSYS username which has unrestricted access, so when a user requests Support to do some work which they don’t have access to, and if Support agrees to do the work, the client has successfully defeated the security rules by accessing features that they are unauthorised to access.&lt;br /&gt;
&lt;br /&gt;
If a client makes a false claim about an issue in NEOSYS, i.e. if Support finds out that there is no real issue, then direct the client in the right direction so that they find out their mistake by themselves. Support MUST NOT show/explain the problem to them in detail, since you are just doing their work for them by explaining the problem and this will encourage the client to contact support for every petty issue they face. &lt;br /&gt;
&lt;br /&gt;
Client work also includes [[Procedures#Handling_issues_with_totals_on_reports|Handling issues with totals on reports]].&lt;br /&gt;
&lt;br /&gt;
====Requests for colour and font changes====&lt;br /&gt;
&lt;br /&gt;
Support should not be spending lots of time on colour and font changes. Clients can make as many changes as they want until they are happy with a selection. Clients MUST send a screenshot of their required color/font settings (not sample screen/reports) for Support to copy and setup for all users. If Support sees them doing something bad or poor then give comments or better suggestions.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests that require Approval from Higher Authority===&lt;br /&gt;
&lt;br /&gt;
The following is a list of user requests that must be handled by NEOSYS support staff only if they are approved by or come from a higher authority (manager/admin). The LIST is &#039;&#039;&#039;NOT&#039;&#039;&#039; a complete list so there may be other things which might require approval so use good judgement and/or ASK if in doubt.&lt;br /&gt;
&lt;br /&gt;
*Opening new financial year&lt;br /&gt;
*Adding new company/dataset&lt;br /&gt;
*Editing alert/backup email receiver addresses&lt;br /&gt;
*Customising Authorisation File ({{SensitiveSecurity }})&lt;br /&gt;
**Adding or removing accesses for existing users in Authorisation file&lt;br /&gt;
**[[Procedures#Handling_new_USER_creation| Adding new user(s) to Authorisation file]]&lt;br /&gt;
**Expiring a user&lt;br /&gt;
**[[Procedures#For_HTTPS_access| Allowing HTTPS/outside office access from any IP number]]&lt;br /&gt;
&lt;br /&gt;
If an unauthorized user sends one of these requests to support staff, support staff must immediately instruct the user to get the request approved by the higher authority.&lt;br /&gt;
&lt;br /&gt;
====Handling Requests from people impersonating an Authorised person====&lt;br /&gt;
A clients may impersonate an authorised person by using their email address or signature when they are told that the request must come from or be approved by the authorised person. Support must use their judgement to deal with such requests. &lt;br /&gt;
&lt;br /&gt;
If it is a simple request such as adding a new user or expiring one, Support can go ahead with the request.&lt;br /&gt;
&lt;br /&gt;
If it is a request with risk involved such as providing remote access or granting high-level authorisation, Support must then contact the authorised person and let them know that their approval for the request has been received and are proceeding with the request.&lt;br /&gt;
&lt;br /&gt;
===Handling User Requests to add an IP or range of IPs to access NEOSYS===&lt;br /&gt;
&lt;br /&gt;
Support staff must identify if the IP or range of IPs is for http or https access.&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
====For HTTP access====&lt;br /&gt;
Support staff can add local IP or range of local IPs when requested by the client. Top management approval is not needed to add local IP numbers. Listed below are the IP address ranges reserved for local network.&lt;br /&gt;
&lt;br /&gt;
10.0.0.0 – 10.255.255.255&lt;br /&gt;
&lt;br /&gt;
172.16.0.0 – 172.31.255.255&lt;br /&gt;
&lt;br /&gt;
192.168.0.0 – 192.168.255.255&lt;br /&gt;
&lt;br /&gt;
====For HTTPS access====&lt;br /&gt;
Any request for https access from any IP address or range of IP addresses (eg. 123.456.* or just *), or in other words any use of an asterisk in the IP restrictions, MUST have TOP management i.e. the company&#039;s decision makers approval. The Staff and their Managers are not the best decision makers in this affair because they usually ignore the risks and it is not really their decision. Security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc can be triggered if access from any IP is enabled. It is completely pointless to inform the staff who want the access about these risks because only their top managers could really decide that this is NOT going to be allowed. Hence the Top Management MUST be asked for approvals and at the same time WARN them about the security risks/threats behind the no IP restrictions.&lt;br /&gt;
&lt;br /&gt;
=====For clients with static IP=====&lt;br /&gt;
Any request to add a specific IP address to the list of allowed IP addresses MUST have management approval.&lt;br /&gt;
&lt;br /&gt;
=====For clients with dynamic IP=====&lt;br /&gt;
For clients with dynamic IP, support MUST NOT add their public IP to the allowed list as this will encourage the client to again request for access from new IP numbers every time their public IP changes. Instead, support MUST force the client to either get a static IP, install VPN or get the Top Management i.e. the company&#039;s decision maker&#039;s approval to enable access from any IP after explaining the security risks in doing so, as mentioned above.&lt;br /&gt;
&lt;br /&gt;
Support MUST also mention that installation of VPN by the Company is the industry standard way of providing access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER. Installation of VPN is to be done by their own IT support. Refer to [[Procedures#Using_VPN_to_enable_secure_access_from_outside_the_office|Using VPN to enable secure access from outside the office]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Sample Email addressed to Top Management:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear &amp;lt;XXXXX&amp;gt;,&lt;br /&gt;
 &lt;br /&gt;
I do not recommend allowing access from all IPs because security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc. can be triggered if access from any IP is enabled.&lt;br /&gt;
&lt;br /&gt;
I strongly recommend that you keep IP restrictions for &amp;lt;XXXXXX&amp;gt; dataset.&lt;br /&gt;
  &lt;br /&gt;
If you want to provide access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER, then installation of VPN is the industry standard of achieving this. Installation of VPN is to be done by your own IT support. &lt;br /&gt;
 &lt;br /&gt;
If you still wish to allow access from all IPs, kindly confirm that you acknowledge the security threats of doing so. &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling repeated request to allow users to access from all IPs===&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
If the client wants temporary access from outside for some staff twice in say a six months period then support should send the below email. The real reason is because we don&#039;t have the time to be doing this on a regular basis. If at all the client asks why we no longer support the provision of temporary outside access then we can say this is because of the frequency of such requests.&lt;br /&gt;
&lt;br /&gt;
 Dear XXX&lt;br /&gt;
 &lt;br /&gt;
 We have given you temporary outside access this time, as requested. Please note that we can no longer support the provision of temporary outside access. So in the future, you will have to choose between either permanent or no outside access. Alternatively, you can ask your management to install a VPN (which is the industry standard of achieving outside access to a corporate asset in a secure manner), so that you can log in to NEOSYS from outside.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create a new feature or modifying existing features===&lt;br /&gt;
&lt;br /&gt;
Many issues are small and not important but can still be considered for development because they may be easy and neatly added to NEOSYS. The aim here is to avoid development on hard issues for little benefit, or little issues that make NEOSYS more complex for little benefit.&lt;br /&gt;
&lt;br /&gt;
When a client requests to create a new feature or modify an existing feature, a workaround must be given to the user, which is either a permanent solution, for example if the issue is a rare case and not commonly faced by other clients (and the workaround is acceptable to the client), or a temporary solution until some better solution is discovered or can be developed.&lt;br /&gt;
&lt;br /&gt;
Support MUST check all options on all pages to look for any already existing solution or workaround to the problem before emailing the programmer.&lt;br /&gt;
&lt;br /&gt;
Any request to create a new feature or modify an existing feature MUST be discussed with other clients before forwarding it to the programmer because the other clients might not be comfortable with the change as it may not be in accordance with their workflow. If other clients agree to the proposed change then support should go ahead and request the programmer to implement it.&lt;br /&gt;
&lt;br /&gt;
Therefore before escalating a request to the programmer to modify a feature in NEOSYS, the approval for the same from other clients must be taken into account.&lt;br /&gt;
&lt;br /&gt;
Any request to fix or modify a feature in NEOSYS must be accompanied with good reason and some basic considerations, so that the programmer knows what level of priority it can be dealt with. &lt;br /&gt;
&lt;br /&gt;
When escalating the request to the programmer, support MUST avoid using &amp;quot;Is it possible..?&amp;quot; because the obvious answer to that is &amp;quot;Anything is possible&amp;quot; and because this question is only a way to avoid doing the real work of deciding whether the new feature/modification should be implemented.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to add more fields to List of Invoices reports===&lt;br /&gt;
&lt;br /&gt;
Many users may ask for the List of Invoices report to be expanded to show a zillion other things, but this makes it NOT a list of invoices. Therefore other break-downs MUST be obtained from other reports in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Updating Clients about unresolved issues===&lt;br /&gt;
Support should proactively inform clients if an issue is not solved within the same day it was raised, after judging the urgency of the issue and the time it was raised. An email to the client who raised the issue, before the end of each day, is a best practice that keeps the client updated and other support staff too. This email should be sent regardless of the degree to which the issue has been resolved or if the issue is unresolved. If the issue is unresolved, the email should explain why and also explain the cause of delay.&lt;br /&gt;
&lt;br /&gt;
===Handling new USER creation===&lt;br /&gt;
====Get Approval====&lt;br /&gt;
Support staff should create new USERS for clients ONLY when requested by an authorised person. If the authorised person is unavailable, for example on leave, then get approval from someone who is in the backup mail list.&lt;br /&gt;
&lt;br /&gt;
Ideally only people who are users in NEOSYS and have authority over some task can grant or request authority to do that task to other NEOSYS users. However, if this is not the case and the requesting person has some seniority in the company (but is either not a NEOSYS user, or is not actually currently authorised to perform the task themselves) you may decide that it is not wise to proceed without some confirmation. In such a case be very respectful of their position while rejecting any request perhaps stating something like:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Currently we have instructions to take requests concerning authorisation only from xxx, yyy and zzz. Please could this request be confirmed by one of them?&amp;quot; Rewrite this judiciously to suit the occasion.&lt;br /&gt;
&lt;br /&gt;
Consider that different sections of a company may have different chain of commands. For example one should not assume that a Sales Director has authority over Finance unless there is firm evidence. If there is any doubt consult NEOSYS Support Managers.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT directly contact the authorised person asking for approval/confirmation because that is client work.&lt;br /&gt;
&lt;br /&gt;
In a case where a client is [[Procedures#Handling_Requests_from_people_impersonating_an_Authorised_person|impersonating an Authorised person]] to get a new user request approved, Support may go ahead with the request. If the client is asking to create a high-level user, you may include users from the same department or other high-level users in your email.&lt;br /&gt;
&lt;br /&gt;
Clients should not be discouraged to create new users. Clients are billed as per user usage which is reviewed periodically. Over time old USERS are replaced with new USERS.&lt;br /&gt;
&lt;br /&gt;
====Creating User====&lt;br /&gt;
Preliminary:&lt;br /&gt;
&lt;br /&gt;
New user requirements :-&lt;br /&gt;
&lt;br /&gt;
*Full name                                      - (like John Smith and not generic name like Copy Writer)&lt;br /&gt;
*Email address                                  - (like johnsmith@example.com and not generic address like copywriter@example.com)&lt;br /&gt;
*Group level / User with similar authorisation&lt;br /&gt;
&lt;br /&gt;
The USER code is the first name of a user. &lt;br /&gt;
&lt;br /&gt;
1. Support MUST only create NEOSYS accounts with real names and email addresses WITH NO EXCEPTIONS unless agreed by NEOSYS management.&lt;br /&gt;
&lt;br /&gt;
It is acceptable, although inefficient, for one person to have multiple user accounts either concurrently or sequentially, but the opposite MUST never occur.&lt;br /&gt;
One NEOSYS user code/account MUST never have more than one real person associated with it neither concurrently nor sequentially.&lt;br /&gt;
In order to maintain efficiency, various fleeting temptations to cut corners and break the ONE TO ONE link between NEOSYS users accounts and real people MUST be resisted.&lt;br /&gt;
These principle remain mandatory even when pressure is exerted by people, even senior management, who may not appreciate the issues involved.&lt;br /&gt;
The fact that NEOSYS support does not know for certain who is the real person using an NEOSYS account does not change these principles.&lt;br /&gt;
&lt;br /&gt;
2. Support MUST not create GENERIC user codes like AUDITOR or MANAGEMENT (even to grant special access to such users like read-only access) as this breaks all security rules.&lt;br /&gt;
Do not re-use user codes. Always create NEW user codes for NEW users.&lt;br /&gt;
&lt;br /&gt;
3. Support MUST not create or modify any usable NEOSYS account that is or has been used by more than one user.&lt;br /&gt;
&lt;br /&gt;
4. Support is responsible to maintain the system in good working order and not knowing who is really doing the work in the system can make support harder.&lt;br /&gt;
&lt;br /&gt;
5. Support MUST not collude with clients to by-pass the principles. If asked to do so Support MUST refuse to create or update such accounts.&lt;br /&gt;
&lt;br /&gt;
6. Do not hand over user codes from one person to another in a mistaken attempt to represent a hand over to a replacement. EXPIRE THE OLD USER CODE/ACCOUNT AND CREATE A NEW USER CODE/ACCOUNT.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
7. Support team MUST NOT discuss billings with clients unless authorised to do so. Also see [[Procedures#Discussing_Pricing|Discussing Pricing]] &lt;br /&gt;
&lt;br /&gt;
8. Support team MUST NOT proceed with creating new users until the group level or existing user with similar authorisation has been clearly provided by the client, otherwise the new user may end up with more than the required authorisation, which can lead to problems in future.&lt;br /&gt;
&lt;br /&gt;
====After Creating New User====&lt;br /&gt;
&lt;br /&gt;
Support MUST send an email to the person who requested the creation of new user, confirming that the new user has been created along with a screenshot of that part of the authorisation table where the new user was created so that the new user&#039;s user code and email id is visible. This is done so that in case there is some error in the user code or email id, it is easily visible in the screenshot and also so that the person who requested the creation of the new user is informed about the user code of the new user.&lt;br /&gt;
&lt;br /&gt;
===Handling letterhead change requests===&lt;br /&gt;
&lt;br /&gt;
Support staff should reject any requests that require the letterhead to be setup on the TESTING dataset before it is setup in the MAIN dataset.This is to reduce double work for support staff and to ensure that clients have a clear understanding of their requirements and also send the correct logo image.&lt;br /&gt;
The MAIN dataset can be copied to the TEST dataset for any kind of testing.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Configuring_Letterhead#Changing_the_letterhead_for_printed_documents How to change letterhead]&lt;br /&gt;
&lt;br /&gt;
===Handling error messages===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Before Attempting to resolve client issues, please ensure that we have secure access to the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
#The very first step is understanding client problem. Ask questions to the client until you CLEARLY understand the problem.&lt;br /&gt;
#If the error is familiar and does not require a screenshot, resolve the problem immediately.&lt;br /&gt;
#If the error is unfamiliar and/or requires a screenshot and the user has not sent a screenshot, IMMEDIATELY ask the user to send a screenshot of the problem, along with the options used (basically you need to know HOW to replicate the error and the screenshot MUST show WHAT the error is).&lt;br /&gt;
#If the user says &amp;quot;nothing happens, so no screenshot of the error&amp;quot;, then IMMEDIATELY request for screenshots again with the exact steps to reproduce the problem using mouse and keyboard.&lt;br /&gt;
#Support team MUST NOT provide support without a screenshot, otherwise the client will not pay attention to support team in future and ignore requests for screenshots.&lt;br /&gt;
#Upon receipt of the error and steps to reproduce the error, follow the steps and reproduce the error. Also refer to [[Procedures#Addressing_Browser_related_issues|Addressing Browser related issues]]&lt;br /&gt;
#If the issue is unknown or you don’t understand it clearly, with the users acknowledgement use remote support to gain access to the users desktop to view how to replicate the error.&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
====Understanding Internal error messages====&lt;br /&gt;
&lt;br /&gt;
Internal errors messages appear in red on screen and an email which is sent to support with more details. (Example below)&lt;br /&gt;
&lt;br /&gt;
[[image:Rawformdatapng.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;ERROR NO:&amp;quot; line is comprised of the error number (B16), the program (MARGIN_BASE) and the line number (1). Sometimes the line number is wrong, refer to section &amp;quot;Misleading line numbers in error messages&amp;quot; below for more info.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;STACK:&amp;quot; line lists the &amp;quot;parent&amp;quot; calling programs &amp;quot;SYSMSG,LISTEN&amp;quot; used to trace how and where the error originates.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;DATA:&amp;quot; is a string of characters that is used to recreate the options used by the client in order to replicate the error message. See how to [[Troubleshooting_NEOSYS_Generally#Replicate_options_used_.26_error_using_sysmsg_Data: | replicate the error with the options used, using internal error email]]&lt;br /&gt;
&lt;br /&gt;
====Misleading line numbers in error messages====&lt;br /&gt;
&lt;br /&gt;
Many small NEOSYS utility programs are compiled to run faster than usual programs and will not report the correct line on errors like Variable Not Assigned.&lt;br /&gt;
&lt;br /&gt;
To get the actual line number, compile as usual. ie without the (CL) options mentioned below, and regenerate the error.&lt;br /&gt;
&lt;br /&gt;
Note that most of these programs should have a source line &amp;quot;linemark&amp;quot; or &amp;quot;*linemark&amp;quot; in them somewhere near the top. When single stepping in the debugger, the program will break on this line and this line alone.&lt;br /&gt;
&lt;br /&gt;
To compile a GBP program DATE for speed use something like the following:&lt;br /&gt;
&lt;br /&gt;
 COMPILE GBP DATE (CL)&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;L&amp;quot; means compile without line numbers. This makes them run faster, which is important for utility programs that are called extremely frequently eg for date or number input/output conversion.&lt;br /&gt;
*&amp;quot;C&amp;quot; means do not generate a symbol table in GBP $GETPERIOD. It makes no difference whether you do or do not.&lt;br /&gt;
&lt;br /&gt;
===Addressing Browser related issues===&lt;br /&gt;
&lt;br /&gt;
When resolving random browsing issues that seem to be on one user computer only, support MUST send the below email asking the user to check if the same issue occurs on other user computers. Rapidly convincing the user that the problem is only on their computer gains their willingness to sort the problem out at their end, using IT people if necessary and available.&lt;br /&gt;
&lt;br /&gt;
Handling random issues that appear to be on one computer is very very common and it is important to deal with it effectively, not requiring stages of &amp;quot;denial&amp;quot; by the users until they accept something has to be done at their end, and not by NEOSYS. Speeding up this process gains the confidence and appreciation of the users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Hi xxxx&lt;br /&gt;
&lt;br /&gt;
Is this error happening only on your computer? If that is the case, it may be due to an issue in your browser cache. Please clear your browser cache with assistance from your IT team if required. Then restart the browser and try again.&lt;br /&gt;
&lt;br /&gt;
If clearing browser cache does not fix the issue, I recommend a full browser reset to ensure that everything works fine.&lt;br /&gt;
&lt;br /&gt;
Follow these instructions for clearing browser cache and resetting browser:&lt;br /&gt;
http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers&lt;br /&gt;
&lt;br /&gt;
Please let us know if you face the issue again.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Handling_Browser_related_issues_in_NEOSYS| Handling Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
===Addressing Technical support emails===&lt;br /&gt;
&lt;br /&gt;
In the case of technical support issues, address emails to the IT person and cc the complete group of recipients of backup emails and other NEOSYS alert emails. This allows both NEOSYS and client IT staff to take credit for resolving issues that NEOSYS raises instead of working in the background unacknowledged.&lt;br /&gt;
&lt;br /&gt;
Technical support issues include backup failure, server failure, missing alert email, server connectivity issues and port forwarding issues and many other issues.&lt;br /&gt;
&lt;br /&gt;
For technical issues like browser configuration, clear cache, etc. support must send the user a link to the appropriate wiki article to help the user fix the problem. In some cases the user may be helpless and unable to follow the steps to fix the problem. In such cases, support MUST NOT waste time trying to help the user fix the problem, instead support MUST ask the user to get help from the IT person.&lt;br /&gt;
&lt;br /&gt;
===Acceptable report format when handling issues in NEOSYS reports===&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support must only resolve issues in NEOSYS output first. This is because only NEOSYS outputs can be trusted and user versions in Excel or PDF could be copied wrongly or edited by the user.&lt;br /&gt;
&lt;br /&gt;
In case users send reports in excel or other formats, get them to send the original NEOSYS HTML report as an attachment or copy-pasted in email.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create new charts or control accounts===&lt;br /&gt;
&lt;br /&gt;
[http://userwiki.neosys.com/index.php/Setting_up_and_Configuring_NEOSYS_Finance_System#Creating_New_Charts_or_Control_Accounts Refer here]&lt;br /&gt;
&lt;br /&gt;
===Handling issues with totals on reports===&lt;br /&gt;
&lt;br /&gt;
If a client has a problem with any total output by NEOSYS software then NEOSYS support will advise them which other NEOSYS report or reports provide a complete breakdown of the total (if necessary, to individual transactions) and ask the client to locate any offending transactions themselves.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff will handle any issues where the total on the breakdown report does not add up to the total on the summary report.&lt;br /&gt;
&lt;br /&gt;
Reconciling totals can be hard if there are many transactions involved. Regardless of how hard it may be, reconciliation is an operational task for users not for support staff since NEOSYS support staff will not get involved in understanding client transactions or data.&lt;br /&gt;
&lt;br /&gt;
====Trial Balance and Financial Statements====&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff do not have to prove or trace any figures in NEOSYS Trial Balance Reports or any financial reports. If a figure is stated to be wrong by the user, then NEOSYS support staff should ask for proof or say NEOSYS is confident that the figures are correct unless proved otherwise. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff should point out reports in NEOSYS which will support the figures in question but not actually run the reports. Support staff can suggest the users to refer to detailed ledger accounts to prove balances.&lt;br /&gt;
&lt;br /&gt;
==Using VPN to enable secure access from outside the office==&lt;br /&gt;
There are two ways in which a user can use VPN:&lt;br /&gt;
&lt;br /&gt;
*User connects to the their office router and makes the PC act like it is on the office LAN.&lt;br /&gt;
*User connects to a VPN service that provides a static IP number and can therefore be authorised by NEOSYS to login.&lt;br /&gt;
&lt;br /&gt;
If the client intends to use VPN to connect to their office router and make the PC act like it is on the office LAN, then it depends on what VPN protocols the client&#039;s office router supports.&lt;br /&gt;
&lt;br /&gt;
The alternative is to use a paid VPN service that provides a static IP number. Getting a dynamic IP number on VPN is very cheap and there are many suppliers, but getting a static IP number on VPN services seems to be more expensive.&lt;br /&gt;
&lt;br /&gt;
Internally in NEOSYS we use PFSENSE routers which support OPENVPN which is extremely flexible.&lt;br /&gt;
&lt;br /&gt;
==Handling issues with Office PBX phones==&lt;br /&gt;
&lt;br /&gt;
Support should check their respective Office PBX phones every morning to find out if the phone is up and working. In case Support finds any issue with their phone, immediately fix it so that clients do not lose contact with the  Support team via phone. Next send an email to Support inbox mentioning the fault, cause and solution for records/future prevention.&lt;br /&gt;
&lt;br /&gt;
==Running undocumented commands on Maintenance mode==&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST NOT run undocumented commands on ***LIVE*** database. Some commands are not documented for a reason, it could be because the commands might give an undesired output or because there is no clarity on what else could be effected by the command.&lt;br /&gt;
&lt;br /&gt;
Even if the command is tested in TESTING database and the output looks okay, support staff MUST get the programmer&#039;s approval before going ahead and running the command in LIVE database as there is no guaranty that the command is properly programmed and will do no damage.&lt;br /&gt;
&lt;br /&gt;
==Configuring Browsers to show Javascript errors in NEOSYS==&lt;br /&gt;
NEOSYS Support MUST ensure the following Settings for browsers because if NEOSYS generates any javascript error message, the same would appear in the bottom left corner of a window, which in turn helps the programmer to fix the error. This must be done after every Factory Reset.&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer===&lt;br /&gt;
Tools &amp;gt; Internet Options &amp;gt; Advanced &amp;gt; Browsing - the items Disable script debugging (Internet Explorer) and Disable script debugging (Other) are &#039;&#039;&#039;UNTICKED&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===Chrome=== &lt;br /&gt;
Chrome Menu &amp;gt; More Tools &amp;gt; Extensions &amp;gt; Get More Extensions, search for &#039;&#039;&#039;Javascript Errors Notifier&#039;&#039;&#039;. Add the extension to Chrome.&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome1.png]]&lt;br /&gt;
===Firefox===&lt;br /&gt;
Firebug add-on is used to NOTIFY about script errors because we have no other method to get any warning on screen but you should use the main firefox developer tools to investigate any errors as firebug is essentially replaced by built in developer tools. &lt;br /&gt;
&lt;br /&gt;
For developer tools, go to Tools &amp;gt; Web Console&lt;br /&gt;
&lt;br /&gt;
To enable notifications for script errors, download the add-on Firebug from [https://addons.mozilla.org/en-US/firefox/addon/firebug/ here]. When a Javascript error is encountered, the firebug icon will report the number of errors.&lt;br /&gt;
&lt;br /&gt;
Set your firebug as per the second screen shot and select &amp;quot;Enable All Panels&amp;quot; as well, the tick will not appear like the other options but the option will get selected. If you miss out on any one of these steps, you will not be able to capture script errors.&lt;br /&gt;
&lt;br /&gt;
[[file:firebug1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Firebug.png]]&lt;br /&gt;
&lt;br /&gt;
==Handling Browser related issues in NEOSYS==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Technical_/_Hardware_requirements#NEOSYS_Software_Browser_and_OS_Requirements NEOSYS browser requirements]&lt;br /&gt;
&lt;br /&gt;
Clients frequently ask [http://userwiki.neosys.com/index.php/General_FAQ#Why_doesnt_NEOSYS_support_my_XYZ_browser.3F Why NEOSYS doesn&#039;t support other browsers] &lt;br /&gt;
&lt;br /&gt;
To avoid browser errors, all new users must follow the steps given in [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#Getting_started_with_NEOSYS Getting started with NEOSYS] before logging in to NEOSYS for the first time.&lt;br /&gt;
&lt;br /&gt;
To troubleshoot browser related errors see [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers Troubleshooting Web Browsers]&lt;br /&gt;
&lt;br /&gt;
Users must clear browser cache after every NEOSYS Upgrade to avoid errors. See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS#Sample_email_to_be_sent_to_clients_who_face_issues_due_to_failure_in_clearing_browser_cache Sample email to clients who face issues due to failure in clearing browser cache]&lt;br /&gt;
&lt;br /&gt;
Pop-up blockers and any 3rd party toolbars must be deactivated/switched off or else certain pages and alert messages while using NEOSYS do not appear as a result of blocking from either the pop-up blocker or toolbars with built-in pop-up blockers. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support must ask users to Reset browser (See [http://userwiki.neosys.com/index.php/Reset_Browser Reset browser]) if they notice any user browsers which have pop-up blockers or 3rd party toolbars installed.&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Addressing_Browser_related_issues| Addressing Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
==Handling NEOSYS Upgrade==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS Upgrading NEOSYS]&lt;br /&gt;
&lt;br /&gt;
==Handling auto-reply emails like Out of Office etc.==&lt;br /&gt;
&lt;br /&gt;
From 28th May 2017 version, emails sent out by the NEOSYS system now contain headers that in effect request recipient email systems not to auto-reply for things like Out of Office. This is to reduce unnecessary chatter by silencing unnecessary automatic replies. There is no guarantee that recipient email systems will comply. The headers added are:&lt;br /&gt;
&lt;br /&gt;
*X-Auto-Response-Suppress: RN, NRN, OOF&lt;br /&gt;
*Precedence: bulk&lt;br /&gt;
&lt;br /&gt;
Support team should notify SB of any auto-responses that come despite their installation being patched.&lt;br /&gt;
&lt;br /&gt;
In NEOSYS versions after 10th Jun 2017, emails sent by NEOSYS from the NEOSYS Help menu, i.e. manually triggered emails, do NOT indicate that OOF replies are not wanted, since if you are sending emails to people using NEOSYS, you will want to know if they are OOF.&lt;br /&gt;
&lt;br /&gt;
==Using Support Tools==&lt;br /&gt;
===Website Live Support===&lt;br /&gt;
www.neosys.com is equipped with a Live Support software and clients can visit the website, click on this link and chat with any of our support staff, without the need for any installation. The client has to fill in their name and enter their questions to connect to an available support personnel. During non-working hours, the Live Support icon on the website automatically displays &amp;quot;offline&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support personnel who are authorised to provide such support, need to login to Live helper chat in Firefox using the link given below:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/&lt;br /&gt;
&lt;br /&gt;
Support personnel should enter the account details as provided by their Manager.&lt;br /&gt;
&lt;br /&gt;
Enable notifications for Live helper chat so that whenever there is a visitor trying to contact Support team, the Support personnel will get the notifications on his screen. &lt;br /&gt;
&lt;br /&gt;
Set the Live helper chat login page as your home page in Firefox and this page must be kept open for the whole duration of working hours. &lt;br /&gt;
&lt;br /&gt;
Support must always be alert and immediately reply to messages from visitors.&lt;br /&gt;
&lt;br /&gt;
Use the link below to enable notifications:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/chat/listchatconfig&lt;br /&gt;
&lt;br /&gt;
After setting up Live helper chat if you sign in to a new profile in Firefox, you might have to re enable the notifications after your Firefox is synced to the new profile.&lt;br /&gt;
&lt;br /&gt;
===Teamviewer===&lt;br /&gt;
Since Teamviewer allows no restriction on access once a fixed pass is installed, Support must not install fixed pass on teamviewer however convenient it might be.&lt;br /&gt;
&lt;br /&gt;
RULE: NO FIXED PASS TO BE INSTALLED ON TEAMVIEWER IN ANY NEOSYS OR NEOSYS CLIENT COMPUTER&lt;br /&gt;
&lt;br /&gt;
Running teamviewer live from a web link is fine because it does not allow installation of a permanent password&lt;br /&gt;
&lt;br /&gt;
For certain tasks that require temporary install of Teamviewer on the client servers (e.g. upgrading Cygwin remotely), use Teamviewer 7 on the server as well as Support staff computer. Contact NEOSYS IT for commercial license of Teamviewer 7. Teamviewer MUST be uninstalled after usage, otherwise it creates an additional unnecessary security risk.&lt;br /&gt;
&lt;br /&gt;
To support client users who use the latest version of Teamviewer, support staff must also install the latest Teamviewer version available alongside Teamviewer 7.&lt;br /&gt;
&lt;br /&gt;
==Documenting Processes in Wiki==&lt;br /&gt;
NEOSYS Support staff must be in continual learning mode. This is mandatory for support staff and is not an option. Support must read, learn and understand everything in the support emails and ask questions if they don&#039;t understand. This understanding must be transferred into wiki in the form of new articles and improvements to existing articles.&lt;br /&gt;
&lt;br /&gt;
For all articles related to formatting and editing in Wiki, see [http://itwiki.neosys.com/index.php/Documenting_NEOSYS_systems Documenting NEOSYS systems]&lt;br /&gt;
&lt;br /&gt;
===Avoiding duplication of text in wiki===&lt;br /&gt;
&lt;br /&gt;
Duplication of text in wiki is to be avoided almost at any cost. Duplication has the problem that when one copy is changed or improved in future then it is highly likely the editor will fail to update the other copy or copies and wiki will over time become an inconsistent mess.&lt;br /&gt;
&lt;br /&gt;
There are several ways to avoid duplication:&lt;br /&gt;
&lt;br /&gt;
#Two or more procedures which have significant areas of duplication can be rewritten as a single procedure with alternatives in the middle of the procedure&lt;br /&gt;
#Wiki Templates- Templates reproduce the same text in all places and editing one place edits all places. See [[How to create templates in wiki]]&lt;br /&gt;
#Wiki links- Only put the text in one place and put links to that in all the other places that it is appropriate.&lt;br /&gt;
#Place a note in all copies something to the effect that &amp;quot;This is similar to x, y and z&amp;quot;. This alerts any future editor of all other places in wiki that might also have to be updated.&lt;br /&gt;
&lt;br /&gt;
Future modifications in one place may or may not be appropriate to other places. The editor must decide whether to change one or all places&lt;br /&gt;
&lt;br /&gt;
===Highlighting information in wiki===&lt;br /&gt;
&lt;br /&gt;
To highlight particular instructions or info in wiki do NOT invent new styles which are not the way the rest of wiki is done. Instead, follow the USUAL STYLE or open a DISCUSSION with any recommendations you have BEFORE USING THEM.&lt;br /&gt;
&lt;br /&gt;
Instead of using various kinds of highlighting styles like bolding and words like &amp;quot;Note:&amp;quot;, use the following words IN CAPITALS especially the word MUST.&lt;br /&gt;
&lt;br /&gt;
The use of the following words IN CAPITALS indicates that you are using them in a special way with formally defined meaning as explained below. Use of the words in lower case indicates that you are using the word in an ordinary commonsense meaning.&lt;br /&gt;
&lt;br /&gt;
*MAY - means optional&lt;br /&gt;
*SHOULD - means recommended and you need GOOD reason (not just any weak excuse) to not follow to follow this recommendation&lt;br /&gt;
*MUST - mandatory&lt;br /&gt;
&lt;br /&gt;
Only in the rare cases where the consequences of doing or not doing something are irreversible or take a lot of work to reverse then you can use your own additional highlighting methods, eg ALL CAPS, stars, color red etc.&lt;br /&gt;
&lt;br /&gt;
====Explain WHY====&lt;br /&gt;
&lt;br /&gt;
Any sentence which uses the word &amp;quot;MUST&amp;quot; in capitals, MUST be followed by a SPECIFIC REASON explaining exactly why is the instruction is mandatory; the reason MUST not be vague and non-specific meaning no more than &amp;quot;or bad things will happen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules otherwise it will cause problems in future.&lt;br /&gt;
&lt;br /&gt;
 CORRECT way: You MUST also delete ads if deleting schedules otherwise the deleted schedules&#039; ads will still show in all media-diary like reports and screens&lt;br /&gt;
&lt;br /&gt;
The Wrong way above gives a general reason &amp;quot;it will cause problems in future&amp;quot; which is vague and a reader may even go ahead and ignore &amp;quot;MUST&amp;quot; because there is no objective or proper side effect mentioned for not following the MUST statement. Basically he doesn&#039;t understand the point behind following a certain rule. &lt;br /&gt;
&lt;br /&gt;
Whereas the Correct way gives a SPECIFIC reason for &amp;quot;deleting ads while deleting schedules&amp;quot;, so reader will exactly know the trouble that will be caused if ads are not deleted. Therefore &amp;quot;SPECIFIC REASON&amp;quot; behind using the word MUST must be to the point and very informative.&lt;br /&gt;
&lt;br /&gt;
====Why explain WHY====&lt;br /&gt;
The information contained in the WHY phrase is often &#039;&#039;&#039;extremely informative&#039;&#039;&#039; to the reader about things that you may otherwise not have considered saying.&lt;br /&gt;
&lt;br /&gt;
The most valuable information is usually contained in the &amp;quot;WHY&amp;quot; of something. There is an apocryphal story of a company where managers could be fired if they gave instructions to their staff without providing explanation. In almost all cases it is better for the efficiency of a team of people that any instructions they follow contain the &amp;quot;WHY&amp;quot; of something. Only in few cases should staff be expected to follow instructions without being well or fully informed.&lt;br /&gt;
&lt;br /&gt;
==Email Retention Policy==&lt;br /&gt;
&lt;br /&gt;
===Generally===&lt;br /&gt;
&lt;br /&gt;
Emails are retained permanently to allow old issues to be discovered in email searches.&lt;br /&gt;
&lt;br /&gt;
===Account: backups@neosys.com===&lt;br /&gt;
&lt;br /&gt;
Only the last 365 days of emails to backups@neosys.com are kept in general to reduce the burden on servers and clients due to the heavy number of emails.&lt;br /&gt;
&lt;br /&gt;
For the backups/neosys folder, only 31 days is kept due to the very high numbers of emails ~250/day.&lt;br /&gt;
&lt;br /&gt;
Deletions are configured in and done by a thunderbird client in NEOSYS IT so may not be continuous.&lt;br /&gt;
&lt;br /&gt;
==Use of personal email addresses by NEOSYS support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff MUST NOT use any personal email addresses for NEOSYS business. &lt;br /&gt;
&lt;br /&gt;
The xxxx.neosys@gmail.com addresses that are created by support staff for themselves on joining are also considered personal email addresses and must not be used for NEOSYS business. These email addresses might be linked to NEOSYS wiki accounts but that doesn&#039;t matter because wiki is not confidential.&lt;br /&gt;
&lt;br /&gt;
==Accessing NEOSYS accounts on personal devices==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff MUST NOT install NEOSYS accounts on skype/dropbox/gmail (or any other external tool) on their personal devices without written permission from NEOSYS management&lt;br /&gt;
&lt;br /&gt;
==Support Staff work-in-progress documents/files==&lt;br /&gt;
&lt;br /&gt;
Support Staff must not save working files hidden on their computer. Work that is not visible is not work .&lt;br /&gt;
Support work should not be done privately and should be shared to all.&lt;br /&gt;
&lt;br /&gt;
ALL personal working files however trivial MUST be stored in Dropbox and MUST NOT be stored anywhere in personal computer (My Documents/Desktop etc.)&lt;br /&gt;
&lt;br /&gt;
The personal encrypted pass file MUST be stored somewhere in personal folder under SB NEOSYS staff in Dropbox. This is because if there is a loss of OS/Computer, it should not lead to loss of access as all the passwords saved in the file will be lost.&lt;br /&gt;
&lt;br /&gt;
==Handling CLIENT/NEOSYS Servers==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff must exercise extreme caution when working on CLIENT and NEOSYS servers. Do not risk making changes without due care and attention to the fact that the consequences of errors can be serious on working production servers.&lt;br /&gt;
&lt;br /&gt;
===Handling Javascript Files in NEOSYS===&lt;br /&gt;
&lt;br /&gt;
All the files in NEOSYS installation folder with .JS and .JSE extension are the executable javascript files which startup NEOSYS processes (in a usual DOS window). Their default program is &#039;Microsoft Windows Based Script Host&#039; (wscript.exe). If a JavaScript file is opened using a notepad, the default program may change to notepad resulting in all NEOSYS processes to open up in a notepad.&lt;br /&gt;
&lt;br /&gt;
Hence be very CAREFUL when accessing a .JS and .JSE file and double check that the default program remains wscript.exe. Refer to [[Troubleshooting_NEOSYS_Generally#Fixing_wrong_default_program_assigned_to_open_a_file_type|Fixing wrong default program assigned to open a file type]] in case this issue comes up.&lt;br /&gt;
&lt;br /&gt;
==Handling &amp;quot;List of Open Ports&amp;quot; reports==&lt;br /&gt;
&lt;br /&gt;
This email comes to NEOSYS support team once a day showing only those client&#039;s servers which appear to have changed what TCP ports are open to the internet since yesterday. It will also come once a week showing all clients servers open ports.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support team should work patiently with client IT staff, over time if necessary, to close all ports that are not absolutely mandatory to be open.&lt;br /&gt;
&lt;br /&gt;
Clients with highly skilled IT staff may have a variety of ports open to various non-NEOSYS servers inside their organisation. In this case, NEOSYS plays little or no role other than getting their confirmation of exactly what ports are acceptable. Any new ports that appear over time should be handled in the same way.&lt;br /&gt;
&lt;br /&gt;
For clients without such staff, NEOSYS is their only real line of defence and since NEOSYS requested opening some ports, we should get all other ports closed by patiently following up until action is taken. Involving management may be the only way to get IT to act.&lt;br /&gt;
&lt;br /&gt;
High end port numbers (e.g. 49667) may represent transient outbound connections from users. Therefore for such port numbers, support team should contact the client only if the port remains open on the following working day.&lt;br /&gt;
&lt;br /&gt;
In particular, port 80 and 443 controlling internal or external routers should be closed. It is NOT acceptable except in HIGH IT EXPERTISE environments that critical routers should be exposed to the internet and they MUST NOT be accessible from the internet because routers that do not have their software updated can be hacked using known defects. Even updated routers can be hacked. Making it easy for client IT staff to access the router configuration from outside is NOT a good enough excuse to break this rule. Professional IT does not allow access to critical routers from the internet.&lt;br /&gt;
&lt;br /&gt;
Likewise, any port 80 (unencrypted web access) and port 3389 (RDP remote desktop) open to the NEOSYS server MUST be closed otherwise logins can be monitored and there is no way to guarantee server security.&lt;br /&gt;
&lt;br /&gt;
Port 23 (Telnet) is an insecure port because it is unencrypted and should never be open for usage. This is standard practice and well known by any network professional. Since the port is unencrypted, attackers can listen in, watch for credentials, inject commands via man-in-the-middle attacks and ultimately perform Remote Code Executions (RCE).&lt;br /&gt;
&lt;br /&gt;
If a port is definitely required and properly approved to be open by client IT support, please let NEOSYS IT (SB) know and it will be put in the &amp;quot;Authorised&amp;quot; column so that ports in the &amp;quot;Questionable&amp;quot; column are all pending action.&lt;br /&gt;
&lt;br /&gt;
The report does not attempt to detect UDP ports since UDP ports can receive information from the internet without responding in any way so there is no way to detect them reliably.&lt;br /&gt;
&lt;br /&gt;
Green color shows ports that have opened since the last report run. Open ports can sometimes not be detected accurately so a port may appear to disappear in one report and reappear in the next report.&lt;br /&gt;
&lt;br /&gt;
===Why should HTTP port 80 not be open on my router?===&lt;br /&gt;
&lt;br /&gt;
It is not advisable to expose any HTTP server for any private service on your computer network or router because HTTP is unencrypted and this means that all information regarding that service, including passwords, can be observed by any malware on your LAN and internet connection. This information can then be used to install horrible software on your internal PCs.&lt;br /&gt;
&lt;br /&gt;
What to do?&lt;br /&gt;
&lt;br /&gt;
Use https for any internal services - and advisably on a non-standard port, not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
For example, NEOSYS service is exposed as HTTPS (not HTTP) usually on port 4430 - not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
Commercial hacking is getting really common with things like FIREBALL and CRYPTOLOCKER causing a lot of damage.&lt;br /&gt;
&lt;br /&gt;
It is advisable to take basic precautions pro-actively before any attack exposes weaknesses.&lt;br /&gt;
&lt;br /&gt;
==Handling Nagios Client Monitoring system==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff on duty MUST follow the procedures outlined below in case the Firefox &amp;quot;imoin&amp;quot; add-on shows critical or warning messages for any service. Failure to schedule appropriate downtime will lead to REDUNDANT EMAIL ALERTS from Nagios every hour.&lt;br /&gt;
&lt;br /&gt;
Any alert on the Firefox &amp;quot;imoin&amp;quot; add-on means that there is an issue that has not been attended to properly, and &amp;quot;attended to&amp;quot; does not always mean solved. Support staff MUST solve the problem immediately if possible.&lt;br /&gt;
&lt;br /&gt;
If it is not possible to solve the problem immediately, then downtime/acknowledge the service and add a comment on the Nagios alert, explaining the problem briefly. &lt;br /&gt;
&lt;br /&gt;
Support should check Nagios frequently during the day to look for any new alerts so that issues are fixed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
*Nagios is required to be checked first thing in the morning and any critical or warning messages need to be dealt with to resolve the same at the earliest.&lt;br /&gt;
*Some of the messages could be related to backup failures and the usual procedure as stated in Handling failure and warning messages on nightly backup alerts needs to be followed. In case the backup issue isn&#039;t resolved by 9:30 am, the Nagios service needs to be downtimed with an appropriate comment for a minimum of 2 hours and maximum until 1 am next day if the issue cannot be solved.&lt;br /&gt;
*In case of &amp;quot;Backup not changed&amp;quot; warning status which occurs if the client has not interchanged the USB before 12 noon on that day, no action is required from the support staff and a downtime with a comment like &amp;quot;Backup media not changed - Emailed client&amp;quot; needs to be scheduled until 1 am next day.&lt;br /&gt;
*In case any HTTPS, SSH, PING service or Host is down, immediate action is required and the relevant IT people at the client side needs to be contacted to get this resolved. A downtime of 2 hours with a comment like &amp;quot;Service/host down - Emailed client&amp;quot; is required to be scheduled with further intervals of 2 hours in case this is not resolved. Support staff shouldn&#039;t schedule downtime till 1 am next day, just to get rid of the alerts for the day. Proactive follow up with the client is required to get this resolved before the business day - more so, if there is a weekend ahead.&lt;br /&gt;
*In case the HTTPS, SSH, PING service or Host goes down during the day, a grace period of 10 minutes is given before the issue is reported to the client IT, in case there is any temporary internet connection issue at the client or along the internet route.&lt;br /&gt;
*In case the HTTPS, SSH PING service or Host is down for more than 1 day, client IT should acknowledge the problem and give NEOSYS support staff an approximate time frame before which the issue will be resolved. Set an appropriate downtime with a descriptive comment for such events.&lt;br /&gt;
*In case Host is down for more than 2 days and there is no progress with the fix from client IT, the client management should be notified about the seriousness of not having access to server and their acknowledgement is mandatory.&lt;br /&gt;
&lt;br /&gt;
==Handling lack of remote access to NEOSYS server located in client’s premises==&lt;br /&gt;
&lt;br /&gt;
If access to the NEOSYS server is lost then we must determine the root cause by: &lt;br /&gt;
&lt;br /&gt;
#Checking if the server is UP and running&lt;br /&gt;
#If yes, please check internet connectivity on the server&lt;br /&gt;
#If there is connectivity, please check the router for connectivity issues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
Please note that we have currently lost access to the NEOSYS server. The server seems to be down at the moment and it seems that &lt;br /&gt;
NEOSYS processes are not running on the server.&lt;br /&gt;
Kindly check if the server is UP and running. If yes, please check internet connectivity on the server.&lt;br /&gt;
Do keep us posted on the server status so we can test connectivity from our side as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==New Router (Port Forwarding)==&lt;br /&gt;
&lt;br /&gt;
If you have changed your router then you may notice that external access to NEOSYS is unavailable. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to the NEOSYS Server as follows: &lt;br /&gt;
&lt;br /&gt;
#Port 19580 &amp;gt; 19580 for SSH&lt;br /&gt;
#Port 4430 &amp;gt; 4430 for HTTPS&lt;br /&gt;
&lt;br /&gt;
You can see [http://portforward.com/ Set Up Port Forwarding] to learn how to configure your Router.&lt;br /&gt;
&lt;br /&gt;
To see how to test/ troubleshoot port forwarding settings, go to [[Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding|Troubleshooting Port Forwarding]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
You are requested to kindly setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to &lt;br /&gt;
the NEOSYS Server,i.e.  port 19580 for SSH and port 4430 for HTTPS.&lt;br /&gt;
&lt;br /&gt;
Once this is complete, kindly send me an email to confirm the same so that we could test connectivity from our end as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Creating and Handling passwords==&lt;br /&gt;
===Creating a password===&lt;br /&gt;
Passwords are generated from a pass phrase and it is important to create a very difficult to guess pass phrase.&lt;br /&gt;
&lt;br /&gt;
Passwords made out of a pass phrase MUST be at least 10 characters since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts.&lt;br /&gt;
&lt;br /&gt;
For example, a good pass phrase would be: &#039;&#039;&#039;Today is a good day and it is the best time to go for a holiday&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The password for this would be &#039;&#039;&#039;Tiagd&amp;amp;iitbt2g4ah&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The important instructions for the above are:&lt;br /&gt;
&lt;br /&gt;
#You have to take the first letter of each word and that makes your password (i.e. by using initials)&lt;br /&gt;
#Wherever any word starts with a capital, then you have to take first letter as a capital (eg. For Today you will take T)&lt;br /&gt;
#Replace &#039;&#039;&#039;and&#039;&#039;&#039; with &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;to&#039;&#039;&#039; with &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;for&#039;&#039;&#039; with &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Handling passwords===&lt;br /&gt;
&lt;br /&gt;
#Never send the actual password - always send the pass phrase&lt;br /&gt;
#Make sure that the password created out of the pass phrase is at least 10 characters long since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts&lt;br /&gt;
#Pass phrases are never to be sent by email, whatever the case maybe.&lt;br /&gt;
#Pass phrases can be sent by chat - however they have to be broken down in two parts and sent separately over two different messengers or if you are using Gtalk then use the &#039;off the record&#039; mode.&lt;br /&gt;
#Using SMS to send pass phrases is the best known way as of now.&lt;br /&gt;
#If you save the passwords on your system in an file then:&lt;br /&gt;
#*Ensure that you only store pass phrases in the excel file&lt;br /&gt;
#*Ensure that the excel file is encrypted with a master password&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Maintenance Window==&lt;br /&gt;
&lt;br /&gt;
The NEOSYS server is functional from 6am – 1am. There is a 5hr window gap for the system to perform updates &amp;amp; backups.&lt;br /&gt;
&lt;br /&gt;
The 5hr maintenance window:-&lt;br /&gt;
&lt;br /&gt;
1. At 1am – The server performs a data backup on a USB (for the respective clients) &amp;amp; once the backup has been completed, the system automatically generates an email addressed to the neosys staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
2. At 2:45am – The main data over writes the test data on the server.&lt;br /&gt;
&lt;br /&gt;
3. At 3:00am – The server by itself performs an update for Windows.&lt;br /&gt;
&lt;br /&gt;
4. At 4:00am – The server performs a backup to the headquarters for clients, and then automatically generates an email addressed to the NEOSYS staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
5. At 6:00am – The server starts up NEOSYS.&lt;br /&gt;
&lt;br /&gt;
==Using NEOSYS Terminology while communicating with Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support must communicate in correct language to clients on finance issues in order to ensure that our records exactly represent reality. Conversely NEOSYS must not use other terminology because it can cause considerable confusion and poor quality results. In case client is new and still in training, use client terminology optionally as long as&lt;br /&gt;
&lt;br /&gt;
#It is only an addition to NEOSYS standard terminology&lt;br /&gt;
#Only if clear that it is client terminology by putting in brackets like this &amp;quot;Sales Invoices (called PI by you)&amp;quot;, where &amp;quot;you&amp;quot; means the client you are talking to or you can put the client company name instead perhaps.&lt;br /&gt;
&lt;br /&gt;
The objective is over time to avoid having the support team to have to know the terminology of the client. NEOSYS support team cannot possibly know and remember it for each client therefore the client MUST over time learn and use NEOSYS terminology. The initial period is one of relearning and translation for the client not for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
Many users operating NEOSYS finance module do not know proper financial procedures and may not appreciate how doing something in a wrong or unusual way now may not be correctable in the future.&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff must follow NEOSYS procedures only. If NEOSYS procedures need to be updated then this must be agreed in advance and not AFTER the fact.&lt;br /&gt;
&lt;br /&gt;
==Amending/Reposting Journal Entries==&lt;br /&gt;
In certain exceptional cases, amending/reposting of journal entries is allowed for only one day to enable clients to present reports in an alternative manner. &lt;br /&gt;
&lt;br /&gt;
It must be agreed with the client that reposting rights will be granted for only one day and NEOSYS Support will automatically remove it and check for CCB error thereafter.&lt;br /&gt;
&lt;br /&gt;
This would be subject to NEOSYS requiring a written LETTER OF APPROVAL duly signed and stamped by the highest management of the company.&lt;br /&gt;
&lt;br /&gt;
In case the client management decides to allow editing/reposting of journal entries, the following procedure is to be followed:&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;( While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Removal of unauthorized third-party software on client servers==&lt;br /&gt;
&lt;br /&gt;
Rule: Any third party software that is discovered by NEOSYS support staff on client servers that has been installed without the agreement of NEOSYS should be uninstalled immediately on discovery.&lt;br /&gt;
&lt;br /&gt;
However purposeful a software is, NEOSYS is contractually responsible for support and there are too many opportunities for poorly installed software to cause unpredictable damage to the NEOSYS database so NEOSYS has to have a clear and safe and simple policy to ensure the integrity of client data. Installing software without prior discussion with NEOSYS by itself indicates that insufficient care and consideration has been given to possible issues.&lt;br /&gt;
&lt;br /&gt;
Having unauthorized third party software on the server can possibly lead to a backup failure. For example, [[Backup_and_Restore#Error_Message:_.22LISTS_file_is_not_available.22|LISTS file not available]] error.&lt;br /&gt;
&lt;br /&gt;
Any software required by client IT for some purpose may only be installed after discussion and agreement from NEOSYS support staff concerning the configuration and operation of the software.&lt;br /&gt;
&lt;br /&gt;
The NEOSYS Software Licence and Support agreement requires that where NEOSYS software is installed on client servers that a dedicated server is provided and dedicated implies that no other software may be installed without the agreement of NEOSYS support.&lt;br /&gt;
&lt;br /&gt;
==Configuring tunnelier to autologin on opening tlp files==&lt;br /&gt;
If you have many tunnelier tlp files in a directory and connect by opening the desired tlp file the, instead of opening the file and then clicking Login you can also right click the file and select Connect.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can configure tunnelier to login (connect) automatically by following the procedure mentioned below. (Even if you configure automatic login, you can still open and not login by right clicking and choosing Open)&lt;br /&gt;
&lt;br /&gt;
===Windows 8===&lt;br /&gt;
&lt;br /&gt;
Cannot be done using standard Windows UI. Some download utilities can do it. TODO put a safe one in neosys.com/support&lt;br /&gt;
&lt;br /&gt;
===Windows XP/Vista/7/2008===&lt;br /&gt;
&lt;br /&gt;
#Go to My Computer&lt;br /&gt;
#Click on Tools -&amp;gt; Folder Options &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on File Types&lt;br /&gt;
#*Select TLP (Bitvise Tunnelier Profile) [Type &amp;quot;TLP&amp;quot; to find it quickly]&lt;br /&gt;
#*Click on Advanced &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-2.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Connect and Click on Set Default &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; [[image:tunnauto-3.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==International v/s Indian English==&lt;br /&gt;
&lt;br /&gt;
There are some words which have completely different meanings in International and Indian English. NEOSYS Staff should follow International English only. Below are the examples of few of those words:&lt;br /&gt;
&lt;br /&gt;
Word: &#039;&#039;&#039;Doubt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the English language word &amp;quot;doubt&amp;quot; means to distrust an alleged fact on the basis of a reason, depending on the strength of the reason which may be anything from factual to feeling e.g &amp;quot;I have no reason to doubt him&amp;quot;.&lt;br /&gt;
This usage is followed worldwide.&lt;br /&gt;
&lt;br /&gt;
Some people especially from Indian origin use &amp;quot;doubt&amp;quot; when they are unaware about a fact. e.g &amp;quot;I want to clear my doubts about this procedure&amp;quot;. This is incorrect. The word must be used when you do not agree on something on the basis of a reason and not when you do not have knowledge about it.&lt;br /&gt;
&lt;br /&gt;
==[[ New Employee Training Checklist]]==&lt;br /&gt;
&lt;br /&gt;
==[[ New Client Training Notes]]==&lt;br /&gt;
&lt;br /&gt;
==[[ General Office Procedures]]==&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3864</id>
		<title>Procedures</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3864"/>
		<updated>2021-08-19T05:54:01Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Get Approval */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are procedures to be followed by Support Staff in respect to various technical matters in day to day operations of client issues.&lt;br /&gt;
&lt;br /&gt;
Once Support Staff have learnt how to follow these procedures &amp;amp; rules, you then start learning when and how to not follow them. Common sense trumps all rules! i.e. don&#039;t follow procedures and rules blindly all the time. Analyse the problem and solve it practically.&lt;br /&gt;
&lt;br /&gt;
BUT if you are doing something off-piste deliberately, then just add an appropriate comment about why you are.&lt;br /&gt;
&lt;br /&gt;
==Handling Clients with Overdue Invoice==&lt;br /&gt;
In order to maintain good payment speed by clients NEOSYS needs to restrict support to clients that dont pay their bills on time, however the degree of restriction needs to depend on an intimate knowledge of the client which cannot be expected from all NEOSYS support staff. Therefore we will use a simple escalation policy as follows:&lt;br /&gt;
&lt;br /&gt;
===Overdue Support List===&lt;br /&gt;
NEOSYS SUPPORT MANAGERS WILL maintain an overdue list on a whiteboard visible to all support staff. Generally, clients will go on the list immediately when their invoice is overdue and come off only after satisfactory commitment to pay have been obtained.&lt;br /&gt;
&lt;br /&gt;
The latest overdue list email MUST always be starred until there are no clients left on the overdue list (apart from the permanently overdue clients). When a client is added to the overdue list, support must set up a filter to move client support emails to the overdue folder. When a client is removed from the overdue list, client emails must be moved back into the support inbox. This way support team will know that there are still clients on the overdue list and will not mistakenly provide support to those clients.&lt;br /&gt;
&lt;br /&gt;
[[image:FilterOverdue.jpg]]&lt;br /&gt;
&lt;br /&gt;
For the first week of each quarter of the year, normal support should be provided for server failures and backup failures (including hung processes as it could eventually lead to backup failures).&lt;br /&gt;
&lt;br /&gt;
For any other support requests from overdue clients, respond with the following letter (where XYZ is the overdue client):&lt;br /&gt;
&lt;br /&gt;
 Dear &amp;lt;user&amp;gt;,&lt;br /&gt;
 There is an issue with your company&#039;s account. We have requested our Accounts team for approval in order to provide support to you and other &amp;lt;XYZ&amp;gt; users.&lt;br /&gt;
&lt;br /&gt;
Support staff MUST then provide the required support to the overdue client only after 4 working hours. Support Staff need not actually contact the Accounts team for approval, although that is what is mentioned in the letter. This delay in support is to encourage clients to settle their payments on time.&lt;br /&gt;
&lt;br /&gt;
After the first week of each quarter of the year, respond to any support requests from overdue clients with the above letter but MUST NOT PROVIDE SUPPORT even after 4 working hours. Instead, Support Staff must refer the support request to NEOSYS Support Manager.&lt;br /&gt;
&lt;br /&gt;
Managers may well instruct support to provide support on a case by case basis even if clients are on the overdue list. Being on the overdue list does not necessarily indicate a major issue with accounts.&lt;br /&gt;
&lt;br /&gt;
If the client provides proof of payment (e.g. cheque deposit slip), then carefully check all the details as mentioned in [https://userwiki.neosys.com/index.php/Sales_FAQ#When_can_NEOSYS_support_staff_start_installation_of_NEOSYS When can NEOSYS support staff start installation of NEOSYS], before getting approval from NEOSYS management to remove the client from the overdue list. &lt;br /&gt;
&lt;br /&gt;
===Handling complaints about Licence restrictions===&lt;br /&gt;
&lt;br /&gt;
Sometimes when a client delays payment of NEOSYS invoice, support places a licence restriction for the client. In such cases, users will not be able to create and save documents dated outside the licence period. Due to this sudden restriction, clients may raise complaints about the restriction placed.&lt;br /&gt;
&lt;br /&gt;
Support MUST simply inform them that licence restrictions are a default procedure followed by NEOSYS and is applied to all clients, so that the client will in future avoid delaying the payment.&lt;br /&gt;
&lt;br /&gt;
===Handling complaints about emails from NEOSYS Accounts Department===&lt;br /&gt;
&lt;br /&gt;
If a client calls Support team to complain about emails from NEOSYS accounts department (e.g. invoice payment reminder), then immediately make them realise that they are wasting their time talking to support because support is not involved in client invoices and reminders procedure.&lt;br /&gt;
&lt;br /&gt;
Any complaints or concerns they have MUST only be sent in reply to the email they received.&lt;br /&gt;
&lt;br /&gt;
==Handling Frozen NEOSYS Installations and Databases==&lt;br /&gt;
&lt;br /&gt;
Some clients retain fully operational NEOSYS installations or just particular databases even after they stop using them for some reason, either because they move to some other software, or because they terminate an operational division, or other reasons, and this can either be on NEOSYS or their own servers.&lt;br /&gt;
&lt;br /&gt;
In this case, various NEOSYS upgrade and maintenance processes may be suspended, downgraded or completely skipped especially if instant access to the server is no longer available. This does not mean that it should never be done, and pros and cons need to be assessed and documented in support emails on a case by case basis.&lt;br /&gt;
&lt;br /&gt;
*Upgrading NEOSYS version&lt;br /&gt;
*Upgrading/standardising NEOSYS database configuration and other files for consistency, security or other issues&lt;br /&gt;
*Patching Windows/IIS configuration for consistency, security or other issues&lt;br /&gt;
&lt;br /&gt;
==Handling Links and Email Attachments==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DO NOT TRUST ANY LINK OR ATTACHMENT IN ANY EMAIL EVEN FROM HIGHLY TRUSTED PEOPLE OR ORGANISATIONS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These days you can no longer trust links or attachments in emails from anybody - even emails from highly trusted people like your bank.&lt;br /&gt;
&lt;br /&gt;
If a personal computer or intermediate email server is hacked then even genuine emails sent out from it can be infected and modified in a hidden way that can result in the recipient being infected if they click or open anything in the email.&lt;br /&gt;
&lt;br /&gt;
Therefore you should know and understand how to avoid, as far as possible, getting tricked and infected via emails.&lt;br /&gt;
&lt;br /&gt;
Malware authors generally rely on the fact that most people devote no time at all to security precautions so a moderate cautious approach, slowing down a little to spending some time on security, even where it is apparently not required, is enough to defeat most attacks.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
Do NOT click on links, especially in emails that you are not expecting, but also anywhere else that you see links, without taking various precautions. The links in an email, even from someone you know and trust, can LIE to you about what website they will open and they can lead you to websites that mere browsing can infect your computer and then others inside our network.&lt;br /&gt;
&lt;br /&gt;
WHAT LINK/WEBSITE WILL BE OPENED MAY NOT BE WHAT IT SAYS IN THE BODY OF YOUR EMAIL!&lt;br /&gt;
&lt;br /&gt;
Therefore, to use a link in any and all emails, first hover your cursor over it and check the status bar at the bottom of the screen where you can see exactly what website will be opened, or, to be more sure exactly what website you are opening DO NOT click links in emails at all. COPY/PASTE the link to your browser, AFTER following the below points.&lt;br /&gt;
&lt;br /&gt;
*Make sure you know and trust the website being opened.&lt;br /&gt;
*Carefully inspect the spelling of the domain name to avoid tricky look-alike fraudulent links eg hcsb.com instead of hsbc.com&lt;br /&gt;
*If you trust the sender but you do not personally know the website then get independent confirmation from the sender. Reply to the email so that the sender can check the link you received has not been tampered with.&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&lt;br /&gt;
Below is an example of a phishing email that you can easily tell is malware&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot1.png]]&lt;br /&gt;
&lt;br /&gt;
*You don&#039;t expect it because it says &amp;quot;before your sign up is complete&amp;quot; ... but you didn&#039;t just sign up.&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t mean that links in emails that you ARE expecting ARE safe to open. All the usual cautions apply to emails you DO expect.&lt;br /&gt;
&lt;br /&gt;
*Hover mouse over the button and check the link visually&lt;br /&gt;
&lt;br /&gt;
In the example above, the email is supposed to be from Dropbox, but hovering the mouse over the button shows the below link, which is obviously wrong:&lt;br /&gt;
&lt;br /&gt;
http://fxloraisdoxbraxsil.com.br/dropbox.html&lt;br /&gt;
&lt;br /&gt;
*Even if the link looks genuine e.g. something from a service that we use that we didn&#039;t expect, be careful for misspelt links that look like genuine links e.g. drobbox.com, which could trick you if you are sloppy.&lt;br /&gt;
&lt;br /&gt;
Never click on links in emails unless you are absolutely 100% sure that the email and link is genuine.&lt;br /&gt;
&lt;br /&gt;
Copy the link using right click copy link then paste into your browser if there is the slightest doubt.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&lt;br /&gt;
In the following case, hovering over the first two links seem to go to real UPS website, BUT this is NOT sufficient to be sure since slight misspellings and other tricks can lead you to a totally different website.&lt;br /&gt;
&lt;br /&gt;
However, hovering over the third &amp;quot;link&amp;quot; shows that clicking the apparent link would go to some website http://behappy.vn (Vietnam) so clearly this is a DECEPTION.&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example 3:&lt;br /&gt;
&lt;br /&gt;
In this case, an unknown organization behind the phishing attack is pretending to work for Leaseweb sales company and is sending emails from an email address similar to Leaseweb’s, and with Leaseweb’s footer. They claim that the original payment was declined and ask to wire or transfer money to a new account. These kind of emails are quite sophisticated and require you to be vigilant. &lt;br /&gt;
&lt;br /&gt;
Try to confirm the sender’s identity before replying to email requests and before opening attachments or clicking on links, even if they appear to come from a legitimate source. &lt;br /&gt;
&lt;br /&gt;
Below is an example of a fraudulent email request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your payment has been declined!&lt;br /&gt;
Your invoice (100421) with Office 365 Service is due.&lt;br /&gt;
To make a payment, please log in with your email address and password at&lt;br /&gt;
&lt;br /&gt;
https://leaseweb.com/payment/100421&lt;br /&gt;
Once logged in please click select the Make a Payment icon in the Billing Tab. You may complete payment by Credit Card or Paypal on this page.&lt;br /&gt;
&lt;br /&gt;
Once paid no further action is needed and your account will remain active.&lt;br /&gt;
We thank you for your continued business and assistance in helping us to get this resolved.&lt;br /&gt;
Feel free to contact us if you have any questions, comments, or concerns.&lt;br /&gt;
&lt;br /&gt;
Regards; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Attachments===&lt;br /&gt;
&lt;br /&gt;
Please follow these rules strictly:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment that you did not expect.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  be curious to see what is in an attachment.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment if there is some other way for the info to be sent e.g. Screenshot of document.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the rules above are followed then:&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you have requested it and if sender is unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you get a good explanation of it contents from sender and they are unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
It is okay to save an attached eml file and open it with GEDIT as text, as it will not trigger any virus.&lt;br /&gt;
&lt;br /&gt;
This does NOT mean that you can open attached files freely. As per the procedures above, you should NOT open any unknown or unexpected attachments without CONSIDERABLE thought.&lt;br /&gt;
&lt;br /&gt;
But saving and then opening files with GEDIT to get an idea of their contents even if the view is mangled is okay. Although, there is little point in opening files like ZIP in gedit.&lt;br /&gt;
&lt;br /&gt;
There is no way to determine if an attachment, even from someone you know, has not been infected and is therefore, dangerous.&lt;br /&gt;
&lt;br /&gt;
The only protection is to rely on anti-virus/anti-malware e-mail filters and staff vigilance!&lt;br /&gt;
&lt;br /&gt;
You can check the names and file types/extensions of attached files to spot any obviously strange or unexpected attachments, but this is not very effective. The filename of an attachment could be spoofed. An attacker could potentially exploit this by tricking the user in to opening an attachment of a different type to the one expected.&lt;br /&gt;
&lt;br /&gt;
Attachments ending in .jar or any other unusual extensions shouldn’t be opened without SB&#039;s permission.&lt;br /&gt;
&lt;br /&gt;
If there are a lot of attached files, don&#039;t assume they are all safe, make sure you asked for each of them.&lt;br /&gt;
&lt;br /&gt;
==Handling emails from unknown email addresses==&lt;br /&gt;
&lt;br /&gt;
Any sort of contact from an unknown email address must be ignored entirely, i.e. no response whatsoever from Support, as these emails could be from a fraudulent source. If the email is genuine, then the sender can surely contact their managers.&lt;br /&gt;
&lt;br /&gt;
Support should keep in mind that hackers can send emails that look genuine, aiming to get private/confidential information and so should always stay alert when dealing with such emails.&lt;br /&gt;
&lt;br /&gt;
==Handling junk/spam email==&lt;br /&gt;
&lt;br /&gt;
In order to get better automatic spam email filtering please mark as many obviously spam emails as Junk, instead of just deleting them. Marking them will delete them so it takes not much longer to do.&lt;br /&gt;
&lt;br /&gt;
*DO NOT delete emails from Junk or Spam folder because they are used to identify future junk and spam emails.&lt;br /&gt;
*Any email identified as junk should be marked as Junk so that they automatically go into the Junk folder. The spam filter in the mail server will use these emails in the Junk folder to decide what is moved into the spam folder.&lt;br /&gt;
*You MUST ensure that all clearly junk/spam emails are marked as Junk/Spam in ALL email inboxes. In other words they MUST be moved to Junk/Spam folders and not left in our inboxes or other main folders.&lt;br /&gt;
*Any emails which are not clearly junk/spam emails or are similar to genuine emails, but you know are spam/junk MUST be deleted i.e. NOT left in inbox NOR moved to Junk/Spam folders.&lt;br /&gt;
&lt;br /&gt;
Failing the above we will have the following problems:&lt;br /&gt;
&lt;br /&gt;
*Real emails disappearing into junk/spam folders by our email server.&lt;br /&gt;
*More junk/spam emails appearing in our inboxes than necessary.&lt;br /&gt;
&lt;br /&gt;
The Junk email folder contains emails that have been manually marked as spam/junk whereas the &amp;quot;spam&amp;quot; email folder contains emails that have automatically been filtered out by the email server.&lt;br /&gt;
&lt;br /&gt;
==Avoid burdening email servers with excessive graphics==&lt;br /&gt;
&lt;br /&gt;
Support MUST install the &amp;quot;Auto Resize Image&amp;quot; addon in Thunderbird to reduce the size of images in emails resulting in a significant reduction in email size. See [[Configuring_Thunderbird#Configure_Auto_Resize_Image| setting up auto resize image]] for details.&lt;br /&gt;
&lt;br /&gt;
It reduces the burden on NEOSYS and NEOSYS client&#039;s email servers. This is especially important on long conversations about subjects that include many screenshots, since for just a simple one line reply, the email can consume many MB of space. It massively wastes the email server space and makes backups massive and generally a total waste of resources and time.&lt;br /&gt;
&lt;br /&gt;
To be able to refer back to graphics in previous emails, add the SIZE column to your email program so that you can locate large emails with graphics rapidly without searching back one by one.&lt;br /&gt;
&lt;br /&gt;
==Client Communication Policies==&lt;br /&gt;
===Client Meeting Report Policy===&lt;br /&gt;
&lt;br /&gt;
After every Client meeting online or otherwise Support MUST send a Follow-Up email to the Client which is open and fully informative and not brief, stating the events during the meet and any action required by either or both parties. The email to the client must not shrink from discussing contentious issues due to a false sense of politeness or timidity to address issues face on. Obviously one should not be rude but it is not rude to address issues openly.(cc Client managers and NEOSYS Managers)&lt;br /&gt;
&lt;br /&gt;
The follow-up email MUST be sent within 24 hours of completion of the meeting so that the points discussed during the meeting are fresh in all the meeting participants&#039; minds. This means that reports for meetings on the day before the weekend MUST be sent on the SAME day.&lt;br /&gt;
&lt;br /&gt;
In addition to above email if there is some information that needs to be shared internally and cannot be said in public to the client then send a Client Meeting report to Support.&lt;br /&gt;
&lt;br /&gt;
Support must also update the Client Contact Record file in Google Drive immediately after sending out the follow-up email.&lt;br /&gt;
&lt;br /&gt;
===Follow Up of Support Issues===&lt;br /&gt;
&lt;br /&gt;
All voice/chat communication MUST also be followed up with an email confirming at least the gist of the communication to keep the whole support team updated on the issue.&lt;br /&gt;
&lt;br /&gt;
If not possible to contact for any reason, then an email MUST be sent stating so and suggesting or requesting a time to connect.&lt;br /&gt;
&lt;br /&gt;
cc Client managers (and/or BCC NEOSYS Managers) MAY be done if thought to be useful and/or appropriate.&lt;br /&gt;
&lt;br /&gt;
===Handling Contentious Emails from Clients===&lt;br /&gt;
&lt;br /&gt;
If emails requesting support become contentious, then voice, phone call or chat is REQUIRED to save time. However, client support via phone call should be done only on local or low-cost calls. High-cost international calls should not be used except in extreme circumstances.&lt;br /&gt;
&lt;br /&gt;
If clients become deliberately combative or uncooperative then Support team is supposed to kick back a little but still emphasise the point. Perhaps it could be done better with a little ironic humour or a smiley. Avoid using !! while responding to contentious emails.&lt;br /&gt;
&lt;br /&gt;
===Apologising to clients for issues===&lt;br /&gt;
&lt;br /&gt;
We only need to apologise for major issues that are a) definitely our fault and b) we wish to indicate that there is some general issue in NEOSYS procedures and that we are dealing with it. &lt;br /&gt;
&lt;br /&gt;
We do not want to invite bullying by some clients by seeming to lack confidence in our ability.&lt;br /&gt;
&lt;br /&gt;
An explanation of the cause and possibly FP is of more value to the client, since an apology doesn’t really make any difference.&lt;br /&gt;
&lt;br /&gt;
===Discussing Pricing=== &lt;br /&gt;
All discussions about pricing must be done only in Sales inbox. If clients bring up pricing discussion in support emails, NEOSYS staff must respond to the client by starting a new thread in the Sales Inbox.&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Support Response Time Policy==&lt;br /&gt;
&lt;br /&gt;
NEOSYS contracts, in the few cases where we have a written contract with the client, specifies that maximum response time is one business day generally and one business hour for complete stoppages of the system. Obviously we have to do far better than this in practice.&lt;br /&gt;
&lt;br /&gt;
Support staff must inform clients of the progress of the issue if it is not resolved the same day but only if they contact at least 1 hour before office closing.&lt;br /&gt;
&lt;br /&gt;
Deciding to wait on issues is fine (also refer to:  [[Procedures#Handling_users_who_do_not_act_upon_standard_messages|Response to standard messages]]), but support MUST at least spend up to 5 minutes on issues to see if they can be handled quickly. Support MUST respond quickly to issues that can be handled quickly, otherwise the client suffers unnecessarily.&lt;br /&gt;
&lt;br /&gt;
When an issue is fixed or a client request has been implemented in NEOSYS, Support must immediately let users know that the issue is fixed, so that clients can continue their work without any further delay. Quick and prompt responses from Support will gain the client&#039;s appreciation.&lt;br /&gt;
&lt;br /&gt;
For routine requests for service where there is a reasonable expectation of delay by the client then no need to send rapid reply.&lt;br /&gt;
&lt;br /&gt;
==Default Browser for support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS supports and develops for Firefox primarily but other browsers such as Chrome and Edge MUST also be tested working fine. Support team currently uses Firefox for all work related tasks in Ubuntu which includes testing, wiki work etc.&lt;br /&gt;
&lt;br /&gt;
Also refer to [http://itwiki.neosys.com/index.php/Setting_up_Ubuntu_on_NEOSYS_Support_Computers#Mozilla_Firefox Setting up Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
==Handling errors discovered by support staff==&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
==Handling browser script errors==&lt;br /&gt;
&lt;br /&gt;
If a script error is faced, support should take a full screenshot of the script error including the script name, line number, etc.&lt;br /&gt;
&lt;br /&gt;
Include every detail available regarding the script error and also the steps to replicate it and escalate this to the programmer.&lt;br /&gt;
&lt;br /&gt;
Chrome JavaScript Error Notifier extension shows all the details available in the initial script error message itself. In Internet Explorer, you will have to click &#039;Yes&#039; on the script error message to get all the details.&lt;br /&gt;
&lt;br /&gt;
==Various checks done by Support to investigate errors==&lt;br /&gt;
&lt;br /&gt;
A list of logs/reports that Support must look at, depending on the situation, to solve issues or investigate errors.&lt;br /&gt;
&lt;br /&gt;
#Support inbox emails: Check old emails in Thunderbird. This is the quickest way to handle issues/errors that were handled recently.&lt;br /&gt;
#Logs/reports available in NEOSYS Menu&lt;br /&gt;
#*Request Log (Support -&amp;gt; RequestLog) - These logs can be checked to see what request were made and by which users etc., not as detailed as the xml logs mentioned under &amp;quot;Logs found on the server&amp;quot;.&lt;br /&gt;
#*NEOSYS logs (Support -&amp;gt; Log) - Log of alerts sent out via email, e.g. backup email, login failure, etc.&lt;br /&gt;
#*What&#039;s New report (Help -&amp;gt; What&#039;s new in NEOSYS) - Contains a list of all the features added in NEOSYS&lt;br /&gt;
#*List of Database processes (Support -&amp;gt; List of Database Processes) - Status of processes windows running on the server.&lt;br /&gt;
#*List of documents in use (Support -&amp;gt; List of Documents in Use) - Currently used documents.&lt;br /&gt;
#*User details page (Help -&amp;gt; User Details) - To check logins and IPs and password reset details.&lt;br /&gt;
#*Version logs of files - The history of edits made to files in NEOSYS. This is available at the bottom of files in NEOSYS (e.g. Schedule file, Voucher file, etc.)&lt;br /&gt;
#*Usage Statistics (Support -&amp;gt; Usage Statistics) - Shows no. of requests made per user, per department, per database, per hour etc.&lt;br /&gt;
#Logs found on the server:&lt;br /&gt;
#*Xml logs - These logs can be checked to see what request were made and by which users etc. in detail.&lt;br /&gt;
#*Process logs (.LOG files) - These log files contain entries showing start of database backup, and process startup logs.&lt;br /&gt;
#*Process windows - Check process windows on the server for error messages or anything unusual, e.g. hung processes.&lt;br /&gt;
#*Procexp (Process Explorer)- Used to check ntvdm processes running for specific installations (useful on servers with multiple installations).&lt;br /&gt;
#*System logs (Event viewer) - Used to check for unusual system events, eg: unexpected shutdown.&lt;br /&gt;
#*Task manager - Checked to monitor CPU usage, NTVDM running etc.&lt;br /&gt;
#NAGIOS - Monitors the status of all hosts and services.&lt;br /&gt;
&lt;br /&gt;
==Handling Cheques from Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff are not to accept deliveries from clients that might be cheques without prior instructions to accept the same. They can ask courier to wait a few minutes until NEOSYS accounts or management agrees but they may not be immediately available and probably will not agree anyway. If accounts or management is not immediate available, then cheque MUST not in any circumstances be accepted, otherwise client can cause problems in our accounts and we waste time visiting the bank to deposit.&lt;br /&gt;
&lt;br /&gt;
NEOSYS payment terms do not accept cheques although clients are free to deposit cheques by themselves.&lt;br /&gt;
&lt;br /&gt;
==Client Password Policy==&lt;br /&gt;
All client user passwords, including their initial one, are to be obtained via the user&#039;s email address using the password reminder/reset button on the login screen. [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#What_is_NEOSYS_password_policy.3F (NEOSYS password policy)]&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff should never know users passwords therefore NEOSYS will not obtain and grant user passwords. The reason for this is that in the event that users lose their passwords to other people who then login unauthorised then suspicion could fall on the NEOSYS staff who know their password. &lt;br /&gt;
&lt;br /&gt;
All parties concerned, including client management, client users and NEOSYS support staff, benefit greatly from trusting that if something in a NEOSYS database is registered as having been done by a particular user then it was not in fact somehow done by NEOSYS support staff. Nothing should be done that would break such fundamental trust. To achieve this, NEOSYS support staff must never log in as particular users, never ask for users passwords and generally enforce the idea that all work logged as being done by users IS done by users.&lt;br /&gt;
&lt;br /&gt;
Very limited amounts of work by NEOSYS support staff either in person or remotely using teamviewer is acceptable while a user is logged as long as the user login was performed by the user themselves, the user is present and the user specifically agrees with the work being done.&lt;br /&gt;
&lt;br /&gt;
===Support requests from ordinary client users===&lt;br /&gt;
Any support requests concerning inability to obtain passwords will be forwarded to known skilled users on the client staff since this is the most efficient (not fastest) way to handle such issues.&lt;br /&gt;
&lt;br /&gt;
===Support requests from senior client management===&lt;br /&gt;
Any support requests concerning inability to obtain passwords by senior client management users shall be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bearing in mind that NEOSYS staff should never know user&#039;s passwords this will probably involve NEOSYS staff using the Password Reminder/Reset button to send a new password to the user.&lt;br /&gt;
&lt;br /&gt;
===User Defined Passwords===&lt;br /&gt;
NEOSYS will provide user defined passwords in very special cases which must be pre-approved case by case by NEOSYS management. NEOSYS will not approve this due to the reasons mentioned [[Procedures#Client_Password_Policy|here]].&lt;br /&gt;
&lt;br /&gt;
If the user login gets blocked due to multiple login failures and the user requests support team to reset the password to the user defined password again, support MUST delay the response to this request by at least 1 hour in order to force the user to be more careful when typing the password.&lt;br /&gt;
&lt;br /&gt;
Currently permission for user defined password has only been granted to one NEOSYS client with several hundreds of databases.&lt;br /&gt;
&lt;br /&gt;
==Handling client issues and requests==&lt;br /&gt;
&lt;br /&gt;
All support issues must be dealt with through phone/email/chat. Support Staff can schedule client visits for User Training but should not schedule client visits solely for providing support for petty issues.&lt;br /&gt;
&lt;br /&gt;
ALL Support staff should check all the previous day&#039;s inbound emails for reply flags once in the morning. All Support staff will therefore be held responsible for any unreplied inbound email.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT waste time and delay support by investigating issues WITHOUT SUFFICIENT INFORMATION.&lt;br /&gt;
&lt;br /&gt;
Support must NOT get involved in any discussion about any document that is not directly out of NEOSYS, so that Support is able to reproduce it from NEOSYS screenshots of screen options that the client used.&lt;br /&gt;
&lt;br /&gt;
Support should look for similar issues when solving a particular problem to avoid similar issues in future. This saves the time and energy of Support as well as the Client.&lt;br /&gt;
&lt;br /&gt;
When sending screenshots to clients, support team should economise on space by minimising to the minimum that will show the problem clearly. This is because not every user will be viewing their emails on large wide screens like NEOSYS support team. Browser windows reformat their contents to suit the width available so this is particularly effective in most NEOSYS screens.&lt;br /&gt;
&lt;br /&gt;
Support team MUST be cautious while sending screenshots so that no private/unnecessary information is sent to Client. If you cannot avoid taking the screenshot without unnecessary information then you should hide it in the screenshot.&lt;br /&gt;
&lt;br /&gt;
Support team MUST learn not to do silly support for people, because we have an OPEN SUPPORT policy, which some users WILL try to abuse based on either poor understanding or lack of respect. &lt;br /&gt;
Either way support MUST learn to deal with abuse of privileges as it will save a lot of time, which could be spent on more important issues.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
===Handling new emails in Support inbox===&lt;br /&gt;
Support MUST spend up to 5 minutes on new emails and send a quick reply to the client, to acknowledge the request or give a quick solution in case it is a petty issue or has a documented solution in wiki.&lt;br /&gt;
&lt;br /&gt;
Client issues/requests should be prioritized, interrupting existing work and not wait for one hour and be dealt with quickly.&lt;br /&gt;
&lt;br /&gt;
For routine service requests where there is a reasonable expectation of delay by the client, Support need not send a rapid reply but must keep the email starred in Support inbox to indicate that it is pending or being worked on.&lt;br /&gt;
&lt;br /&gt;
===Handling starred emails in Support inbox===&lt;br /&gt;
&lt;br /&gt;
When an email is received in Support inbox,&lt;br /&gt;
&lt;br /&gt;
*if the email can be replied to immediately, then mark it as read after you have replied to the email.&lt;br /&gt;
*if the issue cannot be resolved immediately, then the email MUST be starred so that support does not forget to work on it. Once the issue has been resolved, Support should send an email to Support inbox confirming that the issue is closed. Only then should the email be unstarred.&lt;br /&gt;
&lt;br /&gt;
No issue should be silently dropped without being fully resolved.&lt;br /&gt;
&lt;br /&gt;
===Handling client-sensitive information in emails===&lt;br /&gt;
&lt;br /&gt;
Support should avoid including information that could be sensitive to clients e.g. screenshots of reports that should only be viewed by client&#039;s upper management.&lt;br /&gt;
&lt;br /&gt;
This can be done simply by clever cropping of images or blurring out of information in cases where cropping is not possible. &lt;br /&gt;
&lt;br /&gt;
Support MUST not delay response to any client by wasting time blurring or cropping out information that is not sensitive to clients, e.g. blurring out the URL and tabs in browsers etc.&lt;br /&gt;
&lt;br /&gt;
===Handling client call back requests===&lt;br /&gt;
&lt;br /&gt;
Clients who ask us to call them should be given our phone number and asked to call us unless there is some GOOD reason why we should make the effort and pay phone charges.&lt;br /&gt;
&lt;br /&gt;
===Handling login failure issues===&lt;br /&gt;
&lt;br /&gt;
Users often get login failure issues due to typing wrong password and they simply won&#039;t read and act according to the error message they get. In this case, Support must send the below email to the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
If you have trouble resetting password, please ask for assistance from your manager/IT Manager/Timesheet Administrator/NEOSYS-expert colleague.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local support users (TA or IT manager etc) have the LS key using which they can see the User Details page of all users. They should check all the information (usercode, registered email id, last login attempts etc) in the User Details page to find out what is the issue.&lt;br /&gt;
&lt;br /&gt;
This procedure will reduce the endless mails sent back and forth to solve petty issues which could easily be solved by the client&#039;s local support.&lt;br /&gt;
&lt;br /&gt;
===Handling requests or demands for &amp;quot;URGENT&amp;quot; or &amp;quot;PRIORITY&amp;quot; support===&lt;br /&gt;
&lt;br /&gt;
Any request for prioritised action *without giving any reason for the prioritisation* should be disregarded and the request handled with normal priority. If a reason is given then you may at your discretion prioritise a response but there is no obligation to do so.&lt;br /&gt;
&lt;br /&gt;
===Handling users who login with other people&#039;s NEOSYS usercodes===&lt;br /&gt;
This can cause a lot of confusion in both the client and NEOSYS support. It may also indicate that the correct NEOSYS monthly licensing fee is not being paid. There is no valid reason for anonymous logins or sharing logins between multiple users.&lt;br /&gt;
&lt;br /&gt;
Therefore if NEOSYS support team get requests for support about using NEOSYS from users who are not registered properly in NEOSYS with an personally identifiable user code, name and email then the following email should be sent cc admin@neosys.com.&lt;br /&gt;
&lt;br /&gt;
No exception should be granted to clients without NEOSYS management approval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear NEOSYSUSER,&lt;br /&gt;
&lt;br /&gt;
Please note that in order to receive support from NEOSYS you must personally have an identifiable user code, name and email address registered&lt;br /&gt;
in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
We can create new user account for you with your management approval. This may or may not have an impact on the NEOSYS monthly licensing fee &lt;br /&gt;
depending on the agreement in force.&lt;br /&gt;
&lt;br /&gt;
Please let us know what you would like us to do.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling support requests from expired users===&lt;br /&gt;
&lt;br /&gt;
If expired users call for any reason including not being able to login, they must not be given any support. They should only be told that their account is expired without any reason being offered because employers sometimes do not want any information at all being passed to expired users.&lt;br /&gt;
&lt;br /&gt;
===Handling support request from senior management===&lt;br /&gt;
&lt;br /&gt;
Any support requests from senior client management users concerning report generations should be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bear in mind that NEOSYS staff should not agree or offer to do client work. Support staff can advise senior management to contact a skilled user to help them with basic NEOSYS reporting. Support staff can also send screenshots of step by step procedure on how to take reports. Depending on the situation and reasons provided by senior management, support staff can at their discretion provide reports but after informing them that this is an exception and no more reports will be sent out as this is against NEOSYS procedures.&lt;br /&gt;
&lt;br /&gt;
===Handling requests that involve updating NEOSYS configuration files===&lt;br /&gt;
&lt;br /&gt;
Changes to any configuration file in NEOSYS MUST be performed only by NEOSYS support, because even the slightest misconfiguration of the system may cause unrecoverable errors and NEOSYS is responsible for support.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with unrelated subject line===&lt;br /&gt;
At times, clients forward old emails, with new issues, resulting in completely unrelated subject line. In such situations, support MUST follow the below steps to ensure that unrelated emails do not appear in the same conversation group when viewing emails in conversation mode:&lt;br /&gt;
&lt;br /&gt;
#Right click the email -&amp;gt; HeaderToolsLite -&amp;gt; Edit full source&lt;br /&gt;
#Modify the text that appears after &amp;quot;Message-ID: &amp;lt;&amp;quot;. (e.g. replace the first few characters with &amp;quot;xxxxxxxxx&amp;quot;)&lt;br /&gt;
#Remove all texts that appear after &amp;quot;References:&amp;quot; and &amp;quot;In-Reply-To:&amp;quot; and click OK.&lt;br /&gt;
#Click Reply All on the modified email.&lt;br /&gt;
#Change the subject to a relevant one.&lt;br /&gt;
#Delete old unrelated content from the email body.&lt;br /&gt;
&lt;br /&gt;
In the email reply, include a comment like &amp;quot;PS Please don&#039;t forward old emails for new issues, start a new email with a new subject so that emails can be traced easily.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sometimes the client does not bother putting the correct subject line for new issues (e.g. blank subject, or &amp;quot;Error&amp;quot;). Then support should add a meaningful subject line in order to make the email easy to search for.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with poor screenshots===&lt;br /&gt;
Sometimes Thunderbird shows full sized screenshots in a compact format that is not easy to read. These can be resized to make them more legible. To do this, make the email editable by hitting the &amp;quot;Reply&amp;quot; button, then click and drag to resize the screenshot as desired.&lt;br /&gt;
&lt;br /&gt;
If the screenshot sent by the user is genuinely small and hard to read, reply to the mail and request for a full size, clear screenshot.&lt;br /&gt;
&lt;br /&gt;
===Handling support-request emails sent to anywhere than support@neosys.com===&lt;br /&gt;
Client emails anywhere than support@neosys.com MUST be ignored. This is because ALL support must be recorded in support inbox without exception so that the whole support team is aware of the issue and action taken. If client complains about the delay in support then they can be told this is because they used the wrong email address.&lt;br /&gt;
&lt;br /&gt;
===Handling users who do not act upon standard messages===&lt;br /&gt;
When users do not bother to read and act on standard NEOSYS-generated messages and instead ask for help, Support staff MUST delay response time and thereafter send them an email which is the same as the message so they get the point that in future they should read the messages and handle issues themselves.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests to do Client work===&lt;br /&gt;
NEOSYS Support staff must not agree or offer to do work on behalf of the client. &lt;br /&gt;
&lt;br /&gt;
This is because doing client work while logged in as NEOSYS breaks security rules. Support uses the NEOSYS username which has unrestricted access, so when a user requests Support to do some work which they don’t have access to, and if Support agrees to do the work, the client has successfully defeated the security rules by accessing features that they are unauthorised to access.&lt;br /&gt;
&lt;br /&gt;
If a client makes a false claim about an issue in NEOSYS, i.e. if Support finds out that there is no real issue, then direct the client in the right direction so that they find out their mistake by themselves. Support MUST NOT show/explain the problem to them in detail, since you are just doing their work for them by explaining the problem and this will encourage the client to contact support for every petty issue they face. &lt;br /&gt;
&lt;br /&gt;
Client work also includes [[Procedures#Handling_issues_with_totals_on_reports|Handling issues with totals on reports]].&lt;br /&gt;
&lt;br /&gt;
====Requests for colour and font changes====&lt;br /&gt;
&lt;br /&gt;
Support should not be spending lots of time on colour and font changes. Clients can make as many changes as they want until they are happy with a selection. Clients MUST send a screenshot of their required color/font settings (not sample screen/reports) for Support to copy and setup for all users. If Support sees them doing something bad or poor then give comments or better suggestions.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests that require Approval from Higher Authority===&lt;br /&gt;
&lt;br /&gt;
The following is a list of user requests that must be handled by NEOSYS support staff only if they are approved by or come from a higher authority (manager/admin). The LIST is &#039;&#039;&#039;NOT&#039;&#039;&#039; a complete list so there may be other things which might require approval so use good judgement and/or ASK if in doubt.&lt;br /&gt;
&lt;br /&gt;
*Opening new financial year&lt;br /&gt;
*Adding new company/dataset&lt;br /&gt;
*Editing alert/backup email receiver addresses&lt;br /&gt;
*Customising Authorisation File ({{SensitiveSecurity }})&lt;br /&gt;
**Adding or removing accesses for existing users in Authorisation file&lt;br /&gt;
**[[Procedures#Handling_new_USER_creation| Adding new user(s) to Authorisation file]]&lt;br /&gt;
**Expiring a user&lt;br /&gt;
**[[Procedures#For_HTTPS_access| Allowing HTTPS/outside office access from any IP number]]&lt;br /&gt;
&lt;br /&gt;
If an unauthorized user sends one of these requests to support staff, support staff must immediately instruct the user to get the request approved by the higher authority.&lt;br /&gt;
&lt;br /&gt;
====Handling Requests from people impersonating an Authorised person====&lt;br /&gt;
A user may impersonate the authorised person by using their email address or signature when they are told that the request must come from or be approved by the authorised person. Support must use their judgement to deal with such requests. &lt;br /&gt;
&lt;br /&gt;
If it is a simple request such as adding a new user or expiring one, Support can go ahead with the request.&lt;br /&gt;
&lt;br /&gt;
If it is a request with risk involved such as providing remote access or granting high-level authorisation, Support must then contact the authorised person and let them know that their approval for the request has been received and are proceeding with the request.&lt;br /&gt;
&lt;br /&gt;
===Handling User Requests to add an IP or range of IPs to access NEOSYS===&lt;br /&gt;
&lt;br /&gt;
Support staff must identify if the IP or range of IPs is for http or https access.&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
====For HTTP access====&lt;br /&gt;
Support staff can add local IP or range of local IPs when requested by the client. Top management approval is not needed to add local IP numbers. Listed below are the IP address ranges reserved for local network.&lt;br /&gt;
&lt;br /&gt;
10.0.0.0 – 10.255.255.255&lt;br /&gt;
&lt;br /&gt;
172.16.0.0 – 172.31.255.255&lt;br /&gt;
&lt;br /&gt;
192.168.0.0 – 192.168.255.255&lt;br /&gt;
&lt;br /&gt;
====For HTTPS access====&lt;br /&gt;
Any request for https access from any IP address or range of IP addresses (eg. 123.456.* or just *), or in other words any use of an asterisk in the IP restrictions, MUST have TOP management i.e. the company&#039;s decision makers approval. The Staff and their Managers are not the best decision makers in this affair because they usually ignore the risks and it is not really their decision. Security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc can be triggered if access from any IP is enabled. It is completely pointless to inform the staff who want the access about these risks because only their top managers could really decide that this is NOT going to be allowed. Hence the Top Management MUST be asked for approvals and at the same time WARN them about the security risks/threats behind the no IP restrictions.&lt;br /&gt;
&lt;br /&gt;
=====For clients with static IP=====&lt;br /&gt;
Any request to add a specific IP address to the list of allowed IP addresses MUST have management approval.&lt;br /&gt;
&lt;br /&gt;
=====For clients with dynamic IP=====&lt;br /&gt;
For clients with dynamic IP, support MUST NOT add their public IP to the allowed list as this will encourage the client to again request for access from new IP numbers every time their public IP changes. Instead, support MUST force the client to either get a static IP, install VPN or get the Top Management i.e. the company&#039;s decision maker&#039;s approval to enable access from any IP after explaining the security risks in doing so, as mentioned above.&lt;br /&gt;
&lt;br /&gt;
Support MUST also mention that installation of VPN by the Company is the industry standard way of providing access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER. Installation of VPN is to be done by their own IT support. Refer to [[Procedures#Using_VPN_to_enable_secure_access_from_outside_the_office|Using VPN to enable secure access from outside the office]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Sample Email addressed to Top Management:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear &amp;lt;XXXXX&amp;gt;,&lt;br /&gt;
 &lt;br /&gt;
I do not recommend allowing access from all IPs because security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc. can be triggered if access from any IP is enabled.&lt;br /&gt;
&lt;br /&gt;
I strongly recommend that you keep IP restrictions for &amp;lt;XXXXXX&amp;gt; dataset.&lt;br /&gt;
  &lt;br /&gt;
If you want to provide access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER, then installation of VPN is the industry standard of achieving this. Installation of VPN is to be done by your own IT support. &lt;br /&gt;
 &lt;br /&gt;
If you still wish to allow access from all IPs, kindly confirm that you acknowledge the security threats of doing so. &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling repeated request to allow users to access from all IPs===&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
If the client wants temporary access from outside for some staff twice in say a six months period then support should send the below email. The real reason is because we don&#039;t have the time to be doing this on a regular basis. If at all the client asks why we no longer support the provision of temporary outside access then we can say this is because of the frequency of such requests.&lt;br /&gt;
&lt;br /&gt;
 Dear XXX&lt;br /&gt;
 &lt;br /&gt;
 We have given you temporary outside access this time, as requested. Please note that we can no longer support the provision of temporary outside access. So in the future, you will have to choose between either permanent or no outside access. Alternatively, you can ask your management to install a VPN (which is the industry standard of achieving outside access to a corporate asset in a secure manner), so that you can log in to NEOSYS from outside.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create a new feature or modifying existing features===&lt;br /&gt;
&lt;br /&gt;
Many issues are small and not important but can still be considered for development because they may be easy and neatly added to NEOSYS. The aim here is to avoid development on hard issues for little benefit, or little issues that make NEOSYS more complex for little benefit.&lt;br /&gt;
&lt;br /&gt;
When a client requests to create a new feature or modify an existing feature, a workaround must be given to the user, which is either a permanent solution, for example if the issue is a rare case and not commonly faced by other clients (and the workaround is acceptable to the client), or a temporary solution until some better solution is discovered or can be developed.&lt;br /&gt;
&lt;br /&gt;
Support MUST check all options on all pages to look for any already existing solution or workaround to the problem before emailing the programmer.&lt;br /&gt;
&lt;br /&gt;
Any request to create a new feature or modify an existing feature MUST be discussed with other clients before forwarding it to the programmer because the other clients might not be comfortable with the change as it may not be in accordance with their workflow. If other clients agree to the proposed change then support should go ahead and request the programmer to implement it.&lt;br /&gt;
&lt;br /&gt;
Therefore before escalating a request to the programmer to modify a feature in NEOSYS, the approval for the same from other clients must be taken into account.&lt;br /&gt;
&lt;br /&gt;
Any request to fix or modify a feature in NEOSYS must be accompanied with good reason and some basic considerations, so that the programmer knows what level of priority it can be dealt with. &lt;br /&gt;
&lt;br /&gt;
When escalating the request to the programmer, support MUST avoid using &amp;quot;Is it possible..?&amp;quot; because the obvious answer to that is &amp;quot;Anything is possible&amp;quot; and because this question is only a way to avoid doing the real work of deciding whether the new feature/modification should be implemented.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to add more fields to List of Invoices reports===&lt;br /&gt;
&lt;br /&gt;
Many users may ask for the List of Invoices report to be expanded to show a zillion other things, but this makes it NOT a list of invoices. Therefore other break-downs MUST be obtained from other reports in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Updating Clients about unresolved issues===&lt;br /&gt;
Support should proactively inform clients if an issue is not solved within the same day it was raised, after judging the urgency of the issue and the time it was raised. An email to the client who raised the issue, before the end of each day, is a best practice that keeps the client updated and other support staff too. This email should be sent regardless of the degree to which the issue has been resolved or if the issue is unresolved. If the issue is unresolved, the email should explain why and also explain the cause of delay.&lt;br /&gt;
&lt;br /&gt;
===Handling new USER creation===&lt;br /&gt;
====Get Approval====&lt;br /&gt;
Support staff should create new USERS for clients ONLY when requested by an authorised person. If the authorised person is unavailable, for example on leave, then get approval from someone who is in the backup mail list.&lt;br /&gt;
&lt;br /&gt;
Ideally only people who are users in NEOSYS and have authority over some task can grant or request authority to do that task to other NEOSYS users. However, if this is not the case and the requesting person has some seniority in the company (but is either not a NEOSYS user, or is not actually currently authorised to perform the task themselves) you may decide that it is not wise to proceed without some confirmation. In such a case be very respectful of their position while rejecting any request perhaps stating something like:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Currently we have instructions to take requests concerning authorisation only from xxx, yyy and zzz. Please could this request be confirmed by one of them?&amp;quot; Rewrite this judiciously to suit the occasion.&lt;br /&gt;
&lt;br /&gt;
Consider that different sections of a company may have different chain of commands. For example one should not assume that a Sales Director has authority over Finance unless there is firm evidence. If there is any doubt consult NEOSYS Support Managers.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT directly contact the authorised person asking for approval/confirmation because that is client work.&lt;br /&gt;
&lt;br /&gt;
In a case where a client is [[Procedures#Handling_Requests_from_people_impersonating_an_Authorised_person|impersonating an Authorised person]] to get a new user request approved, Support may go ahead with the request. If the client is asking to create a high-level user, you may include users from the same department or other high-level users in your email.&lt;br /&gt;
&lt;br /&gt;
Clients should not be discouraged to create new users. Clients are billed as per user usage which is reviewed periodically. Over time old USERS are replaced with new USERS.&lt;br /&gt;
&lt;br /&gt;
====Creating User====&lt;br /&gt;
Preliminary:&lt;br /&gt;
&lt;br /&gt;
New user requirements :-&lt;br /&gt;
&lt;br /&gt;
*Full name                                      - (like John Smith and not generic name like Copy Writer)&lt;br /&gt;
*Email address                                  - (like johnsmith@example.com and not generic address like copywriter@example.com)&lt;br /&gt;
*Group level / User with similar authorisation&lt;br /&gt;
&lt;br /&gt;
The USER code is the first name of a user. &lt;br /&gt;
&lt;br /&gt;
1. Support MUST only create NEOSYS accounts with real names and email addresses WITH NO EXCEPTIONS unless agreed by NEOSYS management.&lt;br /&gt;
&lt;br /&gt;
It is acceptable, although inefficient, for one person to have multiple user accounts either concurrently or sequentially, but the opposite MUST never occur.&lt;br /&gt;
One NEOSYS user code/account MUST never have more than one real person associated with it neither concurrently nor sequentially.&lt;br /&gt;
In order to maintain efficiency, various fleeting temptations to cut corners and break the ONE TO ONE link between NEOSYS users accounts and real people MUST be resisted.&lt;br /&gt;
These principle remain mandatory even when pressure is exerted by people, even senior management, who may not appreciate the issues involved.&lt;br /&gt;
The fact that NEOSYS support does not know for certain who is the real person using an NEOSYS account does not change these principles.&lt;br /&gt;
&lt;br /&gt;
2. Support MUST not create GENERIC user codes like AUDITOR or MANAGEMENT (even to grant special access to such users like read-only access) as this breaks all security rules.&lt;br /&gt;
Do not re-use user codes. Always create NEW user codes for NEW users.&lt;br /&gt;
&lt;br /&gt;
3. Support MUST not create or modify any usable NEOSYS account that is or has been used by more than one user.&lt;br /&gt;
&lt;br /&gt;
4. Support is responsible to maintain the system in good working order and not knowing who is really doing the work in the system can make support harder.&lt;br /&gt;
&lt;br /&gt;
5. Support MUST not collude with clients to by-pass the principles. If asked to do so Support MUST refuse to create or update such accounts.&lt;br /&gt;
&lt;br /&gt;
6. Do not hand over user codes from one person to another in a mistaken attempt to represent a hand over to a replacement. EXPIRE THE OLD USER CODE/ACCOUNT AND CREATE A NEW USER CODE/ACCOUNT.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
7. Support team MUST NOT discuss billings with clients unless authorised to do so. Also see [[Procedures#Discussing_Pricing|Discussing Pricing]] &lt;br /&gt;
&lt;br /&gt;
8. Support team MUST NOT proceed with creating new users until the group level or existing user with similar authorisation has been clearly provided by the client, otherwise the new user may end up with more than the required authorisation, which can lead to problems in future.&lt;br /&gt;
&lt;br /&gt;
====After Creating New User====&lt;br /&gt;
&lt;br /&gt;
Support MUST send an email to the person who requested the creation of new user, confirming that the new user has been created along with a screenshot of that part of the authorisation table where the new user was created so that the new user&#039;s user code and email id is visible. This is done so that in case there is some error in the user code or email id, it is easily visible in the screenshot and also so that the person who requested the creation of the new user is informed about the user code of the new user.&lt;br /&gt;
&lt;br /&gt;
===Handling letterhead change requests===&lt;br /&gt;
&lt;br /&gt;
Support staff should reject any requests that require the letterhead to be setup on the TESTING dataset before it is setup in the MAIN dataset.This is to reduce double work for support staff and to ensure that clients have a clear understanding of their requirements and also send the correct logo image.&lt;br /&gt;
The MAIN dataset can be copied to the TEST dataset for any kind of testing.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Configuring_Letterhead#Changing_the_letterhead_for_printed_documents How to change letterhead]&lt;br /&gt;
&lt;br /&gt;
===Handling error messages===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Before Attempting to resolve client issues, please ensure that we have secure access to the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
#The very first step is understanding client problem. Ask questions to the client until you CLEARLY understand the problem.&lt;br /&gt;
#If the error is familiar and does not require a screenshot, resolve the problem immediately.&lt;br /&gt;
#If the error is unfamiliar and/or requires a screenshot and the user has not sent a screenshot, IMMEDIATELY ask the user to send a screenshot of the problem, along with the options used (basically you need to know HOW to replicate the error and the screenshot MUST show WHAT the error is).&lt;br /&gt;
#If the user says &amp;quot;nothing happens, so no screenshot of the error&amp;quot;, then IMMEDIATELY request for screenshots again with the exact steps to reproduce the problem using mouse and keyboard.&lt;br /&gt;
#Support team MUST NOT provide support without a screenshot, otherwise the client will not pay attention to support team in future and ignore requests for screenshots.&lt;br /&gt;
#Upon receipt of the error and steps to reproduce the error, follow the steps and reproduce the error. Also refer to [[Procedures#Addressing_Browser_related_issues|Addressing Browser related issues]]&lt;br /&gt;
#If the issue is unknown or you don’t understand it clearly, with the users acknowledgement use remote support to gain access to the users desktop to view how to replicate the error.&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
====Understanding Internal error messages====&lt;br /&gt;
&lt;br /&gt;
Internal errors messages appear in red on screen and an email which is sent to support with more details. (Example below)&lt;br /&gt;
&lt;br /&gt;
[[image:Rawformdatapng.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;ERROR NO:&amp;quot; line is comprised of the error number (B16), the program (MARGIN_BASE) and the line number (1). Sometimes the line number is wrong, refer to section &amp;quot;Misleading line numbers in error messages&amp;quot; below for more info.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;STACK:&amp;quot; line lists the &amp;quot;parent&amp;quot; calling programs &amp;quot;SYSMSG,LISTEN&amp;quot; used to trace how and where the error originates.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;DATA:&amp;quot; is a string of characters that is used to recreate the options used by the client in order to replicate the error message. See how to [[Troubleshooting_NEOSYS_Generally#Replicate_options_used_.26_error_using_sysmsg_Data: | replicate the error with the options used, using internal error email]]&lt;br /&gt;
&lt;br /&gt;
====Misleading line numbers in error messages====&lt;br /&gt;
&lt;br /&gt;
Many small NEOSYS utility programs are compiled to run faster than usual programs and will not report the correct line on errors like Variable Not Assigned.&lt;br /&gt;
&lt;br /&gt;
To get the actual line number, compile as usual. ie without the (CL) options mentioned below, and regenerate the error.&lt;br /&gt;
&lt;br /&gt;
Note that most of these programs should have a source line &amp;quot;linemark&amp;quot; or &amp;quot;*linemark&amp;quot; in them somewhere near the top. When single stepping in the debugger, the program will break on this line and this line alone.&lt;br /&gt;
&lt;br /&gt;
To compile a GBP program DATE for speed use something like the following:&lt;br /&gt;
&lt;br /&gt;
 COMPILE GBP DATE (CL)&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;L&amp;quot; means compile without line numbers. This makes them run faster, which is important for utility programs that are called extremely frequently eg for date or number input/output conversion.&lt;br /&gt;
*&amp;quot;C&amp;quot; means do not generate a symbol table in GBP $GETPERIOD. It makes no difference whether you do or do not.&lt;br /&gt;
&lt;br /&gt;
===Addressing Browser related issues===&lt;br /&gt;
&lt;br /&gt;
When resolving random browsing issues that seem to be on one user computer only, support MUST send the below email asking the user to check if the same issue occurs on other user computers. Rapidly convincing the user that the problem is only on their computer gains their willingness to sort the problem out at their end, using IT people if necessary and available.&lt;br /&gt;
&lt;br /&gt;
Handling random issues that appear to be on one computer is very very common and it is important to deal with it effectively, not requiring stages of &amp;quot;denial&amp;quot; by the users until they accept something has to be done at their end, and not by NEOSYS. Speeding up this process gains the confidence and appreciation of the users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Hi xxxx&lt;br /&gt;
&lt;br /&gt;
Is this error happening only on your computer? If that is the case, it may be due to an issue in your browser cache. Please clear your browser cache with assistance from your IT team if required. Then restart the browser and try again.&lt;br /&gt;
&lt;br /&gt;
If clearing browser cache does not fix the issue, I recommend a full browser reset to ensure that everything works fine.&lt;br /&gt;
&lt;br /&gt;
Follow these instructions for clearing browser cache and resetting browser:&lt;br /&gt;
http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers&lt;br /&gt;
&lt;br /&gt;
Please let us know if you face the issue again.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Handling_Browser_related_issues_in_NEOSYS| Handling Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
===Addressing Technical support emails===&lt;br /&gt;
&lt;br /&gt;
In the case of technical support issues, address emails to the IT person and cc the complete group of recipients of backup emails and other NEOSYS alert emails. This allows both NEOSYS and client IT staff to take credit for resolving issues that NEOSYS raises instead of working in the background unacknowledged.&lt;br /&gt;
&lt;br /&gt;
Technical support issues include backup failure, server failure, missing alert email, server connectivity issues and port forwarding issues and many other issues.&lt;br /&gt;
&lt;br /&gt;
For technical issues like browser configuration, clear cache, etc. support must send the user a link to the appropriate wiki article to help the user fix the problem. In some cases the user may be helpless and unable to follow the steps to fix the problem. In such cases, support MUST NOT waste time trying to help the user fix the problem, instead support MUST ask the user to get help from the IT person.&lt;br /&gt;
&lt;br /&gt;
===Acceptable report format when handling issues in NEOSYS reports===&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support must only resolve issues in NEOSYS output first. This is because only NEOSYS outputs can be trusted and user versions in Excel or PDF could be copied wrongly or edited by the user.&lt;br /&gt;
&lt;br /&gt;
In case users send reports in excel or other formats, get them to send the original NEOSYS HTML report as an attachment or copy-pasted in email.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create new charts or control accounts===&lt;br /&gt;
&lt;br /&gt;
[http://userwiki.neosys.com/index.php/Setting_up_and_Configuring_NEOSYS_Finance_System#Creating_New_Charts_or_Control_Accounts Refer here]&lt;br /&gt;
&lt;br /&gt;
===Handling issues with totals on reports===&lt;br /&gt;
&lt;br /&gt;
If a client has a problem with any total output by NEOSYS software then NEOSYS support will advise them which other NEOSYS report or reports provide a complete breakdown of the total (if necessary, to individual transactions) and ask the client to locate any offending transactions themselves.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff will handle any issues where the total on the breakdown report does not add up to the total on the summary report.&lt;br /&gt;
&lt;br /&gt;
Reconciling totals can be hard if there are many transactions involved. Regardless of how hard it may be, reconciliation is an operational task for users not for support staff since NEOSYS support staff will not get involved in understanding client transactions or data.&lt;br /&gt;
&lt;br /&gt;
====Trial Balance and Financial Statements====&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff do not have to prove or trace any figures in NEOSYS Trial Balance Reports or any financial reports. If a figure is stated to be wrong by the user, then NEOSYS support staff should ask for proof or say NEOSYS is confident that the figures are correct unless proved otherwise. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff should point out reports in NEOSYS which will support the figures in question but not actually run the reports. Support staff can suggest the users to refer to detailed ledger accounts to prove balances.&lt;br /&gt;
&lt;br /&gt;
==Using VPN to enable secure access from outside the office==&lt;br /&gt;
There are two ways in which a user can use VPN:&lt;br /&gt;
&lt;br /&gt;
*User connects to the their office router and makes the PC act like it is on the office LAN.&lt;br /&gt;
*User connects to a VPN service that provides a static IP number and can therefore be authorised by NEOSYS to login.&lt;br /&gt;
&lt;br /&gt;
If the client intends to use VPN to connect to their office router and make the PC act like it is on the office LAN, then it depends on what VPN protocols the client&#039;s office router supports.&lt;br /&gt;
&lt;br /&gt;
The alternative is to use a paid VPN service that provides a static IP number. Getting a dynamic IP number on VPN is very cheap and there are many suppliers, but getting a static IP number on VPN services seems to be more expensive.&lt;br /&gt;
&lt;br /&gt;
Internally in NEOSYS we use PFSENSE routers which support OPENVPN which is extremely flexible.&lt;br /&gt;
&lt;br /&gt;
==Handling issues with Office PBX phones==&lt;br /&gt;
&lt;br /&gt;
Support should check their respective Office PBX phones every morning to find out if the phone is up and working. In case Support finds any issue with their phone, immediately fix it so that clients do not lose contact with the  Support team via phone. Next send an email to Support inbox mentioning the fault, cause and solution for records/future prevention.&lt;br /&gt;
&lt;br /&gt;
==Running undocumented commands on Maintenance mode==&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST NOT run undocumented commands on ***LIVE*** database. Some commands are not documented for a reason, it could be because the commands might give an undesired output or because there is no clarity on what else could be effected by the command.&lt;br /&gt;
&lt;br /&gt;
Even if the command is tested in TESTING database and the output looks okay, support staff MUST get the programmer&#039;s approval before going ahead and running the command in LIVE database as there is no guaranty that the command is properly programmed and will do no damage.&lt;br /&gt;
&lt;br /&gt;
==Configuring Browsers to show Javascript errors in NEOSYS==&lt;br /&gt;
NEOSYS Support MUST ensure the following Settings for browsers because if NEOSYS generates any javascript error message, the same would appear in the bottom left corner of a window, which in turn helps the programmer to fix the error. This must be done after every Factory Reset.&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer===&lt;br /&gt;
Tools &amp;gt; Internet Options &amp;gt; Advanced &amp;gt; Browsing - the items Disable script debugging (Internet Explorer) and Disable script debugging (Other) are &#039;&#039;&#039;UNTICKED&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===Chrome=== &lt;br /&gt;
Chrome Menu &amp;gt; More Tools &amp;gt; Extensions &amp;gt; Get More Extensions, search for &#039;&#039;&#039;Javascript Errors Notifier&#039;&#039;&#039;. Add the extension to Chrome.&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome1.png]]&lt;br /&gt;
===Firefox===&lt;br /&gt;
Firebug add-on is used to NOTIFY about script errors because we have no other method to get any warning on screen but you should use the main firefox developer tools to investigate any errors as firebug is essentially replaced by built in developer tools. &lt;br /&gt;
&lt;br /&gt;
For developer tools, go to Tools &amp;gt; Web Console&lt;br /&gt;
&lt;br /&gt;
To enable notifications for script errors, download the add-on Firebug from [https://addons.mozilla.org/en-US/firefox/addon/firebug/ here]. When a Javascript error is encountered, the firebug icon will report the number of errors.&lt;br /&gt;
&lt;br /&gt;
Set your firebug as per the second screen shot and select &amp;quot;Enable All Panels&amp;quot; as well, the tick will not appear like the other options but the option will get selected. If you miss out on any one of these steps, you will not be able to capture script errors.&lt;br /&gt;
&lt;br /&gt;
[[file:firebug1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Firebug.png]]&lt;br /&gt;
&lt;br /&gt;
==Handling Browser related issues in NEOSYS==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Technical_/_Hardware_requirements#NEOSYS_Software_Browser_and_OS_Requirements NEOSYS browser requirements]&lt;br /&gt;
&lt;br /&gt;
Clients frequently ask [http://userwiki.neosys.com/index.php/General_FAQ#Why_doesnt_NEOSYS_support_my_XYZ_browser.3F Why NEOSYS doesn&#039;t support other browsers] &lt;br /&gt;
&lt;br /&gt;
To avoid browser errors, all new users must follow the steps given in [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#Getting_started_with_NEOSYS Getting started with NEOSYS] before logging in to NEOSYS for the first time.&lt;br /&gt;
&lt;br /&gt;
To troubleshoot browser related errors see [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers Troubleshooting Web Browsers]&lt;br /&gt;
&lt;br /&gt;
Users must clear browser cache after every NEOSYS Upgrade to avoid errors. See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS#Sample_email_to_be_sent_to_clients_who_face_issues_due_to_failure_in_clearing_browser_cache Sample email to clients who face issues due to failure in clearing browser cache]&lt;br /&gt;
&lt;br /&gt;
Pop-up blockers and any 3rd party toolbars must be deactivated/switched off or else certain pages and alert messages while using NEOSYS do not appear as a result of blocking from either the pop-up blocker or toolbars with built-in pop-up blockers. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support must ask users to Reset browser (See [http://userwiki.neosys.com/index.php/Reset_Browser Reset browser]) if they notice any user browsers which have pop-up blockers or 3rd party toolbars installed.&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Addressing_Browser_related_issues| Addressing Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
==Handling NEOSYS Upgrade==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS Upgrading NEOSYS]&lt;br /&gt;
&lt;br /&gt;
==Handling auto-reply emails like Out of Office etc.==&lt;br /&gt;
&lt;br /&gt;
From 28th May 2017 version, emails sent out by the NEOSYS system now contain headers that in effect request recipient email systems not to auto-reply for things like Out of Office. This is to reduce unnecessary chatter by silencing unnecessary automatic replies. There is no guarantee that recipient email systems will comply. The headers added are:&lt;br /&gt;
&lt;br /&gt;
*X-Auto-Response-Suppress: RN, NRN, OOF&lt;br /&gt;
*Precedence: bulk&lt;br /&gt;
&lt;br /&gt;
Support team should notify SB of any auto-responses that come despite their installation being patched.&lt;br /&gt;
&lt;br /&gt;
In NEOSYS versions after 10th Jun 2017, emails sent by NEOSYS from the NEOSYS Help menu, i.e. manually triggered emails, do NOT indicate that OOF replies are not wanted, since if you are sending emails to people using NEOSYS, you will want to know if they are OOF.&lt;br /&gt;
&lt;br /&gt;
==Using Support Tools==&lt;br /&gt;
===Website Live Support===&lt;br /&gt;
www.neosys.com is equipped with a Live Support software and clients can visit the website, click on this link and chat with any of our support staff, without the need for any installation. The client has to fill in their name and enter their questions to connect to an available support personnel. During non-working hours, the Live Support icon on the website automatically displays &amp;quot;offline&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support personnel who are authorised to provide such support, need to login to Live helper chat in Firefox using the link given below:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/&lt;br /&gt;
&lt;br /&gt;
Support personnel should enter the account details as provided by their Manager.&lt;br /&gt;
&lt;br /&gt;
Enable notifications for Live helper chat so that whenever there is a visitor trying to contact Support team, the Support personnel will get the notifications on his screen. &lt;br /&gt;
&lt;br /&gt;
Set the Live helper chat login page as your home page in Firefox and this page must be kept open for the whole duration of working hours. &lt;br /&gt;
&lt;br /&gt;
Support must always be alert and immediately reply to messages from visitors.&lt;br /&gt;
&lt;br /&gt;
Use the link below to enable notifications:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/chat/listchatconfig&lt;br /&gt;
&lt;br /&gt;
After setting up Live helper chat if you sign in to a new profile in Firefox, you might have to re enable the notifications after your Firefox is synced to the new profile.&lt;br /&gt;
&lt;br /&gt;
===Teamviewer===&lt;br /&gt;
Since Teamviewer allows no restriction on access once a fixed pass is installed, Support must not install fixed pass on teamviewer however convenient it might be.&lt;br /&gt;
&lt;br /&gt;
RULE: NO FIXED PASS TO BE INSTALLED ON TEAMVIEWER IN ANY NEOSYS OR NEOSYS CLIENT COMPUTER&lt;br /&gt;
&lt;br /&gt;
Running teamviewer live from a web link is fine because it does not allow installation of a permanent password&lt;br /&gt;
&lt;br /&gt;
For certain tasks that require temporary install of Teamviewer on the client servers (e.g. upgrading Cygwin remotely), use Teamviewer 7 on the server as well as Support staff computer. Contact NEOSYS IT for commercial license of Teamviewer 7. Teamviewer MUST be uninstalled after usage, otherwise it creates an additional unnecessary security risk.&lt;br /&gt;
&lt;br /&gt;
To support client users who use the latest version of Teamviewer, support staff must also install the latest Teamviewer version available alongside Teamviewer 7.&lt;br /&gt;
&lt;br /&gt;
==Documenting Processes in Wiki==&lt;br /&gt;
NEOSYS Support staff must be in continual learning mode. This is mandatory for support staff and is not an option. Support must read, learn and understand everything in the support emails and ask questions if they don&#039;t understand. This understanding must be transferred into wiki in the form of new articles and improvements to existing articles.&lt;br /&gt;
&lt;br /&gt;
For all articles related to formatting and editing in Wiki, see [http://itwiki.neosys.com/index.php/Documenting_NEOSYS_systems Documenting NEOSYS systems]&lt;br /&gt;
&lt;br /&gt;
===Avoiding duplication of text in wiki===&lt;br /&gt;
&lt;br /&gt;
Duplication of text in wiki is to be avoided almost at any cost. Duplication has the problem that when one copy is changed or improved in future then it is highly likely the editor will fail to update the other copy or copies and wiki will over time become an inconsistent mess.&lt;br /&gt;
&lt;br /&gt;
There are several ways to avoid duplication:&lt;br /&gt;
&lt;br /&gt;
#Two or more procedures which have significant areas of duplication can be rewritten as a single procedure with alternatives in the middle of the procedure&lt;br /&gt;
#Wiki Templates- Templates reproduce the same text in all places and editing one place edits all places. See [[How to create templates in wiki]]&lt;br /&gt;
#Wiki links- Only put the text in one place and put links to that in all the other places that it is appropriate.&lt;br /&gt;
#Place a note in all copies something to the effect that &amp;quot;This is similar to x, y and z&amp;quot;. This alerts any future editor of all other places in wiki that might also have to be updated.&lt;br /&gt;
&lt;br /&gt;
Future modifications in one place may or may not be appropriate to other places. The editor must decide whether to change one or all places&lt;br /&gt;
&lt;br /&gt;
===Highlighting information in wiki===&lt;br /&gt;
&lt;br /&gt;
To highlight particular instructions or info in wiki do NOT invent new styles which are not the way the rest of wiki is done. Instead, follow the USUAL STYLE or open a DISCUSSION with any recommendations you have BEFORE USING THEM.&lt;br /&gt;
&lt;br /&gt;
Instead of using various kinds of highlighting styles like bolding and words like &amp;quot;Note:&amp;quot;, use the following words IN CAPITALS especially the word MUST.&lt;br /&gt;
&lt;br /&gt;
The use of the following words IN CAPITALS indicates that you are using them in a special way with formally defined meaning as explained below. Use of the words in lower case indicates that you are using the word in an ordinary commonsense meaning.&lt;br /&gt;
&lt;br /&gt;
*MAY - means optional&lt;br /&gt;
*SHOULD - means recommended and you need GOOD reason (not just any weak excuse) to not follow to follow this recommendation&lt;br /&gt;
*MUST - mandatory&lt;br /&gt;
&lt;br /&gt;
Only in the rare cases where the consequences of doing or not doing something are irreversible or take a lot of work to reverse then you can use your own additional highlighting methods, eg ALL CAPS, stars, color red etc.&lt;br /&gt;
&lt;br /&gt;
====Explain WHY====&lt;br /&gt;
&lt;br /&gt;
Any sentence which uses the word &amp;quot;MUST&amp;quot; in capitals, MUST be followed by a SPECIFIC REASON explaining exactly why is the instruction is mandatory; the reason MUST not be vague and non-specific meaning no more than &amp;quot;or bad things will happen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules otherwise it will cause problems in future.&lt;br /&gt;
&lt;br /&gt;
 CORRECT way: You MUST also delete ads if deleting schedules otherwise the deleted schedules&#039; ads will still show in all media-diary like reports and screens&lt;br /&gt;
&lt;br /&gt;
The Wrong way above gives a general reason &amp;quot;it will cause problems in future&amp;quot; which is vague and a reader may even go ahead and ignore &amp;quot;MUST&amp;quot; because there is no objective or proper side effect mentioned for not following the MUST statement. Basically he doesn&#039;t understand the point behind following a certain rule. &lt;br /&gt;
&lt;br /&gt;
Whereas the Correct way gives a SPECIFIC reason for &amp;quot;deleting ads while deleting schedules&amp;quot;, so reader will exactly know the trouble that will be caused if ads are not deleted. Therefore &amp;quot;SPECIFIC REASON&amp;quot; behind using the word MUST must be to the point and very informative.&lt;br /&gt;
&lt;br /&gt;
====Why explain WHY====&lt;br /&gt;
The information contained in the WHY phrase is often &#039;&#039;&#039;extremely informative&#039;&#039;&#039; to the reader about things that you may otherwise not have considered saying.&lt;br /&gt;
&lt;br /&gt;
The most valuable information is usually contained in the &amp;quot;WHY&amp;quot; of something. There is an apocryphal story of a company where managers could be fired if they gave instructions to their staff without providing explanation. In almost all cases it is better for the efficiency of a team of people that any instructions they follow contain the &amp;quot;WHY&amp;quot; of something. Only in few cases should staff be expected to follow instructions without being well or fully informed.&lt;br /&gt;
&lt;br /&gt;
==Email Retention Policy==&lt;br /&gt;
&lt;br /&gt;
===Generally===&lt;br /&gt;
&lt;br /&gt;
Emails are retained permanently to allow old issues to be discovered in email searches.&lt;br /&gt;
&lt;br /&gt;
===Account: backups@neosys.com===&lt;br /&gt;
&lt;br /&gt;
Only the last 365 days of emails to backups@neosys.com are kept in general to reduce the burden on servers and clients due to the heavy number of emails.&lt;br /&gt;
&lt;br /&gt;
For the backups/neosys folder, only 31 days is kept due to the very high numbers of emails ~250/day.&lt;br /&gt;
&lt;br /&gt;
Deletions are configured in and done by a thunderbird client in NEOSYS IT so may not be continuous.&lt;br /&gt;
&lt;br /&gt;
==Use of personal email addresses by NEOSYS support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff MUST NOT use any personal email addresses for NEOSYS business. &lt;br /&gt;
&lt;br /&gt;
The xxxx.neosys@gmail.com addresses that are created by support staff for themselves on joining are also considered personal email addresses and must not be used for NEOSYS business. These email addresses might be linked to NEOSYS wiki accounts but that doesn&#039;t matter because wiki is not confidential.&lt;br /&gt;
&lt;br /&gt;
==Accessing NEOSYS accounts on personal devices==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff MUST NOT install NEOSYS accounts on skype/dropbox/gmail (or any other external tool) on their personal devices without written permission from NEOSYS management&lt;br /&gt;
&lt;br /&gt;
==Support Staff work-in-progress documents/files==&lt;br /&gt;
&lt;br /&gt;
Support Staff must not save working files hidden on their computer. Work that is not visible is not work .&lt;br /&gt;
Support work should not be done privately and should be shared to all.&lt;br /&gt;
&lt;br /&gt;
ALL personal working files however trivial MUST be stored in Dropbox and MUST NOT be stored anywhere in personal computer (My Documents/Desktop etc.)&lt;br /&gt;
&lt;br /&gt;
The personal encrypted pass file MUST be stored somewhere in personal folder under SB NEOSYS staff in Dropbox. This is because if there is a loss of OS/Computer, it should not lead to loss of access as all the passwords saved in the file will be lost.&lt;br /&gt;
&lt;br /&gt;
==Handling CLIENT/NEOSYS Servers==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff must exercise extreme caution when working on CLIENT and NEOSYS servers. Do not risk making changes without due care and attention to the fact that the consequences of errors can be serious on working production servers.&lt;br /&gt;
&lt;br /&gt;
===Handling Javascript Files in NEOSYS===&lt;br /&gt;
&lt;br /&gt;
All the files in NEOSYS installation folder with .JS and .JSE extension are the executable javascript files which startup NEOSYS processes (in a usual DOS window). Their default program is &#039;Microsoft Windows Based Script Host&#039; (wscript.exe). If a JavaScript file is opened using a notepad, the default program may change to notepad resulting in all NEOSYS processes to open up in a notepad.&lt;br /&gt;
&lt;br /&gt;
Hence be very CAREFUL when accessing a .JS and .JSE file and double check that the default program remains wscript.exe. Refer to [[Troubleshooting_NEOSYS_Generally#Fixing_wrong_default_program_assigned_to_open_a_file_type|Fixing wrong default program assigned to open a file type]] in case this issue comes up.&lt;br /&gt;
&lt;br /&gt;
==Handling &amp;quot;List of Open Ports&amp;quot; reports==&lt;br /&gt;
&lt;br /&gt;
This email comes to NEOSYS support team once a day showing only those client&#039;s servers which appear to have changed what TCP ports are open to the internet since yesterday. It will also come once a week showing all clients servers open ports.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support team should work patiently with client IT staff, over time if necessary, to close all ports that are not absolutely mandatory to be open.&lt;br /&gt;
&lt;br /&gt;
Clients with highly skilled IT staff may have a variety of ports open to various non-NEOSYS servers inside their organisation. In this case, NEOSYS plays little or no role other than getting their confirmation of exactly what ports are acceptable. Any new ports that appear over time should be handled in the same way.&lt;br /&gt;
&lt;br /&gt;
For clients without such staff, NEOSYS is their only real line of defence and since NEOSYS requested opening some ports, we should get all other ports closed by patiently following up until action is taken. Involving management may be the only way to get IT to act.&lt;br /&gt;
&lt;br /&gt;
High end port numbers (e.g. 49667) may represent transient outbound connections from users. Therefore for such port numbers, support team should contact the client only if the port remains open on the following working day.&lt;br /&gt;
&lt;br /&gt;
In particular, port 80 and 443 controlling internal or external routers should be closed. It is NOT acceptable except in HIGH IT EXPERTISE environments that critical routers should be exposed to the internet and they MUST NOT be accessible from the internet because routers that do not have their software updated can be hacked using known defects. Even updated routers can be hacked. Making it easy for client IT staff to access the router configuration from outside is NOT a good enough excuse to break this rule. Professional IT does not allow access to critical routers from the internet.&lt;br /&gt;
&lt;br /&gt;
Likewise, any port 80 (unencrypted web access) and port 3389 (RDP remote desktop) open to the NEOSYS server MUST be closed otherwise logins can be monitored and there is no way to guarantee server security.&lt;br /&gt;
&lt;br /&gt;
Port 23 (Telnet) is an insecure port because it is unencrypted and should never be open for usage. This is standard practice and well known by any network professional. Since the port is unencrypted, attackers can listen in, watch for credentials, inject commands via man-in-the-middle attacks and ultimately perform Remote Code Executions (RCE).&lt;br /&gt;
&lt;br /&gt;
If a port is definitely required and properly approved to be open by client IT support, please let NEOSYS IT (SB) know and it will be put in the &amp;quot;Authorised&amp;quot; column so that ports in the &amp;quot;Questionable&amp;quot; column are all pending action.&lt;br /&gt;
&lt;br /&gt;
The report does not attempt to detect UDP ports since UDP ports can receive information from the internet without responding in any way so there is no way to detect them reliably.&lt;br /&gt;
&lt;br /&gt;
Green color shows ports that have opened since the last report run. Open ports can sometimes not be detected accurately so a port may appear to disappear in one report and reappear in the next report.&lt;br /&gt;
&lt;br /&gt;
===Why should HTTP port 80 not be open on my router?===&lt;br /&gt;
&lt;br /&gt;
It is not advisable to expose any HTTP server for any private service on your computer network or router because HTTP is unencrypted and this means that all information regarding that service, including passwords, can be observed by any malware on your LAN and internet connection. This information can then be used to install horrible software on your internal PCs.&lt;br /&gt;
&lt;br /&gt;
What to do?&lt;br /&gt;
&lt;br /&gt;
Use https for any internal services - and advisably on a non-standard port, not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
For example, NEOSYS service is exposed as HTTPS (not HTTP) usually on port 4430 - not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
Commercial hacking is getting really common with things like FIREBALL and CRYPTOLOCKER causing a lot of damage.&lt;br /&gt;
&lt;br /&gt;
It is advisable to take basic precautions pro-actively before any attack exposes weaknesses.&lt;br /&gt;
&lt;br /&gt;
==Handling Nagios Client Monitoring system==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff on duty MUST follow the procedures outlined below in case the Firefox &amp;quot;imoin&amp;quot; add-on shows critical or warning messages for any service. Failure to schedule appropriate downtime will lead to REDUNDANT EMAIL ALERTS from Nagios every hour.&lt;br /&gt;
&lt;br /&gt;
Any alert on the Firefox &amp;quot;imoin&amp;quot; add-on means that there is an issue that has not been attended to properly, and &amp;quot;attended to&amp;quot; does not always mean solved. Support staff MUST solve the problem immediately if possible.&lt;br /&gt;
&lt;br /&gt;
If it is not possible to solve the problem immediately, then downtime/acknowledge the service and add a comment on the Nagios alert, explaining the problem briefly. &lt;br /&gt;
&lt;br /&gt;
Support should check Nagios frequently during the day to look for any new alerts so that issues are fixed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
*Nagios is required to be checked first thing in the morning and any critical or warning messages need to be dealt with to resolve the same at the earliest.&lt;br /&gt;
*Some of the messages could be related to backup failures and the usual procedure as stated in Handling failure and warning messages on nightly backup alerts needs to be followed. In case the backup issue isn&#039;t resolved by 9:30 am, the Nagios service needs to be downtimed with an appropriate comment for a minimum of 2 hours and maximum until 1 am next day if the issue cannot be solved.&lt;br /&gt;
*In case of &amp;quot;Backup not changed&amp;quot; warning status which occurs if the client has not interchanged the USB before 12 noon on that day, no action is required from the support staff and a downtime with a comment like &amp;quot;Backup media not changed - Emailed client&amp;quot; needs to be scheduled until 1 am next day.&lt;br /&gt;
*In case any HTTPS, SSH, PING service or Host is down, immediate action is required and the relevant IT people at the client side needs to be contacted to get this resolved. A downtime of 2 hours with a comment like &amp;quot;Service/host down - Emailed client&amp;quot; is required to be scheduled with further intervals of 2 hours in case this is not resolved. Support staff shouldn&#039;t schedule downtime till 1 am next day, just to get rid of the alerts for the day. Proactive follow up with the client is required to get this resolved before the business day - more so, if there is a weekend ahead.&lt;br /&gt;
*In case the HTTPS, SSH, PING service or Host goes down during the day, a grace period of 10 minutes is given before the issue is reported to the client IT, in case there is any temporary internet connection issue at the client or along the internet route.&lt;br /&gt;
*In case the HTTPS, SSH PING service or Host is down for more than 1 day, client IT should acknowledge the problem and give NEOSYS support staff an approximate time frame before which the issue will be resolved. Set an appropriate downtime with a descriptive comment for such events.&lt;br /&gt;
*In case Host is down for more than 2 days and there is no progress with the fix from client IT, the client management should be notified about the seriousness of not having access to server and their acknowledgement is mandatory.&lt;br /&gt;
&lt;br /&gt;
==Handling lack of remote access to NEOSYS server located in client’s premises==&lt;br /&gt;
&lt;br /&gt;
If access to the NEOSYS server is lost then we must determine the root cause by: &lt;br /&gt;
&lt;br /&gt;
#Checking if the server is UP and running&lt;br /&gt;
#If yes, please check internet connectivity on the server&lt;br /&gt;
#If there is connectivity, please check the router for connectivity issues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
Please note that we have currently lost access to the NEOSYS server. The server seems to be down at the moment and it seems that &lt;br /&gt;
NEOSYS processes are not running on the server.&lt;br /&gt;
Kindly check if the server is UP and running. If yes, please check internet connectivity on the server.&lt;br /&gt;
Do keep us posted on the server status so we can test connectivity from our side as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==New Router (Port Forwarding)==&lt;br /&gt;
&lt;br /&gt;
If you have changed your router then you may notice that external access to NEOSYS is unavailable. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to the NEOSYS Server as follows: &lt;br /&gt;
&lt;br /&gt;
#Port 19580 &amp;gt; 19580 for SSH&lt;br /&gt;
#Port 4430 &amp;gt; 4430 for HTTPS&lt;br /&gt;
&lt;br /&gt;
You can see [http://portforward.com/ Set Up Port Forwarding] to learn how to configure your Router.&lt;br /&gt;
&lt;br /&gt;
To see how to test/ troubleshoot port forwarding settings, go to [[Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding|Troubleshooting Port Forwarding]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
You are requested to kindly setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to &lt;br /&gt;
the NEOSYS Server,i.e.  port 19580 for SSH and port 4430 for HTTPS.&lt;br /&gt;
&lt;br /&gt;
Once this is complete, kindly send me an email to confirm the same so that we could test connectivity from our end as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Creating and Handling passwords==&lt;br /&gt;
===Creating a password===&lt;br /&gt;
Passwords are generated from a pass phrase and it is important to create a very difficult to guess pass phrase.&lt;br /&gt;
&lt;br /&gt;
Passwords made out of a pass phrase MUST be at least 10 characters since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts.&lt;br /&gt;
&lt;br /&gt;
For example, a good pass phrase would be: &#039;&#039;&#039;Today is a good day and it is the best time to go for a holiday&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The password for this would be &#039;&#039;&#039;Tiagd&amp;amp;iitbt2g4ah&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The important instructions for the above are:&lt;br /&gt;
&lt;br /&gt;
#You have to take the first letter of each word and that makes your password (i.e. by using initials)&lt;br /&gt;
#Wherever any word starts with a capital, then you have to take first letter as a capital (eg. For Today you will take T)&lt;br /&gt;
#Replace &#039;&#039;&#039;and&#039;&#039;&#039; with &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;to&#039;&#039;&#039; with &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;for&#039;&#039;&#039; with &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Handling passwords===&lt;br /&gt;
&lt;br /&gt;
#Never send the actual password - always send the pass phrase&lt;br /&gt;
#Make sure that the password created out of the pass phrase is at least 10 characters long since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts&lt;br /&gt;
#Pass phrases are never to be sent by email, whatever the case maybe.&lt;br /&gt;
#Pass phrases can be sent by chat - however they have to be broken down in two parts and sent separately over two different messengers or if you are using Gtalk then use the &#039;off the record&#039; mode.&lt;br /&gt;
#Using SMS to send pass phrases is the best known way as of now.&lt;br /&gt;
#If you save the passwords on your system in an file then:&lt;br /&gt;
#*Ensure that you only store pass phrases in the excel file&lt;br /&gt;
#*Ensure that the excel file is encrypted with a master password&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Maintenance Window==&lt;br /&gt;
&lt;br /&gt;
The NEOSYS server is functional from 6am – 1am. There is a 5hr window gap for the system to perform updates &amp;amp; backups.&lt;br /&gt;
&lt;br /&gt;
The 5hr maintenance window:-&lt;br /&gt;
&lt;br /&gt;
1. At 1am – The server performs a data backup on a USB (for the respective clients) &amp;amp; once the backup has been completed, the system automatically generates an email addressed to the neosys staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
2. At 2:45am – The main data over writes the test data on the server.&lt;br /&gt;
&lt;br /&gt;
3. At 3:00am – The server by itself performs an update for Windows.&lt;br /&gt;
&lt;br /&gt;
4. At 4:00am – The server performs a backup to the headquarters for clients, and then automatically generates an email addressed to the NEOSYS staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
5. At 6:00am – The server starts up NEOSYS.&lt;br /&gt;
&lt;br /&gt;
==Using NEOSYS Terminology while communicating with Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support must communicate in correct language to clients on finance issues in order to ensure that our records exactly represent reality. Conversely NEOSYS must not use other terminology because it can cause considerable confusion and poor quality results. In case client is new and still in training, use client terminology optionally as long as&lt;br /&gt;
&lt;br /&gt;
#It is only an addition to NEOSYS standard terminology&lt;br /&gt;
#Only if clear that it is client terminology by putting in brackets like this &amp;quot;Sales Invoices (called PI by you)&amp;quot;, where &amp;quot;you&amp;quot; means the client you are talking to or you can put the client company name instead perhaps.&lt;br /&gt;
&lt;br /&gt;
The objective is over time to avoid having the support team to have to know the terminology of the client. NEOSYS support team cannot possibly know and remember it for each client therefore the client MUST over time learn and use NEOSYS terminology. The initial period is one of relearning and translation for the client not for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
Many users operating NEOSYS finance module do not know proper financial procedures and may not appreciate how doing something in a wrong or unusual way now may not be correctable in the future.&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff must follow NEOSYS procedures only. If NEOSYS procedures need to be updated then this must be agreed in advance and not AFTER the fact.&lt;br /&gt;
&lt;br /&gt;
==Amending/Reposting Journal Entries==&lt;br /&gt;
In certain exceptional cases, amending/reposting of journal entries is allowed for only one day to enable clients to present reports in an alternative manner. &lt;br /&gt;
&lt;br /&gt;
It must be agreed with the client that reposting rights will be granted for only one day and NEOSYS Support will automatically remove it and check for CCB error thereafter.&lt;br /&gt;
&lt;br /&gt;
This would be subject to NEOSYS requiring a written LETTER OF APPROVAL duly signed and stamped by the highest management of the company.&lt;br /&gt;
&lt;br /&gt;
In case the client management decides to allow editing/reposting of journal entries, the following procedure is to be followed:&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;( While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Removal of unauthorized third-party software on client servers==&lt;br /&gt;
&lt;br /&gt;
Rule: Any third party software that is discovered by NEOSYS support staff on client servers that has been installed without the agreement of NEOSYS should be uninstalled immediately on discovery.&lt;br /&gt;
&lt;br /&gt;
However purposeful a software is, NEOSYS is contractually responsible for support and there are too many opportunities for poorly installed software to cause unpredictable damage to the NEOSYS database so NEOSYS has to have a clear and safe and simple policy to ensure the integrity of client data. Installing software without prior discussion with NEOSYS by itself indicates that insufficient care and consideration has been given to possible issues.&lt;br /&gt;
&lt;br /&gt;
Having unauthorized third party software on the server can possibly lead to a backup failure. For example, [[Backup_and_Restore#Error_Message:_.22LISTS_file_is_not_available.22|LISTS file not available]] error.&lt;br /&gt;
&lt;br /&gt;
Any software required by client IT for some purpose may only be installed after discussion and agreement from NEOSYS support staff concerning the configuration and operation of the software.&lt;br /&gt;
&lt;br /&gt;
The NEOSYS Software Licence and Support agreement requires that where NEOSYS software is installed on client servers that a dedicated server is provided and dedicated implies that no other software may be installed without the agreement of NEOSYS support.&lt;br /&gt;
&lt;br /&gt;
==Configuring tunnelier to autologin on opening tlp files==&lt;br /&gt;
If you have many tunnelier tlp files in a directory and connect by opening the desired tlp file the, instead of opening the file and then clicking Login you can also right click the file and select Connect.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can configure tunnelier to login (connect) automatically by following the procedure mentioned below. (Even if you configure automatic login, you can still open and not login by right clicking and choosing Open)&lt;br /&gt;
&lt;br /&gt;
===Windows 8===&lt;br /&gt;
&lt;br /&gt;
Cannot be done using standard Windows UI. Some download utilities can do it. TODO put a safe one in neosys.com/support&lt;br /&gt;
&lt;br /&gt;
===Windows XP/Vista/7/2008===&lt;br /&gt;
&lt;br /&gt;
#Go to My Computer&lt;br /&gt;
#Click on Tools -&amp;gt; Folder Options &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on File Types&lt;br /&gt;
#*Select TLP (Bitvise Tunnelier Profile) [Type &amp;quot;TLP&amp;quot; to find it quickly]&lt;br /&gt;
#*Click on Advanced &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-2.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Connect and Click on Set Default &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; [[image:tunnauto-3.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==International v/s Indian English==&lt;br /&gt;
&lt;br /&gt;
There are some words which have completely different meanings in International and Indian English. NEOSYS Staff should follow International English only. Below are the examples of few of those words:&lt;br /&gt;
&lt;br /&gt;
Word: &#039;&#039;&#039;Doubt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the English language word &amp;quot;doubt&amp;quot; means to distrust an alleged fact on the basis of a reason, depending on the strength of the reason which may be anything from factual to feeling e.g &amp;quot;I have no reason to doubt him&amp;quot;.&lt;br /&gt;
This usage is followed worldwide.&lt;br /&gt;
&lt;br /&gt;
Some people especially from Indian origin use &amp;quot;doubt&amp;quot; when they are unaware about a fact. e.g &amp;quot;I want to clear my doubts about this procedure&amp;quot;. This is incorrect. The word must be used when you do not agree on something on the basis of a reason and not when you do not have knowledge about it.&lt;br /&gt;
&lt;br /&gt;
==[[ New Employee Training Checklist]]==&lt;br /&gt;
&lt;br /&gt;
==[[ New Client Training Notes]]==&lt;br /&gt;
&lt;br /&gt;
==[[ General Office Procedures]]==&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3862</id>
		<title>Procedures</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3862"/>
		<updated>2021-08-18T13:58:24Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are procedures to be followed by Support Staff in respect to various technical matters in day to day operations of client issues.&lt;br /&gt;
&lt;br /&gt;
Once Support Staff have learnt how to follow these procedures &amp;amp; rules, you then start learning when and how to not follow them. Common sense trumps all rules! i.e. don&#039;t follow procedures and rules blindly all the time. Analyse the problem and solve it practically.&lt;br /&gt;
&lt;br /&gt;
BUT if you are doing something off-piste deliberately, then just add an appropriate comment about why you are.&lt;br /&gt;
&lt;br /&gt;
==Handling Clients with Overdue Invoice==&lt;br /&gt;
In order to maintain good payment speed by clients NEOSYS needs to restrict support to clients that dont pay their bills on time, however the degree of restriction needs to depend on an intimate knowledge of the client which cannot be expected from all NEOSYS support staff. Therefore we will use a simple escalation policy as follows:&lt;br /&gt;
&lt;br /&gt;
===Overdue Support List===&lt;br /&gt;
NEOSYS SUPPORT MANAGERS WILL maintain an overdue list on a whiteboard visible to all support staff. Generally, clients will go on the list immediately when their invoice is overdue and come off only after satisfactory commitment to pay have been obtained.&lt;br /&gt;
&lt;br /&gt;
The latest overdue list email MUST always be starred until there are no clients left on the overdue list (apart from the permanently overdue clients). When a client is added to the overdue list, support must set up a filter to move client support emails to the overdue folder. When a client is removed from the overdue list, client emails must be moved back into the support inbox. This way support team will know that there are still clients on the overdue list and will not mistakenly provide support to those clients.&lt;br /&gt;
&lt;br /&gt;
[[image:FilterOverdue.jpg]]&lt;br /&gt;
&lt;br /&gt;
For the first week of each quarter of the year, normal support should be provided for server failures and backup failures (including hung processes as it could eventually lead to backup failures).&lt;br /&gt;
&lt;br /&gt;
For any other support requests from overdue clients, respond with the following letter (where XYZ is the overdue client):&lt;br /&gt;
&lt;br /&gt;
 Dear &amp;lt;user&amp;gt;,&lt;br /&gt;
 There is an issue with your company&#039;s account. We have requested our Accounts team for approval in order to provide support to you and other &amp;lt;XYZ&amp;gt; users.&lt;br /&gt;
&lt;br /&gt;
Support staff MUST then provide the required support to the overdue client only after 4 working hours. Support Staff need not actually contact the Accounts team for approval, although that is what is mentioned in the letter. This delay in support is to encourage clients to settle their payments on time.&lt;br /&gt;
&lt;br /&gt;
After the first week of each quarter of the year, respond to any support requests from overdue clients with the above letter but MUST NOT PROVIDE SUPPORT even after 4 working hours. Instead, Support Staff must refer the support request to NEOSYS Support Manager.&lt;br /&gt;
&lt;br /&gt;
Managers may well instruct support to provide support on a case by case basis even if clients are on the overdue list. Being on the overdue list does not necessarily indicate a major issue with accounts.&lt;br /&gt;
&lt;br /&gt;
If the client provides proof of payment (e.g. cheque deposit slip), then carefully check all the details as mentioned in [https://userwiki.neosys.com/index.php/Sales_FAQ#When_can_NEOSYS_support_staff_start_installation_of_NEOSYS When can NEOSYS support staff start installation of NEOSYS], before getting approval from NEOSYS management to remove the client from the overdue list. &lt;br /&gt;
&lt;br /&gt;
===Handling complaints about Licence restrictions===&lt;br /&gt;
&lt;br /&gt;
Sometimes when a client delays payment of NEOSYS invoice, support places a licence restriction for the client. In such cases, users will not be able to create and save documents dated outside the licence period. Due to this sudden restriction, clients may raise complaints about the restriction placed.&lt;br /&gt;
&lt;br /&gt;
Support MUST simply inform them that licence restrictions are a default procedure followed by NEOSYS and is applied to all clients, so that the client will in future avoid delaying the payment.&lt;br /&gt;
&lt;br /&gt;
===Handling complaints about emails from NEOSYS Accounts Department===&lt;br /&gt;
&lt;br /&gt;
If a client calls Support team to complain about emails from NEOSYS accounts department (e.g. invoice payment reminder), then immediately make them realise that they are wasting their time talking to support because support is not involved in client invoices and reminders procedure.&lt;br /&gt;
&lt;br /&gt;
Any complaints or concerns they have MUST only be sent in reply to the email they received.&lt;br /&gt;
&lt;br /&gt;
==Handling Frozen NEOSYS Installations and Databases==&lt;br /&gt;
&lt;br /&gt;
Some clients retain fully operational NEOSYS installations or just particular databases even after they stop using them for some reason, either because they move to some other software, or because they terminate an operational division, or other reasons, and this can either be on NEOSYS or their own servers.&lt;br /&gt;
&lt;br /&gt;
In this case, various NEOSYS upgrade and maintenance processes may be suspended, downgraded or completely skipped especially if instant access to the server is no longer available. This does not mean that it should never be done, and pros and cons need to be assessed and documented in support emails on a case by case basis.&lt;br /&gt;
&lt;br /&gt;
*Upgrading NEOSYS version&lt;br /&gt;
*Upgrading/standardising NEOSYS database configuration and other files for consistency, security or other issues&lt;br /&gt;
*Patching Windows/IIS configuration for consistency, security or other issues&lt;br /&gt;
&lt;br /&gt;
==Handling Links and Email Attachments==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DO NOT TRUST ANY LINK OR ATTACHMENT IN ANY EMAIL EVEN FROM HIGHLY TRUSTED PEOPLE OR ORGANISATIONS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These days you can no longer trust links or attachments in emails from anybody - even emails from highly trusted people like your bank.&lt;br /&gt;
&lt;br /&gt;
If a personal computer or intermediate email server is hacked then even genuine emails sent out from it can be infected and modified in a hidden way that can result in the recipient being infected if they click or open anything in the email.&lt;br /&gt;
&lt;br /&gt;
Therefore you should know and understand how to avoid, as far as possible, getting tricked and infected via emails.&lt;br /&gt;
&lt;br /&gt;
Malware authors generally rely on the fact that most people devote no time at all to security precautions so a moderate cautious approach, slowing down a little to spending some time on security, even where it is apparently not required, is enough to defeat most attacks.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
Do NOT click on links, especially in emails that you are not expecting, but also anywhere else that you see links, without taking various precautions. The links in an email, even from someone you know and trust, can LIE to you about what website they will open and they can lead you to websites that mere browsing can infect your computer and then others inside our network.&lt;br /&gt;
&lt;br /&gt;
WHAT LINK/WEBSITE WILL BE OPENED MAY NOT BE WHAT IT SAYS IN THE BODY OF YOUR EMAIL!&lt;br /&gt;
&lt;br /&gt;
Therefore, to use a link in any and all emails, first hover your cursor over it and check the status bar at the bottom of the screen where you can see exactly what website will be opened, or, to be more sure exactly what website you are opening DO NOT click links in emails at all. COPY/PASTE the link to your browser, AFTER following the below points.&lt;br /&gt;
&lt;br /&gt;
*Make sure you know and trust the website being opened.&lt;br /&gt;
*Carefully inspect the spelling of the domain name to avoid tricky look-alike fraudulent links eg hcsb.com instead of hsbc.com&lt;br /&gt;
*If you trust the sender but you do not personally know the website then get independent confirmation from the sender. Reply to the email so that the sender can check the link you received has not been tampered with.&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&lt;br /&gt;
Below is an example of a phishing email that you can easily tell is malware&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot1.png]]&lt;br /&gt;
&lt;br /&gt;
*You don&#039;t expect it because it says &amp;quot;before your sign up is complete&amp;quot; ... but you didn&#039;t just sign up.&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t mean that links in emails that you ARE expecting ARE safe to open. All the usual cautions apply to emails you DO expect.&lt;br /&gt;
&lt;br /&gt;
*Hover mouse over the button and check the link visually&lt;br /&gt;
&lt;br /&gt;
In the example above, the email is supposed to be from Dropbox, but hovering the mouse over the button shows the below link, which is obviously wrong:&lt;br /&gt;
&lt;br /&gt;
http://fxloraisdoxbraxsil.com.br/dropbox.html&lt;br /&gt;
&lt;br /&gt;
*Even if the link looks genuine e.g. something from a service that we use that we didn&#039;t expect, be careful for misspelt links that look like genuine links e.g. drobbox.com, which could trick you if you are sloppy.&lt;br /&gt;
&lt;br /&gt;
Never click on links in emails unless you are absolutely 100% sure that the email and link is genuine.&lt;br /&gt;
&lt;br /&gt;
Copy the link using right click copy link then paste into your browser if there is the slightest doubt.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&lt;br /&gt;
In the following case, hovering over the first two links seem to go to real UPS website, BUT this is NOT sufficient to be sure since slight misspellings and other tricks can lead you to a totally different website.&lt;br /&gt;
&lt;br /&gt;
However, hovering over the third &amp;quot;link&amp;quot; shows that clicking the apparent link would go to some website http://behappy.vn (Vietnam) so clearly this is a DECEPTION.&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example 3:&lt;br /&gt;
&lt;br /&gt;
In this case, an unknown organization behind the phishing attack is pretending to work for Leaseweb sales company and is sending emails from an email address similar to Leaseweb’s, and with Leaseweb’s footer. They claim that the original payment was declined and ask to wire or transfer money to a new account. These kind of emails are quite sophisticated and require you to be vigilant. &lt;br /&gt;
&lt;br /&gt;
Try to confirm the sender’s identity before replying to email requests and before opening attachments or clicking on links, even if they appear to come from a legitimate source. &lt;br /&gt;
&lt;br /&gt;
Below is an example of a fraudulent email request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your payment has been declined!&lt;br /&gt;
Your invoice (100421) with Office 365 Service is due.&lt;br /&gt;
To make a payment, please log in with your email address and password at&lt;br /&gt;
&lt;br /&gt;
https://leaseweb.com/payment/100421&lt;br /&gt;
Once logged in please click select the Make a Payment icon in the Billing Tab. You may complete payment by Credit Card or Paypal on this page.&lt;br /&gt;
&lt;br /&gt;
Once paid no further action is needed and your account will remain active.&lt;br /&gt;
We thank you for your continued business and assistance in helping us to get this resolved.&lt;br /&gt;
Feel free to contact us if you have any questions, comments, or concerns.&lt;br /&gt;
&lt;br /&gt;
Regards; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Attachments===&lt;br /&gt;
&lt;br /&gt;
Please follow these rules strictly:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment that you did not expect.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  be curious to see what is in an attachment.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment if there is some other way for the info to be sent e.g. Screenshot of document.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the rules above are followed then:&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you have requested it and if sender is unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you get a good explanation of it contents from sender and they are unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
It is okay to save an attached eml file and open it with GEDIT as text, as it will not trigger any virus.&lt;br /&gt;
&lt;br /&gt;
This does NOT mean that you can open attached files freely. As per the procedures above, you should NOT open any unknown or unexpected attachments without CONSIDERABLE thought.&lt;br /&gt;
&lt;br /&gt;
But saving and then opening files with GEDIT to get an idea of their contents even if the view is mangled is okay. Although, there is little point in opening files like ZIP in gedit.&lt;br /&gt;
&lt;br /&gt;
There is no way to determine if an attachment, even from someone you know, has not been infected and is therefore, dangerous.&lt;br /&gt;
&lt;br /&gt;
The only protection is to rely on anti-virus/anti-malware e-mail filters and staff vigilance!&lt;br /&gt;
&lt;br /&gt;
You can check the names and file types/extensions of attached files to spot any obviously strange or unexpected attachments, but this is not very effective. The filename of an attachment could be spoofed. An attacker could potentially exploit this by tricking the user in to opening an attachment of a different type to the one expected.&lt;br /&gt;
&lt;br /&gt;
Attachments ending in .jar or any other unusual extensions shouldn’t be opened without SB&#039;s permission.&lt;br /&gt;
&lt;br /&gt;
If there are a lot of attached files, don&#039;t assume they are all safe, make sure you asked for each of them.&lt;br /&gt;
&lt;br /&gt;
==Handling emails from unknown email addresses==&lt;br /&gt;
&lt;br /&gt;
Any sort of contact from an unknown email address must be ignored entirely, i.e. no response whatsoever from Support, as these emails could be from a fraudulent source. If the email is genuine, then the sender can surely contact their managers.&lt;br /&gt;
&lt;br /&gt;
Support should keep in mind that hackers can send emails that look genuine, aiming to get private/confidential information and so should always stay alert when dealing with such emails.&lt;br /&gt;
&lt;br /&gt;
==Handling junk/spam email==&lt;br /&gt;
&lt;br /&gt;
In order to get better automatic spam email filtering please mark as many obviously spam emails as Junk, instead of just deleting them. Marking them will delete them so it takes not much longer to do.&lt;br /&gt;
&lt;br /&gt;
*DO NOT delete emails from Junk or Spam folder because they are used to identify future junk and spam emails.&lt;br /&gt;
*Any email identified as junk should be marked as Junk so that they automatically go into the Junk folder. The spam filter in the mail server will use these emails in the Junk folder to decide what is moved into the spam folder.&lt;br /&gt;
*You MUST ensure that all clearly junk/spam emails are marked as Junk/Spam in ALL email inboxes. In other words they MUST be moved to Junk/Spam folders and not left in our inboxes or other main folders.&lt;br /&gt;
*Any emails which are not clearly junk/spam emails or are similar to genuine emails, but you know are spam/junk MUST be deleted i.e. NOT left in inbox NOR moved to Junk/Spam folders.&lt;br /&gt;
&lt;br /&gt;
Failing the above we will have the following problems:&lt;br /&gt;
&lt;br /&gt;
*Real emails disappearing into junk/spam folders by our email server.&lt;br /&gt;
*More junk/spam emails appearing in our inboxes than necessary.&lt;br /&gt;
&lt;br /&gt;
The Junk email folder contains emails that have been manually marked as spam/junk whereas the &amp;quot;spam&amp;quot; email folder contains emails that have automatically been filtered out by the email server.&lt;br /&gt;
&lt;br /&gt;
==Avoid burdening email servers with excessive graphics==&lt;br /&gt;
&lt;br /&gt;
Support MUST install the &amp;quot;Auto Resize Image&amp;quot; addon in Thunderbird to reduce the size of images in emails resulting in a significant reduction in email size. See [[Configuring_Thunderbird#Configure_Auto_Resize_Image| setting up auto resize image]] for details.&lt;br /&gt;
&lt;br /&gt;
It reduces the burden on NEOSYS and NEOSYS client&#039;s email servers. This is especially important on long conversations about subjects that include many screenshots, since for just a simple one line reply, the email can consume many MB of space. It massively wastes the email server space and makes backups massive and generally a total waste of resources and time.&lt;br /&gt;
&lt;br /&gt;
To be able to refer back to graphics in previous emails, add the SIZE column to your email program so that you can locate large emails with graphics rapidly without searching back one by one.&lt;br /&gt;
&lt;br /&gt;
==Client Communication Policies==&lt;br /&gt;
===Client Meeting Report Policy===&lt;br /&gt;
&lt;br /&gt;
After every Client meeting online or otherwise Support MUST send a Follow-Up email to the Client which is open and fully informative and not brief, stating the events during the meet and any action required by either or both parties. The email to the client must not shrink from discussing contentious issues due to a false sense of politeness or timidity to address issues face on. Obviously one should not be rude but it is not rude to address issues openly.(cc Client managers and NEOSYS Managers)&lt;br /&gt;
&lt;br /&gt;
The follow-up email MUST be sent within 24 hours of completion of the meeting so that the points discussed during the meeting are fresh in all the meeting participants&#039; minds. This means that reports for meetings on the day before the weekend MUST be sent on the SAME day.&lt;br /&gt;
&lt;br /&gt;
In addition to above email if there is some information that needs to be shared internally and cannot be said in public to the client then send a Client Meeting report to Support.&lt;br /&gt;
&lt;br /&gt;
Support must also update the Client Contact Record file in Google Drive immediately after sending out the follow-up email.&lt;br /&gt;
&lt;br /&gt;
===Follow Up of Support Issues===&lt;br /&gt;
&lt;br /&gt;
All voice/chat communication MUST also be followed up with an email confirming at least the gist of the communication to keep the whole support team updated on the issue.&lt;br /&gt;
&lt;br /&gt;
If not possible to contact for any reason, then an email MUST be sent stating so and suggesting or requesting a time to connect.&lt;br /&gt;
&lt;br /&gt;
cc Client managers (and/or BCC NEOSYS Managers) MAY be done if thought to be useful and/or appropriate.&lt;br /&gt;
&lt;br /&gt;
===Handling Contentious Emails from Clients===&lt;br /&gt;
&lt;br /&gt;
If emails requesting support become contentious, then voice, phone call or chat is REQUIRED to save time. However, client support via phone call should be done only on local or low-cost calls. High-cost international calls should not be used except in extreme circumstances.&lt;br /&gt;
&lt;br /&gt;
If clients become deliberately combative or uncooperative then Support team is supposed to kick back a little but still emphasise the point. Perhaps it could be done better with a little ironic humour or a smiley. Avoid using !! while responding to contentious emails.&lt;br /&gt;
&lt;br /&gt;
===Apologising to clients for issues===&lt;br /&gt;
&lt;br /&gt;
We only need to apologise for major issues that are a) definitely our fault and b) we wish to indicate that there is some general issue in NEOSYS procedures and that we are dealing with it. &lt;br /&gt;
&lt;br /&gt;
We do not want to invite bullying by some clients by seeming to lack confidence in our ability.&lt;br /&gt;
&lt;br /&gt;
An explanation of the cause and possibly FP is of more value to the client, since an apology doesn’t really make any difference.&lt;br /&gt;
&lt;br /&gt;
===Discussing Pricing=== &lt;br /&gt;
All discussions about pricing must be done only in Sales inbox. If clients bring up pricing discussion in support emails, NEOSYS staff must respond to the client by starting a new thread in the Sales Inbox.&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Support Response Time Policy==&lt;br /&gt;
&lt;br /&gt;
NEOSYS contracts, in the few cases where we have a written contract with the client, specifies that maximum response time is one business day generally and one business hour for complete stoppages of the system. Obviously we have to do far better than this in practice.&lt;br /&gt;
&lt;br /&gt;
Support staff must inform clients of the progress of the issue if it is not resolved the same day but only if they contact at least 1 hour before office closing.&lt;br /&gt;
&lt;br /&gt;
Deciding to wait on issues is fine (also refer to:  [[Procedures#Handling_users_who_do_not_act_upon_standard_messages|Response to standard messages]]), but support MUST at least spend up to 5 minutes on issues to see if they can be handled quickly. Support MUST respond quickly to issues that can be handled quickly, otherwise the client suffers unnecessarily.&lt;br /&gt;
&lt;br /&gt;
When an issue is fixed or a client request has been implemented in NEOSYS, Support must immediately let users know that the issue is fixed, so that clients can continue their work without any further delay. Quick and prompt responses from Support will gain the client&#039;s appreciation.&lt;br /&gt;
&lt;br /&gt;
For routine requests for service where there is a reasonable expectation of delay by the client then no need to send rapid reply.&lt;br /&gt;
&lt;br /&gt;
==Default Browser for support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS supports and develops for Firefox primarily but other browsers such as Chrome and Edge MUST also be tested working fine. Support team currently uses Firefox for all work related tasks in Ubuntu which includes testing, wiki work etc.&lt;br /&gt;
&lt;br /&gt;
Also refer to [http://itwiki.neosys.com/index.php/Setting_up_Ubuntu_on_NEOSYS_Support_Computers#Mozilla_Firefox Setting up Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
==Handling errors discovered by support staff==&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
==Handling browser script errors==&lt;br /&gt;
&lt;br /&gt;
If a script error is faced, support should take a full screenshot of the script error including the script name, line number, etc.&lt;br /&gt;
&lt;br /&gt;
Include every detail available regarding the script error and also the steps to replicate it and escalate this to the programmer.&lt;br /&gt;
&lt;br /&gt;
Chrome JavaScript Error Notifier extension shows all the details available in the initial script error message itself. In Internet Explorer, you will have to click &#039;Yes&#039; on the script error message to get all the details.&lt;br /&gt;
&lt;br /&gt;
==Various checks done by Support to investigate errors==&lt;br /&gt;
&lt;br /&gt;
A list of logs/reports that Support must look at, depending on the situation, to solve issues or investigate errors.&lt;br /&gt;
&lt;br /&gt;
#Support inbox emails: Check old emails in Thunderbird. This is the quickest way to handle issues/errors that were handled recently.&lt;br /&gt;
#Logs/reports available in NEOSYS Menu&lt;br /&gt;
#*Request Log (Support -&amp;gt; RequestLog) - These logs can be checked to see what request were made and by which users etc., not as detailed as the xml logs mentioned under &amp;quot;Logs found on the server&amp;quot;.&lt;br /&gt;
#*NEOSYS logs (Support -&amp;gt; Log) - Log of alerts sent out via email, e.g. backup email, login failure, etc.&lt;br /&gt;
#*What&#039;s New report (Help -&amp;gt; What&#039;s new in NEOSYS) - Contains a list of all the features added in NEOSYS&lt;br /&gt;
#*List of Database processes (Support -&amp;gt; List of Database Processes) - Status of processes windows running on the server.&lt;br /&gt;
#*List of documents in use (Support -&amp;gt; List of Documents in Use) - Currently used documents.&lt;br /&gt;
#*User details page (Help -&amp;gt; User Details) - To check logins and IPs and password reset details.&lt;br /&gt;
#*Version logs of files - The history of edits made to files in NEOSYS. This is available at the bottom of files in NEOSYS (e.g. Schedule file, Voucher file, etc.)&lt;br /&gt;
#*Usage Statistics (Support -&amp;gt; Usage Statistics) - Shows no. of requests made per user, per department, per database, per hour etc.&lt;br /&gt;
#Logs found on the server:&lt;br /&gt;
#*Xml logs - These logs can be checked to see what request were made and by which users etc. in detail.&lt;br /&gt;
#*Process logs (.LOG files) - These log files contain entries showing start of database backup, and process startup logs.&lt;br /&gt;
#*Process windows - Check process windows on the server for error messages or anything unusual, e.g. hung processes.&lt;br /&gt;
#*Procexp (Process Explorer)- Used to check ntvdm processes running for specific installations (useful on servers with multiple installations).&lt;br /&gt;
#*System logs (Event viewer) - Used to check for unusual system events, eg: unexpected shutdown.&lt;br /&gt;
#*Task manager - Checked to monitor CPU usage, NTVDM running etc.&lt;br /&gt;
#NAGIOS - Monitors the status of all hosts and services.&lt;br /&gt;
&lt;br /&gt;
==Handling Cheques from Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff are not to accept deliveries from clients that might be cheques without prior instructions to accept the same. They can ask courier to wait a few minutes until NEOSYS accounts or management agrees but they may not be immediately available and probably will not agree anyway. If accounts or management is not immediate available, then cheque MUST not in any circumstances be accepted, otherwise client can cause problems in our accounts and we waste time visiting the bank to deposit.&lt;br /&gt;
&lt;br /&gt;
NEOSYS payment terms do not accept cheques although clients are free to deposit cheques by themselves.&lt;br /&gt;
&lt;br /&gt;
==Client Password Policy==&lt;br /&gt;
All client user passwords, including their initial one, are to be obtained via the user&#039;s email address using the password reminder/reset button on the login screen. [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#What_is_NEOSYS_password_policy.3F (NEOSYS password policy)]&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff should never know users passwords therefore NEOSYS will not obtain and grant user passwords. The reason for this is that in the event that users lose their passwords to other people who then login unauthorised then suspicion could fall on the NEOSYS staff who know their password. &lt;br /&gt;
&lt;br /&gt;
All parties concerned, including client management, client users and NEOSYS support staff, benefit greatly from trusting that if something in a NEOSYS database is registered as having been done by a particular user then it was not in fact somehow done by NEOSYS support staff. Nothing should be done that would break such fundamental trust. To achieve this, NEOSYS support staff must never log in as particular users, never ask for users passwords and generally enforce the idea that all work logged as being done by users IS done by users.&lt;br /&gt;
&lt;br /&gt;
Very limited amounts of work by NEOSYS support staff either in person or remotely using teamviewer is acceptable while a user is logged as long as the user login was performed by the user themselves, the user is present and the user specifically agrees with the work being done.&lt;br /&gt;
&lt;br /&gt;
===Support requests from ordinary client users===&lt;br /&gt;
Any support requests concerning inability to obtain passwords will be forwarded to known skilled users on the client staff since this is the most efficient (not fastest) way to handle such issues.&lt;br /&gt;
&lt;br /&gt;
===Support requests from senior client management===&lt;br /&gt;
Any support requests concerning inability to obtain passwords by senior client management users shall be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bearing in mind that NEOSYS staff should never know user&#039;s passwords this will probably involve NEOSYS staff using the Password Reminder/Reset button to send a new password to the user.&lt;br /&gt;
&lt;br /&gt;
===User Defined Passwords===&lt;br /&gt;
NEOSYS will provide user defined passwords in very special cases which must be pre-approved case by case by NEOSYS management. NEOSYS will not approve this due to the reasons mentioned [[Procedures#Client_Password_Policy|here]].&lt;br /&gt;
&lt;br /&gt;
If the user login gets blocked due to multiple login failures and the user requests support team to reset the password to the user defined password again, support MUST delay the response to this request by at least 1 hour in order to force the user to be more careful when typing the password.&lt;br /&gt;
&lt;br /&gt;
Currently permission for user defined password has only been granted to one NEOSYS client with several hundreds of databases.&lt;br /&gt;
&lt;br /&gt;
==Handling client issues and requests==&lt;br /&gt;
&lt;br /&gt;
All support issues must be dealt with through phone/email/chat. Support Staff can schedule client visits for User Training but should not schedule client visits solely for providing support for petty issues.&lt;br /&gt;
&lt;br /&gt;
ALL Support staff should check all the previous day&#039;s inbound emails for reply flags once in the morning. All Support staff will therefore be held responsible for any unreplied inbound email.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT waste time and delay support by investigating issues WITHOUT SUFFICIENT INFORMATION.&lt;br /&gt;
&lt;br /&gt;
Support must NOT get involved in any discussion about any document that is not directly out of NEOSYS, so that Support is able to reproduce it from NEOSYS screenshots of screen options that the client used.&lt;br /&gt;
&lt;br /&gt;
Support should look for similar issues when solving a particular problem to avoid similar issues in future. This saves the time and energy of Support as well as the Client.&lt;br /&gt;
&lt;br /&gt;
When sending screenshots to clients, support team should economise on space by minimising to the minimum that will show the problem clearly. This is because not every user will be viewing their emails on large wide screens like NEOSYS support team. Browser windows reformat their contents to suit the width available so this is particularly effective in most NEOSYS screens.&lt;br /&gt;
&lt;br /&gt;
Support team MUST be cautious while sending screenshots so that no private/unnecessary information is sent to Client. If you cannot avoid taking the screenshot without unnecessary information then you should hide it in the screenshot.&lt;br /&gt;
&lt;br /&gt;
Support team MUST learn not to do silly support for people, because we have an OPEN SUPPORT policy, which some users WILL try to abuse based on either poor understanding or lack of respect. &lt;br /&gt;
Either way support MUST learn to deal with abuse of privileges as it will save a lot of time, which could be spent on more important issues.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
===Handling new emails in Support inbox===&lt;br /&gt;
Support MUST spend up to 5 minutes on new emails and send a quick reply to the client, to acknowledge the request or give a quick solution in case it is a petty issue or has a documented solution in wiki.&lt;br /&gt;
&lt;br /&gt;
Client issues/requests should be prioritized, interrupting existing work and not wait for one hour and be dealt with quickly.&lt;br /&gt;
&lt;br /&gt;
For routine service requests where there is a reasonable expectation of delay by the client, Support need not send a rapid reply but must keep the email starred in Support inbox to indicate that it is pending or being worked on.&lt;br /&gt;
&lt;br /&gt;
===Handling starred emails in Support inbox===&lt;br /&gt;
&lt;br /&gt;
When an email is received in Support inbox,&lt;br /&gt;
&lt;br /&gt;
*if the email can be replied to immediately, then mark it as read after you have replied to the email.&lt;br /&gt;
*if the issue cannot be resolved immediately, then the email MUST be starred so that support does not forget to work on it. Once the issue has been resolved, Support should send an email to Support inbox confirming that the issue is closed. Only then should the email be unstarred.&lt;br /&gt;
&lt;br /&gt;
No issue should be silently dropped without being fully resolved.&lt;br /&gt;
&lt;br /&gt;
===Handling client-sensitive information in emails===&lt;br /&gt;
&lt;br /&gt;
Support should avoid including information that could be sensitive to clients e.g. screenshots of reports that should only be viewed by client&#039;s upper management.&lt;br /&gt;
&lt;br /&gt;
This can be done simply by clever cropping of images or blurring out of information in cases where cropping is not possible. &lt;br /&gt;
&lt;br /&gt;
Support MUST not delay response to any client by wasting time blurring or cropping out information that is not sensitive to clients, e.g. blurring out the URL and tabs in browsers etc.&lt;br /&gt;
&lt;br /&gt;
===Handling client call back requests===&lt;br /&gt;
&lt;br /&gt;
Clients who ask us to call them should be given our phone number and asked to call us unless there is some GOOD reason why we should make the effort and pay phone charges.&lt;br /&gt;
&lt;br /&gt;
===Handling login failure issues===&lt;br /&gt;
&lt;br /&gt;
Users often get login failure issues due to typing wrong password and they simply won&#039;t read and act according to the error message they get. In this case, Support must send the below email to the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
If you have trouble resetting password, please ask for assistance from your manager/IT Manager/Timesheet Administrator/NEOSYS-expert colleague.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local support users (TA or IT manager etc) have the LS key using which they can see the User Details page of all users. They should check all the information (usercode, registered email id, last login attempts etc) in the User Details page to find out what is the issue.&lt;br /&gt;
&lt;br /&gt;
This procedure will reduce the endless mails sent back and forth to solve petty issues which could easily be solved by the client&#039;s local support.&lt;br /&gt;
&lt;br /&gt;
===Handling requests or demands for &amp;quot;URGENT&amp;quot; or &amp;quot;PRIORITY&amp;quot; support===&lt;br /&gt;
&lt;br /&gt;
Any request for prioritised action *without giving any reason for the prioritisation* should be disregarded and the request handled with normal priority. If a reason is given then you may at your discretion prioritise a response but there is no obligation to do so.&lt;br /&gt;
&lt;br /&gt;
===Handling users who login with other people&#039;s NEOSYS usercodes===&lt;br /&gt;
This can cause a lot of confusion in both the client and NEOSYS support. It may also indicate that the correct NEOSYS monthly licensing fee is not being paid. There is no valid reason for anonymous logins or sharing logins between multiple users.&lt;br /&gt;
&lt;br /&gt;
Therefore if NEOSYS support team get requests for support about using NEOSYS from users who are not registered properly in NEOSYS with an personally identifiable user code, name and email then the following email should be sent cc admin@neosys.com.&lt;br /&gt;
&lt;br /&gt;
No exception should be granted to clients without NEOSYS management approval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear NEOSYSUSER,&lt;br /&gt;
&lt;br /&gt;
Please note that in order to receive support from NEOSYS you must personally have an identifiable user code, name and email address registered&lt;br /&gt;
in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
We can create new user account for you with your management approval. This may or may not have an impact on the NEOSYS monthly licensing fee &lt;br /&gt;
depending on the agreement in force.&lt;br /&gt;
&lt;br /&gt;
Please let us know what you would like us to do.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling support requests from expired users===&lt;br /&gt;
&lt;br /&gt;
If expired users call for any reason including not being able to login, they must not be given any support. They should only be told that their account is expired without any reason being offered because employers sometimes do not want any information at all being passed to expired users.&lt;br /&gt;
&lt;br /&gt;
===Handling support request from senior management===&lt;br /&gt;
&lt;br /&gt;
Any support requests from senior client management users concerning report generations should be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bear in mind that NEOSYS staff should not agree or offer to do client work. Support staff can advise senior management to contact a skilled user to help them with basic NEOSYS reporting. Support staff can also send screenshots of step by step procedure on how to take reports. Depending on the situation and reasons provided by senior management, support staff can at their discretion provide reports but after informing them that this is an exception and no more reports will be sent out as this is against NEOSYS procedures.&lt;br /&gt;
&lt;br /&gt;
===Handling requests that involve updating NEOSYS configuration files===&lt;br /&gt;
&lt;br /&gt;
Changes to any configuration file in NEOSYS MUST be performed only by NEOSYS support, because even the slightest misconfiguration of the system may cause unrecoverable errors and NEOSYS is responsible for support.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with unrelated subject line===&lt;br /&gt;
At times, clients forward old emails, with new issues, resulting in completely unrelated subject line. In such situations, support MUST follow the below steps to ensure that unrelated emails do not appear in the same conversation group when viewing emails in conversation mode:&lt;br /&gt;
&lt;br /&gt;
#Right click the email -&amp;gt; HeaderToolsLite -&amp;gt; Edit full source&lt;br /&gt;
#Modify the text that appears after &amp;quot;Message-ID: &amp;lt;&amp;quot;. (e.g. replace the first few characters with &amp;quot;xxxxxxxxx&amp;quot;)&lt;br /&gt;
#Remove all texts that appear after &amp;quot;References:&amp;quot; and &amp;quot;In-Reply-To:&amp;quot; and click OK.&lt;br /&gt;
#Click Reply All on the modified email.&lt;br /&gt;
#Change the subject to a relevant one.&lt;br /&gt;
#Delete old unrelated content from the email body.&lt;br /&gt;
&lt;br /&gt;
In the email reply, include a comment like &amp;quot;PS Please don&#039;t forward old emails for new issues, start a new email with a new subject so that emails can be traced easily.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sometimes the client does not bother putting the correct subject line for new issues (e.g. blank subject, or &amp;quot;Error&amp;quot;). Then support should add a meaningful subject line in order to make the email easy to search for.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with poor screenshots===&lt;br /&gt;
Sometimes Thunderbird shows full sized screenshots in a compact format that is not easy to read. These can be resized to make them more legible. To do this, make the email editable by hitting the &amp;quot;Reply&amp;quot; button, then click and drag to resize the screenshot as desired.&lt;br /&gt;
&lt;br /&gt;
If the screenshot sent by the user is genuinely small and hard to read, reply to the mail and request for a full size, clear screenshot.&lt;br /&gt;
&lt;br /&gt;
===Handling support-request emails sent to anywhere than support@neosys.com===&lt;br /&gt;
Client emails anywhere than support@neosys.com MUST be ignored. This is because ALL support must be recorded in support inbox without exception so that the whole support team is aware of the issue and action taken. If client complains about the delay in support then they can be told this is because they used the wrong email address.&lt;br /&gt;
&lt;br /&gt;
===Handling users who do not act upon standard messages===&lt;br /&gt;
When users do not bother to read and act on standard NEOSYS-generated messages and instead ask for help, Support staff MUST delay response time and thereafter send them an email which is the same as the message so they get the point that in future they should read the messages and handle issues themselves.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests to do Client work===&lt;br /&gt;
NEOSYS Support staff must not agree or offer to do work on behalf of the client. &lt;br /&gt;
&lt;br /&gt;
This is because doing client work while logged in as NEOSYS breaks security rules. Support uses the NEOSYS username which has unrestricted access, so when a user requests Support to do some work which they don’t have access to, and if Support agrees to do the work, the client has successfully defeated the security rules by accessing features that they are unauthorised to access.&lt;br /&gt;
&lt;br /&gt;
If a client makes a false claim about an issue in NEOSYS, i.e. if Support finds out that there is no real issue, then direct the client in the right direction so that they find out their mistake by themselves. Support MUST NOT show/explain the problem to them in detail, since you are just doing their work for them by explaining the problem and this will encourage the client to contact support for every petty issue they face. &lt;br /&gt;
&lt;br /&gt;
Client work also includes [[Procedures#Handling_issues_with_totals_on_reports|Handling issues with totals on reports]].&lt;br /&gt;
&lt;br /&gt;
====Requests for colour and font changes====&lt;br /&gt;
&lt;br /&gt;
Support should not be spending lots of time on colour and font changes. Clients can make as many changes as they want until they are happy with a selection. Clients MUST send a screenshot of their required color/font settings (not sample screen/reports) for Support to copy and setup for all users. If Support sees them doing something bad or poor then give comments or better suggestions.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests that require Approval from Higher Authority===&lt;br /&gt;
&lt;br /&gt;
The following is a list of user requests that must be handled by NEOSYS support staff only if they are approved by or come from a higher authority (manager/admin). The LIST is &#039;&#039;&#039;NOT&#039;&#039;&#039; a complete list so there may be other things which might require approval so use good judgement and/or ASK if in doubt.&lt;br /&gt;
&lt;br /&gt;
*Opening new financial year&lt;br /&gt;
*Adding new company/dataset&lt;br /&gt;
*Editing alert/backup email receiver addresses&lt;br /&gt;
*Customising Authorisation File ({{SensitiveSecurity }})&lt;br /&gt;
**Adding or removing accesses for existing users in Authorisation file&lt;br /&gt;
**[[Procedures#Handling_new_USER_creation| Adding new user(s) to Authorisation file]]&lt;br /&gt;
**Expiring a user&lt;br /&gt;
**[[Procedures#For_HTTPS_access| Allowing HTTPS/outside office access from any IP number]]&lt;br /&gt;
&lt;br /&gt;
If an unauthorized user sends one of these requests to support staff, support staff must immediately instruct the user to get the request approved by the higher authority.&lt;br /&gt;
&lt;br /&gt;
====Handling Requests from people impersonating an Authorised person====&lt;br /&gt;
A user may impersonate the authorised person by using their email address or signature when they are told that the request must come from or be approved by the authorised person. Support must use their judgement to deal with such requests. &lt;br /&gt;
&lt;br /&gt;
If it is a simple request such as adding a new user or expiring one, Support can go ahead with the request.&lt;br /&gt;
&lt;br /&gt;
If it is a request with risk involved such as providing remote access or granting high-level authorisation, Support must then contact the authorised person and let them know that their approval for the request has been received and are proceeding with the request.&lt;br /&gt;
&lt;br /&gt;
===Handling User Requests to add an IP or range of IPs to access NEOSYS===&lt;br /&gt;
&lt;br /&gt;
Support staff must identify if the IP or range of IPs is for http or https access.&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
====For HTTP access====&lt;br /&gt;
Support staff can add local IP or range of local IPs when requested by the client. Top management approval is not needed to add local IP numbers. Listed below are the IP address ranges reserved for local network.&lt;br /&gt;
&lt;br /&gt;
10.0.0.0 – 10.255.255.255&lt;br /&gt;
&lt;br /&gt;
172.16.0.0 – 172.31.255.255&lt;br /&gt;
&lt;br /&gt;
192.168.0.0 – 192.168.255.255&lt;br /&gt;
&lt;br /&gt;
====For HTTPS access====&lt;br /&gt;
Any request for https access from any IP address or range of IP addresses (eg. 123.456.* or just *), or in other words any use of an asterisk in the IP restrictions, MUST have TOP management i.e. the company&#039;s decision makers approval. The Staff and their Managers are not the best decision makers in this affair because they usually ignore the risks and it is not really their decision. Security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc can be triggered if access from any IP is enabled. It is completely pointless to inform the staff who want the access about these risks because only their top managers could really decide that this is NOT going to be allowed. Hence the Top Management MUST be asked for approvals and at the same time WARN them about the security risks/threats behind the no IP restrictions.&lt;br /&gt;
&lt;br /&gt;
=====For clients with static IP=====&lt;br /&gt;
Any request to add a specific IP address to the list of allowed IP addresses MUST have management approval.&lt;br /&gt;
&lt;br /&gt;
=====For clients with dynamic IP=====&lt;br /&gt;
For clients with dynamic IP, support MUST NOT add their public IP to the allowed list as this will encourage the client to again request for access from new IP numbers every time their public IP changes. Instead, support MUST force the client to either get a static IP, install VPN or get the Top Management i.e. the company&#039;s decision maker&#039;s approval to enable access from any IP after explaining the security risks in doing so, as mentioned above.&lt;br /&gt;
&lt;br /&gt;
Support MUST also mention that installation of VPN by the Company is the industry standard way of providing access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER. Installation of VPN is to be done by their own IT support. Refer to [[Procedures#Using_VPN_to_enable_secure_access_from_outside_the_office|Using VPN to enable secure access from outside the office]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Sample Email addressed to Top Management:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear &amp;lt;XXXXX&amp;gt;,&lt;br /&gt;
 &lt;br /&gt;
I do not recommend allowing access from all IPs because security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc. can be triggered if access from any IP is enabled.&lt;br /&gt;
&lt;br /&gt;
I strongly recommend that you keep IP restrictions for &amp;lt;XXXXXX&amp;gt; dataset.&lt;br /&gt;
  &lt;br /&gt;
If you want to provide access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER, then installation of VPN is the industry standard of achieving this. Installation of VPN is to be done by your own IT support. &lt;br /&gt;
 &lt;br /&gt;
If you still wish to allow access from all IPs, kindly confirm that you acknowledge the security threats of doing so. &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling repeated request to allow users to access from all IPs===&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
If the client wants temporary access from outside for some staff twice in say a six months period then support should send the below email. The real reason is because we don&#039;t have the time to be doing this on a regular basis. If at all the client asks why we no longer support the provision of temporary outside access then we can say this is because of the frequency of such requests.&lt;br /&gt;
&lt;br /&gt;
 Dear XXX&lt;br /&gt;
 &lt;br /&gt;
 We have given you temporary outside access this time, as requested. Please note that we can no longer support the provision of temporary outside access. So in the future, you will have to choose between either permanent or no outside access. Alternatively, you can ask your management to install a VPN (which is the industry standard of achieving outside access to a corporate asset in a secure manner), so that you can log in to NEOSYS from outside.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create a new feature or modifying existing features===&lt;br /&gt;
&lt;br /&gt;
Many issues are small and not important but can still be considered for development because they may be easy and neatly added to NEOSYS. The aim here is to avoid development on hard issues for little benefit, or little issues that make NEOSYS more complex for little benefit.&lt;br /&gt;
&lt;br /&gt;
When a client requests to create a new feature or modify an existing feature, a workaround must be given to the user, which is either a permanent solution, for example if the issue is a rare case and not commonly faced by other clients (and the workaround is acceptable to the client), or a temporary solution until some better solution is discovered or can be developed.&lt;br /&gt;
&lt;br /&gt;
Support MUST check all options on all pages to look for any already existing solution or workaround to the problem before emailing the programmer.&lt;br /&gt;
&lt;br /&gt;
Any request to create a new feature or modify an existing feature MUST be discussed with other clients before forwarding it to the programmer because the other clients might not be comfortable with the change as it may not be in accordance with their workflow. If other clients agree to the proposed change then support should go ahead and request the programmer to implement it.&lt;br /&gt;
&lt;br /&gt;
Therefore before escalating a request to the programmer to modify a feature in NEOSYS, the approval for the same from other clients must be taken into account.&lt;br /&gt;
&lt;br /&gt;
Any request to fix or modify a feature in NEOSYS must be accompanied with good reason and some basic considerations, so that the programmer knows what level of priority it can be dealt with. &lt;br /&gt;
&lt;br /&gt;
When escalating the request to the programmer, support MUST avoid using &amp;quot;Is it possible..?&amp;quot; because the obvious answer to that is &amp;quot;Anything is possible&amp;quot; and because this question is only a way to avoid doing the real work of deciding whether the new feature/modification should be implemented.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to add more fields to List of Invoices reports===&lt;br /&gt;
&lt;br /&gt;
Many users may ask for the List of Invoices report to be expanded to show a zillion other things, but this makes it NOT a list of invoices. Therefore other break-downs MUST be obtained from other reports in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Updating Clients about unresolved issues===&lt;br /&gt;
Support should proactively inform clients if an issue is not solved within the same day it was raised, after judging the urgency of the issue and the time it was raised. An email to the client who raised the issue, before the end of each day, is a best practice that keeps the client updated and other support staff too. This email should be sent regardless of the degree to which the issue has been resolved or if the issue is unresolved. If the issue is unresolved, the email should explain why and also explain the cause of delay.&lt;br /&gt;
&lt;br /&gt;
===Handling new USER creation===&lt;br /&gt;
====Get Approval====&lt;br /&gt;
Support staff should create new USERS for clients ONLY when requested by an authorised person. If the authorised person is unavailable, for example on leave, then get approval from someone who is in the backup mail list.&lt;br /&gt;
&lt;br /&gt;
Ideally only people who are users in NEOSYS and have authority over some task can grant or request authority to do that task to other NEOSYS users. However, if this is not the case and the requesting person has some seniority in the company (but is either not a NEOSYS user, or is not actually currently authorised to perform the task themselves) you may decide that it is not wise to proceed without some confirmation. In such a case be very respectful of their position while rejecting any request perhaps stating something like:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Currently we have instructions to take requests concerning authorisation only from xxx, yyy and zzz. Please could this request be confirmed by one of them?&amp;quot; Rewrite this judiciously to suit the occasion.&lt;br /&gt;
&lt;br /&gt;
Consider that different sections of a company may have different chain of commands. For example one should not assume that a Sales Director has authority over Finance unless there is firm evidence. If there is any doubt consult NEOSYS Support Managers.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT directly contact the authorised person asking for approval/confirmation because that is client work.&lt;br /&gt;
&lt;br /&gt;
In a case where a client is [[Procedures#Handling_Requests_from_people_impersonating_an_Authorised_person|impersonating an Authorised person]], Support must use their judgement to deal with the request.&lt;br /&gt;
&lt;br /&gt;
Clients should not be discouraged to create new users. Clients are billed as per user usage which is reviewed periodically. Over time old USERS are replaced with new USERS.&lt;br /&gt;
&lt;br /&gt;
====Creating User====&lt;br /&gt;
Preliminary:&lt;br /&gt;
&lt;br /&gt;
New user requirements :-&lt;br /&gt;
&lt;br /&gt;
*Full name                                      - (like John Smith and not generic name like Copy Writer)&lt;br /&gt;
*Email address                                  - (like johnsmith@example.com and not generic address like copywriter@example.com)&lt;br /&gt;
*Group level / User with similar authorisation&lt;br /&gt;
&lt;br /&gt;
The USER code is the first name of a user. &lt;br /&gt;
&lt;br /&gt;
1. Support MUST only create NEOSYS accounts with real names and email addresses WITH NO EXCEPTIONS unless agreed by NEOSYS management.&lt;br /&gt;
&lt;br /&gt;
It is acceptable, although inefficient, for one person to have multiple user accounts either concurrently or sequentially, but the opposite MUST never occur.&lt;br /&gt;
One NEOSYS user code/account MUST never have more than one real person associated with it neither concurrently nor sequentially.&lt;br /&gt;
In order to maintain efficiency, various fleeting temptations to cut corners and break the ONE TO ONE link between NEOSYS users accounts and real people MUST be resisted.&lt;br /&gt;
These principle remain mandatory even when pressure is exerted by people, even senior management, who may not appreciate the issues involved.&lt;br /&gt;
The fact that NEOSYS support does not know for certain who is the real person using an NEOSYS account does not change these principles.&lt;br /&gt;
&lt;br /&gt;
2. Support MUST not create GENERIC user codes like AUDITOR or MANAGEMENT (even to grant special access to such users like read-only access) as this breaks all security rules.&lt;br /&gt;
Do not re-use user codes. Always create NEW user codes for NEW users.&lt;br /&gt;
&lt;br /&gt;
3. Support MUST not create or modify any usable NEOSYS account that is or has been used by more than one user.&lt;br /&gt;
&lt;br /&gt;
4. Support is responsible to maintain the system in good working order and not knowing who is really doing the work in the system can make support harder.&lt;br /&gt;
&lt;br /&gt;
5. Support MUST not collude with clients to by-pass the principles. If asked to do so Support MUST refuse to create or update such accounts.&lt;br /&gt;
&lt;br /&gt;
6. Do not hand over user codes from one person to another in a mistaken attempt to represent a hand over to a replacement. EXPIRE THE OLD USER CODE/ACCOUNT AND CREATE A NEW USER CODE/ACCOUNT.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
7. Support team MUST NOT discuss billings with clients unless authorised to do so. Also see [[Procedures#Discussing_Pricing|Discussing Pricing]] &lt;br /&gt;
&lt;br /&gt;
8. Support team MUST NOT proceed with creating new users until the group level or existing user with similar authorisation has been clearly provided by the client, otherwise the new user may end up with more than the required authorisation, which can lead to problems in future.&lt;br /&gt;
&lt;br /&gt;
====After Creating New User====&lt;br /&gt;
&lt;br /&gt;
Support MUST send an email to the person who requested the creation of new user, confirming that the new user has been created along with a screenshot of that part of the authorisation table where the new user was created so that the new user&#039;s user code and email id is visible. This is done so that in case there is some error in the user code or email id, it is easily visible in the screenshot and also so that the person who requested the creation of the new user is informed about the user code of the new user.&lt;br /&gt;
&lt;br /&gt;
===Handling letterhead change requests===&lt;br /&gt;
&lt;br /&gt;
Support staff should reject any requests that require the letterhead to be setup on the TESTING dataset before it is setup in the MAIN dataset.This is to reduce double work for support staff and to ensure that clients have a clear understanding of their requirements and also send the correct logo image.&lt;br /&gt;
The MAIN dataset can be copied to the TEST dataset for any kind of testing.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Configuring_Letterhead#Changing_the_letterhead_for_printed_documents How to change letterhead]&lt;br /&gt;
&lt;br /&gt;
===Handling error messages===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Before Attempting to resolve client issues, please ensure that we have secure access to the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
#The very first step is understanding client problem. Ask questions to the client until you CLEARLY understand the problem.&lt;br /&gt;
#If the error is familiar and does not require a screenshot, resolve the problem immediately.&lt;br /&gt;
#If the error is unfamiliar and/or requires a screenshot and the user has not sent a screenshot, IMMEDIATELY ask the user to send a screenshot of the problem, along with the options used (basically you need to know HOW to replicate the error and the screenshot MUST show WHAT the error is).&lt;br /&gt;
#If the user says &amp;quot;nothing happens, so no screenshot of the error&amp;quot;, then IMMEDIATELY request for screenshots again with the exact steps to reproduce the problem using mouse and keyboard.&lt;br /&gt;
#Support team MUST NOT provide support without a screenshot, otherwise the client will not pay attention to support team in future and ignore requests for screenshots.&lt;br /&gt;
#Upon receipt of the error and steps to reproduce the error, follow the steps and reproduce the error. Also refer to [[Procedures#Addressing_Browser_related_issues|Addressing Browser related issues]]&lt;br /&gt;
#If the issue is unknown or you don’t understand it clearly, with the users acknowledgement use remote support to gain access to the users desktop to view how to replicate the error.&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
====Understanding Internal error messages====&lt;br /&gt;
&lt;br /&gt;
Internal errors messages appear in red on screen and an email which is sent to support with more details. (Example below)&lt;br /&gt;
&lt;br /&gt;
[[image:Rawformdatapng.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;ERROR NO:&amp;quot; line is comprised of the error number (B16), the program (MARGIN_BASE) and the line number (1). Sometimes the line number is wrong, refer to section &amp;quot;Misleading line numbers in error messages&amp;quot; below for more info.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;STACK:&amp;quot; line lists the &amp;quot;parent&amp;quot; calling programs &amp;quot;SYSMSG,LISTEN&amp;quot; used to trace how and where the error originates.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;DATA:&amp;quot; is a string of characters that is used to recreate the options used by the client in order to replicate the error message. See how to [[Troubleshooting_NEOSYS_Generally#Replicate_options_used_.26_error_using_sysmsg_Data: | replicate the error with the options used, using internal error email]]&lt;br /&gt;
&lt;br /&gt;
====Misleading line numbers in error messages====&lt;br /&gt;
&lt;br /&gt;
Many small NEOSYS utility programs are compiled to run faster than usual programs and will not report the correct line on errors like Variable Not Assigned.&lt;br /&gt;
&lt;br /&gt;
To get the actual line number, compile as usual. ie without the (CL) options mentioned below, and regenerate the error.&lt;br /&gt;
&lt;br /&gt;
Note that most of these programs should have a source line &amp;quot;linemark&amp;quot; or &amp;quot;*linemark&amp;quot; in them somewhere near the top. When single stepping in the debugger, the program will break on this line and this line alone.&lt;br /&gt;
&lt;br /&gt;
To compile a GBP program DATE for speed use something like the following:&lt;br /&gt;
&lt;br /&gt;
 COMPILE GBP DATE (CL)&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;L&amp;quot; means compile without line numbers. This makes them run faster, which is important for utility programs that are called extremely frequently eg for date or number input/output conversion.&lt;br /&gt;
*&amp;quot;C&amp;quot; means do not generate a symbol table in GBP $GETPERIOD. It makes no difference whether you do or do not.&lt;br /&gt;
&lt;br /&gt;
===Addressing Browser related issues===&lt;br /&gt;
&lt;br /&gt;
When resolving random browsing issues that seem to be on one user computer only, support MUST send the below email asking the user to check if the same issue occurs on other user computers. Rapidly convincing the user that the problem is only on their computer gains their willingness to sort the problem out at their end, using IT people if necessary and available.&lt;br /&gt;
&lt;br /&gt;
Handling random issues that appear to be on one computer is very very common and it is important to deal with it effectively, not requiring stages of &amp;quot;denial&amp;quot; by the users until they accept something has to be done at their end, and not by NEOSYS. Speeding up this process gains the confidence and appreciation of the users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Hi xxxx&lt;br /&gt;
&lt;br /&gt;
Is this error happening only on your computer? If that is the case, it may be due to an issue in your browser cache. Please clear your browser cache with assistance from your IT team if required. Then restart the browser and try again.&lt;br /&gt;
&lt;br /&gt;
If clearing browser cache does not fix the issue, I recommend a full browser reset to ensure that everything works fine.&lt;br /&gt;
&lt;br /&gt;
Follow these instructions for clearing browser cache and resetting browser:&lt;br /&gt;
http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers&lt;br /&gt;
&lt;br /&gt;
Please let us know if you face the issue again.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Handling_Browser_related_issues_in_NEOSYS| Handling Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
===Addressing Technical support emails===&lt;br /&gt;
&lt;br /&gt;
In the case of technical support issues, address emails to the IT person and cc the complete group of recipients of backup emails and other NEOSYS alert emails. This allows both NEOSYS and client IT staff to take credit for resolving issues that NEOSYS raises instead of working in the background unacknowledged.&lt;br /&gt;
&lt;br /&gt;
Technical support issues include backup failure, server failure, missing alert email, server connectivity issues and port forwarding issues and many other issues.&lt;br /&gt;
&lt;br /&gt;
For technical issues like browser configuration, clear cache, etc. support must send the user a link to the appropriate wiki article to help the user fix the problem. In some cases the user may be helpless and unable to follow the steps to fix the problem. In such cases, support MUST NOT waste time trying to help the user fix the problem, instead support MUST ask the user to get help from the IT person.&lt;br /&gt;
&lt;br /&gt;
===Acceptable report format when handling issues in NEOSYS reports===&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support must only resolve issues in NEOSYS output first. This is because only NEOSYS outputs can be trusted and user versions in Excel or PDF could be copied wrongly or edited by the user.&lt;br /&gt;
&lt;br /&gt;
In case users send reports in excel or other formats, get them to send the original NEOSYS HTML report as an attachment or copy-pasted in email.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create new charts or control accounts===&lt;br /&gt;
&lt;br /&gt;
[http://userwiki.neosys.com/index.php/Setting_up_and_Configuring_NEOSYS_Finance_System#Creating_New_Charts_or_Control_Accounts Refer here]&lt;br /&gt;
&lt;br /&gt;
===Handling issues with totals on reports===&lt;br /&gt;
&lt;br /&gt;
If a client has a problem with any total output by NEOSYS software then NEOSYS support will advise them which other NEOSYS report or reports provide a complete breakdown of the total (if necessary, to individual transactions) and ask the client to locate any offending transactions themselves.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff will handle any issues where the total on the breakdown report does not add up to the total on the summary report.&lt;br /&gt;
&lt;br /&gt;
Reconciling totals can be hard if there are many transactions involved. Regardless of how hard it may be, reconciliation is an operational task for users not for support staff since NEOSYS support staff will not get involved in understanding client transactions or data.&lt;br /&gt;
&lt;br /&gt;
====Trial Balance and Financial Statements====&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff do not have to prove or trace any figures in NEOSYS Trial Balance Reports or any financial reports. If a figure is stated to be wrong by the user, then NEOSYS support staff should ask for proof or say NEOSYS is confident that the figures are correct unless proved otherwise. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff should point out reports in NEOSYS which will support the figures in question but not actually run the reports. Support staff can suggest the users to refer to detailed ledger accounts to prove balances.&lt;br /&gt;
&lt;br /&gt;
==Using VPN to enable secure access from outside the office==&lt;br /&gt;
There are two ways in which a user can use VPN:&lt;br /&gt;
&lt;br /&gt;
*User connects to the their office router and makes the PC act like it is on the office LAN.&lt;br /&gt;
*User connects to a VPN service that provides a static IP number and can therefore be authorised by NEOSYS to login.&lt;br /&gt;
&lt;br /&gt;
If the client intends to use VPN to connect to their office router and make the PC act like it is on the office LAN, then it depends on what VPN protocols the client&#039;s office router supports.&lt;br /&gt;
&lt;br /&gt;
The alternative is to use a paid VPN service that provides a static IP number. Getting a dynamic IP number on VPN is very cheap and there are many suppliers, but getting a static IP number on VPN services seems to be more expensive.&lt;br /&gt;
&lt;br /&gt;
Internally in NEOSYS we use PFSENSE routers which support OPENVPN which is extremely flexible.&lt;br /&gt;
&lt;br /&gt;
==Handling issues with Office PBX phones==&lt;br /&gt;
&lt;br /&gt;
Support should check their respective Office PBX phones every morning to find out if the phone is up and working. In case Support finds any issue with their phone, immediately fix it so that clients do not lose contact with the  Support team via phone. Next send an email to Support inbox mentioning the fault, cause and solution for records/future prevention.&lt;br /&gt;
&lt;br /&gt;
==Running undocumented commands on Maintenance mode==&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST NOT run undocumented commands on ***LIVE*** database. Some commands are not documented for a reason, it could be because the commands might give an undesired output or because there is no clarity on what else could be effected by the command.&lt;br /&gt;
&lt;br /&gt;
Even if the command is tested in TESTING database and the output looks okay, support staff MUST get the programmer&#039;s approval before going ahead and running the command in LIVE database as there is no guaranty that the command is properly programmed and will do no damage.&lt;br /&gt;
&lt;br /&gt;
==Configuring Browsers to show Javascript errors in NEOSYS==&lt;br /&gt;
NEOSYS Support MUST ensure the following Settings for browsers because if NEOSYS generates any javascript error message, the same would appear in the bottom left corner of a window, which in turn helps the programmer to fix the error. This must be done after every Factory Reset.&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer===&lt;br /&gt;
Tools &amp;gt; Internet Options &amp;gt; Advanced &amp;gt; Browsing - the items Disable script debugging (Internet Explorer) and Disable script debugging (Other) are &#039;&#039;&#039;UNTICKED&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===Chrome=== &lt;br /&gt;
Chrome Menu &amp;gt; More Tools &amp;gt; Extensions &amp;gt; Get More Extensions, search for &#039;&#039;&#039;Javascript Errors Notifier&#039;&#039;&#039;. Add the extension to Chrome.&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome1.png]]&lt;br /&gt;
===Firefox===&lt;br /&gt;
Firebug add-on is used to NOTIFY about script errors because we have no other method to get any warning on screen but you should use the main firefox developer tools to investigate any errors as firebug is essentially replaced by built in developer tools. &lt;br /&gt;
&lt;br /&gt;
For developer tools, go to Tools &amp;gt; Web Console&lt;br /&gt;
&lt;br /&gt;
To enable notifications for script errors, download the add-on Firebug from [https://addons.mozilla.org/en-US/firefox/addon/firebug/ here]. When a Javascript error is encountered, the firebug icon will report the number of errors.&lt;br /&gt;
&lt;br /&gt;
Set your firebug as per the second screen shot and select &amp;quot;Enable All Panels&amp;quot; as well, the tick will not appear like the other options but the option will get selected. If you miss out on any one of these steps, you will not be able to capture script errors.&lt;br /&gt;
&lt;br /&gt;
[[file:firebug1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Firebug.png]]&lt;br /&gt;
&lt;br /&gt;
==Handling Browser related issues in NEOSYS==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Technical_/_Hardware_requirements#NEOSYS_Software_Browser_and_OS_Requirements NEOSYS browser requirements]&lt;br /&gt;
&lt;br /&gt;
Clients frequently ask [http://userwiki.neosys.com/index.php/General_FAQ#Why_doesnt_NEOSYS_support_my_XYZ_browser.3F Why NEOSYS doesn&#039;t support other browsers] &lt;br /&gt;
&lt;br /&gt;
To avoid browser errors, all new users must follow the steps given in [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#Getting_started_with_NEOSYS Getting started with NEOSYS] before logging in to NEOSYS for the first time.&lt;br /&gt;
&lt;br /&gt;
To troubleshoot browser related errors see [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers Troubleshooting Web Browsers]&lt;br /&gt;
&lt;br /&gt;
Users must clear browser cache after every NEOSYS Upgrade to avoid errors. See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS#Sample_email_to_be_sent_to_clients_who_face_issues_due_to_failure_in_clearing_browser_cache Sample email to clients who face issues due to failure in clearing browser cache]&lt;br /&gt;
&lt;br /&gt;
Pop-up blockers and any 3rd party toolbars must be deactivated/switched off or else certain pages and alert messages while using NEOSYS do not appear as a result of blocking from either the pop-up blocker or toolbars with built-in pop-up blockers. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support must ask users to Reset browser (See [http://userwiki.neosys.com/index.php/Reset_Browser Reset browser]) if they notice any user browsers which have pop-up blockers or 3rd party toolbars installed.&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Addressing_Browser_related_issues| Addressing Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
==Handling NEOSYS Upgrade==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS Upgrading NEOSYS]&lt;br /&gt;
&lt;br /&gt;
==Handling auto-reply emails like Out of Office etc.==&lt;br /&gt;
&lt;br /&gt;
From 28th May 2017 version, emails sent out by the NEOSYS system now contain headers that in effect request recipient email systems not to auto-reply for things like Out of Office. This is to reduce unnecessary chatter by silencing unnecessary automatic replies. There is no guarantee that recipient email systems will comply. The headers added are:&lt;br /&gt;
&lt;br /&gt;
*X-Auto-Response-Suppress: RN, NRN, OOF&lt;br /&gt;
*Precedence: bulk&lt;br /&gt;
&lt;br /&gt;
Support team should notify SB of any auto-responses that come despite their installation being patched.&lt;br /&gt;
&lt;br /&gt;
In NEOSYS versions after 10th Jun 2017, emails sent by NEOSYS from the NEOSYS Help menu, i.e. manually triggered emails, do NOT indicate that OOF replies are not wanted, since if you are sending emails to people using NEOSYS, you will want to know if they are OOF.&lt;br /&gt;
&lt;br /&gt;
==Using Support Tools==&lt;br /&gt;
===Website Live Support===&lt;br /&gt;
www.neosys.com is equipped with a Live Support software and clients can visit the website, click on this link and chat with any of our support staff, without the need for any installation. The client has to fill in their name and enter their questions to connect to an available support personnel. During non-working hours, the Live Support icon on the website automatically displays &amp;quot;offline&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support personnel who are authorised to provide such support, need to login to Live helper chat in Firefox using the link given below:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/&lt;br /&gt;
&lt;br /&gt;
Support personnel should enter the account details as provided by their Manager.&lt;br /&gt;
&lt;br /&gt;
Enable notifications for Live helper chat so that whenever there is a visitor trying to contact Support team, the Support personnel will get the notifications on his screen. &lt;br /&gt;
&lt;br /&gt;
Set the Live helper chat login page as your home page in Firefox and this page must be kept open for the whole duration of working hours. &lt;br /&gt;
&lt;br /&gt;
Support must always be alert and immediately reply to messages from visitors.&lt;br /&gt;
&lt;br /&gt;
Use the link below to enable notifications:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/chat/listchatconfig&lt;br /&gt;
&lt;br /&gt;
After setting up Live helper chat if you sign in to a new profile in Firefox, you might have to re enable the notifications after your Firefox is synced to the new profile.&lt;br /&gt;
&lt;br /&gt;
===Teamviewer===&lt;br /&gt;
Since Teamviewer allows no restriction on access once a fixed pass is installed, Support must not install fixed pass on teamviewer however convenient it might be.&lt;br /&gt;
&lt;br /&gt;
RULE: NO FIXED PASS TO BE INSTALLED ON TEAMVIEWER IN ANY NEOSYS OR NEOSYS CLIENT COMPUTER&lt;br /&gt;
&lt;br /&gt;
Running teamviewer live from a web link is fine because it does not allow installation of a permanent password&lt;br /&gt;
&lt;br /&gt;
For certain tasks that require temporary install of Teamviewer on the client servers (e.g. upgrading Cygwin remotely), use Teamviewer 7 on the server as well as Support staff computer. Contact NEOSYS IT for commercial license of Teamviewer 7. Teamviewer MUST be uninstalled after usage, otherwise it creates an additional unnecessary security risk.&lt;br /&gt;
&lt;br /&gt;
To support client users who use the latest version of Teamviewer, support staff must also install the latest Teamviewer version available alongside Teamviewer 7.&lt;br /&gt;
&lt;br /&gt;
==Documenting Processes in Wiki==&lt;br /&gt;
NEOSYS Support staff must be in continual learning mode. This is mandatory for support staff and is not an option. Support must read, learn and understand everything in the support emails and ask questions if they don&#039;t understand. This understanding must be transferred into wiki in the form of new articles and improvements to existing articles.&lt;br /&gt;
&lt;br /&gt;
For all articles related to formatting and editing in Wiki, see [http://itwiki.neosys.com/index.php/Documenting_NEOSYS_systems Documenting NEOSYS systems]&lt;br /&gt;
&lt;br /&gt;
===Avoiding duplication of text in wiki===&lt;br /&gt;
&lt;br /&gt;
Duplication of text in wiki is to be avoided almost at any cost. Duplication has the problem that when one copy is changed or improved in future then it is highly likely the editor will fail to update the other copy or copies and wiki will over time become an inconsistent mess.&lt;br /&gt;
&lt;br /&gt;
There are several ways to avoid duplication:&lt;br /&gt;
&lt;br /&gt;
#Two or more procedures which have significant areas of duplication can be rewritten as a single procedure with alternatives in the middle of the procedure&lt;br /&gt;
#Wiki Templates- Templates reproduce the same text in all places and editing one place edits all places. See [[How to create templates in wiki]]&lt;br /&gt;
#Wiki links- Only put the text in one place and put links to that in all the other places that it is appropriate.&lt;br /&gt;
#Place a note in all copies something to the effect that &amp;quot;This is similar to x, y and z&amp;quot;. This alerts any future editor of all other places in wiki that might also have to be updated.&lt;br /&gt;
&lt;br /&gt;
Future modifications in one place may or may not be appropriate to other places. The editor must decide whether to change one or all places&lt;br /&gt;
&lt;br /&gt;
===Highlighting information in wiki===&lt;br /&gt;
&lt;br /&gt;
To highlight particular instructions or info in wiki do NOT invent new styles which are not the way the rest of wiki is done. Instead, follow the USUAL STYLE or open a DISCUSSION with any recommendations you have BEFORE USING THEM.&lt;br /&gt;
&lt;br /&gt;
Instead of using various kinds of highlighting styles like bolding and words like &amp;quot;Note:&amp;quot;, use the following words IN CAPITALS especially the word MUST.&lt;br /&gt;
&lt;br /&gt;
The use of the following words IN CAPITALS indicates that you are using them in a special way with formally defined meaning as explained below. Use of the words in lower case indicates that you are using the word in an ordinary commonsense meaning.&lt;br /&gt;
&lt;br /&gt;
*MAY - means optional&lt;br /&gt;
*SHOULD - means recommended and you need GOOD reason (not just any weak excuse) to not follow to follow this recommendation&lt;br /&gt;
*MUST - mandatory&lt;br /&gt;
&lt;br /&gt;
Only in the rare cases where the consequences of doing or not doing something are irreversible or take a lot of work to reverse then you can use your own additional highlighting methods, eg ALL CAPS, stars, color red etc.&lt;br /&gt;
&lt;br /&gt;
====Explain WHY====&lt;br /&gt;
&lt;br /&gt;
Any sentence which uses the word &amp;quot;MUST&amp;quot; in capitals, MUST be followed by a SPECIFIC REASON explaining exactly why is the instruction is mandatory; the reason MUST not be vague and non-specific meaning no more than &amp;quot;or bad things will happen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules otherwise it will cause problems in future.&lt;br /&gt;
&lt;br /&gt;
 CORRECT way: You MUST also delete ads if deleting schedules otherwise the deleted schedules&#039; ads will still show in all media-diary like reports and screens&lt;br /&gt;
&lt;br /&gt;
The Wrong way above gives a general reason &amp;quot;it will cause problems in future&amp;quot; which is vague and a reader may even go ahead and ignore &amp;quot;MUST&amp;quot; because there is no objective or proper side effect mentioned for not following the MUST statement. Basically he doesn&#039;t understand the point behind following a certain rule. &lt;br /&gt;
&lt;br /&gt;
Whereas the Correct way gives a SPECIFIC reason for &amp;quot;deleting ads while deleting schedules&amp;quot;, so reader will exactly know the trouble that will be caused if ads are not deleted. Therefore &amp;quot;SPECIFIC REASON&amp;quot; behind using the word MUST must be to the point and very informative.&lt;br /&gt;
&lt;br /&gt;
====Why explain WHY====&lt;br /&gt;
The information contained in the WHY phrase is often &#039;&#039;&#039;extremely informative&#039;&#039;&#039; to the reader about things that you may otherwise not have considered saying.&lt;br /&gt;
&lt;br /&gt;
The most valuable information is usually contained in the &amp;quot;WHY&amp;quot; of something. There is an apocryphal story of a company where managers could be fired if they gave instructions to their staff without providing explanation. In almost all cases it is better for the efficiency of a team of people that any instructions they follow contain the &amp;quot;WHY&amp;quot; of something. Only in few cases should staff be expected to follow instructions without being well or fully informed.&lt;br /&gt;
&lt;br /&gt;
==Email Retention Policy==&lt;br /&gt;
&lt;br /&gt;
===Generally===&lt;br /&gt;
&lt;br /&gt;
Emails are retained permanently to allow old issues to be discovered in email searches.&lt;br /&gt;
&lt;br /&gt;
===Account: backups@neosys.com===&lt;br /&gt;
&lt;br /&gt;
Only the last 365 days of emails to backups@neosys.com are kept in general to reduce the burden on servers and clients due to the heavy number of emails.&lt;br /&gt;
&lt;br /&gt;
For the backups/neosys folder, only 31 days is kept due to the very high numbers of emails ~250/day.&lt;br /&gt;
&lt;br /&gt;
Deletions are configured in and done by a thunderbird client in NEOSYS IT so may not be continuous.&lt;br /&gt;
&lt;br /&gt;
==Use of personal email addresses by NEOSYS support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff MUST NOT use any personal email addresses for NEOSYS business. &lt;br /&gt;
&lt;br /&gt;
The xxxx.neosys@gmail.com addresses that are created by support staff for themselves on joining are also considered personal email addresses and must not be used for NEOSYS business. These email addresses might be linked to NEOSYS wiki accounts but that doesn&#039;t matter because wiki is not confidential.&lt;br /&gt;
&lt;br /&gt;
==Accessing NEOSYS accounts on personal devices==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff MUST NOT install NEOSYS accounts on skype/dropbox/gmail (or any other external tool) on their personal devices without written permission from NEOSYS management&lt;br /&gt;
&lt;br /&gt;
==Support Staff work-in-progress documents/files==&lt;br /&gt;
&lt;br /&gt;
Support Staff must not save working files hidden on their computer. Work that is not visible is not work .&lt;br /&gt;
Support work should not be done privately and should be shared to all.&lt;br /&gt;
&lt;br /&gt;
ALL personal working files however trivial MUST be stored in Dropbox and MUST NOT be stored anywhere in personal computer (My Documents/Desktop etc.)&lt;br /&gt;
&lt;br /&gt;
The personal encrypted pass file MUST be stored somewhere in personal folder under SB NEOSYS staff in Dropbox. This is because if there is a loss of OS/Computer, it should not lead to loss of access as all the passwords saved in the file will be lost.&lt;br /&gt;
&lt;br /&gt;
==Handling CLIENT/NEOSYS Servers==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff must exercise extreme caution when working on CLIENT and NEOSYS servers. Do not risk making changes without due care and attention to the fact that the consequences of errors can be serious on working production servers.&lt;br /&gt;
&lt;br /&gt;
===Handling Javascript Files in NEOSYS===&lt;br /&gt;
&lt;br /&gt;
All the files in NEOSYS installation folder with .JS and .JSE extension are the executable javascript files which startup NEOSYS processes (in a usual DOS window). Their default program is &#039;Microsoft Windows Based Script Host&#039; (wscript.exe). If a JavaScript file is opened using a notepad, the default program may change to notepad resulting in all NEOSYS processes to open up in a notepad.&lt;br /&gt;
&lt;br /&gt;
Hence be very CAREFUL when accessing a .JS and .JSE file and double check that the default program remains wscript.exe. Refer to [[Troubleshooting_NEOSYS_Generally#Fixing_wrong_default_program_assigned_to_open_a_file_type|Fixing wrong default program assigned to open a file type]] in case this issue comes up.&lt;br /&gt;
&lt;br /&gt;
==Handling &amp;quot;List of Open Ports&amp;quot; reports==&lt;br /&gt;
&lt;br /&gt;
This email comes to NEOSYS support team once a day showing only those client&#039;s servers which appear to have changed what TCP ports are open to the internet since yesterday. It will also come once a week showing all clients servers open ports.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support team should work patiently with client IT staff, over time if necessary, to close all ports that are not absolutely mandatory to be open.&lt;br /&gt;
&lt;br /&gt;
Clients with highly skilled IT staff may have a variety of ports open to various non-NEOSYS servers inside their organisation. In this case, NEOSYS plays little or no role other than getting their confirmation of exactly what ports are acceptable. Any new ports that appear over time should be handled in the same way.&lt;br /&gt;
&lt;br /&gt;
For clients without such staff, NEOSYS is their only real line of defence and since NEOSYS requested opening some ports, we should get all other ports closed by patiently following up until action is taken. Involving management may be the only way to get IT to act.&lt;br /&gt;
&lt;br /&gt;
High end port numbers (e.g. 49667) may represent transient outbound connections from users. Therefore for such port numbers, support team should contact the client only if the port remains open on the following working day.&lt;br /&gt;
&lt;br /&gt;
In particular, port 80 and 443 controlling internal or external routers should be closed. It is NOT acceptable except in HIGH IT EXPERTISE environments that critical routers should be exposed to the internet and they MUST NOT be accessible from the internet because routers that do not have their software updated can be hacked using known defects. Even updated routers can be hacked. Making it easy for client IT staff to access the router configuration from outside is NOT a good enough excuse to break this rule. Professional IT does not allow access to critical routers from the internet.&lt;br /&gt;
&lt;br /&gt;
Likewise, any port 80 (unencrypted web access) and port 3389 (RDP remote desktop) open to the NEOSYS server MUST be closed otherwise logins can be monitored and there is no way to guarantee server security.&lt;br /&gt;
&lt;br /&gt;
Port 23 (Telnet) is an insecure port because it is unencrypted and should never be open for usage. This is standard practice and well known by any network professional. Since the port is unencrypted, attackers can listen in, watch for credentials, inject commands via man-in-the-middle attacks and ultimately perform Remote Code Executions (RCE).&lt;br /&gt;
&lt;br /&gt;
If a port is definitely required and properly approved to be open by client IT support, please let NEOSYS IT (SB) know and it will be put in the &amp;quot;Authorised&amp;quot; column so that ports in the &amp;quot;Questionable&amp;quot; column are all pending action.&lt;br /&gt;
&lt;br /&gt;
The report does not attempt to detect UDP ports since UDP ports can receive information from the internet without responding in any way so there is no way to detect them reliably.&lt;br /&gt;
&lt;br /&gt;
Green color shows ports that have opened since the last report run. Open ports can sometimes not be detected accurately so a port may appear to disappear in one report and reappear in the next report.&lt;br /&gt;
&lt;br /&gt;
===Why should HTTP port 80 not be open on my router?===&lt;br /&gt;
&lt;br /&gt;
It is not advisable to expose any HTTP server for any private service on your computer network or router because HTTP is unencrypted and this means that all information regarding that service, including passwords, can be observed by any malware on your LAN and internet connection. This information can then be used to install horrible software on your internal PCs.&lt;br /&gt;
&lt;br /&gt;
What to do?&lt;br /&gt;
&lt;br /&gt;
Use https for any internal services - and advisably on a non-standard port, not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
For example, NEOSYS service is exposed as HTTPS (not HTTP) usually on port 4430 - not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
Commercial hacking is getting really common with things like FIREBALL and CRYPTOLOCKER causing a lot of damage.&lt;br /&gt;
&lt;br /&gt;
It is advisable to take basic precautions pro-actively before any attack exposes weaknesses.&lt;br /&gt;
&lt;br /&gt;
==Handling Nagios Client Monitoring system==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff on duty MUST follow the procedures outlined below in case the Firefox &amp;quot;imoin&amp;quot; add-on shows critical or warning messages for any service. Failure to schedule appropriate downtime will lead to REDUNDANT EMAIL ALERTS from Nagios every hour.&lt;br /&gt;
&lt;br /&gt;
Any alert on the Firefox &amp;quot;imoin&amp;quot; add-on means that there is an issue that has not been attended to properly, and &amp;quot;attended to&amp;quot; does not always mean solved. Support staff MUST solve the problem immediately if possible.&lt;br /&gt;
&lt;br /&gt;
If it is not possible to solve the problem immediately, then downtime/acknowledge the service and add a comment on the Nagios alert, explaining the problem briefly. &lt;br /&gt;
&lt;br /&gt;
Support should check Nagios frequently during the day to look for any new alerts so that issues are fixed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
*Nagios is required to be checked first thing in the morning and any critical or warning messages need to be dealt with to resolve the same at the earliest.&lt;br /&gt;
*Some of the messages could be related to backup failures and the usual procedure as stated in Handling failure and warning messages on nightly backup alerts needs to be followed. In case the backup issue isn&#039;t resolved by 9:30 am, the Nagios service needs to be downtimed with an appropriate comment for a minimum of 2 hours and maximum until 1 am next day if the issue cannot be solved.&lt;br /&gt;
*In case of &amp;quot;Backup not changed&amp;quot; warning status which occurs if the client has not interchanged the USB before 12 noon on that day, no action is required from the support staff and a downtime with a comment like &amp;quot;Backup media not changed - Emailed client&amp;quot; needs to be scheduled until 1 am next day.&lt;br /&gt;
*In case any HTTPS, SSH, PING service or Host is down, immediate action is required and the relevant IT people at the client side needs to be contacted to get this resolved. A downtime of 2 hours with a comment like &amp;quot;Service/host down - Emailed client&amp;quot; is required to be scheduled with further intervals of 2 hours in case this is not resolved. Support staff shouldn&#039;t schedule downtime till 1 am next day, just to get rid of the alerts for the day. Proactive follow up with the client is required to get this resolved before the business day - more so, if there is a weekend ahead.&lt;br /&gt;
*In case the HTTPS, SSH, PING service or Host goes down during the day, a grace period of 10 minutes is given before the issue is reported to the client IT, in case there is any temporary internet connection issue at the client or along the internet route.&lt;br /&gt;
*In case the HTTPS, SSH PING service or Host is down for more than 1 day, client IT should acknowledge the problem and give NEOSYS support staff an approximate time frame before which the issue will be resolved. Set an appropriate downtime with a descriptive comment for such events.&lt;br /&gt;
*In case Host is down for more than 2 days and there is no progress with the fix from client IT, the client management should be notified about the seriousness of not having access to server and their acknowledgement is mandatory.&lt;br /&gt;
&lt;br /&gt;
==Handling lack of remote access to NEOSYS server located in client’s premises==&lt;br /&gt;
&lt;br /&gt;
If access to the NEOSYS server is lost then we must determine the root cause by: &lt;br /&gt;
&lt;br /&gt;
#Checking if the server is UP and running&lt;br /&gt;
#If yes, please check internet connectivity on the server&lt;br /&gt;
#If there is connectivity, please check the router for connectivity issues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
Please note that we have currently lost access to the NEOSYS server. The server seems to be down at the moment and it seems that &lt;br /&gt;
NEOSYS processes are not running on the server.&lt;br /&gt;
Kindly check if the server is UP and running. If yes, please check internet connectivity on the server.&lt;br /&gt;
Do keep us posted on the server status so we can test connectivity from our side as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==New Router (Port Forwarding)==&lt;br /&gt;
&lt;br /&gt;
If you have changed your router then you may notice that external access to NEOSYS is unavailable. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to the NEOSYS Server as follows: &lt;br /&gt;
&lt;br /&gt;
#Port 19580 &amp;gt; 19580 for SSH&lt;br /&gt;
#Port 4430 &amp;gt; 4430 for HTTPS&lt;br /&gt;
&lt;br /&gt;
You can see [http://portforward.com/ Set Up Port Forwarding] to learn how to configure your Router.&lt;br /&gt;
&lt;br /&gt;
To see how to test/ troubleshoot port forwarding settings, go to [[Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding|Troubleshooting Port Forwarding]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
You are requested to kindly setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to &lt;br /&gt;
the NEOSYS Server,i.e.  port 19580 for SSH and port 4430 for HTTPS.&lt;br /&gt;
&lt;br /&gt;
Once this is complete, kindly send me an email to confirm the same so that we could test connectivity from our end as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Creating and Handling passwords==&lt;br /&gt;
===Creating a password===&lt;br /&gt;
Passwords are generated from a pass phrase and it is important to create a very difficult to guess pass phrase.&lt;br /&gt;
&lt;br /&gt;
Passwords made out of a pass phrase MUST be at least 10 characters since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts.&lt;br /&gt;
&lt;br /&gt;
For example, a good pass phrase would be: &#039;&#039;&#039;Today is a good day and it is the best time to go for a holiday&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The password for this would be &#039;&#039;&#039;Tiagd&amp;amp;iitbt2g4ah&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The important instructions for the above are:&lt;br /&gt;
&lt;br /&gt;
#You have to take the first letter of each word and that makes your password (i.e. by using initials)&lt;br /&gt;
#Wherever any word starts with a capital, then you have to take first letter as a capital (eg. For Today you will take T)&lt;br /&gt;
#Replace &#039;&#039;&#039;and&#039;&#039;&#039; with &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;to&#039;&#039;&#039; with &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;for&#039;&#039;&#039; with &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Handling passwords===&lt;br /&gt;
&lt;br /&gt;
#Never send the actual password - always send the pass phrase&lt;br /&gt;
#Make sure that the password created out of the pass phrase is at least 10 characters long since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts&lt;br /&gt;
#Pass phrases are never to be sent by email, whatever the case maybe.&lt;br /&gt;
#Pass phrases can be sent by chat - however they have to be broken down in two parts and sent separately over two different messengers or if you are using Gtalk then use the &#039;off the record&#039; mode.&lt;br /&gt;
#Using SMS to send pass phrases is the best known way as of now.&lt;br /&gt;
#If you save the passwords on your system in an file then:&lt;br /&gt;
#*Ensure that you only store pass phrases in the excel file&lt;br /&gt;
#*Ensure that the excel file is encrypted with a master password&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Maintenance Window==&lt;br /&gt;
&lt;br /&gt;
The NEOSYS server is functional from 6am – 1am. There is a 5hr window gap for the system to perform updates &amp;amp; backups.&lt;br /&gt;
&lt;br /&gt;
The 5hr maintenance window:-&lt;br /&gt;
&lt;br /&gt;
1. At 1am – The server performs a data backup on a USB (for the respective clients) &amp;amp; once the backup has been completed, the system automatically generates an email addressed to the neosys staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
2. At 2:45am – The main data over writes the test data on the server.&lt;br /&gt;
&lt;br /&gt;
3. At 3:00am – The server by itself performs an update for Windows.&lt;br /&gt;
&lt;br /&gt;
4. At 4:00am – The server performs a backup to the headquarters for clients, and then automatically generates an email addressed to the NEOSYS staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
5. At 6:00am – The server starts up NEOSYS.&lt;br /&gt;
&lt;br /&gt;
==Using NEOSYS Terminology while communicating with Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support must communicate in correct language to clients on finance issues in order to ensure that our records exactly represent reality. Conversely NEOSYS must not use other terminology because it can cause considerable confusion and poor quality results. In case client is new and still in training, use client terminology optionally as long as&lt;br /&gt;
&lt;br /&gt;
#It is only an addition to NEOSYS standard terminology&lt;br /&gt;
#Only if clear that it is client terminology by putting in brackets like this &amp;quot;Sales Invoices (called PI by you)&amp;quot;, where &amp;quot;you&amp;quot; means the client you are talking to or you can put the client company name instead perhaps.&lt;br /&gt;
&lt;br /&gt;
The objective is over time to avoid having the support team to have to know the terminology of the client. NEOSYS support team cannot possibly know and remember it for each client therefore the client MUST over time learn and use NEOSYS terminology. The initial period is one of relearning and translation for the client not for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
Many users operating NEOSYS finance module do not know proper financial procedures and may not appreciate how doing something in a wrong or unusual way now may not be correctable in the future.&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff must follow NEOSYS procedures only. If NEOSYS procedures need to be updated then this must be agreed in advance and not AFTER the fact.&lt;br /&gt;
&lt;br /&gt;
==Amending/Reposting Journal Entries==&lt;br /&gt;
In certain exceptional cases, amending/reposting of journal entries is allowed for only one day to enable clients to present reports in an alternative manner. &lt;br /&gt;
&lt;br /&gt;
It must be agreed with the client that reposting rights will be granted for only one day and NEOSYS Support will automatically remove it and check for CCB error thereafter.&lt;br /&gt;
&lt;br /&gt;
This would be subject to NEOSYS requiring a written LETTER OF APPROVAL duly signed and stamped by the highest management of the company.&lt;br /&gt;
&lt;br /&gt;
In case the client management decides to allow editing/reposting of journal entries, the following procedure is to be followed:&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;( While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Removal of unauthorized third-party software on client servers==&lt;br /&gt;
&lt;br /&gt;
Rule: Any third party software that is discovered by NEOSYS support staff on client servers that has been installed without the agreement of NEOSYS should be uninstalled immediately on discovery.&lt;br /&gt;
&lt;br /&gt;
However purposeful a software is, NEOSYS is contractually responsible for support and there are too many opportunities for poorly installed software to cause unpredictable damage to the NEOSYS database so NEOSYS has to have a clear and safe and simple policy to ensure the integrity of client data. Installing software without prior discussion with NEOSYS by itself indicates that insufficient care and consideration has been given to possible issues.&lt;br /&gt;
&lt;br /&gt;
Having unauthorized third party software on the server can possibly lead to a backup failure. For example, [[Backup_and_Restore#Error_Message:_.22LISTS_file_is_not_available.22|LISTS file not available]] error.&lt;br /&gt;
&lt;br /&gt;
Any software required by client IT for some purpose may only be installed after discussion and agreement from NEOSYS support staff concerning the configuration and operation of the software.&lt;br /&gt;
&lt;br /&gt;
The NEOSYS Software Licence and Support agreement requires that where NEOSYS software is installed on client servers that a dedicated server is provided and dedicated implies that no other software may be installed without the agreement of NEOSYS support.&lt;br /&gt;
&lt;br /&gt;
==Configuring tunnelier to autologin on opening tlp files==&lt;br /&gt;
If you have many tunnelier tlp files in a directory and connect by opening the desired tlp file the, instead of opening the file and then clicking Login you can also right click the file and select Connect.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can configure tunnelier to login (connect) automatically by following the procedure mentioned below. (Even if you configure automatic login, you can still open and not login by right clicking and choosing Open)&lt;br /&gt;
&lt;br /&gt;
===Windows 8===&lt;br /&gt;
&lt;br /&gt;
Cannot be done using standard Windows UI. Some download utilities can do it. TODO put a safe one in neosys.com/support&lt;br /&gt;
&lt;br /&gt;
===Windows XP/Vista/7/2008===&lt;br /&gt;
&lt;br /&gt;
#Go to My Computer&lt;br /&gt;
#Click on Tools -&amp;gt; Folder Options &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on File Types&lt;br /&gt;
#*Select TLP (Bitvise Tunnelier Profile) [Type &amp;quot;TLP&amp;quot; to find it quickly]&lt;br /&gt;
#*Click on Advanced &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-2.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Connect and Click on Set Default &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; [[image:tunnauto-3.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==International v/s Indian English==&lt;br /&gt;
&lt;br /&gt;
There are some words which have completely different meanings in International and Indian English. NEOSYS Staff should follow International English only. Below are the examples of few of those words:&lt;br /&gt;
&lt;br /&gt;
Word: &#039;&#039;&#039;Doubt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the English language word &amp;quot;doubt&amp;quot; means to distrust an alleged fact on the basis of a reason, depending on the strength of the reason which may be anything from factual to feeling e.g &amp;quot;I have no reason to doubt him&amp;quot;.&lt;br /&gt;
This usage is followed worldwide.&lt;br /&gt;
&lt;br /&gt;
Some people especially from Indian origin use &amp;quot;doubt&amp;quot; when they are unaware about a fact. e.g &amp;quot;I want to clear my doubts about this procedure&amp;quot;. This is incorrect. The word must be used when you do not agree on something on the basis of a reason and not when you do not have knowledge about it.&lt;br /&gt;
&lt;br /&gt;
==[[ New Employee Training Checklist]]==&lt;br /&gt;
&lt;br /&gt;
==[[ New Client Training Notes]]==&lt;br /&gt;
&lt;br /&gt;
==[[ General Office Procedures]]==&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3861</id>
		<title>Procedures</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3861"/>
		<updated>2021-08-18T13:35:37Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Handling Requests that require Approval from Higher Authority */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are procedures to be followed by Support Staff in respect to various technical matters in day to day operations of client issues.&lt;br /&gt;
&lt;br /&gt;
Once Support Staff have learnt how to follow these procedures &amp;amp; rules, you then start learning when and how to not follow them. Common sense trumps all rules! i.e. don&#039;t follow procedures and rules blindly all the time. Analyse the problem and solve it practically.&lt;br /&gt;
&lt;br /&gt;
BUT if you are doing something off-piste deliberately, then just add an appropriate comment about why you are.&lt;br /&gt;
&lt;br /&gt;
==Handling Clients with Overdue Invoice==&lt;br /&gt;
In order to maintain good payment speed by clients NEOSYS needs to restrict support to clients that dont pay their bills on time, however the degree of restriction needs to depend on an intimate knowledge of the client which cannot be expected from all NEOSYS support staff. Therefore we will use a simple escalation policy as follows:&lt;br /&gt;
&lt;br /&gt;
===Overdue Support List===&lt;br /&gt;
NEOSYS SUPPORT MANAGERS WILL maintain an overdue list on a whiteboard visible to all support staff. Generally, clients will go on the list immediately when their invoice is overdue and come off only after satisfactory commitment to pay have been obtained.&lt;br /&gt;
&lt;br /&gt;
The latest overdue list email MUST always be starred until there are no clients left on the overdue list (apart from the permanently overdue clients). When a client is added to the overdue list, support must set up a filter to move client support emails to the overdue folder. When a client is removed from the overdue list, client emails must be moved back into the support inbox. This way support team will know that there are still clients on the overdue list and will not mistakenly provide support to those clients.&lt;br /&gt;
&lt;br /&gt;
[[image:FilterOverdue.jpg]]&lt;br /&gt;
&lt;br /&gt;
For the first week of each quarter of the year, normal support should be provided for server failures and backup failures (including hung processes as it could eventually lead to backup failures).&lt;br /&gt;
&lt;br /&gt;
For any other support requests from overdue clients, respond with the following letter (where XYZ is the overdue client):&lt;br /&gt;
&lt;br /&gt;
 Dear &amp;lt;user&amp;gt;,&lt;br /&gt;
 There is an issue with your company&#039;s account. We have requested our Accounts team for approval in order to provide support to you and other &amp;lt;XYZ&amp;gt; users.&lt;br /&gt;
&lt;br /&gt;
Support staff MUST then provide the required support to the overdue client only after 4 working hours. Support Staff need not actually contact the Accounts team for approval, although that is what is mentioned in the letter. This delay in support is to encourage clients to settle their payments on time.&lt;br /&gt;
&lt;br /&gt;
After the first week of each quarter of the year, respond to any support requests from overdue clients with the above letter but MUST NOT PROVIDE SUPPORT even after 4 working hours. Instead, Support Staff must refer the support request to NEOSYS Support Manager.&lt;br /&gt;
&lt;br /&gt;
Managers may well instruct support to provide support on a case by case basis even if clients are on the overdue list. Being on the overdue list does not necessarily indicate a major issue with accounts.&lt;br /&gt;
&lt;br /&gt;
If the client provides proof of payment (e.g. cheque deposit slip), then carefully check all the details as mentioned in [https://userwiki.neosys.com/index.php/Sales_FAQ#When_can_NEOSYS_support_staff_start_installation_of_NEOSYS When can NEOSYS support staff start installation of NEOSYS], before getting approval from NEOSYS management to remove the client from the overdue list. &lt;br /&gt;
&lt;br /&gt;
===Handling complaints about Licence restrictions===&lt;br /&gt;
&lt;br /&gt;
Sometimes when a client delays payment of NEOSYS invoice, support places a licence restriction for the client. In such cases, users will not be able to create and save documents dated outside the licence period. Due to this sudden restriction, clients may raise complaints about the restriction placed.&lt;br /&gt;
&lt;br /&gt;
Support MUST simply inform them that licence restrictions are a default procedure followed by NEOSYS and is applied to all clients, so that the client will in future avoid delaying the payment.&lt;br /&gt;
&lt;br /&gt;
===Handling complaints about emails from NEOSYS Accounts Department===&lt;br /&gt;
&lt;br /&gt;
If a client calls Support team to complain about emails from NEOSYS accounts department (e.g. invoice payment reminder), then immediately make them realise that they are wasting their time talking to support because support is not involved in client invoices and reminders procedure.&lt;br /&gt;
&lt;br /&gt;
Any complaints or concerns they have MUST only be sent in reply to the email they received.&lt;br /&gt;
&lt;br /&gt;
==Handling Frozen NEOSYS Installations and Databases==&lt;br /&gt;
&lt;br /&gt;
Some clients retain fully operational NEOSYS installations or just particular databases even after they stop using them for some reason, either because they move to some other software, or because they terminate an operational division, or other reasons, and this can either be on NEOSYS or their own servers.&lt;br /&gt;
&lt;br /&gt;
In this case, various NEOSYS upgrade and maintenance processes may be suspended, downgraded or completely skipped especially if instant access to the server is no longer available. This does not mean that it should never be done, and pros and cons need to be assessed and documented in support emails on a case by case basis.&lt;br /&gt;
&lt;br /&gt;
*Upgrading NEOSYS version&lt;br /&gt;
*Upgrading/standardising NEOSYS database configuration and other files for consistency, security or other issues&lt;br /&gt;
*Patching Windows/IIS configuration for consistency, security or other issues&lt;br /&gt;
&lt;br /&gt;
==Handling Links and Email Attachments==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DO NOT TRUST ANY LINK OR ATTACHMENT IN ANY EMAIL EVEN FROM HIGHLY TRUSTED PEOPLE OR ORGANISATIONS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These days you can no longer trust links or attachments in emails from anybody - even emails from highly trusted people like your bank.&lt;br /&gt;
&lt;br /&gt;
If a personal computer or intermediate email server is hacked then even genuine emails sent out from it can be infected and modified in a hidden way that can result in the recipient being infected if they click or open anything in the email.&lt;br /&gt;
&lt;br /&gt;
Therefore you should know and understand how to avoid, as far as possible, getting tricked and infected via emails.&lt;br /&gt;
&lt;br /&gt;
Malware authors generally rely on the fact that most people devote no time at all to security precautions so a moderate cautious approach, slowing down a little to spending some time on security, even where it is apparently not required, is enough to defeat most attacks.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
&lt;br /&gt;
Do NOT click on links, especially in emails that you are not expecting, but also anywhere else that you see links, without taking various precautions. The links in an email, even from someone you know and trust, can LIE to you about what website they will open and they can lead you to websites that mere browsing can infect your computer and then others inside our network.&lt;br /&gt;
&lt;br /&gt;
WHAT LINK/WEBSITE WILL BE OPENED MAY NOT BE WHAT IT SAYS IN THE BODY OF YOUR EMAIL!&lt;br /&gt;
&lt;br /&gt;
Therefore, to use a link in any and all emails, first hover your cursor over it and check the status bar at the bottom of the screen where you can see exactly what website will be opened, or, to be more sure exactly what website you are opening DO NOT click links in emails at all. COPY/PASTE the link to your browser, AFTER following the below points.&lt;br /&gt;
&lt;br /&gt;
*Make sure you know and trust the website being opened.&lt;br /&gt;
*Carefully inspect the spelling of the domain name to avoid tricky look-alike fraudulent links eg hcsb.com instead of hsbc.com&lt;br /&gt;
*If you trust the sender but you do not personally know the website then get independent confirmation from the sender. Reply to the email so that the sender can check the link you received has not been tampered with.&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&lt;br /&gt;
Below is an example of a phishing email that you can easily tell is malware&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot1.png]]&lt;br /&gt;
&lt;br /&gt;
*You don&#039;t expect it because it says &amp;quot;before your sign up is complete&amp;quot; ... but you didn&#039;t just sign up.&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t mean that links in emails that you ARE expecting ARE safe to open. All the usual cautions apply to emails you DO expect.&lt;br /&gt;
&lt;br /&gt;
*Hover mouse over the button and check the link visually&lt;br /&gt;
&lt;br /&gt;
In the example above, the email is supposed to be from Dropbox, but hovering the mouse over the button shows the below link, which is obviously wrong:&lt;br /&gt;
&lt;br /&gt;
http://fxloraisdoxbraxsil.com.br/dropbox.html&lt;br /&gt;
&lt;br /&gt;
*Even if the link looks genuine e.g. something from a service that we use that we didn&#039;t expect, be careful for misspelt links that look like genuine links e.g. drobbox.com, which could trick you if you are sloppy.&lt;br /&gt;
&lt;br /&gt;
Never click on links in emails unless you are absolutely 100% sure that the email and link is genuine.&lt;br /&gt;
&lt;br /&gt;
Copy the link using right click copy link then paste into your browser if there is the slightest doubt.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&lt;br /&gt;
In the following case, hovering over the first two links seem to go to real UPS website, BUT this is NOT sufficient to be sure since slight misspellings and other tricks can lead you to a totally different website.&lt;br /&gt;
&lt;br /&gt;
However, hovering over the third &amp;quot;link&amp;quot; shows that clicking the apparent link would go to some website http://behappy.vn (Vietnam) so clearly this is a DECEPTION.&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example 3:&lt;br /&gt;
&lt;br /&gt;
In this case, an unknown organization behind the phishing attack is pretending to work for Leaseweb sales company and is sending emails from an email address similar to Leaseweb’s, and with Leaseweb’s footer. They claim that the original payment was declined and ask to wire or transfer money to a new account. These kind of emails are quite sophisticated and require you to be vigilant. &lt;br /&gt;
&lt;br /&gt;
Try to confirm the sender’s identity before replying to email requests and before opening attachments or clicking on links, even if they appear to come from a legitimate source. &lt;br /&gt;
&lt;br /&gt;
Below is an example of a fraudulent email request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your payment has been declined!&lt;br /&gt;
Your invoice (100421) with Office 365 Service is due.&lt;br /&gt;
To make a payment, please log in with your email address and password at&lt;br /&gt;
&lt;br /&gt;
https://leaseweb.com/payment/100421&lt;br /&gt;
Once logged in please click select the Make a Payment icon in the Billing Tab. You may complete payment by Credit Card or Paypal on this page.&lt;br /&gt;
&lt;br /&gt;
Once paid no further action is needed and your account will remain active.&lt;br /&gt;
We thank you for your continued business and assistance in helping us to get this resolved.&lt;br /&gt;
Feel free to contact us if you have any questions, comments, or concerns.&lt;br /&gt;
&lt;br /&gt;
Regards; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Attachments===&lt;br /&gt;
&lt;br /&gt;
Please follow these rules strictly:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment that you did not expect.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  be curious to see what is in an attachment.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;*NEVER*  open an attachment if there is some other way for the info to be sent e.g. Screenshot of document.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the rules above are followed then:&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you have requested it and if sender is unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
*You can open an attachment if you get a good explanation of it contents from sender and they are unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
It is okay to save an attached eml file and open it with GEDIT as text, as it will not trigger any virus.&lt;br /&gt;
&lt;br /&gt;
This does NOT mean that you can open attached files freely. As per the procedures above, you should NOT open any unknown or unexpected attachments without CONSIDERABLE thought.&lt;br /&gt;
&lt;br /&gt;
But saving and then opening files with GEDIT to get an idea of their contents even if the view is mangled is okay. Although, there is little point in opening files like ZIP in gedit.&lt;br /&gt;
&lt;br /&gt;
There is no way to determine if an attachment, even from someone you know, has not been infected and is therefore, dangerous.&lt;br /&gt;
&lt;br /&gt;
The only protection is to rely on anti-virus/anti-malware e-mail filters and staff vigilance!&lt;br /&gt;
&lt;br /&gt;
You can check the names and file types/extensions of attached files to spot any obviously strange or unexpected attachments, but this is not very effective. The filename of an attachment could be spoofed. An attacker could potentially exploit this by tricking the user in to opening an attachment of a different type to the one expected.&lt;br /&gt;
&lt;br /&gt;
Attachments ending in .jar or any other unusual extensions shouldn’t be opened without SB&#039;s permission.&lt;br /&gt;
&lt;br /&gt;
If there are a lot of attached files, don&#039;t assume they are all safe, make sure you asked for each of them.&lt;br /&gt;
&lt;br /&gt;
==Handling emails from unknown email addresses==&lt;br /&gt;
&lt;br /&gt;
Any sort of contact from an unknown email address must be ignored entirely, i.e. no response whatsoever from Support, as these emails could be from a fraudulent source. If the email is genuine, then the sender can surely contact their managers.&lt;br /&gt;
&lt;br /&gt;
Support should keep in mind that hackers can send emails that look genuine, aiming to get private/confidential information and so should always stay alert when dealing with such emails.&lt;br /&gt;
&lt;br /&gt;
==Handling junk/spam email==&lt;br /&gt;
&lt;br /&gt;
In order to get better automatic spam email filtering please mark as many obviously spam emails as Junk, instead of just deleting them. Marking them will delete them so it takes not much longer to do.&lt;br /&gt;
&lt;br /&gt;
*DO NOT delete emails from Junk or Spam folder because they are used to identify future junk and spam emails.&lt;br /&gt;
*Any email identified as junk should be marked as Junk so that they automatically go into the Junk folder. The spam filter in the mail server will use these emails in the Junk folder to decide what is moved into the spam folder.&lt;br /&gt;
*You MUST ensure that all clearly junk/spam emails are marked as Junk/Spam in ALL email inboxes. In other words they MUST be moved to Junk/Spam folders and not left in our inboxes or other main folders.&lt;br /&gt;
*Any emails which are not clearly junk/spam emails or are similar to genuine emails, but you know are spam/junk MUST be deleted i.e. NOT left in inbox NOR moved to Junk/Spam folders.&lt;br /&gt;
&lt;br /&gt;
Failing the above we will have the following problems:&lt;br /&gt;
&lt;br /&gt;
*Real emails disappearing into junk/spam folders by our email server.&lt;br /&gt;
*More junk/spam emails appearing in our inboxes than necessary.&lt;br /&gt;
&lt;br /&gt;
The Junk email folder contains emails that have been manually marked as spam/junk whereas the &amp;quot;spam&amp;quot; email folder contains emails that have automatically been filtered out by the email server.&lt;br /&gt;
&lt;br /&gt;
==Avoid burdening email servers with excessive graphics==&lt;br /&gt;
&lt;br /&gt;
Support MUST install the &amp;quot;Auto Resize Image&amp;quot; addon in Thunderbird to reduce the size of images in emails resulting in a significant reduction in email size. See [[Configuring_Thunderbird#Configure_Auto_Resize_Image| setting up auto resize image]] for details.&lt;br /&gt;
&lt;br /&gt;
It reduces the burden on NEOSYS and NEOSYS client&#039;s email servers. This is especially important on long conversations about subjects that include many screenshots, since for just a simple one line reply, the email can consume many MB of space. It massively wastes the email server space and makes backups massive and generally a total waste of resources and time.&lt;br /&gt;
&lt;br /&gt;
To be able to refer back to graphics in previous emails, add the SIZE column to your email program so that you can locate large emails with graphics rapidly without searching back one by one.&lt;br /&gt;
&lt;br /&gt;
==Client Communication Policies==&lt;br /&gt;
===Client Meeting Report Policy===&lt;br /&gt;
&lt;br /&gt;
After every Client meeting online or otherwise Support MUST send a Follow-Up email to the Client which is open and fully informative and not brief, stating the events during the meet and any action required by either or both parties. The email to the client must not shrink from discussing contentious issues due to a false sense of politeness or timidity to address issues face on. Obviously one should not be rude but it is not rude to address issues openly.(cc Client managers and NEOSYS Managers)&lt;br /&gt;
&lt;br /&gt;
The follow-up email MUST be sent within 24 hours of completion of the meeting so that the points discussed during the meeting are fresh in all the meeting participants&#039; minds. This means that reports for meetings on the day before the weekend MUST be sent on the SAME day.&lt;br /&gt;
&lt;br /&gt;
In addition to above email if there is some information that needs to be shared internally and cannot be said in public to the client then send a Client Meeting report to Support.&lt;br /&gt;
&lt;br /&gt;
Support must also update the Client Contact Record file in Google Drive immediately after sending out the follow-up email.&lt;br /&gt;
&lt;br /&gt;
===Follow Up of Support Issues===&lt;br /&gt;
&lt;br /&gt;
All voice/chat communication MUST also be followed up with an email confirming at least the gist of the communication to keep the whole support team updated on the issue.&lt;br /&gt;
&lt;br /&gt;
If not possible to contact for any reason, then an email MUST be sent stating so and suggesting or requesting a time to connect.&lt;br /&gt;
&lt;br /&gt;
cc Client managers (and/or BCC NEOSYS Managers) MAY be done if thought to be useful and/or appropriate.&lt;br /&gt;
&lt;br /&gt;
===Handling Contentious Emails from Clients===&lt;br /&gt;
&lt;br /&gt;
If emails requesting support become contentious, then voice, phone call or chat is REQUIRED to save time. However, client support via phone call should be done only on local or low-cost calls. High-cost international calls should not be used except in extreme circumstances.&lt;br /&gt;
&lt;br /&gt;
If clients become deliberately combative or uncooperative then Support team is supposed to kick back a little but still emphasise the point. Perhaps it could be done better with a little ironic humour or a smiley. Avoid using !! while responding to contentious emails.&lt;br /&gt;
&lt;br /&gt;
===Apologising to clients for issues===&lt;br /&gt;
&lt;br /&gt;
We only need to apologise for major issues that are a) definitely our fault and b) we wish to indicate that there is some general issue in NEOSYS procedures and that we are dealing with it. &lt;br /&gt;
&lt;br /&gt;
We do not want to invite bullying by some clients by seeming to lack confidence in our ability.&lt;br /&gt;
&lt;br /&gt;
An explanation of the cause and possibly FP is of more value to the client, since an apology doesn’t really make any difference.&lt;br /&gt;
&lt;br /&gt;
===Discussing Pricing=== &lt;br /&gt;
All discussions about pricing must be done only in Sales inbox. If clients bring up pricing discussion in support emails, NEOSYS staff must respond to the client by starting a new thread in the Sales Inbox.&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Support Response Time Policy==&lt;br /&gt;
&lt;br /&gt;
NEOSYS contracts, in the few cases where we have a written contract with the client, specifies that maximum response time is one business day generally and one business hour for complete stoppages of the system. Obviously we have to do far better than this in practice.&lt;br /&gt;
&lt;br /&gt;
Support staff must inform clients of the progress of the issue if it is not resolved the same day but only if they contact at least 1 hour before office closing.&lt;br /&gt;
&lt;br /&gt;
Deciding to wait on issues is fine (also refer to:  [[Procedures#Handling_users_who_do_not_act_upon_standard_messages|Response to standard messages]]), but support MUST at least spend up to 5 minutes on issues to see if they can be handled quickly. Support MUST respond quickly to issues that can be handled quickly, otherwise the client suffers unnecessarily.&lt;br /&gt;
&lt;br /&gt;
When an issue is fixed or a client request has been implemented in NEOSYS, Support must immediately let users know that the issue is fixed, so that clients can continue their work without any further delay. Quick and prompt responses from Support will gain the client&#039;s appreciation.&lt;br /&gt;
&lt;br /&gt;
For routine requests for service where there is a reasonable expectation of delay by the client then no need to send rapid reply.&lt;br /&gt;
&lt;br /&gt;
==Default Browser for support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS supports and develops for Firefox primarily but other browsers such as Chrome and Edge MUST also be tested working fine. Support team currently uses Firefox for all work related tasks in Ubuntu which includes testing, wiki work etc.&lt;br /&gt;
&lt;br /&gt;
Also refer to [http://itwiki.neosys.com/index.php/Setting_up_Ubuntu_on_NEOSYS_Support_Computers#Mozilla_Firefox Setting up Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
==Handling errors discovered by support staff==&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
==Handling browser script errors==&lt;br /&gt;
&lt;br /&gt;
If a script error is faced, support should take a full screenshot of the script error including the script name, line number, etc.&lt;br /&gt;
&lt;br /&gt;
Include every detail available regarding the script error and also the steps to replicate it and escalate this to the programmer.&lt;br /&gt;
&lt;br /&gt;
Chrome JavaScript Error Notifier extension shows all the details available in the initial script error message itself. In Internet Explorer, you will have to click &#039;Yes&#039; on the script error message to get all the details.&lt;br /&gt;
&lt;br /&gt;
==Various checks done by Support to investigate errors==&lt;br /&gt;
&lt;br /&gt;
A list of logs/reports that Support must look at, depending on the situation, to solve issues or investigate errors.&lt;br /&gt;
&lt;br /&gt;
#Support inbox emails: Check old emails in Thunderbird. This is the quickest way to handle issues/errors that were handled recently.&lt;br /&gt;
#Logs/reports available in NEOSYS Menu&lt;br /&gt;
#*Request Log (Support -&amp;gt; RequestLog) - These logs can be checked to see what request were made and by which users etc., not as detailed as the xml logs mentioned under &amp;quot;Logs found on the server&amp;quot;.&lt;br /&gt;
#*NEOSYS logs (Support -&amp;gt; Log) - Log of alerts sent out via email, e.g. backup email, login failure, etc.&lt;br /&gt;
#*What&#039;s New report (Help -&amp;gt; What&#039;s new in NEOSYS) - Contains a list of all the features added in NEOSYS&lt;br /&gt;
#*List of Database processes (Support -&amp;gt; List of Database Processes) - Status of processes windows running on the server.&lt;br /&gt;
#*List of documents in use (Support -&amp;gt; List of Documents in Use) - Currently used documents.&lt;br /&gt;
#*User details page (Help -&amp;gt; User Details) - To check logins and IPs and password reset details.&lt;br /&gt;
#*Version logs of files - The history of edits made to files in NEOSYS. This is available at the bottom of files in NEOSYS (e.g. Schedule file, Voucher file, etc.)&lt;br /&gt;
#*Usage Statistics (Support -&amp;gt; Usage Statistics) - Shows no. of requests made per user, per department, per database, per hour etc.&lt;br /&gt;
#Logs found on the server:&lt;br /&gt;
#*Xml logs - These logs can be checked to see what request were made and by which users etc. in detail.&lt;br /&gt;
#*Process logs (.LOG files) - These log files contain entries showing start of database backup, and process startup logs.&lt;br /&gt;
#*Process windows - Check process windows on the server for error messages or anything unusual, e.g. hung processes.&lt;br /&gt;
#*Procexp (Process Explorer)- Used to check ntvdm processes running for specific installations (useful on servers with multiple installations).&lt;br /&gt;
#*System logs (Event viewer) - Used to check for unusual system events, eg: unexpected shutdown.&lt;br /&gt;
#*Task manager - Checked to monitor CPU usage, NTVDM running etc.&lt;br /&gt;
#NAGIOS - Monitors the status of all hosts and services.&lt;br /&gt;
&lt;br /&gt;
==Handling Cheques from Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff are not to accept deliveries from clients that might be cheques without prior instructions to accept the same. They can ask courier to wait a few minutes until NEOSYS accounts or management agrees but they may not be immediately available and probably will not agree anyway. If accounts or management is not immediate available, then cheque MUST not in any circumstances be accepted, otherwise client can cause problems in our accounts and we waste time visiting the bank to deposit.&lt;br /&gt;
&lt;br /&gt;
NEOSYS payment terms do not accept cheques although clients are free to deposit cheques by themselves.&lt;br /&gt;
&lt;br /&gt;
==Client Password Policy==&lt;br /&gt;
All client user passwords, including their initial one, are to be obtained via the user&#039;s email address using the password reminder/reset button on the login screen. [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#What_is_NEOSYS_password_policy.3F (NEOSYS password policy)]&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff should never know users passwords therefore NEOSYS will not obtain and grant user passwords. The reason for this is that in the event that users lose their passwords to other people who then login unauthorised then suspicion could fall on the NEOSYS staff who know their password. &lt;br /&gt;
&lt;br /&gt;
All parties concerned, including client management, client users and NEOSYS support staff, benefit greatly from trusting that if something in a NEOSYS database is registered as having been done by a particular user then it was not in fact somehow done by NEOSYS support staff. Nothing should be done that would break such fundamental trust. To achieve this, NEOSYS support staff must never log in as particular users, never ask for users passwords and generally enforce the idea that all work logged as being done by users IS done by users.&lt;br /&gt;
&lt;br /&gt;
Very limited amounts of work by NEOSYS support staff either in person or remotely using teamviewer is acceptable while a user is logged as long as the user login was performed by the user themselves, the user is present and the user specifically agrees with the work being done.&lt;br /&gt;
&lt;br /&gt;
===Support requests from ordinary client users===&lt;br /&gt;
Any support requests concerning inability to obtain passwords will be forwarded to known skilled users on the client staff since this is the most efficient (not fastest) way to handle such issues.&lt;br /&gt;
&lt;br /&gt;
===Support requests from senior client management===&lt;br /&gt;
Any support requests concerning inability to obtain passwords by senior client management users shall be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bearing in mind that NEOSYS staff should never know user&#039;s passwords this will probably involve NEOSYS staff using the Password Reminder/Reset button to send a new password to the user.&lt;br /&gt;
&lt;br /&gt;
===User Defined Passwords===&lt;br /&gt;
NEOSYS will provide user defined passwords in very special cases which must be pre-approved case by case by NEOSYS management. NEOSYS will not approve this due to the reasons mentioned [[Procedures#Client_Password_Policy|here]].&lt;br /&gt;
&lt;br /&gt;
If the user login gets blocked due to multiple login failures and the user requests support team to reset the password to the user defined password again, support MUST delay the response to this request by at least 1 hour in order to force the user to be more careful when typing the password.&lt;br /&gt;
&lt;br /&gt;
Currently permission for user defined password has only been granted to one NEOSYS client with several hundreds of databases.&lt;br /&gt;
&lt;br /&gt;
==Handling client issues and requests==&lt;br /&gt;
&lt;br /&gt;
All support issues must be dealt with through phone/email/chat. Support Staff can schedule client visits for User Training but should not schedule client visits solely for providing support for petty issues.&lt;br /&gt;
&lt;br /&gt;
ALL Support staff should check all the previous day&#039;s inbound emails for reply flags once in the morning. All Support staff will therefore be held responsible for any unreplied inbound email.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT waste time and delay support by investigating issues WITHOUT SUFFICIENT INFORMATION.&lt;br /&gt;
&lt;br /&gt;
Support must NOT get involved in any discussion about any document that is not directly out of NEOSYS, so that Support is able to reproduce it from NEOSYS screenshots of screen options that the client used.&lt;br /&gt;
&lt;br /&gt;
Support should look for similar issues when solving a particular problem to avoid similar issues in future. This saves the time and energy of Support as well as the Client.&lt;br /&gt;
&lt;br /&gt;
When sending screenshots to clients, support team should economise on space by minimising to the minimum that will show the problem clearly. This is because not every user will be viewing their emails on large wide screens like NEOSYS support team. Browser windows reformat their contents to suit the width available so this is particularly effective in most NEOSYS screens.&lt;br /&gt;
&lt;br /&gt;
Support team MUST be cautious while sending screenshots so that no private/unnecessary information is sent to Client. If you cannot avoid taking the screenshot without unnecessary information then you should hide it in the screenshot.&lt;br /&gt;
&lt;br /&gt;
Support team MUST learn not to do silly support for people, because we have an OPEN SUPPORT policy, which some users WILL try to abuse based on either poor understanding or lack of respect. &lt;br /&gt;
Either way support MUST learn to deal with abuse of privileges as it will save a lot of time, which could be spent on more important issues.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
===Handling new emails in Support inbox===&lt;br /&gt;
Support MUST spend up to 5 minutes on new emails and send a quick reply to the client, to acknowledge the request or give a quick solution in case it is a petty issue or has a documented solution in wiki.&lt;br /&gt;
&lt;br /&gt;
Client issues/requests should be prioritized, interrupting existing work and not wait for one hour and be dealt with quickly.&lt;br /&gt;
&lt;br /&gt;
For routine service requests where there is a reasonable expectation of delay by the client, Support need not send a rapid reply but must keep the email starred in Support inbox to indicate that it is pending or being worked on.&lt;br /&gt;
&lt;br /&gt;
===Handling starred emails in Support inbox===&lt;br /&gt;
&lt;br /&gt;
When an email is received in Support inbox,&lt;br /&gt;
&lt;br /&gt;
*if the email can be replied to immediately, then mark it as read after you have replied to the email.&lt;br /&gt;
*if the issue cannot be resolved immediately, then the email MUST be starred so that support does not forget to work on it. Once the issue has been resolved, Support should send an email to Support inbox confirming that the issue is closed. Only then should the email be unstarred.&lt;br /&gt;
&lt;br /&gt;
No issue should be silently dropped without being fully resolved.&lt;br /&gt;
&lt;br /&gt;
===Handling client-sensitive information in emails===&lt;br /&gt;
&lt;br /&gt;
Support should avoid including information that could be sensitive to clients e.g. screenshots of reports that should only be viewed by client&#039;s upper management.&lt;br /&gt;
&lt;br /&gt;
This can be done simply by clever cropping of images or blurring out of information in cases where cropping is not possible. &lt;br /&gt;
&lt;br /&gt;
Support MUST not delay response to any client by wasting time blurring or cropping out information that is not sensitive to clients, e.g. blurring out the URL and tabs in browsers etc.&lt;br /&gt;
&lt;br /&gt;
===Handling client call back requests===&lt;br /&gt;
&lt;br /&gt;
Clients who ask us to call them should be given our phone number and asked to call us unless there is some GOOD reason why we should make the effort and pay phone charges.&lt;br /&gt;
&lt;br /&gt;
===Handling login failure issues===&lt;br /&gt;
&lt;br /&gt;
Users often get login failure issues due to typing wrong password and they simply won&#039;t read and act according to the error message they get. In this case, Support must send the below email to the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
If you have trouble resetting password, please ask for assistance from your manager/IT Manager/Timesheet Administrator/NEOSYS-expert colleague.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local support users (TA or IT manager etc) have the LS key using which they can see the User Details page of all users. They should check all the information (usercode, registered email id, last login attempts etc) in the User Details page to find out what is the issue.&lt;br /&gt;
&lt;br /&gt;
This procedure will reduce the endless mails sent back and forth to solve petty issues which could easily be solved by the client&#039;s local support.&lt;br /&gt;
&lt;br /&gt;
===Handling requests or demands for &amp;quot;URGENT&amp;quot; or &amp;quot;PRIORITY&amp;quot; support===&lt;br /&gt;
&lt;br /&gt;
Any request for prioritised action *without giving any reason for the prioritisation* should be disregarded and the request handled with normal priority. If a reason is given then you may at your discretion prioritise a response but there is no obligation to do so.&lt;br /&gt;
&lt;br /&gt;
===Handling users who login with other people&#039;s NEOSYS usercodes===&lt;br /&gt;
This can cause a lot of confusion in both the client and NEOSYS support. It may also indicate that the correct NEOSYS monthly licensing fee is not being paid. There is no valid reason for anonymous logins or sharing logins between multiple users.&lt;br /&gt;
&lt;br /&gt;
Therefore if NEOSYS support team get requests for support about using NEOSYS from users who are not registered properly in NEOSYS with an personally identifiable user code, name and email then the following email should be sent cc admin@neosys.com.&lt;br /&gt;
&lt;br /&gt;
No exception should be granted to clients without NEOSYS management approval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear NEOSYSUSER,&lt;br /&gt;
&lt;br /&gt;
Please note that in order to receive support from NEOSYS you must personally have an identifiable user code, name and email address registered&lt;br /&gt;
in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
We can create new user account for you with your management approval. This may or may not have an impact on the NEOSYS monthly licensing fee &lt;br /&gt;
depending on the agreement in force.&lt;br /&gt;
&lt;br /&gt;
Please let us know what you would like us to do.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling support requests from expired users===&lt;br /&gt;
&lt;br /&gt;
If expired users call for any reason including not being able to login, they must not be given any support. They should only be told that their account is expired without any reason being offered because employers sometimes do not want any information at all being passed to expired users.&lt;br /&gt;
&lt;br /&gt;
===Handling support request from senior management===&lt;br /&gt;
&lt;br /&gt;
Any support requests from senior client management users concerning report generations should be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bear in mind that NEOSYS staff should not agree or offer to do client work. Support staff can advise senior management to contact a skilled user to help them with basic NEOSYS reporting. Support staff can also send screenshots of step by step procedure on how to take reports. Depending on the situation and reasons provided by senior management, support staff can at their discretion provide reports but after informing them that this is an exception and no more reports will be sent out as this is against NEOSYS procedures.&lt;br /&gt;
&lt;br /&gt;
===Handling requests that involve updating NEOSYS configuration files===&lt;br /&gt;
&lt;br /&gt;
Changes to any configuration file in NEOSYS MUST be performed only by NEOSYS support, because even the slightest misconfiguration of the system may cause unrecoverable errors and NEOSYS is responsible for support.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with unrelated subject line===&lt;br /&gt;
At times, clients forward old emails, with new issues, resulting in completely unrelated subject line. In such situations, support MUST follow the below steps to ensure that unrelated emails do not appear in the same conversation group when viewing emails in conversation mode:&lt;br /&gt;
&lt;br /&gt;
#Right click the email -&amp;gt; HeaderToolsLite -&amp;gt; Edit full source&lt;br /&gt;
#Modify the text that appears after &amp;quot;Message-ID: &amp;lt;&amp;quot;. (e.g. replace the first few characters with &amp;quot;xxxxxxxxx&amp;quot;)&lt;br /&gt;
#Remove all texts that appear after &amp;quot;References:&amp;quot; and &amp;quot;In-Reply-To:&amp;quot; and click OK.&lt;br /&gt;
#Click Reply All on the modified email.&lt;br /&gt;
#Change the subject to a relevant one.&lt;br /&gt;
#Delete old unrelated content from the email body.&lt;br /&gt;
&lt;br /&gt;
In the email reply, include a comment like &amp;quot;PS Please don&#039;t forward old emails for new issues, start a new email with a new subject so that emails can be traced easily.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sometimes the client does not bother putting the correct subject line for new issues (e.g. blank subject, or &amp;quot;Error&amp;quot;). Then support should add a meaningful subject line in order to make the email easy to search for.&lt;br /&gt;
&lt;br /&gt;
===Handling emails with poor screenshots===&lt;br /&gt;
Sometimes Thunderbird shows full sized screenshots in a compact format that is not easy to read. These can be resized to make them more legible. To do this, make the email editable by hitting the &amp;quot;Reply&amp;quot; button, then click and drag to resize the screenshot as desired.&lt;br /&gt;
&lt;br /&gt;
If the screenshot sent by the user is genuinely small and hard to read, reply to the mail and request for a full size, clear screenshot.&lt;br /&gt;
&lt;br /&gt;
===Handling support-request emails sent to anywhere than support@neosys.com===&lt;br /&gt;
Client emails anywhere than support@neosys.com MUST be ignored. This is because ALL support must be recorded in support inbox without exception so that the whole support team is aware of the issue and action taken. If client complains about the delay in support then they can be told this is because they used the wrong email address.&lt;br /&gt;
&lt;br /&gt;
===Handling users who do not act upon standard messages===&lt;br /&gt;
When users do not bother to read and act on standard NEOSYS-generated messages and instead ask for help, Support staff MUST delay response time and thereafter send them an email which is the same as the message so they get the point that in future they should read the messages and handle issues themselves.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests to do Client work===&lt;br /&gt;
NEOSYS Support staff must not agree or offer to do work on behalf of the client. &lt;br /&gt;
&lt;br /&gt;
This is because doing client work while logged in as NEOSYS breaks security rules. Support uses the NEOSYS username which has unrestricted access, so when a user requests Support to do some work which they don’t have access to, and if Support agrees to do the work, the client has successfully defeated the security rules by accessing features that they are unauthorised to access.&lt;br /&gt;
&lt;br /&gt;
If a client makes a false claim about an issue in NEOSYS, i.e. if Support finds out that there is no real issue, then direct the client in the right direction so that they find out their mistake by themselves. Support MUST NOT show/explain the problem to them in detail, since you are just doing their work for them by explaining the problem and this will encourage the client to contact support for every petty issue they face. &lt;br /&gt;
&lt;br /&gt;
Client work also includes [[Procedures#Handling_issues_with_totals_on_reports|Handling issues with totals on reports]].&lt;br /&gt;
&lt;br /&gt;
====Requests for colour and font changes====&lt;br /&gt;
&lt;br /&gt;
Support should not be spending lots of time on colour and font changes. Clients can make as many changes as they want until they are happy with a selection. Clients MUST send a screenshot of their required color/font settings (not sample screen/reports) for Support to copy and setup for all users. If Support sees them doing something bad or poor then give comments or better suggestions.&lt;br /&gt;
&lt;br /&gt;
===Handling Requests that require Approval from Higher Authority===&lt;br /&gt;
&lt;br /&gt;
The following is a list of user requests that must be handled by NEOSYS support staff only if they are approved by or come from a higher authority (manager/admin). The LIST is &#039;&#039;&#039;NOT&#039;&#039;&#039; a complete list so there may be other things which might require approval so use good judgement and/or ASK if in doubt.&lt;br /&gt;
&lt;br /&gt;
*Opening new financial year&lt;br /&gt;
*Adding new company/dataset&lt;br /&gt;
*Editing alert/backup email receiver addresses&lt;br /&gt;
*Customising Authorisation File ({{SensitiveSecurity }})&lt;br /&gt;
**Adding or removing accesses for existing users in Authorisation file&lt;br /&gt;
**[[Procedures#Handling_new_USER_creation| Adding new user(s) to Authorisation file]]&lt;br /&gt;
**Expiring a user&lt;br /&gt;
**[[Procedures#For_HTTPS_access| Allowing HTTPS/outside office access from any IP number]]&lt;br /&gt;
&lt;br /&gt;
If an unauthorized user sends one of these requests to support staff, support staff must immediately instruct the user to get the request approved by the higher authority.&lt;br /&gt;
&lt;br /&gt;
==== Handling Requests from people impersonating an Authorised person ====&lt;br /&gt;
Support must use their judgement to deal with such requests. If it is a simple request such as adding a new user or expiring one, Support can go ahead with the request.&lt;br /&gt;
&lt;br /&gt;
If it is a request with risk involved such as providing remote access or granting high-level authorisation, Support must then contact the authorised person and let them know that their approval for the request has been received and are proceeding with the request.&lt;br /&gt;
&lt;br /&gt;
===Handling User Requests to add an IP or range of IPs to access NEOSYS===&lt;br /&gt;
&lt;br /&gt;
Support staff must identify if the IP or range of IPs is for http or https access.&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
====For HTTP access====&lt;br /&gt;
Support staff can add local IP or range of local IPs when requested by the client. Top management approval is not needed to add local IP numbers. Listed below are the IP address ranges reserved for local network.&lt;br /&gt;
&lt;br /&gt;
10.0.0.0 – 10.255.255.255&lt;br /&gt;
&lt;br /&gt;
172.16.0.0 – 172.31.255.255&lt;br /&gt;
&lt;br /&gt;
192.168.0.0 – 192.168.255.255&lt;br /&gt;
&lt;br /&gt;
====For HTTPS access====&lt;br /&gt;
Any request for https access from any IP address or range of IP addresses (eg. 123.456.* or just *), or in other words any use of an asterisk in the IP restrictions, MUST have TOP management i.e. the company&#039;s decision makers approval. The Staff and their Managers are not the best decision makers in this affair because they usually ignore the risks and it is not really their decision. Security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc can be triggered if access from any IP is enabled. It is completely pointless to inform the staff who want the access about these risks because only their top managers could really decide that this is NOT going to be allowed. Hence the Top Management MUST be asked for approvals and at the same time WARN them about the security risks/threats behind the no IP restrictions.&lt;br /&gt;
&lt;br /&gt;
=====For clients with static IP=====&lt;br /&gt;
Any request to add a specific IP address to the list of allowed IP addresses MUST have management approval.&lt;br /&gt;
&lt;br /&gt;
=====For clients with dynamic IP=====&lt;br /&gt;
For clients with dynamic IP, support MUST NOT add their public IP to the allowed list as this will encourage the client to again request for access from new IP numbers every time their public IP changes. Instead, support MUST force the client to either get a static IP, install VPN or get the Top Management i.e. the company&#039;s decision maker&#039;s approval to enable access from any IP after explaining the security risks in doing so, as mentioned above.&lt;br /&gt;
&lt;br /&gt;
Support MUST also mention that installation of VPN by the Company is the industry standard way of providing access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER. Installation of VPN is to be done by their own IT support. Refer to [[Procedures#Using_VPN_to_enable_secure_access_from_outside_the_office|Using VPN to enable secure access from outside the office]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Sample Email addressed to Top Management:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear &amp;lt;XXXXX&amp;gt;,&lt;br /&gt;
 &lt;br /&gt;
I do not recommend allowing access from all IPs because security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc. can be triggered if access from any IP is enabled.&lt;br /&gt;
&lt;br /&gt;
I strongly recommend that you keep IP restrictions for &amp;lt;XXXXXX&amp;gt; dataset.&lt;br /&gt;
  &lt;br /&gt;
If you want to provide access to mobile staff (i.e. those on dynamic IP numbers from home or traveling) to corporate software assets like NEOSYS IN A SECURE MANNER, then installation of VPN is the industry standard of achieving this. Installation of VPN is to be done by your own IT support. &lt;br /&gt;
 &lt;br /&gt;
If you still wish to allow access from all IPs, kindly confirm that you acknowledge the security threats of doing so. &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Handling repeated request to allow users to access from all IPs===&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
If the client wants temporary access from outside for some staff twice in say a six months period then support should send the below email. The real reason is because we don&#039;t have the time to be doing this on a regular basis. If at all the client asks why we no longer support the provision of temporary outside access then we can say this is because of the frequency of such requests.&lt;br /&gt;
&lt;br /&gt;
 Dear XXX&lt;br /&gt;
 &lt;br /&gt;
 We have given you temporary outside access this time, as requested. Please note that we can no longer support the provision of temporary outside access. So in the future, you will have to choose between either permanent or no outside access. Alternatively, you can ask your management to install a VPN (which is the industry standard of achieving outside access to a corporate asset in a secure manner), so that you can log in to NEOSYS from outside.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create a new feature or modifying existing features===&lt;br /&gt;
&lt;br /&gt;
Many issues are small and not important but can still be considered for development because they may be easy and neatly added to NEOSYS. The aim here is to avoid development on hard issues for little benefit, or little issues that make NEOSYS more complex for little benefit.&lt;br /&gt;
&lt;br /&gt;
When a client requests to create a new feature or modify an existing feature, a workaround must be given to the user, which is either a permanent solution, for example if the issue is a rare case and not commonly faced by other clients (and the workaround is acceptable to the client), or a temporary solution until some better solution is discovered or can be developed.&lt;br /&gt;
&lt;br /&gt;
Support MUST check all options on all pages to look for any already existing solution or workaround to the problem before emailing the programmer.&lt;br /&gt;
&lt;br /&gt;
Any request to create a new feature or modify an existing feature MUST be discussed with other clients before forwarding it to the programmer because the other clients might not be comfortable with the change as it may not be in accordance with their workflow. If other clients agree to the proposed change then support should go ahead and request the programmer to implement it.&lt;br /&gt;
&lt;br /&gt;
Therefore before escalating a request to the programmer to modify a feature in NEOSYS, the approval for the same from other clients must be taken into account.&lt;br /&gt;
&lt;br /&gt;
Any request to fix or modify a feature in NEOSYS must be accompanied with good reason and some basic considerations, so that the programmer knows what level of priority it can be dealt with. &lt;br /&gt;
&lt;br /&gt;
When escalating the request to the programmer, support MUST avoid using &amp;quot;Is it possible..?&amp;quot; because the obvious answer to that is &amp;quot;Anything is possible&amp;quot; and because this question is only a way to avoid doing the real work of deciding whether the new feature/modification should be implemented.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to add more fields to List of Invoices reports===&lt;br /&gt;
&lt;br /&gt;
Many users may ask for the List of Invoices report to be expanded to show a zillion other things, but this makes it NOT a list of invoices. Therefore other break-downs MUST be obtained from other reports in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
===Updating Clients about unresolved issues===&lt;br /&gt;
Support should proactively inform clients if an issue is not solved within the same day it was raised, after judging the urgency of the issue and the time it was raised. An email to the client who raised the issue, before the end of each day, is a best practice that keeps the client updated and other support staff too. This email should be sent regardless of the degree to which the issue has been resolved or if the issue is unresolved. If the issue is unresolved, the email should explain why and also explain the cause of delay.&lt;br /&gt;
&lt;br /&gt;
===Handling new USER creation===&lt;br /&gt;
====Get Approval====&lt;br /&gt;
Support staff should create new USERS for clients ONLY when requested by an authorised person. If the authorised person is unavailable, for example on leave, then get approval from someone who is in the backup mail list.&lt;br /&gt;
&lt;br /&gt;
Ideally only people who are users in NEOSYS and have authority over some task can grant or request authority to do that task to other NEOSYS users. However, if this is not the case and the requesting person has some seniority in the company (but is either not a NEOSYS user, or is not actually currently authorised to perform the task themselves) you may decide that it is not wise to proceed without some confirmation. In such a case be very respectful of their position while rejecting any request perhaps stating something like:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Currently we have instructions to take requests concerning authorisation only from xxx, yyy and zzz. Please could this request be confirmed by one of them?&amp;quot; Rewrite this judiciously to suit the occasion.&lt;br /&gt;
&lt;br /&gt;
Consider that different sections of a company may have different chain of commands. For example one should not assume that a Sales Director has authority over Finance unless there is firm evidence. If there is any doubt consult NEOSYS Support Managers.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT directly contact the authorised person asking for approval/confirmation because that is client work.&lt;br /&gt;
&lt;br /&gt;
Clients should not be discouraged to create new users. Clients are billed as per user usage which is reviewed periodically. Over time old USERS are replaced with new USERS.&lt;br /&gt;
&lt;br /&gt;
====Creating User====&lt;br /&gt;
Preliminary:&lt;br /&gt;
&lt;br /&gt;
New user requirements :-&lt;br /&gt;
&lt;br /&gt;
*Full name                                      - (like John Smith and not generic name like Copy Writer)&lt;br /&gt;
*Email address                                  - (like johnsmith@example.com and not generic address like copywriter@example.com)&lt;br /&gt;
*Group level / User with similar authorisation&lt;br /&gt;
&lt;br /&gt;
The USER code is the first name of a user. &lt;br /&gt;
&lt;br /&gt;
1. Support MUST only create NEOSYS accounts with real names and email addresses WITH NO EXCEPTIONS unless agreed by NEOSYS management.&lt;br /&gt;
&lt;br /&gt;
It is acceptable, although inefficient, for one person to have multiple user accounts either concurrently or sequentially, but the opposite MUST never occur.&lt;br /&gt;
One NEOSYS user code/account MUST never have more than one real person associated with it neither concurrently nor sequentially.&lt;br /&gt;
In order to maintain efficiency, various fleeting temptations to cut corners and break the ONE TO ONE link between NEOSYS users accounts and real people MUST be resisted.&lt;br /&gt;
These principle remain mandatory even when pressure is exerted by people, even senior management, who may not appreciate the issues involved.&lt;br /&gt;
The fact that NEOSYS support does not know for certain who is the real person using an NEOSYS account does not change these principles.&lt;br /&gt;
&lt;br /&gt;
2. Support MUST not create GENERIC user codes like AUDITOR or MANAGEMENT (even to grant special access to such users like read-only access) as this breaks all security rules.&lt;br /&gt;
Do not re-use user codes. Always create NEW user codes for NEW users.&lt;br /&gt;
&lt;br /&gt;
3. Support MUST not create or modify any usable NEOSYS account that is or has been used by more than one user.&lt;br /&gt;
&lt;br /&gt;
4. Support is responsible to maintain the system in good working order and not knowing who is really doing the work in the system can make support harder.&lt;br /&gt;
&lt;br /&gt;
5. Support MUST not collude with clients to by-pass the principles. If asked to do so Support MUST refuse to create or update such accounts.&lt;br /&gt;
&lt;br /&gt;
6. Do not hand over user codes from one person to another in a mistaken attempt to represent a hand over to a replacement. EXPIRE THE OLD USER CODE/ACCOUNT AND CREATE A NEW USER CODE/ACCOUNT.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
7. Support team MUST NOT discuss billings with clients unless authorised to do so. Also see [[Procedures#Discussing_Pricing|Discussing Pricing]] &lt;br /&gt;
&lt;br /&gt;
8. Support team MUST NOT proceed with creating new users until the group level or existing user with similar authorisation has been clearly provided by the client, otherwise the new user may end up with more than the required authorisation, which can lead to problems in future.&lt;br /&gt;
&lt;br /&gt;
====After Creating New User====&lt;br /&gt;
&lt;br /&gt;
Support MUST send an email to the person who requested the creation of new user, confirming that the new user has been created along with a screenshot of that part of the authorisation table where the new user was created so that the new user&#039;s user code and email id is visible. This is done so that in case there is some error in the user code or email id, it is easily visible in the screenshot and also so that the person who requested the creation of the new user is informed about the user code of the new user.&lt;br /&gt;
&lt;br /&gt;
===Handling letterhead change requests===&lt;br /&gt;
&lt;br /&gt;
Support staff should reject any requests that require the letterhead to be setup on the TESTING dataset before it is setup in the MAIN dataset.This is to reduce double work for support staff and to ensure that clients have a clear understanding of their requirements and also send the correct logo image.&lt;br /&gt;
The MAIN dataset can be copied to the TEST dataset for any kind of testing.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Configuring_Letterhead#Changing_the_letterhead_for_printed_documents How to change letterhead]&lt;br /&gt;
&lt;br /&gt;
===Handling error messages===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Before Attempting to resolve client issues, please ensure that we have secure access to the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
#The very first step is understanding client problem. Ask questions to the client until you CLEARLY understand the problem.&lt;br /&gt;
#If the error is familiar and does not require a screenshot, resolve the problem immediately.&lt;br /&gt;
#If the error is unfamiliar and/or requires a screenshot and the user has not sent a screenshot, IMMEDIATELY ask the user to send a screenshot of the problem, along with the options used (basically you need to know HOW to replicate the error and the screenshot MUST show WHAT the error is).&lt;br /&gt;
#If the user says &amp;quot;nothing happens, so no screenshot of the error&amp;quot;, then IMMEDIATELY request for screenshots again with the exact steps to reproduce the problem using mouse and keyboard.&lt;br /&gt;
#Support team MUST NOT provide support without a screenshot, otherwise the client will not pay attention to support team in future and ignore requests for screenshots.&lt;br /&gt;
#Upon receipt of the error and steps to reproduce the error, follow the steps and reproduce the error. Also refer to [[Procedures#Addressing_Browser_related_issues|Addressing Browser related issues]]&lt;br /&gt;
#If the issue is unknown or you don’t understand it clearly, with the users acknowledgement use remote support to gain access to the users desktop to view how to replicate the error.&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
====Understanding Internal error messages====&lt;br /&gt;
&lt;br /&gt;
Internal errors messages appear in red on screen and an email which is sent to support with more details. (Example below)&lt;br /&gt;
&lt;br /&gt;
[[image:Rawformdatapng.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;ERROR NO:&amp;quot; line is comprised of the error number (B16), the program (MARGIN_BASE) and the line number (1). Sometimes the line number is wrong, refer to section &amp;quot;Misleading line numbers in error messages&amp;quot; below for more info.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;STACK:&amp;quot; line lists the &amp;quot;parent&amp;quot; calling programs &amp;quot;SYSMSG,LISTEN&amp;quot; used to trace how and where the error originates.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;DATA:&amp;quot; is a string of characters that is used to recreate the options used by the client in order to replicate the error message. See how to [[Troubleshooting_NEOSYS_Generally#Replicate_options_used_.26_error_using_sysmsg_Data: | replicate the error with the options used, using internal error email]]&lt;br /&gt;
&lt;br /&gt;
====Misleading line numbers in error messages====&lt;br /&gt;
&lt;br /&gt;
Many small NEOSYS utility programs are compiled to run faster than usual programs and will not report the correct line on errors like Variable Not Assigned.&lt;br /&gt;
&lt;br /&gt;
To get the actual line number, compile as usual. ie without the (CL) options mentioned below, and regenerate the error.&lt;br /&gt;
&lt;br /&gt;
Note that most of these programs should have a source line &amp;quot;linemark&amp;quot; or &amp;quot;*linemark&amp;quot; in them somewhere near the top. When single stepping in the debugger, the program will break on this line and this line alone.&lt;br /&gt;
&lt;br /&gt;
To compile a GBP program DATE for speed use something like the following:&lt;br /&gt;
&lt;br /&gt;
 COMPILE GBP DATE (CL)&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;L&amp;quot; means compile without line numbers. This makes them run faster, which is important for utility programs that are called extremely frequently eg for date or number input/output conversion.&lt;br /&gt;
*&amp;quot;C&amp;quot; means do not generate a symbol table in GBP $GETPERIOD. It makes no difference whether you do or do not.&lt;br /&gt;
&lt;br /&gt;
===Addressing Browser related issues===&lt;br /&gt;
&lt;br /&gt;
When resolving random browsing issues that seem to be on one user computer only, support MUST send the below email asking the user to check if the same issue occurs on other user computers. Rapidly convincing the user that the problem is only on their computer gains their willingness to sort the problem out at their end, using IT people if necessary and available.&lt;br /&gt;
&lt;br /&gt;
Handling random issues that appear to be on one computer is very very common and it is important to deal with it effectively, not requiring stages of &amp;quot;denial&amp;quot; by the users until they accept something has to be done at their end, and not by NEOSYS. Speeding up this process gains the confidence and appreciation of the users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Hi xxxx&lt;br /&gt;
&lt;br /&gt;
Is this error happening only on your computer? If that is the case, it may be due to an issue in your browser cache. Please clear your browser cache with assistance from your IT team if required. Then restart the browser and try again.&lt;br /&gt;
&lt;br /&gt;
If clearing browser cache does not fix the issue, I recommend a full browser reset to ensure that everything works fine.&lt;br /&gt;
&lt;br /&gt;
Follow these instructions for clearing browser cache and resetting browser:&lt;br /&gt;
http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers&lt;br /&gt;
&lt;br /&gt;
Please let us know if you face the issue again.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Handling_Browser_related_issues_in_NEOSYS| Handling Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
===Addressing Technical support emails===&lt;br /&gt;
&lt;br /&gt;
In the case of technical support issues, address emails to the IT person and cc the complete group of recipients of backup emails and other NEOSYS alert emails. This allows both NEOSYS and client IT staff to take credit for resolving issues that NEOSYS raises instead of working in the background unacknowledged.&lt;br /&gt;
&lt;br /&gt;
Technical support issues include backup failure, server failure, missing alert email, server connectivity issues and port forwarding issues and many other issues.&lt;br /&gt;
&lt;br /&gt;
For technical issues like browser configuration, clear cache, etc. support must send the user a link to the appropriate wiki article to help the user fix the problem. In some cases the user may be helpless and unable to follow the steps to fix the problem. In such cases, support MUST NOT waste time trying to help the user fix the problem, instead support MUST ask the user to get help from the IT person.&lt;br /&gt;
&lt;br /&gt;
===Acceptable report format when handling issues in NEOSYS reports===&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support must only resolve issues in NEOSYS output first. This is because only NEOSYS outputs can be trusted and user versions in Excel or PDF could be copied wrongly or edited by the user.&lt;br /&gt;
&lt;br /&gt;
In case users send reports in excel or other formats, get them to send the original NEOSYS HTML report as an attachment or copy-pasted in email.&lt;br /&gt;
&lt;br /&gt;
===Handling requests to create new charts or control accounts===&lt;br /&gt;
&lt;br /&gt;
[http://userwiki.neosys.com/index.php/Setting_up_and_Configuring_NEOSYS_Finance_System#Creating_New_Charts_or_Control_Accounts Refer here]&lt;br /&gt;
&lt;br /&gt;
===Handling issues with totals on reports===&lt;br /&gt;
&lt;br /&gt;
If a client has a problem with any total output by NEOSYS software then NEOSYS support will advise them which other NEOSYS report or reports provide a complete breakdown of the total (if necessary, to individual transactions) and ask the client to locate any offending transactions themselves.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff will handle any issues where the total on the breakdown report does not add up to the total on the summary report.&lt;br /&gt;
&lt;br /&gt;
Reconciling totals can be hard if there are many transactions involved. Regardless of how hard it may be, reconciliation is an operational task for users not for support staff since NEOSYS support staff will not get involved in understanding client transactions or data.&lt;br /&gt;
&lt;br /&gt;
====Trial Balance and Financial Statements====&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff do not have to prove or trace any figures in NEOSYS Trial Balance Reports or any financial reports. If a figure is stated to be wrong by the user, then NEOSYS support staff should ask for proof or say NEOSYS is confident that the figures are correct unless proved otherwise. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff should point out reports in NEOSYS which will support the figures in question but not actually run the reports. Support staff can suggest the users to refer to detailed ledger accounts to prove balances.&lt;br /&gt;
&lt;br /&gt;
==Using VPN to enable secure access from outside the office==&lt;br /&gt;
There are two ways in which a user can use VPN:&lt;br /&gt;
&lt;br /&gt;
*User connects to the their office router and makes the PC act like it is on the office LAN.&lt;br /&gt;
*User connects to a VPN service that provides a static IP number and can therefore be authorised by NEOSYS to login.&lt;br /&gt;
&lt;br /&gt;
If the client intends to use VPN to connect to their office router and make the PC act like it is on the office LAN, then it depends on what VPN protocols the client&#039;s office router supports.&lt;br /&gt;
&lt;br /&gt;
The alternative is to use a paid VPN service that provides a static IP number. Getting a dynamic IP number on VPN is very cheap and there are many suppliers, but getting a static IP number on VPN services seems to be more expensive.&lt;br /&gt;
&lt;br /&gt;
Internally in NEOSYS we use PFSENSE routers which support OPENVPN which is extremely flexible.&lt;br /&gt;
&lt;br /&gt;
==Handling issues with Office PBX phones==&lt;br /&gt;
&lt;br /&gt;
Support should check their respective Office PBX phones every morning to find out if the phone is up and working. In case Support finds any issue with their phone, immediately fix it so that clients do not lose contact with the  Support team via phone. Next send an email to Support inbox mentioning the fault, cause and solution for records/future prevention.&lt;br /&gt;
&lt;br /&gt;
==Running undocumented commands on Maintenance mode==&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST NOT run undocumented commands on ***LIVE*** database. Some commands are not documented for a reason, it could be because the commands might give an undesired output or because there is no clarity on what else could be effected by the command.&lt;br /&gt;
&lt;br /&gt;
Even if the command is tested in TESTING database and the output looks okay, support staff MUST get the programmer&#039;s approval before going ahead and running the command in LIVE database as there is no guaranty that the command is properly programmed and will do no damage.&lt;br /&gt;
&lt;br /&gt;
==Configuring Browsers to show Javascript errors in NEOSYS==&lt;br /&gt;
NEOSYS Support MUST ensure the following Settings for browsers because if NEOSYS generates any javascript error message, the same would appear in the bottom left corner of a window, which in turn helps the programmer to fix the error. This must be done after every Factory Reset.&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer===&lt;br /&gt;
Tools &amp;gt; Internet Options &amp;gt; Advanced &amp;gt; Browsing - the items Disable script debugging (Internet Explorer) and Disable script debugging (Other) are &#039;&#039;&#039;UNTICKED&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===Chrome=== &lt;br /&gt;
Chrome Menu &amp;gt; More Tools &amp;gt; Extensions &amp;gt; Get More Extensions, search for &#039;&#039;&#039;Javascript Errors Notifier&#039;&#039;&#039;. Add the extension to Chrome.&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome1.png]]&lt;br /&gt;
===Firefox===&lt;br /&gt;
Firebug add-on is used to NOTIFY about script errors because we have no other method to get any warning on screen but you should use the main firefox developer tools to investigate any errors as firebug is essentially replaced by built in developer tools. &lt;br /&gt;
&lt;br /&gt;
For developer tools, go to Tools &amp;gt; Web Console&lt;br /&gt;
&lt;br /&gt;
To enable notifications for script errors, download the add-on Firebug from [https://addons.mozilla.org/en-US/firefox/addon/firebug/ here]. When a Javascript error is encountered, the firebug icon will report the number of errors.&lt;br /&gt;
&lt;br /&gt;
Set your firebug as per the second screen shot and select &amp;quot;Enable All Panels&amp;quot; as well, the tick will not appear like the other options but the option will get selected. If you miss out on any one of these steps, you will not be able to capture script errors.&lt;br /&gt;
&lt;br /&gt;
[[file:firebug1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Firebug.png]]&lt;br /&gt;
&lt;br /&gt;
==Handling Browser related issues in NEOSYS==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Technical_/_Hardware_requirements#NEOSYS_Software_Browser_and_OS_Requirements NEOSYS browser requirements]&lt;br /&gt;
&lt;br /&gt;
Clients frequently ask [http://userwiki.neosys.com/index.php/General_FAQ#Why_doesnt_NEOSYS_support_my_XYZ_browser.3F Why NEOSYS doesn&#039;t support other browsers] &lt;br /&gt;
&lt;br /&gt;
To avoid browser errors, all new users must follow the steps given in [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#Getting_started_with_NEOSYS Getting started with NEOSYS] before logging in to NEOSYS for the first time.&lt;br /&gt;
&lt;br /&gt;
To troubleshoot browser related errors see [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers Troubleshooting Web Browsers]&lt;br /&gt;
&lt;br /&gt;
Users must clear browser cache after every NEOSYS Upgrade to avoid errors. See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS#Sample_email_to_be_sent_to_clients_who_face_issues_due_to_failure_in_clearing_browser_cache Sample email to clients who face issues due to failure in clearing browser cache]&lt;br /&gt;
&lt;br /&gt;
Pop-up blockers and any 3rd party toolbars must be deactivated/switched off or else certain pages and alert messages while using NEOSYS do not appear as a result of blocking from either the pop-up blocker or toolbars with built-in pop-up blockers. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support must ask users to Reset browser (See [http://userwiki.neosys.com/index.php/Reset_Browser Reset browser]) if they notice any user browsers which have pop-up blockers or 3rd party toolbars installed.&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Addressing_Browser_related_issues| Addressing Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
==Handling NEOSYS Upgrade==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS Upgrading NEOSYS]&lt;br /&gt;
&lt;br /&gt;
==Handling auto-reply emails like Out of Office etc.==&lt;br /&gt;
&lt;br /&gt;
From 28th May 2017 version, emails sent out by the NEOSYS system now contain headers that in effect request recipient email systems not to auto-reply for things like Out of Office. This is to reduce unnecessary chatter by silencing unnecessary automatic replies. There is no guarantee that recipient email systems will comply. The headers added are:&lt;br /&gt;
&lt;br /&gt;
*X-Auto-Response-Suppress: RN, NRN, OOF&lt;br /&gt;
*Precedence: bulk&lt;br /&gt;
&lt;br /&gt;
Support team should notify SB of any auto-responses that come despite their installation being patched.&lt;br /&gt;
&lt;br /&gt;
In NEOSYS versions after 10th Jun 2017, emails sent by NEOSYS from the NEOSYS Help menu, i.e. manually triggered emails, do NOT indicate that OOF replies are not wanted, since if you are sending emails to people using NEOSYS, you will want to know if they are OOF.&lt;br /&gt;
&lt;br /&gt;
==Using Support Tools==&lt;br /&gt;
===Website Live Support===&lt;br /&gt;
www.neosys.com is equipped with a Live Support software and clients can visit the website, click on this link and chat with any of our support staff, without the need for any installation. The client has to fill in their name and enter their questions to connect to an available support personnel. During non-working hours, the Live Support icon on the website automatically displays &amp;quot;offline&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support personnel who are authorised to provide such support, need to login to Live helper chat in Firefox using the link given below:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/&lt;br /&gt;
&lt;br /&gt;
Support personnel should enter the account details as provided by their Manager.&lt;br /&gt;
&lt;br /&gt;
Enable notifications for Live helper chat so that whenever there is a visitor trying to contact Support team, the Support personnel will get the notifications on his screen. &lt;br /&gt;
&lt;br /&gt;
Set the Live helper chat login page as your home page in Firefox and this page must be kept open for the whole duration of working hours. &lt;br /&gt;
&lt;br /&gt;
Support must always be alert and immediately reply to messages from visitors.&lt;br /&gt;
&lt;br /&gt;
Use the link below to enable notifications:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/chat/listchatconfig&lt;br /&gt;
&lt;br /&gt;
After setting up Live helper chat if you sign in to a new profile in Firefox, you might have to re enable the notifications after your Firefox is synced to the new profile.&lt;br /&gt;
&lt;br /&gt;
===Teamviewer===&lt;br /&gt;
Since Teamviewer allows no restriction on access once a fixed pass is installed, Support must not install fixed pass on teamviewer however convenient it might be.&lt;br /&gt;
&lt;br /&gt;
RULE: NO FIXED PASS TO BE INSTALLED ON TEAMVIEWER IN ANY NEOSYS OR NEOSYS CLIENT COMPUTER&lt;br /&gt;
&lt;br /&gt;
Running teamviewer live from a web link is fine because it does not allow installation of a permanent password&lt;br /&gt;
&lt;br /&gt;
For certain tasks that require temporary install of Teamviewer on the client servers (e.g. upgrading Cygwin remotely), use Teamviewer 7 on the server as well as Support staff computer. Contact NEOSYS IT for commercial license of Teamviewer 7. Teamviewer MUST be uninstalled after usage, otherwise it creates an additional unnecessary security risk.&lt;br /&gt;
&lt;br /&gt;
To support client users who use the latest version of Teamviewer, support staff must also install the latest Teamviewer version available alongside Teamviewer 7.&lt;br /&gt;
&lt;br /&gt;
==Documenting Processes in Wiki==&lt;br /&gt;
NEOSYS Support staff must be in continual learning mode. This is mandatory for support staff and is not an option. Support must read, learn and understand everything in the support emails and ask questions if they don&#039;t understand. This understanding must be transferred into wiki in the form of new articles and improvements to existing articles.&lt;br /&gt;
&lt;br /&gt;
For all articles related to formatting and editing in Wiki, see [http://itwiki.neosys.com/index.php/Documenting_NEOSYS_systems Documenting NEOSYS systems]&lt;br /&gt;
&lt;br /&gt;
===Avoiding duplication of text in wiki===&lt;br /&gt;
&lt;br /&gt;
Duplication of text in wiki is to be avoided almost at any cost. Duplication has the problem that when one copy is changed or improved in future then it is highly likely the editor will fail to update the other copy or copies and wiki will over time become an inconsistent mess.&lt;br /&gt;
&lt;br /&gt;
There are several ways to avoid duplication:&lt;br /&gt;
&lt;br /&gt;
#Two or more procedures which have significant areas of duplication can be rewritten as a single procedure with alternatives in the middle of the procedure&lt;br /&gt;
#Wiki Templates- Templates reproduce the same text in all places and editing one place edits all places. See [[How to create templates in wiki]]&lt;br /&gt;
#Wiki links- Only put the text in one place and put links to that in all the other places that it is appropriate.&lt;br /&gt;
#Place a note in all copies something to the effect that &amp;quot;This is similar to x, y and z&amp;quot;. This alerts any future editor of all other places in wiki that might also have to be updated.&lt;br /&gt;
&lt;br /&gt;
Future modifications in one place may or may not be appropriate to other places. The editor must decide whether to change one or all places&lt;br /&gt;
&lt;br /&gt;
===Highlighting information in wiki===&lt;br /&gt;
&lt;br /&gt;
To highlight particular instructions or info in wiki do NOT invent new styles which are not the way the rest of wiki is done. Instead, follow the USUAL STYLE or open a DISCUSSION with any recommendations you have BEFORE USING THEM.&lt;br /&gt;
&lt;br /&gt;
Instead of using various kinds of highlighting styles like bolding and words like &amp;quot;Note:&amp;quot;, use the following words IN CAPITALS especially the word MUST.&lt;br /&gt;
&lt;br /&gt;
The use of the following words IN CAPITALS indicates that you are using them in a special way with formally defined meaning as explained below. Use of the words in lower case indicates that you are using the word in an ordinary commonsense meaning.&lt;br /&gt;
&lt;br /&gt;
*MAY - means optional&lt;br /&gt;
*SHOULD - means recommended and you need GOOD reason (not just any weak excuse) to not follow to follow this recommendation&lt;br /&gt;
*MUST - mandatory&lt;br /&gt;
&lt;br /&gt;
Only in the rare cases where the consequences of doing or not doing something are irreversible or take a lot of work to reverse then you can use your own additional highlighting methods, eg ALL CAPS, stars, color red etc.&lt;br /&gt;
&lt;br /&gt;
====Explain WHY====&lt;br /&gt;
&lt;br /&gt;
Any sentence which uses the word &amp;quot;MUST&amp;quot; in capitals, MUST be followed by a SPECIFIC REASON explaining exactly why is the instruction is mandatory; the reason MUST not be vague and non-specific meaning no more than &amp;quot;or bad things will happen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules otherwise it will cause problems in future.&lt;br /&gt;
&lt;br /&gt;
 CORRECT way: You MUST also delete ads if deleting schedules otherwise the deleted schedules&#039; ads will still show in all media-diary like reports and screens&lt;br /&gt;
&lt;br /&gt;
The Wrong way above gives a general reason &amp;quot;it will cause problems in future&amp;quot; which is vague and a reader may even go ahead and ignore &amp;quot;MUST&amp;quot; because there is no objective or proper side effect mentioned for not following the MUST statement. Basically he doesn&#039;t understand the point behind following a certain rule. &lt;br /&gt;
&lt;br /&gt;
Whereas the Correct way gives a SPECIFIC reason for &amp;quot;deleting ads while deleting schedules&amp;quot;, so reader will exactly know the trouble that will be caused if ads are not deleted. Therefore &amp;quot;SPECIFIC REASON&amp;quot; behind using the word MUST must be to the point and very informative.&lt;br /&gt;
&lt;br /&gt;
====Why explain WHY====&lt;br /&gt;
The information contained in the WHY phrase is often &#039;&#039;&#039;extremely informative&#039;&#039;&#039; to the reader about things that you may otherwise not have considered saying.&lt;br /&gt;
&lt;br /&gt;
The most valuable information is usually contained in the &amp;quot;WHY&amp;quot; of something. There is an apocryphal story of a company where managers could be fired if they gave instructions to their staff without providing explanation. In almost all cases it is better for the efficiency of a team of people that any instructions they follow contain the &amp;quot;WHY&amp;quot; of something. Only in few cases should staff be expected to follow instructions without being well or fully informed.&lt;br /&gt;
&lt;br /&gt;
==Email Retention Policy==&lt;br /&gt;
&lt;br /&gt;
===Generally===&lt;br /&gt;
&lt;br /&gt;
Emails are retained permanently to allow old issues to be discovered in email searches.&lt;br /&gt;
&lt;br /&gt;
===Account: backups@neosys.com===&lt;br /&gt;
&lt;br /&gt;
Only the last 365 days of emails to backups@neosys.com are kept in general to reduce the burden on servers and clients due to the heavy number of emails.&lt;br /&gt;
&lt;br /&gt;
For the backups/neosys folder, only 31 days is kept due to the very high numbers of emails ~250/day.&lt;br /&gt;
&lt;br /&gt;
Deletions are configured in and done by a thunderbird client in NEOSYS IT so may not be continuous.&lt;br /&gt;
&lt;br /&gt;
==Use of personal email addresses by NEOSYS support staff==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff MUST NOT use any personal email addresses for NEOSYS business. &lt;br /&gt;
&lt;br /&gt;
The xxxx.neosys@gmail.com addresses that are created by support staff for themselves on joining are also considered personal email addresses and must not be used for NEOSYS business. These email addresses might be linked to NEOSYS wiki accounts but that doesn&#039;t matter because wiki is not confidential.&lt;br /&gt;
&lt;br /&gt;
==Accessing NEOSYS accounts on personal devices==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff MUST NOT install NEOSYS accounts on skype/dropbox/gmail (or any other external tool) on their personal devices without written permission from NEOSYS management&lt;br /&gt;
&lt;br /&gt;
==Support Staff work-in-progress documents/files==&lt;br /&gt;
&lt;br /&gt;
Support Staff must not save working files hidden on their computer. Work that is not visible is not work .&lt;br /&gt;
Support work should not be done privately and should be shared to all.&lt;br /&gt;
&lt;br /&gt;
ALL personal working files however trivial MUST be stored in Dropbox and MUST NOT be stored anywhere in personal computer (My Documents/Desktop etc.)&lt;br /&gt;
&lt;br /&gt;
The personal encrypted pass file MUST be stored somewhere in personal folder under SB NEOSYS staff in Dropbox. This is because if there is a loss of OS/Computer, it should not lead to loss of access as all the passwords saved in the file will be lost.&lt;br /&gt;
&lt;br /&gt;
==Handling CLIENT/NEOSYS Servers==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff must exercise extreme caution when working on CLIENT and NEOSYS servers. Do not risk making changes without due care and attention to the fact that the consequences of errors can be serious on working production servers.&lt;br /&gt;
&lt;br /&gt;
===Handling Javascript Files in NEOSYS===&lt;br /&gt;
&lt;br /&gt;
All the files in NEOSYS installation folder with .JS and .JSE extension are the executable javascript files which startup NEOSYS processes (in a usual DOS window). Their default program is &#039;Microsoft Windows Based Script Host&#039; (wscript.exe). If a JavaScript file is opened using a notepad, the default program may change to notepad resulting in all NEOSYS processes to open up in a notepad.&lt;br /&gt;
&lt;br /&gt;
Hence be very CAREFUL when accessing a .JS and .JSE file and double check that the default program remains wscript.exe. Refer to [[Troubleshooting_NEOSYS_Generally#Fixing_wrong_default_program_assigned_to_open_a_file_type|Fixing wrong default program assigned to open a file type]] in case this issue comes up.&lt;br /&gt;
&lt;br /&gt;
==Handling &amp;quot;List of Open Ports&amp;quot; reports==&lt;br /&gt;
&lt;br /&gt;
This email comes to NEOSYS support team once a day showing only those client&#039;s servers which appear to have changed what TCP ports are open to the internet since yesterday. It will also come once a week showing all clients servers open ports.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support team should work patiently with client IT staff, over time if necessary, to close all ports that are not absolutely mandatory to be open.&lt;br /&gt;
&lt;br /&gt;
Clients with highly skilled IT staff may have a variety of ports open to various non-NEOSYS servers inside their organisation. In this case, NEOSYS plays little or no role other than getting their confirmation of exactly what ports are acceptable. Any new ports that appear over time should be handled in the same way.&lt;br /&gt;
&lt;br /&gt;
For clients without such staff, NEOSYS is their only real line of defence and since NEOSYS requested opening some ports, we should get all other ports closed by patiently following up until action is taken. Involving management may be the only way to get IT to act.&lt;br /&gt;
&lt;br /&gt;
High end port numbers (e.g. 49667) may represent transient outbound connections from users. Therefore for such port numbers, support team should contact the client only if the port remains open on the following working day.&lt;br /&gt;
&lt;br /&gt;
In particular, port 80 and 443 controlling internal or external routers should be closed. It is NOT acceptable except in HIGH IT EXPERTISE environments that critical routers should be exposed to the internet and they MUST NOT be accessible from the internet because routers that do not have their software updated can be hacked using known defects. Even updated routers can be hacked. Making it easy for client IT staff to access the router configuration from outside is NOT a good enough excuse to break this rule. Professional IT does not allow access to critical routers from the internet.&lt;br /&gt;
&lt;br /&gt;
Likewise, any port 80 (unencrypted web access) and port 3389 (RDP remote desktop) open to the NEOSYS server MUST be closed otherwise logins can be monitored and there is no way to guarantee server security.&lt;br /&gt;
&lt;br /&gt;
Port 23 (Telnet) is an insecure port because it is unencrypted and should never be open for usage. This is standard practice and well known by any network professional. Since the port is unencrypted, attackers can listen in, watch for credentials, inject commands via man-in-the-middle attacks and ultimately perform Remote Code Executions (RCE).&lt;br /&gt;
&lt;br /&gt;
If a port is definitely required and properly approved to be open by client IT support, please let NEOSYS IT (SB) know and it will be put in the &amp;quot;Authorised&amp;quot; column so that ports in the &amp;quot;Questionable&amp;quot; column are all pending action.&lt;br /&gt;
&lt;br /&gt;
The report does not attempt to detect UDP ports since UDP ports can receive information from the internet without responding in any way so there is no way to detect them reliably.&lt;br /&gt;
&lt;br /&gt;
Green color shows ports that have opened since the last report run. Open ports can sometimes not be detected accurately so a port may appear to disappear in one report and reappear in the next report.&lt;br /&gt;
&lt;br /&gt;
===Why should HTTP port 80 not be open on my router?===&lt;br /&gt;
&lt;br /&gt;
It is not advisable to expose any HTTP server for any private service on your computer network or router because HTTP is unencrypted and this means that all information regarding that service, including passwords, can be observed by any malware on your LAN and internet connection. This information can then be used to install horrible software on your internal PCs.&lt;br /&gt;
&lt;br /&gt;
What to do?&lt;br /&gt;
&lt;br /&gt;
Use https for any internal services - and advisably on a non-standard port, not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
For example, NEOSYS service is exposed as HTTPS (not HTTP) usually on port 4430 - not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
Commercial hacking is getting really common with things like FIREBALL and CRYPTOLOCKER causing a lot of damage.&lt;br /&gt;
&lt;br /&gt;
It is advisable to take basic precautions pro-actively before any attack exposes weaknesses.&lt;br /&gt;
&lt;br /&gt;
==Handling Nagios Client Monitoring system==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff on duty MUST follow the procedures outlined below in case the Firefox &amp;quot;imoin&amp;quot; add-on shows critical or warning messages for any service. Failure to schedule appropriate downtime will lead to REDUNDANT EMAIL ALERTS from Nagios every hour.&lt;br /&gt;
&lt;br /&gt;
Any alert on the Firefox &amp;quot;imoin&amp;quot; add-on means that there is an issue that has not been attended to properly, and &amp;quot;attended to&amp;quot; does not always mean solved. Support staff MUST solve the problem immediately if possible.&lt;br /&gt;
&lt;br /&gt;
If it is not possible to solve the problem immediately, then downtime/acknowledge the service and add a comment on the Nagios alert, explaining the problem briefly. &lt;br /&gt;
&lt;br /&gt;
Support should check Nagios frequently during the day to look for any new alerts so that issues are fixed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
*Nagios is required to be checked first thing in the morning and any critical or warning messages need to be dealt with to resolve the same at the earliest.&lt;br /&gt;
*Some of the messages could be related to backup failures and the usual procedure as stated in Handling failure and warning messages on nightly backup alerts needs to be followed. In case the backup issue isn&#039;t resolved by 9:30 am, the Nagios service needs to be downtimed with an appropriate comment for a minimum of 2 hours and maximum until 1 am next day if the issue cannot be solved.&lt;br /&gt;
*In case of &amp;quot;Backup not changed&amp;quot; warning status which occurs if the client has not interchanged the USB before 12 noon on that day, no action is required from the support staff and a downtime with a comment like &amp;quot;Backup media not changed - Emailed client&amp;quot; needs to be scheduled until 1 am next day.&lt;br /&gt;
*In case any HTTPS, SSH, PING service or Host is down, immediate action is required and the relevant IT people at the client side needs to be contacted to get this resolved. A downtime of 2 hours with a comment like &amp;quot;Service/host down - Emailed client&amp;quot; is required to be scheduled with further intervals of 2 hours in case this is not resolved. Support staff shouldn&#039;t schedule downtime till 1 am next day, just to get rid of the alerts for the day. Proactive follow up with the client is required to get this resolved before the business day - more so, if there is a weekend ahead.&lt;br /&gt;
*In case the HTTPS, SSH, PING service or Host goes down during the day, a grace period of 10 minutes is given before the issue is reported to the client IT, in case there is any temporary internet connection issue at the client or along the internet route.&lt;br /&gt;
*In case the HTTPS, SSH PING service or Host is down for more than 1 day, client IT should acknowledge the problem and give NEOSYS support staff an approximate time frame before which the issue will be resolved. Set an appropriate downtime with a descriptive comment for such events.&lt;br /&gt;
*In case Host is down for more than 2 days and there is no progress with the fix from client IT, the client management should be notified about the seriousness of not having access to server and their acknowledgement is mandatory.&lt;br /&gt;
&lt;br /&gt;
==Handling lack of remote access to NEOSYS server located in client’s premises==&lt;br /&gt;
&lt;br /&gt;
If access to the NEOSYS server is lost then we must determine the root cause by: &lt;br /&gt;
&lt;br /&gt;
#Checking if the server is UP and running&lt;br /&gt;
#If yes, please check internet connectivity on the server&lt;br /&gt;
#If there is connectivity, please check the router for connectivity issues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
Please note that we have currently lost access to the NEOSYS server. The server seems to be down at the moment and it seems that &lt;br /&gt;
NEOSYS processes are not running on the server.&lt;br /&gt;
Kindly check if the server is UP and running. If yes, please check internet connectivity on the server.&lt;br /&gt;
Do keep us posted on the server status so we can test connectivity from our side as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==New Router (Port Forwarding)==&lt;br /&gt;
&lt;br /&gt;
If you have changed your router then you may notice that external access to NEOSYS is unavailable. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to the NEOSYS Server as follows: &lt;br /&gt;
&lt;br /&gt;
#Port 19580 &amp;gt; 19580 for SSH&lt;br /&gt;
#Port 4430 &amp;gt; 4430 for HTTPS&lt;br /&gt;
&lt;br /&gt;
You can see [http://portforward.com/ Set Up Port Forwarding] to learn how to configure your Router.&lt;br /&gt;
&lt;br /&gt;
To see how to test/ troubleshoot port forwarding settings, go to [[Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding|Troubleshooting Port Forwarding]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
You are requested to kindly setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to &lt;br /&gt;
the NEOSYS Server,i.e.  port 19580 for SSH and port 4430 for HTTPS.&lt;br /&gt;
&lt;br /&gt;
Once this is complete, kindly send me an email to confirm the same so that we could test connectivity from our end as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Creating and Handling passwords==&lt;br /&gt;
===Creating a password===&lt;br /&gt;
Passwords are generated from a pass phrase and it is important to create a very difficult to guess pass phrase.&lt;br /&gt;
&lt;br /&gt;
Passwords made out of a pass phrase MUST be at least 10 characters since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts.&lt;br /&gt;
&lt;br /&gt;
For example, a good pass phrase would be: &#039;&#039;&#039;Today is a good day and it is the best time to go for a holiday&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The password for this would be &#039;&#039;&#039;Tiagd&amp;amp;iitbt2g4ah&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The important instructions for the above are:&lt;br /&gt;
&lt;br /&gt;
#You have to take the first letter of each word and that makes your password (i.e. by using initials)&lt;br /&gt;
#Wherever any word starts with a capital, then you have to take first letter as a capital (eg. For Today you will take T)&lt;br /&gt;
#Replace &#039;&#039;&#039;and&#039;&#039;&#039; with &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;to&#039;&#039;&#039; with &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;for&#039;&#039;&#039; with &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Handling passwords===&lt;br /&gt;
&lt;br /&gt;
#Never send the actual password - always send the pass phrase&lt;br /&gt;
#Make sure that the password created out of the pass phrase is at least 10 characters long since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts&lt;br /&gt;
#Pass phrases are never to be sent by email, whatever the case maybe.&lt;br /&gt;
#Pass phrases can be sent by chat - however they have to be broken down in two parts and sent separately over two different messengers or if you are using Gtalk then use the &#039;off the record&#039; mode.&lt;br /&gt;
#Using SMS to send pass phrases is the best known way as of now.&lt;br /&gt;
#If you save the passwords on your system in an file then:&lt;br /&gt;
#*Ensure that you only store pass phrases in the excel file&lt;br /&gt;
#*Ensure that the excel file is encrypted with a master password&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Maintenance Window==&lt;br /&gt;
&lt;br /&gt;
The NEOSYS server is functional from 6am – 1am. There is a 5hr window gap for the system to perform updates &amp;amp; backups.&lt;br /&gt;
&lt;br /&gt;
The 5hr maintenance window:-&lt;br /&gt;
&lt;br /&gt;
1. At 1am – The server performs a data backup on a USB (for the respective clients) &amp;amp; once the backup has been completed, the system automatically generates an email addressed to the neosys staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
2. At 2:45am – The main data over writes the test data on the server.&lt;br /&gt;
&lt;br /&gt;
3. At 3:00am – The server by itself performs an update for Windows.&lt;br /&gt;
&lt;br /&gt;
4. At 4:00am – The server performs a backup to the headquarters for clients, and then automatically generates an email addressed to the NEOSYS staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
5. At 6:00am – The server starts up NEOSYS.&lt;br /&gt;
&lt;br /&gt;
==Using NEOSYS Terminology while communicating with Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support must communicate in correct language to clients on finance issues in order to ensure that our records exactly represent reality. Conversely NEOSYS must not use other terminology because it can cause considerable confusion and poor quality results. In case client is new and still in training, use client terminology optionally as long as&lt;br /&gt;
&lt;br /&gt;
#It is only an addition to NEOSYS standard terminology&lt;br /&gt;
#Only if clear that it is client terminology by putting in brackets like this &amp;quot;Sales Invoices (called PI by you)&amp;quot;, where &amp;quot;you&amp;quot; means the client you are talking to or you can put the client company name instead perhaps.&lt;br /&gt;
&lt;br /&gt;
The objective is over time to avoid having the support team to have to know the terminology of the client. NEOSYS support team cannot possibly know and remember it for each client therefore the client MUST over time learn and use NEOSYS terminology. The initial period is one of relearning and translation for the client not for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
Many users operating NEOSYS finance module do not know proper financial procedures and may not appreciate how doing something in a wrong or unusual way now may not be correctable in the future.&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff must follow NEOSYS procedures only. If NEOSYS procedures need to be updated then this must be agreed in advance and not AFTER the fact.&lt;br /&gt;
&lt;br /&gt;
==Amending/Reposting Journal Entries==&lt;br /&gt;
In certain exceptional cases, amending/reposting of journal entries is allowed for only one day to enable clients to present reports in an alternative manner. &lt;br /&gt;
&lt;br /&gt;
It must be agreed with the client that reposting rights will be granted for only one day and NEOSYS Support will automatically remove it and check for CCB error thereafter.&lt;br /&gt;
&lt;br /&gt;
This would be subject to NEOSYS requiring a written LETTER OF APPROVAL duly signed and stamped by the highest management of the company.&lt;br /&gt;
&lt;br /&gt;
In case the client management decides to allow editing/reposting of journal entries, the following procedure is to be followed:&lt;br /&gt;
&lt;br /&gt;
#Client must de-allocate vouchers which need to be amended&lt;br /&gt;
#NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
#Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;( While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
#Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Print all ledgers for the whole year&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*Cross-check all balances&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
#Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
#Cross-check all balances for the current year.&lt;br /&gt;
#If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
==Removal of unauthorized third-party software on client servers==&lt;br /&gt;
&lt;br /&gt;
Rule: Any third party software that is discovered by NEOSYS support staff on client servers that has been installed without the agreement of NEOSYS should be uninstalled immediately on discovery.&lt;br /&gt;
&lt;br /&gt;
However purposeful a software is, NEOSYS is contractually responsible for support and there are too many opportunities for poorly installed software to cause unpredictable damage to the NEOSYS database so NEOSYS has to have a clear and safe and simple policy to ensure the integrity of client data. Installing software without prior discussion with NEOSYS by itself indicates that insufficient care and consideration has been given to possible issues.&lt;br /&gt;
&lt;br /&gt;
Having unauthorized third party software on the server can possibly lead to a backup failure. For example, [[Backup_and_Restore#Error_Message:_.22LISTS_file_is_not_available.22|LISTS file not available]] error.&lt;br /&gt;
&lt;br /&gt;
Any software required by client IT for some purpose may only be installed after discussion and agreement from NEOSYS support staff concerning the configuration and operation of the software.&lt;br /&gt;
&lt;br /&gt;
The NEOSYS Software Licence and Support agreement requires that where NEOSYS software is installed on client servers that a dedicated server is provided and dedicated implies that no other software may be installed without the agreement of NEOSYS support.&lt;br /&gt;
&lt;br /&gt;
==Configuring tunnelier to autologin on opening tlp files==&lt;br /&gt;
If you have many tunnelier tlp files in a directory and connect by opening the desired tlp file the, instead of opening the file and then clicking Login you can also right click the file and select Connect.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can configure tunnelier to login (connect) automatically by following the procedure mentioned below. (Even if you configure automatic login, you can still open and not login by right clicking and choosing Open)&lt;br /&gt;
&lt;br /&gt;
===Windows 8===&lt;br /&gt;
&lt;br /&gt;
Cannot be done using standard Windows UI. Some download utilities can do it. TODO put a safe one in neosys.com/support&lt;br /&gt;
&lt;br /&gt;
===Windows XP/Vista/7/2008===&lt;br /&gt;
&lt;br /&gt;
#Go to My Computer&lt;br /&gt;
#Click on Tools -&amp;gt; Folder Options &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on File Types&lt;br /&gt;
#*Select TLP (Bitvise Tunnelier Profile) [Type &amp;quot;TLP&amp;quot; to find it quickly]&lt;br /&gt;
#*Click on Advanced &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-2.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Connect and Click on Set Default &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; [[image:tunnauto-3.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==International v/s Indian English==&lt;br /&gt;
&lt;br /&gt;
There are some words which have completely different meanings in International and Indian English. NEOSYS Staff should follow International English only. Below are the examples of few of those words:&lt;br /&gt;
&lt;br /&gt;
Word: &#039;&#039;&#039;Doubt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the English language word &amp;quot;doubt&amp;quot; means to distrust an alleged fact on the basis of a reason, depending on the strength of the reason which may be anything from factual to feeling e.g &amp;quot;I have no reason to doubt him&amp;quot;.&lt;br /&gt;
This usage is followed worldwide.&lt;br /&gt;
&lt;br /&gt;
Some people especially from Indian origin use &amp;quot;doubt&amp;quot; when they are unaware about a fact. e.g &amp;quot;I want to clear my doubts about this procedure&amp;quot;. This is incorrect. The word must be used when you do not agree on something on the basis of a reason and not when you do not have knowledge about it.&lt;br /&gt;
&lt;br /&gt;
==[[ New Employee Training Checklist]]==&lt;br /&gt;
&lt;br /&gt;
==[[ New Client Training Notes]]==&lt;br /&gt;
&lt;br /&gt;
==[[ General Office Procedures]]==&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Uninstalling_clients_hosted_on_NEOSYS_Server&amp;diff=3765</id>
		<title>Uninstalling clients hosted on NEOSYS Server</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Uninstalling_clients_hosted_on_NEOSYS_Server&amp;diff=3765"/>
		<updated>2020-11-08T10:21:27Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This must be done in the following circumstances:&lt;br /&gt;
&lt;br /&gt;
#Reinstallation on other servers&lt;br /&gt;
#Reinstallation on clients own server&lt;br /&gt;
#Termination of contract&lt;br /&gt;
#Any other reason&lt;br /&gt;
&lt;br /&gt;
NEOSYS needs to:&lt;br /&gt;
&lt;br /&gt;
#Ensure that the installations can no longer be used by accident or design.&lt;br /&gt;
#Ensure that for a reasonable period of time that NEOSYS can be re-enabled in case of error or change in circumstances.&lt;br /&gt;
&lt;br /&gt;
Include admin@neosys.com when sending emails regarding this subject.&lt;br /&gt;
&lt;br /&gt;
====Stage 1. Disabling====&lt;br /&gt;
&lt;br /&gt;
1. Ensure that the NEOSYS processes, for the installation that is being moved, have been shut down. This includes checking that no ntvdm process is running for the installation being moved, in procexp.exe (Find, Handle, D:)&lt;br /&gt;
&lt;br /&gt;
2. Comment the lines pertaining to the stopped installation in D:/Apache24/conf/neosys2.conf&lt;br /&gt;
&lt;br /&gt;
3. Edit the process startup cmd file, which is scheduled to run daily in the task scheduler and comment out the stopped installation from it.&lt;br /&gt;
&lt;br /&gt;
4. Do not amend the client folder name or location, leave the client folder name as it is.&lt;br /&gt;
&lt;br /&gt;
The old procedure to Capitalise the client folder name or MOVING this folder to the &amp;quot;OLD&amp;quot; folder leads to backups doubling up on capacity on the backup server as the historical snapshots retain the old folders on the backup server. Hence, these procedures must be stopped. &lt;br /&gt;
&lt;br /&gt;
5. Retain a copy of the latest backup.zip file as mentioned in [[Backup_and_Restore#Historical.2FLapsed_Clients.3F| Handling backup for historical clients]]&lt;br /&gt;
&lt;br /&gt;
6. Comment the lines for the stopped installation in the Nagios config file so that Nagios stops alerting for it. (edit: genclients.sh) &lt;br /&gt;
&lt;br /&gt;
7. Strike-through the terminated client&#039;s link on support home page (support.htm).&lt;br /&gt;
&lt;br /&gt;
====Stage 2. Permanent Deletion====&lt;br /&gt;
&lt;br /&gt;
Any installation found in the hosts\OLD folder which is older than one year may be deleted to free up storage and backup resources as follows:&lt;br /&gt;
&lt;br /&gt;
1. Delete the lines pertaining to stopped installations in D:/Apache24/conf/neosys2.conf.&lt;br /&gt;
&lt;br /&gt;
2. Delete the associated folders in hosts folder.&lt;br /&gt;
&lt;br /&gt;
3. Remove the terminated client&#039;s link from support home page (support.htm).&lt;br /&gt;
&lt;br /&gt;
4. Delete the associated entry from Zone Edit.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3683</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3683"/>
		<updated>2020-01-28T06:46:10Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Redo Open New Year procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cross-Year Cross Check Balance Warnings ==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
!!! WARNING This is a dangerous procedure. IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts. This can be caused by:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Meaning of other messages ===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
=== Re-enabling CCB warning mail notifications ===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX ==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C ] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
=== Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;quot;*MEVEJ*FZ&amp;quot;  L=232 V=REC*461*FZ 05/07/09 B=447 &amp;quot;MEVEJ&amp;quot;&lt;br /&gt;
  different account &amp;quot;ADVOPME&amp;quot;&lt;br /&gt;
                     Delete the index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│None&lt;br /&gt;
  3│Yes&lt;br /&gt;
  4│All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════════════════════════════╗&lt;br /&gt;
║  &amp;quot;*VIV*N&amp;quot;  L=458 V=IN*2012/1170*N 29/05/12 missing voucher      ║&lt;br /&gt;
║                     Delete the index entry?                     ║&lt;br /&gt;
║───┬─────────────────────────────────────────────────────────────║&lt;br /&gt;
║  1&amp;gt;No                                                           ║&lt;br /&gt;
║  2│Yes                                                          ║&lt;br /&gt;
║  3│None                                                         ║&lt;br /&gt;
║  4│All                                                          ║&lt;br /&gt;
╚═════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Different Date - Correct index entry? ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*OMD*AP&amp;quot;  L=115 V=IN*2013/350*AP 31/03/13 B=1159&lt;br /&gt;
  different date &amp;quot;14/03/13&amp;quot;&lt;br /&gt;
                     Correct index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│Yes&lt;br /&gt;
  3│Correct None&lt;br /&gt;
  4│Correct All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Checking if a voucher is fully posted ==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
=== First line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
=== Last line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
=== First and last lines are posted ===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
== Voucher number missing from posted batches ==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
Run the following command in maintenance mode and check for errors. &lt;br /&gt;
 &lt;br /&gt;
 F5&lt;br /&gt;
 UTIL&lt;br /&gt;
 CHK.VOUCHERS  &lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
== [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS ] ==&lt;br /&gt;
&lt;br /&gt;
== Using CHK.POST to fix some types of Cross Check Balance (CCB) errors ==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors &lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Redo_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
== B10 &amp;amp; B12 Errors ==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals which are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
See [[Procedures#Amending.2FReposting_Journal_Entries|Procedure for Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
To repost a batch, edit the journal on the Journal Entry/Query page and save. Click OK for the prompt “OK to repost now?”.&lt;br /&gt;
== Editing and Reposting Vouchers ==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
=== UNPOST ===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
=== EDIT ===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
=== REPOST ===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Removing strange outstanding items on accounts that have balance of zero ==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reinstating Open Item Statements after Clear Open Items ==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
=== 1. Check, solve, record all existing cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
=== 3. Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Check for cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Speeding up CHK.VOUCHERS CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
== Check steps of each CHK program ==&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CONTROLS ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VOUCHERS ===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BATCHES ===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VINDEX ===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.OB ===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BALANCES ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CHARTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ACCOUNTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
== Fixing opening balance of new year does not agree with the closing balance of the previous year ==&lt;br /&gt;
&lt;br /&gt;
In order to fix this problem, redo the open new year procedure for the problematic year, where Recreate opening balances (which is part of the opennewyear.subs program) should fix the issue.&lt;br /&gt;
&lt;br /&gt;
=== Redo Open New Year procedure ===&lt;br /&gt;
&lt;br /&gt;
In latest versions of NEOSYS, you can reopen a year using the below command.&lt;br /&gt;
&lt;br /&gt;
 REOPENYEAR &amp;lt;Companycodes&amp;gt; YYYY &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :REOPENYEAR A,AA 2020                                                      │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Maintenance mode, run CHK.OB and include a few prior years as well, to see if all balances are fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Uninstalling_clients_hosted_on_NEOSYS_Server&amp;diff=3674</id>
		<title>Uninstalling clients hosted on NEOSYS Server</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Uninstalling_clients_hosted_on_NEOSYS_Server&amp;diff=3674"/>
		<updated>2020-01-12T10:12:13Z</updated>

		<summary type="html">&lt;p&gt;Joel: Added instructions to include admin when sending the FYI emails regarding disabling or deletion.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This must be done in the following circumstances:&lt;br /&gt;
&lt;br /&gt;
#Reinstallation on other servers&lt;br /&gt;
#Reinstallation on clients own server&lt;br /&gt;
#Termination of contract&lt;br /&gt;
#Any other reason&lt;br /&gt;
&lt;br /&gt;
NEOSYS needs to:&lt;br /&gt;
&lt;br /&gt;
#Ensure that the installations can no longer be used by accident or design.&lt;br /&gt;
#Ensure that for a reasonable period of time that NEOSYS can be re-enabled in case of error or change in circumstances.&lt;br /&gt;
&lt;br /&gt;
Include admin@neosys.com when sending emails regarding this subject.&lt;br /&gt;
&lt;br /&gt;
====Stage 1. Disabling====&lt;br /&gt;
&lt;br /&gt;
1. Ensure that the NEOSYS processes, for the installation that is being moved, have been shut down. This includes checking that no ntvdm process is running for the installation being moved, in procexp.exe (Find, Handle, D:)&lt;br /&gt;
&lt;br /&gt;
2. Stop the associated web in IIS.&lt;br /&gt;
&lt;br /&gt;
3. Edit the process startup cmd file, which is scheduled to run daily in the task scheduler and comment out the stopped installation from it.&lt;br /&gt;
&lt;br /&gt;
4. Do not amend the client folder name or location, leave the client folder name as it is.&lt;br /&gt;
&lt;br /&gt;
The old procedure to Capitalise the client folder name or MOVING this folder to the &amp;quot;OLD&amp;quot; folder leads to backups doubling up on capacity on the backup server as the historical snapshots retain the old folders on the backup server. Hence, these procedures must be stopped. &lt;br /&gt;
&lt;br /&gt;
5. Retain a copy of the latest backup.zip file as mentioned in [[Backup_and_Restore#Historical.2FLapsed_Clients.3F| Handling backup for historical clients]]&lt;br /&gt;
&lt;br /&gt;
6. Comment the lines for the stopped installation in the Nagios config file so that Nagios stops alerting for it. (edit: genclients.sh) &lt;br /&gt;
&lt;br /&gt;
7. Strike-through the terminated client&#039;s link on support home page (support.htm).&lt;br /&gt;
&lt;br /&gt;
====Stage 2. Permanent Deletion====&lt;br /&gt;
&lt;br /&gt;
Any installation found in the hosts\OLD folder which is older than one year may be deleted to free up storage and backup resources as follows:&lt;br /&gt;
&lt;br /&gt;
1. Delete the associated web in IIS.&lt;br /&gt;
&lt;br /&gt;
2. Delete the associated folders in hosts folder.&lt;br /&gt;
&lt;br /&gt;
3. Remove the terminated client&#039;s link from support home page (support.htm).&lt;br /&gt;
&lt;br /&gt;
4. Delete the associated entry from Zone Edit.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=File:Nagios-login.png&amp;diff=3672</id>
		<title>File:Nagios-login.png</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=File:Nagios-login.png&amp;diff=3672"/>
		<updated>2020-01-06T08:02:26Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Login pop-up when accessing monitor using URL&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Handling_Nagios_Client_Monitoring_System&amp;diff=3667</id>
		<title>Handling Nagios Client Monitoring System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Handling_Nagios_Client_Monitoring_System&amp;diff=3667"/>
		<updated>2019-12-30T07:23:34Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* The NEOSYS process IS running on the server but still cannot connect to NAGIOS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Procedure to handle Nagios==&lt;br /&gt;
&lt;br /&gt;
The procedure that support staff need to follow while handling Nagios is documented under [[Procedures#Handling_Nagios_Client_Monitoring_system| Procedures: Handling Nagios Client Monitoring System]]&lt;br /&gt;
&lt;br /&gt;
Nagios is accessed via this link: http://monitor.neosys.com/nagios3&lt;br /&gt;
&lt;br /&gt;
==Nagios services==&lt;br /&gt;
&lt;br /&gt;
Nagios is configured to display information pertaining to all NEOSYS client&#039;s server statuses which include multiple services such as:&lt;br /&gt;
# HTTPS: Most of NEOSYS clients are configured to have external web access via secure HTTP protocol (port 4430) from outside office. Nagios is configured to check port 4430 on a regular interval of 10 minutes and display any issues in accessing the same.&lt;br /&gt;
# SSH: As part of the support contract, NEOSYS should have external secure access to the client server usually over port 19580. Nagios is configured to check this port on a regular interval of 10 minutes and display any issues in accessing the same.&lt;br /&gt;
# Ping: Nagios is also configured to ping the client router as a measure to check if router responds incase the NEOSYS server is down.&lt;br /&gt;
# NEOSYS: This service works in a reverse direction, and the NEOSYS installation on the client server sends information such as databases running, current backup status, internal and internet IP addressess etc to Nagios on a regular interval of 10 minutes.&lt;br /&gt;
&lt;br /&gt;
Some key information about Nagios is as follows:&lt;br /&gt;
* Nagios is also configured to display information related to internal servers. &lt;br /&gt;
* Clients hosted on a NEOSYS cloud server might not have services such as SSH or PING as this is monitored as part of the internal server service.&lt;br /&gt;
* Nagios sends out email alerts to support2@neosys.com (which is forwarded to support@neosys.com) from 8 am to 12 midnight on all Dubai working days (Sun-Thu). No alerts are sent out on Fri and Sat, unless they are for NEOSYS internal servers.&lt;br /&gt;
&lt;br /&gt;
Nagios Configuration files:&lt;br /&gt;
&lt;br /&gt;
* Commands to check different services. ~/etc/nagios3/commands.cfg &lt;br /&gt;
* Contacts where support2@neosys.com is configured. Emails from nagios will be sent to the email ID configured here. /etc/nagios3/conf.d.backups/contacts.cfg &lt;br /&gt;
* For Oman Client. Unclear of purpose.  /etc/nagios3/conf.d.backups/dtme.cfg &lt;br /&gt;
* Fully commented file of generic hostgroup definitions. /etc/nagios3/conf.d.backups/hostgroups_nagios2.cfg &lt;br /&gt;
* Host group definition. /etc/nagios3/conf.d.backups/linux.cfg &lt;br /&gt;
* Files where all the neosys hosts and hostgroups are defined. /etc/nagios3/conf.d.backups/neosysclients.cfg &lt;br /&gt;
* Config for monitor.neosys.com. /etc/nagios3/conf.d.backups/monitor.cfg&lt;br /&gt;
&lt;br /&gt;
==How to handle a service error==&lt;br /&gt;
# Nagios Service Info - get there via various routes eg from Service Problems - then click on the service name (not the host name)&lt;br /&gt;
# Service Commands, Acknowledge this service problem (only services with status Warning or Critical have this option)&lt;br /&gt;
# Enter a note - explaining to yourself and your co-workers explaining how the problem is being handled and when to follow up&lt;br /&gt;
&lt;br /&gt;
Notifications will be automatically resumed once the service becomes OK again.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Disable notifications&amp;quot; is not quite the same and shows as red on tactical summary screen.&lt;br /&gt;
&lt;br /&gt;
====[[Backup_and_Restore#Updating_Nagios_incase_of_failures| Updating Nagios in case of backup failures]]====&lt;br /&gt;
&lt;br /&gt;
==== How to stop ALL notifications ====&lt;br /&gt;
&lt;br /&gt;
Useful to stop a massive number of alerts due to various causes.&lt;br /&gt;
&lt;br /&gt;
#Nagios Process Info&lt;br /&gt;
#Enable/Disable notifications&lt;br /&gt;
&lt;br /&gt;
==== Speeding up Nagios web interface ====&lt;br /&gt;
&lt;br /&gt;
The usual F5 to refresh before the automatic 90 second refresh works but Ctrl+F5 doesnt.&lt;br /&gt;
&lt;br /&gt;
==== Speeding up NEOSYS process checkins ====&lt;br /&gt;
&lt;br /&gt;
You can force a neosys service checkin from NEOSYS maintenance mode (any process/database) press F5&lt;br /&gt;
&lt;br /&gt;
 MONITOR2&lt;br /&gt;
&lt;br /&gt;
==== [http://itwiki.neosys.com/index.php/Setting_up_monitoring_in_Nagios#Adding_a_new_NEOSYS_installation_.28new_client.29 Adding the client to Nagios] ====&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting NAGIOS generally==&lt;br /&gt;
===Fixing “CRITICAL – Socket timeout after 10 secs” error message on NAGIOS===&lt;br /&gt;
&lt;br /&gt;
====Error Message====&lt;br /&gt;
&lt;br /&gt;
[[image:Vm3nagios.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Problem====&lt;br /&gt;
&lt;br /&gt;
NAGIOS is not updating services like CPU Load, Drive Space C:, Drive Save D:,Explorer, Memory Usage etc.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
Open Windows Task Manager and kill any nscp.exe process. Then, restart NSClient++ from the desktop or by going to Start&amp;gt; Programs&amp;gt; NSClient++&lt;br /&gt;
These steps can be carried out even when users are active.&lt;br /&gt;
&lt;br /&gt;
===Fixing “NEOSYS has not checked in” error message===&lt;br /&gt;
&lt;br /&gt;
==== Error Message Explained ====&lt;br /&gt;
&lt;br /&gt;
Nagios reports this error when it is is not able to update the status of NEOSYS for a particular client server.&lt;br /&gt;
&lt;br /&gt;
==== Possible Causes &amp;amp; Solutions ====&lt;br /&gt;
&lt;br /&gt;
=====The maintenance window is left open=====&lt;br /&gt;
&lt;br /&gt;
Make sure that there is no maintenance window left open in the server.&lt;br /&gt;
&lt;br /&gt;
=====Hung process on server===== &lt;br /&gt;
&lt;br /&gt;
Check if there are any hung processes on the server e.g. Fatal Error in Rev Restart. Follow steps in troubleshooting [[Troubleshooting_NEOSYS_Generally#Troubleshooting_Hung_processes| hung process]]. &lt;br /&gt;
&lt;br /&gt;
=====The NEOSYS process IS NOT running on the server=====&lt;br /&gt;
&lt;br /&gt;
If there are no NEOSYS processes running, then start the NEOSYS process and wait for NEOSYS to check into Nagios, or force Nagios to re-check the status of NEOSYS service.&lt;br /&gt;
&lt;br /&gt;
=====The NEOSYS process IS running on the server but still cannot connect to NAGIOS=====&lt;br /&gt;
&lt;br /&gt;
NEOSYS connects to Nagios using http and automatically detects and uses any http proxy configuration configured in Internet Explorer. &lt;br /&gt;
&lt;br /&gt;
If Internet Explorer in the server can reach the internet then NEOSYS should be able to update to NAGIOS via the same proxy.&lt;br /&gt;
&lt;br /&gt;
Check if Internet Explorer can reach Nagios by using the below links. The check is successful if you get the Nagios login request shown in the image below.&lt;br /&gt;
*New versions of NEOSYS need to reach the below URL. (Outbound port 4428 is required instead of port 80 on later versions on NEOSYS) &amp;lt;br&amp;gt; &amp;lt;pre&amp;gt;https://monitor.hosts.neosys.com:4428/monitor.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Older versions of NEOSYS need the server to be able to reach the below URL. &amp;lt;br&amp;gt; &amp;lt;pre&amp;gt;http://monitor.hosts.neosys.com/monitor.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:nagios_access.png]]&lt;br /&gt;
&lt;br /&gt;
======If Internet Explorer CANNOT connect to Nagios======&lt;br /&gt;
&lt;br /&gt;
The client&#039;s IT must enable outbound access preferably on all ports or at least 4428 to our NEOSYS server at monitor.hosts.neosys.com. &lt;br /&gt;
&lt;br /&gt;
If outbound access to monitor.hosts.neosys.com on port 4428 has not been enabled, then Nagios will not be able to update the status of the host and will show the error &amp;quot;NEOSYS not checked in&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If port 4428 cannot be used, then Support can manually configure the network to use standard port 443 in the [http://userwiki.neosys.com/index.php/System_Configuration_File#Monitor_Port_No. system configuration file.]&lt;br /&gt;
&lt;br /&gt;
This requires that the client&#039;s IP number is added to the list of allowed IP numbers on nl10r router since Nagios https server gets multiple probes a day on port 443 if it is left open to everyone.&lt;br /&gt;
&lt;br /&gt;
======If Internet Explorer CAN connect to Nagios====== &lt;br /&gt;
&lt;br /&gt;
View the Internet Explorer proxy configuration as follows:&lt;br /&gt;
&lt;br /&gt;
[[image:ieproxy.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Check if there is an issue with NEOSYS&#039; http proxy server configuration as follows:&lt;br /&gt;
&lt;br /&gt;
#Search for UPDATE.$WG file located in the neosys\neosys. folder and open it using notepad or wordpad.&lt;br /&gt;
#You should find a message similar to the following:   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connecting to 192.168.100.145:8080 failed: No such file or directory.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Where the above appears to be some non-functional http proxy server ip/port number and is not the expected nagios server ip number.&lt;br /&gt;
A windows proxy command shows the same ip and port:&lt;br /&gt;
&lt;br /&gt;
On Windows 2003/XP&lt;br /&gt;
&lt;br /&gt;
 proxycfg&lt;br /&gt;
&lt;br /&gt;
On Windows 2008/Win7&lt;br /&gt;
&lt;br /&gt;
 NetSH WinHTTP import Proxy ie&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Microsoft (R) WinHTTP Default Proxy Configuration Tool&lt;br /&gt;
Copyright (c) Microsoft Corporation. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
Current WinHTTP proxy settings under:&lt;br /&gt;
  HKEY_LOCAL_MACHINE\&lt;br /&gt;
    SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\&lt;br /&gt;
      WinHttpSettings :&lt;br /&gt;
&lt;br /&gt;
    Proxy Server(s) :  192.168.100.145:8080&lt;br /&gt;
    Bypass List     :  192.168.*.*;localhost;&amp;lt;local&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 1 - Remove the above setting to create a direct connection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#To remove the registry entries that ProxyCfg.exe creates,you must delete the WinHttpSettings value from the following registry key:&amp;lt;br&amp;gt;&amp;lt;PRE&amp;gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\WinHttpSettings&amp;lt;/PRE&amp;gt;&lt;br /&gt;
#After you do the above, confirm that the proxy details are deleted by running the proxycfg command &amp;lt;BR&amp;gt;&lt;br /&gt;
#Next, restart the NEOSYS processes for the changes to be affected &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution 2 - Configure a functioning proxy ip/port number&#039;&#039;&#039;&lt;br /&gt;
#Use the proxycfg command to enter a working proxy ip/port number/exclusion list: http://msdn.microsoft.com/en-us/library/aa384069%28VS.85%29.aspx&lt;br /&gt;
#After you do the above, confirm that the new proxy details are working by running the proxycfg command again&lt;br /&gt;
#Next, restart the NEOSYS processes for the changes to be affected &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Please refer to the following link before you restart NEOSYS processes: [[Administering_NEOSYS_Server#Closing_NEOSYS_Services|Closing NEOSYS Services]]&lt;br /&gt;
&lt;br /&gt;
On the client server, look at the text of UPDATE.$WG and other UPDATE.* files in the client&#039;s NEOSYS installation neosys/neosys folder for clues.&lt;br /&gt;
&lt;br /&gt;
===== There is a problem with the USB media inserted for backup=====&lt;br /&gt;
Refer [[Troubleshooting_NEOSYS_Generally#Error_message:_.E2.80.9CAbort.2C_Retry.2C_Fail.E2.80.9D|here]]&lt;br /&gt;
&lt;br /&gt;
===== NEOSYS thinks it sees a new neosys2.exe upgrade file on the location http://www.neosys.com/support/neosys2.exe and attempts to download it =====&lt;br /&gt;
&lt;br /&gt;
Refer [[Troubleshooting_NEOSYS_Generally#NEOSYS_process_window_displays_message_.22Upgrade_Downloading.22 | here]]&lt;br /&gt;
&lt;br /&gt;
===Fixing &amp;quot;Cannot make SSL connection&amp;quot; error===&lt;br /&gt;
====Error Message====&lt;br /&gt;
[[File:SSL.jpg]]&lt;br /&gt;
&lt;br /&gt;
Users get the message &amp;quot;This page cannot be displayed&amp;quot; when they try to access the HTTPS website.&lt;br /&gt;
TODO Add screenshot&lt;br /&gt;
&lt;br /&gt;
====Cause====&lt;br /&gt;
When there are multiple HTTPS sites on one server, any subsequent SSL self certifications seems to destroy all other sites with self certification where the export/REMOVE/import step is not done for some reason. See [http://techwiki.neosys.com/index.php/Setting_up_HTTPS#Export.2C_Remove_and_Import_Certificates Export, Remove and Import Step]&lt;br /&gt;
&lt;br /&gt;
This issue is only evident after the server restart.&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
Re-install certificates. See [http://techwiki.neosys.com/index.php/Setting_up_HTTPS#Re-installing_Certificates Re-installing Certificates]&lt;br /&gt;
&lt;br /&gt;
====Fixing &amp;quot;check_ssl_certificates&amp;quot; error====&lt;br /&gt;
&lt;br /&gt;
=====Cause=====&lt;br /&gt;
This error appears when the current ssl certificate to which website binding is done is no longer valid.&lt;br /&gt;
&lt;br /&gt;
=====Solution=====&lt;br /&gt;
Use the latest valid ssl certificate and redo website binding. Refer to link [[Setting_up_HTTPS|Setting up HTTPS]]&lt;br /&gt;
&lt;br /&gt;
====Backup -&amp;gt; Impossible alert====&lt;br /&gt;
=====Possible Causes and Solutions=====&lt;br /&gt;
If there is an error &amp;quot;Backup-&amp;gt;Impossible&amp;quot; on Nagios check if the USB is properly inserted and schedule downtime to Nagios for 2 hours.&lt;br /&gt;
&lt;br /&gt;
====[[Backup_and_Restore#Interchange_backup_USB_mail_reminder| &amp;quot;Change Backup&amp;quot; alert]]====&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting Network Outages reflected in Nagios due to reassigning of router name or IP address===&lt;br /&gt;
Nagios displays errors if a router name or the ip address it is monitoring have been reassigned. &lt;br /&gt;
&lt;br /&gt;
We can resolve this issue by trying to find the ISP router ip address just before the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
Steps:-&lt;br /&gt;
#Login to Nagios&lt;br /&gt;
#Click on Tactical Overview -&amp;gt; Network Outages and click on Blocking Outages to view &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tracert-00.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#You will now see the host/ISP which is down. Click on the status map icon to identify the host associated with the ISP, as shown below: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tracert-01.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#From the Network Map displayed, identify the host associated with the ISP. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tracert-02.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#If you already know the ip address of the host then skip to next step else, in Nagios, click on Host Detail, then on the hostname identified earlier and From the Host Details shown, save the host url. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tracert-03.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tracert-04.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Log onto www.network-tools.com:&lt;br /&gt;
#*Select Trace&lt;br /&gt;
#*Enter the host&#039;s ip address if already known or host url&lt;br /&gt;
#*Click on Go &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tracert-05.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#The trace route should complete successfully revealing the IP address of the ISP just before the NEOSYS server. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tracert-06.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#You can now login to zoneedit and update the ip address of the host.&lt;br /&gt;
#Check Nagios.&lt;br /&gt;
====Nagios reports a hung process====&lt;br /&gt;
=====Possible Causes and Solutions=====&lt;br /&gt;
Refer link [[Troubleshooting_NEOSYS_Generally#Error_message:_.22Read_error_in_the_operating_system_file.22|here]]&lt;br /&gt;
&lt;br /&gt;
====Explorer.exe not running====&lt;br /&gt;
Nagios will display this error for only Win3 at the moment. &lt;br /&gt;
&lt;br /&gt;
=====Possible Causes and Solutions=====&lt;br /&gt;
This error means that the server has (for whatever reasons) rebooted and stuck at the Windows login prompt for someone to enter the username &amp;amp; password. (More info on explorer.exe is available at http://en.wikipedia.org/wiki/Explorer.exe)&lt;br /&gt;
&lt;br /&gt;
Solution to this problem would be to login via Tunnelier and open up Remote Desktop Connection.&lt;br /&gt;
&lt;br /&gt;
==Configuring Sonicwall firewall to allow NEOSYS to update Nagios==&lt;br /&gt;
====Configuring Sonicwall firewall to allow NEOSYS to update Nagios====&lt;br /&gt;
&lt;br /&gt;
This is documented at [[Sonicwall_Firewall_Configuration#Configuring_Sonicwall_firewall_to_allow_NEOSYS_to_update_Nagios|Configuring Sonicwall firewall to allow NEOSYS to update Nagios]]&lt;br /&gt;
&lt;br /&gt;
==Counting current active users==&lt;br /&gt;
&lt;br /&gt;
NEOSYS gives an estimate of the number of users currently active by counting how&lt;br /&gt;
many users have been seen to be active, even once, within the last hour.&lt;br /&gt;
&lt;br /&gt;
This can give a sense of the processing requirements for an installation.&lt;br /&gt;
&lt;br /&gt;
The numbers can be seen in nagios installations screen from support.htm&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
  Users: 5/4/2 Max: 7/5/2&lt;br /&gt;
&lt;br /&gt;
Users means:&lt;br /&gt;
&lt;br /&gt;
*5 unique browser session ids seen in the last hour&lt;br /&gt;
*4 unique user codes seen in the last hour&lt;br /&gt;
*2 Unique IP Nos seen in the last hour (60 mins)&lt;br /&gt;
&lt;br /&gt;
Max means the maximums of the above seen in any one of the last 24 hours.&lt;br /&gt;
&lt;br /&gt;
In practice, the middle figure, count of unique user codes, is very&lt;br /&gt;
close to the real number of people active within an hour. However,&lt;br /&gt;
since the same user code can be used by different people, even on&lt;br /&gt;
different computers (although not at the same time) it could&lt;br /&gt;
technically be an underestimate.&lt;br /&gt;
&lt;br /&gt;
The number of currently active users is usually much lower than the number of&lt;br /&gt;
registered users. This is because some registered users use the system&lt;br /&gt;
infrequently and many dont use the system all the time.&lt;br /&gt;
&lt;br /&gt;
The total number of different user codes seen to be active over the&lt;br /&gt;
whole day is not shown. For that, you can see Usage Statistics.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=File:Nagios_access.png&amp;diff=3666</id>
		<title>File:Nagios access.png</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=File:Nagios_access.png&amp;diff=3666"/>
		<updated>2019-12-30T07:14:43Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Backup_and_Restore&amp;diff=3663</id>
		<title>Backup and Restore</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Backup_and_Restore&amp;diff=3663"/>
		<updated>2019-12-23T07:04:06Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Getting confirmations for Backup email list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description of Backup Procedure for the Client Hosted NEOSYS Server ==&lt;br /&gt;
&lt;br /&gt;
3 USBs must be maintained and rotated on a weekly basis.&lt;br /&gt;
&lt;br /&gt;
Every night, the NEOSYS process stops serving users at around 1:00 AM to 5:00 AM (local time of the client&#039;s main office) and performs the following procedure:&lt;br /&gt;
&lt;br /&gt;
*All the database files are checked for physical corruption.&lt;br /&gt;
*All the database files are zipped into a file on the USB who&#039;s path would be something like F:\DATA.BAK\CLIENTX\MONDAY\BACKUP.ZIP file.&lt;br /&gt;
*The file having the same name as that of the corresponding day of the week as that of 3 weeks back is overwritten.A &amp;quot;backup alert&amp;quot; email indicating success or failure is sent to senior managers at the client, the client’s IT manager and backups@neosys.com.&lt;br /&gt;
*An internal log (accessible on each database&#039;s Support Menu) is maintained as a record and in case the emails cannot be sent out for some reason.&lt;br /&gt;
*NEOSYS support staff in Dubai check the emails every morning Sunday through Thursday.&lt;br /&gt;
*In the case of failure, NEOSYS support staff in Dubai take appropriate action and send an email (to the same people who receive the automated backup alert emails) indicating what action has been taken.&lt;br /&gt;
*Additionally offsite backup can be set up on NEOSYS server&lt;br /&gt;
&lt;br /&gt;
== Description of Backup Procedure for the NEOSYS Client Hosting Server ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS backup is a two phase process. It is mandatory that both phases are complete for the process to be considered a backup.&lt;br /&gt;
&lt;br /&gt;
1. On the main NEOSYS server host(Schuberg Philis in Amsterdam as of Dec 2010),Every night, the NEOSYS process for selected databases stops serving users at around 1:00 AM to 5:00 AM (local time of the client&#039;s main office) and performs the following procedure:&lt;br /&gt;
*All the database files are checked for physical corruption.&lt;br /&gt;
*All the database files are zipped into a file who&#039;s path would be something like C:\DATA.BAK\CLIENTX\MONDAY\BACKUP.ZIP file.&lt;br /&gt;
*The file having the same name as that of the corresponding day of the week as last week is overwritten.A &amp;quot;backup alert&amp;quot; email indicating success or failure is sent to senior managers at the client, the client’s IT manager and backups@neosys.com.&lt;br /&gt;
*An internal log (accessible on each database&#039;s Support Menu) is maintained as a record and in case the emails cannot be sent out for some reason.&lt;br /&gt;
*NEOSYS support staff in Dubai check the emails every morning Sunday through Thursday.&lt;br /&gt;
*In the case of failure, NEOSYS support staff in Dubai take appropriate action and send an email (to the same people who receive the automated backup alert emails) indicating what action has been taken.&lt;br /&gt;
*The above does not by itself constitute a proper backup because the backup is stored on the same server and physical disk as the actual data.&lt;br /&gt;
&lt;br /&gt;
2. On the NEOSYS backup server host (in NEOSYS Dubai Office as of Dec 2010 but could be changed without notice to EvoSwitch in Amsterdam).&lt;br /&gt;
*At around 02:00-02:30 AM GMT daily, NEOSYS&#039;s backup server copies (replicates) all the BACKUP.ZIP files from the main NEOSYS server host to itself.&lt;br /&gt;
*An email indicating success or failure is sent to NEOSYS support staff (only) who deal with it in a similar way to phase 1, except that only NEOSYS management are updated.&lt;br /&gt;
&lt;br /&gt;
== Backup Procedures ==&lt;br /&gt;
=== Preparing nightly backup report ===&lt;br /&gt;
# Note the success, failure and other error of the clients backup mail in an excel sheet and forward the same to your manager.&lt;br /&gt;
# If there is a backup failure or backup is not available, check wiki to take necessary steps.&lt;br /&gt;
# If there is any unknown error, forward the same to your manager.&lt;br /&gt;
Send the backup report after every quarter to all the Clients having consolidated backups.&lt;br /&gt;
&lt;br /&gt;
=== Running a manual backup in case of failures ===&lt;br /&gt;
&lt;br /&gt;
If a backup has failed, Support should check if any users are active in that particular database. Check Menu -&amp;gt; Support -&amp;gt; List of Documents in Use and also check list of users to see last login time. From backup email inbox, check how much time the backup of that database usually takes.&lt;br /&gt;
&lt;br /&gt;
If no users have logged in yet and if backup of the database usually completes in a few minutes, quickly start a [[Backup_and_Restore#Manual_Backup| manual backup]]&lt;br /&gt;
&lt;br /&gt;
This MUST be done first thing in the morning since Dubai clients generally start working around the same time as Support team.&lt;br /&gt;
&lt;br /&gt;
=== Updating Nagios in case of failures ===&lt;br /&gt;
# If the backup failure is unsolved, schedule downtime Neosys service in Nagios till 01 am.&lt;br /&gt;
# If the backup did not happen because of server down. Call the IT person; ask him to re-boot the server and check wiki to do necessary step ahead and schedule downtime to Nagios for 2hours.&lt;br /&gt;
# If there is an error &amp;quot;Backup-&amp;gt;Impossible&amp;quot; on Nagios, check if the USB is properly inserted. If no USB is found, send a mail to the user asking to ensure that the backup USB is inserted properly. Schedule downtime to Nagios for 2hours.&lt;br /&gt;
&lt;br /&gt;
=== Interchange backup USB mail reminder ===&lt;br /&gt;
Basically all the clients have different days to change their backup USB. All the notification can be seen on Nagios at 12.00 pm every day.&lt;br /&gt;
&lt;br /&gt;
On the USB change day, at 6:00 am, when the processes start up, the system automatically sends the following email to everyone in the backup email receiver list:&lt;br /&gt;
&lt;br /&gt;
 It is time to change the NEOSYS backup media (e.g. USB Flash Drive)   &lt;br /&gt;
  &lt;br /&gt;
 Please change it before 12:00 midday today.&lt;br /&gt;
&lt;br /&gt;
Additional emails reminding IT staff to change backup media are sent out at 11:30am and 5pm if the backup media is not changed according schedule.&lt;br /&gt;
&lt;br /&gt;
Since the system automatically sends a USB change reminder email to the client, support staff do not have to send them any instructions about changing unless they have failed to change the USB on the scheduled day or the scheduled day needs to be moved to another day.  &lt;br /&gt;
&lt;br /&gt;
==== Importance of interchanging backup USBs ====&lt;br /&gt;
If the backup USB is not interchanged on the scheduled day then the NEOSYS automated backup fails. This happens because traditionally, each USB holds backup of 7 days and using 3 different USBs we can store backups for the last 21 days enabling us to restore the system unto a time period beginning 21 days prior.&lt;br /&gt;
If the USB is not changed then the first backup on the current USB is replaced with the new or latest backup leading to inconsistencies within the backups. Hence we must interchange the USB on schedule to avoid a backup failure the next morning.&lt;br /&gt;
&lt;br /&gt;
The reasons for using multiple USBs for backup are:&lt;br /&gt;
*We can keep other USBs out of the office for safety purposes since theft or office fire/water hazards could damage the computer and the USB keys if they are all in &lt;br /&gt;
the same place.&lt;br /&gt;
*Having multiple USBs provide safety against corrupt USBs which cannot be used to restore any backup data.&lt;br /&gt;
&lt;br /&gt;
=== Finding out which USB is inserted into the server ===&lt;br /&gt;
As we ask the client to have 3 USB&#039;s and interchange them weekly, we also need to sometimes track which one of these 3 USB&#039;s are inserted into the server. USB&#039;s can be tracked using their volume serial number in most cases. To find this out either go to the command prompt and type VOL &amp;lt;i&amp;gt;&amp;lt;drive letter&amp;gt;&amp;lt;/i&amp;gt; where drive letter is the USB drive letter OR in the nightly backup message check for the 2nd line (which looks like this - 14/12/2009 2:45pm Media: 705B-5B5F). However serial numbers can be the same even for different USB&#039;s. One of the reasons for this could be that the USBs were imaged from one single USB which caused their volume serial numbers to be the same. However, such a situation is very rare.&lt;br /&gt;
&lt;br /&gt;
=== Interchanging USB when scheduled USB change day falls on a holiday ===&lt;br /&gt;
When clients ask support which day to interchange USBs when their scheduled USB change day falls on a holidays, send them the below email.&lt;br /&gt;
&lt;br /&gt;
 Hi XXX,&lt;br /&gt;
 &lt;br /&gt;
 Kindly interchange the USB on the last working day before the holiday i.e XXXday DD/MM/YY and then interchange with the next scheduled USB on first working day after the holiday i.e. XXXday DD/MM/YY. Continue to change the USBs as usual on XXXday.&lt;br /&gt;
&lt;br /&gt;
=== Getting confirmations for Backup email list ===&lt;br /&gt;
&lt;br /&gt;
The below procedure is done once every year. A task has been set in Thunderbird to remind Support to begin the procedure in November.&lt;br /&gt;
&lt;br /&gt;
The first thing to do is to send the below draft email to Steve and ask if any changes are required.&lt;br /&gt;
&lt;br /&gt;
 Subject: YOUR URGENT REPLY IS REQUIRED - NEOSYS Backup Confirmations for &amp;lt;Company&amp;gt;, &amp;lt;City&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Hi &amp;lt;Decision_maker&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 We are updating our records of the contact people in your organisation who should receive the various NEOSYS system alert emails and backup confirmations.&lt;br /&gt;
 &lt;br /&gt;
 You are currently assigned as the decision maker in this matter&lt;br /&gt;
 &lt;br /&gt;
 Note that it is the responsibility of your company to verify that the backups are successful and to alert us whenever there is an issue with the same.&lt;br /&gt;
 &lt;br /&gt;
 Please confirm:&lt;br /&gt;
 &lt;br /&gt;
 1.   The following email addresses should continue to receive these alerts&lt;br /&gt;
 &lt;br /&gt;
 2.   Any additions/deletions of email addresses from this list&lt;br /&gt;
 &lt;br /&gt;
 For: &amp;lt;Company&amp;gt;, &amp;lt;City&amp;gt;:&lt;br /&gt;
 &lt;br /&gt;
 a) Decision Maker:&lt;br /&gt;
 &lt;br /&gt;
 b) IT Manager (or person responsible to change backup media):&lt;br /&gt;
 &lt;br /&gt;
 c) Monitors (Managers and/or interested parties):&lt;br /&gt;
 &lt;br /&gt;
 Best Regards,&lt;br /&gt;
 NEOSYS Support&lt;br /&gt;
&lt;br /&gt;
#After you receive confirmation, send emails to all clients.&lt;br /&gt;
#*Template email to each client (Thunderbird-&amp;gt;Support-&amp;gt;Templates-&amp;gt;BackupConfirmationEmails)&lt;br /&gt;
#Create a new spreadsheet after copying previous year&#039;s confirmations sheet and rename with current year.&lt;br /&gt;
#*You can find the previous year&#039;s confirmation list in C:\Users\Androulla\Nextcloud\support\Androulla_Backup Confirmations&lt;br /&gt;
#*Clear the contents and fill in as and when you get the confirmations from clients.&lt;br /&gt;
#*For hosted clients in the &#039;IT Manager&#039; field, put &#039;None&#039;&lt;br /&gt;
#*You can keep a list of all pending clients in a personal text file and/or mark as &#039;Pending&#039; in Spreadsheet.&lt;br /&gt;
#If any changes, update the Spreadsheet and change in NEOSYS.&lt;br /&gt;
#Set reminders to follow-up on these emails to decision makers once a week.&lt;br /&gt;
#In the case where a client asks for more than one decision maker, reply that it will be best to have only one decision maker.&lt;br /&gt;
#If no reply for two weeks, send email to another person other than the decision maker.&lt;br /&gt;
#*Order: Another management level user &amp;gt; Main point of contact -&amp;gt; Most active user(checked in authorisation file)&lt;br /&gt;
#When all clients confirm, check backup spreadsheet and confirm that it is in sync with System Config file and any personal records that you have kept.&lt;br /&gt;
&lt;br /&gt;
==Manual Backup==&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/General_FAQ#How_to_do_a_manual_backup.3F How to do a manual backup in NEOSYS]&lt;br /&gt;
&lt;br /&gt;
Manual backups can also be triggered on the server process screen by pressing the lower case letter b key. After the backup is complete the process will resume and restart the child processes. Pressing capital B will result in the process closing on completion of the backup and the child processes will not be restarted. This is useful if you want to trigger a backup and leave without waiting for it to complete.&lt;br /&gt;
&lt;br /&gt;
==Configuring NEOSYS automated backup==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NEOSYS is designed to do an automated backup of the data (not the program files). The configuration for the automated backup rests in the System Configuration File under Menu &amp;gt; Support.&lt;br /&gt;
&lt;br /&gt;
First step is to configure the automated email settings. After every backup attempt NEOSYS will send out a mail with the status of the backup (either success or failed). You have to configure the SMTP details here along with the list of recipients to the backup email. &lt;br /&gt;
&lt;br /&gt;
Ensure to have atleast 1 person from the client management and 1 person from the client IT, besides the mandatory backups@neosys.com address &lt;br /&gt;
&lt;br /&gt;
Always use the NEOSYS SMTP server details as follows and put in a fictitious client address so that NEOSYS staff can quickly identify which client this mail came from.&lt;br /&gt;
&lt;br /&gt;
[[image:backup1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Do not configure the backup time unless instructed by your manager. The system will automatically start the backup at 1 am if there is nothing configured in the Backup time.&lt;br /&gt;
&lt;br /&gt;
Type in the backup location (USB/other media) drive letter in the Backup Drive field and the Uploads fields. &lt;br /&gt;
&lt;br /&gt;
Putting a 0 in the Uploads field will disable the backup of the Uploaded files, else by default the uploaded files will be backed up to the drive mentioned in the backup drive field.&lt;br /&gt;
&lt;br /&gt;
The scheduled days of backup can be configured using the checkboxes. If none of the days are checked, backup will be done on all days by default.&lt;br /&gt;
&lt;br /&gt;
Next setup the auto-start of the databases and enter how many processes should be started and which all databases should be backed up. &lt;br /&gt;
&lt;br /&gt;
In the example below DEMO database has been configured to start 3 processes and also do the automated backup, whereas the DEMOTEST database is configured to start 1 process and no automated backup.&lt;br /&gt;
&lt;br /&gt;
[[image:backup2.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Non-Liability for Backup ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Non-Liability For Backup}}&lt;br /&gt;
&lt;br /&gt;
=== Backing up the Images folder ===&lt;br /&gt;
&lt;br /&gt;
The Images folder under the NEOSYS installation is used to upload images/artworks/files from the Job File section and hence needs to be backed up. NEOSYS will automatically backup this Images folder to the USB drive or other location (specified for the usual data backup) once a week. &lt;br /&gt;
&lt;br /&gt;
To configure this backup, RSYNC needs to have been installed during the initial installation.&lt;br /&gt;
&lt;br /&gt;
In case we need to configure the Images folder backup at another location other than the usual nightly backup location than we need to edit:&lt;br /&gt;
&lt;br /&gt;
 line 12 - and specify the Drive of the location to be backed up to. eg. E or F&lt;br /&gt;
&lt;br /&gt;
== Backup to other media (i.e. not to USB)==&lt;br /&gt;
&lt;br /&gt;
If the backup is going to &#039;&#039;&#039;non-removable media&#039;&#039;&#039; (even if it is a shared folder on another computer) then the NEOSYS user/client/licensee (NOT the NEOSYS support team) can, at their own responsibility, arrange to &#039;&#039;&#039;move&#039;&#039;&#039; (NOT COPY) the NEOSYS backup files from the USB location to a backup location of their choice and avoid the &lt;br /&gt;
&lt;br /&gt;
WARNING message : &amp;quot;Backup media not changed. Overwriting last weeks backup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Sample alternative response to client requests for additional backups ===&lt;br /&gt;
&lt;br /&gt;
The existing NEOSYS backup must continue to take place for safety because it is the only well understood standard, controlled and checked procedure in use for all NEOSYS clients.&lt;br /&gt;
&lt;br /&gt;
You are free to setup and operate any additional backup procedure you like but NEOSYS cannot take any responsibility in setting up, monitoring or approving your additional backup procedure because it is beyond our sphere of control, expertise and trust.&lt;br /&gt;
&lt;br /&gt;
What you can backup is the NEOSYS backups on the USB drive. These are readily available online at all times on the NEOSYS server for you to access and copy as you choose. &lt;br /&gt;
&lt;br /&gt;
You can backup the usb anytime using anything you like, but you must not backup anything on any hard disk eg: C or D at any time.&lt;br /&gt;
&lt;br /&gt;
== Backup in virtual server ==&lt;br /&gt;
&lt;br /&gt;
=== Virtual servers that allow USB passthrough ===&lt;br /&gt;
If NEOSYS is installed on a virtual server that allows USB passthrough (e.g. VMWare vSphere version 4.1 and above), then NEOSYS can be configured to backup onto the inserted external USB drive.&lt;br /&gt;
&lt;br /&gt;
3 USBs should be maintained and rotated on a weekly basis as done by clients installed on physical servers.&lt;br /&gt;
&lt;br /&gt;
VMware website says that when changing the USB, the VMware window must be the active window so that the USB reflects in the virtual machine and not on the host machine.&lt;br /&gt;
https://www.vmware.com/support/ws45/doc/devices_usb_ws.html&lt;br /&gt;
&lt;br /&gt;
=== Virtual servers that do not allow USB passthrough ===&lt;br /&gt;
If NEOSYS is installed on a virtual server that DOES NOT allow USB passthrough, then below are the various cases:&lt;br /&gt;
&lt;br /&gt;
==== Case 1: BACKUP.ZIP file CAN be created on an external removable backup media ====&lt;br /&gt;
The backups can be done onto an USB drive if it is connected to the host machine and configured to appear on the virtual server. The virtual server MUST be restarted for the inserted USB to reflect each time the USB is changed i.e. every week.&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST train the IT person to stop the processes properly i.e. use global.end file and rename it to global.end.temp to allow processes to start after reboot. Support Staff can send a follow up email as mentioned below &lt;br /&gt;
&lt;br /&gt;
=====Email to IT person after training =====&lt;br /&gt;
 &lt;br /&gt;
 Kindly confirm that you will close the NEOSYS processes properly before shutting down the virtual server, i.e. by renaming &amp;quot;global.end&amp;quot; to &amp;quot;global.end.temp&amp;quot; and making sure that no ntvdm.exe processes are running in the task manager. As discussed during the training, this can cause damaged files in NEOSYS if the server is shutdown without closing the NEOSYS processes.&lt;br /&gt;
 &lt;br /&gt;
 Also please confirm that you will rename &amp;quot;global.end&amp;quot; back to &amp;quot;global.end.temp&amp;quot; before shutting down the virtual server so that the NEOSYS processes start up automatically when the virtual server is restarted.&lt;br /&gt;
&lt;br /&gt;
==== Case 2: BACKUP.ZIP file CANNOT be created on an external removable backup media ====&lt;br /&gt;
The Client must *at their own responsibility* agree to arrange copy of the backup files to an external backup location every day if the server cannot be restarted every week. In this case, NEOSYS Support staff must send the client below email:&lt;br /&gt;
&lt;br /&gt;
===== Email for new clients with/old clients moving to virtual servers that do not allow BACKUP.ZIP file to be created on an external removable backup media =====&lt;br /&gt;
&lt;br /&gt;
 If we install NEOSYS on a virtual server, the backups cannot be done onto an external removable backup media as confirmed by your IT. NEOSYS considers backups to be done only if BACKUP.ZIP file is created on an external removable backup media. &lt;br /&gt;
 &lt;br /&gt;
 Instead, NEOSYS will be configured to create the BACKUP.ZIP files on the C drive of the virtual server. Your IT team can, at your own responsibility, arrange to move (NOT COPY) these backup files to an external backup location every day. We recommend that the backup location should be removable media (e.g. external hard disk) and not non-removable media (e.g. shared folder on another computer).&lt;br /&gt;
  &lt;br /&gt;
 If any damage happens to the NEOSYS server, the backup files on C drive will not be accessible and will therefore be useless. So, kindly confirm that your IT team will arrange to move the backup files as mentioned above.&lt;br /&gt;
 &lt;br /&gt;
 In addition to this, offsite backups of your virtual server can be setup by us if required, with an additional cost.&lt;br /&gt;
&lt;br /&gt;
==Backup Messages==&lt;br /&gt;
&lt;br /&gt;
==== Interpreting backup alerts messages ====&lt;br /&gt;
 &lt;br /&gt;
Success messages come with a blank body&lt;br /&gt;
 &lt;br /&gt;
Failure messages should come with the errors in the body&lt;br /&gt;
 &lt;br /&gt;
Both success and failure messages come with an attachment containing a list of files copied (or supposed to be copied but failed) and a summary of the volume and speed of data transferred&lt;br /&gt;
&lt;br /&gt;
==== Cause and Solution of Backup Warning Messages ====&lt;br /&gt;
 &lt;br /&gt;
NEOSYS gives a backup WARNING message whenever it discovers that it is overwriting backups a week old. It does this because NEOSYS only deems backups completely successful if the backup media is rotated at least on a weekly basis.&lt;br /&gt;
&lt;br /&gt;
If the backup media is removable then it should be changed weekly and the same media not used repeatedly on successive weeks.&lt;br /&gt;
&lt;br /&gt;
If the backup is going to non-removable media (even if it is a shared folder on another computer) then the NEOSYS user/client/licencee (not the NEOSYS support team) can, at their own responsibility, arrange to move (not copy) the NEOSYS backup files from that location to a backup location of their choice and avoid this WARNING message.&lt;br /&gt;
&lt;br /&gt;
==Handling failure and warning messages on nightly USB backup alerts==&lt;br /&gt;
&lt;br /&gt;
=== Backup mail not received ===&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_email_not_received#Troubleshooting_email_not_received|Troubleshooting email not received]]&lt;br /&gt;
&lt;br /&gt;
=== Handling Change Backup message if the client does not use a USB backup device ===&lt;br /&gt;
&lt;br /&gt;
IF THE CLIENT IS BACKING UP TO A NON-REMOVABLE DESTINATION THEN EITHER 1. LIVE WITH THE FAILURE MESSAGE OR 2. SUPPRESS THE BACKUP ENTIRELY IN WHICH CASE NO BACKUPS ARE BEING DONE AND PROBABLY THIS WILL SHOW ON NEOSYS PROACTIVE WARNING SYSTEMS LIKE NAGIOS. &lt;br /&gt;
&lt;br /&gt;
Nagios warnings can be acknowledged. &lt;br /&gt;
&lt;br /&gt;
DO *NOT* FOLLOW BELOW PROCEDURE SINCE IS IT IS TOTALLY UNACCEPTABLE FOR NEOSYS TO SEND OUT A &amp;quot;BACKUP SUCCESS&amp;quot; MESSAGE WHEN THE BACKUP IS NOT BEING DONE PROPERLY. IN GENERAL, TAKING SHORT CUTS THAT MAKE THINGS APPEAR SATISFACTORY WHEN THEY ARE NOT IS VERY POOR POLICY.&lt;br /&gt;
&lt;br /&gt;
# Basically most of the client use USB for Neosys server but there are some clients who do not use USB. They could be on virtual server or just saving their backups in hard drive. &lt;br /&gt;
# As we know that backup take place in Data.bak folder but it does a backup only for a week in a single USB. Over here client do not use USB but save their backup in hard drive/virtual server location in Data.bak folder, once the week is over  it will again give Change backup message.  &lt;br /&gt;
# In this case rename the Data.bak folder to Data1.bak this is done because system read only Data.bak folder as it is configured in the system. When you rename Data.bak to Data1.bak it automatically create a new folder Data.bak in Backup drive.&lt;br /&gt;
# This process is done so that the backup does not fail next day morning and backup is done in Data.bak folder along with successful backup email.&lt;br /&gt;
# In the third week we will again see the same message Chang backup USB message, so you need to rename Data.bak folder to Data2.bak&lt;br /&gt;
# But in fourth week you rename the Data1.bak to Data.bak and change the Data2.bak to Data1.bak and Data.bak to Data2.bak &lt;br /&gt;
# Keep only three folders and Data.bak, Data1.bak, Data2.bak and keep on renaming these folders every week as shown above.&lt;br /&gt;
&lt;br /&gt;
AS MENTIONED EARLIER *DO NOT FOLLOW* THE ABOVE PROCEDURE ON ANY CLIENT THAT DOES NOT USE A USB BACKUP DEVICE.&lt;br /&gt;
&lt;br /&gt;
=== Warning Message: Backup media not changed. Overwriting last weeks backup ===&lt;br /&gt;
 &lt;br /&gt;
If the client does not change the USB on scheduled day the next day&#039;s backup will fail, with email subject: &amp;quot;NEOSYS: Backup &amp;lt;CLIENT&amp;gt; -&amp;gt; &amp;lt;Drive Letter&amp;gt;: &amp;lt;USB NAME&amp;gt; CHANGED FAILURE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
As per standard &amp;quot;NEOSYS Backup Failure - USB not interchanged&amp;quot; email, the schedule day to interchange backup USB drives should generally remain on the same scheduled day. No cases have yet been documented where we have inconvenienced and forced our clients to change the day.&lt;br /&gt;
&lt;br /&gt;
NEOSYS gives a backup WARNING message whenever it discovers that it is overwriting backups a week old. It does this because NEOSYS only deems backups completely successful if the backup media is rotated at least on a weekly basis.&lt;br /&gt;
 &lt;br /&gt;
If the backup media is removable then it should be changed daily or weekly and the same media not used repeatedly on successive weeks. &lt;br /&gt;
 &lt;br /&gt;
If the backup is going to non-removable media (even if it is a shared folder on another computer) then the NEOSYS user/client/licensee (not the NEOSYS support team) can, at their own responsibility, arrange to move (not copy) the NEOSYS backup files from that location to a backup location of their choice and avoid this WARNING message. Also refer to [[Backup_and_Restore#Handling_Change_Backup_message_if_the_client_does_not_use_a_USB_backup_device|Handling Change Backup message if the client does not use a USB backup device]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Standard &amp;quot;NEOSYS Backup Failure - USB not interchanged&amp;quot; email:&lt;br /&gt;
 Dear Team,&amp;lt;br&amp;gt;&lt;br /&gt;
  The NEOSYS backup has failed today as the USB was not interchanged on the scheduled day i.e. yesterday. &amp;lt;br&amp;gt;&lt;br /&gt;
  Please interchange the USB immediately today to avoid a backup failure tomorrow morning.&amp;lt;br&amp;gt;&lt;br /&gt;
  Also note that your scheduled day to interchange the USB next week remains unchanged to &amp;lt;Schedule day&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
 Kind Regards&amp;lt;br&amp;gt;&lt;br /&gt;
 XXXX XXXX&lt;br /&gt;
&lt;br /&gt;
=== Error Message: Somebody else was using the dataset ===&lt;br /&gt;
&lt;br /&gt;
 Server=NEOSYS&lt;br /&gt;
 Client=NEOSYS&lt;br /&gt;
 User=ADAGENCY&lt;br /&gt;
 NEOSYS Ver:18:02:13  30 MAY 2006&lt;br /&gt;
 &lt;br /&gt;
 Backup started at 19/11/2006 2:00am&lt;br /&gt;
 &lt;br /&gt;
 TEST DATA TESTDATA&lt;br /&gt;
 &lt;br /&gt;
 To E:\DATA.BAK\TESTDATA\Sunday\BACKUP.ZIP&lt;br /&gt;
 !!! THE BACKUP HAS FAILED !!!&lt;br /&gt;
 &lt;br /&gt;
 (because one or more files were not backed up&lt;br /&gt;
  - somebody else was using them)&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
&lt;br /&gt;
Despite the error message which shows that &#039;somebody else was using them&#039;, it is definitely not correct as NEOSYS shuts down automatically at 2 am (time of the &lt;br /&gt;
&lt;br /&gt;
backup). The actual problem might be that a NEOSYS process must have got stuck and failed to shutdown or a maintenance process was left open by accident.&lt;br /&gt;
&lt;br /&gt;
==== Action to be taken ====&lt;br /&gt;
&lt;br /&gt;
Close any maintenance processes that should not have been left open in the first place.&lt;br /&gt;
&lt;br /&gt;
Try to exit normally or kill any other [[Troubleshooting_NEOSYS_Generally#How_to_kill_hung_NEOSYS_processes|&amp;quot;hung&amp;quot;]] processes, taking screenshots of any error messages in order to try and prevent the problem happening again.&lt;br /&gt;
&lt;br /&gt;
If not inconvenient to the users consider initiating a manual backup or just check that the next automatic backup works ok.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: Size Lock ===&lt;br /&gt;
 &lt;br /&gt;
 Server=NEOSYS-SERVER&lt;br /&gt;
 Client=NEOSYS-SERVER&lt;br /&gt;
 User=NETSERVICE&lt;br /&gt;
 NEOSYS Ver:19:57:50  08 NOV 2006&lt;br /&gt;
 &lt;br /&gt;
 Backup started at 19/11/2006 2:00am&lt;br /&gt;
 &lt;br /&gt;
 ADLINE ADLINE&lt;br /&gt;
 &lt;br /&gt;
 To F:\DATA.BAK\ADLINE\Sunday\BACKUP.ZIP&lt;br /&gt;
 The following files had a size lock but have been fixed SHADOW Warning! Process &lt;br /&gt;
 U79068                                                      &lt;br /&gt;
 Other Network Stations are Active!&lt;br /&gt;
 This utility was designed to be run in a single-user mode!&lt;br /&gt;
 &lt;br /&gt;
 Potential Errors Could Occur, If You Proceed to fix the sizelock Values with Other Stations   &lt;br /&gt;
 Active.  These Errors Include;&lt;br /&gt;
 &lt;br /&gt;
 Invalid SELECT results, Degredation in Network Performance, and other Problems/Concerns which &lt;br /&gt;
 may be specific to your Installation/Application.&lt;br /&gt;
 &lt;br /&gt;
 IT IS STRONGLY RECOMMENDED THAT ALL NETWORK STATIONS BE LOGGED OUT BEFORE PROCEEDING!&lt;br /&gt;
 &lt;br /&gt;
 Do you wish to Proceed at this time?%B%&lt;br /&gt;
 !!! THE BACKUP HAS FAILED !!!&lt;br /&gt;
 &lt;br /&gt;
 (because one or more files were not backed up&lt;br /&gt;
 - somebody else was using them)&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
&lt;br /&gt;
Sizelock errors are not critical and do not stop the backup from being performed. Sizelocks are cleared automatically during backup but the backup alert becomes a &lt;br /&gt;
&lt;br /&gt;
warning that the backup was not quite perfect.&lt;br /&gt;
&lt;br /&gt;
Sizelocks during database checking indicate that some files were not properly closed in normal processing but do not indicate corrupt files. Sizelock means that a file &lt;br /&gt;
&lt;br /&gt;
is prevented from expanding and contracting. Expanding and contracting is necessary in order to speed up access to larger numbers of records. Therefore if sizelocks &lt;br /&gt;
&lt;br /&gt;
were to be left uncleared then the file would become slower and slower to access over time.&lt;br /&gt;
&lt;br /&gt;
In the above example the backup was not completed because of another error &amp;quot;files in use&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Action to be taken ====&lt;br /&gt;
&lt;br /&gt;
If this is an automatic backup then no action is required since the sizelocks are automatically cleared. &lt;br /&gt;
&lt;br /&gt;
During a manual backup then you should press F9 on the sizelock warning screen to confirm that the sizelocks should be cleared.&lt;br /&gt;
&lt;br /&gt;
Sizelocks can only be cleared if no other process is open.&lt;br /&gt;
&lt;br /&gt;
=== Failure Message : Backup file size is 0 ===&lt;br /&gt;
 &lt;br /&gt;
 16/4/2009 9:43am Creating zip&lt;br /&gt;
 &lt;br /&gt;
 16/4/2009 9:45am !!! THE DATABASE BACKUP HAS FAILED !!!&lt;br /&gt;
 &lt;br /&gt;
 BECAUSE BACKUP FILE SIZE IS 0&lt;br /&gt;
&lt;br /&gt;
==== Error Explanation 1 ====&lt;br /&gt;
This happens when there is no adequate storage space on the hard-disk which houses the NEOSYS application and data files. When the automated backup is initiated, the &lt;br /&gt;
&lt;br /&gt;
NEOSYS application checks all the data files and creates a zipped file of it which is the databasename.zip (in the above case IMDUB.ZIP). During this zip file &lt;br /&gt;
&lt;br /&gt;
creation, NEOSYS needs additional disk space temporarily and if this is not available then the backup would fail. The IMDUB.ZIP file is created and backed up (as &lt;br /&gt;
&lt;br /&gt;
BACKUP.ZIP under the respective day of the week) to the USB or any other drive specified and is automatically deleted from the drive that it was created in.&lt;br /&gt;
&lt;br /&gt;
====Error Explanation 2====&lt;br /&gt;
&lt;br /&gt;
This could be due lack of EMSMAGIC. &lt;br /&gt;
&lt;br /&gt;
In case of a Windows Server 2003 installation: [[Troubleshooting NEOSYS Generally#Enabling EMS memory on Window 2003|Enabling EMS memory on Window 2003]]&lt;br /&gt;
&lt;br /&gt;
In case of a Windows Server 2008 installation: [[Installing EMS Magic|Installing EMS Magic on Windows 2008]]&lt;br /&gt;
&lt;br /&gt;
==== Actions to be taken ====&lt;br /&gt;
#In this case, you need to clear up the hard-disk and create some space. In the above scenario at Initiative there was a folder of 52 GB in the same drive that houses NEOSYS and the available disk space was just 40 MB. So the un-necessary folder was moved out to make space. &lt;br /&gt;
#If there is sufficient space available on the hard disk which houses NEOSYS, then consider checking the anti-virus settings and escalate the issue to NEOSYS programmer for debugging.&lt;br /&gt;
&lt;br /&gt;
This is another reason why NEOSYS personnel should put their foot down on getting dedicated servers for NEOSYS as it restrains the client IT staff from using the &lt;br /&gt;
&lt;br /&gt;
NEOSYS server to house data or any other applications besides NEOSYS.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: Inadequate Storage Space on USB ===&lt;br /&gt;
&lt;br /&gt;
==== Error 1 ====&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
 Server=SERVER2&lt;br /&gt;
 Client=SERVER2&lt;br /&gt;
 User=ACCOUNTS&lt;br /&gt;
 NEOSYS Ver:11:26:27  26 JUL 2010&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:00 Backup started F: BASIC &lt;br /&gt;
 7/2/2012 2:00 Media: FADE-0001&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:00 Checking for damaged database files&lt;br /&gt;
 7/2/2012 2:01 Checked OK 1.92MB (+1.00KB)&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:01 Creating zip&lt;br /&gt;
 7/2/2012 2:01 Created OK BASIC.ZIP 251KB&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:02 Copying to F:\DATA.BAK\Tuesday\BACKUP.ZIP&lt;br /&gt;
 7/2/2012 2:02 Copied OK&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:02 Verifying zip OK&lt;br /&gt;
 7/2/2012 2:02 Verified OK&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:02 Started backup of uploaded files in /cygdrive/E/ to F:&lt;br /&gt;
 7/2/2012 2:04 neosys/DATA/ACCOUNTS/REV20050.LK&lt;br /&gt;
 neosys/DATA/ACCOUNTS/REV20052.LK&lt;br /&gt;
 7/2/2012 2:04 rsync: writefd_unbuffered failed to write 4092 bytes [sender]: Connection reset by peer (104)&lt;br /&gt;
 rsync: write failed on &amp;quot;/cygdrive/F/E/neosys/DATA/ACCOUNTS/BATCHES.LK&amp;quot;: No space left on device (28)&lt;br /&gt;
 rsync: connection unexpectedly closed (9077 bytes received so far) [sender]&lt;br /&gt;
 rsync error: error in rsync protocol data stream (code 12) at /home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/io.c(632) [sender=3.0.4]&lt;br /&gt;
 7/2/2012 2:04 Finished backup of uploaded files&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:04 !!! THE DATABASE BACKUP HAS FAILED !!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
In the above error log we notice the line: &lt;br /&gt;
 rsync: write failed on &amp;quot;/cygdrive/F/E/neosys/DATA/PT0011A/ACCOUNTS/BATCHES.LK&amp;quot;: No space left on device (28)&lt;br /&gt;
&lt;br /&gt;
This is an indication that the USB being used to store backups does not have adequate storage space to save further backups.&lt;br /&gt;
&lt;br /&gt;
This particular message only comes when using rsync to copy all IMAGES (ie files uploaded to NEOSYS) to the USB.&lt;br /&gt;
&lt;br /&gt;
Sometimes, image backup is used to configured to backup the whole of a disk or the whole of data folder for example if there are hundreds of databases that are not all &lt;br /&gt;
&lt;br /&gt;
used everyday.&lt;br /&gt;
&lt;br /&gt;
==== Error 2 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Server=SERVER2&lt;br /&gt;
 Client=SERVER2&lt;br /&gt;
 User=ACCOUNTS&lt;br /&gt;
 NEOSYS Ver:11:26:27  26 JUL 2010&lt;br /&gt;
 7/2/2012 2:00 Backup started F: PT0621 - GABANG HOLDINGS LIMITED&lt;br /&gt;
 7/2/2012 2:00 Media: FADE-0001&lt;br /&gt;
 7/2/2012 2:00 Checking for damaged database files&lt;br /&gt;
 7/2/2012 2:02 Checked OK 2.25MB (+20.0KB)&lt;br /&gt;
 7/2/2012 2:02 Creating zip&lt;br /&gt;
 7/2/2012 2:02 Created OK PT0621.ZIP 462KB&lt;br /&gt;
 7/2/2012 2:02 !!! THE DATABASE BACKUP HAS FAILED !!!&lt;br /&gt;
 BECAUSE NOT ENOUGH FREE SPACE ON BACKUP MEDIA.&lt;br /&gt;
 462KB REQUIRED BUT ONLY 452KB AVAILABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
As the last line of the above error log clearly states, there is not adequate free space available on the USB to perform a backup.&lt;br /&gt;
&lt;br /&gt;
In the above case, 462KB is required space while only 452KB is available.&lt;br /&gt;
&lt;br /&gt;
==== Action to be taken ====&lt;br /&gt;
The simple solution is to purchase a new USB with greater storage space than the existing USB.&lt;br /&gt;
&lt;br /&gt;
Sample Email to be sent to clients:&lt;br /&gt;
&lt;br /&gt;
 The automated NEOSYS backup has failed due to insufficient storage space on the USB.&lt;br /&gt;
 Currently you are using a 4GB USB, which is insufficient for storing backups.&lt;br /&gt;
 I recommend that you use a USB with 8 GB or more storage space.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note -&#039;&#039; We may also solve this issue by checking the USB for unnecessary files and move/delete them.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: &amp;quot;Cannot backup/restore because PROCESS1 PROCESS2 (etc) is/are online&amp;quot; message ===&lt;br /&gt;
 &lt;br /&gt;
This can happen for a variety of reasons, e.g if any the NEOSYS processes fail to close down at backup time because the process has hung due to software error.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: &amp;quot;LISTS file is not available&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Server=NEOSYS	&lt;br /&gt;
Client=NEOSYS	&lt;br /&gt;
User=ADAGENCY	&lt;br /&gt;
NEOSYS Ver:16:07:53  04 JUN 2018	&lt;br /&gt;
	&lt;br /&gt;
&amp;quot;LISTS&amp;quot; is invalid	&lt;br /&gt;
	&lt;br /&gt;
The &amp;quot;LISTS&amp;quot; file is not available.	&lt;br /&gt;
	&lt;br /&gt;
?[FS200]????????????????????????????????????????	&lt;br /&gt;
	&lt;br /&gt;
The &amp;quot;DATAVOL\NEOS0001\&amp;quot; file is not available.	&lt;br /&gt;
	&lt;br /&gt;
THERE ARE NO FILES IN THIS DATASET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
Although unlikely, look for third-party software that have been installed on the server without the agreement of NEOSYS and uninstall them (see link below).&lt;br /&gt;
&lt;br /&gt;
Refer: [[Procedures#Removal_of_unauthorized_third-party_software_on_client_servers|Uninstalling unauthorized third-party software]]&lt;br /&gt;
&lt;br /&gt;
# Stop all processes (using global.end method).&lt;br /&gt;
# Navigate to the NEOSYS/DATAVOL folder and delete it.&lt;br /&gt;
# Perform a manual backup. (NEOSYS &amp;gt; Menu &amp;gt; Support &amp;gt; Backup)&lt;br /&gt;
# Backups should be successful. Check by various methods.&lt;br /&gt;
# Start NEOSYS processes.&lt;br /&gt;
# A new email may be sent when the first process is started, (INIT.GENERAL) containing the next section error &amp;quot;volume and cannot be attached&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Error Message: &amp;quot;volume and cannot be attached&amp;quot;===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The &amp;quot;DATAVOL	&lt;br /&gt;
DATAVOL\NEOS0001\	&lt;br /&gt;
08:48:57  27 JUN 2018&amp;quot; volume	&lt;br /&gt;
has the same label	&lt;br /&gt;
(&amp;quot;&amp;quot;)	&lt;br /&gt;
as the &amp;quot;&amp;quot; volume	&lt;br /&gt;
and cannot be attached.	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Server:  NEOSYS	&lt;br /&gt;
Install: D:\NEOSYS\NEOSYS\	&lt;br /&gt;
Version: 16:07:53  04 JUN 2018	&lt;br /&gt;
Database:2996420B AMC	&lt;br /&gt;
Process: 1	&lt;br /&gt;
Client:  NEOSYS	&lt;br /&gt;
User:    ADAGENCY	&lt;br /&gt;
Stack:   SYSMSG,INIT.GENERAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
Pending&lt;br /&gt;
&lt;br /&gt;
== Fixing Network Connectivity Errors for consolidated Backups ==&lt;br /&gt;
There could be multiple reasons why the backup server might not be able to connect with the backed up server. &lt;br /&gt;
&lt;br /&gt;
Error&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Receiver] io timeout after 600 seconds -- exiting rsync error: timeout in data send/receive (code 30) at /home/lapo/package/rsync-3.0.8-1/src/rsync-3.0.8/io.c(140) [Receiver=3.0.8] [Receiver] io timeout after   600 seconds -- exiting rsync error: timeout in data send/receive (code 30) at /home/lapo/package/rsync-3.0.8-1/src/rsync-3.0.8/io.c(140) [Receiver=3.0.8] tried via hostname.support.neosys.com now trying via hostname2.support.neosys.com&lt;br /&gt;
ssh: Could not resolve hostname hostname2.support.neosys.com: hostname nor servname provided, or not known&lt;br /&gt;
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.8-1/src/rsync-3.0.8/io.c(601) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following tests help in checking why the connectivity was lost between the backup server and the backed up server:&lt;br /&gt;
&lt;br /&gt;
===Check whether the server was up===&lt;br /&gt;
If either of the servers were down, that could be the reason why connectivity was lost between the backup server and the backed up server. If this test fails, proceed to the next step.&lt;br /&gt;
&lt;br /&gt;
===Telnet check===&lt;br /&gt;
&amp;lt;pre&amp;gt; telnet &amp;lt;hostname&amp;gt; 19580  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hostname&amp;gt; is the name or IP address of the remote server to connect to.&lt;br /&gt;
&lt;br /&gt;
If telnet is not able to connect to the remote host specified in &amp;lt;hostname&amp;gt; or establish a connection on the &amp;lt;port&amp;gt; specified, it will report an error similar to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:&amp;gt; telnet fred.plus.com &amp;lt;CR&amp;gt;&lt;br /&gt;
Connecting To fred.plus.com...Could not open connection to the host, on port 23: Connect failed&lt;br /&gt;
C:&amp;gt; telnet mail.plus.net 60 &amp;lt;CR&amp;gt;&lt;br /&gt;
Connecting To mail.plus.com...Could not open connection to the host, on port 60: Connect failed.&lt;br /&gt;
C:&amp;gt; telnet 60.92.12.56 74 &amp;lt;CR&amp;gt;&lt;br /&gt;
Connecting To 60.92.12.56...Could not open connection to the host, on port 74: Connect failed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Autologin===&lt;br /&gt;
&lt;br /&gt;
====Error====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rsync: failed to connect to 127.0.0.1: Connection refused (111) rsync error: error in socket IO (code 10) at &lt;br /&gt;
/home/lapo/packaging/rsync-3.0.7-1/src/rsync-&lt;br /&gt;
&lt;br /&gt;
3.0.7/clientserver.c(122) [Receiver=3.0.7]&lt;br /&gt;
&lt;br /&gt;
tried via hostname.neosys.com&lt;br /&gt;
&lt;br /&gt;
now trying via hostname2.neosys.com&lt;br /&gt;
&lt;br /&gt;
rsync: failed to connect to 127.0.0.1: Connection refused (111) rsync error: error in socket IO (code 10) at &lt;br /&gt;
/home/lapo/packaging/rsync-3.0.7-1/src/rsync-&lt;br /&gt;
&lt;br /&gt;
3.0.7/clientserver.c(122) [Receiver=3.0.7]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Error Explained=====&lt;br /&gt;
The automated backup cannot use autologin to access the server being backed up and so the backup fails.&lt;br /&gt;
&lt;br /&gt;
===== Solution =====&lt;br /&gt;
&lt;br /&gt;
[[Backup_and_Restore#Checking_if_autologin_is_configured_correctly_and_working_or_not| Check autologin]] and [[Backup_and_Restore#Running_..2Fautologin.sh|Run autologin]]&lt;br /&gt;
&lt;br /&gt;
==== Error Message: &amp;quot;WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!&amp;quot; message ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Error&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
It is also possible that a host key has just been changed.&lt;br /&gt;
The fingerprint for the ED25519 key sent by the remote host is&lt;br /&gt;
SHA256:9i9JH5xh11rEMIgrsax8A7bEKXfKVRiJr9nZllWXdFg.&lt;br /&gt;
Please contact your system administrator.&lt;br /&gt;
Add correct host key in /home/administrator/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
Offending ECDSA key in /home/administrator/.ssh/known_hosts:208&lt;br /&gt;
ED25519 host key for [192.168.10.1]:19580 has changed and you have requested strict checking.&lt;br /&gt;
Host key verification failed.&lt;br /&gt;
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]&lt;br /&gt;
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solution to the problem is to remove the host key for the host mentioned in the error message in the known_hosts file.&lt;br /&gt;
&lt;br /&gt;
Run the following command in Cygwin terminal.&lt;br /&gt;
&amp;lt;pre&amp;gt; ssh-keygen -R [host ip]:port &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e.g in the above message for host ip 192.168.10.1 and port 19580 the command is &lt;br /&gt;
&amp;lt;pre&amp;gt; ssh-keygen -R [192.168.10.1]:19580 &amp;lt;/pre&amp;gt;&lt;br /&gt;
Next re run autologin for the host, see [[Backup_and_Restore#Running_..2Fautologin.sh | Running autologin ]]&lt;br /&gt;
&lt;br /&gt;
===Check Scheduled Tasks on the Server===&lt;br /&gt;
Check if logs of Scheduled Tasks on the server, to see if the remote backup task executed and completed successfully. It is possible that the remote backup scheduled task hung due to some reason and a new instance of the task fails to start up the next day due to the existing instance. To avoid this situation, in Properties of the task, under Settings tab, check &amp;quot;Stop the task if it runs for:&amp;quot; and configure it to less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== Adding/restoring SSH key to backup server ==&lt;br /&gt;
&lt;br /&gt;
(Will be helpful to understand the concept of asymmetric keys).&lt;br /&gt;
&lt;br /&gt;
This script is usually used to fix the backup procedure. The backup server initiates the backup procedure using the &amp;quot;pull&amp;quot; concept to get data from source servers. The &amp;quot;backed-up server&amp;quot; serves the data (usually using an rsync service) to the backup server on request. They do not use a &amp;quot;push&amp;quot; concept, this is for security reasons. This means that backup servers need to be able to automatically login to the backed-up servers. On most backup servers a NEOSYS Cygwin script called autologin.sh has been installed.&lt;br /&gt;
&lt;br /&gt;
NEOSYS processes on a target server can sometimes reset/ lose autologin (public) keys (particularly when NEOSYS is upgraded) on the target server when it should not actually. This enforces rerunning autologin.sh. You only need to run autologin.sh once per pair of backup and backed-up servers, in the backup server.&lt;br /&gt;
&lt;br /&gt;
This relates to a common procedure used by NEOSYS to provide automatic nightly synchronisation/backups between servers for multi-office configurations. For more information see&lt;br /&gt;
http://itwiki.neosys.com/index.php/Setting_up_remote_backup&lt;br /&gt;
&lt;br /&gt;
=== Creating/Upgrading autologin.sh ===&lt;br /&gt;
&lt;br /&gt;
Follow commands below add autologin.sh to system:&lt;br /&gt;
&lt;br /&gt;
# Copy script below.&lt;br /&gt;
# run &amp;quot;cd ~/ &amp;amp;&amp;amp; nano autologin.sh&amp;quot;, paste script into editor and exit.&lt;br /&gt;
# Run &amp;quot;chmod +x autologin.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if [ -z $1 ]; then #syntax&lt;br /&gt;
   echo ./autologin.sh targethostname targetusername sshport&lt;br /&gt;
elif [ $1 ]; then&lt;br /&gt;
   set -e&lt;br /&gt;
&lt;br /&gt;
   REMOTEHOST=$1&lt;br /&gt;
   REMOTEUSER=$2&lt;br /&gt;
   PORT=$3&lt;br /&gt;
&lt;br /&gt;
   test $REMOTEUSER || REMOTEUSER=administrator&lt;br /&gt;
   test $PORT || PORT=19580&lt;br /&gt;
&lt;br /&gt;
   if [ ! $REMOTEUSER ]; then&lt;br /&gt;
      echo -n &amp;quot;Remote User (blank=administrator)/root?&amp;quot;&lt;br /&gt;
   read REMOTEUSER&lt;br /&gt;
   if [ &amp;quot;$REMOTEUSER&amp;quot; == &amp;quot;&amp;quot; ] ; then REMOTEUSER=administrator ; fi&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   if [ ! REMOTEHOST ]; then&lt;br /&gt;
   echo -n &amp;quot;Remote Host? &amp;quot;&lt;br /&gt;
   read REMOTEHOST&lt;br /&gt;
   if [ &amp;quot;$REMOTEHOST&amp;quot; == &amp;quot;&amp;quot; ] ; then exit; fi&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   echo PASSPHRASE MUST BE BLANK IF YOU GET ASKED FOR IT!&lt;br /&gt;
   #Generate priv/pub keys in .ssh if not already done&lt;br /&gt;
   #Priv key mustnt be accessible except to owner otherwise wont work.&lt;br /&gt;
   test -f ~/.ssh/id_rsa || \&lt;br /&gt;
   ssh-keygen -t rsa &amp;amp;&amp;amp; \&lt;br /&gt;
   chmod 600 ~/.ssh/id_rsa&lt;br /&gt;
&lt;br /&gt;
   echo&lt;br /&gt;
   echo &amp;quot;Logging in to the remote server (enter the pass again)&amp;quot;&lt;br /&gt;
   sed &#039;s/neosys//&#039; ~/.ssh/id_rsa.pub | \&lt;br /&gt;
   ssh -p $PORT $REMOTEUSER@$REMOTEHOST \&lt;br /&gt;
   &amp;quot;mkdir -p .ssh ; chmod 700 .ssh ;\&lt;br /&gt;
   cat &amp;gt;&amp;gt; .ssh/authorized_keys ;\&lt;br /&gt;
   chmod 644 .ssh/authorized_keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   echo&lt;br /&gt;
   echo &amp;quot;Test automatic login to the remote server&amp;quot;&lt;br /&gt;
   echo &amp;quot; SHOULD NO LONGER ASK FOR PASSWORD.&amp;quot;&lt;br /&gt;
   echo &amp;quot; IF SUCCESSFULL, TYPE exit&amp;quot;&lt;br /&gt;
   ssh -p $PORT $REMOTEUSER@$REMOTEHOST&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using ./autologin.sh ===&lt;br /&gt;
&lt;br /&gt;
#Asks you for the username and hostname and port. (if username is administrator and port is 19580, then you can omit) &lt;br /&gt;
#Asks you to enter the administrator or root password and copies the public key from the source server to the destination server.&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
#Logs you in to the destination server&#039;s Cygwin/bash command line.&lt;br /&gt;
&lt;br /&gt;
=== Running ./autologin.sh ===&lt;br /&gt;
In Cygwin on the backup server, you can use any of the following syntax depending on your configuration:&lt;br /&gt;
&lt;br /&gt;
Syntax: (for syntax reminder type &amp;quot;./autologin.sh&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh targethostname targetusername sshport&lt;br /&gt;
&lt;br /&gt;
*targethostname - if omitted will be prompted for it&lt;br /&gt;
*targetusername - if omitted will be &amp;quot;administrator&amp;quot;&lt;br /&gt;
*sshport - if omitted will be &amp;quot;19580&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example using prompting for parameters (targethostname)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh&lt;br /&gt;
&lt;br /&gt;
Example using default user and port (administrator/19580)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh examplehost.neosys.com&lt;br /&gt;
&lt;br /&gt;
Example with different user (port will be 19580)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh examplehost.neosys.com administrator&lt;br /&gt;
&lt;br /&gt;
Example with different user and port&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh examplehost.neosys.com admin 19500&lt;br /&gt;
&lt;br /&gt;
The username is usually administrator for windows server targets.&lt;br /&gt;
&lt;br /&gt;
The hostname can be found in backup email logs or in the CONFIG.CMD file in the backup server.&lt;br /&gt;
&lt;br /&gt;
There are often two alternative hostnames. Try the first one first. If you succeed with the first then there is no need to try the second.&lt;br /&gt;
&lt;br /&gt;
Sometimes one of the host names is based on alternative network access methods like hamachi which uses ip addresses starting with &amp;quot;5.&amp;quot; and requires hamachi service to be running in both servers and this sometimes is dependent on being logged in and correct setup of hamachi. You can ping the host names to discover the ip numbers of course.&lt;br /&gt;
&lt;br /&gt;
If Autologin is configured successfully, it logs you in to the backed up server&#039;s cygwin/bash command line.&amp;lt;br&amp;gt;&amp;lt;b&amp;gt; YOU should NOT be required to enter the password each time.&amp;lt;/b&amp;gt; You type &amp;quot;exit&amp;quot; to quit the backed up server&#039;s command line.&lt;br /&gt;
&lt;br /&gt;
If Autologin is not configured successfully, you might be required to enter a password. In that case, enter the password and follow instructions on screen.&lt;br /&gt;
The system asks for the password to the target server to transfer an identity file and once again to access the command line of the target server from where you must follow a set of instructions in order to load the identity file properly.&lt;br /&gt;
Follow the instructions on the screen VERY carefully.&lt;br /&gt;
&lt;br /&gt;
==== Checking if autologin is configured correctly and working or not ====&lt;br /&gt;
On the source system, in Cygwin/Terminal console, type the following, changing port number, administrator and clientname to suit the case.&lt;br /&gt;
 ssh –p 19580 administrator@clientname.hosts.neosys.com&lt;br /&gt;
After a few seconds, if it is working properly, it should give you a command prompt on the target system. This indicates that autologin was successful. You may exit using the command: &lt;br /&gt;
 exit&lt;br /&gt;
Otherwise, if it gives some error and in particular if it asks you anything at all, for example “confirm fingerprint?” or “password?” then autologin is not working.&lt;br /&gt;
You can then type in the following command in cygwin to configure or reconfigure autologin:&lt;br /&gt;
 ./autologin.sh&lt;br /&gt;
&lt;br /&gt;
==Switching to a backup server==&lt;br /&gt;
&lt;br /&gt;
As NEOSYS provides clients with option of backing up their data to a remote NEOSYS server in case of emergencies or server problems, it is crucial you understand the below procedure on how to switch to a backup server in the event of such a situation. Extreme care must be taken when switching over to using a backup server otherwise unnecessary data loss is very likely.&lt;br /&gt;
&lt;br /&gt;
Backup servers are normally switched off and should not be started automatically otherwise there is a serious risk of the client’s staff working on two systems. It is not possible to merge two databases into one database. Before the backup server is enabled the main server must be disabled, and before the main server is re-enabled, the backup  server must be disabled again. This can be managed technically without requiring any decision from senior non-technical staff.&lt;br /&gt;
&lt;br /&gt;
However, there are also some potentially hard decisions about unavoidable loss of data versus continued system availability. *** Backup servers should therefore only be started with the written approval of the clients senior staff. A suitable email requesting approval follows.&lt;br /&gt;
&lt;br /&gt;
The following case assumes that the main server has gone down sometime during the working day and that therefore the data on the backup server is out of date. Allowing them to use the backup server therefore implies some loss of data. They may wish to lose the data. They may wish to work on the backup server data and then try to redo the work on the main server once it is restored. There are a variety of options depending on the situation.&lt;br /&gt;
&lt;br /&gt;
If the main server is still functioning AND you are reasonably sure that the database is not damaged (which is perhaps an unlikely situation if you need to use the backup server!), it may be sensible to trigger an additional “backup/sync” process to bring the backup server database up to date with the main server. Before you do this, it is advisable that you take a backup copy of the backup system on the backup  server. In this case there would be no data loss in using the backup.&lt;br /&gt;
&lt;br /&gt;
An additional option of providing usage of the backup server in read-only mode so that people can at least access some data is being developed. The backup server could be available continuously at any time in read-only mode. This article would then be related to switching a backup server into main operational mode.&lt;br /&gt;
&lt;br /&gt;
 Dear {senior staff} cc {IT staff}&lt;br /&gt;
 &lt;br /&gt;
 Please note that we can enable the backup server if you wish.&lt;br /&gt;
 &lt;br /&gt;
 However the data on the backup server is out of date since it is a copy of your main database as at 11/22/33 99:99.&lt;br /&gt;
 &lt;br /&gt;
 If you wish to allow work to be done on the backup server then any data entered on your main server since the above date will be lost if we &lt;br /&gt;
 subsequently copy the data on the backup server to the main server.&lt;br /&gt;
 &lt;br /&gt;
 If, after using the backup server, we do NOT copy the data on the back server to the main server then any data you have entered on the backup &lt;br /&gt;
 server/database will be lost.&lt;br /&gt;
 &lt;br /&gt;
 Please confirm a) you want to work on HOSTS2 database and that we should therefore enable it and b) you have disconnected your main server &lt;br /&gt;
 for the duration.&lt;br /&gt;
 &lt;br /&gt;
 Best Regards,&lt;br /&gt;
 xxxxxx xxxxxxx&lt;br /&gt;
 NEOSYS Support&lt;br /&gt;
&lt;br /&gt;
==How to Restore NEOSYS from Backup==&lt;br /&gt;
&lt;br /&gt;
For a more detailed step by step go to [[http://techwiki.neosys.com/index.php/Installing_NEOSYS_Service#Installing_initial_or_Restoring_Database Restoring or Installing initial Database]]&lt;br /&gt;
&lt;br /&gt;
#Log into Maintenance Mode&lt;br /&gt;
#Go to General &amp;gt; Backup &amp;amp; Data Management &lt;br /&gt;
#Select (the 4th option) Restore from disk or diskette &lt;br /&gt;
#Select the drive where the latest successful backup.zip file is present and follow the prompts ahead.&lt;br /&gt;
&lt;br /&gt;
== Deleting all current and historical backups of a particular directory in NEOSYS ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1. Searching for directories to delete without deleting them ===&lt;br /&gt;
&lt;br /&gt;
There must be no similarly worded directories. Here the example directory is called DDBTEST.&lt;br /&gt;
&lt;br /&gt;
 find /backups/current /backups/snapshots -type d -path &amp;quot;*/DDBTEST/*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Step 2. Deleting the directories using rm ===&lt;br /&gt;
&lt;br /&gt;
This command uses the VERY DANGEROUS rm command. If the search is done even slightly wrong - which is well known to be very easily done - then rm will happily remove *all* files on the server causing *partial or complete loss of all backups and/or complete loss of the whole server*, requiring installation from scratch.&lt;br /&gt;
&lt;br /&gt;
Blunders with rm are notorious in IT.&lt;br /&gt;
&lt;br /&gt;
The command given below is incomplete and should only be completed by a skilled and responsible IT person who knows what to check and what to add.&lt;br /&gt;
&lt;br /&gt;
In its incomplete form, it is safe to run and will only highlight what directories will be deleted or delete empty directories.&lt;br /&gt;
&lt;br /&gt;
In its completed form, it is DANGEROUS and should not be used except as described above.&lt;br /&gt;
&lt;br /&gt;
 find /backups/current /backups/snapshots -type d -path &amp;quot;*/DDBTEST/*&amp;quot; | xargs -n 1 rm&lt;br /&gt;
&lt;br /&gt;
=== Step 3. Check all gone ===&lt;br /&gt;
&lt;br /&gt;
Redo step 1&lt;br /&gt;
&lt;br /&gt;
==While Moving NEOSYS to a new server, after copying D drive the Maintenance does not contain all data sets==&lt;br /&gt;
&lt;br /&gt;
After copying D drive, when you open Maintenance if the data sets are not present as in the old server you MUST restore Backup as restore is a verified/quick method of creating data sets. While restoring last night&#039;s Backup for missing data sets, the system gives a warning message &amp;quot;Dataset is already on the computer&amp;quot; as shown below. You MUST select the 2nd option &amp;quot;Overwrite the existing dataset&amp;quot; from the options in the warning message. In this way, all data sets will be created/saved on the new server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════════════════════╗&lt;br /&gt;
║                     *** WARNING ***                     ║&lt;br /&gt;
║                       TEST /TEST                        ║&lt;br /&gt;
║               IS ALREADY ON THE COMPUTER                ║&lt;br /&gt;
║  IF YOU CONTINUE, THE EXISTING FILES WILL BE DELETED.   ║&lt;br /&gt;
║                                                         ║&lt;br /&gt;
║                What do you want to do?                 ║&lt;br /&gt;
║───┬─────────────────────────────────────────────────────║&lt;br /&gt;
║  1│Cancel the restore process                           ║&lt;br /&gt;
║  2&amp;gt;Overwrite the existing data set                      ║&lt;br /&gt;
║  3│Restore and make a new dataset                       ║&lt;br /&gt;
╚═════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing historical snapshots of NEOSYS hosted clients data ==&lt;br /&gt;
&lt;br /&gt;
The main NEOSYS backup server nl13 contains backups of NEOSYS hosted clients along with all NEOSYS internal servers.&lt;br /&gt;
&lt;br /&gt;
It also contains historical snapshots of the backups going back six months.&lt;br /&gt;
&lt;br /&gt;
NEOSYS SUPPORT TEAM *MUST* AVOID COPYING, MOVING OR RENAMING FOLDERS ON NEOSYS WINDOWS SERVERS because this causes severe duplication and consumption of valuable resources for up to six months on nl13. Any exception to this rule must be discussed with NEOSYS IT *before* implementation.&lt;br /&gt;
&lt;br /&gt;
=== How to restore? ===&lt;br /&gt;
&lt;br /&gt;
nl13 is only accessible by NEOSYS IT so recovery of any data cannot be done directly by NEOSYS support team and is not a routine procedure.&lt;br /&gt;
&lt;br /&gt;
The secondary NEOSYS backup server hosts2 is accessible to NEOSYS support team but contains only the latest snapshot of the current NEOSYS hosted clients as at last night. No historical versions are available.&lt;br /&gt;
&lt;br /&gt;
=== What snapshots are available? ===&lt;br /&gt;
&lt;br /&gt;
As of 2017/05/25 the NEOSYS backup server nl13 takes snapshots (of the backups listed in Nagios) as follows using crontab:&lt;br /&gt;
&lt;br /&gt;
* 120 historical hourly backups done at **:10 every hour (5x24 hours)&lt;br /&gt;
* 8 historical daily backups done at 01:11 every night&lt;br /&gt;
* 5  historical weekly backups done at 01:12 every Saturday&lt;br /&gt;
* 6 historical monthly backups done at 01:13 on the 1st of every month&lt;br /&gt;
&lt;br /&gt;
=== What is backed up? ===&lt;br /&gt;
&lt;br /&gt;
Inspecting Nagios shows daily backups of NEOSYS hosted clients to nl13 of win3/d. Complete hourly backup is not possible due to limitations of Windows and/or the backup software used. However, there are hourly backups of win3/d/DATA.BAK so NEOSYS process &amp;quot;backups&amp;quot; to win3/d/DATA.BAK (on the same server and disk and therefore not a proper backup) do get properly backed up to a different server once an hour.&lt;br /&gt;
&lt;br /&gt;
=== Historical/Lapsed Clients? ===&lt;br /&gt;
&lt;br /&gt;
For more info see [[Uninstalling_clients_hosted_on_NEOSYS_Server|Uninstalling clients hosted on NEOSYS server ]]&lt;br /&gt;
&lt;br /&gt;
A single copy of lapsed clients last BACKUP.ZIP will be kept for as long as possible along with the active client&#039;s data and backed up identically.&lt;br /&gt;
&lt;br /&gt;
Long lapsed clients should be removed periodically from the normal DATA.BAK folder only when space runs out on win3 but a copy should be moved to D:\DATA2.BAK folder on hosts2 which is itself backed up nightly to nl13 which keeps backups for approx six months.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Backup_and_Restore&amp;diff=3662</id>
		<title>Backup and Restore</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Backup_and_Restore&amp;diff=3662"/>
		<updated>2019-12-23T07:03:51Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Getting confirmations for Backup email list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description of Backup Procedure for the Client Hosted NEOSYS Server ==&lt;br /&gt;
&lt;br /&gt;
3 USBs must be maintained and rotated on a weekly basis.&lt;br /&gt;
&lt;br /&gt;
Every night, the NEOSYS process stops serving users at around 1:00 AM to 5:00 AM (local time of the client&#039;s main office) and performs the following procedure:&lt;br /&gt;
&lt;br /&gt;
*All the database files are checked for physical corruption.&lt;br /&gt;
*All the database files are zipped into a file on the USB who&#039;s path would be something like F:\DATA.BAK\CLIENTX\MONDAY\BACKUP.ZIP file.&lt;br /&gt;
*The file having the same name as that of the corresponding day of the week as that of 3 weeks back is overwritten.A &amp;quot;backup alert&amp;quot; email indicating success or failure is sent to senior managers at the client, the client’s IT manager and backups@neosys.com.&lt;br /&gt;
*An internal log (accessible on each database&#039;s Support Menu) is maintained as a record and in case the emails cannot be sent out for some reason.&lt;br /&gt;
*NEOSYS support staff in Dubai check the emails every morning Sunday through Thursday.&lt;br /&gt;
*In the case of failure, NEOSYS support staff in Dubai take appropriate action and send an email (to the same people who receive the automated backup alert emails) indicating what action has been taken.&lt;br /&gt;
*Additionally offsite backup can be set up on NEOSYS server&lt;br /&gt;
&lt;br /&gt;
== Description of Backup Procedure for the NEOSYS Client Hosting Server ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS backup is a two phase process. It is mandatory that both phases are complete for the process to be considered a backup.&lt;br /&gt;
&lt;br /&gt;
1. On the main NEOSYS server host(Schuberg Philis in Amsterdam as of Dec 2010),Every night, the NEOSYS process for selected databases stops serving users at around 1:00 AM to 5:00 AM (local time of the client&#039;s main office) and performs the following procedure:&lt;br /&gt;
*All the database files are checked for physical corruption.&lt;br /&gt;
*All the database files are zipped into a file who&#039;s path would be something like C:\DATA.BAK\CLIENTX\MONDAY\BACKUP.ZIP file.&lt;br /&gt;
*The file having the same name as that of the corresponding day of the week as last week is overwritten.A &amp;quot;backup alert&amp;quot; email indicating success or failure is sent to senior managers at the client, the client’s IT manager and backups@neosys.com.&lt;br /&gt;
*An internal log (accessible on each database&#039;s Support Menu) is maintained as a record and in case the emails cannot be sent out for some reason.&lt;br /&gt;
*NEOSYS support staff in Dubai check the emails every morning Sunday through Thursday.&lt;br /&gt;
*In the case of failure, NEOSYS support staff in Dubai take appropriate action and send an email (to the same people who receive the automated backup alert emails) indicating what action has been taken.&lt;br /&gt;
*The above does not by itself constitute a proper backup because the backup is stored on the same server and physical disk as the actual data.&lt;br /&gt;
&lt;br /&gt;
2. On the NEOSYS backup server host (in NEOSYS Dubai Office as of Dec 2010 but could be changed without notice to EvoSwitch in Amsterdam).&lt;br /&gt;
*At around 02:00-02:30 AM GMT daily, NEOSYS&#039;s backup server copies (replicates) all the BACKUP.ZIP files from the main NEOSYS server host to itself.&lt;br /&gt;
*An email indicating success or failure is sent to NEOSYS support staff (only) who deal with it in a similar way to phase 1, except that only NEOSYS management are updated.&lt;br /&gt;
&lt;br /&gt;
== Backup Procedures ==&lt;br /&gt;
=== Preparing nightly backup report ===&lt;br /&gt;
# Note the success, failure and other error of the clients backup mail in an excel sheet and forward the same to your manager.&lt;br /&gt;
# If there is a backup failure or backup is not available, check wiki to take necessary steps.&lt;br /&gt;
# If there is any unknown error, forward the same to your manager.&lt;br /&gt;
Send the backup report after every quarter to all the Clients having consolidated backups.&lt;br /&gt;
&lt;br /&gt;
=== Running a manual backup in case of failures ===&lt;br /&gt;
&lt;br /&gt;
If a backup has failed, Support should check if any users are active in that particular database. Check Menu -&amp;gt; Support -&amp;gt; List of Documents in Use and also check list of users to see last login time. From backup email inbox, check how much time the backup of that database usually takes.&lt;br /&gt;
&lt;br /&gt;
If no users have logged in yet and if backup of the database usually completes in a few minutes, quickly start a [[Backup_and_Restore#Manual_Backup| manual backup]]&lt;br /&gt;
&lt;br /&gt;
This MUST be done first thing in the morning since Dubai clients generally start working around the same time as Support team.&lt;br /&gt;
&lt;br /&gt;
=== Updating Nagios in case of failures ===&lt;br /&gt;
# If the backup failure is unsolved, schedule downtime Neosys service in Nagios till 01 am.&lt;br /&gt;
# If the backup did not happen because of server down. Call the IT person; ask him to re-boot the server and check wiki to do necessary step ahead and schedule downtime to Nagios for 2hours.&lt;br /&gt;
# If there is an error &amp;quot;Backup-&amp;gt;Impossible&amp;quot; on Nagios, check if the USB is properly inserted. If no USB is found, send a mail to the user asking to ensure that the backup USB is inserted properly. Schedule downtime to Nagios for 2hours.&lt;br /&gt;
&lt;br /&gt;
=== Interchange backup USB mail reminder ===&lt;br /&gt;
Basically all the clients have different days to change their backup USB. All the notification can be seen on Nagios at 12.00 pm every day.&lt;br /&gt;
&lt;br /&gt;
On the USB change day, at 6:00 am, when the processes start up, the system automatically sends the following email to everyone in the backup email receiver list:&lt;br /&gt;
&lt;br /&gt;
 It is time to change the NEOSYS backup media (e.g. USB Flash Drive)   &lt;br /&gt;
  &lt;br /&gt;
 Please change it before 12:00 midday today.&lt;br /&gt;
&lt;br /&gt;
Additional emails reminding IT staff to change backup media are sent out at 11:30am and 5pm if the backup media is not changed according schedule.&lt;br /&gt;
&lt;br /&gt;
Since the system automatically sends a USB change reminder email to the client, support staff do not have to send them any instructions about changing unless they have failed to change the USB on the scheduled day or the scheduled day needs to be moved to another day.  &lt;br /&gt;
&lt;br /&gt;
==== Importance of interchanging backup USBs ====&lt;br /&gt;
If the backup USB is not interchanged on the scheduled day then the NEOSYS automated backup fails. This happens because traditionally, each USB holds backup of 7 days and using 3 different USBs we can store backups for the last 21 days enabling us to restore the system unto a time period beginning 21 days prior.&lt;br /&gt;
If the USB is not changed then the first backup on the current USB is replaced with the new or latest backup leading to inconsistencies within the backups. Hence we must interchange the USB on schedule to avoid a backup failure the next morning.&lt;br /&gt;
&lt;br /&gt;
The reasons for using multiple USBs for backup are:&lt;br /&gt;
*We can keep other USBs out of the office for safety purposes since theft or office fire/water hazards could damage the computer and the USB keys if they are all in &lt;br /&gt;
the same place.&lt;br /&gt;
*Having multiple USBs provide safety against corrupt USBs which cannot be used to restore any backup data.&lt;br /&gt;
&lt;br /&gt;
=== Finding out which USB is inserted into the server ===&lt;br /&gt;
As we ask the client to have 3 USB&#039;s and interchange them weekly, we also need to sometimes track which one of these 3 USB&#039;s are inserted into the server. USB&#039;s can be tracked using their volume serial number in most cases. To find this out either go to the command prompt and type VOL &amp;lt;i&amp;gt;&amp;lt;drive letter&amp;gt;&amp;lt;/i&amp;gt; where drive letter is the USB drive letter OR in the nightly backup message check for the 2nd line (which looks like this - 14/12/2009 2:45pm Media: 705B-5B5F). However serial numbers can be the same even for different USB&#039;s. One of the reasons for this could be that the USBs were imaged from one single USB which caused their volume serial numbers to be the same. However, such a situation is very rare.&lt;br /&gt;
&lt;br /&gt;
=== Interchanging USB when scheduled USB change day falls on a holiday ===&lt;br /&gt;
When clients ask support which day to interchange USBs when their scheduled USB change day falls on a holidays, send them the below email.&lt;br /&gt;
&lt;br /&gt;
 Hi XXX,&lt;br /&gt;
 &lt;br /&gt;
 Kindly interchange the USB on the last working day before the holiday i.e XXXday DD/MM/YY and then interchange with the next scheduled USB on first working day after the holiday i.e. XXXday DD/MM/YY. Continue to change the USBs as usual on XXXday.&lt;br /&gt;
&lt;br /&gt;
=== Getting confirmations for Backup email list ===&lt;br /&gt;
&lt;br /&gt;
The below procedure is done once every year. A task has been set in Thunderbird to remind Support to begin the procedure in November.&lt;br /&gt;
&lt;br /&gt;
The first thing to do is to send the below draft email to Steve and ask if any changes are required.&lt;br /&gt;
&lt;br /&gt;
 Subject: YOUR URGENT REPLY IS REQUIRED - NEOSYS Backup Confirmations for &amp;lt;Company&amp;gt;, &amp;lt;City&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Hi &amp;lt;Decision_maker&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 We are updating our records of the contact people in your organisation who should receive the various NEOSYS system alert emails and backup confirmations.&lt;br /&gt;
 &lt;br /&gt;
 You are currently assigned as the decision maker in this matter&lt;br /&gt;
 &lt;br /&gt;
 Note that it is the responsibility of your company to verify that the backups are successful and to alert us whenever there is an issue with the same.&lt;br /&gt;
 &lt;br /&gt;
 Please confirm:&lt;br /&gt;
 &lt;br /&gt;
 1.   The following email addresses should continue to receive these alerts&lt;br /&gt;
 &lt;br /&gt;
 2.   Any additions/deletions of email addresses from this list&lt;br /&gt;
 &lt;br /&gt;
 For: &amp;lt;Company&amp;gt;, &amp;lt;City&amp;gt;:&lt;br /&gt;
 &lt;br /&gt;
 a) Decision Maker:&lt;br /&gt;
 &lt;br /&gt;
 b) IT Manager (or person responsible to change backup media):&lt;br /&gt;
 &lt;br /&gt;
 c) Monitors (Managers and/or interested parties):&lt;br /&gt;
 &lt;br /&gt;
 Best Regards,&lt;br /&gt;
 NEOSYS Support&lt;br /&gt;
&lt;br /&gt;
#After you receive coonfirmation, send emails to all clients.&lt;br /&gt;
#*Template email to each client (Thunderbird-&amp;gt;Support-&amp;gt;Templates-&amp;gt;BackupConfirmationEmails)&lt;br /&gt;
#Create a new spreadsheet after copying previous year&#039;s confirmations sheet and rename with current year.&lt;br /&gt;
#*You can find the previous year&#039;s confirmation list in C:\Users\Androulla\Nextcloud\support\Androulla_Backup Confirmations&lt;br /&gt;
#*Clear the contents and fill in as and when you get the confirmations from clients.&lt;br /&gt;
#*For hosted clients in the &#039;IT Manager&#039; field, put &#039;None&#039;&lt;br /&gt;
#*You can keep a list of all pending clients in a personal text file and/or mark as &#039;Pending&#039; in Spreadsheet.&lt;br /&gt;
#If any changes, update the Spreadsheet and change in NEOSYS.&lt;br /&gt;
#Set reminders to follow-up on these emails to decision makers once a week.&lt;br /&gt;
#In the case where a client asks for more than one decision maker, reply that it will be best to have only one decision maker.&lt;br /&gt;
#If no reply for two weeks, send email to another person other than the decision maker.&lt;br /&gt;
#*Order: Another management level user &amp;gt; Main point of contact -&amp;gt; Most active user(checked in authorisation file)&lt;br /&gt;
#When all clients confirm, check backup spreadsheet and confirm that it is in sync with System Config file and any personal records that you have kept.&lt;br /&gt;
&lt;br /&gt;
==Manual Backup==&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/General_FAQ#How_to_do_a_manual_backup.3F How to do a manual backup in NEOSYS]&lt;br /&gt;
&lt;br /&gt;
Manual backups can also be triggered on the server process screen by pressing the lower case letter b key. After the backup is complete the process will resume and restart the child processes. Pressing capital B will result in the process closing on completion of the backup and the child processes will not be restarted. This is useful if you want to trigger a backup and leave without waiting for it to complete.&lt;br /&gt;
&lt;br /&gt;
==Configuring NEOSYS automated backup==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NEOSYS is designed to do an automated backup of the data (not the program files). The configuration for the automated backup rests in the System Configuration File under Menu &amp;gt; Support.&lt;br /&gt;
&lt;br /&gt;
First step is to configure the automated email settings. After every backup attempt NEOSYS will send out a mail with the status of the backup (either success or failed). You have to configure the SMTP details here along with the list of recipients to the backup email. &lt;br /&gt;
&lt;br /&gt;
Ensure to have atleast 1 person from the client management and 1 person from the client IT, besides the mandatory backups@neosys.com address &lt;br /&gt;
&lt;br /&gt;
Always use the NEOSYS SMTP server details as follows and put in a fictitious client address so that NEOSYS staff can quickly identify which client this mail came from.&lt;br /&gt;
&lt;br /&gt;
[[image:backup1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Do not configure the backup time unless instructed by your manager. The system will automatically start the backup at 1 am if there is nothing configured in the Backup time.&lt;br /&gt;
&lt;br /&gt;
Type in the backup location (USB/other media) drive letter in the Backup Drive field and the Uploads fields. &lt;br /&gt;
&lt;br /&gt;
Putting a 0 in the Uploads field will disable the backup of the Uploaded files, else by default the uploaded files will be backed up to the drive mentioned in the backup drive field.&lt;br /&gt;
&lt;br /&gt;
The scheduled days of backup can be configured using the checkboxes. If none of the days are checked, backup will be done on all days by default.&lt;br /&gt;
&lt;br /&gt;
Next setup the auto-start of the databases and enter how many processes should be started and which all databases should be backed up. &lt;br /&gt;
&lt;br /&gt;
In the example below DEMO database has been configured to start 3 processes and also do the automated backup, whereas the DEMOTEST database is configured to start 1 process and no automated backup.&lt;br /&gt;
&lt;br /&gt;
[[image:backup2.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Non-Liability for Backup ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Non-Liability For Backup}}&lt;br /&gt;
&lt;br /&gt;
=== Backing up the Images folder ===&lt;br /&gt;
&lt;br /&gt;
The Images folder under the NEOSYS installation is used to upload images/artworks/files from the Job File section and hence needs to be backed up. NEOSYS will automatically backup this Images folder to the USB drive or other location (specified for the usual data backup) once a week. &lt;br /&gt;
&lt;br /&gt;
To configure this backup, RSYNC needs to have been installed during the initial installation.&lt;br /&gt;
&lt;br /&gt;
In case we need to configure the Images folder backup at another location other than the usual nightly backup location than we need to edit:&lt;br /&gt;
&lt;br /&gt;
 line 12 - and specify the Drive of the location to be backed up to. eg. E or F&lt;br /&gt;
&lt;br /&gt;
== Backup to other media (i.e. not to USB)==&lt;br /&gt;
&lt;br /&gt;
If the backup is going to &#039;&#039;&#039;non-removable media&#039;&#039;&#039; (even if it is a shared folder on another computer) then the NEOSYS user/client/licensee (NOT the NEOSYS support team) can, at their own responsibility, arrange to &#039;&#039;&#039;move&#039;&#039;&#039; (NOT COPY) the NEOSYS backup files from the USB location to a backup location of their choice and avoid the &lt;br /&gt;
&lt;br /&gt;
WARNING message : &amp;quot;Backup media not changed. Overwriting last weeks backup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Sample alternative response to client requests for additional backups ===&lt;br /&gt;
&lt;br /&gt;
The existing NEOSYS backup must continue to take place for safety because it is the only well understood standard, controlled and checked procedure in use for all NEOSYS clients.&lt;br /&gt;
&lt;br /&gt;
You are free to setup and operate any additional backup procedure you like but NEOSYS cannot take any responsibility in setting up, monitoring or approving your additional backup procedure because it is beyond our sphere of control, expertise and trust.&lt;br /&gt;
&lt;br /&gt;
What you can backup is the NEOSYS backups on the USB drive. These are readily available online at all times on the NEOSYS server for you to access and copy as you choose. &lt;br /&gt;
&lt;br /&gt;
You can backup the usb anytime using anything you like, but you must not backup anything on any hard disk eg: C or D at any time.&lt;br /&gt;
&lt;br /&gt;
== Backup in virtual server ==&lt;br /&gt;
&lt;br /&gt;
=== Virtual servers that allow USB passthrough ===&lt;br /&gt;
If NEOSYS is installed on a virtual server that allows USB passthrough (e.g. VMWare vSphere version 4.1 and above), then NEOSYS can be configured to backup onto the inserted external USB drive.&lt;br /&gt;
&lt;br /&gt;
3 USBs should be maintained and rotated on a weekly basis as done by clients installed on physical servers.&lt;br /&gt;
&lt;br /&gt;
VMware website says that when changing the USB, the VMware window must be the active window so that the USB reflects in the virtual machine and not on the host machine.&lt;br /&gt;
https://www.vmware.com/support/ws45/doc/devices_usb_ws.html&lt;br /&gt;
&lt;br /&gt;
=== Virtual servers that do not allow USB passthrough ===&lt;br /&gt;
If NEOSYS is installed on a virtual server that DOES NOT allow USB passthrough, then below are the various cases:&lt;br /&gt;
&lt;br /&gt;
==== Case 1: BACKUP.ZIP file CAN be created on an external removable backup media ====&lt;br /&gt;
The backups can be done onto an USB drive if it is connected to the host machine and configured to appear on the virtual server. The virtual server MUST be restarted for the inserted USB to reflect each time the USB is changed i.e. every week.&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST train the IT person to stop the processes properly i.e. use global.end file and rename it to global.end.temp to allow processes to start after reboot. Support Staff can send a follow up email as mentioned below &lt;br /&gt;
&lt;br /&gt;
=====Email to IT person after training =====&lt;br /&gt;
 &lt;br /&gt;
 Kindly confirm that you will close the NEOSYS processes properly before shutting down the virtual server, i.e. by renaming &amp;quot;global.end&amp;quot; to &amp;quot;global.end.temp&amp;quot; and making sure that no ntvdm.exe processes are running in the task manager. As discussed during the training, this can cause damaged files in NEOSYS if the server is shutdown without closing the NEOSYS processes.&lt;br /&gt;
 &lt;br /&gt;
 Also please confirm that you will rename &amp;quot;global.end&amp;quot; back to &amp;quot;global.end.temp&amp;quot; before shutting down the virtual server so that the NEOSYS processes start up automatically when the virtual server is restarted.&lt;br /&gt;
&lt;br /&gt;
==== Case 2: BACKUP.ZIP file CANNOT be created on an external removable backup media ====&lt;br /&gt;
The Client must *at their own responsibility* agree to arrange copy of the backup files to an external backup location every day if the server cannot be restarted every week. In this case, NEOSYS Support staff must send the client below email:&lt;br /&gt;
&lt;br /&gt;
===== Email for new clients with/old clients moving to virtual servers that do not allow BACKUP.ZIP file to be created on an external removable backup media =====&lt;br /&gt;
&lt;br /&gt;
 If we install NEOSYS on a virtual server, the backups cannot be done onto an external removable backup media as confirmed by your IT. NEOSYS considers backups to be done only if BACKUP.ZIP file is created on an external removable backup media. &lt;br /&gt;
 &lt;br /&gt;
 Instead, NEOSYS will be configured to create the BACKUP.ZIP files on the C drive of the virtual server. Your IT team can, at your own responsibility, arrange to move (NOT COPY) these backup files to an external backup location every day. We recommend that the backup location should be removable media (e.g. external hard disk) and not non-removable media (e.g. shared folder on another computer).&lt;br /&gt;
  &lt;br /&gt;
 If any damage happens to the NEOSYS server, the backup files on C drive will not be accessible and will therefore be useless. So, kindly confirm that your IT team will arrange to move the backup files as mentioned above.&lt;br /&gt;
 &lt;br /&gt;
 In addition to this, offsite backups of your virtual server can be setup by us if required, with an additional cost.&lt;br /&gt;
&lt;br /&gt;
==Backup Messages==&lt;br /&gt;
&lt;br /&gt;
==== Interpreting backup alerts messages ====&lt;br /&gt;
 &lt;br /&gt;
Success messages come with a blank body&lt;br /&gt;
 &lt;br /&gt;
Failure messages should come with the errors in the body&lt;br /&gt;
 &lt;br /&gt;
Both success and failure messages come with an attachment containing a list of files copied (or supposed to be copied but failed) and a summary of the volume and speed of data transferred&lt;br /&gt;
&lt;br /&gt;
==== Cause and Solution of Backup Warning Messages ====&lt;br /&gt;
 &lt;br /&gt;
NEOSYS gives a backup WARNING message whenever it discovers that it is overwriting backups a week old. It does this because NEOSYS only deems backups completely successful if the backup media is rotated at least on a weekly basis.&lt;br /&gt;
&lt;br /&gt;
If the backup media is removable then it should be changed weekly and the same media not used repeatedly on successive weeks.&lt;br /&gt;
&lt;br /&gt;
If the backup is going to non-removable media (even if it is a shared folder on another computer) then the NEOSYS user/client/licencee (not the NEOSYS support team) can, at their own responsibility, arrange to move (not copy) the NEOSYS backup files from that location to a backup location of their choice and avoid this WARNING message.&lt;br /&gt;
&lt;br /&gt;
==Handling failure and warning messages on nightly USB backup alerts==&lt;br /&gt;
&lt;br /&gt;
=== Backup mail not received ===&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_email_not_received#Troubleshooting_email_not_received|Troubleshooting email not received]]&lt;br /&gt;
&lt;br /&gt;
=== Handling Change Backup message if the client does not use a USB backup device ===&lt;br /&gt;
&lt;br /&gt;
IF THE CLIENT IS BACKING UP TO A NON-REMOVABLE DESTINATION THEN EITHER 1. LIVE WITH THE FAILURE MESSAGE OR 2. SUPPRESS THE BACKUP ENTIRELY IN WHICH CASE NO BACKUPS ARE BEING DONE AND PROBABLY THIS WILL SHOW ON NEOSYS PROACTIVE WARNING SYSTEMS LIKE NAGIOS. &lt;br /&gt;
&lt;br /&gt;
Nagios warnings can be acknowledged. &lt;br /&gt;
&lt;br /&gt;
DO *NOT* FOLLOW BELOW PROCEDURE SINCE IS IT IS TOTALLY UNACCEPTABLE FOR NEOSYS TO SEND OUT A &amp;quot;BACKUP SUCCESS&amp;quot; MESSAGE WHEN THE BACKUP IS NOT BEING DONE PROPERLY. IN GENERAL, TAKING SHORT CUTS THAT MAKE THINGS APPEAR SATISFACTORY WHEN THEY ARE NOT IS VERY POOR POLICY.&lt;br /&gt;
&lt;br /&gt;
# Basically most of the client use USB for Neosys server but there are some clients who do not use USB. They could be on virtual server or just saving their backups in hard drive. &lt;br /&gt;
# As we know that backup take place in Data.bak folder but it does a backup only for a week in a single USB. Over here client do not use USB but save their backup in hard drive/virtual server location in Data.bak folder, once the week is over  it will again give Change backup message.  &lt;br /&gt;
# In this case rename the Data.bak folder to Data1.bak this is done because system read only Data.bak folder as it is configured in the system. When you rename Data.bak to Data1.bak it automatically create a new folder Data.bak in Backup drive.&lt;br /&gt;
# This process is done so that the backup does not fail next day morning and backup is done in Data.bak folder along with successful backup email.&lt;br /&gt;
# In the third week we will again see the same message Chang backup USB message, so you need to rename Data.bak folder to Data2.bak&lt;br /&gt;
# But in fourth week you rename the Data1.bak to Data.bak and change the Data2.bak to Data1.bak and Data.bak to Data2.bak &lt;br /&gt;
# Keep only three folders and Data.bak, Data1.bak, Data2.bak and keep on renaming these folders every week as shown above.&lt;br /&gt;
&lt;br /&gt;
AS MENTIONED EARLIER *DO NOT FOLLOW* THE ABOVE PROCEDURE ON ANY CLIENT THAT DOES NOT USE A USB BACKUP DEVICE.&lt;br /&gt;
&lt;br /&gt;
=== Warning Message: Backup media not changed. Overwriting last weeks backup ===&lt;br /&gt;
 &lt;br /&gt;
If the client does not change the USB on scheduled day the next day&#039;s backup will fail, with email subject: &amp;quot;NEOSYS: Backup &amp;lt;CLIENT&amp;gt; -&amp;gt; &amp;lt;Drive Letter&amp;gt;: &amp;lt;USB NAME&amp;gt; CHANGED FAILURE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
As per standard &amp;quot;NEOSYS Backup Failure - USB not interchanged&amp;quot; email, the schedule day to interchange backup USB drives should generally remain on the same scheduled day. No cases have yet been documented where we have inconvenienced and forced our clients to change the day.&lt;br /&gt;
&lt;br /&gt;
NEOSYS gives a backup WARNING message whenever it discovers that it is overwriting backups a week old. It does this because NEOSYS only deems backups completely successful if the backup media is rotated at least on a weekly basis.&lt;br /&gt;
 &lt;br /&gt;
If the backup media is removable then it should be changed daily or weekly and the same media not used repeatedly on successive weeks. &lt;br /&gt;
 &lt;br /&gt;
If the backup is going to non-removable media (even if it is a shared folder on another computer) then the NEOSYS user/client/licensee (not the NEOSYS support team) can, at their own responsibility, arrange to move (not copy) the NEOSYS backup files from that location to a backup location of their choice and avoid this WARNING message. Also refer to [[Backup_and_Restore#Handling_Change_Backup_message_if_the_client_does_not_use_a_USB_backup_device|Handling Change Backup message if the client does not use a USB backup device]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Standard &amp;quot;NEOSYS Backup Failure - USB not interchanged&amp;quot; email:&lt;br /&gt;
 Dear Team,&amp;lt;br&amp;gt;&lt;br /&gt;
  The NEOSYS backup has failed today as the USB was not interchanged on the scheduled day i.e. yesterday. &amp;lt;br&amp;gt;&lt;br /&gt;
  Please interchange the USB immediately today to avoid a backup failure tomorrow morning.&amp;lt;br&amp;gt;&lt;br /&gt;
  Also note that your scheduled day to interchange the USB next week remains unchanged to &amp;lt;Schedule day&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
 Kind Regards&amp;lt;br&amp;gt;&lt;br /&gt;
 XXXX XXXX&lt;br /&gt;
&lt;br /&gt;
=== Error Message: Somebody else was using the dataset ===&lt;br /&gt;
&lt;br /&gt;
 Server=NEOSYS&lt;br /&gt;
 Client=NEOSYS&lt;br /&gt;
 User=ADAGENCY&lt;br /&gt;
 NEOSYS Ver:18:02:13  30 MAY 2006&lt;br /&gt;
 &lt;br /&gt;
 Backup started at 19/11/2006 2:00am&lt;br /&gt;
 &lt;br /&gt;
 TEST DATA TESTDATA&lt;br /&gt;
 &lt;br /&gt;
 To E:\DATA.BAK\TESTDATA\Sunday\BACKUP.ZIP&lt;br /&gt;
 !!! THE BACKUP HAS FAILED !!!&lt;br /&gt;
 &lt;br /&gt;
 (because one or more files were not backed up&lt;br /&gt;
  - somebody else was using them)&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
&lt;br /&gt;
Despite the error message which shows that &#039;somebody else was using them&#039;, it is definitely not correct as NEOSYS shuts down automatically at 2 am (time of the &lt;br /&gt;
&lt;br /&gt;
backup). The actual problem might be that a NEOSYS process must have got stuck and failed to shutdown or a maintenance process was left open by accident.&lt;br /&gt;
&lt;br /&gt;
==== Action to be taken ====&lt;br /&gt;
&lt;br /&gt;
Close any maintenance processes that should not have been left open in the first place.&lt;br /&gt;
&lt;br /&gt;
Try to exit normally or kill any other [[Troubleshooting_NEOSYS_Generally#How_to_kill_hung_NEOSYS_processes|&amp;quot;hung&amp;quot;]] processes, taking screenshots of any error messages in order to try and prevent the problem happening again.&lt;br /&gt;
&lt;br /&gt;
If not inconvenient to the users consider initiating a manual backup or just check that the next automatic backup works ok.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: Size Lock ===&lt;br /&gt;
 &lt;br /&gt;
 Server=NEOSYS-SERVER&lt;br /&gt;
 Client=NEOSYS-SERVER&lt;br /&gt;
 User=NETSERVICE&lt;br /&gt;
 NEOSYS Ver:19:57:50  08 NOV 2006&lt;br /&gt;
 &lt;br /&gt;
 Backup started at 19/11/2006 2:00am&lt;br /&gt;
 &lt;br /&gt;
 ADLINE ADLINE&lt;br /&gt;
 &lt;br /&gt;
 To F:\DATA.BAK\ADLINE\Sunday\BACKUP.ZIP&lt;br /&gt;
 The following files had a size lock but have been fixed SHADOW Warning! Process &lt;br /&gt;
 U79068                                                      &lt;br /&gt;
 Other Network Stations are Active!&lt;br /&gt;
 This utility was designed to be run in a single-user mode!&lt;br /&gt;
 &lt;br /&gt;
 Potential Errors Could Occur, If You Proceed to fix the sizelock Values with Other Stations   &lt;br /&gt;
 Active.  These Errors Include;&lt;br /&gt;
 &lt;br /&gt;
 Invalid SELECT results, Degredation in Network Performance, and other Problems/Concerns which &lt;br /&gt;
 may be specific to your Installation/Application.&lt;br /&gt;
 &lt;br /&gt;
 IT IS STRONGLY RECOMMENDED THAT ALL NETWORK STATIONS BE LOGGED OUT BEFORE PROCEEDING!&lt;br /&gt;
 &lt;br /&gt;
 Do you wish to Proceed at this time?%B%&lt;br /&gt;
 !!! THE BACKUP HAS FAILED !!!&lt;br /&gt;
 &lt;br /&gt;
 (because one or more files were not backed up&lt;br /&gt;
 - somebody else was using them)&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
&lt;br /&gt;
Sizelock errors are not critical and do not stop the backup from being performed. Sizelocks are cleared automatically during backup but the backup alert becomes a &lt;br /&gt;
&lt;br /&gt;
warning that the backup was not quite perfect.&lt;br /&gt;
&lt;br /&gt;
Sizelocks during database checking indicate that some files were not properly closed in normal processing but do not indicate corrupt files. Sizelock means that a file &lt;br /&gt;
&lt;br /&gt;
is prevented from expanding and contracting. Expanding and contracting is necessary in order to speed up access to larger numbers of records. Therefore if sizelocks &lt;br /&gt;
&lt;br /&gt;
were to be left uncleared then the file would become slower and slower to access over time.&lt;br /&gt;
&lt;br /&gt;
In the above example the backup was not completed because of another error &amp;quot;files in use&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Action to be taken ====&lt;br /&gt;
&lt;br /&gt;
If this is an automatic backup then no action is required since the sizelocks are automatically cleared. &lt;br /&gt;
&lt;br /&gt;
During a manual backup then you should press F9 on the sizelock warning screen to confirm that the sizelocks should be cleared.&lt;br /&gt;
&lt;br /&gt;
Sizelocks can only be cleared if no other process is open.&lt;br /&gt;
&lt;br /&gt;
=== Failure Message : Backup file size is 0 ===&lt;br /&gt;
 &lt;br /&gt;
 16/4/2009 9:43am Creating zip&lt;br /&gt;
 &lt;br /&gt;
 16/4/2009 9:45am !!! THE DATABASE BACKUP HAS FAILED !!!&lt;br /&gt;
 &lt;br /&gt;
 BECAUSE BACKUP FILE SIZE IS 0&lt;br /&gt;
&lt;br /&gt;
==== Error Explanation 1 ====&lt;br /&gt;
This happens when there is no adequate storage space on the hard-disk which houses the NEOSYS application and data files. When the automated backup is initiated, the &lt;br /&gt;
&lt;br /&gt;
NEOSYS application checks all the data files and creates a zipped file of it which is the databasename.zip (in the above case IMDUB.ZIP). During this zip file &lt;br /&gt;
&lt;br /&gt;
creation, NEOSYS needs additional disk space temporarily and if this is not available then the backup would fail. The IMDUB.ZIP file is created and backed up (as &lt;br /&gt;
&lt;br /&gt;
BACKUP.ZIP under the respective day of the week) to the USB or any other drive specified and is automatically deleted from the drive that it was created in.&lt;br /&gt;
&lt;br /&gt;
====Error Explanation 2====&lt;br /&gt;
&lt;br /&gt;
This could be due lack of EMSMAGIC. &lt;br /&gt;
&lt;br /&gt;
In case of a Windows Server 2003 installation: [[Troubleshooting NEOSYS Generally#Enabling EMS memory on Window 2003|Enabling EMS memory on Window 2003]]&lt;br /&gt;
&lt;br /&gt;
In case of a Windows Server 2008 installation: [[Installing EMS Magic|Installing EMS Magic on Windows 2008]]&lt;br /&gt;
&lt;br /&gt;
==== Actions to be taken ====&lt;br /&gt;
#In this case, you need to clear up the hard-disk and create some space. In the above scenario at Initiative there was a folder of 52 GB in the same drive that houses NEOSYS and the available disk space was just 40 MB. So the un-necessary folder was moved out to make space. &lt;br /&gt;
#If there is sufficient space available on the hard disk which houses NEOSYS, then consider checking the anti-virus settings and escalate the issue to NEOSYS programmer for debugging.&lt;br /&gt;
&lt;br /&gt;
This is another reason why NEOSYS personnel should put their foot down on getting dedicated servers for NEOSYS as it restrains the client IT staff from using the &lt;br /&gt;
&lt;br /&gt;
NEOSYS server to house data or any other applications besides NEOSYS.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: Inadequate Storage Space on USB ===&lt;br /&gt;
&lt;br /&gt;
==== Error 1 ====&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
 Server=SERVER2&lt;br /&gt;
 Client=SERVER2&lt;br /&gt;
 User=ACCOUNTS&lt;br /&gt;
 NEOSYS Ver:11:26:27  26 JUL 2010&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:00 Backup started F: BASIC &lt;br /&gt;
 7/2/2012 2:00 Media: FADE-0001&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:00 Checking for damaged database files&lt;br /&gt;
 7/2/2012 2:01 Checked OK 1.92MB (+1.00KB)&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:01 Creating zip&lt;br /&gt;
 7/2/2012 2:01 Created OK BASIC.ZIP 251KB&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:02 Copying to F:\DATA.BAK\Tuesday\BACKUP.ZIP&lt;br /&gt;
 7/2/2012 2:02 Copied OK&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:02 Verifying zip OK&lt;br /&gt;
 7/2/2012 2:02 Verified OK&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:02 Started backup of uploaded files in /cygdrive/E/ to F:&lt;br /&gt;
 7/2/2012 2:04 neosys/DATA/ACCOUNTS/REV20050.LK&lt;br /&gt;
 neosys/DATA/ACCOUNTS/REV20052.LK&lt;br /&gt;
 7/2/2012 2:04 rsync: writefd_unbuffered failed to write 4092 bytes [sender]: Connection reset by peer (104)&lt;br /&gt;
 rsync: write failed on &amp;quot;/cygdrive/F/E/neosys/DATA/ACCOUNTS/BATCHES.LK&amp;quot;: No space left on device (28)&lt;br /&gt;
 rsync: connection unexpectedly closed (9077 bytes received so far) [sender]&lt;br /&gt;
 rsync error: error in rsync protocol data stream (code 12) at /home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/io.c(632) [sender=3.0.4]&lt;br /&gt;
 7/2/2012 2:04 Finished backup of uploaded files&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:04 !!! THE DATABASE BACKUP HAS FAILED !!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
In the above error log we notice the line: &lt;br /&gt;
 rsync: write failed on &amp;quot;/cygdrive/F/E/neosys/DATA/PT0011A/ACCOUNTS/BATCHES.LK&amp;quot;: No space left on device (28)&lt;br /&gt;
&lt;br /&gt;
This is an indication that the USB being used to store backups does not have adequate storage space to save further backups.&lt;br /&gt;
&lt;br /&gt;
This particular message only comes when using rsync to copy all IMAGES (ie files uploaded to NEOSYS) to the USB.&lt;br /&gt;
&lt;br /&gt;
Sometimes, image backup is used to configured to backup the whole of a disk or the whole of data folder for example if there are hundreds of databases that are not all &lt;br /&gt;
&lt;br /&gt;
used everyday.&lt;br /&gt;
&lt;br /&gt;
==== Error 2 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Server=SERVER2&lt;br /&gt;
 Client=SERVER2&lt;br /&gt;
 User=ACCOUNTS&lt;br /&gt;
 NEOSYS Ver:11:26:27  26 JUL 2010&lt;br /&gt;
 7/2/2012 2:00 Backup started F: PT0621 - GABANG HOLDINGS LIMITED&lt;br /&gt;
 7/2/2012 2:00 Media: FADE-0001&lt;br /&gt;
 7/2/2012 2:00 Checking for damaged database files&lt;br /&gt;
 7/2/2012 2:02 Checked OK 2.25MB (+20.0KB)&lt;br /&gt;
 7/2/2012 2:02 Creating zip&lt;br /&gt;
 7/2/2012 2:02 Created OK PT0621.ZIP 462KB&lt;br /&gt;
 7/2/2012 2:02 !!! THE DATABASE BACKUP HAS FAILED !!!&lt;br /&gt;
 BECAUSE NOT ENOUGH FREE SPACE ON BACKUP MEDIA.&lt;br /&gt;
 462KB REQUIRED BUT ONLY 452KB AVAILABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
As the last line of the above error log clearly states, there is not adequate free space available on the USB to perform a backup.&lt;br /&gt;
&lt;br /&gt;
In the above case, 462KB is required space while only 452KB is available.&lt;br /&gt;
&lt;br /&gt;
==== Action to be taken ====&lt;br /&gt;
The simple solution is to purchase a new USB with greater storage space than the existing USB.&lt;br /&gt;
&lt;br /&gt;
Sample Email to be sent to clients:&lt;br /&gt;
&lt;br /&gt;
 The automated NEOSYS backup has failed due to insufficient storage space on the USB.&lt;br /&gt;
 Currently you are using a 4GB USB, which is insufficient for storing backups.&lt;br /&gt;
 I recommend that you use a USB with 8 GB or more storage space.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note -&#039;&#039; We may also solve this issue by checking the USB for unnecessary files and move/delete them.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: &amp;quot;Cannot backup/restore because PROCESS1 PROCESS2 (etc) is/are online&amp;quot; message ===&lt;br /&gt;
 &lt;br /&gt;
This can happen for a variety of reasons, e.g if any the NEOSYS processes fail to close down at backup time because the process has hung due to software error.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: &amp;quot;LISTS file is not available&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Server=NEOSYS	&lt;br /&gt;
Client=NEOSYS	&lt;br /&gt;
User=ADAGENCY	&lt;br /&gt;
NEOSYS Ver:16:07:53  04 JUN 2018	&lt;br /&gt;
	&lt;br /&gt;
&amp;quot;LISTS&amp;quot; is invalid	&lt;br /&gt;
	&lt;br /&gt;
The &amp;quot;LISTS&amp;quot; file is not available.	&lt;br /&gt;
	&lt;br /&gt;
?[FS200]????????????????????????????????????????	&lt;br /&gt;
	&lt;br /&gt;
The &amp;quot;DATAVOL\NEOS0001\&amp;quot; file is not available.	&lt;br /&gt;
	&lt;br /&gt;
THERE ARE NO FILES IN THIS DATASET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
Although unlikely, look for third-party software that have been installed on the server without the agreement of NEOSYS and uninstall them (see link below).&lt;br /&gt;
&lt;br /&gt;
Refer: [[Procedures#Removal_of_unauthorized_third-party_software_on_client_servers|Uninstalling unauthorized third-party software]]&lt;br /&gt;
&lt;br /&gt;
# Stop all processes (using global.end method).&lt;br /&gt;
# Navigate to the NEOSYS/DATAVOL folder and delete it.&lt;br /&gt;
# Perform a manual backup. (NEOSYS &amp;gt; Menu &amp;gt; Support &amp;gt; Backup)&lt;br /&gt;
# Backups should be successful. Check by various methods.&lt;br /&gt;
# Start NEOSYS processes.&lt;br /&gt;
# A new email may be sent when the first process is started, (INIT.GENERAL) containing the next section error &amp;quot;volume and cannot be attached&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Error Message: &amp;quot;volume and cannot be attached&amp;quot;===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The &amp;quot;DATAVOL	&lt;br /&gt;
DATAVOL\NEOS0001\	&lt;br /&gt;
08:48:57  27 JUN 2018&amp;quot; volume	&lt;br /&gt;
has the same label	&lt;br /&gt;
(&amp;quot;&amp;quot;)	&lt;br /&gt;
as the &amp;quot;&amp;quot; volume	&lt;br /&gt;
and cannot be attached.	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Server:  NEOSYS	&lt;br /&gt;
Install: D:\NEOSYS\NEOSYS\	&lt;br /&gt;
Version: 16:07:53  04 JUN 2018	&lt;br /&gt;
Database:2996420B AMC	&lt;br /&gt;
Process: 1	&lt;br /&gt;
Client:  NEOSYS	&lt;br /&gt;
User:    ADAGENCY	&lt;br /&gt;
Stack:   SYSMSG,INIT.GENERAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
Pending&lt;br /&gt;
&lt;br /&gt;
== Fixing Network Connectivity Errors for consolidated Backups ==&lt;br /&gt;
There could be multiple reasons why the backup server might not be able to connect with the backed up server. &lt;br /&gt;
&lt;br /&gt;
Error&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Receiver] io timeout after 600 seconds -- exiting rsync error: timeout in data send/receive (code 30) at /home/lapo/package/rsync-3.0.8-1/src/rsync-3.0.8/io.c(140) [Receiver=3.0.8] [Receiver] io timeout after   600 seconds -- exiting rsync error: timeout in data send/receive (code 30) at /home/lapo/package/rsync-3.0.8-1/src/rsync-3.0.8/io.c(140) [Receiver=3.0.8] tried via hostname.support.neosys.com now trying via hostname2.support.neosys.com&lt;br /&gt;
ssh: Could not resolve hostname hostname2.support.neosys.com: hostname nor servname provided, or not known&lt;br /&gt;
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.8-1/src/rsync-3.0.8/io.c(601) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following tests help in checking why the connectivity was lost between the backup server and the backed up server:&lt;br /&gt;
&lt;br /&gt;
===Check whether the server was up===&lt;br /&gt;
If either of the servers were down, that could be the reason why connectivity was lost between the backup server and the backed up server. If this test fails, proceed to the next step.&lt;br /&gt;
&lt;br /&gt;
===Telnet check===&lt;br /&gt;
&amp;lt;pre&amp;gt; telnet &amp;lt;hostname&amp;gt; 19580  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hostname&amp;gt; is the name or IP address of the remote server to connect to.&lt;br /&gt;
&lt;br /&gt;
If telnet is not able to connect to the remote host specified in &amp;lt;hostname&amp;gt; or establish a connection on the &amp;lt;port&amp;gt; specified, it will report an error similar to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:&amp;gt; telnet fred.plus.com &amp;lt;CR&amp;gt;&lt;br /&gt;
Connecting To fred.plus.com...Could not open connection to the host, on port 23: Connect failed&lt;br /&gt;
C:&amp;gt; telnet mail.plus.net 60 &amp;lt;CR&amp;gt;&lt;br /&gt;
Connecting To mail.plus.com...Could not open connection to the host, on port 60: Connect failed.&lt;br /&gt;
C:&amp;gt; telnet 60.92.12.56 74 &amp;lt;CR&amp;gt;&lt;br /&gt;
Connecting To 60.92.12.56...Could not open connection to the host, on port 74: Connect failed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Autologin===&lt;br /&gt;
&lt;br /&gt;
====Error====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rsync: failed to connect to 127.0.0.1: Connection refused (111) rsync error: error in socket IO (code 10) at &lt;br /&gt;
/home/lapo/packaging/rsync-3.0.7-1/src/rsync-&lt;br /&gt;
&lt;br /&gt;
3.0.7/clientserver.c(122) [Receiver=3.0.7]&lt;br /&gt;
&lt;br /&gt;
tried via hostname.neosys.com&lt;br /&gt;
&lt;br /&gt;
now trying via hostname2.neosys.com&lt;br /&gt;
&lt;br /&gt;
rsync: failed to connect to 127.0.0.1: Connection refused (111) rsync error: error in socket IO (code 10) at &lt;br /&gt;
/home/lapo/packaging/rsync-3.0.7-1/src/rsync-&lt;br /&gt;
&lt;br /&gt;
3.0.7/clientserver.c(122) [Receiver=3.0.7]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Error Explained=====&lt;br /&gt;
The automated backup cannot use autologin to access the server being backed up and so the backup fails.&lt;br /&gt;
&lt;br /&gt;
===== Solution =====&lt;br /&gt;
&lt;br /&gt;
[[Backup_and_Restore#Checking_if_autologin_is_configured_correctly_and_working_or_not| Check autologin]] and [[Backup_and_Restore#Running_..2Fautologin.sh|Run autologin]]&lt;br /&gt;
&lt;br /&gt;
==== Error Message: &amp;quot;WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!&amp;quot; message ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Error&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
It is also possible that a host key has just been changed.&lt;br /&gt;
The fingerprint for the ED25519 key sent by the remote host is&lt;br /&gt;
SHA256:9i9JH5xh11rEMIgrsax8A7bEKXfKVRiJr9nZllWXdFg.&lt;br /&gt;
Please contact your system administrator.&lt;br /&gt;
Add correct host key in /home/administrator/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
Offending ECDSA key in /home/administrator/.ssh/known_hosts:208&lt;br /&gt;
ED25519 host key for [192.168.10.1]:19580 has changed and you have requested strict checking.&lt;br /&gt;
Host key verification failed.&lt;br /&gt;
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]&lt;br /&gt;
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solution to the problem is to remove the host key for the host mentioned in the error message in the known_hosts file.&lt;br /&gt;
&lt;br /&gt;
Run the following command in Cygwin terminal.&lt;br /&gt;
&amp;lt;pre&amp;gt; ssh-keygen -R [host ip]:port &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e.g in the above message for host ip 192.168.10.1 and port 19580 the command is &lt;br /&gt;
&amp;lt;pre&amp;gt; ssh-keygen -R [192.168.10.1]:19580 &amp;lt;/pre&amp;gt;&lt;br /&gt;
Next re run autologin for the host, see [[Backup_and_Restore#Running_..2Fautologin.sh | Running autologin ]]&lt;br /&gt;
&lt;br /&gt;
===Check Scheduled Tasks on the Server===&lt;br /&gt;
Check if logs of Scheduled Tasks on the server, to see if the remote backup task executed and completed successfully. It is possible that the remote backup scheduled task hung due to some reason and a new instance of the task fails to start up the next day due to the existing instance. To avoid this situation, in Properties of the task, under Settings tab, check &amp;quot;Stop the task if it runs for:&amp;quot; and configure it to less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== Adding/restoring SSH key to backup server ==&lt;br /&gt;
&lt;br /&gt;
(Will be helpful to understand the concept of asymmetric keys).&lt;br /&gt;
&lt;br /&gt;
This script is usually used to fix the backup procedure. The backup server initiates the backup procedure using the &amp;quot;pull&amp;quot; concept to get data from source servers. The &amp;quot;backed-up server&amp;quot; serves the data (usually using an rsync service) to the backup server on request. They do not use a &amp;quot;push&amp;quot; concept, this is for security reasons. This means that backup servers need to be able to automatically login to the backed-up servers. On most backup servers a NEOSYS Cygwin script called autologin.sh has been installed.&lt;br /&gt;
&lt;br /&gt;
NEOSYS processes on a target server can sometimes reset/ lose autologin (public) keys (particularly when NEOSYS is upgraded) on the target server when it should not actually. This enforces rerunning autologin.sh. You only need to run autologin.sh once per pair of backup and backed-up servers, in the backup server.&lt;br /&gt;
&lt;br /&gt;
This relates to a common procedure used by NEOSYS to provide automatic nightly synchronisation/backups between servers for multi-office configurations. For more information see&lt;br /&gt;
http://itwiki.neosys.com/index.php/Setting_up_remote_backup&lt;br /&gt;
&lt;br /&gt;
=== Creating/Upgrading autologin.sh ===&lt;br /&gt;
&lt;br /&gt;
Follow commands below add autologin.sh to system:&lt;br /&gt;
&lt;br /&gt;
# Copy script below.&lt;br /&gt;
# run &amp;quot;cd ~/ &amp;amp;&amp;amp; nano autologin.sh&amp;quot;, paste script into editor and exit.&lt;br /&gt;
# Run &amp;quot;chmod +x autologin.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if [ -z $1 ]; then #syntax&lt;br /&gt;
   echo ./autologin.sh targethostname targetusername sshport&lt;br /&gt;
elif [ $1 ]; then&lt;br /&gt;
   set -e&lt;br /&gt;
&lt;br /&gt;
   REMOTEHOST=$1&lt;br /&gt;
   REMOTEUSER=$2&lt;br /&gt;
   PORT=$3&lt;br /&gt;
&lt;br /&gt;
   test $REMOTEUSER || REMOTEUSER=administrator&lt;br /&gt;
   test $PORT || PORT=19580&lt;br /&gt;
&lt;br /&gt;
   if [ ! $REMOTEUSER ]; then&lt;br /&gt;
      echo -n &amp;quot;Remote User (blank=administrator)/root?&amp;quot;&lt;br /&gt;
   read REMOTEUSER&lt;br /&gt;
   if [ &amp;quot;$REMOTEUSER&amp;quot; == &amp;quot;&amp;quot; ] ; then REMOTEUSER=administrator ; fi&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   if [ ! REMOTEHOST ]; then&lt;br /&gt;
   echo -n &amp;quot;Remote Host? &amp;quot;&lt;br /&gt;
   read REMOTEHOST&lt;br /&gt;
   if [ &amp;quot;$REMOTEHOST&amp;quot; == &amp;quot;&amp;quot; ] ; then exit; fi&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   echo PASSPHRASE MUST BE BLANK IF YOU GET ASKED FOR IT!&lt;br /&gt;
   #Generate priv/pub keys in .ssh if not already done&lt;br /&gt;
   #Priv key mustnt be accessible except to owner otherwise wont work.&lt;br /&gt;
   test -f ~/.ssh/id_rsa || \&lt;br /&gt;
   ssh-keygen -t rsa &amp;amp;&amp;amp; \&lt;br /&gt;
   chmod 600 ~/.ssh/id_rsa&lt;br /&gt;
&lt;br /&gt;
   echo&lt;br /&gt;
   echo &amp;quot;Logging in to the remote server (enter the pass again)&amp;quot;&lt;br /&gt;
   sed &#039;s/neosys//&#039; ~/.ssh/id_rsa.pub | \&lt;br /&gt;
   ssh -p $PORT $REMOTEUSER@$REMOTEHOST \&lt;br /&gt;
   &amp;quot;mkdir -p .ssh ; chmod 700 .ssh ;\&lt;br /&gt;
   cat &amp;gt;&amp;gt; .ssh/authorized_keys ;\&lt;br /&gt;
   chmod 644 .ssh/authorized_keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   echo&lt;br /&gt;
   echo &amp;quot;Test automatic login to the remote server&amp;quot;&lt;br /&gt;
   echo &amp;quot; SHOULD NO LONGER ASK FOR PASSWORD.&amp;quot;&lt;br /&gt;
   echo &amp;quot; IF SUCCESSFULL, TYPE exit&amp;quot;&lt;br /&gt;
   ssh -p $PORT $REMOTEUSER@$REMOTEHOST&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using ./autologin.sh ===&lt;br /&gt;
&lt;br /&gt;
#Asks you for the username and hostname and port. (if username is administrator and port is 19580, then you can omit) &lt;br /&gt;
#Asks you to enter the administrator or root password and copies the public key from the source server to the destination server.&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
#Logs you in to the destination server&#039;s Cygwin/bash command line.&lt;br /&gt;
&lt;br /&gt;
=== Running ./autologin.sh ===&lt;br /&gt;
In Cygwin on the backup server, you can use any of the following syntax depending on your configuration:&lt;br /&gt;
&lt;br /&gt;
Syntax: (for syntax reminder type &amp;quot;./autologin.sh&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh targethostname targetusername sshport&lt;br /&gt;
&lt;br /&gt;
*targethostname - if omitted will be prompted for it&lt;br /&gt;
*targetusername - if omitted will be &amp;quot;administrator&amp;quot;&lt;br /&gt;
*sshport - if omitted will be &amp;quot;19580&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example using prompting for parameters (targethostname)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh&lt;br /&gt;
&lt;br /&gt;
Example using default user and port (administrator/19580)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh examplehost.neosys.com&lt;br /&gt;
&lt;br /&gt;
Example with different user (port will be 19580)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh examplehost.neosys.com administrator&lt;br /&gt;
&lt;br /&gt;
Example with different user and port&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh examplehost.neosys.com admin 19500&lt;br /&gt;
&lt;br /&gt;
The username is usually administrator for windows server targets.&lt;br /&gt;
&lt;br /&gt;
The hostname can be found in backup email logs or in the CONFIG.CMD file in the backup server.&lt;br /&gt;
&lt;br /&gt;
There are often two alternative hostnames. Try the first one first. If you succeed with the first then there is no need to try the second.&lt;br /&gt;
&lt;br /&gt;
Sometimes one of the host names is based on alternative network access methods like hamachi which uses ip addresses starting with &amp;quot;5.&amp;quot; and requires hamachi service to be running in both servers and this sometimes is dependent on being logged in and correct setup of hamachi. You can ping the host names to discover the ip numbers of course.&lt;br /&gt;
&lt;br /&gt;
If Autologin is configured successfully, it logs you in to the backed up server&#039;s cygwin/bash command line.&amp;lt;br&amp;gt;&amp;lt;b&amp;gt; YOU should NOT be required to enter the password each time.&amp;lt;/b&amp;gt; You type &amp;quot;exit&amp;quot; to quit the backed up server&#039;s command line.&lt;br /&gt;
&lt;br /&gt;
If Autologin is not configured successfully, you might be required to enter a password. In that case, enter the password and follow instructions on screen.&lt;br /&gt;
The system asks for the password to the target server to transfer an identity file and once again to access the command line of the target server from where you must follow a set of instructions in order to load the identity file properly.&lt;br /&gt;
Follow the instructions on the screen VERY carefully.&lt;br /&gt;
&lt;br /&gt;
==== Checking if autologin is configured correctly and working or not ====&lt;br /&gt;
On the source system, in Cygwin/Terminal console, type the following, changing port number, administrator and clientname to suit the case.&lt;br /&gt;
 ssh –p 19580 administrator@clientname.hosts.neosys.com&lt;br /&gt;
After a few seconds, if it is working properly, it should give you a command prompt on the target system. This indicates that autologin was successful. You may exit using the command: &lt;br /&gt;
 exit&lt;br /&gt;
Otherwise, if it gives some error and in particular if it asks you anything at all, for example “confirm fingerprint?” or “password?” then autologin is not working.&lt;br /&gt;
You can then type in the following command in cygwin to configure or reconfigure autologin:&lt;br /&gt;
 ./autologin.sh&lt;br /&gt;
&lt;br /&gt;
==Switching to a backup server==&lt;br /&gt;
&lt;br /&gt;
As NEOSYS provides clients with option of backing up their data to a remote NEOSYS server in case of emergencies or server problems, it is crucial you understand the below procedure on how to switch to a backup server in the event of such a situation. Extreme care must be taken when switching over to using a backup server otherwise unnecessary data loss is very likely.&lt;br /&gt;
&lt;br /&gt;
Backup servers are normally switched off and should not be started automatically otherwise there is a serious risk of the client’s staff working on two systems. It is not possible to merge two databases into one database. Before the backup server is enabled the main server must be disabled, and before the main server is re-enabled, the backup  server must be disabled again. This can be managed technically without requiring any decision from senior non-technical staff.&lt;br /&gt;
&lt;br /&gt;
However, there are also some potentially hard decisions about unavoidable loss of data versus continued system availability. *** Backup servers should therefore only be started with the written approval of the clients senior staff. A suitable email requesting approval follows.&lt;br /&gt;
&lt;br /&gt;
The following case assumes that the main server has gone down sometime during the working day and that therefore the data on the backup server is out of date. Allowing them to use the backup server therefore implies some loss of data. They may wish to lose the data. They may wish to work on the backup server data and then try to redo the work on the main server once it is restored. There are a variety of options depending on the situation.&lt;br /&gt;
&lt;br /&gt;
If the main server is still functioning AND you are reasonably sure that the database is not damaged (which is perhaps an unlikely situation if you need to use the backup server!), it may be sensible to trigger an additional “backup/sync” process to bring the backup server database up to date with the main server. Before you do this, it is advisable that you take a backup copy of the backup system on the backup  server. In this case there would be no data loss in using the backup.&lt;br /&gt;
&lt;br /&gt;
An additional option of providing usage of the backup server in read-only mode so that people can at least access some data is being developed. The backup server could be available continuously at any time in read-only mode. This article would then be related to switching a backup server into main operational mode.&lt;br /&gt;
&lt;br /&gt;
 Dear {senior staff} cc {IT staff}&lt;br /&gt;
 &lt;br /&gt;
 Please note that we can enable the backup server if you wish.&lt;br /&gt;
 &lt;br /&gt;
 However the data on the backup server is out of date since it is a copy of your main database as at 11/22/33 99:99.&lt;br /&gt;
 &lt;br /&gt;
 If you wish to allow work to be done on the backup server then any data entered on your main server since the above date will be lost if we &lt;br /&gt;
 subsequently copy the data on the backup server to the main server.&lt;br /&gt;
 &lt;br /&gt;
 If, after using the backup server, we do NOT copy the data on the back server to the main server then any data you have entered on the backup &lt;br /&gt;
 server/database will be lost.&lt;br /&gt;
 &lt;br /&gt;
 Please confirm a) you want to work on HOSTS2 database and that we should therefore enable it and b) you have disconnected your main server &lt;br /&gt;
 for the duration.&lt;br /&gt;
 &lt;br /&gt;
 Best Regards,&lt;br /&gt;
 xxxxxx xxxxxxx&lt;br /&gt;
 NEOSYS Support&lt;br /&gt;
&lt;br /&gt;
==How to Restore NEOSYS from Backup==&lt;br /&gt;
&lt;br /&gt;
For a more detailed step by step go to [[http://techwiki.neosys.com/index.php/Installing_NEOSYS_Service#Installing_initial_or_Restoring_Database Restoring or Installing initial Database]]&lt;br /&gt;
&lt;br /&gt;
#Log into Maintenance Mode&lt;br /&gt;
#Go to General &amp;gt; Backup &amp;amp; Data Management &lt;br /&gt;
#Select (the 4th option) Restore from disk or diskette &lt;br /&gt;
#Select the drive where the latest successful backup.zip file is present and follow the prompts ahead.&lt;br /&gt;
&lt;br /&gt;
== Deleting all current and historical backups of a particular directory in NEOSYS ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1. Searching for directories to delete without deleting them ===&lt;br /&gt;
&lt;br /&gt;
There must be no similarly worded directories. Here the example directory is called DDBTEST.&lt;br /&gt;
&lt;br /&gt;
 find /backups/current /backups/snapshots -type d -path &amp;quot;*/DDBTEST/*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Step 2. Deleting the directories using rm ===&lt;br /&gt;
&lt;br /&gt;
This command uses the VERY DANGEROUS rm command. If the search is done even slightly wrong - which is well known to be very easily done - then rm will happily remove *all* files on the server causing *partial or complete loss of all backups and/or complete loss of the whole server*, requiring installation from scratch.&lt;br /&gt;
&lt;br /&gt;
Blunders with rm are notorious in IT.&lt;br /&gt;
&lt;br /&gt;
The command given below is incomplete and should only be completed by a skilled and responsible IT person who knows what to check and what to add.&lt;br /&gt;
&lt;br /&gt;
In its incomplete form, it is safe to run and will only highlight what directories will be deleted or delete empty directories.&lt;br /&gt;
&lt;br /&gt;
In its completed form, it is DANGEROUS and should not be used except as described above.&lt;br /&gt;
&lt;br /&gt;
 find /backups/current /backups/snapshots -type d -path &amp;quot;*/DDBTEST/*&amp;quot; | xargs -n 1 rm&lt;br /&gt;
&lt;br /&gt;
=== Step 3. Check all gone ===&lt;br /&gt;
&lt;br /&gt;
Redo step 1&lt;br /&gt;
&lt;br /&gt;
==While Moving NEOSYS to a new server, after copying D drive the Maintenance does not contain all data sets==&lt;br /&gt;
&lt;br /&gt;
After copying D drive, when you open Maintenance if the data sets are not present as in the old server you MUST restore Backup as restore is a verified/quick method of creating data sets. While restoring last night&#039;s Backup for missing data sets, the system gives a warning message &amp;quot;Dataset is already on the computer&amp;quot; as shown below. You MUST select the 2nd option &amp;quot;Overwrite the existing dataset&amp;quot; from the options in the warning message. In this way, all data sets will be created/saved on the new server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════════════════════╗&lt;br /&gt;
║                     *** WARNING ***                     ║&lt;br /&gt;
║                       TEST /TEST                        ║&lt;br /&gt;
║               IS ALREADY ON THE COMPUTER                ║&lt;br /&gt;
║  IF YOU CONTINUE, THE EXISTING FILES WILL BE DELETED.   ║&lt;br /&gt;
║                                                         ║&lt;br /&gt;
║                What do you want to do?                 ║&lt;br /&gt;
║───┬─────────────────────────────────────────────────────║&lt;br /&gt;
║  1│Cancel the restore process                           ║&lt;br /&gt;
║  2&amp;gt;Overwrite the existing data set                      ║&lt;br /&gt;
║  3│Restore and make a new dataset                       ║&lt;br /&gt;
╚═════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing historical snapshots of NEOSYS hosted clients data ==&lt;br /&gt;
&lt;br /&gt;
The main NEOSYS backup server nl13 contains backups of NEOSYS hosted clients along with all NEOSYS internal servers.&lt;br /&gt;
&lt;br /&gt;
It also contains historical snapshots of the backups going back six months.&lt;br /&gt;
&lt;br /&gt;
NEOSYS SUPPORT TEAM *MUST* AVOID COPYING, MOVING OR RENAMING FOLDERS ON NEOSYS WINDOWS SERVERS because this causes severe duplication and consumption of valuable resources for up to six months on nl13. Any exception to this rule must be discussed with NEOSYS IT *before* implementation.&lt;br /&gt;
&lt;br /&gt;
=== How to restore? ===&lt;br /&gt;
&lt;br /&gt;
nl13 is only accessible by NEOSYS IT so recovery of any data cannot be done directly by NEOSYS support team and is not a routine procedure.&lt;br /&gt;
&lt;br /&gt;
The secondary NEOSYS backup server hosts2 is accessible to NEOSYS support team but contains only the latest snapshot of the current NEOSYS hosted clients as at last night. No historical versions are available.&lt;br /&gt;
&lt;br /&gt;
=== What snapshots are available? ===&lt;br /&gt;
&lt;br /&gt;
As of 2017/05/25 the NEOSYS backup server nl13 takes snapshots (of the backups listed in Nagios) as follows using crontab:&lt;br /&gt;
&lt;br /&gt;
* 120 historical hourly backups done at **:10 every hour (5x24 hours)&lt;br /&gt;
* 8 historical daily backups done at 01:11 every night&lt;br /&gt;
* 5  historical weekly backups done at 01:12 every Saturday&lt;br /&gt;
* 6 historical monthly backups done at 01:13 on the 1st of every month&lt;br /&gt;
&lt;br /&gt;
=== What is backed up? ===&lt;br /&gt;
&lt;br /&gt;
Inspecting Nagios shows daily backups of NEOSYS hosted clients to nl13 of win3/d. Complete hourly backup is not possible due to limitations of Windows and/or the backup software used. However, there are hourly backups of win3/d/DATA.BAK so NEOSYS process &amp;quot;backups&amp;quot; to win3/d/DATA.BAK (on the same server and disk and therefore not a proper backup) do get properly backed up to a different server once an hour.&lt;br /&gt;
&lt;br /&gt;
=== Historical/Lapsed Clients? ===&lt;br /&gt;
&lt;br /&gt;
For more info see [[Uninstalling_clients_hosted_on_NEOSYS_Server|Uninstalling clients hosted on NEOSYS server ]]&lt;br /&gt;
&lt;br /&gt;
A single copy of lapsed clients last BACKUP.ZIP will be kept for as long as possible along with the active client&#039;s data and backed up identically.&lt;br /&gt;
&lt;br /&gt;
Long lapsed clients should be removed periodically from the normal DATA.BAK folder only when space runs out on win3 but a copy should be moved to D:\DATA2.BAK folder on hosts2 which is itself backed up nightly to nl13 which keeps backups for approx six months.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Backup_and_Restore&amp;diff=3659</id>
		<title>Backup and Restore</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Backup_and_Restore&amp;diff=3659"/>
		<updated>2019-12-11T13:55:19Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Backup Procedures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description of Backup Procedure for the Client Hosted NEOSYS Server ==&lt;br /&gt;
&lt;br /&gt;
3 USBs must be maintained and rotated on a weekly basis.&lt;br /&gt;
&lt;br /&gt;
Every night, the NEOSYS process stops serving users at around 1:00 AM to 5:00 AM (local time of the client&#039;s main office) and performs the following procedure:&lt;br /&gt;
&lt;br /&gt;
*All the database files are checked for physical corruption.&lt;br /&gt;
*All the database files are zipped into a file on the USB who&#039;s path would be something like F:\DATA.BAK\CLIENTX\MONDAY\BACKUP.ZIP file.&lt;br /&gt;
*The file having the same name as that of the corresponding day of the week as that of 3 weeks back is overwritten.A &amp;quot;backup alert&amp;quot; email indicating success or failure is sent to senior managers at the client, the client’s IT manager and backups@neosys.com.&lt;br /&gt;
*An internal log (accessible on each database&#039;s Support Menu) is maintained as a record and in case the emails cannot be sent out for some reason.&lt;br /&gt;
*NEOSYS support staff in Dubai check the emails every morning Sunday through Thursday.&lt;br /&gt;
*In the case of failure, NEOSYS support staff in Dubai take appropriate action and send an email (to the same people who receive the automated backup alert emails) indicating what action has been taken.&lt;br /&gt;
*Additionally offsite backup can be set up on NEOSYS server&lt;br /&gt;
&lt;br /&gt;
== Description of Backup Procedure for the NEOSYS Client Hosting Server ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS backup is a two phase process. It is mandatory that both phases are complete for the process to be considered a backup.&lt;br /&gt;
&lt;br /&gt;
1. On the main NEOSYS server host(Schuberg Philis in Amsterdam as of Dec 2010),Every night, the NEOSYS process for selected databases stops serving users at around 1:00 AM to 5:00 AM (local time of the client&#039;s main office) and performs the following procedure:&lt;br /&gt;
*All the database files are checked for physical corruption.&lt;br /&gt;
*All the database files are zipped into a file who&#039;s path would be something like C:\DATA.BAK\CLIENTX\MONDAY\BACKUP.ZIP file.&lt;br /&gt;
*The file having the same name as that of the corresponding day of the week as last week is overwritten.A &amp;quot;backup alert&amp;quot; email indicating success or failure is sent to senior managers at the client, the client’s IT manager and backups@neosys.com.&lt;br /&gt;
*An internal log (accessible on each database&#039;s Support Menu) is maintained as a record and in case the emails cannot be sent out for some reason.&lt;br /&gt;
*NEOSYS support staff in Dubai check the emails every morning Sunday through Thursday.&lt;br /&gt;
*In the case of failure, NEOSYS support staff in Dubai take appropriate action and send an email (to the same people who receive the automated backup alert emails) indicating what action has been taken.&lt;br /&gt;
*The above does not by itself constitute a proper backup because the backup is stored on the same server and physical disk as the actual data.&lt;br /&gt;
&lt;br /&gt;
2. On the NEOSYS backup server host (in NEOSYS Dubai Office as of Dec 2010 but could be changed without notice to EvoSwitch in Amsterdam).&lt;br /&gt;
*At around 02:00-02:30 AM GMT daily, NEOSYS&#039;s backup server copies (replicates) all the BACKUP.ZIP files from the main NEOSYS server host to itself.&lt;br /&gt;
*An email indicating success or failure is sent to NEOSYS support staff (only) who deal with it in a similar way to phase 1, except that only NEOSYS management are updated.&lt;br /&gt;
&lt;br /&gt;
== Backup Procedures ==&lt;br /&gt;
=== Preparing nightly backup report ===&lt;br /&gt;
# Note the success, failure and other error of the clients backup mail in an excel sheet and forward the same to your manager.&lt;br /&gt;
# If there is a backup failure or backup is not available, check wiki to take necessary steps.&lt;br /&gt;
# If there is any unknown error, forward the same to your manager.&lt;br /&gt;
Send the backup report after every quarter to all the Clients having consolidated backups.&lt;br /&gt;
&lt;br /&gt;
=== Running a manual backup in case of failures ===&lt;br /&gt;
&lt;br /&gt;
If a backup has failed, Support should check if any users are active in that particular database. Check Menu -&amp;gt; Support -&amp;gt; List of Documents in Use and also check list of users to see last login time. From backup email inbox, check how much time the backup of that database usually takes.&lt;br /&gt;
&lt;br /&gt;
If no users have logged in yet and if backup of the database usually completes in a few minutes, quickly start a [[Backup_and_Restore#Manual_Backup| manual backup]]&lt;br /&gt;
&lt;br /&gt;
This MUST be done first thing in the morning since Dubai clients generally start working around the same time as Support team.&lt;br /&gt;
&lt;br /&gt;
=== Updating Nagios in case of failures ===&lt;br /&gt;
# If the backup failure is unsolved, schedule downtime Neosys service in Nagios till 01 am.&lt;br /&gt;
# If the backup did not happen because of server down. Call the IT person; ask him to re-boot the server and check wiki to do necessary step ahead and schedule downtime to Nagios for 2hours.&lt;br /&gt;
# If there is an error &amp;quot;Backup-&amp;gt;Impossible&amp;quot; on Nagios, check if the USB is properly inserted. If no USB is found, send a mail to the user asking to ensure that the backup USB is inserted properly. Schedule downtime to Nagios for 2hours.&lt;br /&gt;
&lt;br /&gt;
=== Interchange backup USB mail reminder ===&lt;br /&gt;
Basically all the clients have different days to change their backup USB. All the notification can be seen on Nagios at 12.00 pm every day.&lt;br /&gt;
&lt;br /&gt;
On the USB change day, at 6:00 am, when the processes start up, the system automatically sends the following email to everyone in the backup email receiver list:&lt;br /&gt;
&lt;br /&gt;
 It is time to change the NEOSYS backup media (e.g. USB Flash Drive)   &lt;br /&gt;
  &lt;br /&gt;
 Please change it before 12:00 midday today.&lt;br /&gt;
&lt;br /&gt;
Additional emails reminding IT staff to change backup media are sent out at 11:30am and 5pm if the backup media is not changed according schedule.&lt;br /&gt;
&lt;br /&gt;
Since the system automatically sends a USB change reminder email to the client, support staff do not have to send them any instructions about changing unless they have failed to change the USB on the scheduled day or the scheduled day needs to be moved to another day.  &lt;br /&gt;
&lt;br /&gt;
==== Importance of interchanging backup USBs ====&lt;br /&gt;
If the backup USB is not interchanged on the scheduled day then the NEOSYS automated backup fails. This happens because traditionally, each USB holds backup of 7 days and using 3 different USBs we can store backups for the last 21 days enabling us to restore the system unto a time period beginning 21 days prior.&lt;br /&gt;
If the USB is not changed then the first backup on the current USB is replaced with the new or latest backup leading to inconsistencies within the backups. Hence we must interchange the USB on schedule to avoid a backup failure the next morning.&lt;br /&gt;
&lt;br /&gt;
The reasons for using multiple USBs for backup are:&lt;br /&gt;
*We can keep other USBs out of the office for safety purposes since theft or office fire/water hazards could damage the computer and the USB keys if they are all in &lt;br /&gt;
the same place.&lt;br /&gt;
*Having multiple USBs provide safety against corrupt USBs which cannot be used to restore any backup data.&lt;br /&gt;
&lt;br /&gt;
=== Finding out which USB is inserted into the server ===&lt;br /&gt;
As we ask the client to have 3 USB&#039;s and interchange them weekly, we also need to sometimes track which one of these 3 USB&#039;s are inserted into the server. USB&#039;s can be tracked using their volume serial number in most cases. To find this out either go to the command prompt and type VOL &amp;lt;i&amp;gt;&amp;lt;drive letter&amp;gt;&amp;lt;/i&amp;gt; where drive letter is the USB drive letter OR in the nightly backup message check for the 2nd line (which looks like this - 14/12/2009 2:45pm Media: 705B-5B5F). However serial numbers can be the same even for different USB&#039;s. One of the reasons for this could be that the USBs were imaged from one single USB which caused their volume serial numbers to be the same. However, such a situation is very rare.&lt;br /&gt;
&lt;br /&gt;
=== Interchanging USB when scheduled USB change day falls on a holiday ===&lt;br /&gt;
When clients ask support which day to interchange USBs when their scheduled USB change day falls on a holidays, send them the below email.&lt;br /&gt;
&lt;br /&gt;
 Hi XXX,&lt;br /&gt;
 &lt;br /&gt;
 Kindly interchange the USB on the last working day before the holiday i.e XXXday DD/MM/YY and then interchange with the next scheduled USB on first working day after the holiday i.e. XXXday DD/MM/YY. Continue to change the USBs as usual on XXXday.&lt;br /&gt;
&lt;br /&gt;
=== Getting confirmations for Backup email list ===&lt;br /&gt;
&lt;br /&gt;
The below procedure is done once every year. A task has been set in Thunderbird to remind Support to begin the procedure in November.&lt;br /&gt;
&lt;br /&gt;
First, you need to send the below email to Steve and ask if any changes are required.&lt;br /&gt;
&lt;br /&gt;
 Subject: YOUR URGENT REPLY IS REQUIRED - NEOSYS Backup Confirmations for &amp;lt;Company&amp;gt;, &amp;lt;City&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Hi &amp;lt;Decision_maker&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 We are updating our records of the contact people in your organisation who should receive the various NEOSYS system alert emails and backup confirmations.&lt;br /&gt;
 &lt;br /&gt;
 You are currently assigned as the decision maker in this matter&lt;br /&gt;
 &lt;br /&gt;
 Note that it is the responsibility of your company to verify that the backups are successful and to alert us whenever there is an issue with the same.&lt;br /&gt;
 &lt;br /&gt;
 Please confirm:&lt;br /&gt;
 &lt;br /&gt;
 1.   The following email addresses should continue to receive these alerts&lt;br /&gt;
 &lt;br /&gt;
 2.   Any additions/deletions of email addresses from this list&lt;br /&gt;
 &lt;br /&gt;
 For: &amp;lt;Company&amp;gt;, &amp;lt;City&amp;gt;:&lt;br /&gt;
 &lt;br /&gt;
 a) Decision Maker:&lt;br /&gt;
 &lt;br /&gt;
 b) IT Manager (or person responsible to change backup media):&lt;br /&gt;
 &lt;br /&gt;
 c) Monitors (Managers and/or interested parties):&lt;br /&gt;
 &lt;br /&gt;
 Best Regards,&lt;br /&gt;
 NEOSYS Support&lt;br /&gt;
&lt;br /&gt;
#After Steve confirms, you can begin sending emails to all clients.&lt;br /&gt;
#*Template email to each client (Thunderbird-&amp;gt;Support-&amp;gt;Templates-&amp;gt;BackupConfirmationEmails)&lt;br /&gt;
#Create a new spreadsheet after copying previous year&#039;s confirmations sheet and rename with current year.&lt;br /&gt;
#*You can find the previous year&#039;s confirmation list in C:\Users\Androulla\Nextcloud\support\Androulla_Backup Confirmations&lt;br /&gt;
#*Clear the contents and fill in as and when you get the confirmations from clients.&lt;br /&gt;
#*For hosted clients in the &#039;IT Manager&#039; field, put &#039;None&#039;&lt;br /&gt;
#*You can keep a list of all pending clients in a personal txt file / Or mark as &#039;Pending&#039; in Spreadsheet.&lt;br /&gt;
#If any changes, update the Spreadsheet and change in NEOSYS.&lt;br /&gt;
#Set reminders to follow-up on these emails to decision makers once a week&lt;br /&gt;
#In the case, a client asks for more than one decision maker, reply that it will be best to have only one decision maker.&lt;br /&gt;
#If no reply for two weeks, send email to another person other than the decision maker.&lt;br /&gt;
#*Order: Another management level user &amp;gt; Main point of contact -&amp;gt; Most active user(checked in authorisation file)&lt;br /&gt;
#When all clients confirm, check backup spreadsheet and confirm that it is in sync with System Config file and any personal records that you have kept.&lt;br /&gt;
&lt;br /&gt;
==Manual Backup==&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/General_FAQ#How_to_do_a_manual_backup.3F How to do a manual backup in NEOSYS]&lt;br /&gt;
&lt;br /&gt;
Manual backups can also be triggered on the server process screen by pressing the lower case letter b key. After the backup is complete the process will resume and restart the child processes. Pressing capital B will result in the process closing on completion of the backup and the child processes will not be restarted. This is useful if you want to trigger a backup and leave without waiting for it to complete.&lt;br /&gt;
&lt;br /&gt;
==Configuring NEOSYS automated backup==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NEOSYS is designed to do an automated backup of the data (not the program files). The configuration for the automated backup rests in the System Configuration File under Menu &amp;gt; Support.&lt;br /&gt;
&lt;br /&gt;
First step is to configure the automated email settings. After every backup attempt NEOSYS will send out a mail with the status of the backup (either success or failed). You have to configure the SMTP details here along with the list of recipients to the backup email. &lt;br /&gt;
&lt;br /&gt;
Ensure to have atleast 1 person from the client management and 1 person from the client IT, besides the mandatory backups@neosys.com address &lt;br /&gt;
&lt;br /&gt;
Always use the NEOSYS SMTP server details as follows and put in a fictitious client address so that NEOSYS staff can quickly identify which client this mail came from.&lt;br /&gt;
&lt;br /&gt;
[[image:backup1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Do not configure the backup time unless instructed by your manager. The system will automatically start the backup at 1 am if there is nothing configured in the Backup time.&lt;br /&gt;
&lt;br /&gt;
Type in the backup location (USB/other media) drive letter in the Backup Drive field and the Uploads fields. &lt;br /&gt;
&lt;br /&gt;
Putting a 0 in the Uploads field will disable the backup of the Uploaded files, else by default the uploaded files will be backed up to the drive mentioned in the backup drive field.&lt;br /&gt;
&lt;br /&gt;
The scheduled days of backup can be configured using the checkboxes. If none of the days are checked, backup will be done on all days by default.&lt;br /&gt;
&lt;br /&gt;
Next setup the auto-start of the databases and enter how many processes should be started and which all databases should be backed up. &lt;br /&gt;
&lt;br /&gt;
In the example below DEMO database has been configured to start 3 processes and also do the automated backup, whereas the DEMOTEST database is configured to start 1 process and no automated backup.&lt;br /&gt;
&lt;br /&gt;
[[image:backup2.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Non-Liability for Backup ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Non-Liability For Backup}}&lt;br /&gt;
&lt;br /&gt;
=== Backing up the Images folder ===&lt;br /&gt;
&lt;br /&gt;
The Images folder under the NEOSYS installation is used to upload images/artworks/files from the Job File section and hence needs to be backed up. NEOSYS will automatically backup this Images folder to the USB drive or other location (specified for the usual data backup) once a week. &lt;br /&gt;
&lt;br /&gt;
To configure this backup, RSYNC needs to have been installed during the initial installation.&lt;br /&gt;
&lt;br /&gt;
In case we need to configure the Images folder backup at another location other than the usual nightly backup location than we need to edit:&lt;br /&gt;
&lt;br /&gt;
 line 12 - and specify the Drive of the location to be backed up to. eg. E or F&lt;br /&gt;
&lt;br /&gt;
== Backup to other media (i.e. not to USB)==&lt;br /&gt;
&lt;br /&gt;
If the backup is going to &#039;&#039;&#039;non-removable media&#039;&#039;&#039; (even if it is a shared folder on another computer) then the NEOSYS user/client/licensee (NOT the NEOSYS support team) can, at their own responsibility, arrange to &#039;&#039;&#039;move&#039;&#039;&#039; (NOT COPY) the NEOSYS backup files from the USB location to a backup location of their choice and avoid the &lt;br /&gt;
&lt;br /&gt;
WARNING message : &amp;quot;Backup media not changed. Overwriting last weeks backup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Sample alternative response to client requests for additional backups ===&lt;br /&gt;
&lt;br /&gt;
The existing NEOSYS backup must continue to take place for safety because it is the only well understood standard, controlled and checked procedure in use for all NEOSYS clients.&lt;br /&gt;
&lt;br /&gt;
You are free to setup and operate any additional backup procedure you like but NEOSYS cannot take any responsibility in setting up, monitoring or approving your additional backup procedure because it is beyond our sphere of control, expertise and trust.&lt;br /&gt;
&lt;br /&gt;
What you can backup is the NEOSYS backups on the USB drive. These are readily available online at all times on the NEOSYS server for you to access and copy as you choose. &lt;br /&gt;
&lt;br /&gt;
You can backup the usb anytime using anything you like, but you must not backup anything on any hard disk eg: C or D at any time.&lt;br /&gt;
&lt;br /&gt;
== Backup in virtual server ==&lt;br /&gt;
&lt;br /&gt;
=== Virtual servers that allow USB passthrough ===&lt;br /&gt;
If NEOSYS is installed on a virtual server that allows USB passthrough (e.g. VMWare vSphere version 4.1 and above), then NEOSYS can be configured to backup onto the inserted external USB drive.&lt;br /&gt;
&lt;br /&gt;
3 USBs should be maintained and rotated on a weekly basis as done by clients installed on physical servers.&lt;br /&gt;
&lt;br /&gt;
VMware website says that when changing the USB, the VMware window must be the active window so that the USB reflects in the virtual machine and not on the host machine.&lt;br /&gt;
https://www.vmware.com/support/ws45/doc/devices_usb_ws.html&lt;br /&gt;
&lt;br /&gt;
=== Virtual servers that do not allow USB passthrough ===&lt;br /&gt;
If NEOSYS is installed on a virtual server that DOES NOT allow USB passthrough, then below are the various cases:&lt;br /&gt;
&lt;br /&gt;
==== Case 1: BACKUP.ZIP file CAN be created on an external removable backup media ====&lt;br /&gt;
The backups can be done onto an USB drive if it is connected to the host machine and configured to appear on the virtual server. The virtual server MUST be restarted for the inserted USB to reflect each time the USB is changed i.e. every week.&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST train the IT person to stop the processes properly i.e. use global.end file and rename it to global.end.temp to allow processes to start after reboot. Support Staff can send a follow up email as mentioned below &lt;br /&gt;
&lt;br /&gt;
=====Email to IT person after training =====&lt;br /&gt;
 &lt;br /&gt;
 Kindly confirm that you will close the NEOSYS processes properly before shutting down the virtual server, i.e. by renaming &amp;quot;global.end&amp;quot; to &amp;quot;global.end.temp&amp;quot; and making sure that no ntvdm.exe processes are running in the task manager. As discussed during the training, this can cause damaged files in NEOSYS if the server is shutdown without closing the NEOSYS processes.&lt;br /&gt;
 &lt;br /&gt;
 Also please confirm that you will rename &amp;quot;global.end&amp;quot; back to &amp;quot;global.end.temp&amp;quot; before shutting down the virtual server so that the NEOSYS processes start up automatically when the virtual server is restarted.&lt;br /&gt;
&lt;br /&gt;
==== Case 2: BACKUP.ZIP file CANNOT be created on an external removable backup media ====&lt;br /&gt;
The Client must *at their own responsibility* agree to arrange copy of the backup files to an external backup location every day if the server cannot be restarted every week. In this case, NEOSYS Support staff must send the client below email:&lt;br /&gt;
&lt;br /&gt;
===== Email for new clients with/old clients moving to virtual servers that do not allow BACKUP.ZIP file to be created on an external removable backup media =====&lt;br /&gt;
&lt;br /&gt;
 If we install NEOSYS on a virtual server, the backups cannot be done onto an external removable backup media as confirmed by your IT. NEOSYS considers backups to be done only if BACKUP.ZIP file is created on an external removable backup media. &lt;br /&gt;
 &lt;br /&gt;
 Instead, NEOSYS will be configured to create the BACKUP.ZIP files on the C drive of the virtual server. Your IT team can, at your own responsibility, arrange to move (NOT COPY) these backup files to an external backup location every day. We recommend that the backup location should be removable media (e.g. external hard disk) and not non-removable media (e.g. shared folder on another computer).&lt;br /&gt;
  &lt;br /&gt;
 If any damage happens to the NEOSYS server, the backup files on C drive will not be accessible and will therefore be useless. So, kindly confirm that your IT team will arrange to move the backup files as mentioned above.&lt;br /&gt;
 &lt;br /&gt;
 In addition to this, offsite backups of your virtual server can be setup by us if required, with an additional cost.&lt;br /&gt;
&lt;br /&gt;
==Backup Messages==&lt;br /&gt;
&lt;br /&gt;
==== Interpreting backup alerts messages ====&lt;br /&gt;
 &lt;br /&gt;
Success messages come with a blank body&lt;br /&gt;
 &lt;br /&gt;
Failure messages should come with the errors in the body&lt;br /&gt;
 &lt;br /&gt;
Both success and failure messages come with an attachment containing a list of files copied (or supposed to be copied but failed) and a summary of the volume and speed of data transferred&lt;br /&gt;
&lt;br /&gt;
==== Cause and Solution of Backup Warning Messages ====&lt;br /&gt;
 &lt;br /&gt;
NEOSYS gives a backup WARNING message whenever it discovers that it is overwriting backups a week old. It does this because NEOSYS only deems backups completely successful if the backup media is rotated at least on a weekly basis.&lt;br /&gt;
&lt;br /&gt;
If the backup media is removable then it should be changed weekly and the same media not used repeatedly on successive weeks.&lt;br /&gt;
&lt;br /&gt;
If the backup is going to non-removable media (even if it is a shared folder on another computer) then the NEOSYS user/client/licencee (not the NEOSYS support team) can, at their own responsibility, arrange to move (not copy) the NEOSYS backup files from that location to a backup location of their choice and avoid this WARNING message.&lt;br /&gt;
&lt;br /&gt;
==Handling failure and warning messages on nightly USB backup alerts==&lt;br /&gt;
&lt;br /&gt;
=== Backup mail not received ===&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_email_not_received#Troubleshooting_email_not_received|Troubleshooting email not received]]&lt;br /&gt;
&lt;br /&gt;
=== Handling Change Backup message if the client does not use a USB backup device ===&lt;br /&gt;
&lt;br /&gt;
IF THE CLIENT IS BACKING UP TO A NON-REMOVABLE DESTINATION THEN EITHER 1. LIVE WITH THE FAILURE MESSAGE OR 2. SUPPRESS THE BACKUP ENTIRELY IN WHICH CASE NO BACKUPS ARE BEING DONE AND PROBABLY THIS WILL SHOW ON NEOSYS PROACTIVE WARNING SYSTEMS LIKE NAGIOS. &lt;br /&gt;
&lt;br /&gt;
Nagios warnings can be acknowledged. &lt;br /&gt;
&lt;br /&gt;
DO *NOT* FOLLOW BELOW PROCEDURE SINCE IS IT IS TOTALLY UNACCEPTABLE FOR NEOSYS TO SEND OUT A &amp;quot;BACKUP SUCCESS&amp;quot; MESSAGE WHEN THE BACKUP IS NOT BEING DONE PROPERLY. IN GENERAL, TAKING SHORT CUTS THAT MAKE THINGS APPEAR SATISFACTORY WHEN THEY ARE NOT IS VERY POOR POLICY.&lt;br /&gt;
&lt;br /&gt;
# Basically most of the client use USB for Neosys server but there are some clients who do not use USB. They could be on virtual server or just saving their backups in hard drive. &lt;br /&gt;
# As we know that backup take place in Data.bak folder but it does a backup only for a week in a single USB. Over here client do not use USB but save their backup in hard drive/virtual server location in Data.bak folder, once the week is over  it will again give Change backup message.  &lt;br /&gt;
# In this case rename the Data.bak folder to Data1.bak this is done because system read only Data.bak folder as it is configured in the system. When you rename Data.bak to Data1.bak it automatically create a new folder Data.bak in Backup drive.&lt;br /&gt;
# This process is done so that the backup does not fail next day morning and backup is done in Data.bak folder along with successful backup email.&lt;br /&gt;
# In the third week we will again see the same message Chang backup USB message, so you need to rename Data.bak folder to Data2.bak&lt;br /&gt;
# But in fourth week you rename the Data1.bak to Data.bak and change the Data2.bak to Data1.bak and Data.bak to Data2.bak &lt;br /&gt;
# Keep only three folders and Data.bak, Data1.bak, Data2.bak and keep on renaming these folders every week as shown above.&lt;br /&gt;
&lt;br /&gt;
AS MENTIONED EARLIER *DO NOT FOLLOW* THE ABOVE PROCEDURE ON ANY CLIENT THAT DOES NOT USE A USB BACKUP DEVICE.&lt;br /&gt;
&lt;br /&gt;
=== Warning Message: Backup media not changed. Overwriting last weeks backup ===&lt;br /&gt;
 &lt;br /&gt;
If the client does not change the USB on scheduled day the next day&#039;s backup will fail, with email subject: &amp;quot;NEOSYS: Backup &amp;lt;CLIENT&amp;gt; -&amp;gt; &amp;lt;Drive Letter&amp;gt;: &amp;lt;USB NAME&amp;gt; CHANGED FAILURE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
As per standard &amp;quot;NEOSYS Backup Failure - USB not interchanged&amp;quot; email, the schedule day to interchange backup USB drives should generally remain on the same scheduled day. No cases have yet been documented where we have inconvenienced and forced our clients to change the day.&lt;br /&gt;
&lt;br /&gt;
NEOSYS gives a backup WARNING message whenever it discovers that it is overwriting backups a week old. It does this because NEOSYS only deems backups completely successful if the backup media is rotated at least on a weekly basis.&lt;br /&gt;
 &lt;br /&gt;
If the backup media is removable then it should be changed daily or weekly and the same media not used repeatedly on successive weeks. &lt;br /&gt;
 &lt;br /&gt;
If the backup is going to non-removable media (even if it is a shared folder on another computer) then the NEOSYS user/client/licensee (not the NEOSYS support team) can, at their own responsibility, arrange to move (not copy) the NEOSYS backup files from that location to a backup location of their choice and avoid this WARNING message. Also refer to [[Backup_and_Restore#Handling_Change_Backup_message_if_the_client_does_not_use_a_USB_backup_device|Handling Change Backup message if the client does not use a USB backup device]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Standard &amp;quot;NEOSYS Backup Failure - USB not interchanged&amp;quot; email:&lt;br /&gt;
 Dear Team,&amp;lt;br&amp;gt;&lt;br /&gt;
  The NEOSYS backup has failed today as the USB was not interchanged on the scheduled day i.e. yesterday. &amp;lt;br&amp;gt;&lt;br /&gt;
  Please interchange the USB immediately today to avoid a backup failure tomorrow morning.&amp;lt;br&amp;gt;&lt;br /&gt;
  Also note that your scheduled day to interchange the USB next week remains unchanged to &amp;lt;Schedule day&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
 Kind Regards&amp;lt;br&amp;gt;&lt;br /&gt;
 XXXX XXXX&lt;br /&gt;
&lt;br /&gt;
=== Error Message: Somebody else was using the dataset ===&lt;br /&gt;
&lt;br /&gt;
 Server=NEOSYS&lt;br /&gt;
 Client=NEOSYS&lt;br /&gt;
 User=ADAGENCY&lt;br /&gt;
 NEOSYS Ver:18:02:13  30 MAY 2006&lt;br /&gt;
 &lt;br /&gt;
 Backup started at 19/11/2006 2:00am&lt;br /&gt;
 &lt;br /&gt;
 TEST DATA TESTDATA&lt;br /&gt;
 &lt;br /&gt;
 To E:\DATA.BAK\TESTDATA\Sunday\BACKUP.ZIP&lt;br /&gt;
 !!! THE BACKUP HAS FAILED !!!&lt;br /&gt;
 &lt;br /&gt;
 (because one or more files were not backed up&lt;br /&gt;
  - somebody else was using them)&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
&lt;br /&gt;
Despite the error message which shows that &#039;somebody else was using them&#039;, it is definitely not correct as NEOSYS shuts down automatically at 2 am (time of the &lt;br /&gt;
&lt;br /&gt;
backup). The actual problem might be that a NEOSYS process must have got stuck and failed to shutdown or a maintenance process was left open by accident.&lt;br /&gt;
&lt;br /&gt;
==== Action to be taken ====&lt;br /&gt;
&lt;br /&gt;
Close any maintenance processes that should not have been left open in the first place.&lt;br /&gt;
&lt;br /&gt;
Try to exit normally or kill any other [[Troubleshooting_NEOSYS_Generally#How_to_kill_hung_NEOSYS_processes|&amp;quot;hung&amp;quot;]] processes, taking screenshots of any error messages in order to try and prevent the problem happening again.&lt;br /&gt;
&lt;br /&gt;
If not inconvenient to the users consider initiating a manual backup or just check that the next automatic backup works ok.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: Size Lock ===&lt;br /&gt;
 &lt;br /&gt;
 Server=NEOSYS-SERVER&lt;br /&gt;
 Client=NEOSYS-SERVER&lt;br /&gt;
 User=NETSERVICE&lt;br /&gt;
 NEOSYS Ver:19:57:50  08 NOV 2006&lt;br /&gt;
 &lt;br /&gt;
 Backup started at 19/11/2006 2:00am&lt;br /&gt;
 &lt;br /&gt;
 ADLINE ADLINE&lt;br /&gt;
 &lt;br /&gt;
 To F:\DATA.BAK\ADLINE\Sunday\BACKUP.ZIP&lt;br /&gt;
 The following files had a size lock but have been fixed SHADOW Warning! Process &lt;br /&gt;
 U79068                                                      &lt;br /&gt;
 Other Network Stations are Active!&lt;br /&gt;
 This utility was designed to be run in a single-user mode!&lt;br /&gt;
 &lt;br /&gt;
 Potential Errors Could Occur, If You Proceed to fix the sizelock Values with Other Stations   &lt;br /&gt;
 Active.  These Errors Include;&lt;br /&gt;
 &lt;br /&gt;
 Invalid SELECT results, Degredation in Network Performance, and other Problems/Concerns which &lt;br /&gt;
 may be specific to your Installation/Application.&lt;br /&gt;
 &lt;br /&gt;
 IT IS STRONGLY RECOMMENDED THAT ALL NETWORK STATIONS BE LOGGED OUT BEFORE PROCEEDING!&lt;br /&gt;
 &lt;br /&gt;
 Do you wish to Proceed at this time?%B%&lt;br /&gt;
 !!! THE BACKUP HAS FAILED !!!&lt;br /&gt;
 &lt;br /&gt;
 (because one or more files were not backed up&lt;br /&gt;
 - somebody else was using them)&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
&lt;br /&gt;
Sizelock errors are not critical and do not stop the backup from being performed. Sizelocks are cleared automatically during backup but the backup alert becomes a &lt;br /&gt;
&lt;br /&gt;
warning that the backup was not quite perfect.&lt;br /&gt;
&lt;br /&gt;
Sizelocks during database checking indicate that some files were not properly closed in normal processing but do not indicate corrupt files. Sizelock means that a file &lt;br /&gt;
&lt;br /&gt;
is prevented from expanding and contracting. Expanding and contracting is necessary in order to speed up access to larger numbers of records. Therefore if sizelocks &lt;br /&gt;
&lt;br /&gt;
were to be left uncleared then the file would become slower and slower to access over time.&lt;br /&gt;
&lt;br /&gt;
In the above example the backup was not completed because of another error &amp;quot;files in use&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Action to be taken ====&lt;br /&gt;
&lt;br /&gt;
If this is an automatic backup then no action is required since the sizelocks are automatically cleared. &lt;br /&gt;
&lt;br /&gt;
During a manual backup then you should press F9 on the sizelock warning screen to confirm that the sizelocks should be cleared.&lt;br /&gt;
&lt;br /&gt;
Sizelocks can only be cleared if no other process is open.&lt;br /&gt;
&lt;br /&gt;
=== Failure Message : Backup file size is 0 ===&lt;br /&gt;
 &lt;br /&gt;
 16/4/2009 9:43am Creating zip&lt;br /&gt;
 &lt;br /&gt;
 16/4/2009 9:45am !!! THE DATABASE BACKUP HAS FAILED !!!&lt;br /&gt;
 &lt;br /&gt;
 BECAUSE BACKUP FILE SIZE IS 0&lt;br /&gt;
&lt;br /&gt;
==== Error Explanation 1 ====&lt;br /&gt;
This happens when there is no adequate storage space on the hard-disk which houses the NEOSYS application and data files. When the automated backup is initiated, the &lt;br /&gt;
&lt;br /&gt;
NEOSYS application checks all the data files and creates a zipped file of it which is the databasename.zip (in the above case IMDUB.ZIP). During this zip file &lt;br /&gt;
&lt;br /&gt;
creation, NEOSYS needs additional disk space temporarily and if this is not available then the backup would fail. The IMDUB.ZIP file is created and backed up (as &lt;br /&gt;
&lt;br /&gt;
BACKUP.ZIP under the respective day of the week) to the USB or any other drive specified and is automatically deleted from the drive that it was created in.&lt;br /&gt;
&lt;br /&gt;
====Error Explanation 2====&lt;br /&gt;
&lt;br /&gt;
This could be due lack of EMSMAGIC. &lt;br /&gt;
&lt;br /&gt;
In case of a Windows Server 2003 installation: [[Troubleshooting NEOSYS Generally#Enabling EMS memory on Window 2003|Enabling EMS memory on Window 2003]]&lt;br /&gt;
&lt;br /&gt;
In case of a Windows Server 2008 installation: [[Installing EMS Magic|Installing EMS Magic on Windows 2008]]&lt;br /&gt;
&lt;br /&gt;
==== Actions to be taken ====&lt;br /&gt;
#In this case, you need to clear up the hard-disk and create some space. In the above scenario at Initiative there was a folder of 52 GB in the same drive that houses NEOSYS and the available disk space was just 40 MB. So the un-necessary folder was moved out to make space. &lt;br /&gt;
#If there is sufficient space available on the hard disk which houses NEOSYS, then consider checking the anti-virus settings and escalate the issue to NEOSYS programmer for debugging.&lt;br /&gt;
&lt;br /&gt;
This is another reason why NEOSYS personnel should put their foot down on getting dedicated servers for NEOSYS as it restrains the client IT staff from using the &lt;br /&gt;
&lt;br /&gt;
NEOSYS server to house data or any other applications besides NEOSYS.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: Inadequate Storage Space on USB ===&lt;br /&gt;
&lt;br /&gt;
==== Error 1 ====&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
 Server=SERVER2&lt;br /&gt;
 Client=SERVER2&lt;br /&gt;
 User=ACCOUNTS&lt;br /&gt;
 NEOSYS Ver:11:26:27  26 JUL 2010&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:00 Backup started F: BASIC &lt;br /&gt;
 7/2/2012 2:00 Media: FADE-0001&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:00 Checking for damaged database files&lt;br /&gt;
 7/2/2012 2:01 Checked OK 1.92MB (+1.00KB)&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:01 Creating zip&lt;br /&gt;
 7/2/2012 2:01 Created OK BASIC.ZIP 251KB&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:02 Copying to F:\DATA.BAK\Tuesday\BACKUP.ZIP&lt;br /&gt;
 7/2/2012 2:02 Copied OK&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:02 Verifying zip OK&lt;br /&gt;
 7/2/2012 2:02 Verified OK&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:02 Started backup of uploaded files in /cygdrive/E/ to F:&lt;br /&gt;
 7/2/2012 2:04 neosys/DATA/ACCOUNTS/REV20050.LK&lt;br /&gt;
 neosys/DATA/ACCOUNTS/REV20052.LK&lt;br /&gt;
 7/2/2012 2:04 rsync: writefd_unbuffered failed to write 4092 bytes [sender]: Connection reset by peer (104)&lt;br /&gt;
 rsync: write failed on &amp;quot;/cygdrive/F/E/neosys/DATA/ACCOUNTS/BATCHES.LK&amp;quot;: No space left on device (28)&lt;br /&gt;
 rsync: connection unexpectedly closed (9077 bytes received so far) [sender]&lt;br /&gt;
 rsync error: error in rsync protocol data stream (code 12) at /home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/io.c(632) [sender=3.0.4]&lt;br /&gt;
 7/2/2012 2:04 Finished backup of uploaded files&lt;br /&gt;
&lt;br /&gt;
 7/2/2012 2:04 !!! THE DATABASE BACKUP HAS FAILED !!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
In the above error log we notice the line: &lt;br /&gt;
 rsync: write failed on &amp;quot;/cygdrive/F/E/neosys/DATA/PT0011A/ACCOUNTS/BATCHES.LK&amp;quot;: No space left on device (28)&lt;br /&gt;
&lt;br /&gt;
This is an indication that the USB being used to store backups does not have adequate storage space to save further backups.&lt;br /&gt;
&lt;br /&gt;
This particular message only comes when using rsync to copy all IMAGES (ie files uploaded to NEOSYS) to the USB.&lt;br /&gt;
&lt;br /&gt;
Sometimes, image backup is used to configured to backup the whole of a disk or the whole of data folder for example if there are hundreds of databases that are not all &lt;br /&gt;
&lt;br /&gt;
used everyday.&lt;br /&gt;
&lt;br /&gt;
==== Error 2 ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Server=SERVER2&lt;br /&gt;
 Client=SERVER2&lt;br /&gt;
 User=ACCOUNTS&lt;br /&gt;
 NEOSYS Ver:11:26:27  26 JUL 2010&lt;br /&gt;
 7/2/2012 2:00 Backup started F: PT0621 - GABANG HOLDINGS LIMITED&lt;br /&gt;
 7/2/2012 2:00 Media: FADE-0001&lt;br /&gt;
 7/2/2012 2:00 Checking for damaged database files&lt;br /&gt;
 7/2/2012 2:02 Checked OK 2.25MB (+20.0KB)&lt;br /&gt;
 7/2/2012 2:02 Creating zip&lt;br /&gt;
 7/2/2012 2:02 Created OK PT0621.ZIP 462KB&lt;br /&gt;
 7/2/2012 2:02 !!! THE DATABASE BACKUP HAS FAILED !!!&lt;br /&gt;
 BECAUSE NOT ENOUGH FREE SPACE ON BACKUP MEDIA.&lt;br /&gt;
 462KB REQUIRED BUT ONLY 452KB AVAILABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Error Explained ====&lt;br /&gt;
As the last line of the above error log clearly states, there is not adequate free space available on the USB to perform a backup.&lt;br /&gt;
&lt;br /&gt;
In the above case, 462KB is required space while only 452KB is available.&lt;br /&gt;
&lt;br /&gt;
==== Action to be taken ====&lt;br /&gt;
The simple solution is to purchase a new USB with greater storage space than the existing USB.&lt;br /&gt;
&lt;br /&gt;
Sample Email to be sent to clients:&lt;br /&gt;
&lt;br /&gt;
 The automated NEOSYS backup has failed due to insufficient storage space on the USB.&lt;br /&gt;
 Currently you are using a 4GB USB, which is insufficient for storing backups.&lt;br /&gt;
 I recommend that you use a USB with 8 GB or more storage space.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note -&#039;&#039; We may also solve this issue by checking the USB for unnecessary files and move/delete them.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: &amp;quot;Cannot backup/restore because PROCESS1 PROCESS2 (etc) is/are online&amp;quot; message ===&lt;br /&gt;
 &lt;br /&gt;
This can happen for a variety of reasons, e.g if any the NEOSYS processes fail to close down at backup time because the process has hung due to software error.&lt;br /&gt;
&lt;br /&gt;
=== Error Message: &amp;quot;LISTS file is not available&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Server=NEOSYS	&lt;br /&gt;
Client=NEOSYS	&lt;br /&gt;
User=ADAGENCY	&lt;br /&gt;
NEOSYS Ver:16:07:53  04 JUN 2018	&lt;br /&gt;
	&lt;br /&gt;
&amp;quot;LISTS&amp;quot; is invalid	&lt;br /&gt;
	&lt;br /&gt;
The &amp;quot;LISTS&amp;quot; file is not available.	&lt;br /&gt;
	&lt;br /&gt;
?[FS200]????????????????????????????????????????	&lt;br /&gt;
	&lt;br /&gt;
The &amp;quot;DATAVOL\NEOS0001\&amp;quot; file is not available.	&lt;br /&gt;
	&lt;br /&gt;
THERE ARE NO FILES IN THIS DATASET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
Although unlikely, look for third-party software that have been installed on the server without the agreement of NEOSYS and uninstall them (see link below).&lt;br /&gt;
&lt;br /&gt;
Refer: [[Procedures#Removal_of_unauthorized_third-party_software_on_client_servers|Uninstalling unauthorized third-party software]]&lt;br /&gt;
&lt;br /&gt;
# Stop all processes (using global.end method).&lt;br /&gt;
# Navigate to the NEOSYS/DATAVOL folder and delete it.&lt;br /&gt;
# Perform a manual backup. (NEOSYS &amp;gt; Menu &amp;gt; Support &amp;gt; Backup)&lt;br /&gt;
# Backups should be successful. Check by various methods.&lt;br /&gt;
# Start NEOSYS processes.&lt;br /&gt;
# A new email may be sent when the first process is started, (INIT.GENERAL) containing the next section error &amp;quot;volume and cannot be attached&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Error Message: &amp;quot;volume and cannot be attached&amp;quot;===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The &amp;quot;DATAVOL	&lt;br /&gt;
DATAVOL\NEOS0001\	&lt;br /&gt;
08:48:57  27 JUN 2018&amp;quot; volume	&lt;br /&gt;
has the same label	&lt;br /&gt;
(&amp;quot;&amp;quot;)	&lt;br /&gt;
as the &amp;quot;&amp;quot; volume	&lt;br /&gt;
and cannot be attached.	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Server:  NEOSYS	&lt;br /&gt;
Install: D:\NEOSYS\NEOSYS\	&lt;br /&gt;
Version: 16:07:53  04 JUN 2018	&lt;br /&gt;
Database:2996420B AMC	&lt;br /&gt;
Process: 1	&lt;br /&gt;
Client:  NEOSYS	&lt;br /&gt;
User:    ADAGENCY	&lt;br /&gt;
Stack:   SYSMSG,INIT.GENERAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
&lt;br /&gt;
Pending&lt;br /&gt;
&lt;br /&gt;
== Fixing Network Connectivity Errors for consolidated Backups ==&lt;br /&gt;
There could be multiple reasons why the backup server might not be able to connect with the backed up server. &lt;br /&gt;
&lt;br /&gt;
Error&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Receiver] io timeout after 600 seconds -- exiting rsync error: timeout in data send/receive (code 30) at /home/lapo/package/rsync-3.0.8-1/src/rsync-3.0.8/io.c(140) [Receiver=3.0.8] [Receiver] io timeout after   600 seconds -- exiting rsync error: timeout in data send/receive (code 30) at /home/lapo/package/rsync-3.0.8-1/src/rsync-3.0.8/io.c(140) [Receiver=3.0.8] tried via hostname.support.neosys.com now trying via hostname2.support.neosys.com&lt;br /&gt;
ssh: Could not resolve hostname hostname2.support.neosys.com: hostname nor servname provided, or not known&lt;br /&gt;
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.8-1/src/rsync-3.0.8/io.c(601) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following tests help in checking why the connectivity was lost between the backup server and the backed up server:&lt;br /&gt;
&lt;br /&gt;
===Check whether the server was up===&lt;br /&gt;
If either of the servers were down, that could be the reason why connectivity was lost between the backup server and the backed up server. If this test fails, proceed to the next step.&lt;br /&gt;
&lt;br /&gt;
===Telnet check===&lt;br /&gt;
&amp;lt;pre&amp;gt; telnet &amp;lt;hostname&amp;gt; 19580  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hostname&amp;gt; is the name or IP address of the remote server to connect to.&lt;br /&gt;
&lt;br /&gt;
If telnet is not able to connect to the remote host specified in &amp;lt;hostname&amp;gt; or establish a connection on the &amp;lt;port&amp;gt; specified, it will report an error similar to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:&amp;gt; telnet fred.plus.com &amp;lt;CR&amp;gt;&lt;br /&gt;
Connecting To fred.plus.com...Could not open connection to the host, on port 23: Connect failed&lt;br /&gt;
C:&amp;gt; telnet mail.plus.net 60 &amp;lt;CR&amp;gt;&lt;br /&gt;
Connecting To mail.plus.com...Could not open connection to the host, on port 60: Connect failed.&lt;br /&gt;
C:&amp;gt; telnet 60.92.12.56 74 &amp;lt;CR&amp;gt;&lt;br /&gt;
Connecting To 60.92.12.56...Could not open connection to the host, on port 74: Connect failed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Autologin===&lt;br /&gt;
&lt;br /&gt;
====Error====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rsync: failed to connect to 127.0.0.1: Connection refused (111) rsync error: error in socket IO (code 10) at &lt;br /&gt;
/home/lapo/packaging/rsync-3.0.7-1/src/rsync-&lt;br /&gt;
&lt;br /&gt;
3.0.7/clientserver.c(122) [Receiver=3.0.7]&lt;br /&gt;
&lt;br /&gt;
tried via hostname.neosys.com&lt;br /&gt;
&lt;br /&gt;
now trying via hostname2.neosys.com&lt;br /&gt;
&lt;br /&gt;
rsync: failed to connect to 127.0.0.1: Connection refused (111) rsync error: error in socket IO (code 10) at &lt;br /&gt;
/home/lapo/packaging/rsync-3.0.7-1/src/rsync-&lt;br /&gt;
&lt;br /&gt;
3.0.7/clientserver.c(122) [Receiver=3.0.7]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Error Explained=====&lt;br /&gt;
The automated backup cannot use autologin to access the server being backed up and so the backup fails.&lt;br /&gt;
&lt;br /&gt;
===== Solution =====&lt;br /&gt;
&lt;br /&gt;
[[Backup_and_Restore#Checking_if_autologin_is_configured_correctly_and_working_or_not| Check autologin]] and [[Backup_and_Restore#Running_..2Fautologin.sh|Run autologin]]&lt;br /&gt;
&lt;br /&gt;
==== Error Message: &amp;quot;WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!&amp;quot; message ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Error&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @&lt;br /&gt;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&lt;br /&gt;
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!&lt;br /&gt;
Someone could be eavesdropping on you right now (man-in-the-middle attack)!&lt;br /&gt;
It is also possible that a host key has just been changed.&lt;br /&gt;
The fingerprint for the ED25519 key sent by the remote host is&lt;br /&gt;
SHA256:9i9JH5xh11rEMIgrsax8A7bEKXfKVRiJr9nZllWXdFg.&lt;br /&gt;
Please contact your system administrator.&lt;br /&gt;
Add correct host key in /home/administrator/.ssh/known_hosts to get rid of this message.&lt;br /&gt;
Offending ECDSA key in /home/administrator/.ssh/known_hosts:208&lt;br /&gt;
ED25519 host key for [192.168.10.1]:19580 has changed and you have requested strict checking.&lt;br /&gt;
Host key verification failed.&lt;br /&gt;
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]&lt;br /&gt;
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Solution to the problem is to remove the host key for the host mentioned in the error message in the known_hosts file.&lt;br /&gt;
&lt;br /&gt;
Run the following command in Cygwin terminal.&lt;br /&gt;
&amp;lt;pre&amp;gt; ssh-keygen -R [host ip]:port &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e.g in the above message for host ip 192.168.10.1 and port 19580 the command is &lt;br /&gt;
&amp;lt;pre&amp;gt; ssh-keygen -R [192.168.10.1]:19580 &amp;lt;/pre&amp;gt;&lt;br /&gt;
Next re run autologin for the host, see [[Backup_and_Restore#Running_..2Fautologin.sh | Running autologin ]]&lt;br /&gt;
&lt;br /&gt;
===Check Scheduled Tasks on the Server===&lt;br /&gt;
Check if logs of Scheduled Tasks on the server, to see if the remote backup task executed and completed successfully. It is possible that the remote backup scheduled task hung due to some reason and a new instance of the task fails to start up the next day due to the existing instance. To avoid this situation, in Properties of the task, under Settings tab, check &amp;quot;Stop the task if it runs for:&amp;quot; and configure it to less than 24 hours.&lt;br /&gt;
&lt;br /&gt;
== Adding/restoring SSH key to backup server ==&lt;br /&gt;
&lt;br /&gt;
(Will be helpful to understand the concept of asymmetric keys).&lt;br /&gt;
&lt;br /&gt;
This script is usually used to fix the backup procedure. The backup server initiates the backup procedure using the &amp;quot;pull&amp;quot; concept to get data from source servers. The &amp;quot;backed-up server&amp;quot; serves the data (usually using an rsync service) to the backup server on request. They do not use a &amp;quot;push&amp;quot; concept, this is for security reasons. This means that backup servers need to be able to automatically login to the backed-up servers. On most backup servers a NEOSYS Cygwin script called autologin.sh has been installed.&lt;br /&gt;
&lt;br /&gt;
NEOSYS processes on a target server can sometimes reset/ lose autologin (public) keys (particularly when NEOSYS is upgraded) on the target server when it should not actually. This enforces rerunning autologin.sh. You only need to run autologin.sh once per pair of backup and backed-up servers, in the backup server.&lt;br /&gt;
&lt;br /&gt;
This relates to a common procedure used by NEOSYS to provide automatic nightly synchronisation/backups between servers for multi-office configurations. For more information see&lt;br /&gt;
http://itwiki.neosys.com/index.php/Setting_up_remote_backup&lt;br /&gt;
&lt;br /&gt;
=== Creating/Upgrading autologin.sh ===&lt;br /&gt;
&lt;br /&gt;
Follow commands below add autologin.sh to system:&lt;br /&gt;
&lt;br /&gt;
# Copy script below.&lt;br /&gt;
# run &amp;quot;cd ~/ &amp;amp;&amp;amp; nano autologin.sh&amp;quot;, paste script into editor and exit.&lt;br /&gt;
# Run &amp;quot;chmod +x autologin.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if [ -z $1 ]; then #syntax&lt;br /&gt;
   echo ./autologin.sh targethostname targetusername sshport&lt;br /&gt;
elif [ $1 ]; then&lt;br /&gt;
   set -e&lt;br /&gt;
&lt;br /&gt;
   REMOTEHOST=$1&lt;br /&gt;
   REMOTEUSER=$2&lt;br /&gt;
   PORT=$3&lt;br /&gt;
&lt;br /&gt;
   test $REMOTEUSER || REMOTEUSER=administrator&lt;br /&gt;
   test $PORT || PORT=19580&lt;br /&gt;
&lt;br /&gt;
   if [ ! $REMOTEUSER ]; then&lt;br /&gt;
      echo -n &amp;quot;Remote User (blank=administrator)/root?&amp;quot;&lt;br /&gt;
   read REMOTEUSER&lt;br /&gt;
   if [ &amp;quot;$REMOTEUSER&amp;quot; == &amp;quot;&amp;quot; ] ; then REMOTEUSER=administrator ; fi&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   if [ ! REMOTEHOST ]; then&lt;br /&gt;
   echo -n &amp;quot;Remote Host? &amp;quot;&lt;br /&gt;
   read REMOTEHOST&lt;br /&gt;
   if [ &amp;quot;$REMOTEHOST&amp;quot; == &amp;quot;&amp;quot; ] ; then exit; fi&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   echo PASSPHRASE MUST BE BLANK IF YOU GET ASKED FOR IT!&lt;br /&gt;
   #Generate priv/pub keys in .ssh if not already done&lt;br /&gt;
   #Priv key mustnt be accessible except to owner otherwise wont work.&lt;br /&gt;
   test -f ~/.ssh/id_rsa || \&lt;br /&gt;
   ssh-keygen -t rsa &amp;amp;&amp;amp; \&lt;br /&gt;
   chmod 600 ~/.ssh/id_rsa&lt;br /&gt;
&lt;br /&gt;
   echo&lt;br /&gt;
   echo &amp;quot;Logging in to the remote server (enter the pass again)&amp;quot;&lt;br /&gt;
   sed &#039;s/neosys//&#039; ~/.ssh/id_rsa.pub | \&lt;br /&gt;
   ssh -p $PORT $REMOTEUSER@$REMOTEHOST \&lt;br /&gt;
   &amp;quot;mkdir -p .ssh ; chmod 700 .ssh ;\&lt;br /&gt;
   cat &amp;gt;&amp;gt; .ssh/authorized_keys ;\&lt;br /&gt;
   chmod 644 .ssh/authorized_keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   echo&lt;br /&gt;
   echo &amp;quot;Test automatic login to the remote server&amp;quot;&lt;br /&gt;
   echo &amp;quot; SHOULD NO LONGER ASK FOR PASSWORD.&amp;quot;&lt;br /&gt;
   echo &amp;quot; IF SUCCESSFULL, TYPE exit&amp;quot;&lt;br /&gt;
   ssh -p $PORT $REMOTEUSER@$REMOTEHOST&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using ./autologin.sh ===&lt;br /&gt;
&lt;br /&gt;
#Asks you for the username and hostname and port. (if username is administrator and port is 19580, then you can omit) &lt;br /&gt;
#Asks you to enter the administrator or root password and copies the public key from the source server to the destination server.&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
#Logs you in to the destination server&#039;s Cygwin/bash command line.&lt;br /&gt;
&lt;br /&gt;
=== Running ./autologin.sh ===&lt;br /&gt;
In Cygwin on the backup server, you can use any of the following syntax depending on your configuration:&lt;br /&gt;
&lt;br /&gt;
Syntax: (for syntax reminder type &amp;quot;./autologin.sh&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh targethostname targetusername sshport&lt;br /&gt;
&lt;br /&gt;
*targethostname - if omitted will be prompted for it&lt;br /&gt;
*targetusername - if omitted will be &amp;quot;administrator&amp;quot;&lt;br /&gt;
*sshport - if omitted will be &amp;quot;19580&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example using prompting for parameters (targethostname)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh&lt;br /&gt;
&lt;br /&gt;
Example using default user and port (administrator/19580)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh examplehost.neosys.com&lt;br /&gt;
&lt;br /&gt;
Example with different user (port will be 19580)&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh examplehost.neosys.com administrator&lt;br /&gt;
&lt;br /&gt;
Example with different user and port&lt;br /&gt;
&lt;br /&gt;
 ./autologin.sh examplehost.neosys.com admin 19500&lt;br /&gt;
&lt;br /&gt;
The username is usually administrator for windows server targets.&lt;br /&gt;
&lt;br /&gt;
The hostname can be found in backup email logs or in the CONFIG.CMD file in the backup server.&lt;br /&gt;
&lt;br /&gt;
There are often two alternative hostnames. Try the first one first. If you succeed with the first then there is no need to try the second.&lt;br /&gt;
&lt;br /&gt;
Sometimes one of the host names is based on alternative network access methods like hamachi which uses ip addresses starting with &amp;quot;5.&amp;quot; and requires hamachi service to be running in both servers and this sometimes is dependent on being logged in and correct setup of hamachi. You can ping the host names to discover the ip numbers of course.&lt;br /&gt;
&lt;br /&gt;
If Autologin is configured successfully, it logs you in to the backed up server&#039;s cygwin/bash command line.&amp;lt;br&amp;gt;&amp;lt;b&amp;gt; YOU should NOT be required to enter the password each time.&amp;lt;/b&amp;gt; You type &amp;quot;exit&amp;quot; to quit the backed up server&#039;s command line.&lt;br /&gt;
&lt;br /&gt;
If Autologin is not configured successfully, you might be required to enter a password. In that case, enter the password and follow instructions on screen.&lt;br /&gt;
The system asks for the password to the target server to transfer an identity file and once again to access the command line of the target server from where you must follow a set of instructions in order to load the identity file properly.&lt;br /&gt;
Follow the instructions on the screen VERY carefully.&lt;br /&gt;
&lt;br /&gt;
==== Checking if autologin is configured correctly and working or not ====&lt;br /&gt;
On the source system, in Cygwin/Terminal console, type the following, changing port number, administrator and clientname to suit the case.&lt;br /&gt;
 ssh –p 19580 administrator@clientname.hosts.neosys.com&lt;br /&gt;
After a few seconds, if it is working properly, it should give you a command prompt on the target system. This indicates that autologin was successful. You may exit using the command: &lt;br /&gt;
 exit&lt;br /&gt;
Otherwise, if it gives some error and in particular if it asks you anything at all, for example “confirm fingerprint?” or “password?” then autologin is not working.&lt;br /&gt;
You can then type in the following command in cygwin to configure or reconfigure autologin:&lt;br /&gt;
 ./autologin.sh&lt;br /&gt;
&lt;br /&gt;
==Switching to a backup server==&lt;br /&gt;
&lt;br /&gt;
As NEOSYS provides clients with option of backing up their data to a remote NEOSYS server in case of emergencies or server problems, it is crucial you understand the below procedure on how to switch to a backup server in the event of such a situation. Extreme care must be taken when switching over to using a backup server otherwise unnecessary data loss is very likely.&lt;br /&gt;
&lt;br /&gt;
Backup servers are normally switched off and should not be started automatically otherwise there is a serious risk of the client’s staff working on two systems. It is not possible to merge two databases into one database. Before the backup server is enabled the main server must be disabled, and before the main server is re-enabled, the backup  server must be disabled again. This can be managed technically without requiring any decision from senior non-technical staff.&lt;br /&gt;
&lt;br /&gt;
However, there are also some potentially hard decisions about unavoidable loss of data versus continued system availability. *** Backup servers should therefore only be started with the written approval of the clients senior staff. A suitable email requesting approval follows.&lt;br /&gt;
&lt;br /&gt;
The following case assumes that the main server has gone down sometime during the working day and that therefore the data on the backup server is out of date. Allowing them to use the backup server therefore implies some loss of data. They may wish to lose the data. They may wish to work on the backup server data and then try to redo the work on the main server once it is restored. There are a variety of options depending on the situation.&lt;br /&gt;
&lt;br /&gt;
If the main server is still functioning AND you are reasonably sure that the database is not damaged (which is perhaps an unlikely situation if you need to use the backup server!), it may be sensible to trigger an additional “backup/sync” process to bring the backup server database up to date with the main server. Before you do this, it is advisable that you take a backup copy of the backup system on the backup  server. In this case there would be no data loss in using the backup.&lt;br /&gt;
&lt;br /&gt;
An additional option of providing usage of the backup server in read-only mode so that people can at least access some data is being developed. The backup server could be available continuously at any time in read-only mode. This article would then be related to switching a backup server into main operational mode.&lt;br /&gt;
&lt;br /&gt;
 Dear {senior staff} cc {IT staff}&lt;br /&gt;
 &lt;br /&gt;
 Please note that we can enable the backup server if you wish.&lt;br /&gt;
 &lt;br /&gt;
 However the data on the backup server is out of date since it is a copy of your main database as at 11/22/33 99:99.&lt;br /&gt;
 &lt;br /&gt;
 If you wish to allow work to be done on the backup server then any data entered on your main server since the above date will be lost if we &lt;br /&gt;
 subsequently copy the data on the backup server to the main server.&lt;br /&gt;
 &lt;br /&gt;
 If, after using the backup server, we do NOT copy the data on the back server to the main server then any data you have entered on the backup &lt;br /&gt;
 server/database will be lost.&lt;br /&gt;
 &lt;br /&gt;
 Please confirm a) you want to work on HOSTS2 database and that we should therefore enable it and b) you have disconnected your main server &lt;br /&gt;
 for the duration.&lt;br /&gt;
 &lt;br /&gt;
 Best Regards,&lt;br /&gt;
 xxxxxx xxxxxxx&lt;br /&gt;
 NEOSYS Support&lt;br /&gt;
&lt;br /&gt;
==How to Restore NEOSYS from Backup==&lt;br /&gt;
&lt;br /&gt;
For a more detailed step by step go to [[http://techwiki.neosys.com/index.php/Installing_NEOSYS_Service#Installing_initial_or_Restoring_Database Restoring or Installing initial Database]]&lt;br /&gt;
&lt;br /&gt;
#Log into Maintenance Mode&lt;br /&gt;
#Go to General &amp;gt; Backup &amp;amp; Data Management &lt;br /&gt;
#Select (the 4th option) Restore from disk or diskette &lt;br /&gt;
#Select the drive where the latest successful backup.zip file is present and follow the prompts ahead.&lt;br /&gt;
&lt;br /&gt;
== Deleting all current and historical backups of a particular directory in NEOSYS ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1. Searching for directories to delete without deleting them ===&lt;br /&gt;
&lt;br /&gt;
There must be no similarly worded directories. Here the example directory is called DDBTEST.&lt;br /&gt;
&lt;br /&gt;
 find /backups/current /backups/snapshots -type d -path &amp;quot;*/DDBTEST/*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Step 2. Deleting the directories using rm ===&lt;br /&gt;
&lt;br /&gt;
This command uses the VERY DANGEROUS rm command. If the search is done even slightly wrong - which is well known to be very easily done - then rm will happily remove *all* files on the server causing *partial or complete loss of all backups and/or complete loss of the whole server*, requiring installation from scratch.&lt;br /&gt;
&lt;br /&gt;
Blunders with rm are notorious in IT.&lt;br /&gt;
&lt;br /&gt;
The command given below is incomplete and should only be completed by a skilled and responsible IT person who knows what to check and what to add.&lt;br /&gt;
&lt;br /&gt;
In its incomplete form, it is safe to run and will only highlight what directories will be deleted or delete empty directories.&lt;br /&gt;
&lt;br /&gt;
In its completed form, it is DANGEROUS and should not be used except as described above.&lt;br /&gt;
&lt;br /&gt;
 find /backups/current /backups/snapshots -type d -path &amp;quot;*/DDBTEST/*&amp;quot; | xargs -n 1 rm&lt;br /&gt;
&lt;br /&gt;
=== Step 3. Check all gone ===&lt;br /&gt;
&lt;br /&gt;
Redo step 1&lt;br /&gt;
&lt;br /&gt;
==While Moving NEOSYS to a new server, after copying D drive the Maintenance does not contain all data sets==&lt;br /&gt;
&lt;br /&gt;
After copying D drive, when you open Maintenance if the data sets are not present as in the old server you MUST restore Backup as restore is a verified/quick method of creating data sets. While restoring last night&#039;s Backup for missing data sets, the system gives a warning message &amp;quot;Dataset is already on the computer&amp;quot; as shown below. You MUST select the 2nd option &amp;quot;Overwrite the existing dataset&amp;quot; from the options in the warning message. In this way, all data sets will be created/saved on the new server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════════════════════╗&lt;br /&gt;
║                     *** WARNING ***                     ║&lt;br /&gt;
║                       TEST /TEST                        ║&lt;br /&gt;
║               IS ALREADY ON THE COMPUTER                ║&lt;br /&gt;
║  IF YOU CONTINUE, THE EXISTING FILES WILL BE DELETED.   ║&lt;br /&gt;
║                                                         ║&lt;br /&gt;
║                What do you want to do?                 ║&lt;br /&gt;
║───┬─────────────────────────────────────────────────────║&lt;br /&gt;
║  1│Cancel the restore process                           ║&lt;br /&gt;
║  2&amp;gt;Overwrite the existing data set                      ║&lt;br /&gt;
║  3│Restore and make a new dataset                       ║&lt;br /&gt;
╚═════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accessing historical snapshots of NEOSYS hosted clients data ==&lt;br /&gt;
&lt;br /&gt;
The main NEOSYS backup server nl13 contains backups of NEOSYS hosted clients along with all NEOSYS internal servers.&lt;br /&gt;
&lt;br /&gt;
It also contains historical snapshots of the backups going back six months.&lt;br /&gt;
&lt;br /&gt;
NEOSYS SUPPORT TEAM *MUST* AVOID COPYING, MOVING OR RENAMING FOLDERS ON NEOSYS WINDOWS SERVERS because this causes severe duplication and consumption of valuable resources for up to six months on nl13. Any exception to this rule must be discussed with NEOSYS IT *before* implementation.&lt;br /&gt;
&lt;br /&gt;
=== How to restore? ===&lt;br /&gt;
&lt;br /&gt;
nl13 is only accessible by NEOSYS IT so recovery of any data cannot be done directly by NEOSYS support team and is not a routine procedure.&lt;br /&gt;
&lt;br /&gt;
The secondary NEOSYS backup server hosts2 is accessible to NEOSYS support team but contains only the latest snapshot of the current NEOSYS hosted clients as at last night. No historical versions are available.&lt;br /&gt;
&lt;br /&gt;
=== What snapshots are available? ===&lt;br /&gt;
&lt;br /&gt;
As of 2017/05/25 the NEOSYS backup server nl13 takes snapshots (of the backups listed in Nagios) as follows using crontab:&lt;br /&gt;
&lt;br /&gt;
* 120 historical hourly backups done at **:10 every hour (5x24 hours)&lt;br /&gt;
* 8 historical daily backups done at 01:11 every night&lt;br /&gt;
* 5  historical weekly backups done at 01:12 every Saturday&lt;br /&gt;
* 6 historical monthly backups done at 01:13 on the 1st of every month&lt;br /&gt;
&lt;br /&gt;
=== What is backed up? ===&lt;br /&gt;
&lt;br /&gt;
Inspecting Nagios shows daily backups of NEOSYS hosted clients to nl13 of win3/d. Complete hourly backup is not possible due to limitations of Windows and/or the backup software used. However, there are hourly backups of win3/d/DATA.BAK so NEOSYS process &amp;quot;backups&amp;quot; to win3/d/DATA.BAK (on the same server and disk and therefore not a proper backup) do get properly backed up to a different server once an hour.&lt;br /&gt;
&lt;br /&gt;
=== Historical/Lapsed Clients? ===&lt;br /&gt;
&lt;br /&gt;
For more info see [[Uninstalling_clients_hosted_on_NEOSYS_Server|Uninstalling clients hosted on NEOSYS server ]]&lt;br /&gt;
&lt;br /&gt;
A single copy of lapsed clients last BACKUP.ZIP will be kept for as long as possible along with the active client&#039;s data and backed up identically.&lt;br /&gt;
&lt;br /&gt;
Long lapsed clients should be removed periodically from the normal DATA.BAK folder only when space runs out on win3 but a copy should be moved to D:\DATA2.BAK folder on hosts2 which is itself backed up nightly to nl13 which keeps backups for approx six months.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3656</id>
		<title>Procedures</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3656"/>
		<updated>2019-11-24T12:30:20Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Handling Links and Email Attachments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are procedures to be followed by Support Staff in respect to various technical matters in day to day operations of client issues.&lt;br /&gt;
&lt;br /&gt;
Once Support Staff have learnt how to follow these procedures &amp;amp; rules, you then start learning when and how to not follow them. Common sense trumps all rules! i.e. don&#039;t follow procedures and rules blindly all the time. Analyse the problem and solve it practically.&lt;br /&gt;
&lt;br /&gt;
BUT if you are doing something off-piste deliberately, then just add an appropriate comment about why you are.&lt;br /&gt;
&lt;br /&gt;
== Handling Clients with Overdue Invoice ==&lt;br /&gt;
In order to maintain good payment speed by clients NEOSYS needs to restrict support to clients that dont pay their bills on time, however the degree of restriction needs to depend on an intimate knowledge of the client which cannot be expected from all NEOSYS support staff. Therefore we will use a simple escalation policy as follows:&lt;br /&gt;
&lt;br /&gt;
=== Overdue Support List ===&lt;br /&gt;
NEOSYS SUPPORT MANAGERS WILL maintain an overdue list on a whiteboard visible to all support staff. Generally, clients will go on the list immediately when their invoice is overdue and come off only after satisfactory commitment to pay have been obtained.&lt;br /&gt;
&lt;br /&gt;
The latest overdue list email MUST always be starred until there are no clients left on the overdue list (apart from the permanently overdue clients). When a client is added to the overdue list, support must set up a filter to move client support emails to the overdue folder. When a client is removed from the overdue list, client emails must be moved back into the support inbox. This way support team will know that there are still clients on the overdue list and will not mistakenly provide support to those clients.&lt;br /&gt;
&lt;br /&gt;
[[image:FilterOverdue.jpg]]&lt;br /&gt;
&lt;br /&gt;
For the first week of each quarter of the year, normal support should be provided for server failures and backup failures (including hung processes as it could eventually lead to backup failures).&lt;br /&gt;
&lt;br /&gt;
For any other support requests from overdue clients, respond with the following letter (where XYZ is the overdue client):&lt;br /&gt;
&lt;br /&gt;
 Dear &amp;lt;user&amp;gt;,&lt;br /&gt;
 There is an issue with your company&#039;s account. We have requested our Accounts team for approval in order to provide support to you and other &amp;lt;XYZ&amp;gt; users.&lt;br /&gt;
&lt;br /&gt;
Support staff MUST then provide the required support to the overdue client only after 4 working hours. Support Staff need not actually contact the Accounts team for approval, although that is what is mentioned in the letter. This delay in support is to encourage clients to settle their payments on time.&lt;br /&gt;
&lt;br /&gt;
After the first week of each quarter of the year, respond to any support requests from overdue clients with the above letter but MUST NOT PROVIDE SUPPORT even after 4 working hours. Instead, Support Staff must refer the support request to NEOSYS Support Manager.&lt;br /&gt;
&lt;br /&gt;
Managers may well instruct support to provide support on a case by case basis even if clients are on the overdue list. Being on the overdue list does not necessarily indicate a major issue with accounts.&lt;br /&gt;
&lt;br /&gt;
=== Handling complaints about Licence restrictions ===&lt;br /&gt;
&lt;br /&gt;
Sometimes when a client delays payment of NEOSYS invoice, support places a licence restriction for the client. In such cases, users will not be able to create and save documents dated outside the licence period. Due to this sudden restriction, clients may raise complaints about the restriction placed.&lt;br /&gt;
&lt;br /&gt;
Support MUST simply inform them that licence restrictions are a default procedure followed by NEOSYS and is applied to all clients, so that the client will in future avoid delaying the payment.&lt;br /&gt;
&lt;br /&gt;
== Handling Frozen NEOSYS Installations and Databases ==&lt;br /&gt;
&lt;br /&gt;
Some clients retain fully operational NEOSYS installations or just particular databases even after they stop using them for some reason, either because they move to some other software, or because they terminate an operational division, or other reasons, and this can either be on NEOSYS or their own servers.&lt;br /&gt;
&lt;br /&gt;
In this case, various NEOSYS upgrade and maintenance processes may be suspended, downgraded or completely skipped especially if instant access to the server is no longer available. This does not mean that it should never be done, and pros and cons need to be assessed and documented in support emails on a case by case basis.&lt;br /&gt;
&lt;br /&gt;
*Upgrading NEOSYS version&lt;br /&gt;
*Upgrading/standardising NEOSYS database configuration and other files for consistency, security or other issues&lt;br /&gt;
*Patching Windows/IIS configuration for consistency, security or other issues&lt;br /&gt;
&lt;br /&gt;
== Handling Links and Email Attachments ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DO NOT TRUST ANY LINK OR ATTACHMENT IN ANY EMAIL EVEN FROM HIGHLY TRUSTED PEOPLE OR ORGANISATIONS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These days you can no longer trust links or attachments in emails from anybody - even emails from highly trusted people like your bank.&lt;br /&gt;
&lt;br /&gt;
If a personal computer or intermediate email server is hacked then even genuine emails sent out from it can be infected and modified in a hidden way that can result in the recipient being infected if they click or open anything in the email.&lt;br /&gt;
&lt;br /&gt;
Therefore you should know and understand how to avoid, as far as possible, getting tricked and infected via emails.&lt;br /&gt;
&lt;br /&gt;
Malware authors generally rely on the fact that most people devote no time at all to security precautions so a moderate cautious approach, slowing down a little to spending some time on security, even where it is apparently not required, is enough to defeat most attacks.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
Do NOT click on links, especially in emails that you are not expecting, but also anywhere else that you see links, without taking various precautions. The links in an email, even from someone you know and trust, can LIE to you about what website they will open and they can lead you to websites that mere browsing can infect your computer and then others inside our network.&lt;br /&gt;
&lt;br /&gt;
WHAT LINK/WEBSITE WILL BE OPENED MAY NOT BE WHAT IT SAYS IN THE BODY OF YOUR EMAIL!&lt;br /&gt;
&lt;br /&gt;
Therefore, to use a link in any and all emails, first hover your cursor over it and check the status bar at the bottom of the screen where you can see exactly what website will be opened, or, to be more sure exactly what website you are opening DO NOT click links in emails at all. COPY/PASTE the link to your browser, AFTER following the below points.&lt;br /&gt;
&lt;br /&gt;
*Make sure you know and trust the website being opened.&lt;br /&gt;
*Carefully inspect the spelling of the domain name to avoid tricky look-alike fraudulent links eg hcsb.com instead of hsbc.com&lt;br /&gt;
*If you trust the sender but you do not personally know the website then get independent confirmation from the sender. Reply to the email so that the sender can check the link you received has not been tampered with.&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&lt;br /&gt;
Below is an example of a phishing email that you can easily tell is malware&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot1.png]]&lt;br /&gt;
&lt;br /&gt;
*You don&#039;t expect it because it says &amp;quot;before your sign up is complete&amp;quot; ... but you didn&#039;t just sign up.&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t mean that links in emails that you ARE expecting ARE safe to open. All the usual cautions apply to emails you DO expect.&lt;br /&gt;
&lt;br /&gt;
*Hover mouse over the button and check the link visually&lt;br /&gt;
&lt;br /&gt;
In the example above, the email is supposed to be from Dropbox, but hovering the mouse over the button shows the below link, which is obviously wrong:&lt;br /&gt;
&lt;br /&gt;
http://fxloraisdoxbraxsil.com.br/dropbox.html&lt;br /&gt;
&lt;br /&gt;
*Even if the link looks genuine e.g. something from a service that we use that we didn&#039;t expect, be careful for misspelt links that look like genuine links e.g. drobbox.com, which could trick you if you are sloppy.&lt;br /&gt;
&lt;br /&gt;
Never click on links in emails unless you are absolutely 100% sure that the email and link is genuine.&lt;br /&gt;
&lt;br /&gt;
Copy the link using right click copy link then paste into your browser if there is the slightest doubt.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&lt;br /&gt;
In the following case, hovering over the first two links seem to go to real UPS website, BUT this is NOT sufficient to be sure since slight misspellings and other tricks can lead you to a totally different website.&lt;br /&gt;
&lt;br /&gt;
However, hovering over the third &amp;quot;link&amp;quot; shows that clicking the apparent link would go to some website http://behappy.vn (Vietnam) so clearly this is a DECEPTION.&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example 3:&lt;br /&gt;
&lt;br /&gt;
In this case, an unknown organization behind the phishing attack is pretending to work for Leaseweb sales company and is sending emails from an email address similar to Leaseweb’s, and with Leaseweb’s footer. They claim that the original payment was declined and ask to wire or transfer money to a new account. These kind of emails are quite sophisticated and require you to be vigilant. &lt;br /&gt;
&lt;br /&gt;
Try to confirm the sender’s identity before replying to email requests and before opening attachments or clicking on links, even if they appear to come from a legitimate source. &lt;br /&gt;
&lt;br /&gt;
Below is an example of a fraudulent email request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your payment has been declined!&lt;br /&gt;
Your invoice (100421) with Office 365 Service is due.&lt;br /&gt;
To make a payment, please log in with your email address and password at&lt;br /&gt;
&lt;br /&gt;
https://leaseweb.com/payment/100421&lt;br /&gt;
Once logged in please click select the Make a Payment icon in the Billing Tab. You may complete payment by Credit Card or Paypal on this page.&lt;br /&gt;
&lt;br /&gt;
Once paid no further action is needed and your account will remain active.&lt;br /&gt;
We thank you for your continued business and assistance in helping us to get this resolved.&lt;br /&gt;
Feel free to contact us if you have any questions, comments, or concerns.&lt;br /&gt;
&lt;br /&gt;
Regards; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Attachments ===&lt;br /&gt;
&lt;br /&gt;
Please follow these rules strictly:&lt;br /&gt;
* *NEVER*  open an attachment that you did not expect.&lt;br /&gt;
&lt;br /&gt;
* *NEVER*  be curious to see what is in an attachment.&lt;br /&gt;
&lt;br /&gt;
* *NEVER*  open an attachment if there is some other way for the info to be sent e.g. Screenshot of document.&lt;br /&gt;
&lt;br /&gt;
If the rules above are followed then:&lt;br /&gt;
&lt;br /&gt;
* You can open an attachment if you have requested it and if sender is unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
* You can open an attachment if you get a good explanation of it contents from sender and they are unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
It is okay to save an attached eml file and open it with GEDIT as text, as it will not trigger any virus.&lt;br /&gt;
&lt;br /&gt;
This does NOT mean that you can open attached files freely. As per the procedures above, you should NOT open any unknown or unexpected attachments without CONSIDERABLE thought.&lt;br /&gt;
&lt;br /&gt;
But saving and then opening files with GEDIT to get an idea of their contents even if the view is mangled is okay. Although, there is little point in opening files like ZIP in gedit.&lt;br /&gt;
&lt;br /&gt;
There is no way to determine if an attachment, even from someone you know, has not been infected and is therefore, dangerous.&lt;br /&gt;
&lt;br /&gt;
The only protection is to rely on anti-virus/anti-malware e-mail filters and staff vigilance!&lt;br /&gt;
&lt;br /&gt;
You can check the names and file types/extensions of attached files to spot any obviously strange or unexpected attachments, but this is not very effective. The filename of an attachment could be spoofed. An attacker could potentially exploit this by tricking the user in to opening an attachment of a different type to the one expected.&lt;br /&gt;
&lt;br /&gt;
Attachments ending in .jar or any other unusual extensions shouldn’t be opened without SB&#039;s permission.&lt;br /&gt;
&lt;br /&gt;
If there are a lot of attached files, don&#039;t assume they are all safe, make sure you asked for each of them.&lt;br /&gt;
&lt;br /&gt;
== Handling emails from unknown email addresses ==&lt;br /&gt;
&lt;br /&gt;
Any sort of contact from an unknown email address must be ignored entirely, i.e. no response whatsoever from Support, as these emails could be from a fraudulent source. If the email is genuine, then the sender can surely contact their managers.&lt;br /&gt;
&lt;br /&gt;
Support should keep in mind that hackers can send emails that look genuine, aiming to get private/confidential information and so should always stay alert when dealing with such emails.&lt;br /&gt;
&lt;br /&gt;
== Handling junk/spam email ==&lt;br /&gt;
&lt;br /&gt;
In order to get better automatic spam email filtering please mark as many obviously spam emails as Junk, instead of just deleting them. Marking them will delete them so it takes not much longer to do.&lt;br /&gt;
&lt;br /&gt;
*DO NOT delete emails from Junk or Spam folder because they are used to identify future junk and spam emails. &lt;br /&gt;
*Any email identified as junk should be marked as Junk so that they automatically go into the Junk folder. The spam filter in the mail server will use these emails in the Junk folder to decide what is moved into the spam folder.&lt;br /&gt;
*You MUST ensure that all clearly junk/spam emails are marked as Junk/Spam in ALL email inboxes. In other words they MUST be moved to Junk/Spam folders and not left in our inboxes or other main folders.&lt;br /&gt;
*Any emails which are not clearly junk/spam emails or are similar to genuine emails, but you know are spam/junk MUST be deleted i.e. NOT left in inbox NOR moved to Junk/Spam folders.&lt;br /&gt;
&lt;br /&gt;
Failing the above we will have the following problems:&lt;br /&gt;
&lt;br /&gt;
*Real emails disappearing into junk/spam folders by our email server.&lt;br /&gt;
*More junk/spam emails appearing in our inboxes than necessary.&lt;br /&gt;
&lt;br /&gt;
The Junk email folder contains emails that have been manually marked as spam/junk whereas the &amp;quot;spam&amp;quot; email folder contains emails that have automatically been filtered out by the email server.&lt;br /&gt;
&lt;br /&gt;
== Avoid burdening email servers with excessive graphics ==&lt;br /&gt;
&lt;br /&gt;
Support MUST install the &amp;quot;Auto Resize Image&amp;quot; addon in Thunderbird to reduce the size of images in emails resulting in a significant reduction in email size. See [[Configuring_Thunderbird#Configure_Auto_Resize_Image| setting up auto resize image]] for details.&lt;br /&gt;
&lt;br /&gt;
It reduces the burden on NEOSYS and NEOSYS client&#039;s email servers. This is especially important on long conversations about subjects that include many screenshots, since for just a simple one line reply, the email can consume many MB of space. It massively wastes the email server space and makes backups massive and generally a total waste of resources and time.&lt;br /&gt;
&lt;br /&gt;
To be able to refer back to graphics in previous emails, add the SIZE column to your email program so that you can locate large emails with graphics rapidly without searching back one by one.&lt;br /&gt;
&lt;br /&gt;
==Client Communication Policies==&lt;br /&gt;
===Client Meeting Report Policy===&lt;br /&gt;
&lt;br /&gt;
After every Client meeting online or otherwise Support MUST send a Follow-Up email to the Client which is open and fully informative and not brief, stating the events during the meet and any action required by either or both parties. The email to the client must not shrink from discussing contentious issues due to a false sense of politeness or timidity to address issues face on. Obviously one should not be rude but it is not rude to address issues openly.(cc Client managers and NEOSYS Managers)&lt;br /&gt;
&lt;br /&gt;
The follow-up email MUST be sent within 24 hours of completion of the meeting so that the points discussed during the meeting are fresh in all the meeting participants&#039; minds. This means that reports for meetings on the day before the weekend MUST be sent on the SAME day.&lt;br /&gt;
&lt;br /&gt;
In addition to above email if there is some information that needs to be shared internally and cannot be said in public to the client then send a Client Meeting report to Support.&lt;br /&gt;
&lt;br /&gt;
Support must also update the Client Contact Record file in Google Drive immediately after sending out the follow-up email.&lt;br /&gt;
&lt;br /&gt;
===Follow Up of Support Issues===&lt;br /&gt;
&lt;br /&gt;
All voice/chat communication MUST also be followed up with an email confirming at least the gist of the communication to keep the whole support team updated on the issue.&lt;br /&gt;
&lt;br /&gt;
If not possible to contact for any reason, then an email MUST be sent stating so and suggesting or requesting a time to connect.&lt;br /&gt;
&lt;br /&gt;
cc Client managers (and/or BCC NEOSYS Managers) MAY be done if thought to be useful and/or appropriate.&lt;br /&gt;
&lt;br /&gt;
===Handling Contentious Emails from Clients===&lt;br /&gt;
&lt;br /&gt;
If emails requesting support become contentious, then voice, phone call or chat is REQUIRED to save time. However, client support via phone call should be done only on local or low-cost calls. High-cost international calls should not be used except in extreme circumstances.&lt;br /&gt;
&lt;br /&gt;
If clients become deliberately combative or uncooperative then Support team is supposed to kick back a little but still emphasise the point. Perhaps it could be done better with a little ironic humour or a smiley. Avoid using !! while responding to contentious emails.&lt;br /&gt;
&lt;br /&gt;
=== Apologising to clients for issues ===&lt;br /&gt;
&lt;br /&gt;
We only need to apologise for major issues that are a) definitely our fault and b) we wish to indicate that there is some general issue in NEOSYS procedures and that we are dealing with it. &lt;br /&gt;
&lt;br /&gt;
We do not want to invite bullying by some clients by seeming to lack confidence in our ability.&lt;br /&gt;
&lt;br /&gt;
An explanation of the cause and possibly FP is of more value to the client, since an apology doesn’t really make any difference.&lt;br /&gt;
&lt;br /&gt;
=== Discussing Pricing === &lt;br /&gt;
All discussions about pricing must be done only in Sales inbox. If clients bring up pricing discussion in support emails, NEOSYS staff must respond to the client by starting a new thread in the Sales Inbox.&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Support Response Time Policy==&lt;br /&gt;
&lt;br /&gt;
NEOSYS contracts, in the few cases where we have a written contract with the client, specifies that maximum response time is one business day generally and one business hour for complete stoppages of the system. Obviously we have to do far better than this in practice.&lt;br /&gt;
&lt;br /&gt;
Support staff must inform clients of the progress of the issue if it is not resolved the same day but only if they contact at least 1 hour before office closing.&lt;br /&gt;
&lt;br /&gt;
Deciding to wait on issues is fine (also refer to:  [[Procedures#Handling_users_who_do_not_act_upon_standard_messages|Response to standard messages]]), but support MUST at least spend up to 5 minutes on issues to see if they can be handled quickly. Support MUST respond quickly to issues that can be handled quickly, otherwise the client suffers unnecessarily.&lt;br /&gt;
&lt;br /&gt;
When an issue is fixed or a client request has been implemented in NEOSYS, Support must immediately let users know that the issue is fixed, so that clients can continue their work without any further delay. Quick and prompt responses from Support will gain the client&#039;s appreciation.&lt;br /&gt;
&lt;br /&gt;
For routine requests for service where there is a reasonable expectation of delay by the client then no need to send rapid reply.&lt;br /&gt;
&lt;br /&gt;
==Default Browser for support staff ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS supports and develops for Firefox primarily but other browsers such as Chrome and Edge MUST also be tested working fine. Support team currently uses Firefox for all work related tasks in Ubuntu which includes testing, wiki work etc.&lt;br /&gt;
&lt;br /&gt;
Also refer to [http://itwiki.neosys.com/index.php/Setting_up_Ubuntu_on_NEOSYS_Support_Computers#Mozilla_Firefox Setting up Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
==Handling errors discovered by support staff ==&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
==Handling browser script errors==&lt;br /&gt;
&lt;br /&gt;
If a script error is faced, support should take a full screenshot of the script error including the script name, line number, etc.&lt;br /&gt;
&lt;br /&gt;
Include every detail available regarding the script error and also the steps to replicate it and escalate this to the programmer.&lt;br /&gt;
&lt;br /&gt;
Chrome JavaScript Error Notifier extension shows all the details available in the initial script error message itself. In Internet Explorer, you will have to click &#039;Yes&#039; on the script error message to get all the details.&lt;br /&gt;
&lt;br /&gt;
== Various checks done by Support to investigate errors ==&lt;br /&gt;
&lt;br /&gt;
A list of logs/reports that Support must look at, depending on the situation, to solve issues or investigate errors.&lt;br /&gt;
&lt;br /&gt;
#Support inbox emails: Check old emails in Thunderbird. This is the quickest way to handle issues/errors that were handled recently.&lt;br /&gt;
#Logs/reports available in NEOSYS Menu&lt;br /&gt;
#*Request Log (Support -&amp;gt; RequestLog) - These logs can be checked to see what request were made and by which users etc., not as detailed as the xml logs mentioned under &amp;quot;Logs found on the server&amp;quot;.&lt;br /&gt;
#*NEOSYS logs (Support -&amp;gt; Log) - Log of alerts sent out via email, e.g. backup email, login failure, etc.&lt;br /&gt;
#*What&#039;s New report (Help -&amp;gt; What&#039;s new in NEOSYS) - Contains a list of all the features added in NEOSYS&lt;br /&gt;
#*List of Database processes (Support -&amp;gt; List of Database Processes) - Status of processes windows running on the server.&lt;br /&gt;
#*List of documents in use (Support -&amp;gt; List of Documents in Use) - Currently used documents.&lt;br /&gt;
#*User details page (Help -&amp;gt; User Details) - To check logins and IPs and password reset details.&lt;br /&gt;
#*Version logs of files - The history of edits made to files in NEOSYS. This is available at the bottom of files in NEOSYS (e.g. Schedule file, Voucher file, etc.)&lt;br /&gt;
#*Usage Statistics (Support -&amp;gt; Usage Statistics) - Shows no. of requests made per user, per department, per database, per hour etc.&lt;br /&gt;
#Logs found on the server:&lt;br /&gt;
#*Xml logs - These logs can be checked to see what request were made and by which users etc. in detail.&lt;br /&gt;
#*Process logs (.LOG files) - These log files contain entries showing start of database backup, and process startup logs.&lt;br /&gt;
#*Process windows - Check process windows on the server for error messages or anything unusual, e.g. hung processes.&lt;br /&gt;
#*Procexp (Process Explorer)- Used to check ntvdm processes running for specific installations (useful on servers with multiple installations).&lt;br /&gt;
#*System logs (Event viewer) - Used to check for unusual system events, eg: unexpected shutdown.&lt;br /&gt;
#*Task manager - Checked to monitor CPU usage, NTVDM running etc.&lt;br /&gt;
#NAGIOS - Monitors the status of all hosts and services.&lt;br /&gt;
&lt;br /&gt;
==Handling Cheques from Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff are not to accept deliveries from clients that might be cheques without prior instructions to accept the same. They can ask courier to wait a few minutes until NEOSYS accounts or management agrees but they may not be immediately available and probably will not agree anyway. If accounts or management is not immediate available, then cheque MUST not in any circumstances be accepted, otherwise client can cause problems in our accounts and we waste time visiting the bank to deposit.&lt;br /&gt;
&lt;br /&gt;
NEOSYS payment terms do not accept cheques although clients are free to deposit cheques by themselves.&lt;br /&gt;
&lt;br /&gt;
== Client Password Policy ==&lt;br /&gt;
All client user passwords, including their initial one, are to be obtained via the user&#039;s email address using the password reminder/reset button on the login screen. [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#What_is_NEOSYS_password_policy.3F  (NEOSYS password policy)]&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff should never know users passwords therefore NEOSYS will not obtain and grant user passwords. The reason for this is that in the event that users lose their passwords to other people who then login unauthorised then suspicion could fall on the NEOSYS staff who know their password. &lt;br /&gt;
&lt;br /&gt;
All parties concerned, including client management, client users and NEOSYS support staff, benefit greatly from trusting that if something in a NEOSYS database is registered as having been done by a particular user then it was not in fact somehow done by NEOSYS support staff. Nothing should be done that would break such fundamental trust. To achieve this, NEOSYS support staff must never log in as particular users, never ask for users passwords and generally enforce the idea that all work logged as being done by users IS done by users.&lt;br /&gt;
&lt;br /&gt;
Very limited amounts of work by NEOSYS support staff either in person or remotely using teamviewer is acceptable while a user is logged as long as the user login was performed by the user themselves, the user is present and the user specifically agrees with the work being done.&lt;br /&gt;
&lt;br /&gt;
=== Support requests from ordinary client users ===&lt;br /&gt;
Any support requests concerning inability to obtain passwords will be forwarded to known skilled users on the client staff since this is the most efficient (not fastest) way to handle such issues.&lt;br /&gt;
&lt;br /&gt;
=== Support requests from senior client management ===&lt;br /&gt;
Any support requests concerning inability to obtain passwords by senior client management users shall be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bearing in mind that NEOSYS staff should never know user&#039;s passwords this will probably involve NEOSYS staff using the Password Reminder/Reset button to send a new password to the user.&lt;br /&gt;
&lt;br /&gt;
=== User Defined Passwords ===&lt;br /&gt;
NEOSYS will provide user defined passwords in very special cases which must be pre-approved case by case by NEOSYS management. NEOSYS will not approve this due to the reasons mentioned [[Procedures#Client_Password_Policy|here]].&lt;br /&gt;
&lt;br /&gt;
If the user login gets blocked due to multiple login failures and the user requests support team to reset the password to the user defined password again, support MUST delay the response to this request by at least 1 hour in order to force the user to be more careful when typing the password.&lt;br /&gt;
&lt;br /&gt;
Currently permission for user defined password has only been granted to one NEOSYS client with several hundreds of databases.&lt;br /&gt;
&lt;br /&gt;
== Handling client issues and requests==&lt;br /&gt;
&lt;br /&gt;
All support issues must be dealt with through phone/email/chat. Support Staff can schedule client visits for User Training but should not schedule client visits solely for providing support for petty issues.&lt;br /&gt;
&lt;br /&gt;
ALL Support staff should check all the previous day&#039;s inbound emails for reply flags once in the morning. All Support staff will therefore be held responsible for any unreplied inbound email.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT waste time and delay support by investigating issues WITHOUT SUFFICIENT INFORMATION.&lt;br /&gt;
&lt;br /&gt;
Support must NOT get involved in any discussion about any document that is not directly out of NEOSYS, so that Support is able to reproduce it from NEOSYS screenshots of screen options that the client used.&lt;br /&gt;
&lt;br /&gt;
Support should look for similar issues when solving a particular problem to avoid similar issues in future. This saves the time and energy of Support as well as the Client.&lt;br /&gt;
&lt;br /&gt;
When sending screenshots to clients, support team should economise on space by minimising to the minimum that will show the problem clearly. This is because not every user will be viewing their emails on large wide screens like NEOSYS support team. Browser windows reformat their contents to suit the width available so this is particularly effective in most NEOSYS screens.&lt;br /&gt;
&lt;br /&gt;
Support team MUST be cautious while sending screenshots so that no private/unnecessary information is sent to Client. If you cannot avoid taking the screenshot without unnecessary information then you should hide it in the screenshot.&lt;br /&gt;
&lt;br /&gt;
Support team MUST learn not to do silly support for people, because we have an OPEN SUPPORT policy, which some users WILL try to abuse based on either poor understanding or lack of respect. &lt;br /&gt;
Either way support MUST learn to deal with abuse of privileges as it will save a lot of time, which could be spent on more important issues.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
=== Handling new emails in Support inbox===&lt;br /&gt;
Support MUST spend up to 5 minutes on new emails and send a quick reply to the client, to acknowledge the request or give a quick solution in case it is a petty issue or has a documented solution in wiki.&lt;br /&gt;
&lt;br /&gt;
Client issues/requests should be prioritized, interrupting existing work and not wait for one hour and be dealt with quickly.&lt;br /&gt;
&lt;br /&gt;
For routine service requests where there is a reasonable expectation of delay by the client, Support need not send a rapid reply but must keep the email starred in Support inbox to indicate that it is pending or being worked on.&lt;br /&gt;
&lt;br /&gt;
=== Handling starred emails in Support inbox ===&lt;br /&gt;
&lt;br /&gt;
When an email is received in Support inbox,&lt;br /&gt;
*if the email can be replied to immediately, then mark it as read after you have replied to the email.&lt;br /&gt;
*if the issue cannot be resolved immediately, then the email MUST be starred so that support does not forget to work on it. Once the issue has been resolved, Support should send an email to Support inbox confirming that the issue is closed. Only then should the email be unstarred.&lt;br /&gt;
&lt;br /&gt;
No issue should be silently dropped without being fully resolved.&lt;br /&gt;
&lt;br /&gt;
=== Handling client-sensitive information in emails ===&lt;br /&gt;
&lt;br /&gt;
Support should avoid including information that could be sensitive to clients e.g. screenshots of reports that should only be viewed by client&#039;s upper management.&lt;br /&gt;
&lt;br /&gt;
This can be done simply by clever cropping of images or blurring out of information in cases where cropping is not possible. &lt;br /&gt;
&lt;br /&gt;
Support MUST not delay response to any client by wasting time blurring or cropping out information that is not sensitive to clients, e.g. blurring out the URL and tabs in browsers etc.&lt;br /&gt;
&lt;br /&gt;
=== Handling client call back requests===&lt;br /&gt;
&lt;br /&gt;
Clients who ask us to call them should be given our phone number and asked to call us unless there is some GOOD reason why we should make the effort and pay phone charges.&lt;br /&gt;
&lt;br /&gt;
=== Handling login failure issues===&lt;br /&gt;
&lt;br /&gt;
Users often get login failure issues due to typing wrong password and they simply won&#039;t read and act according to the error message they get. In this case, Support must send the below email to the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
If you have trouble resetting password, please ask for assistance from your manager/IT Manager/Timesheet Administrator/NEOSYS-expert colleague.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local support users (TA or IT manager etc) have the LS key using which they can see the User Details page of all users. They should check all the information (usercode, registered email id, last login attempts etc) in the User Details page to find out what is the issue.&lt;br /&gt;
&lt;br /&gt;
This procedure will reduce the endless mails sent back and forth to solve petty issues which could easily be solved by the client&#039;s local support.&lt;br /&gt;
&lt;br /&gt;
=== Handling requests or demands for &amp;quot;URGENT&amp;quot; or &amp;quot;PRIORITY&amp;quot; support ===&lt;br /&gt;
&lt;br /&gt;
Any request for prioritised action *without giving any reason for the prioritisation* should be disregarded and the request handled with normal priority. If a reason is given then you may at your discretion prioritise a response but there is no obligation to do so.&lt;br /&gt;
&lt;br /&gt;
=== Handling users who login with other people&#039;s NEOSYS usercodes ===&lt;br /&gt;
This can cause a lot of confusion in both the client and NEOSYS support. It may also indicate that the correct NEOSYS monthly licensing fee is not being paid. There is no valid reason for anonymous logins or sharing logins between multiple users.&lt;br /&gt;
&lt;br /&gt;
Therefore if NEOSYS support team get requests for support about using NEOSYS from users who are not registered properly in NEOSYS with an personally identifiable user code, name and email then the following email should be sent cc admin@neosys.com.&lt;br /&gt;
&lt;br /&gt;
No exception should be granted to clients without NEOSYS management approval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear NEOSYSUSER,&lt;br /&gt;
&lt;br /&gt;
Please note that in order to receive support from NEOSYS you must personally have an identifiable user code, name and email address registered&lt;br /&gt;
in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
We can create new user account for you with your management approval. This may or may not have an impact on the NEOSYS monthly licensing fee &lt;br /&gt;
depending on the agreement in force.&lt;br /&gt;
&lt;br /&gt;
Please let us know what you would like us to do.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Handling support requests from expired users ===&lt;br /&gt;
&lt;br /&gt;
If expired users call for any reason including not being able to login, they must not be given any support. They should only be told that their account is expired without any reason being offered because employers sometimes do not want any information at all being passed to expired users.&lt;br /&gt;
&lt;br /&gt;
===Handling support request from senior management===&lt;br /&gt;
&lt;br /&gt;
Any support requests from senior client management users concerning report generations should be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bear in mind that NEOSYS staff should not agree or offer to do client work. Support staff can advise senior management to contact a skilled user to help them with basic NEOSYS reporting. Support staff can also send screenshots of step by step procedure on how to take reports. Depending on the situation and reasons provided by senior management, support staff can at their discretion provide reports but after informing them that this is an exception and no more reports will be sent out as this is against NEOSYS procedures.&lt;br /&gt;
&lt;br /&gt;
===Handling requests that involve updating NEOSYS configuration files===&lt;br /&gt;
&lt;br /&gt;
Changes to any configuration file in NEOSYS MUST be performed only by NEOSYS support, because even the slightest misconfiguration of the system may cause unrecoverable errors and NEOSYS is responsible for support.&lt;br /&gt;
&lt;br /&gt;
=== Handling emails with unrelated subject line ===&lt;br /&gt;
At times, clients forward old emails, with new issues, resulting in completely unrelated subject line. In such situations, support MUST follow the below steps to ensure that unrelated emails do not appear in the same conversation group when viewing emails in conversation mode:&lt;br /&gt;
#Right click the email -&amp;gt; HeaderToolsLite -&amp;gt; Edit full source&lt;br /&gt;
#Modify the text that appears after &amp;quot;Message-ID: &amp;lt;&amp;quot;. (e.g. replace the first few characters with &amp;quot;xxxxxxxxx&amp;quot;)&lt;br /&gt;
#Remove all texts that appear after &amp;quot;References:&amp;quot; and &amp;quot;In-Reply-To:&amp;quot; and click OK.&lt;br /&gt;
#Click Reply All on the modified email.&lt;br /&gt;
#Change the subject to a relevant one.&lt;br /&gt;
#Delete old unrelated content from the email body.&lt;br /&gt;
&lt;br /&gt;
In the email reply, include a comment like &amp;quot;PS Please don&#039;t forward old emails for new issues, start a new email with a new subject so that emails can be traced easily.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sometimes the client does not bother putting the correct subject line for new issues (e.g. blank subject, or &amp;quot;Error&amp;quot;). Then support should add a meaningful subject line in order to make the email easy to search for.&lt;br /&gt;
&lt;br /&gt;
=== Handling emails with poor screenshots ===&lt;br /&gt;
Sometimes Thunderbird shows full sized screenshots in a compact format that is not easy to read. These can be resized to make them more legible. To do this, make the email editable by hitting the &amp;quot;Reply&amp;quot; button, then click and drag to resize the screenshot as desired.&lt;br /&gt;
&lt;br /&gt;
If the screenshot sent by the user is genuinely small and hard to read, reply to the mail and request for a full size, clear screenshot.&lt;br /&gt;
&lt;br /&gt;
=== Handling support-request emails sent to anywhere than support@neosys.com ===&lt;br /&gt;
Client emails anywhere than support@neosys.com MUST be ignored. This is because ALL support must be recorded in support inbox without exception so that the whole support team is aware of the issue and action taken. If client complains about the delay in support then they can be told this is because they used the wrong email address.&lt;br /&gt;
&lt;br /&gt;
=== Handling users who do not act upon standard messages ===&lt;br /&gt;
When users do not bother to read and act on standard NEOSYS-generated messages and instead ask for help, Support staff MUST delay response time and thereafter send them an email which is the same as the message so they get the point that in future they should read the messages and handle issues themselves.&lt;br /&gt;
&lt;br /&gt;
=== Handling Requests to do Client work ===&lt;br /&gt;
NEOSYS Support staff must not agree or offer to do work on behalf of the client. &lt;br /&gt;
&lt;br /&gt;
This is because doing client work while logged in as NEOSYS breaks security rules. Support uses the NEOSYS username which has unrestricted access, so when a user requests Support to do some work which they don’t have access to, and if Support agrees to do the work, the client has successfully defeated the security rules by accessing features that they are unauthorised to access.&lt;br /&gt;
&lt;br /&gt;
If a client makes a false claim about an issue in NEOSYS, i.e. if Support finds out that there is no real issue, then direct the client in the right direction so that they find out their mistake by themselves. Support MUST NOT show/explain the problem to them in detail, since you are just doing their work for them by explaining the problem and this will encourage the client to contact support for every petty issue they face. &lt;br /&gt;
&lt;br /&gt;
Client work also includes [[Procedures#Handling_issues_with_totals_on_reports|Handling issues with totals on reports]].&lt;br /&gt;
&lt;br /&gt;
====Requests for colour and font changes====&lt;br /&gt;
&lt;br /&gt;
Support should not be spending lots of time on colour and font changes. Clients can make as many changes as they want until they are happy with a selection. Clients MUST send a screenshot of their required color/font settings (not sample screen/reports) for Support to copy and setup for all users. If Support sees them doing something bad or poor then give comments or better suggestions.&lt;br /&gt;
&lt;br /&gt;
=== Handling Requests that require Approval from Higher Authority ===&lt;br /&gt;
&lt;br /&gt;
The following is a list of user requests that must be handled by NEOSYS support staff only if they are approved by or come from a higher authority (manager/admin). The LIST is &#039;&#039;&#039;NOT&#039;&#039;&#039; a complete list so there may be other things which might require approval so use good judgement and/or ASK if in doubt.&lt;br /&gt;
&lt;br /&gt;
*Opening new financial year&lt;br /&gt;
*Adding new company/dataset&lt;br /&gt;
*Editing alert/backup email receiver addresses&lt;br /&gt;
*Customising Authorisation File ({{SensitiveSecurity }})&lt;br /&gt;
**Adding or removing accesses for existing users in Authorisation file&lt;br /&gt;
**[[Procedures#Handling_new_USER_creation| Adding new user(s) to Authorisation file]]&lt;br /&gt;
**Expiring a user&lt;br /&gt;
**[[Procedures#For_HTTPS_access| Allowing HTTPS/outside office access from any IP number]]&lt;br /&gt;
&lt;br /&gt;
If an unauthorized user sends one of these requests to support staff, support staff must immediately instruct the user to get the request approved by the higher authority.&lt;br /&gt;
&lt;br /&gt;
===Handling User Requests to add an IP or range of IPs to access NEOSYS===&lt;br /&gt;
&lt;br /&gt;
Support staff must identify if the IP or range of IPs is for http or https access.&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
====For HTTP access====&lt;br /&gt;
Support staff can add local IP or range of local IPs when requested by the client. Top management approval is not needed to add local IP numbers. Listed below are the IP address ranges reserved for local network.&lt;br /&gt;
&lt;br /&gt;
10.0.0.0 – 10.255.255.255&lt;br /&gt;
&lt;br /&gt;
172.16.0.0 – 172.31.255.255&lt;br /&gt;
&lt;br /&gt;
192.168.0.0 – 192.168.255.255&lt;br /&gt;
&lt;br /&gt;
====For HTTPS access====&lt;br /&gt;
Any request for https access from any IP address or range of IP addresses (eg. 123.456.* or just *), or in other words any use of an asterisk in the IP restrictions, MUST have TOP management i.e. the company&#039;s decision makers approval. The Staff and their Managers are not the best decision makers in this affair because they usually ignore the risks and it is not really their decision. Security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc can be triggered if access from any IP is enabled. It is completely pointless to inform the staff who want the access about these risks because only their top managers could really decide that this is NOT going to be allowed. Hence the Top Management MUST be asked for approvals and at the same time WARN them about the security risks/threats behind the no IP restrictions.&lt;br /&gt;
&lt;br /&gt;
=====For clients with static IP=====&lt;br /&gt;
Any request to add a specific IP address to the list of allowed IP addresses MUST have management approval.&lt;br /&gt;
&lt;br /&gt;
=====For clients with dynamic IP=====&lt;br /&gt;
For clients with dynamic IP, support MUST NOT add their public IP to the allowed list as this will encourage the client to again request for access from new IP numbers every time their public IP changes. Instead, support MUST force the client to either get a static IP, install VPN or get the Top Management i.e. the company&#039;s decision maker&#039;s approval to enable access from any IP after explaining the security risks in doing so, as mentioned above.&lt;br /&gt;
&lt;br /&gt;
Support MUST also mention that installation of VPN by the Company is the industry standard way of providing access to mobile staff (i.e. those on dynamic IP numbers from home or travelling) to corporate software assets like NEOSYS IN A SECURE MANNER. Installation of VPN is to be done by their own IT support. Refer to [[Procedures#Using_VPN_to_enable_secure_access_from_outside_the_office|Using VPN to enable secure access from outside the office]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Sample Email addressed to Top Management:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XXX,&lt;br /&gt;
 &lt;br /&gt;
I do not recommend allowing access from all IPs because security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc. can be triggered if access from any IP is enabled.&lt;br /&gt;
&lt;br /&gt;
I strongly recommend that you keep IP restrictions for XYZ dataset.&lt;br /&gt;
  &lt;br /&gt;
If you want to provide access to mobile staff (i.e. those on dynamic IP numbers from home or travelling) to corporate software assets like NEOSYS IN A SECURE MANNER, then installation of VPN is the industry standard of achieving this. Installation of VPN is to be done by your own IT support. &lt;br /&gt;
 &lt;br /&gt;
If you still wish to allow access from all IPs, kindly confirm that you acknowledge the security threats of doing so. &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Handling repeated request to allow users to access from all IPs ===&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
If the client wants temporary access from outside for some staff twice in say a six months period then support should send the below email. The real reason is because we don&#039;t have the time to be doing this on a regular basis. If at all the client asks why we no longer support the provision of temporary outside access then we can say this is because of the frequency of such requests.&lt;br /&gt;
&lt;br /&gt;
 Dear XXX&lt;br /&gt;
 &lt;br /&gt;
 We have given you temporary outside access this time, as requested. Please note that we can no longer support the provision of temporary outside access. So in the future, you will have to choose between either permanent or no outside access. Alternatively, you can ask your management to install a VPN (which is the industry standard of achieving outside access to a corporate asset in a secure manner), so that you can log in to NEOSYS from outside.&lt;br /&gt;
&lt;br /&gt;
=== Handling requests to create a new feature or modifying existing features ===&lt;br /&gt;
&lt;br /&gt;
Many issues are small and not important but can still be considered for development because they may be easy and neatly added to NEOSYS. The aim here is to avoid development on hard issues for little benefit, or little issues that make NEOSYS more complex for little benefit.&lt;br /&gt;
&lt;br /&gt;
When a client requests to create a new feature or modify an existing feature, a workaround must be given to the user, which is either a permanent solution, for example if the issue is a rare case and not commonly faced by other clients (and the workaround is acceptable to the client), or a temporary solution until some better solution is discovered or can be developed.&lt;br /&gt;
&lt;br /&gt;
Support MUST check all options on all pages to look for any already existing solution or workaround to the problem before emailing the programmer.&lt;br /&gt;
&lt;br /&gt;
Any request to create a new feature or modify an existing feature MUST be discussed with other clients before forwarding it to the programmer because the other clients might not be comfortable with the change as it may not be in accordance with their workflow. If other clients agree to the proposed change then support should go ahead and request the programmer to implement it.&lt;br /&gt;
&lt;br /&gt;
Therefore before escalating a request to the programmer to modify a feature in NEOSYS, the approval for the same from other clients must be taken into account.&lt;br /&gt;
&lt;br /&gt;
Any request to fix or modify a feature in NEOSYS must be accompanied with good reason and some basic considerations, so that the programmer knows what level of priority it can be dealt with. &lt;br /&gt;
&lt;br /&gt;
When escalating the request to the programmer, support MUST avoid using &amp;quot;Is it possible..?&amp;quot; because the obvious answer to that is &amp;quot;Anything is possible&amp;quot; and because this question is only a way to avoid doing the real work of deciding whether the new feature/modification should be implemented.&lt;br /&gt;
&lt;br /&gt;
=== Handling requests to add more fields to List of Invoices reports ===&lt;br /&gt;
&lt;br /&gt;
Many users may ask for the List of Invoices report to be expanded to show a zillion other things, but this makes it NOT a list of invoices. Therefore other break-downs MUST be obtained from other reports in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
=== Updating Clients about unresolved issues ===&lt;br /&gt;
Support should proactively inform clients if an issue is not solved within the same day it was raised, after judging the urgency of the issue and the time it was raised. An email to the client who raised the issue, before the end of each day, is a best practice that keeps the client updated and other support staff too. This email should be sent regardless of the degree to which the issue has been resolved or if the issue is unresolved. If the issue is unresolved, the email should explain why and also explain the cause of delay.&lt;br /&gt;
&lt;br /&gt;
=== Handling new USER creation ===&lt;br /&gt;
====Get Approval====&lt;br /&gt;
Support staff should create new USERS for clients ONLY when requested by an authorised person. If the authorised person is unavailable, for example on leave, then get approval from someone who is in the backup mail list.&lt;br /&gt;
&lt;br /&gt;
Ideally only people who are users in NEOSYS and have authority over some task can grant or request authority to do that task to other NEOSYS users. However, if this is not the case and the requesting person has some seniority in the company (but is either not a NEOSYS user, or is not actually currently authorised to perform the task themselves) you may decide that it is not wise to proceed without some confirmation. In such a case be very respectful of their position while rejecting any request perhaps stating something like:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Currently we have instructions to take instructions concerning authorisation only from xxx, yyy and zzz. Please could this request be confirmed by one of them?&amp;quot; Rewrite this judiciously to suit the occasion.&lt;br /&gt;
&lt;br /&gt;
Consider that different sections of a company may have different chain of commands. For example one should not assume that a Sales Director has authority over Finance unless there is firm evidence. If there is any doubt consult NEOSYS Support Managers.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT directly contact the authorised person asking for approval/confirmation because that is client work.&lt;br /&gt;
&lt;br /&gt;
Clients should not be discouraged to create new users. Clients are billed as per user usage which is reviewed periodically. Over time old USERS are replaced with new USERS.&lt;br /&gt;
&lt;br /&gt;
====Creating User====&lt;br /&gt;
Preliminary:&lt;br /&gt;
&lt;br /&gt;
New user requirements :-&lt;br /&gt;
*Full name                                      - (like John Smith and not generic name like Copy Writer)&lt;br /&gt;
*Email address                                  - (like johnsmith@example.com and not generic address like copywriter@example.com)&lt;br /&gt;
*Group level / User with similar authorisation&lt;br /&gt;
&lt;br /&gt;
The USER code is the first name of a user. &lt;br /&gt;
&lt;br /&gt;
1. Support MUST only create NEOSYS accounts with real names and email addresses WITH NO EXCEPTIONS unless agreed by NEOSYS management.&lt;br /&gt;
&lt;br /&gt;
It is acceptable, although inefficient, for one person to have multiple user accounts either concurrently or sequentially, but the opposite MUST never occur.&lt;br /&gt;
One NEOSYS user code/account MUST never have more than one real person associated with it neither concurrently nor sequentially.&lt;br /&gt;
In order to maintain efficiency, various fleeting temptations to cut corners and break the ONE TO ONE link between NEOSYS users accounts and real people MUST be resisted.&lt;br /&gt;
These principle remain mandatory even when pressure is exerted by people, even senior management, who may not appreciate the issues involved.&lt;br /&gt;
The fact that NEOSYS support does not know for certain who is the real person using an NEOSYS account does not change these principles.&lt;br /&gt;
&lt;br /&gt;
2. Support MUST not create GENERIC user codes like AUDITOR or MANAGEMENT (even to grant special access to such users like read-only access) as this breaks all security rules.&lt;br /&gt;
Do not re-use user codes. Always create NEW user codes for NEW users.&lt;br /&gt;
&lt;br /&gt;
3. Support MUST not create or modify any usable NEOSYS account that is or has been used by more than one user.&lt;br /&gt;
&lt;br /&gt;
4. Support is responsible to maintain the system in good working order and not knowing who is really doing the work in the system can make support harder.&lt;br /&gt;
&lt;br /&gt;
5. Support MUST not collude with clients to by-pass the principles. If asked to do so Support MUST refuse to create or update such accounts.&lt;br /&gt;
&lt;br /&gt;
6. Do not hand over user codes from one person to another in a mistaken attempt to represent a hand over to a replacement. EXPIRE THE OLD USER CODE/ACCOUNT AND CREATE A NEW USER CODE/ACCOUNT.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
7. Support team MUST NOT discuss billings with clients unless authorised to do so. Also see [[Procedures#Discussing_Pricing|Discussing Pricing]] &lt;br /&gt;
&lt;br /&gt;
8. Support team MUST NOT proceed with creating new users until the group level or existing user with similar authorisation has been clearly provided by the client, otherwise the new user may end up with more than the required authorisation, which can lead to problems in future.&lt;br /&gt;
&lt;br /&gt;
====After Creating New User====&lt;br /&gt;
&lt;br /&gt;
Support MUST send an email to the person who requested the creation of new user, confirming that the new user has been created along with a screenshot of that part of the authorisation table where the new user was created so that the new user&#039;s user code and email id is visible. This is done so that in case there is some error in the user code or email id, it is easily visible in the screenshot and also so that the person who requested the creation of the new user is informed about the user code of the new user.&lt;br /&gt;
&lt;br /&gt;
=== Handling letterhead change requests ===&lt;br /&gt;
&lt;br /&gt;
Support staff should reject any requests that require the letterhead to be setup on the TESTING dataset before it is setup in the MAIN dataset.This is to reduce double work for support staff and to ensure that clients have a clear understanding of their requirements and also send the correct logo image.&lt;br /&gt;
The MAIN dataset can be copied to the TEST dataset for any kind of testing.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Configuring_Letterhead#Changing_the_letterhead_for_printed_documents How to change letterhead]&lt;br /&gt;
&lt;br /&gt;
=== Handling error messages ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Before Attempting to resolve client issues, please ensure that we have secure access to the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
#The very first step is understanding client problem. Ask questions to the client until you CLEARLY understand the problem.&lt;br /&gt;
#If the error is familiar and does not require a screenshot, resolve the problem immediately. &lt;br /&gt;
#If the error is unfamiliar and/or requires a screenshot and the user has not sent a screenshot, IMMEDIATELY ask the user to send a screenshot of the problem, along with the options used (basically you need to know HOW to replicate the error and the screenshot MUST show WHAT the error is).&lt;br /&gt;
#If the user says &amp;quot;nothing happens, so no screenshot of the error&amp;quot;, then IMMEDIATELY request for screenshots again with the exact steps to reproduce the problem using mouse and keyboard.&lt;br /&gt;
#Support team MUST NOT provide support without a screenshot, otherwise the client will not pay attention to support team in future and ignore requests for screenshots.&lt;br /&gt;
#Upon receipt of the error and steps to reproduce the error, follow the steps and reproduce the error. Also refer to [[Procedures#Addressing_Browser_related_issues|Addressing Browser related issues]]  &lt;br /&gt;
#If the issue is unknown or you don’t understand it clearly, with the users acknowledgement use remote support to gain access to the users desktop to view how to replicate the error. &lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
====Understanding Internal error messages====&lt;br /&gt;
&lt;br /&gt;
Internal errors messages appear in red on screen and an email which is sent to support with more details. (Example below)&lt;br /&gt;
&lt;br /&gt;
[[image:Rawformdatapng.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;ERROR NO:&amp;quot; line is comprised of the error number (B16), the program (MARGIN_BASE) and the line number (1). Sometimes the line number is wrong, refer to section &amp;quot;Misleading line numbers in error messages&amp;quot; below for more info.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;STACK:&amp;quot; line lists the &amp;quot;parent&amp;quot; calling programs &amp;quot;SYSMSG,LISTEN&amp;quot; used to trace how and where the error originates.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;DATA:&amp;quot; is a string of characters that is used to recreate the options used by the client in order to replicate the error message. See how to [[Troubleshooting_NEOSYS_Generally#Replicate_options_used_.26_error_using_sysmsg_Data: | replicate the error with the options used, using internal error email]]&lt;br /&gt;
&lt;br /&gt;
==== Misleading line numbers in error messages ====&lt;br /&gt;
&lt;br /&gt;
Many small NEOSYS utility programs are compiled to run faster than usual programs and will not report the correct line on errors like Variable Not Assigned.&lt;br /&gt;
&lt;br /&gt;
To get the actual line number, compile as usual. ie without the (CL) options mentioned below, and regenerate the error.&lt;br /&gt;
&lt;br /&gt;
Note that most of these programs should have a source line &amp;quot;linemark&amp;quot; or &amp;quot;*linemark&amp;quot; in them somewhere near the top. When single stepping in the debugger, the program will break on this line and this line alone.&lt;br /&gt;
&lt;br /&gt;
To compile a GBP program DATE for speed use something like the following:&lt;br /&gt;
&lt;br /&gt;
 COMPILE GBP DATE (CL)&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;L&amp;quot; means compile without line numbers. This makes them run faster, which is important for utility programs that are called extremely frequently eg for date or number input/output conversion.&lt;br /&gt;
*&amp;quot;C&amp;quot; means do not generate a symbol table in GBP $GETPERIOD. It makes no difference whether you do or do not.&lt;br /&gt;
&lt;br /&gt;
=== Addressing Browser related issues ===&lt;br /&gt;
&lt;br /&gt;
When resolving random browsing issues that seem to be on one user computer only, support MUST send the below email asking the user to check if the same issue occurs on other user computers. Rapidly convincing the user that the problem is only on their computer gains their willingness to sort the problem out at their end, using IT people if necessary and available.&lt;br /&gt;
&lt;br /&gt;
Handling random issues that appear to be on one computer is very very common and it is important to deal with it effectively, not requiring stages of &amp;quot;denial&amp;quot; by the users until they accept something has to be done at their end, and not by NEOSYS. Speeding up this process gains the confidence and appreciation of the users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Hi xxxx&lt;br /&gt;
&lt;br /&gt;
Is this error happening only on your computer? If that is the case, it may be due to an issue in your browser cache. Please clear your browser cache with assistance from your IT team if required. Then restart the browser and try again.&lt;br /&gt;
&lt;br /&gt;
If clearing browser cache does not fix the issue, I recommend a full browser reset to ensure that everything works fine.&lt;br /&gt;
&lt;br /&gt;
Follow these instructions for clearing browser cache and resetting browser:&lt;br /&gt;
http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers&lt;br /&gt;
&lt;br /&gt;
Please let us know if you face the issue again.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Handling_Browser_related_issues_in_NEOSYS| Handling Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
=== Addressing Technical support emails ===&lt;br /&gt;
&lt;br /&gt;
In the case of technical support issues, address emails to the IT person and cc the complete group of recipients of backup emails and other NEOSYS alert emails. This allows both NEOSYS and client IT staff to take credit for resolving issues that NEOSYS raises instead of working in the background unacknowledged.&lt;br /&gt;
&lt;br /&gt;
Technical support issues include backup failure, server failure, missing alert email, server connectivity issues and port forwarding issues and many other issues.&lt;br /&gt;
&lt;br /&gt;
For technical issues like browser configuration, clear cache, etc. support must send the user a link to the appropriate wiki article to help the user fix the problem. In some cases the user may be helpless and unable to follow the steps to fix the problem. In such cases, support MUST NOT waste time trying to help the user fix the problem, instead support MUST ask the user to get help from the IT person.&lt;br /&gt;
&lt;br /&gt;
=== Acceptable report format when handling issues in NEOSYS reports ===&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support must only resolve issues in NEOSYS output first. This is because only NEOSYS outputs can be trusted and user versions in Excel or PDF could be copied wrongly or edited by the user.&lt;br /&gt;
&lt;br /&gt;
In case users send reports in excel or other formats, get them to send the original NEOSYS HTML report as an attachment or copy-pasted in email.&lt;br /&gt;
&lt;br /&gt;
=== Handling requests to create new charts or control accounts===&lt;br /&gt;
&lt;br /&gt;
[http://userwiki.neosys.com/index.php/Setting_up_and_Configuring_NEOSYS_Finance_System#Creating_New_Charts_or_Control_Accounts Refer here]&lt;br /&gt;
&lt;br /&gt;
=== Handling issues with totals on reports ===&lt;br /&gt;
&lt;br /&gt;
If a client has a problem with any total output by NEOSYS software then NEOSYS support will advise them which other NEOSYS report or reports provide a complete breakdown of the total (if necessary, to individual transactions) and ask the client to locate any offending transactions themselves.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff will handle any issues where the total on the breakdown report does not add up to the total on the summary report.&lt;br /&gt;
&lt;br /&gt;
Reconciling totals can be hard if there are many transactions involved. Regardless of how hard it may be, reconciliation is an operational task for users not for support staff since NEOSYS support staff will not get involved in understanding client transactions or data.&lt;br /&gt;
&lt;br /&gt;
==== Trial Balance and Financial Statements ====&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff do not have to prove or trace any figures in NEOSYS Trial Balance Reports or any financial reports. If a figure is stated to be wrong by the user, then NEOSYS support staff should ask for proof or say NEOSYS is confident that the figures are correct unless proved otherwise. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff should point out reports in NEOSYS which will support the figures in question but not actually run the reports. Support staff can suggest the users to refer to detailed ledger accounts to prove balances.&lt;br /&gt;
&lt;br /&gt;
== Using VPN to enable secure access from outside the office ==&lt;br /&gt;
There are two ways in which a user can use VPN:&lt;br /&gt;
*User connects to the their office router and makes the PC act like it is on the office LAN.&lt;br /&gt;
*User connects to a VPN service that provides a static IP number and can therefore be authorised by NEOSYS to login.&lt;br /&gt;
&lt;br /&gt;
If the client intends to use VPN to connect to their office router and make the PC act like it is on the office LAN, then it depends on what VPN protocols the client&#039;s office router supports.&lt;br /&gt;
&lt;br /&gt;
The alternative is to use a paid VPN service that provides a static IP number. Getting a dynamic IP number on VPN is very cheap and there are many suppliers, but getting a static IP number on VPN services seems to be more expensive.&lt;br /&gt;
&lt;br /&gt;
Internally in NEOSYS we use PFSENSE routers which support OPENVPN which is extremely flexible.&lt;br /&gt;
&lt;br /&gt;
==Handling issues with Office PBX phones==&lt;br /&gt;
&lt;br /&gt;
Support should check their respective Office PBX phones every morning to find out if the phone is up and working. In case Support finds any issue with their phone, immediately fix it so that clients do not lose contact with the  Support team via phone. Next send an email to Support inbox mentioning the fault, cause and solution for records/future prevention.&lt;br /&gt;
&lt;br /&gt;
== Running undocumented commands on Maintenance mode==&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST NOT run undocumented commands on ***LIVE*** database. Some commands are not documented for a reason, it could be because the commands might give an undesired output or because there is no clarity on what else could be effected by the command.&lt;br /&gt;
&lt;br /&gt;
Even if the command is tested in TESTING database and the output looks okay, support staff MUST get the programmer&#039;s approval before going ahead and running the command in LIVE database as there is no guaranty that the command is properly programmed and will do no damage.&lt;br /&gt;
&lt;br /&gt;
==Configuring Browsers to show Javascript errors in NEOSYS==&lt;br /&gt;
NEOSYS Support MUST ensure the following Settings for browsers because if NEOSYS generates any javascript error message, the same would appear in the bottom left corner of a window, which in turn helps the programmer to fix the error. This must be done after every Factory Reset.&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer===&lt;br /&gt;
Tools &amp;gt; Internet Options &amp;gt; Advanced &amp;gt; Browsing - the items Disable script debugging (Internet Explorer) and Disable script debugging (Other) are &#039;&#039;&#039;UNTICKED&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===Chrome=== &lt;br /&gt;
Chrome Menu &amp;gt; More Tools &amp;gt; Extensions &amp;gt; Get More Extensions, search for &#039;&#039;&#039;Javascript Errors Notifier&#039;&#039;&#039;. Add the extension to Chrome.&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome1.png]]&lt;br /&gt;
===Firefox===&lt;br /&gt;
Firebug add-on is used to NOTIFY about script errors because we have no other method to get any warning on screen but you should use the main firefox developer tools to investigate any errors as firebug is essentially replaced by built in developer tools. &lt;br /&gt;
&lt;br /&gt;
For developer tools, go to Tools &amp;gt; Web Console&lt;br /&gt;
&lt;br /&gt;
To enable notifications for script errors, download the add-on Firebug from [https://addons.mozilla.org/en-US/firefox/addon/firebug/ here]. When a Javascript error is encountered, the firebug icon will report the number of errors.&lt;br /&gt;
&lt;br /&gt;
Set your firebug as per the second screen shot and select &amp;quot;Enable All Panels&amp;quot; as well, the tick will not appear like the other options but the option will get selected. If you miss out on any one of these steps, you will not be able to capture script errors.&lt;br /&gt;
&lt;br /&gt;
[[file:firebug1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Firebug.png]]&lt;br /&gt;
&lt;br /&gt;
==Handling Browser related issues in NEOSYS==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Technical_/_Hardware_requirements#NEOSYS_Software_Browser_and_OS_Requirements NEOSYS browser requirements]&lt;br /&gt;
&lt;br /&gt;
Clients frequently ask [http://userwiki.neosys.com/index.php/General_FAQ#Why_doesnt_NEOSYS_support_my_XYZ_browser.3F Why NEOSYS doesn&#039;t support other browsers] &lt;br /&gt;
&lt;br /&gt;
To avoid browser errors, all new users must follow the steps given in [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#Getting_started_with_NEOSYS Getting started with NEOSYS] before logging in to NEOSYS for the first time.&lt;br /&gt;
&lt;br /&gt;
To troubleshoot browser related errors see [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers Troubleshooting Web Browsers]&lt;br /&gt;
&lt;br /&gt;
Users must clear browser cache after every NEOSYS Upgrade to avoid errors. See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS#Sample_email_to_be_sent_to_clients_who_face_issues_due_to_failure_in_clearing_browser_cache Sample email to clients who face issues due to failure in clearing browser cache]&lt;br /&gt;
&lt;br /&gt;
Pop-up blockers and any 3rd party toolbars must be deactivated/switched off or else certain pages and alert messages while using NEOSYS do not appear as a result of blocking from either the pop-up blocker or toolbars with built-in pop-up blockers. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support must ask users to Reset browser (See [http://userwiki.neosys.com/index.php/Reset_Browser Reset browser]) if they notice any user browsers which have pop-up blockers or 3rd party toolbars installed.&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Addressing_Browser_related_issues| Addressing Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
== Handling NEOSYS Upgrade==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS Upgrading NEOSYS]&lt;br /&gt;
&lt;br /&gt;
==Handling auto-reply emails like Out of Office etc.==&lt;br /&gt;
&lt;br /&gt;
From 28th May 2017 version, emails sent out by the NEOSYS system now contain headers that in effect request recipient email systems not to auto-reply for things like Out of Office. This is to reduce unnecessary chatter by silencing unnecessary automatic replies. There is no guarantee that recipient email systems will comply. The headers added are:&lt;br /&gt;
*X-Auto-Response-Suppress: RN, NRN, OOF&lt;br /&gt;
*Precedence: bulk&lt;br /&gt;
&lt;br /&gt;
Support team should notify SB of any auto-responses that come despite their installation being patched.&lt;br /&gt;
&lt;br /&gt;
In NEOSYS versions after 10th Jun 2017, emails sent by NEOSYS from the NEOSYS Help menu, i.e. manually triggered emails, do NOT indicate that OOF replies are not wanted, since if you are sending emails to people using NEOSYS, you will want to know if they are OOF.&lt;br /&gt;
&lt;br /&gt;
== Using Support Tools ==&lt;br /&gt;
=== Website Live Support ===&lt;br /&gt;
www.neosys.com is equipped with a Live Support software and clients can visit the website, click on this link and chat with any of our support staff, without the need for any installation. The client has to fill in their name and enter their questions to connect to an available support personnel. During non-working hours, the Live Support icon on the website automatically displays &amp;quot;offline&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support personnel who are authorised to provide such support, need to login to Live helper chat in Firefox using the link given below:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/&lt;br /&gt;
&lt;br /&gt;
Support personnel should enter the account details as provided by their Manager.&lt;br /&gt;
&lt;br /&gt;
Enable notifications for Live helper chat so that whenever there is a visitor trying to contact Support team, the Support personnel will get the notifications on his screen. &lt;br /&gt;
&lt;br /&gt;
Set the Live helper chat login page as your home page in Firefox and this page must be kept open for the whole duration of working hours. &lt;br /&gt;
&lt;br /&gt;
Support must always be alert and immediately reply to messages from visitors.&lt;br /&gt;
&lt;br /&gt;
Use the link below to enable notifications:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/chat/listchatconfig&lt;br /&gt;
&lt;br /&gt;
After setting up Live helper chat if you sign in to a new profile in Firefox, you might have to re enable the notifications after your Firefox is synced to the new profile.&lt;br /&gt;
&lt;br /&gt;
=== Teamviewer ===&lt;br /&gt;
Since Teamviewer allows no restriction on access once a fixed pass is installed, Support must not install fixed pass on teamviewer however convenient it might be.&lt;br /&gt;
&lt;br /&gt;
RULE: NO FIXED PASS TO BE INSTALLED ON TEAMVIEWER IN ANY NEOSYS OR NEOSYS CLIENT COMPUTER&lt;br /&gt;
&lt;br /&gt;
Running teamviewer live from a web link is fine because it does not allow installation of a permanent password&lt;br /&gt;
&lt;br /&gt;
For certain tasks that require temporary install of Teamviewer on the client servers (e.g. upgrading Cygwin remotely), use Teamviewer 7 on the server as well as Support staff computer. Contact NEOSYS IT for commercial license of Teamviewer 7. Teamviewer MUST be uninstalled after usage, otherwise it creates an additional unnecessary security risk.&lt;br /&gt;
&lt;br /&gt;
To support client users who use the latest version of Teamviewer, support staff must also install the latest Teamviewer version available alongside Teamviewer 7.&lt;br /&gt;
&lt;br /&gt;
== Documenting Processes in Wiki ==&lt;br /&gt;
NEOSYS Support staff must be in continual learning mode. This is mandatory for support staff and is not an option. Support must read, learn and understand everything in the support emails and ask questions if they don&#039;t understand. This understanding must be transferred into wiki in the form of new articles and improvements to existing articles.&lt;br /&gt;
&lt;br /&gt;
For all articles related to formatting and editing in Wiki, see [http://itwiki.neosys.com/index.php/Documenting_NEOSYS_systems Documenting NEOSYS systems]&lt;br /&gt;
&lt;br /&gt;
===Avoiding duplication of text in wiki===&lt;br /&gt;
&lt;br /&gt;
Duplication of text in wiki is to be avoided almost at any cost. Duplication has the problem that when one copy is changed or improved in future then it is highly likely the editor will fail to update the other copy or copies and wiki will over time become an inconsistent mess.&lt;br /&gt;
&lt;br /&gt;
There are several ways to avoid duplication:&lt;br /&gt;
&lt;br /&gt;
#Two or more procedures which have significant areas of duplication can be rewritten as a single procedure with alternatives in the middle of the procedure&lt;br /&gt;
#Wiki Templates- Templates reproduce the same text in all places and editing one place edits all places. See [[How to create templates in wiki]]&lt;br /&gt;
#Wiki links- Only put the text in one place and put links to that in all the other places that it is appropriate.&lt;br /&gt;
#Place a note in all copies something to the effect that &amp;quot;This is similar to x, y and z&amp;quot;. This alerts any future editor of all other places in wiki that might also have to be updated.&lt;br /&gt;
&lt;br /&gt;
Future modifications in one place may or may not be appropriate to other places. The editor must decide whether to change one or all places&lt;br /&gt;
&lt;br /&gt;
===Highlighting information in wiki===&lt;br /&gt;
&lt;br /&gt;
To highlight particular instructions or info in wiki do NOT invent new styles which are not the way the rest of wiki is done. Instead, follow the USUAL STYLE or open a DISCUSSION with any recommendations you have BEFORE USING THEM.&lt;br /&gt;
&lt;br /&gt;
Instead of using various kinds of highlighting styles like bolding and words like &amp;quot;Note:&amp;quot;, use the following words IN CAPITALS especially the word MUST.&lt;br /&gt;
&lt;br /&gt;
The use of the following words IN CAPITALS indicates that you are using them in a special way with formally defined meaning as explained below. Use of the words in lower case indicates that you are using the word in an ordinary commonsense meaning.&lt;br /&gt;
&lt;br /&gt;
*MAY - means optional&lt;br /&gt;
*SHOULD - means recommended and you need GOOD reason (not just any weak excuse) to not follow to follow this recommendation&lt;br /&gt;
*MUST - mandatory&lt;br /&gt;
&lt;br /&gt;
Only in the rare cases where the consequences of doing or not doing something are irreversible or take a lot of work to reverse then you can use your own additional highlighting methods, eg ALL CAPS, stars, color red etc.&lt;br /&gt;
&lt;br /&gt;
==== Explain WHY ====&lt;br /&gt;
&lt;br /&gt;
Any sentence which uses the word &amp;quot;MUST&amp;quot; in capitals, MUST be followed by a SPECIFIC REASON explaining exactly why is the instruction is mandatory; the reason MUST not be vague and non-specific meaning no more than &amp;quot;or bad things will happen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules otherwise it will cause problems in future.&lt;br /&gt;
&lt;br /&gt;
 CORRECT way: You MUST also delete ads if deleting schedules otherwise the deleted schedules&#039; ads will still show in all media-diary like reports and screens&lt;br /&gt;
&lt;br /&gt;
The Wrong way above gives a general reason &amp;quot;it will cause problems in future&amp;quot; which is vague and a reader may even go ahead and ignore &amp;quot;MUST&amp;quot; because there is no objective or proper side effect mentioned for not following the MUST statement. Basically he doesn&#039;t understand the point behind following a certain rule. &lt;br /&gt;
&lt;br /&gt;
Whereas the Correct way gives a SPECIFIC reason for &amp;quot;deleting ads while deleting schedules&amp;quot;, so reader will exactly know the trouble that will be caused if ads are not deleted. Therefore &amp;quot;SPECIFIC REASON&amp;quot; behind using the word MUST must be to the point and very informative.&lt;br /&gt;
&lt;br /&gt;
==== Why explain WHY ====&lt;br /&gt;
The information contained in the WHY phrase is often &#039;&#039;&#039;extremely informative&#039;&#039;&#039; to the reader about things that you may otherwise not have considered saying.&lt;br /&gt;
&lt;br /&gt;
The most valuable information is usually contained in the &amp;quot;WHY&amp;quot; of something. There is an apocryphal story of a company where managers could be fired if they gave instructions to their staff without providing explanation. In almost all cases it is better for the efficiency of a team of people that any instructions they follow contain the &amp;quot;WHY&amp;quot; of something. Only in few cases should staff be expected to follow instructions without being well or fully informed.&lt;br /&gt;
&lt;br /&gt;
== Email Retention Policy ==&lt;br /&gt;
&lt;br /&gt;
=== Generally ===&lt;br /&gt;
&lt;br /&gt;
Emails are retained permanently to allow old issues to be discovered in email searches.&lt;br /&gt;
&lt;br /&gt;
=== Account: backups@neosys.com ===&lt;br /&gt;
&lt;br /&gt;
Only the last 365 days of emails to backups@neosys.com are kept in general to reduce the burden on servers and clients due to the heavy number of emails.&lt;br /&gt;
&lt;br /&gt;
For the backups/neosys folder, only 31 days is kept due to the very high numbers of emails ~250/day.&lt;br /&gt;
&lt;br /&gt;
Deletions are configured in and done by a thunderbird client in NEOSYS IT so may not be continuous.&lt;br /&gt;
&lt;br /&gt;
== Use of personal email addresses by NEOSYS support staff ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff MUST NOT use any personal email addresses for NEOSYS business. &lt;br /&gt;
&lt;br /&gt;
The xxxx.neosys@gmail.com addresses that are created by support staff for themselves on joining are also considered personal email addresses and must not be used for NEOSYS business. These email addresses might be linked to NEOSYS wiki accounts but that doesn&#039;t matter because wiki is not confidential.&lt;br /&gt;
&lt;br /&gt;
== Accessing NEOSYS accounts on personal devices ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff MUST NOT install NEOSYS accounts on skype/dropbox/gmail (or any other external tool) on their personal devices without written permission from NEOSYS management&lt;br /&gt;
&lt;br /&gt;
== Support Staff work-in-progress documents/files ==&lt;br /&gt;
&lt;br /&gt;
Support Staff must not save working files hidden on their computer. Work that is not visible is not work .&lt;br /&gt;
Support work should not be done privately and should be shared to all.&lt;br /&gt;
&lt;br /&gt;
ALL personal working files however trivial MUST be stored in Dropbox and MUST NOT be stored anywhere in personal computer (My Documents/Desktop etc.)&lt;br /&gt;
&lt;br /&gt;
The personal encrypted pass file MUST be stored somewhere in personal folder under SB NEOSYS staff in Dropbox. This is because if there is a loss of OS/Computer, it should not lead to loss of access as all the passwords saved in the file will be lost.&lt;br /&gt;
&lt;br /&gt;
== Handling CLIENT/NEOSYS Servers ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff must exercise extreme caution when working on CLIENT and NEOSYS servers. Do not risk making changes without due care and attention to the fact that the consequences of errors can be serious on working production servers.&lt;br /&gt;
&lt;br /&gt;
=== Handling Javascript Files in NEOSYS ===&lt;br /&gt;
&lt;br /&gt;
All the files in NEOSYS installation folder with .JS and .JSE extension are the executable javascript files which startup NEOSYS processes (in a usual DOS window). Their default program is &#039;Microsoft Windows Based Script Host&#039; (wscript.exe). If a JavaScript file is opened using a notepad, the default program may change to notepad resulting in all NEOSYS processes to open up in a notepad.&lt;br /&gt;
&lt;br /&gt;
Hence be very CAREFUL when accessing a .JS and .JSE file and double check that the default program remains wscript.exe. Refer to [[Troubleshooting_NEOSYS_Generally#Fixing_wrong_default_program_assigned_to_open_a_file_type|Fixing wrong default program assigned to open a file type]] in case this issue comes up.&lt;br /&gt;
&lt;br /&gt;
== Handling &amp;quot;List of Open Ports&amp;quot; reports ==&lt;br /&gt;
&lt;br /&gt;
This email comes to NEOSYS support team once a day showing only those client&#039;s servers which appear to have changed what TCP ports are open to the internet since yesterday. It will also come once a week showing all clients servers open ports.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support team should work patiently with client IT staff, over time if necessary, to close all ports that are not absolutely mandatory to be open.&lt;br /&gt;
&lt;br /&gt;
Clients with highly skilled IT staff may have a variety of ports open to various non-NEOSYS servers inside their organisation. In this case, NEOSYS plays little or no role other than getting their confirmation of exactly what ports are acceptable. Any new ports that appear over time should be handled in the same way.&lt;br /&gt;
&lt;br /&gt;
For clients without such staff, NEOSYS is their only real line of defence and since NEOSYS requested opening some ports, we should get all other ports closed by patiently following up until action is taken. Involving management may be the only way to get IT to act.&lt;br /&gt;
&lt;br /&gt;
In particular, port 80 and 443 controlling internal or external routers should be closed. It is NOT acceptable except in HIGH IT EXPERTISE environments that critical routers should be exposed to the internet and they MUST NOT be accessible from the internet because routers that do not have their software updated can be hacked using known defects. Even updated routers can be hacked. Making it easy for client IT staff to access the router configuration from outside is NOT a good enough excuse to break this rule. Professional IT does not allow access to critical routers from the internet.&lt;br /&gt;
&lt;br /&gt;
Likewise, any port 80 (unencrypted web access) and port 3389 (RDP remote desktop) open to the NEOSYS server MUST be closed otherwise logins can be monitored and there is no way to guarantee server security.&lt;br /&gt;
&lt;br /&gt;
Port 23 (Telnet) is an insecure port because it is unencrypted and should never be open for usage. This is standard practice and well known by any network professional. Since the port is unencrypted, attackers can listen in, watch for credentials, inject commands via man-in-the-middle attacks and ultimately perform Remote Code Executions (RCE).&lt;br /&gt;
&lt;br /&gt;
If a port is definitely required and properly approved to be open by client IT support, please let NEOSYS IT (SB) know and it will be put in the &amp;quot;Authorised&amp;quot; column so that ports in the &amp;quot;Questionable&amp;quot; column are all pending action.&lt;br /&gt;
&lt;br /&gt;
The report does not attempt to detect UDP ports since UDP ports can receive information from the internet without responding in any way so there is no way to detect them reliably.&lt;br /&gt;
&lt;br /&gt;
Green color shows ports that have opened since the last report run. Open ports can sometimes not be detected accurately so a port may appear to disappear in one report and reappear in the next report.&lt;br /&gt;
&lt;br /&gt;
=== Why should HTTP port 80 not be open on my router? ===&lt;br /&gt;
&lt;br /&gt;
It is not advisable to expose any HTTP server for any private service on your computer network or router because HTTP is unencrypted and this means that all information regarding that service, including passwords, can be observed by any malware on your LAN and internet connection. This information can then be used to install horrible software on your internal PCs.&lt;br /&gt;
&lt;br /&gt;
What to do?&lt;br /&gt;
&lt;br /&gt;
Use https for any internal services - and advisably on a non-standard port, not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
For example, NEOSYS service is exposed as HTTPS (not HTTP) usually on port 4430 - not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
Commercial hacking is getting really common with things like FIREBALL and CRYPTOLOCKER causing a lot of damage.&lt;br /&gt;
&lt;br /&gt;
It is advisable to take basic precautions pro-actively before any attack exposes weaknesses.&lt;br /&gt;
&lt;br /&gt;
== Handling Nagios Client Monitoring system ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff on duty MUST follow the procedures outlined below in case the Firefox &amp;quot;imoin&amp;quot; add-on shows critical or warning messages for any service. Failure to schedule appropriate downtime will lead to REDUNDANT EMAIL ALERTS from Nagios every hour.&lt;br /&gt;
&lt;br /&gt;
Any alert on the Firefox &amp;quot;imoin&amp;quot; add-on means that there is an issue that has not been attended to properly, and &amp;quot;attended to&amp;quot; does not always mean solved. Support staff MUST solve the problem immediately if possible.&lt;br /&gt;
&lt;br /&gt;
If it is not possible to solve the problem immediately, then downtime/acknowledge the service and add a comment on the Nagios alert, explaining the problem briefly. &lt;br /&gt;
&lt;br /&gt;
Support should check Nagios frequently during the day to look for any new alerts so that issues are fixed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
* Nagios is required to be checked first thing in the morning and any critical or warning messages need to be dealt with to resolve the same at the earliest.&lt;br /&gt;
* Some of the messages could be related to backup failures and the usual procedure as stated in Handling failure and warning messages on nightly backup alerts needs to be followed. In case the backup issue isn&#039;t resolved by 9:30 am, the Nagios service needs to be downtimed with an appropriate comment for a minimum of 2 hours and maximum until 1 am next day if the issue cannot be solved.&lt;br /&gt;
* In case of &amp;quot;Backup not changed&amp;quot; warning status which occurs if the client has not interchanged the USB before 12 noon on that day, no action is required from the support staff and a downtime with a comment like &amp;quot;Backup media not changed - Emailed client&amp;quot; needs to be scheduled until 1 am next day.&lt;br /&gt;
* In case any HTTPS, SSH, PING service or Host is down, immediate action is required and the relevant IT people at the client side needs to be contacted to get this resolved. A downtime of 2 hours with a comment like &amp;quot;Service/host down - Emailed client&amp;quot; is required to be scheduled with further intervals of 2 hours in case this is not resolved. Support staff shouldn&#039;t schedule downtime till 1 am next day, just to get rid of the alerts for the day. Proactive follow up with the client is required to get this resolved before the business day - more so, if there is a weekend ahead.&lt;br /&gt;
* In case the HTTPS, SSH, PING service or Host goes down during the day, a grace period of 10 minutes is given before the issue is reported to the client IT, in case there is any temporary internet connection issue at the client or along the internet route.&lt;br /&gt;
* In case the HTTPS, SSH PING service or Host is down for more than 1 day, client IT should acknowledge the problem and give NEOSYS support staff an approximate time frame before which the issue will be resolved. Set an appropriate downtime with a descriptive comment for such events.&lt;br /&gt;
* In case Host is down for more than 2 days and there is no progress with the fix from client IT, the client management should be notified about the seriousness of not having access to server and their acknowledgement is mandatory.&lt;br /&gt;
&lt;br /&gt;
== Handling lack of remote access to NEOSYS server located in client’s premises ==&lt;br /&gt;
&lt;br /&gt;
If access to the NEOSYS server is lost then we must determine the root cause by: &lt;br /&gt;
# Checking if the server is UP and running&lt;br /&gt;
# If yes, please check internet connectivity on the server&lt;br /&gt;
# If there is connectivity, please check the router for connectivity issues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
Please note that we have currently lost access to the NEOSYS server. The server seems to be down at the moment and it seems that &lt;br /&gt;
NEOSYS processes are not running on the server.&lt;br /&gt;
Kindly check if the server is UP and running. If yes, please check internet connectivity on the server.&lt;br /&gt;
Do keep us posted on the server status so we can test connectivity from our side as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== New Router (Port Forwarding) ==&lt;br /&gt;
&lt;br /&gt;
If you have changed your router then you may notice that external access to NEOSYS is unavailable. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to the NEOSYS Server as follows: &lt;br /&gt;
# Port 19580 &amp;gt; 19580 for SSH &lt;br /&gt;
# Port 4430 &amp;gt; 4430 for HTTPS&lt;br /&gt;
&lt;br /&gt;
You can see [http://portforward.com/ Set Up Port Forwarding] to learn how to configure your Router.&lt;br /&gt;
&lt;br /&gt;
To see how to test/ troubleshoot port forwarding settings, go to [[Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding|Troubleshooting Port Forwarding]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
You are requested to kindly setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to &lt;br /&gt;
the NEOSYS Server,i.e.  port 19580 for SSH and port 4430 for HTTPS.&lt;br /&gt;
&lt;br /&gt;
Once this is complete, kindly send me an email to confirm the same so that we could test connectivity from our end as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Creating and Handling passwords ==&lt;br /&gt;
=== Creating a password ===&lt;br /&gt;
Passwords are generated from a pass phrase and it is important to create a very difficult to guess pass phrase.&lt;br /&gt;
&lt;br /&gt;
Passwords made out of a pass phrase MUST be at least 10 characters since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts.&lt;br /&gt;
&lt;br /&gt;
For example, a good pass phrase would be: &#039;&#039;&#039;Today is a good day and it is the best time to go for a holiday&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The password for this would be &#039;&#039;&#039;Tiagd&amp;amp;iitbt2g4ah&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The important instructions for the above are:&lt;br /&gt;
#You have to take the first letter of each word and that makes your password (i.e. by using initials)&lt;br /&gt;
#Wherever any word starts with a capital, then you have to take first letter as a capital (eg. For Today you will take T)&lt;br /&gt;
#Replace &#039;&#039;&#039;and&#039;&#039;&#039; with &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;to&#039;&#039;&#039; with &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;for&#039;&#039;&#039; with &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Handling passwords ===&lt;br /&gt;
#Never send the actual password - always send the pass phrase&lt;br /&gt;
#Make sure that the password created out of the pass phrase is at least 10 characters long since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts&lt;br /&gt;
#Pass phrases are never to be sent by email, whatever the case maybe.&lt;br /&gt;
#Pass phrases can be sent by chat - however they have to be broken down in two parts and sent separately over two different messengers or if you are using Gtalk then use the &#039;off the record&#039; mode.&lt;br /&gt;
#Using SMS to send pass phrases is the best known way as of now.&lt;br /&gt;
#If you save the passwords on your system in an file then:&lt;br /&gt;
#*Ensure that you only store pass phrases in the excel file&lt;br /&gt;
#*Ensure that the excel file is encrypted with a master password&lt;br /&gt;
&lt;br /&gt;
== NEOSYS Maintenance Window ==&lt;br /&gt;
&lt;br /&gt;
The NEOSYS server is functional from 6am – 1am. There is a 5hr window gap for the system to perform updates &amp;amp; backups.&lt;br /&gt;
&lt;br /&gt;
The 5hr maintenance window:-&lt;br /&gt;
&lt;br /&gt;
1. At 1am – The server performs a data backup on a USB (for the respective clients) &amp;amp; once the backup has been completed, the system automatically generates an email addressed to the neosys staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
2. At 2:45am – The main data over writes the test data on the server.&lt;br /&gt;
&lt;br /&gt;
3. At 3:00am – The server by itself performs an update for Windows.&lt;br /&gt;
&lt;br /&gt;
4. At 4:00am – The server performs a backup to the headquarters for clients, and then automatically generates an email addressed to the NEOSYS staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
5. At 6:00am – The server starts up NEOSYS.&lt;br /&gt;
&lt;br /&gt;
== Using NEOSYS Terminology while communicating with Clients ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support must communicate in correct language to clients on finance issues in order to ensure that our records exactly represent reality. Conversely NEOSYS must not use other terminology because it can cause considerable confusion and poor quality results. In case client is new and still in training, use client terminology optionally as long as&lt;br /&gt;
#It is only an addition to NEOSYS standard terminology&lt;br /&gt;
#Only if clear that it is client terminology by putting in brackets like this &amp;quot;Sales Invoices (called PI by you)&amp;quot;, where &amp;quot;you&amp;quot; means the client you are talking to or you can put the client company name instead perhaps.&lt;br /&gt;
&lt;br /&gt;
The objective is over time to avoid having the support team to have to know the terminology of the client. NEOSYS support team cannot possibly know and remember it for each client therefore the client MUST over time learn and use NEOSYS terminology. The initial period is one of relearning and translation for the client not for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
Many users operating NEOSYS finance module do not know proper financial procedures and may not appreciate how doing something in a wrong or unusual way now may not be correctable in the future.&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff must follow NEOSYS procedures only. If NEOSYS procedures need to be updated then this must be agreed in advance and not AFTER the fact.&lt;br /&gt;
&lt;br /&gt;
== Amending/Reposting Journal Entries ==&lt;br /&gt;
In certain exceptional cases, amending/reposting of journal entries is allowed for only one day to enable clients to present reports in an alternative manner. &lt;br /&gt;
&lt;br /&gt;
It must be agreed with the client that reposting rights will be granted for only one day and NEOSYS Support will automatically remove it and check for CCB error thereafter.&lt;br /&gt;
&lt;br /&gt;
This would be subject to NEOSYS requiring a written LETTER OF APPROVAL duly signed and stamped by the highest management of the company.&lt;br /&gt;
&lt;br /&gt;
In case the client management decides to allow editing/reposting of journal entries, the following procedure is to be followed:&lt;br /&gt;
# Client must de-allocate vouchers which need to be amended&lt;br /&gt;
# NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
# Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;( While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
# Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
# *Print all ledgers for the whole year&lt;br /&gt;
# *Cross-check all balances&lt;br /&gt;
# Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
# Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
# Cross-check all balances for the current year.&lt;br /&gt;
# If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
== Removal of unauthorized third-party software on client servers ==&lt;br /&gt;
&lt;br /&gt;
Rule: Any third party software that is discovered by NEOSYS support staff on client servers that has been installed without the agreement of NEOSYS should be uninstalled immediately on discovery.&lt;br /&gt;
&lt;br /&gt;
However purposeful a software is, NEOSYS is contractually responsible for support and there are too many opportunities for poorly installed software to cause unpredictable damage to the NEOSYS database so NEOSYS has to have a clear and safe and simple policy to ensure the integrity of client data. Installing software without prior discussion with NEOSYS by itself indicates that insufficient care and consideration has been given to possible issues.&lt;br /&gt;
&lt;br /&gt;
Having unauthorized third party software on the server can possibly lead to a backup failure. For example, [[Backup_and_Restore#Error_Message:_.22LISTS_file_is_not_available.22|LISTS file not available]] error.&lt;br /&gt;
&lt;br /&gt;
Any software required by client IT for some purpose may only be installed after discussion and agreement from NEOSYS support staff concerning the configuration and operation of the software.&lt;br /&gt;
&lt;br /&gt;
The NEOSYS Software Licence and Support agreement requires that where NEOSYS software is installed on client servers that a dedicated server is provided and dedicated implies that no other software may be installed without the agreement of NEOSYS support.&lt;br /&gt;
&lt;br /&gt;
== Configuring tunnelier to autologin on opening tlp files ==&lt;br /&gt;
If you have many tunnelier tlp files in a directory and connect by opening the desired tlp file the, instead of opening the file and then clicking Login you can also right click the file and select Connect.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can configure tunnelier to login (connect) automatically by following the procedure mentioned below. (Even if you configure automatic login, you can still open and not login by right clicking and choosing Open)&lt;br /&gt;
&lt;br /&gt;
=== Windows 8 ===&lt;br /&gt;
&lt;br /&gt;
Cannot be done using standard Windows UI. Some download utilities can do it. TODO put a safe one in neosys.com/support&lt;br /&gt;
&lt;br /&gt;
=== Windows XP/Vista/7/2008 ===&lt;br /&gt;
&lt;br /&gt;
#Go to My Computer&lt;br /&gt;
#Click on Tools -&amp;gt; Folder Options &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on File Types&lt;br /&gt;
#*Select TLP (Bitvise Tunnelier Profile) [Type &amp;quot;TLP&amp;quot; to find it quickly]&lt;br /&gt;
#*Click on Advanced &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-2.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Connect and Click on Set Default &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; [[image:tunnauto-3.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== International v/s Indian English ==&lt;br /&gt;
&lt;br /&gt;
There are some words which have completely different meanings in International and Indian English. NEOSYS Staff should follow International English only. Below are the examples of few of those words:&lt;br /&gt;
&lt;br /&gt;
Word: &#039;&#039;&#039;Doubt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the English language word &amp;quot;doubt&amp;quot; means to distrust an alleged fact on the basis of a reason, depending on the strength of the reason which may be anything from factual to feeling e.g &amp;quot;I have no reason to doubt him&amp;quot;.&lt;br /&gt;
This usage is followed worldwide.&lt;br /&gt;
&lt;br /&gt;
Some people especially from Indian origin use &amp;quot;doubt&amp;quot; when they are unaware about a fact. e.g &amp;quot;I want to clear my doubts about this procedure&amp;quot;. This is incorrect. The word must be used when you do not agree on something on the basis of a reason and not when you do not have knowledge about it.&lt;br /&gt;
&lt;br /&gt;
==[[ New Employee Training Checklist]]==&lt;br /&gt;
&lt;br /&gt;
==[[ New Client Training Notes]]==&lt;br /&gt;
&lt;br /&gt;
==[[ General Office Procedures]]==&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3641</id>
		<title>Procedures</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Procedures&amp;diff=3641"/>
		<updated>2019-09-04T08:44:58Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Handling junk/spam email */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are procedures to be followed by Support Staff in respect to various technical matters in day to day operations of client issues.&lt;br /&gt;
&lt;br /&gt;
Once Support Staff have learnt how to follow these procedures &amp;amp; rules, you then start learning when and how to not follow them. Common sense trumps all rules! i.e. don&#039;t follow procedures and rules blindly all the time. Analyse the problem and solve it practically.&lt;br /&gt;
&lt;br /&gt;
BUT if you are doing something off-piste deliberately, then just add an appropriate comment about why you are.&lt;br /&gt;
&lt;br /&gt;
== Handling Clients with Overdue Invoice ==&lt;br /&gt;
In order to maintain good payment speed by clients NEOSYS needs to restrict support to clients that dont pay their bills on time, however the degree of restriction needs to depend on an intimate knowledge of the client which cannot be expected from all NEOSYS support staff. Therefore we will use a simple escalation policy as follows:&lt;br /&gt;
&lt;br /&gt;
=== Overdue Support List ===&lt;br /&gt;
NEOSYS SUPPORT MANAGERS WILL maintain an overdue list on a whiteboard visible to all support staff. Generally, clients will go on the list immediately when their invoice is overdue and come off only after satisfactory commitment to pay have been obtained.&lt;br /&gt;
&lt;br /&gt;
The latest overdue list email MUST always be starred until there are no clients left on the overdue list (apart from the permanently overdue clients). When a client is added to the overdue list, support must set up a filter to move client support emails to the overdue folder. When a client is removed from the overdue list, client emails must be moved back into the support inbox. This way support team will know that there are still clients on the overdue list and will not mistakenly provide support to those clients.&lt;br /&gt;
&lt;br /&gt;
[[image:FilterOverdue.jpg]]&lt;br /&gt;
&lt;br /&gt;
For the first week of each quarter of the year, normal support should be provided for server failures and backup failures (including hung processes as it could eventually lead to backup failures).&lt;br /&gt;
&lt;br /&gt;
For any other support requests from overdue clients, respond with the following letter (where XYZ is the overdue client):&lt;br /&gt;
&lt;br /&gt;
 Dear &amp;lt;user&amp;gt;,&lt;br /&gt;
 There is an issue with your company&#039;s account. We have requested our Accounts team for approval in order to provide support to you and other &amp;lt;XYZ&amp;gt; users.&lt;br /&gt;
&lt;br /&gt;
Support staff MUST then provide the required support to the overdue client only after 4 working hours. Support Staff need not actually contact the Accounts team for approval, although that is what is mentioned in the letter. This delay in support is to encourage clients to settle their payments on time.&lt;br /&gt;
&lt;br /&gt;
After the first week of each quarter of the year, respond to any support requests from overdue clients with the above letter but MUST NOT PROVIDE SUPPORT even after 4 working hours. Instead, Support Staff must refer the support request to NEOSYS Support Manager.&lt;br /&gt;
&lt;br /&gt;
Managers may well instruct support to provide support on a case by case basis even if clients are on the overdue list. Being on the overdue list does not necessarily indicate a major issue with accounts.&lt;br /&gt;
&lt;br /&gt;
=== Handling complaints about Licence restrictions ===&lt;br /&gt;
&lt;br /&gt;
Sometimes when a client delays payment of NEOSYS invoice, support places a licence restriction for the client. In such cases, users will not be able to create and save documents dated outside the licence period. Due to this sudden restriction, clients may raise complaints about the restriction placed.&lt;br /&gt;
&lt;br /&gt;
Support MUST simply inform them that licence restrictions are a default procedure followed by NEOSYS and is applied to all clients, so that the client will in future avoid delaying the payment.&lt;br /&gt;
&lt;br /&gt;
== Handling Frozen NEOSYS Installations and Databases ==&lt;br /&gt;
&lt;br /&gt;
Some clients retain fully operational NEOSYS installations or just particular databases even after they stop using them for some reason, either because they move to some other software, or because they terminate an operational division, or other reasons, and this can either be on NEOSYS or their own servers.&lt;br /&gt;
&lt;br /&gt;
In this case, various NEOSYS upgrade and maintenance processes may be suspended, downgraded or completely skipped especially if instant access to the server is no longer available. This does not mean that it should never be done, and pros and cons need to be assessed and documented in support emails on a case by case basis.&lt;br /&gt;
&lt;br /&gt;
*Upgrading NEOSYS version&lt;br /&gt;
*Upgrading/standardising NEOSYS database configuration and other files for consistency, security or other issues&lt;br /&gt;
*Patching Windows/IIS configuration for consistency, security or other issues&lt;br /&gt;
&lt;br /&gt;
== Handling Links and Email Attachments ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DO NOT TRUST ANY LINK OR ATTACHMENT IN ANY EMAIL EVEN FROM HIGHLY TRUSTED PEOPLE OR ORGANISATIONS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These days you can no longer trust links or attachments in emails from anybody - even emails from highly trusted people like your bank.&lt;br /&gt;
&lt;br /&gt;
If a personal computer or intermediate email server is hacked then even genuine emails sent out from it can be infected and modified in a hidden way that can result in the recipient being infected if they click or open anything in the email.&lt;br /&gt;
&lt;br /&gt;
Therefore you should know and understand how to avoid, as far as possible, getting tricked and infected via emails.&lt;br /&gt;
&lt;br /&gt;
Malware authors generally rely on the fact that most people devote no time at all to security precautions so a moderate cautious approach, slowing down a little to spending some time on security, even where it is apparently not required, is enough to defeat most attacks.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
Do NOT click on links, especially in emails that you are not expecting, but also anywhere else that you see links, without taking various precautions. The links in an email, even from someone you know and trust, can LIE to you about what website they will open and they can lead you to websites that mere browsing can infect your computer and then others inside our network.&lt;br /&gt;
&lt;br /&gt;
WHAT LINK/WEBSITE WILL BE OPENED MAY NOT BE WHAT IT SAYS IN THE BODY OF YOUR EMAIL!&lt;br /&gt;
&lt;br /&gt;
Therefore, to use a link in any and all emails, first hover your cursor over it and check the status bar at the bottom of the screen where you can see exactly what website will be opened, or, to be more sure exactly what website you are opening DO NOT click links in emails at all. COPY/PASTE the link to your browser, AFTER following the below points.&lt;br /&gt;
&lt;br /&gt;
*Make sure you know and trust the website being opened.&lt;br /&gt;
*Carefully inspect the spelling of the domain name to avoid tricky look-alike fraudulent links eg hcsb.com instead of hsbc.com&lt;br /&gt;
*If you trust the sender but you do not personally know the website then get independent confirmation from the sender. Reply to the email so that the sender can check the link you received has not been tampered with.&lt;br /&gt;
&lt;br /&gt;
Example 1:&lt;br /&gt;
&lt;br /&gt;
Below is an example of a phishing email that you can easily tell is malware&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot1.png]]&lt;br /&gt;
&lt;br /&gt;
1. You don&#039;t expect it because it says &amp;quot;before your sign up is complete&amp;quot; ... but you didn&#039;t just sign up.&lt;br /&gt;
&lt;br /&gt;
This doesn&#039;t mean that links in emails that you ARE expecting ARE safe to open. All the usual cautions apply to emails you DO expect.&lt;br /&gt;
&lt;br /&gt;
2. Hover mouse over the button and check the link visually&lt;br /&gt;
&lt;br /&gt;
In the example above, the email is supposed to be from Dropbox, but hovering the mouse over the button shows the below link, which is obviously wrong:&lt;br /&gt;
&lt;br /&gt;
http://fxloraisdoxbraxsil.com.br/dropbox.html&lt;br /&gt;
&lt;br /&gt;
3. Even if the link looks genuine e.g. something from a service that we use that we didn&#039;t expect, be careful for misspelt links that look like genuine links e.g. drobbox.com, which could trick you if you are sloppy.&lt;br /&gt;
&lt;br /&gt;
Never click on links in emails unless you are absolutely 100% sure that the email and link is genuine.&lt;br /&gt;
&lt;br /&gt;
Copy the link using right click copy link then paste into your browser if there is the slightest doubt.&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&lt;br /&gt;
In the following case, hovering over the first two links seem to go to real UPS website, BUT this is NOT sufficient to be sure since slight misspellings and other tricks can lead you to a totally different website.&lt;br /&gt;
&lt;br /&gt;
However, hovering over the third &amp;quot;link&amp;quot; shows that clicking the apparent link would go to some website http://behappy.vn (Vietnam) so clearly this is a DECEPTION.&lt;br /&gt;
&lt;br /&gt;
[[image:Scamscreenshot.png]]&lt;br /&gt;
&lt;br /&gt;
=== Attachments ===&lt;br /&gt;
&lt;br /&gt;
Please follow these rules strictly:&lt;br /&gt;
* *NEVER*  open an attachment that you did not expect.&lt;br /&gt;
&lt;br /&gt;
* *NEVER*  be curious to see what is in an attachment.&lt;br /&gt;
&lt;br /&gt;
* *NEVER*  open an attachment if there is some other way for the info to be sent e.g. Screenshot of document.&lt;br /&gt;
&lt;br /&gt;
If the rules above are followed then:&lt;br /&gt;
&lt;br /&gt;
* You can open an attachment if you have requested it and if sender is unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
* You can open an attachment if you get a good explanation of it contents from sender and they are unable to take a screenshot.&lt;br /&gt;
&lt;br /&gt;
It is okay to save an attached eml file and open it with GEDIT as text, as it will not trigger any virus.&lt;br /&gt;
&lt;br /&gt;
This does NOT mean that you can open attached files freely. As per the procedures above, you should NOT open any unknown or unexpected attachments without CONSIDERABLE thought.&lt;br /&gt;
&lt;br /&gt;
But saving and then opening files with GEDIT to get an idea of their contents even if the view is mangled is okay. Although, there is little point in opening files like ZIP in gedit.&lt;br /&gt;
&lt;br /&gt;
There is no way to determine if an attachment, even from someone you know, has not been infected and is therefore, dangerous.&lt;br /&gt;
&lt;br /&gt;
The only protection is to rely on anti-virus/anti-malware e-mail filters and staff vigilance!&lt;br /&gt;
&lt;br /&gt;
You can check the names and file types/extensions of attached files to spot any obviously strange or unexpected attachments, but this is not very effective. The filename of an attachment could be spoofed. An attacker could potentially exploit this by tricking the user in to opening an attachment of a different type to the one expected.&lt;br /&gt;
&lt;br /&gt;
Attachments ending in .jar or any other unusual extensions shouldn’t be opened without SB&#039;s permission.&lt;br /&gt;
&lt;br /&gt;
If there are a lot of attached files, don&#039;t assume they are all safe, make sure you asked for each of them.&lt;br /&gt;
&lt;br /&gt;
== Handling emails from unknown email addresses ==&lt;br /&gt;
&lt;br /&gt;
Any sort of contact from an unknown email address must be ignored entirely, i.e. no response whatsoever from Support, as these emails could be from a fraudulent source. If the email is genuine, then the sender can surely contact their managers.&lt;br /&gt;
&lt;br /&gt;
Support should keep in mind that hackers can send emails that look genuine, aiming to get private/confidential information and so should always stay alert when dealing with such emails.&lt;br /&gt;
&lt;br /&gt;
== Handling junk/spam email ==&lt;br /&gt;
&lt;br /&gt;
In order to get better automatic spam email filtering please mark as many obviously spam emails as Junk, instead of just deleting them. Marking them will delete them so it takes not much longer to do.&lt;br /&gt;
&lt;br /&gt;
*DO NOT delete emails from Junk or Spam folder because they are used to identify future junk and spam emails. &lt;br /&gt;
*Any email identified as junk should be marked as Junk so that they automatically go into the Junk folder. The spam filter in the mail server will use these emails in the Junk folder to decide what is moved into the spam folder.&lt;br /&gt;
*You MUST ensure that all clearly junk/spam emails are marked as Junk/Spam in ALL email inboxes. In other words they MUST be moved to Junk/Spam folders and not left in our inboxes or other main folders.&lt;br /&gt;
*Any emails which are not clearly junk/spam emails or are similar to genuine emails, but you know are spam/junk MUST be deleted i.e. NOT left in inbox NOR moved to Junk/Spam folders.&lt;br /&gt;
&lt;br /&gt;
The Junk email folder contains emails that have been manually marked as spam/junk whereas the &amp;quot;spam&amp;quot; email folder contains emails that have automatically been filtered out by the email server.&lt;br /&gt;
&lt;br /&gt;
Failing the above we will have the following problems:&lt;br /&gt;
&lt;br /&gt;
*Real emails disappearing into junk/spam folders by our email server.&lt;br /&gt;
*More junk/spam emails appearing in our inboxes than necessary.&lt;br /&gt;
&lt;br /&gt;
== Avoid burdening email servers with excessive graphics ==&lt;br /&gt;
&lt;br /&gt;
Support MUST install the &amp;quot;Auto Resize Image&amp;quot; addon in Thunderbird to reduce the size of images in emails resulting in a significant reduction in email size. See [[Configuring_Thunderbird#Configure_Auto_Resize_Image| setting up auto resize image]] for details.&lt;br /&gt;
&lt;br /&gt;
It reduces the burden on NEOSYS and NEOSYS client&#039;s email servers. This is especially important on long conversations about subjects that include many screenshots, since for just a simple one line reply, the email can consume many MB of space. It massively wastes the email server space and makes backups massive and generally a total waste of resources and time.&lt;br /&gt;
&lt;br /&gt;
To be able to refer back to graphics in previous emails, add the SIZE column to your email program so that you can locate large emails with graphics rapidly without searching back one by one.&lt;br /&gt;
&lt;br /&gt;
==Client Communication Policies==&lt;br /&gt;
===Client Meeting Report Policy===&lt;br /&gt;
&lt;br /&gt;
After every Client meeting online or otherwise Support MUST send a Follow-Up email to the Client which is open and fully informative and not brief, stating the events during the meet and any action required by either or both parties. The email to the client must not shrink from discussing contentious issues due to a false sense of politeness or timidity to address issues face on. Obviously one should not be rude but it is not rude to address issues openly.(cc Client managers and NEOSYS Managers)&lt;br /&gt;
&lt;br /&gt;
The follow-up email MUST be sent within 24 hours of completion of the meeting so that the points discussed during the meeting are fresh in all the meeting participants&#039; minds. This means that reports for meetings on the day before the weekend MUST be sent on the SAME day.&lt;br /&gt;
&lt;br /&gt;
In addition to above email if there is some information that needs to be shared internally and cannot be said in public to the client then send a Client Meeting report to Support.&lt;br /&gt;
&lt;br /&gt;
Support must also update the Client Contact Record file in Google Drive immediately after sending out the follow-up email.&lt;br /&gt;
&lt;br /&gt;
===Follow Up of Support Issues===&lt;br /&gt;
&lt;br /&gt;
All voice/chat communication MUST also be followed up with an email confirming at least the gist of the communication to keep the whole support team updated on the issue.&lt;br /&gt;
&lt;br /&gt;
If not possible to contact for any reason, then an email MUST be sent stating so and suggesting or requesting a time to connect.&lt;br /&gt;
&lt;br /&gt;
cc Client managers (and/or BCC NEOSYS Managers) MAY be done if thought to be useful and/or appropriate.&lt;br /&gt;
&lt;br /&gt;
===Handling Contentious Emails from Clients===&lt;br /&gt;
&lt;br /&gt;
If emails requesting support become contentious, then voice, phone call or chat is REQUIRED to save time. However, client support via phone call should be done only on local or low-cost calls. High-cost international calls should not be used except in extreme circumstances.&lt;br /&gt;
&lt;br /&gt;
If clients become deliberately combative or uncooperative then Support team is supposed to kick back a little but still emphasise the point. Perhaps it could be done better with a little ironic humour or a smiley. Avoid using !! while responding to contentious emails.&lt;br /&gt;
&lt;br /&gt;
=== Apologising to clients for issues ===&lt;br /&gt;
&lt;br /&gt;
We only need to apologise for major issues that are a) definitely our fault and b) we wish to indicate that there is some general issue in NEOSYS procedures and that we are dealing with it. &lt;br /&gt;
&lt;br /&gt;
We do not want to invite bullying by some clients by seeming to lack confidence in our ability.&lt;br /&gt;
&lt;br /&gt;
An explanation of the cause and possibly FP is of more value to the client, since an apology doesn’t really make any difference.&lt;br /&gt;
&lt;br /&gt;
=== Discussing Pricing === &lt;br /&gt;
All discussions about pricing must be done only in Sales inbox. If clients bring up pricing discussion in support emails, NEOSYS staff must respond to the client by starting a new thread in the Sales Inbox.&lt;br /&gt;
&lt;br /&gt;
==NEOSYS Support Response Time Policy==&lt;br /&gt;
&lt;br /&gt;
NEOSYS contracts, in the few cases where we have a written contract with the client, specifies that maximum response time is one business day generally and one business hour for complete stoppages of the system. Obviously we have to do far better than this in practice.&lt;br /&gt;
&lt;br /&gt;
Support staff must inform clients of the progress of the issue if it is not resolved the same day but only if they contact at least 1 hour before office closing.&lt;br /&gt;
&lt;br /&gt;
Deciding to wait on issues is fine (also refer to:  [[Procedures#Handling_users_who_do_not_act_upon_standard_messages|Response to standard messages]]), but support MUST at least spend up to 5 minutes on issues to see if they can be handled quickly. Support MUST respond quickly to issues that can be handled quickly, otherwise the client suffers unnecessarily.&lt;br /&gt;
&lt;br /&gt;
When an issue is fixed or a client request has been implemented in NEOSYS, Support must immediately let users know that the issue is fixed, so that clients can continue their work without any further delay. Quick and prompt responses from Support will gain the client&#039;s appreciation.&lt;br /&gt;
&lt;br /&gt;
For routine requests for service where there is a reasonable expectation of delay by the client then no need to send rapid reply.&lt;br /&gt;
&lt;br /&gt;
==Default Browser for support staff ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS supports and develops for Firefox primarily but other browsers such as Chrome and Edge MUST also be tested working fine. Support team currently uses Firefox for all work related tasks in Ubuntu which includes testing, wiki work etc.&lt;br /&gt;
&lt;br /&gt;
Also refer to [http://itwiki.neosys.com/index.php/Setting_up_Ubuntu_on_NEOSYS_Support_Computers#Mozilla_Firefox Setting up Mozilla Firefox]&lt;br /&gt;
&lt;br /&gt;
==Handling errors discovered by support staff ==&lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
==Handling browser script errors==&lt;br /&gt;
&lt;br /&gt;
If a script error is faced, support should take a full screenshot of the script error including the script name, line number, etc.&lt;br /&gt;
&lt;br /&gt;
Include every detail available regarding the script error and also the steps to replicate it and escalate this to the programmer.&lt;br /&gt;
&lt;br /&gt;
Chrome JavaScript Error Notifier extension shows all the details available in the initial script error message itself. In Internet Explorer, you will have to click &#039;Yes&#039; on the script error message to get all the details.&lt;br /&gt;
&lt;br /&gt;
== Various checks done by Support to investigate errors ==&lt;br /&gt;
&lt;br /&gt;
A list of logs/reports that Support must look at, depending on the situation, to solve issues or investigate errors.&lt;br /&gt;
&lt;br /&gt;
#Support inbox emails: Check old emails in Thunderbird. This is the quickest way to handle issues/errors that were handled recently.&lt;br /&gt;
#Logs/reports available in NEOSYS Menu&lt;br /&gt;
#*Request Log (Support -&amp;gt; RequestLog) - These logs can be checked to see what request were made and by which users etc., not as detailed as the xml logs mentioned under &amp;quot;Logs found on the server&amp;quot;.&lt;br /&gt;
#*NEOSYS logs (Support -&amp;gt; Log) - Log of alerts sent out via email, e.g. backup email, login failure, etc.&lt;br /&gt;
#*What&#039;s New report (Help -&amp;gt; What&#039;s new in NEOSYS) - Contains a list of all the features added in NEOSYS&lt;br /&gt;
#*List of Database processes (Support -&amp;gt; List of Database Processes) - Status of processes windows running on the server.&lt;br /&gt;
#*List of documents in use (Support -&amp;gt; List of Documents in Use) - Currently used documents.&lt;br /&gt;
#*User details page (Help -&amp;gt; User Details) - To check logins and IPs and password reset details.&lt;br /&gt;
#*Version logs of files - The history of edits made to files in NEOSYS. This is available at the bottom of files in NEOSYS (e.g. Schedule file, Voucher file, etc.)&lt;br /&gt;
#*Usage Statistics (Support -&amp;gt; Usage Statistics) - Shows no. of requests made per user, per department, per database, per hour etc.&lt;br /&gt;
#Logs found on the server:&lt;br /&gt;
#*Xml logs - These logs can be checked to see what request were made and by which users etc. in detail.&lt;br /&gt;
#*Process logs (.LOG files) - These log files contain entries showing start of database backup, and process startup logs.&lt;br /&gt;
#*Process windows - Check process windows on the server for error messages or anything unusual, e.g. hung processes.&lt;br /&gt;
#*Procexp (Process Explorer)- Used to check ntvdm processes running for specific installations (useful on servers with multiple installations).&lt;br /&gt;
#*System logs (Event viewer) - Used to check for unusual system events, eg: unexpected shutdown.&lt;br /&gt;
#*Task manager - Checked to monitor CPU usage, NTVDM running etc.&lt;br /&gt;
#NAGIOS - Monitors the status of all hosts and services.&lt;br /&gt;
&lt;br /&gt;
==Handling Cheques from Clients==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff are not to accept deliveries from clients that might be cheques without prior instructions to accept the same. They can ask courier to wait a few minutes until NEOSYS accounts or management agrees but they may not be immediately available and probably will not agree anyway. If accounts or management is not immediate available, then cheque MUST not in any circumstances be accepted, otherwise client can cause problems in our accounts and we waste time visiting the bank to deposit.&lt;br /&gt;
&lt;br /&gt;
NEOSYS payment terms do not accept cheques although clients are free to deposit cheques by themselves.&lt;br /&gt;
&lt;br /&gt;
== Client Password Policy ==&lt;br /&gt;
All client user passwords, including their initial one, are to be obtained via the user&#039;s email address using the password reminder/reset button on the login screen. [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#What_is_NEOSYS_password_policy.3F  (NEOSYS password policy)]&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff should never know users passwords therefore NEOSYS will not obtain and grant user passwords. The reason for this is that in the event that users lose their passwords to other people who then login unauthorised then suspicion could fall on the NEOSYS staff who know their password. &lt;br /&gt;
&lt;br /&gt;
All parties concerned, including client management, client users and NEOSYS support staff, benefit greatly from trusting that if something in a NEOSYS database is registered as having been done by a particular user then it was not in fact somehow done by NEOSYS support staff. Nothing should be done that would break such fundamental trust. To achieve this, NEOSYS support staff must never log in as particular users, never ask for users passwords and generally enforce the idea that all work logged as being done by users IS done by users.&lt;br /&gt;
&lt;br /&gt;
Very limited amounts of work by NEOSYS support staff either in person or remotely using teamviewer is acceptable while a user is logged as long as the user login was performed by the user themselves, the user is present and the user specifically agrees with the work being done.&lt;br /&gt;
&lt;br /&gt;
=== Support requests from ordinary client users ===&lt;br /&gt;
Any support requests concerning inability to obtain passwords will be forwarded to known skilled users on the client staff since this is the most efficient (not fastest) way to handle such issues.&lt;br /&gt;
&lt;br /&gt;
=== Support requests from senior client management ===&lt;br /&gt;
Any support requests concerning inability to obtain passwords by senior client management users shall be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bearing in mind that NEOSYS staff should never know user&#039;s passwords this will probably involve NEOSYS staff using the Password Reminder/Reset button to send a new password to the user.&lt;br /&gt;
&lt;br /&gt;
=== User Defined Passwords ===&lt;br /&gt;
NEOSYS will provide user defined passwords in very special cases which must be pre-approved case by case by NEOSYS management. NEOSYS will not approve this due to the reasons mentioned [[Procedures#Client_Password_Policy|here]].&lt;br /&gt;
&lt;br /&gt;
If the user login gets blocked due to multiple login failures and the user requests support team to reset the password to the user defined password again, support MUST delay the response to this request by at least 1 hour in order to force the user to be more careful when typing the password.&lt;br /&gt;
&lt;br /&gt;
Currently permission for user defined password has only been granted to one NEOSYS client with several hundreds of databases.&lt;br /&gt;
&lt;br /&gt;
== Handling client issues and requests==&lt;br /&gt;
&lt;br /&gt;
All support issues must be dealt with through phone/email/chat. Support Staff can schedule client visits for User Training but should not schedule client visits solely for providing support for petty issues.&lt;br /&gt;
&lt;br /&gt;
ALL Support staff should check all the previous day&#039;s inbound emails for reply flags once in the morning. All Support staff will therefore be held responsible for any unreplied inbound email.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT waste time and delay support by investigating issues WITHOUT SUFFICIENT INFORMATION.&lt;br /&gt;
&lt;br /&gt;
Support must NOT get involved in any discussion about any document that is not directly out of NEOSYS, so that Support is able to reproduce it from NEOSYS screenshots of screen options that the client used.&lt;br /&gt;
&lt;br /&gt;
Support should look for similar issues when solving a particular problem to avoid similar issues in future. This saves the time and energy of Support as well as the Client.&lt;br /&gt;
&lt;br /&gt;
When sending screenshots to clients, support team should economise on space by minimising to the minimum that will show the problem clearly. This is because not every user will be viewing their emails on large wide screens like NEOSYS support team. Browser windows reformat their contents to suit the width available so this is particularly effective in most NEOSYS screens.&lt;br /&gt;
&lt;br /&gt;
Support team MUST be cautious while sending screenshots so that no private/unnecessary information is sent to Client. If you cannot avoid taking the screenshot without unnecessary information then you should hide it in the screenshot.&lt;br /&gt;
&lt;br /&gt;
Support team MUST learn not to do silly support for people, because we have an OPEN SUPPORT policy, which some users WILL try to abuse based on either poor understanding or lack of respect. &lt;br /&gt;
Either way support MUST learn to deal with abuse of privileges as it will save a lot of time, which could be spent on more important issues.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
=== Handling new emails in Support inbox===&lt;br /&gt;
Support MUST spend up to 5 minutes on new emails and send a quick reply to the client, to acknowledge the request or give a quick solution in case it is a petty issue or has a documented solution in wiki.&lt;br /&gt;
&lt;br /&gt;
Client issues/requests should be prioritized, interrupting existing work and not wait for one hour and be dealt with quickly.&lt;br /&gt;
&lt;br /&gt;
For routine service requests where there is a reasonable expectation of delay by the client, Support need not send a rapid reply but must keep the email starred in Support inbox to indicate that it is pending or being worked on.&lt;br /&gt;
&lt;br /&gt;
=== Handling starred emails in Support inbox ===&lt;br /&gt;
&lt;br /&gt;
When an email is received in Support inbox,&lt;br /&gt;
*if the email can be replied to immediately, then mark it as read after you have replied to the email.&lt;br /&gt;
*if the issue cannot be resolved immediately, then the email MUST be starred so that support does not forget to work on it. Once the issue has been resolved, Support should send an email to Support inbox confirming that the issue is closed. Only then should the email be unstarred.&lt;br /&gt;
&lt;br /&gt;
No issue should be silently dropped without being fully resolved.&lt;br /&gt;
&lt;br /&gt;
=== Handling client-sensitive information in emails ===&lt;br /&gt;
&lt;br /&gt;
Support should avoid including information that could be sensitive to clients e.g. screenshots of reports that should only be viewed by client&#039;s upper management.&lt;br /&gt;
&lt;br /&gt;
This can be done simply by clever cropping of images or blurring out of information in cases where cropping is not possible. &lt;br /&gt;
&lt;br /&gt;
Support MUST not delay response to any client by wasting time blurring or cropping out information that is not sensitive to clients, e.g. blurring out the URL and tabs in browsers etc.&lt;br /&gt;
&lt;br /&gt;
=== Handling client call back requests===&lt;br /&gt;
&lt;br /&gt;
Clients who ask us to call them should be given our phone number and asked to call us unless there is some GOOD reason why we should make the effort and pay phone charges.&lt;br /&gt;
&lt;br /&gt;
=== Handling login failure issues===&lt;br /&gt;
&lt;br /&gt;
Users often get login failure issues due to typing wrong password and they simply won&#039;t read and act according to the error message they get. In this case, Support must send the below email to the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
If you have trouble resetting password, please ask for assistance from your manager/IT Manager/Timesheet Administrator/NEOSYS-expert colleague.&lt;br /&gt;
&lt;br /&gt;
Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Local support users (TA or IT manager etc) have the LS key using which they can see the User Details page of all users. They should check all the information (usercode, registered email id, last login attempts etc) in the User Details page to find out what is the issue.&lt;br /&gt;
&lt;br /&gt;
This procedure will reduce the endless mails sent back and forth to solve petty issues which could easily be solved by the client&#039;s local support.&lt;br /&gt;
&lt;br /&gt;
=== Handling requests or demands for &amp;quot;URGENT&amp;quot; or &amp;quot;PRIORITY&amp;quot; support ===&lt;br /&gt;
&lt;br /&gt;
Any request for prioritised action *without giving any reason for the prioritisation* should be disregarded and the request handled with normal priority. If a reason is given then you may at your discretion prioritise a response but there is no obligation to do so.&lt;br /&gt;
&lt;br /&gt;
=== Handling users who login with other people&#039;s NEOSYS usercodes ===&lt;br /&gt;
This can cause a lot of confusion in both the client and NEOSYS support. It may also indicate that the correct NEOSYS monthly licensing fee is not being paid. There is no valid reason for anonymous logins or sharing logins between multiple users.&lt;br /&gt;
&lt;br /&gt;
Therefore if NEOSYS support team get requests for support about using NEOSYS from users who are not registered properly in NEOSYS with an personally identifiable user code, name and email then the following email should be sent cc admin@neosys.com.&lt;br /&gt;
&lt;br /&gt;
No exception should be granted to clients without NEOSYS management approval.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear NEOSYSUSER,&lt;br /&gt;
&lt;br /&gt;
Please note that in order to receive support from NEOSYS you must personally have an identifiable user code, name and email address registered&lt;br /&gt;
in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
We can create new user account for you with your management approval. This may or may not have an impact on the NEOSYS monthly licensing fee &lt;br /&gt;
depending on the agreement in force.&lt;br /&gt;
&lt;br /&gt;
Please let us know what you would like us to do.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
NEOSYS Support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Handling support requests from expired users ===&lt;br /&gt;
&lt;br /&gt;
If expired users call for any reason including not being able to login, they must not be given any support. They should only be told that their account is expired without any reason being offered because employers sometimes do not want any information at all being passed to expired users.&lt;br /&gt;
&lt;br /&gt;
===Handling support request from senior management===&lt;br /&gt;
&lt;br /&gt;
Any support requests from senior client management users concerning report generations should be handled directly by NEOSYS support staff in any way convenient to resolve the issue in the quickest possible time rather than the most efficient.&lt;br /&gt;
&lt;br /&gt;
Bear in mind that NEOSYS staff should not agree or offer to do client work. Support staff can advise senior management to contact a skilled user to help them with basic NEOSYS reporting. Support staff can also send screenshots of step by step procedure on how to take reports. Depending on the situation and reasons provided by senior management, support staff can at their discretion provide reports but after informing them that this is an exception and no more reports will be sent out as this is against NEOSYS procedures.&lt;br /&gt;
&lt;br /&gt;
===Handling requests that involve updating NEOSYS configuration files===&lt;br /&gt;
&lt;br /&gt;
Changes to any configuration file in NEOSYS MUST be performed only by NEOSYS support, because even the slightest misconfiguration of the system may cause unrecoverable errors and NEOSYS is responsible for support.&lt;br /&gt;
&lt;br /&gt;
=== Handling emails with unrelated subject line ===&lt;br /&gt;
At times, clients forward old emails, with new issues, resulting in completely unrelated subject line. In such situations, support MUST follow the below steps to ensure that unrelated emails do not appear in the same conversation group when viewing emails in conversation mode:&lt;br /&gt;
#Right click the email -&amp;gt; HeaderToolsLite -&amp;gt; Edit full source&lt;br /&gt;
#Modify the text that appears after &amp;quot;Message-ID: &amp;lt;&amp;quot;. (e.g. replace the first few characters with &amp;quot;xxxxxxxxx&amp;quot;)&lt;br /&gt;
#Remove all texts that appear after &amp;quot;References:&amp;quot; and &amp;quot;In-Reply-To:&amp;quot; and click OK.&lt;br /&gt;
#Click Reply All on the modified email.&lt;br /&gt;
#Change the subject to a relevant one.&lt;br /&gt;
#Delete old unrelated content from the email body.&lt;br /&gt;
&lt;br /&gt;
In the email reply, include a comment like &amp;quot;PS Please don&#039;t forward old emails for new issues, start a new email with a new subject so that emails can be traced easily.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sometimes the client does not bother putting the correct subject line for new issues (e.g. blank subject, or &amp;quot;Error&amp;quot;). Then support should add a meaningful subject line in order to make the email easy to search for.&lt;br /&gt;
&lt;br /&gt;
=== Handling emails with poor screenshots ===&lt;br /&gt;
Sometimes Thunderbird shows full sized screenshots in a compact format that is not easy to read. These can be resized to make them more legible. To do this, make the email editable by hitting the &amp;quot;Reply&amp;quot; button, then click and drag to resize the screenshot as desired.&lt;br /&gt;
&lt;br /&gt;
If the screenshot sent by the user is genuinely small and hard to read, reply to the mail and request for a full size, clear screenshot.&lt;br /&gt;
&lt;br /&gt;
=== Handling support-request emails sent to anywhere than support@neosys.com ===&lt;br /&gt;
Client emails anywhere than support@neosys.com MUST be ignored. This is because ALL support must be recorded in support inbox without exception so that the whole support team is aware of the issue and action taken. If client complains about the delay in support then they can be told this is because they used the wrong email address.&lt;br /&gt;
&lt;br /&gt;
=== Handling users who do not act upon standard messages ===&lt;br /&gt;
When users do not bother to read and act on standard NEOSYS-generated messages and instead ask for help, Support staff MUST delay response time and thereafter send them an email which is the same as the message so they get the point that in future they should read the messages and handle issues themselves.&lt;br /&gt;
&lt;br /&gt;
=== Handling Requests to do Client work ===&lt;br /&gt;
NEOSYS Support staff must not agree or offer to do work on behalf of the client. &lt;br /&gt;
&lt;br /&gt;
This is because doing client work while logged in as NEOSYS breaks security rules. Support uses the NEOSYS username which has unrestricted access, so when a user requests Support to do some work which they don’t have access to, and if Support agrees to do the work, the client has successfully defeated the security rules by accessing features that they are unauthorised to access.&lt;br /&gt;
&lt;br /&gt;
If a client makes a false claim about an issue in NEOSYS, i.e. if Support finds out that there is no real issue, then direct the client in the right direction so that they find out their mistake by themselves. Support MUST NOT show/explain the problem to them in detail, since you are just doing their work for them by explaining the problem and this will encourage the client to contact support for every petty issue they face. &lt;br /&gt;
&lt;br /&gt;
Client work also includes [[Procedures#Handling_issues_with_totals_on_reports|Handling issues with totals on reports]].&lt;br /&gt;
&lt;br /&gt;
====Requests for colour and font changes====&lt;br /&gt;
&lt;br /&gt;
Support should not be spending lots of time on colour and font changes. Clients can make as many changes as they want until they are happy with a selection. Clients MUST send a screenshot of their required color/font settings (not sample screen/reports) for Support to copy and setup for all users. If Support sees them doing something bad or poor then give comments or better suggestions.&lt;br /&gt;
&lt;br /&gt;
=== Handling Requests that require Approval from Higher Authority ===&lt;br /&gt;
&lt;br /&gt;
The following is a list of user requests that must be handled by NEOSYS support staff only if they are approved by or come from a higher authority (manager/admin). The LIST is &#039;&#039;&#039;NOT&#039;&#039;&#039; a complete list so there may be other things which might require approval so use good judgement and/or ASK if in doubt.&lt;br /&gt;
&lt;br /&gt;
*Opening new financial year&lt;br /&gt;
*Adding new company/dataset&lt;br /&gt;
*Editing alert/backup email receiver addresses&lt;br /&gt;
*Customising Authorisation File ({{SensitiveSecurity }})&lt;br /&gt;
**Adding or removing accesses for existing users in Authorisation file&lt;br /&gt;
**[[Procedures#Handling_new_USER_creation| Adding new user(s) to Authorisation file]]&lt;br /&gt;
**Expiring a user&lt;br /&gt;
**[[Procedures#For_HTTPS_access| Allowing HTTPS/outside office access from any IP number]]&lt;br /&gt;
&lt;br /&gt;
If an unauthorized user sends one of these requests to support staff, support staff must immediately instruct the user to get the request approved by the higher authority.&lt;br /&gt;
&lt;br /&gt;
===Handling User Requests to add an IP or range of IPs to access NEOSYS===&lt;br /&gt;
&lt;br /&gt;
Support staff must identify if the IP or range of IPs is for http or https access.&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
====For HTTP access====&lt;br /&gt;
Support staff can add local IP or range of local IPs when requested by the client. Top management approval is not needed to add local IP numbers. Listed below are the IP address ranges reserved for local network.&lt;br /&gt;
&lt;br /&gt;
10.0.0.0 – 10.255.255.255&lt;br /&gt;
&lt;br /&gt;
172.16.0.0 – 172.31.255.255&lt;br /&gt;
&lt;br /&gt;
192.168.0.0 – 192.168.255.255&lt;br /&gt;
&lt;br /&gt;
====For HTTPS access====&lt;br /&gt;
Any request for https access from any IP address or range of IP addresses (eg. 123.456.* or just *), or in other words any use of an asterisk in the IP restrictions, MUST have TOP management i.e. the company&#039;s decision makers approval. The Staff and their Managers are not the best decision makers in this affair because they usually ignore the risks and it is not really their decision. Security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc can be triggered if access from any IP is enabled. It is completely pointless to inform the staff who want the access about these risks because only their top managers could really decide that this is NOT going to be allowed. Hence the Top Management MUST be asked for approvals and at the same time WARN them about the security risks/threats behind the no IP restrictions.&lt;br /&gt;
&lt;br /&gt;
=====For clients with static IP=====&lt;br /&gt;
Any request to add a specific IP address to the list of allowed IP addresses MUST have management approval.&lt;br /&gt;
&lt;br /&gt;
=====For clients with dynamic IP=====&lt;br /&gt;
For clients with dynamic IP, support MUST NOT add their public IP to the allowed list as this will encourage the client to again request for access from new IP numbers every time their public IP changes. Instead, support MUST force the client to either get a static IP, install VPN or get the Top Management i.e. the company&#039;s decision maker&#039;s approval to enable access from any IP after explaining the security risks in doing so, as mentioned above.&lt;br /&gt;
&lt;br /&gt;
Support MUST also mention that installation of VPN by the Company is the industry standard way of providing access to mobile staff (i.e. those on dynamic IP numbers from home or travelling) to corporate software assets like NEOSYS IN A SECURE MANNER. Installation of VPN is to be done by their own IT support. Refer to [[Procedures#Using_VPN_to_enable_secure_access_from_outside_the_office|Using VPN to enable secure access from outside the office]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Sample Email addressed to Top Management:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XXX,&lt;br /&gt;
 &lt;br /&gt;
I do not recommend allowing access from all IPs because security threats like access of data by unauthorized persons or ex-employees, malicious hacking attempts etc. can be triggered if access from any IP is enabled.&lt;br /&gt;
&lt;br /&gt;
I strongly recommend that you keep IP restrictions for XYZ dataset.&lt;br /&gt;
  &lt;br /&gt;
If you want to provide access to mobile staff (i.e. those on dynamic IP numbers from home or travelling) to corporate software assets like NEOSYS IN A SECURE MANNER, then installation of VPN is the industry standard of achieving this. Installation of VPN is to be done by your own IT support. &lt;br /&gt;
 &lt;br /&gt;
If you still wish to allow access from all IPs, kindly confirm that you acknowledge the security threats of doing so. &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Handling repeated request to allow users to access from all IPs ===&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
If the client wants temporary access from outside for some staff twice in say a six months period then support should send the below email. The real reason is because we don&#039;t have the time to be doing this on a regular basis. If at all the client asks why we no longer support the provision of temporary outside access then we can say this is because of the frequency of such requests.&lt;br /&gt;
&lt;br /&gt;
 Dear XXX&lt;br /&gt;
 &lt;br /&gt;
 We have given you temporary outside access this time, as requested. Please note that we can no longer support the provision of temporary outside access. So in the future, you will have to choose between either permanent or no outside access. Alternatively, you can ask your management to install a VPN (which is the industry standard of achieving outside access to a corporate asset in a secure manner), so that you can log in to NEOSYS from outside.&lt;br /&gt;
&lt;br /&gt;
=== Handling requests to create a new feature or modifying existing features ===&lt;br /&gt;
&lt;br /&gt;
Many issues are small and not important but can still be considered for development because they may be easy and neatly added to NEOSYS. The aim here is to avoid development on hard issues for little benefit, or little issues that make NEOSYS more complex for little benefit.&lt;br /&gt;
&lt;br /&gt;
When a client requests to create a new feature or modify an existing feature, a workaround must be given to the user, which is either a permanent solution, for example if the issue is a rare case and not commonly faced by other clients (and the workaround is acceptable to the client), or a temporary solution until some better solution is discovered or can be developed.&lt;br /&gt;
&lt;br /&gt;
Support MUST check all options on all pages to look for any already existing solution or workaround to the problem before emailing the programmer.&lt;br /&gt;
&lt;br /&gt;
Any request to create a new feature or modify an existing feature MUST be discussed with other clients before forwarding it to the programmer because the other clients might not be comfortable with the change as it may not be in accordance with their workflow. If other clients agree to the proposed change then support should go ahead and request the programmer to implement it.&lt;br /&gt;
&lt;br /&gt;
Therefore before escalating a request to the programmer to modify a feature in NEOSYS, the approval for the same from other clients must be taken into account.&lt;br /&gt;
&lt;br /&gt;
Any request to fix or modify a feature in NEOSYS must be accompanied with good reason and some basic considerations, so that the programmer knows what level of priority it can be dealt with. &lt;br /&gt;
&lt;br /&gt;
When escalating the request to the programmer, support MUST avoid using &amp;quot;Is it possible..?&amp;quot; because the obvious answer to that is &amp;quot;Anything is possible&amp;quot; and because this question is only a way to avoid doing the real work of deciding whether the new feature/modification should be implemented.&lt;br /&gt;
&lt;br /&gt;
=== Handling requests to add more fields to List of Invoices reports ===&lt;br /&gt;
&lt;br /&gt;
Many users may ask for the List of Invoices report to be expanded to show a zillion other things, but this makes it NOT a list of invoices. Therefore other break-downs MUST be obtained from other reports in NEOSYS.&lt;br /&gt;
&lt;br /&gt;
=== Updating Clients about unresolved issues ===&lt;br /&gt;
Support should proactively inform clients if an issue is not solved within the same day it was raised, after judging the urgency of the issue and the time it was raised. An email to the client who raised the issue, before the end of each day, is a best practice that keeps the client updated and other support staff too. This email should be sent regardless of the degree to which the issue has been resolved or if the issue is unresolved. If the issue is unresolved, the email should explain why and also explain the cause of delay.&lt;br /&gt;
&lt;br /&gt;
=== Handling new USER creation ===&lt;br /&gt;
====Get Approval====&lt;br /&gt;
Support staff should create new USERS for clients ONLY when requested by an authorised person. If the authorised person is unavailable, for example on leave, then get approval from someone who is in the backup mail list.&lt;br /&gt;
&lt;br /&gt;
Ideally only people who are users in NEOSYS and have authority over some task can grant or request authority to do that task to other NEOSYS users. However, if this is not the case and the requesting person has some seniority in the company (but is either not a NEOSYS user, or is not actually currently authorised to perform the task themselves) you may decide that it is not wise to proceed without some confirmation. In such a case be very respectful of their position while rejecting any request perhaps stating something like:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Currently we have instructions to take instructions concerning authorisation only from xxx, yyy and zzz. Please could this request be confirmed by one of them?&amp;quot; Rewrite this judiciously to suit the occasion.&lt;br /&gt;
&lt;br /&gt;
Consider that different sections of a company may have different chain of commands. For example one should not assume that a Sales Director has authority over Finance unless there is firm evidence. If there is any doubt consult NEOSYS Support Managers.&lt;br /&gt;
&lt;br /&gt;
Support MUST NOT directly contact the authorised person asking for approval/confirmation because that is client work.&lt;br /&gt;
&lt;br /&gt;
Clients should not be discouraged to create new users. Clients are billed as per user usage which is reviewed periodically. Over time old USERS are replaced with new USERS.&lt;br /&gt;
&lt;br /&gt;
====Creating User====&lt;br /&gt;
Preliminary:&lt;br /&gt;
&lt;br /&gt;
New user requirements :-&lt;br /&gt;
*Full name                                      - (like John Smith and not generic name like Copy Writer)&lt;br /&gt;
*Email address                                  - (like johnsmith@example.com and not generic address like copywriter@example.com)&lt;br /&gt;
*Group level / User with similar authorisation&lt;br /&gt;
&lt;br /&gt;
The USER code is the first name of a user. &lt;br /&gt;
&lt;br /&gt;
1. Support MUST only create NEOSYS accounts with real names and email addresses WITH NO EXCEPTIONS unless agreed by NEOSYS management.&lt;br /&gt;
&lt;br /&gt;
It is acceptable, although inefficient, for one person to have multiple user accounts either concurrently or sequentially, but the opposite MUST never occur.&lt;br /&gt;
One NEOSYS user code/account MUST never have more than one real person associated with it neither concurrently nor sequentially.&lt;br /&gt;
In order to maintain efficiency, various fleeting temptations to cut corners and break the ONE TO ONE link between NEOSYS users accounts and real people MUST be resisted.&lt;br /&gt;
These principle remain mandatory even when pressure is exerted by people, even senior management, who may not appreciate the issues involved.&lt;br /&gt;
The fact that NEOSYS support does not know for certain who is the real person using an NEOSYS account does not change these principles.&lt;br /&gt;
&lt;br /&gt;
2. Support MUST not create GENERIC user codes like AUDITOR or MANAGEMENT (even to grant special access to such users like read-only access) as this breaks all security rules.&lt;br /&gt;
Do not re-use user codes. Always create NEW user codes for NEW users.&lt;br /&gt;
&lt;br /&gt;
3. Support MUST not create or modify any usable NEOSYS account that is or has been used by more than one user.&lt;br /&gt;
&lt;br /&gt;
4. Support is responsible to maintain the system in good working order and not knowing who is really doing the work in the system can make support harder.&lt;br /&gt;
&lt;br /&gt;
5. Support MUST not collude with clients to by-pass the principles. If asked to do so Support MUST refuse to create or update such accounts.&lt;br /&gt;
&lt;br /&gt;
6. Do not hand over user codes from one person to another in a mistaken attempt to represent a hand over to a replacement. EXPIRE THE OLD USER CODE/ACCOUNT AND CREATE A NEW USER CODE/ACCOUNT.&lt;br /&gt;
&lt;br /&gt;
{{SensitiveSecurity }}&lt;br /&gt;
&lt;br /&gt;
7. Support team MUST NOT discuss billings with clients unless authorised to do so. Also see [[Procedures#Discussing_Pricing|Discussing Pricing]] &lt;br /&gt;
&lt;br /&gt;
8. Support team MUST NOT proceed with creating new users until the group level or existing user with similar authorisation has been clearly provided by the client, otherwise the new user may end up with more than the required authorisation, which can lead to problems in future.&lt;br /&gt;
&lt;br /&gt;
====After Creating New User====&lt;br /&gt;
&lt;br /&gt;
Support MUST send an email to the person who requested the creation of new user, confirming that the new user has been created along with a screenshot of that part of the authorisation table where the new user was created so that the new user&#039;s user code and email id is visible. This is done so that in case there is some error in the user code or email id, it is easily visible in the screenshot and also so that the person who requested the creation of the new user is informed about the user code of the new user.&lt;br /&gt;
&lt;br /&gt;
=== Handling letterhead change requests ===&lt;br /&gt;
&lt;br /&gt;
Support staff should reject any requests that require the letterhead to be setup on the TESTING dataset before it is setup in the MAIN dataset.This is to reduce double work for support staff and to ensure that clients have a clear understanding of their requirements and also send the correct logo image.&lt;br /&gt;
The MAIN dataset can be copied to the TEST dataset for any kind of testing.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Configuring_Letterhead#Changing_the_letterhead_for_printed_documents How to change letterhead]&lt;br /&gt;
&lt;br /&gt;
=== Handling error messages ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Before Attempting to resolve client issues, please ensure that we have secure access to the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
#The very first step is understanding client problem. Ask questions to the client until you CLEARLY understand the problem.&lt;br /&gt;
#If the error is familiar and does not require a screenshot, resolve the problem immediately. &lt;br /&gt;
#If the error is unfamiliar and/or requires a screenshot and the user has not sent a screenshot, IMMEDIATELY ask the user to send a screenshot of the problem, along with the options used (basically you need to know HOW to replicate the error and the screenshot MUST show WHAT the error is).&lt;br /&gt;
#If the user says &amp;quot;nothing happens, so no screenshot of the error&amp;quot;, then IMMEDIATELY request for screenshots again with the exact steps to reproduce the problem using mouse and keyboard.&lt;br /&gt;
#Support team MUST NOT provide support without a screenshot, otherwise the client will not pay attention to support team in future and ignore requests for screenshots.&lt;br /&gt;
#Upon receipt of the error and steps to reproduce the error, follow the steps and reproduce the error. Also refer to [[Procedures#Addressing_Browser_related_issues|Addressing Browser related issues]]  &lt;br /&gt;
#If the issue is unknown or you don’t understand it clearly, with the users acknowledgement use remote support to gain access to the users desktop to view how to replicate the error. &lt;br /&gt;
{{Handling errors}}&lt;br /&gt;
&lt;br /&gt;
====Understanding Internal error messages====&lt;br /&gt;
&lt;br /&gt;
Internal errors messages appear in red on screen and an email which is sent to support with more details. (Example below)&lt;br /&gt;
&lt;br /&gt;
[[image:Rawformdatapng.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;ERROR NO:&amp;quot; line is comprised of the error number (B16), the program (MARGIN_BASE) and the line number (1). Sometimes the line number is wrong, refer to section &amp;quot;Misleading line numbers in error messages&amp;quot; below for more info.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;STACK:&amp;quot; line lists the &amp;quot;parent&amp;quot; calling programs &amp;quot;SYSMSG,LISTEN&amp;quot; used to trace how and where the error originates.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;DATA:&amp;quot; is a string of characters that is used to recreate the options used by the client in order to replicate the error message. See how to [[Troubleshooting_NEOSYS_Generally#Replicate_options_used_.26_error_using_sysmsg_Data: | replicate the error with the options used, using internal error email]]&lt;br /&gt;
&lt;br /&gt;
==== Misleading line numbers in error messages ====&lt;br /&gt;
&lt;br /&gt;
Many small NEOSYS utility programs are compiled to run faster than usual programs and will not report the correct line on errors like Variable Not Assigned.&lt;br /&gt;
&lt;br /&gt;
To get the actual line number, compile as usual. ie without the (CL) options mentioned below, and regenerate the error.&lt;br /&gt;
&lt;br /&gt;
Note that most of these programs should have a source line &amp;quot;linemark&amp;quot; or &amp;quot;*linemark&amp;quot; in them somewhere near the top. When single stepping in the debugger, the program will break on this line and this line alone.&lt;br /&gt;
&lt;br /&gt;
To compile a GBP program DATE for speed use something like the following:&lt;br /&gt;
&lt;br /&gt;
 COMPILE GBP DATE (CL)&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;L&amp;quot; means compile without line numbers. This makes them run faster, which is important for utility programs that are called extremely frequently eg for date or number input/output conversion.&lt;br /&gt;
*&amp;quot;C&amp;quot; means do not generate a symbol table in GBP $GETPERIOD. It makes no difference whether you do or do not.&lt;br /&gt;
&lt;br /&gt;
=== Addressing Browser related issues ===&lt;br /&gt;
&lt;br /&gt;
When resolving random browsing issues that seem to be on one user computer only, support MUST send the below email asking the user to check if the same issue occurs on other user computers. Rapidly convincing the user that the problem is only on their computer gains their willingness to sort the problem out at their end, using IT people if necessary and available.&lt;br /&gt;
&lt;br /&gt;
Handling random issues that appear to be on one computer is very very common and it is important to deal with it effectively, not requiring stages of &amp;quot;denial&amp;quot; by the users until they accept something has to be done at their end, and not by NEOSYS. Speeding up this process gains the confidence and appreciation of the users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Hi xxxx&lt;br /&gt;
&lt;br /&gt;
Is this error happening only on your computer? If that is the case, it may be due to an issue in your browser cache. Please clear your browser cache with assistance from your IT team if required. Then restart the browser and try again.&lt;br /&gt;
&lt;br /&gt;
If clearing browser cache does not fix the issue, I recommend a full browser reset to ensure that everything works fine.&lt;br /&gt;
&lt;br /&gt;
Follow these instructions for clearing browser cache and resetting browser:&lt;br /&gt;
http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers&lt;br /&gt;
&lt;br /&gt;
Please let us know if you face the issue again.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Handling_Browser_related_issues_in_NEOSYS| Handling Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
=== Addressing Technical support emails ===&lt;br /&gt;
&lt;br /&gt;
In the case of technical support issues, address emails to the IT person and cc the complete group of recipients of backup emails and other NEOSYS alert emails. This allows both NEOSYS and client IT staff to take credit for resolving issues that NEOSYS raises instead of working in the background unacknowledged.&lt;br /&gt;
&lt;br /&gt;
Technical support issues include backup failure, server failure, missing alert email, server connectivity issues and port forwarding issues and many other issues.&lt;br /&gt;
&lt;br /&gt;
For technical issues like browser configuration, clear cache, etc. support must send the user a link to the appropriate wiki article to help the user fix the problem. In some cases the user may be helpless and unable to follow the steps to fix the problem. In such cases, support MUST NOT waste time trying to help the user fix the problem, instead support MUST ask the user to get help from the IT person.&lt;br /&gt;
&lt;br /&gt;
=== Acceptable report format when handling issues in NEOSYS reports ===&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support must only resolve issues in NEOSYS output first. This is because only NEOSYS outputs can be trusted and user versions in Excel or PDF could be copied wrongly or edited by the user.&lt;br /&gt;
&lt;br /&gt;
In case users send reports in excel or other formats, get them to send the original NEOSYS HTML report as an attachment or copy-pasted in email.&lt;br /&gt;
&lt;br /&gt;
=== Handling requests to create new charts or control accounts===&lt;br /&gt;
&lt;br /&gt;
[http://userwiki.neosys.com/index.php/Setting_up_and_Configuring_NEOSYS_Finance_System#Creating_New_Charts_or_Control_Accounts Refer here]&lt;br /&gt;
&lt;br /&gt;
=== Handling issues with totals on reports ===&lt;br /&gt;
&lt;br /&gt;
If a client has a problem with any total output by NEOSYS software then NEOSYS support will advise them which other NEOSYS report or reports provide a complete breakdown of the total (if necessary, to individual transactions) and ask the client to locate any offending transactions themselves.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff will handle any issues where the total on the breakdown report does not add up to the total on the summary report.&lt;br /&gt;
&lt;br /&gt;
Reconciling totals can be hard if there are many transactions involved. Regardless of how hard it may be, reconciliation is an operational task for users not for support staff since NEOSYS support staff will not get involved in understanding client transactions or data.&lt;br /&gt;
&lt;br /&gt;
==== Trial Balance and Financial Statements ====&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff do not have to prove or trace any figures in NEOSYS Trial Balance Reports or any financial reports. If a figure is stated to be wrong by the user, then NEOSYS support staff should ask for proof or say NEOSYS is confident that the figures are correct unless proved otherwise. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff should point out reports in NEOSYS which will support the figures in question but not actually run the reports. Support staff can suggest the users to refer to detailed ledger accounts to prove balances.&lt;br /&gt;
&lt;br /&gt;
== Using VPN to enable secure access from outside the office ==&lt;br /&gt;
There are two ways in which a user can use VPN:&lt;br /&gt;
*User connects to the their office router and makes the PC act like it is on the office LAN.&lt;br /&gt;
*User connects to a VPN service that provides a static IP number and can therefore be authorised by NEOSYS to login.&lt;br /&gt;
&lt;br /&gt;
If the client intends to use VPN to connect to their office router and make the PC act like it is on the office LAN, then it depends on what VPN protocols the client&#039;s office router supports.&lt;br /&gt;
&lt;br /&gt;
The alternative is to use a paid VPN service that provides a static IP number. Getting a dynamic IP number on VPN is very cheap and there are many suppliers, but getting a static IP number on VPN services seems to be more expensive.&lt;br /&gt;
&lt;br /&gt;
Internally in NEOSYS we use PFSENSE routers which support OPENVPN which is extremely flexible.&lt;br /&gt;
&lt;br /&gt;
==Handling issues with Office PBX phones==&lt;br /&gt;
&lt;br /&gt;
Support should check their respective Office PBX phones every morning to find out if the phone is up and working. In case Support finds any issue with their phone, immediately fix it so that clients do not lose contact with the  Support team via phone. Next send an email to Support inbox mentioning the fault, cause and solution for records/future prevention.&lt;br /&gt;
&lt;br /&gt;
== Running undocumented commands on Maintenance mode==&lt;br /&gt;
&lt;br /&gt;
Support Staff MUST NOT run undocumented commands on ***LIVE*** database. Some commands are not documented for a reason, it could be because the commands might give an undesired output or because there is no clarity on what else could be effected by the command.&lt;br /&gt;
&lt;br /&gt;
Even if the command is tested in TESTING database and the output looks okay, support staff MUST get the programmer&#039;s approval before going ahead and running the command in LIVE database as there is no guaranty that the command is properly programmed and will do no damage.&lt;br /&gt;
&lt;br /&gt;
==Configuring Browsers to show Javascript errors in NEOSYS==&lt;br /&gt;
NEOSYS Support MUST ensure the following Settings for browsers because if NEOSYS generates any javascript error message, the same would appear in the bottom left corner of a window, which in turn helps the programmer to fix the error. This must be done after every Factory Reset.&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer===&lt;br /&gt;
Tools &amp;gt; Internet Options &amp;gt; Advanced &amp;gt; Browsing - the items Disable script debugging (Internet Explorer) and Disable script debugging (Other) are &#039;&#039;&#039;UNTICKED&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
===Chrome=== &lt;br /&gt;
Chrome Menu &amp;gt; More Tools &amp;gt; Extensions &amp;gt; Get More Extensions, search for &#039;&#039;&#039;Javascript Errors Notifier&#039;&#039;&#039;. Add the extension to Chrome.&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome.png]]&lt;br /&gt;
&lt;br /&gt;
[[image:Chrome1.png]]&lt;br /&gt;
===Firefox===&lt;br /&gt;
Firebug add-on is used to NOTIFY about script errors because we have no other method to get any warning on screen but you should use the main firefox developer tools to investigate any errors as firebug is essentially replaced by built in developer tools. &lt;br /&gt;
&lt;br /&gt;
For developer tools, go to Tools &amp;gt; Web Console&lt;br /&gt;
&lt;br /&gt;
To enable notifications for script errors, download the add-on Firebug from [https://addons.mozilla.org/en-US/firefox/addon/firebug/ here]. When a Javascript error is encountered, the firebug icon will report the number of errors.&lt;br /&gt;
&lt;br /&gt;
Set your firebug as per the second screen shot and select &amp;quot;Enable All Panels&amp;quot; as well, the tick will not appear like the other options but the option will get selected. If you miss out on any one of these steps, you will not be able to capture script errors.&lt;br /&gt;
&lt;br /&gt;
[[file:firebug1.jpg|1200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Firebug.png]]&lt;br /&gt;
&lt;br /&gt;
==Handling Browser related issues in NEOSYS==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Technical_/_Hardware_requirements#NEOSYS_Software_Browser_and_OS_Requirements NEOSYS browser requirements]&lt;br /&gt;
&lt;br /&gt;
Clients frequently ask [http://userwiki.neosys.com/index.php/General_FAQ#Why_doesnt_NEOSYS_support_my_XYZ_browser.3F Why NEOSYS doesn&#039;t support other browsers] &lt;br /&gt;
&lt;br /&gt;
To avoid browser errors, all new users must follow the steps given in [http://userwiki.neosys.com/index.php/Using_NEOSYS_Generally#Getting_started_with_NEOSYS Getting started with NEOSYS] before logging in to NEOSYS for the first time.&lt;br /&gt;
&lt;br /&gt;
To troubleshoot browser related errors see [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_Web_Browsers Troubleshooting Web Browsers]&lt;br /&gt;
&lt;br /&gt;
Users must clear browser cache after every NEOSYS Upgrade to avoid errors. See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS#Sample_email_to_be_sent_to_clients_who_face_issues_due_to_failure_in_clearing_browser_cache Sample email to clients who face issues due to failure in clearing browser cache]&lt;br /&gt;
&lt;br /&gt;
Pop-up blockers and any 3rd party toolbars must be deactivated/switched off or else certain pages and alert messages while using NEOSYS do not appear as a result of blocking from either the pop-up blocker or toolbars with built-in pop-up blockers. &lt;br /&gt;
&lt;br /&gt;
NEOSYS support must ask users to Reset browser (See [http://userwiki.neosys.com/index.php/Reset_Browser Reset browser]) if they notice any user browsers which have pop-up blockers or 3rd party toolbars installed.&lt;br /&gt;
&lt;br /&gt;
Also refer to [[Procedures#Addressing_Browser_related_issues| Addressing Browser related issues]]&lt;br /&gt;
&lt;br /&gt;
== Handling NEOSYS Upgrade==&lt;br /&gt;
See [http://techwiki.neosys.com/index.php/Upgrading_NEOSYS Upgrading NEOSYS]&lt;br /&gt;
&lt;br /&gt;
==Handling auto-reply emails like Out of Office etc.==&lt;br /&gt;
&lt;br /&gt;
From 28th May 2017 version, emails sent out by the NEOSYS system now contain headers that in effect request recipient email systems not to auto-reply for things like Out of Office. This is to reduce unnecessary chatter by silencing unnecessary automatic replies. There is no guarantee that recipient email systems will comply. The headers added are:&lt;br /&gt;
*X-Auto-Response-Suppress: RN, NRN, OOF&lt;br /&gt;
*Precedence: bulk&lt;br /&gt;
&lt;br /&gt;
Support team should notify SB of any auto-responses that come despite their installation being patched.&lt;br /&gt;
&lt;br /&gt;
In NEOSYS versions after 10th Jun 2017, emails sent by NEOSYS from the NEOSYS Help menu, i.e. manually triggered emails, do NOT indicate that OOF replies are not wanted, since if you are sending emails to people using NEOSYS, you will want to know if they are OOF.&lt;br /&gt;
&lt;br /&gt;
== Using Support Tools ==&lt;br /&gt;
=== Website Live Support ===&lt;br /&gt;
www.neosys.com is equipped with a Live Support software and clients can visit the website, click on this link and chat with any of our support staff, without the need for any installation. The client has to fill in their name and enter their questions to connect to an available support personnel. During non-working hours, the Live Support icon on the website automatically displays &amp;quot;offline&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
NEOSYS Support personnel who are authorised to provide such support, need to login to Live helper chat in Firefox using the link given below:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/&lt;br /&gt;
&lt;br /&gt;
Support personnel should enter the account details as provided by their Manager.&lt;br /&gt;
&lt;br /&gt;
Enable notifications for Live helper chat so that whenever there is a visitor trying to contact Support team, the Support personnel will get the notifications on his screen. &lt;br /&gt;
&lt;br /&gt;
Set the Live helper chat login page as your home page in Firefox and this page must be kept open for the whole duration of working hours. &lt;br /&gt;
&lt;br /&gt;
Support must always be alert and immediately reply to messages from visitors.&lt;br /&gt;
&lt;br /&gt;
Use the link below to enable notifications:&lt;br /&gt;
&lt;br /&gt;
 http://neosys.com/lhc_neosys/index.php/site_admin/chat/listchatconfig&lt;br /&gt;
&lt;br /&gt;
After setting up Live helper chat if you sign in to a new profile in Firefox, you might have to re enable the notifications after your Firefox is synced to the new profile.&lt;br /&gt;
&lt;br /&gt;
=== Teamviewer ===&lt;br /&gt;
Since Teamviewer allows no restriction on access once a fixed pass is installed, Support must not install fixed pass on teamviewer however convenient it might be.&lt;br /&gt;
&lt;br /&gt;
RULE: NO FIXED PASS TO BE INSTALLED ON TEAMVIEWER IN ANY NEOSYS OR NEOSYS CLIENT COMPUTER&lt;br /&gt;
&lt;br /&gt;
Running teamviewer live from a web link is fine because it does not allow installation of a permanent password&lt;br /&gt;
&lt;br /&gt;
For certain tasks that require temporary install of Teamviewer on the client servers (e.g. upgrading Cygwin remotely), use Teamviewer 7 on the server as well as Support staff computer. Contact NEOSYS IT for commercial license of Teamviewer 7. Teamviewer MUST be uninstalled after usage, otherwise it creates an additional unnecessary security risk.&lt;br /&gt;
&lt;br /&gt;
To support client users who use the latest version of Teamviewer, support staff must also install the latest Teamviewer version available alongside Teamviewer 7.&lt;br /&gt;
&lt;br /&gt;
== Documenting Processes in Wiki ==&lt;br /&gt;
NEOSYS Support staff must be in continual learning mode. This is mandatory for support staff and is not an option. Support must read, learn and understand everything in the support emails and ask questions if they don&#039;t understand. This understanding must be transferred into wiki in the form of new articles and improvements to existing articles.&lt;br /&gt;
&lt;br /&gt;
For all articles related to formatting and editing in Wiki, see [http://itwiki.neosys.com/index.php/Documenting_NEOSYS_systems Documenting NEOSYS systems]&lt;br /&gt;
&lt;br /&gt;
===Avoiding duplication of text in wiki===&lt;br /&gt;
&lt;br /&gt;
Duplication of text in wiki is to be avoided almost at any cost. Duplication has the problem that when one copy is changed or improved in future then it is highly likely the editor will fail to update the other copy or copies and wiki will over time become an inconsistent mess.&lt;br /&gt;
&lt;br /&gt;
There are several ways to avoid duplication:&lt;br /&gt;
&lt;br /&gt;
#Two or more procedures which have significant areas of duplication can be rewritten as a single procedure with alternatives in the middle of the procedure&lt;br /&gt;
#Wiki Templates- Templates reproduce the same text in all places and editing one place edits all places. See [[How to create templates in wiki]]&lt;br /&gt;
#Wiki links- Only put the text in one place and put links to that in all the other places that it is appropriate.&lt;br /&gt;
#Place a note in all copies something to the effect that &amp;quot;This is similar to x, y and z&amp;quot;. This alerts any future editor of all other places in wiki that might also have to be updated.&lt;br /&gt;
&lt;br /&gt;
Future modifications in one place may or may not be appropriate to other places. The editor must decide whether to change one or all places&lt;br /&gt;
&lt;br /&gt;
===Highlighting information in wiki===&lt;br /&gt;
&lt;br /&gt;
To highlight particular instructions or info in wiki do NOT invent new styles which are not the way the rest of wiki is done. Instead, follow the USUAL STYLE or open a DISCUSSION with any recommendations you have BEFORE USING THEM.&lt;br /&gt;
&lt;br /&gt;
Instead of using various kinds of highlighting styles like bolding and words like &amp;quot;Note:&amp;quot;, use the following words IN CAPITALS especially the word MUST.&lt;br /&gt;
&lt;br /&gt;
The use of the following words IN CAPITALS indicates that you are using them in a special way with formally defined meaning as explained below. Use of the words in lower case indicates that you are using the word in an ordinary commonsense meaning.&lt;br /&gt;
&lt;br /&gt;
*MAY - means optional&lt;br /&gt;
*SHOULD - means recommended and you need GOOD reason (not just any weak excuse) to not follow to follow this recommendation&lt;br /&gt;
*MUST - mandatory&lt;br /&gt;
&lt;br /&gt;
Only in the rare cases where the consequences of doing or not doing something are irreversible or take a lot of work to reverse then you can use your own additional highlighting methods, eg ALL CAPS, stars, color red etc.&lt;br /&gt;
&lt;br /&gt;
==== Explain WHY ====&lt;br /&gt;
&lt;br /&gt;
Any sentence which uses the word &amp;quot;MUST&amp;quot; in capitals, MUST be followed by a SPECIFIC REASON explaining exactly why is the instruction is mandatory; the reason MUST not be vague and non-specific meaning no more than &amp;quot;or bad things will happen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules.&lt;br /&gt;
&lt;br /&gt;
 WRONG way: You MUST also delete ads if deleting schedules otherwise it will cause problems in future.&lt;br /&gt;
&lt;br /&gt;
 CORRECT way: You MUST also delete ads if deleting schedules otherwise the deleted schedules&#039; ads will still show in all media-diary like reports and screens&lt;br /&gt;
&lt;br /&gt;
The Wrong way above gives a general reason &amp;quot;it will cause problems in future&amp;quot; which is vague and a reader may even go ahead and ignore &amp;quot;MUST&amp;quot; because there is no objective or proper side effect mentioned for not following the MUST statement. Basically he doesn&#039;t understand the point behind following a certain rule. &lt;br /&gt;
&lt;br /&gt;
Whereas the Correct way gives a SPECIFIC reason for &amp;quot;deleting ads while deleting schedules&amp;quot;, so reader will exactly know the trouble that will be caused if ads are not deleted. Therefore &amp;quot;SPECIFIC REASON&amp;quot; behind using the word MUST must be to the point and very informative.&lt;br /&gt;
&lt;br /&gt;
==== Why explain WHY ====&lt;br /&gt;
The information contained in the WHY phrase is often &#039;&#039;&#039;extremely informative&#039;&#039;&#039; to the reader about things that you may otherwise not have considered saying.&lt;br /&gt;
&lt;br /&gt;
The most valuable information is usually contained in the &amp;quot;WHY&amp;quot; of something. There is an apocryphal story of a company where managers could be fired if they gave instructions to their staff without providing explanation. In almost all cases it is better for the efficiency of a team of people that any instructions they follow contain the &amp;quot;WHY&amp;quot; of something. Only in few cases should staff be expected to follow instructions without being well or fully informed.&lt;br /&gt;
&lt;br /&gt;
== Email Retention Policy ==&lt;br /&gt;
&lt;br /&gt;
=== Generally ===&lt;br /&gt;
&lt;br /&gt;
Emails are retained permanently to allow old issues to be discovered in email searches.&lt;br /&gt;
&lt;br /&gt;
=== Account: backups@neosys.com ===&lt;br /&gt;
&lt;br /&gt;
Only the last 365 days of emails to backups@neosys.com are kept in general to reduce the burden on servers and clients due to the heavy number of emails.&lt;br /&gt;
&lt;br /&gt;
For the backups/neosys folder, only 31 days is kept due to the very high numbers of emails ~250/day.&lt;br /&gt;
&lt;br /&gt;
Deletions are configured in and done by a thunderbird client in NEOSYS IT so may not be continuous.&lt;br /&gt;
&lt;br /&gt;
== Use of personal email addresses by NEOSYS support staff ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff MUST NOT use any personal email addresses for NEOSYS business. &lt;br /&gt;
&lt;br /&gt;
The xxxx.neosys@gmail.com addresses that are created by support staff for themselves on joining are also considered personal email addresses and must not be used for NEOSYS business. These email addresses might be linked to NEOSYS wiki accounts but that doesn&#039;t matter because wiki is not confidential.&lt;br /&gt;
&lt;br /&gt;
== Accessing NEOSYS accounts on personal devices ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff MUST NOT install NEOSYS accounts on skype/dropbox/gmail (or any other external tool) on their personal devices without written permission from NEOSYS management&lt;br /&gt;
&lt;br /&gt;
== Support Staff work-in-progress documents/files ==&lt;br /&gt;
&lt;br /&gt;
Support Staff must not save working files hidden on their computer. Work that is not visible is not work .&lt;br /&gt;
Support work should not be done privately and should be shared to all.&lt;br /&gt;
&lt;br /&gt;
ALL personal working files however trivial MUST be stored in Dropbox and MUST NOT be stored anywhere in personal computer (My Documents/Desktop etc.)&lt;br /&gt;
&lt;br /&gt;
The personal encrypted pass file MUST be stored somewhere in personal folder under SB NEOSYS staff in Dropbox. This is because if there is a loss of OS/Computer, it should not lead to loss of access as all the passwords saved in the file will be lost.&lt;br /&gt;
&lt;br /&gt;
== Handling CLIENT/NEOSYS Servers ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff must exercise extreme caution when working on CLIENT and NEOSYS servers. Do not risk making changes without due care and attention to the fact that the consequences of errors can be serious on working production servers.&lt;br /&gt;
&lt;br /&gt;
=== Handling Javascript Files in NEOSYS ===&lt;br /&gt;
&lt;br /&gt;
All the files in NEOSYS installation folder with .JS and .JSE extension are the executable javascript files which startup NEOSYS processes (in a usual DOS window). Their default program is &#039;Microsoft Windows Based Script Host&#039; (wscript.exe). If a JavaScript file is opened using a notepad, the default program may change to notepad resulting in all NEOSYS processes to open up in a notepad.&lt;br /&gt;
&lt;br /&gt;
Hence be very CAREFUL when accessing a .JS and .JSE file and double check that the default program remains wscript.exe. Refer to [[Troubleshooting_NEOSYS_Generally#Fixing_wrong_default_program_assigned_to_open_a_file_type|Fixing wrong default program assigned to open a file type]] in case this issue comes up.&lt;br /&gt;
&lt;br /&gt;
== Handling &amp;quot;List of Open Ports&amp;quot; reports ==&lt;br /&gt;
&lt;br /&gt;
This email comes to NEOSYS support team once a day showing only those client&#039;s servers which appear to have changed what TCP ports are open to the internet since yesterday. It will also come once a week showing all clients servers open ports.&lt;br /&gt;
&lt;br /&gt;
NEOSYS support team should work patiently with client IT staff, over time if necessary, to close all ports that are not absolutely mandatory to be open.&lt;br /&gt;
&lt;br /&gt;
Clients with highly skilled IT staff may have a variety of ports open to various non-NEOSYS servers inside their organisation. In this case, NEOSYS plays little or no role other than getting their confirmation of exactly what ports are acceptable. Any new ports that appear over time should be handled in the same way.&lt;br /&gt;
&lt;br /&gt;
For clients without such staff, NEOSYS is their only real line of defence and since NEOSYS requested opening some ports, we should get all other ports closed by patiently following up until action is taken. Involving management may be the only way to get IT to act.&lt;br /&gt;
&lt;br /&gt;
In particular, port 80 and 443 controlling internal or external routers should be closed. It is NOT acceptable except in HIGH IT EXPERTISE environments that critical routers should be exposed to the internet and they MUST NOT be accessible from the internet because routers that do not have their software updated can be hacked using known defects. Even updated routers can be hacked. Making it easy for client IT staff to access the router configuration from outside is NOT a good enough excuse to break this rule. Professional IT does not allow access to critical routers from the internet.&lt;br /&gt;
&lt;br /&gt;
Likewise, any port 80 (unencrypted web access) and port 3389 (RDP remote desktop) open to the NEOSYS server MUST be closed otherwise logins can be monitored and there is no way to guarantee server security.&lt;br /&gt;
&lt;br /&gt;
Port 23 (Telnet) is an insecure port because it is unencrypted and should never be open for usage. This is standard practice and well known by any network professional. Since the port is unencrypted, attackers can listen in, watch for credentials, inject commands via man-in-the-middle attacks and ultimately perform Remote Code Executions (RCE).&lt;br /&gt;
&lt;br /&gt;
If a port is definitely required and properly approved to be open by client IT support, please let NEOSYS IT (SB) know and it will be put in the &amp;quot;Authorised&amp;quot; column so that ports in the &amp;quot;Questionable&amp;quot; column are all pending action.&lt;br /&gt;
&lt;br /&gt;
The report does not attempt to detect UDP ports since UDP ports can receive information from the internet without responding in any way so there is no way to detect them reliably.&lt;br /&gt;
&lt;br /&gt;
Green color shows ports that have opened since the last report run. Open ports can sometimes not be detected accurately so a port may appear to disappear in one report and reappear in the next report.&lt;br /&gt;
&lt;br /&gt;
=== Why should HTTP port 80 not be open on my router? ===&lt;br /&gt;
&lt;br /&gt;
It is not advisable to expose any HTTP server for any private service on your computer network or router because HTTP is unencrypted and this means that all information regarding that service, including passwords, can be observed by any malware on your LAN and internet connection. This information can then be used to install horrible software on your internal PCs.&lt;br /&gt;
&lt;br /&gt;
What to do?&lt;br /&gt;
&lt;br /&gt;
Use https for any internal services - and advisably on a non-standard port, not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
For example, NEOSYS service is exposed as HTTPS (not HTTP) usually on port 4430 - not the standard https port of 443.&lt;br /&gt;
&lt;br /&gt;
Commercial hacking is getting really common with things like FIREBALL and CRYPTOLOCKER causing a lot of damage.&lt;br /&gt;
&lt;br /&gt;
It is advisable to take basic precautions pro-actively before any attack exposes weaknesses.&lt;br /&gt;
&lt;br /&gt;
== Handling Nagios Client Monitoring system ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support staff on duty MUST follow the procedures outlined below in case the Firefox &amp;quot;imoin&amp;quot; add-on shows critical or warning messages for any service. Failure to schedule appropriate downtime will lead to REDUNDANT EMAIL ALERTS from Nagios every hour.&lt;br /&gt;
&lt;br /&gt;
Any alert on the Firefox &amp;quot;imoin&amp;quot; add-on means that there is an issue that has not been attended to properly, and &amp;quot;attended to&amp;quot; does not always mean solved. Support staff MUST solve the problem immediately if possible.&lt;br /&gt;
&lt;br /&gt;
If it is not possible to solve the problem immediately, then downtime/acknowledge the service and add a comment on the Nagios alert, explaining the problem briefly. &lt;br /&gt;
&lt;br /&gt;
Support should check Nagios frequently during the day to look for any new alerts so that issues are fixed as soon as possible.&lt;br /&gt;
&lt;br /&gt;
* Nagios is required to be checked first thing in the morning and any critical or warning messages need to be dealt with to resolve the same at the earliest.&lt;br /&gt;
* Some of the messages could be related to backup failures and the usual procedure as stated in Handling failure and warning messages on nightly backup alerts needs to be followed. In case the backup issue isn&#039;t resolved by 9:30 am, the Nagios service needs to be downtimed with an appropriate comment for a minimum of 2 hours and maximum until 1 am next day if the issue cannot be solved.&lt;br /&gt;
* In case of &amp;quot;Backup not changed&amp;quot; warning status which occurs if the client has not interchanged the USB before 12 noon on that day, no action is required from the support staff and a downtime with a comment like &amp;quot;Backup media not changed - Emailed client&amp;quot; needs to be scheduled until 1 am next day.&lt;br /&gt;
* In case any HTTPS, SSH, PING service or Host is down, immediate action is required and the relevant IT people at the client side needs to be contacted to get this resolved. A downtime of 2 hours with a comment like &amp;quot;Service/host down - Emailed client&amp;quot; is required to be scheduled with further intervals of 2 hours in case this is not resolved. Support staff shouldn&#039;t schedule downtime till 1 am next day, just to get rid of the alerts for the day. Proactive follow up with the client is required to get this resolved before the business day - more so, if there is a weekend ahead.&lt;br /&gt;
* In case the HTTPS, SSH, PING service or Host goes down during the day, a grace period of 10 minutes is given before the issue is reported to the client IT, in case there is any temporary internet connection issue at the client or along the internet route.&lt;br /&gt;
* In case the HTTPS, SSH PING service or Host is down for more than 1 day, client IT should acknowledge the problem and give NEOSYS support staff an approximate time frame before which the issue will be resolved. Set an appropriate downtime with a descriptive comment for such events.&lt;br /&gt;
* In case Host is down for more than 2 days and there is no progress with the fix from client IT, the client management should be notified about the seriousness of not having access to server and their acknowledgement is mandatory.&lt;br /&gt;
&lt;br /&gt;
== Handling lack of remote access to NEOSYS server located in client’s premises ==&lt;br /&gt;
&lt;br /&gt;
If access to the NEOSYS server is lost then we must determine the root cause by: &lt;br /&gt;
# Checking if the server is UP and running&lt;br /&gt;
# If yes, please check internet connectivity on the server&lt;br /&gt;
# If there is connectivity, please check the router for connectivity issues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
Please note that we have currently lost access to the NEOSYS server. The server seems to be down at the moment and it seems that &lt;br /&gt;
NEOSYS processes are not running on the server.&lt;br /&gt;
Kindly check if the server is UP and running. If yes, please check internet connectivity on the server.&lt;br /&gt;
Do keep us posted on the server status so we can test connectivity from our side as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== New Router (Port Forwarding) ==&lt;br /&gt;
&lt;br /&gt;
If you have changed your router then you may notice that external access to NEOSYS is unavailable. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to the NEOSYS Server as follows: &lt;br /&gt;
# Port 19580 &amp;gt; 19580 for SSH &lt;br /&gt;
# Port 4430 &amp;gt; 4430 for HTTPS&lt;br /&gt;
&lt;br /&gt;
You can see [http://portforward.com/ Set Up Port Forwarding] to learn how to configure your Router.&lt;br /&gt;
&lt;br /&gt;
To see how to test/ troubleshoot port forwarding settings, go to [[Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding|Troubleshooting Port Forwarding]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Response:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
You are requested to kindly setup a permanent access for NEOSYS by reconfiguring the Router / Firewall for Port Forwarding from Router to &lt;br /&gt;
the NEOSYS Server,i.e.  port 19580 for SSH and port 4430 for HTTPS.&lt;br /&gt;
&lt;br /&gt;
Once this is complete, kindly send me an email to confirm the same so that we could test connectivity from our end as well.&lt;br /&gt;
&lt;br /&gt;
Best Regards&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Creating and Handling passwords ==&lt;br /&gt;
=== Creating a password ===&lt;br /&gt;
Passwords are generated from a pass phrase and it is important to create a very difficult to guess pass phrase.&lt;br /&gt;
&lt;br /&gt;
Passwords made out of a pass phrase MUST be at least 10 characters since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts.&lt;br /&gt;
&lt;br /&gt;
For example, a good pass phrase would be: &#039;&#039;&#039;Today is a good day and it is the best time to go for a holiday&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The password for this would be &#039;&#039;&#039;Tiagd&amp;amp;iitbt2g4ah&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The important instructions for the above are:&lt;br /&gt;
#You have to take the first letter of each word and that makes your password (i.e. by using initials)&lt;br /&gt;
#Wherever any word starts with a capital, then you have to take first letter as a capital (eg. For Today you will take T)&lt;br /&gt;
#Replace &#039;&#039;&#039;and&#039;&#039;&#039; with &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;to&#039;&#039;&#039; with &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
#Replace &#039;&#039;&#039;for&#039;&#039;&#039; with &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Handling passwords ===&lt;br /&gt;
#Never send the actual password - always send the pass phrase&lt;br /&gt;
#Make sure that the password created out of the pass phrase is at least 10 characters long since using initials results in a lot of i&#039;s and a&#039;s etc which reduces the effectiveness of the password and allows hacking via brute force guessing especially since windows doesnt slow down logins even if it sees thousands of password attempts&lt;br /&gt;
#Pass phrases are never to be sent by email, whatever the case maybe.&lt;br /&gt;
#Pass phrases can be sent by chat - however they have to be broken down in two parts and sent separately over two different messengers or if you are using Gtalk then use the &#039;off the record&#039; mode.&lt;br /&gt;
#Using SMS to send pass phrases is the best known way as of now.&lt;br /&gt;
#If you save the passwords on your system in an file then:&lt;br /&gt;
#*Ensure that you only store pass phrases in the excel file&lt;br /&gt;
#*Ensure that the excel file is encrypted with a master password&lt;br /&gt;
&lt;br /&gt;
== NEOSYS Maintenance Window ==&lt;br /&gt;
&lt;br /&gt;
The NEOSYS server is functional from 6am – 1am. There is a 5hr window gap for the system to perform updates &amp;amp; backups.&lt;br /&gt;
&lt;br /&gt;
The 5hr maintenance window:-&lt;br /&gt;
&lt;br /&gt;
1. At 1am – The server performs a data backup on a USB (for the respective clients) &amp;amp; once the backup has been completed, the system automatically generates an email addressed to the neosys staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
2. At 2:45am – The main data over writes the test data on the server.&lt;br /&gt;
&lt;br /&gt;
3. At 3:00am – The server by itself performs an update for Windows.&lt;br /&gt;
&lt;br /&gt;
4. At 4:00am – The server performs a backup to the headquarters for clients, and then automatically generates an email addressed to the NEOSYS staff &amp;amp; the respective clients.&lt;br /&gt;
&lt;br /&gt;
5. At 6:00am – The server starts up NEOSYS.&lt;br /&gt;
&lt;br /&gt;
== Using NEOSYS Terminology while communicating with Clients ==&lt;br /&gt;
&lt;br /&gt;
NEOSYS support must communicate in correct language to clients on finance issues in order to ensure that our records exactly represent reality. Conversely NEOSYS must not use other terminology because it can cause considerable confusion and poor quality results. In case client is new and still in training, use client terminology optionally as long as&lt;br /&gt;
#It is only an addition to NEOSYS standard terminology&lt;br /&gt;
#Only if clear that it is client terminology by putting in brackets like this &amp;quot;Sales Invoices (called PI by you)&amp;quot;, where &amp;quot;you&amp;quot; means the client you are talking to or you can put the client company name instead perhaps.&lt;br /&gt;
&lt;br /&gt;
The objective is over time to avoid having the support team to have to know the terminology of the client. NEOSYS support team cannot possibly know and remember it for each client therefore the client MUST over time learn and use NEOSYS terminology. The initial period is one of relearning and translation for the client not for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
Many users operating NEOSYS finance module do not know proper financial procedures and may not appreciate how doing something in a wrong or unusual way now may not be correctable in the future.&lt;br /&gt;
&lt;br /&gt;
NEOSYS staff must follow NEOSYS procedures only. If NEOSYS procedures need to be updated then this must be agreed in advance and not AFTER the fact.&lt;br /&gt;
&lt;br /&gt;
== Amending/Reposting Journal Entries ==&lt;br /&gt;
In certain exceptional cases, amending/reposting of journal entries is allowed for only one day to enable clients to present reports in an alternative manner. &lt;br /&gt;
&lt;br /&gt;
It must be agreed with the client that reposting rights will be granted for only one day and NEOSYS Support will automatically remove it and check for CCB error thereafter.&lt;br /&gt;
&lt;br /&gt;
This would be subject to NEOSYS requiring a written LETTER OF APPROVAL duly signed and stamped by the highest management of the company.&lt;br /&gt;
&lt;br /&gt;
In case the client management decides to allow editing/reposting of journal entries, the following procedure is to be followed:&lt;br /&gt;
# Client must de-allocate vouchers which need to be amended&lt;br /&gt;
# NEOSYS support staff must wait for a day so that de-allocated vouchers are copied into Test database&lt;br /&gt;
# Authorise required users to amend and repost (without record) &#039;&#039;&#039;in Test database only&#039;&#039;&#039; &amp;lt;br&amp;gt;( While reposting, we have 2 options i.e. with record and without record. The &#039;with record&#039; option causes the system to maintain a history of edits made. Hence, we want to repost without record so that there is no trace of the edit in the system)&lt;br /&gt;
# Amend a substantial number of vouchers in Test and verify them.&amp;lt;br&amp;gt;To verify if the edits made are reflected:&lt;br /&gt;
# *Print all ledgers for the whole year&lt;br /&gt;
# *Cross-check all balances&lt;br /&gt;
# Once you verify the balances are correct in Test database, grant users permission to amend and repost in the Live database.&lt;br /&gt;
# Ask users to amend and repost vouchers in the Live database.&lt;br /&gt;
# Cross-check all balances for the current year.&lt;br /&gt;
# If you successfully verify the balances, revoke permissions immediately. Else, wait for 24 hours and revoke permissions irrespectively.&lt;br /&gt;
&lt;br /&gt;
== Removal of unauthorized third-party software on client servers ==&lt;br /&gt;
&lt;br /&gt;
Rule: Any third party software that is discovered by NEOSYS support staff on client servers that has been installed without the agreement of NEOSYS should be uninstalled immediately on discovery.&lt;br /&gt;
&lt;br /&gt;
However purposeful a software is, NEOSYS is contractually responsible for support and there are too many opportunities for poorly installed software to cause unpredictable damage to the NEOSYS database so NEOSYS has to have a clear and safe and simple policy to ensure the integrity of client data. Installing software without prior discussion with NEOSYS by itself indicates that insufficient care and consideration has been given to possible issues.&lt;br /&gt;
&lt;br /&gt;
Having unauthorized third party software on the server can possibly lead to a backup failure. For example, [[Backup_and_Restore#Error_Message:_.22LISTS_file_is_not_available.22|LISTS file not available]] error.&lt;br /&gt;
&lt;br /&gt;
Any software required by client IT for some purpose may only be installed after discussion and agreement from NEOSYS support staff concerning the configuration and operation of the software.&lt;br /&gt;
&lt;br /&gt;
The NEOSYS Software Licence and Support agreement requires that where NEOSYS software is installed on client servers that a dedicated server is provided and dedicated implies that no other software may be installed without the agreement of NEOSYS support.&lt;br /&gt;
&lt;br /&gt;
== Configuring tunnelier to autologin on opening tlp files ==&lt;br /&gt;
If you have many tunnelier tlp files in a directory and connect by opening the desired tlp file the, instead of opening the file and then clicking Login you can also right click the file and select Connect.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can configure tunnelier to login (connect) automatically by following the procedure mentioned below. (Even if you configure automatic login, you can still open and not login by right clicking and choosing Open)&lt;br /&gt;
&lt;br /&gt;
=== Windows 8 ===&lt;br /&gt;
&lt;br /&gt;
Cannot be done using standard Windows UI. Some download utilities can do it. TODO put a safe one in neosys.com/support&lt;br /&gt;
&lt;br /&gt;
=== Windows XP/Vista/7/2008 ===&lt;br /&gt;
&lt;br /&gt;
#Go to My Computer&lt;br /&gt;
#Click on Tools -&amp;gt; Folder Options &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-1.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on File Types&lt;br /&gt;
#*Select TLP (Bitvise Tunnelier Profile) [Type &amp;quot;TLP&amp;quot; to find it quickly]&lt;br /&gt;
#*Click on Advanced &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[image:tunnauto-2.jpg]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Connect and Click on Set Default &amp;lt;br&amp;gt;&amp;lt;br&amp;gt; [[image:tunnauto-3.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== International v/s Indian English ==&lt;br /&gt;
&lt;br /&gt;
There are some words which have completely different meanings in International and Indian English. NEOSYS Staff should follow International English only. Below are the examples of few of those words:&lt;br /&gt;
&lt;br /&gt;
Word: &#039;&#039;&#039;Doubt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the English language word &amp;quot;doubt&amp;quot; means to distrust an alleged fact on the basis of a reason, depending on the strength of the reason which may be anything from factual to feeling e.g &amp;quot;I have no reason to doubt him&amp;quot;.&lt;br /&gt;
This usage is followed worldwide.&lt;br /&gt;
&lt;br /&gt;
Some people especially from Indian origin use &amp;quot;doubt&amp;quot; when they are unaware about a fact. e.g &amp;quot;I want to clear my doubts about this procedure&amp;quot;. This is incorrect. The word must be used when you do not agree on something on the basis of a reason and not when you do not have knowledge about it.&lt;br /&gt;
&lt;br /&gt;
==[[ New Employee Training Checklist]]==&lt;br /&gt;
&lt;br /&gt;
==[[ New Client Training Notes]]==&lt;br /&gt;
&lt;br /&gt;
==[[ General Office Procedures]]==&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Setting_up_and_using_remote_support&amp;diff=3624</id>
		<title>Setting up and using remote support</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Setting_up_and_using_remote_support&amp;diff=3624"/>
		<updated>2019-06-18T12:23:01Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Finding the script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting agreement of client IT staff to provide remote access ==&lt;br /&gt;
&lt;br /&gt;
[[Letter to obtain agreement of client IT staff to provide remote access]]&lt;br /&gt;
&lt;br /&gt;
== Initial Connection to the server before setting up permanent remote connection ==&lt;br /&gt;
&lt;br /&gt;
For remote installation you need to get an initial connection to the server before you can setup Cygwin for a permanent remote connection. Use either use your customised reverse connect UltraVNC SC file or the one-time run [[link:neosys.com/help | Teamviewer]] utility. (Teamviewer is typically used)&lt;br /&gt;
&lt;br /&gt;
If the client has already gone ahead and provided Microsoft RDP with an obvious/weak system password, then Support MANDATORY MUST get Windows reinstalled from scratch. Antivirus may not be able to tell that the server has been infected and rootkitted and therefore a scan does not prove it has not been infected.&lt;br /&gt;
&lt;br /&gt;
Support MUST not provide NEOSYS support via Microsoft Remote Desktop Client (RDP/RDC) on port 3389 at anytime because it is a BAD idea to simply open port 3389 since an open port 3389 attracts scanners/hackers like flies. &lt;br /&gt;
&lt;br /&gt;
Also, IT suppliers not aware of the situation often setup the initial administrator password to something obvious like &amp;quot;password&amp;quot; or the arent-I-clever &amp;quot;P@ssw0rd&amp;quot; or even blank. In this case there is a good chance internet worms will discover the &amp;quot;open door&amp;quot; and install themselves before you get the chance to put a strong password.&lt;br /&gt;
&lt;br /&gt;
== Installing and configuring SSH ==&lt;br /&gt;
=== Installing Cygwin with OPENSSH ===&lt;br /&gt;
&lt;br /&gt;
These instruction are only for installing in a server NOT part of a domain. For installing in a server that is part of a domain, see http://cygwin.com/faq-nochunks.html#faq.using.sshd-in-domain&lt;br /&gt;
&lt;br /&gt;
Watch out for non-intuitive steps like clicking &amp;quot;skip&amp;quot; to install something.&lt;br /&gt;
&lt;br /&gt;
Read [[Avoid Corrupting Cygwin Installations]]&lt;br /&gt;
&lt;br /&gt;
# Instruct client to login to server as Administrator.&lt;br /&gt;
# Connect to client server via Teamviewer or customised reverse connect UltraVNC SC file.&lt;br /&gt;
# ENSURE that you are logged in as the local (NOT DOMAIN) administrator.&lt;br /&gt;
# Download/Run/Install http://www.cygwin.com/setup.exe&amp;lt;br&amp;gt;(you might have to go to the home page http://www.cygwin.com and click the link to setup.exe)&lt;br /&gt;
# Download source: &#039;&#039;&#039;Install from Internet&#039;&#039;&#039;&lt;br /&gt;
# Root Directory: &#039;&#039;&#039;c:\cygwin&#039;&#039;&#039;&lt;br /&gt;
# Local Package Directory: &#039;&#039;&#039;c:\cygwin.lib&#039;&#039;&#039;&lt;br /&gt;
# Choose &amp;quot;yes&amp;quot; to &amp;quot;Folder does not exist. Create new?&amp;quot;&lt;br /&gt;
# Internet Connection: &#039;&#039;&#039;Direct Connection&#039;&#039;&#039;&lt;br /&gt;
# Download Site: &#039;&#039;&#039;http://mirrors.kernel.org&#039;&#039;&#039; (near the bottom)&amp;lt;br&amp;gt;(If this does not show in the list, key in the URL in the field &#039;&#039;&#039;User URL&#039;&#039;&#039; and click on Add)&lt;br /&gt;
# Select Packages: Maximise window then click &#039;&#039;&#039;View&#039;&#039;&#039; once to get &#039;&#039;&#039;Full&#039;&#039;&#039;. You can then enter the name of the desired packages in the Search box to speed up location of the desired packages.&lt;br /&gt;
# Next to the package &#039;&#039;&#039;OPENSSH&#039;&#039;&#039;, click the word &#039;&#039;&#039;Skip&#039;&#039;&#039; (once!) to get version 4.4p1-1 or later&lt;br /&gt;
# Next to the package &#039;&#039;&#039;NANO&#039;&#039;&#039;, click the word &#039;&#039;&#039;Skip&#039;&#039;&#039; (once!) to get the latest version available&lt;br /&gt;
# Check the NEOSYS INSTALLATION CHECKLIST for any other packages to install like the above.&lt;br /&gt;
# Click Next and complete the installation&lt;br /&gt;
&lt;br /&gt;
=== Win32 Error ===&lt;br /&gt;
&lt;br /&gt;
The Win32 Error occur when the bad file is cached in internet explorer cache. You can try clearing the internet explorer cache and redownloading or you can try to download from cygwin.com instead of www.cygwin.com so it doesnt look in the cache or www.cygwin.com if your original download was from cygwin.com. All else failing, you can simply upload the setup.exe file from your own pc to the server. &lt;br /&gt;
&lt;br /&gt;
All this relates to win32 error when running a downloaded file. Any downloaded file and not just cygwin.com/setup.exe&lt;br /&gt;
&lt;br /&gt;
===Error during setup===&lt;br /&gt;
&lt;br /&gt;
In case of the following error, check for proxy settings in internet explorer. It is possible that the client uses a proxy setting. In that case, in Step 7 instead of choosing &amp;lt;b&amp;gt;Direct Connection&amp;lt;/b&amp;gt;, choose &amp;lt;b&amp;gt;Use Internet Explorer Proxy Setting&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 Unable to get setup.ini from &amp;lt;http://mirrors.kernel.org/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Cygwin install error.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configuring and starting SSHD ===&lt;br /&gt;
Open the Cygwin icon to get a linux/bash command line and type:&lt;br /&gt;
&lt;br /&gt;
Run the following commands: (not needed in recent versions of Cygwin so dont do this)&lt;br /&gt;
&lt;br /&gt;
 chmod +r /etc/passwd&lt;br /&gt;
 chmod +r /etc/group&lt;br /&gt;
 chmod 777 /var&lt;br /&gt;
&lt;br /&gt;
Refer [[Setting_up_and_using_remote_support#Reinstalling_SSHD_if_service_fails_to_startup| here]] if you get an error while doing the above steps.&lt;br /&gt;
&lt;br /&gt;
Prevent cygwin from using Unix like permissions on files it creates&lt;br /&gt;
&lt;br /&gt;
 nano /etc/fstab&lt;br /&gt;
&lt;br /&gt;
add the line or just add &amp;quot;,noacl&amp;quot; to the existing similar line. (What is the effect of omitting this?)&lt;br /&gt;
&lt;br /&gt;
 none /cygdrive cygdrive binary,posix=0,user,noacl 0 0&lt;br /&gt;
&lt;br /&gt;
Thereafter start with the ssh configuration:&lt;br /&gt;
&lt;br /&gt;
 ssh-host-config&lt;br /&gt;
&lt;br /&gt;
Then on the following options type:&lt;br /&gt;
 Only asked if running again:&lt;br /&gt;
 Overwrite existing /etc/ssh_config file? yes&lt;br /&gt;
 Overwrite existing /etc/sshs_config file? yes&lt;br /&gt;
 .&lt;br /&gt;
 StrictModes                 -   no&lt;br /&gt;
 Privilege                   –   yes&lt;br /&gt;
 New local sshd account      -   yes&lt;br /&gt;
 Install SSHD as a service   -   yes&lt;br /&gt;
 Enter value of daemon       -   Just press Enter&lt;br /&gt;
 Different name              -   no&lt;br /&gt;
 Create new privileged user  -   yes&lt;br /&gt;
 Enter a password now        -   Invent a NEW totally random password with caps and both upper and lower case.&lt;br /&gt;
 Re-enter the password       -   Enter it again. Dont record it anywhere. Forget it.&lt;br /&gt;
&lt;br /&gt;
At the command prompt type&lt;br /&gt;
&lt;br /&gt;
 net start sshd&lt;br /&gt;
&lt;br /&gt;
=== Configuring SSHD to use a non-standard port number ===&lt;br /&gt;
&lt;br /&gt;
This is necessary if the router cannot forward port 19580 --&amp;gt; 22 and we don’t want to open port 22 directly.&lt;br /&gt;
&lt;br /&gt;
Capitalization is SIGNIFICANT AND CANNOT BE IGNORED in cygwin/linux commands&lt;br /&gt;
&lt;br /&gt;
open cygwin command prompt&lt;br /&gt;
&lt;br /&gt;
 cd /etc&lt;br /&gt;
 nano sshd_config&lt;br /&gt;
&lt;br /&gt;
change the Port to look like this:&lt;br /&gt;
&lt;br /&gt;
 #Port 22&lt;br /&gt;
 Port 19580&lt;br /&gt;
&lt;br /&gt;
Also add the last line to the following section. Refer [[Setting_up_and_using_remote_support#Solving_.22Authentication_that_can_continue:_publickey.2Cpassword.22_Error_when_connecting_to_remote_servers_via_remote_access_clients| Error when connecting to remote servers]] to see why this line is added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Change to no to disable s/key passwords&lt;br /&gt;
#ChallengeResponseAuthentication yes&lt;br /&gt;
ChallengeResponseAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Press Ctrl+x to save. On the confirmation type Y and on the next prompt hit enter.&lt;br /&gt;
&lt;br /&gt;
 net stop sshd&lt;br /&gt;
 net start sshd&lt;br /&gt;
&lt;br /&gt;
To check that the server is running and listening on port 19580&lt;br /&gt;
&lt;br /&gt;
 ssh -p 19580 administrator@localhost&lt;br /&gt;
&lt;br /&gt;
If you are asked for to confirm the server id is correct or enter password then the check is successful. No need to continue.&lt;br /&gt;
&lt;br /&gt;
=== Changing ssh login from “Administrator” to “administrator” ===&lt;br /&gt;
Current NEOSYS policy to cater for recent versions of Cygwin is to rename the windows Administrator user to administrator to keep a consistent ssh login across all installations.&lt;br /&gt;
&lt;br /&gt;
If you forget to do this before installing or upgrading Cygwin then you must to the following:&lt;br /&gt;
&lt;br /&gt;
#Rename “Administrator” to “administrator” in Windows&lt;br /&gt;
#*If you cannot rename Administrator to administrator, follow the procedure mentioned at [[Changing username from Administrator to administrator]]&lt;br /&gt;
#In a Cygwin console do:&lt;br /&gt;
&lt;br /&gt;
 mkpasswd &amp;gt; /etc/passwd&lt;br /&gt;
&lt;br /&gt;
It should come back with nothing&lt;br /&gt;
&lt;br /&gt;
=== Error while changing Cygwin port 22 to 19580 ===&lt;br /&gt;
&lt;br /&gt;
Error Message:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Could not open file for writing: permission denied&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Occurrence:&lt;br /&gt;
Sometimes when you edit the sshd_config file through NANO.&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
In SSH shell, follow these commands:&lt;br /&gt;
&lt;br /&gt;
 cp sshd_config ashwin_temp #copies sshd_config to a new file ashwin_temp&lt;br /&gt;
 rm sshd_config             #deletes sshd_config&lt;br /&gt;
 cp ashwin_temp sshd_config #copies ashwin_temp to sshd_config&lt;br /&gt;
&lt;br /&gt;
In case it does not copy sshd_config to ashwin_temp, than check whether an ashwin_temp filename exists and delete it using the rm command.&lt;br /&gt;
&lt;br /&gt;
=== Opening up ssh connections to additional source ip nos ===&lt;br /&gt;
&lt;br /&gt;
Starting a NEOSYS process will automatically restrict cygwin ssh to accept connections from known NEOSYS company static ip numbers.&lt;br /&gt;
&lt;br /&gt;
In the cygwin command line, insert a line in the list of allowable hosts&lt;br /&gt;
&lt;br /&gt;
DO NOT ALLOW ALL OR GENERAL SSH ACCESS TO NEOSYS CLIENTS SERVERS WITHOUT GETTING PERMISSION *AND* INSTALLING EMAIL ALERTS FOR LOGINS AS DESCRIBED BELOW&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts.allow&lt;br /&gt;
&lt;br /&gt;
Enter IP numbers or CIDR format:&lt;br /&gt;
&lt;br /&gt;
 sshd 12.34.56.78&lt;br /&gt;
 sshd 12.34.0.0/16&lt;br /&gt;
&lt;br /&gt;
=== Setting up email alerts for cygwin ssh logins  ===&lt;br /&gt;
&lt;br /&gt;
1. Use http://www.cygwin.com/setup.exe to install &amp;quot;email&amp;quot; and &amp;quot;whois&amp;quot; packages. MUST READ [[Avoid_Corrupting_Cygwin_Installations#To_see_what_modules_Cygwin_is_going_to_update |See what modules Cygwin is going to update]]&lt;br /&gt;
&lt;br /&gt;
2. Run Cygwin and copy &amp;amp; paste script below into new file sshrc. Change it@neosys.com to the email ID to which the alert needs to be sent.&lt;br /&gt;
&lt;br /&gt;
 cd /etc&lt;br /&gt;
 nano sshrc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
#you configure this&lt;br /&gt;
&lt;br /&gt;
ALERTEMAILADDRESS=it@neosys.com&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#get the ip number without the ipv6 prefix&lt;br /&gt;
FROMIPNO=`echo $SSH_CLIENT|cut -f 1 -d &amp;quot; &amp;quot;|sed &#039;s/::ffff://&#039;`&lt;br /&gt;
#&lt;br /&gt;
#quit with no message if from a known host&lt;br /&gt;
&lt;br /&gt;
if grep -x $FROMIPNO /etc/trustedipnos&lt;br /&gt;
then exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#get the host name by reverse lookup&lt;br /&gt;
&lt;br /&gt;
FROMHOST=`nslookup $FROMIPNO|grep &amp;quot;name =&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#get whois info about the login ip number&lt;br /&gt;
&lt;br /&gt;
#and pipe it into the mail program&lt;br /&gt;
#&amp;quot;&amp;amp;&amp;quot; on the end creates a new process in order not to delay login&lt;br /&gt;
&lt;br /&gt;
whois $FROMIPNO|\&lt;br /&gt;
email -q -f nl1@neosys.com -s &amp;quot;login $USER $FROMIPNO $FROMHOST&amp;quot; -r \&lt;br /&gt;
mailout.neosys.com -p 2500 $ALERTEMAILADDRESS&amp;amp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Give execute permission to sshrc script file for all groups (owner, group, other):&lt;br /&gt;
&lt;br /&gt;
 chmod a+x sshrc &lt;br /&gt;
&lt;br /&gt;
4.Add trusted IPs by copying &amp;amp; pasting text below:&lt;br /&gt;
&lt;br /&gt;
 cd /etc&lt;br /&gt;
 nano trustedipnos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#IP ranges and CIDR etc not accepted yet&lt;br /&gt;
&lt;br /&gt;
#vm1.neosys.com for remote checking&lt;br /&gt;
85.17.154.105&lt;br /&gt;
&lt;br /&gt;
#nl1.neosys.com&lt;br /&gt;
83.149.104.167&lt;br /&gt;
&lt;br /&gt;
#nl2.neosys.com&lt;br /&gt;
85.17.154.66&lt;br /&gt;
&lt;br /&gt;
#uk.neosys.com&lt;br /&gt;
78.143.212.191&lt;br /&gt;
&lt;br /&gt;
#nl3.neosys.com&lt;br /&gt;
94.75.233.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quick way of adding all Support&#039;s public keys to allow Remmina support===&lt;br /&gt;
&lt;br /&gt;
If a server has lost all authorised keys in .ssh/authorized_keys file, then instead of Support adding their public key individually using &amp;quot;./autologin.sh&amp;quot; use this method:&lt;br /&gt;
&lt;br /&gt;
#Connect via SSH to any other client server that has support team&#039;s public keys saved. &lt;br /&gt;
#Then open Cygwin and type: &amp;lt;pre&amp;gt;cat .ssh/authorized_keys&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Select and copy all the text in the file. i.e public keys&lt;br /&gt;
#Exit and connect to the the new client and open Cygwin and type:&amp;lt;pre&amp;gt;nano .ssh/authorized_keys&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Right click and paste the copied keys in a new line below any possible existing keys ensuring that each key appears in a separate single line and then save and close the authorized_keys file.&lt;br /&gt;
#Check that you can connect to the target server using automatic SSH authentication (SSH Agent or Public key option) in Remmina.&lt;br /&gt;
&lt;br /&gt;
=== Testing SSH connection to the NEOSYS server over port 19580 ===&lt;br /&gt;
&lt;br /&gt;
If you cannot connect to the server using SSH, see [[Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding|Troubleshooting NEOSYS remote support port forwarding]]&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting SSH: If SSH connects and then disconnects immediately without exchanging keys ===&lt;br /&gt;
 &lt;br /&gt;
The first time that NEOSYS runs, it automatically adds source ip number restrictions to the sshd remote support configuration in /etc/hosts.allow and /etc/hosts.deny. This is an important security procedure to allow connection to clients systems from NEOSYS ip numbers only. This process allows only local and known NEOSYS ip numbers to connect using SSH. Upgrading NEOSYS will add and/or remove allowable ip numbers as NEOSYS configuration changes.&lt;br /&gt;
&lt;br /&gt;
It is possible that in some client network configurations incoming ssh connections will appear to be from the clients internal routers with an ip unknown to NEOSYS due to NAT configurations. Therefore ssh connections will be blocked unless specifically allow the local ip number or it is added into an upgraded version of NEOSYS.&lt;br /&gt;
&lt;br /&gt;
NOTE: Therefore you must check that remote support via ssh works AFTER you have run NEOSYS once (maintenance mode). &lt;br /&gt;
 &lt;br /&gt;
#Look in the Windows, Computer Management, System Tools, Event Viewer, Application&lt;br /&gt;
#Search for entries from source &amp;quot;sshd&amp;quot;, double click and look in the Event Properties, Description for ip numbers&lt;br /&gt;
#Information type sshd entries will give the ip number of successful sshd connections.&lt;br /&gt;
#Warning type sshd entries will give the ip number of failed sshd connections.&lt;br /&gt;
#Find the ip number of failed connections.&lt;br /&gt;
&lt;br /&gt;
==== Possible Problem 1 - Port mapping in router is using NAT ====&lt;br /&gt;
&lt;br /&gt;
If the ip number of failed connections is some local ip number (of the router for example) then possibly the inbound port forwarding has been done with NAT and the source ip number has been lost. Therefore the NEOSYS ip restrictions are blocking ssh connections because they appear to be coming from an unknown ip number (ie that of the router)&lt;br /&gt;
&lt;br /&gt;
==== Solution 1A ====&lt;br /&gt;
&lt;br /&gt;
Change the router configuration to not use NAT and leave the genuine original source IP number&lt;br /&gt;
&lt;br /&gt;
==== Solution 1B ====&lt;br /&gt;
The router is sadly using NAT instead of plain old port forwarding.&lt;br /&gt;
&lt;br /&gt;
DO NOT USE THIS PROCEDURE TO BREAK NEOSYS SECURITY. DO NOT GRANT ACCESS TO ANY IP OTHER THAN CLIENTS ROUTER IPS&lt;br /&gt;
&lt;br /&gt;
The solution is to add NAT router IP to the list of authorised IP numbers on the NEOSYS server. This solution provides access to NEOSYS server from outside office unrestricted by IP number, hence Client Management approval must be obtained before this solution is applied.&lt;br /&gt;
&lt;br /&gt;
Sample Email to Management-&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Dear XXXX,&lt;br /&gt;
 &lt;br /&gt;
 Support must have remote access to the NEOSYS server via SSH but currently we don’t have access.&lt;br /&gt;
 &lt;br /&gt;
 This is because your router is using NAT. The NAT router translates the source IP to its own hence the source IP is lost. NEOSYS server &lt;br /&gt;
 has  a list of allowed source IPs and since the router’s IP is not in the list, connection fails.&lt;br /&gt;
 &lt;br /&gt;
 The solution to establish successful connectivity is to allow access to NEOSYS server from your NAT router by adding the router’s IP in&lt;br /&gt;
 list of allowed IPs on the server.&lt;br /&gt;
 &lt;br /&gt;
 We need your agreement to carry out this solution because authorizing this access means access to NEOSYS from outside office will not be  &lt;br /&gt;
 restricted by IP any more.&lt;br /&gt;
 &lt;br /&gt;
 Please confirm that this solution is OK.&lt;br /&gt;
 &lt;br /&gt;
 Best Regards&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On receipt of Management approval, add the routers IP number to the list of authorised IP numbers in the cygwin hosts.allow file as follows:&lt;br /&gt;
&lt;br /&gt;
 nano /etc/hosts.allow&lt;br /&gt;
&lt;br /&gt;
and add the line as follows but put the IP number of your router&lt;br /&gt;
&lt;br /&gt;
 sshd: allow 192.168.0.99&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#If the router IP changes then NEOSYS remote support will fail until this line is changed&lt;br /&gt;
#Do not grant access to 192.168.* etc. since this allows local LAN viruses to attack&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting sshd ===&lt;br /&gt;
&lt;br /&gt;
You can run the sshd service interactively to see all messages instead of having to search logs/events etc.&lt;br /&gt;
&lt;br /&gt;
Unfortunately this will not work the same as the normal windows sshd service unless you assume the identity of the sshd_server user. To assume the identity of the sshd_server user you will have to reset its password to something new (since we dont take a record of it during sshd-host-setup) AND ALSO place the new password in the logon properties of the sshd windows service.&lt;br /&gt;
&lt;br /&gt;
 su sshd_server&lt;br /&gt;
 /usr/sbin/sshd -D -p 19580&lt;br /&gt;
&lt;br /&gt;
=== Reinstalling SSHD if service fails to startup ===&lt;br /&gt;
&lt;br /&gt;
====Error message====&lt;br /&gt;
 chmod: cannot access &#039;/etc/passwd&#039;: No such file or directory&lt;br /&gt;
 chmod: cannot access ‘/etc/group’: No such file or directory&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
Sometimes reinstallation isnt necessary and sshd can be made to restart by doing&lt;br /&gt;
 &lt;br /&gt;
 mkpasswd &amp;gt; /etc/passwd&lt;br /&gt;
 mkgroup &amp;gt; /etc/group&lt;br /&gt;
&lt;br /&gt;
If all else fails:&lt;br /&gt;
&lt;br /&gt;
#Look in &#039;&#039;&#039;/var/log/sshd.log&#039;&#039;&#039; for errors&lt;br /&gt;
#Delete the following users: &#039;&#039;&#039;sshd&#039;&#039;&#039; and &#039;&#039;&#039;sshd_server&#039;&#039;&#039;&lt;br /&gt;
#Remove the sshd service at the cygwin prompt type &#039;&#039;&#039;cygrunsrv –R sshd&#039;&#039;&#039;&lt;br /&gt;
#Do the above Configuration and starting SSHD step again&lt;br /&gt;
&lt;br /&gt;
Note that you don&#039;t have to reinstall cygwin entirely, just sshd with the above steps.&lt;br /&gt;
&lt;br /&gt;
== Upgrading SSHD / Cygwin ==&lt;br /&gt;
NEOSYS relies on cygwin to provide secure network access and support various linux/unix services under Windows, mainly rsync for interoffice consolidation.&lt;br /&gt;
&lt;br /&gt;
Just like MS Windows update, cygwin should be updated at regular intervals to close security holes discovered in the software by its authors. This is particularly important for cygwin&#039;s remote access service sshd since it is exposed to the internet although on a non-standard port.&lt;br /&gt;
&lt;br /&gt;
Join the cygwin and sshd security news email lists to learn about when cygwin upgrades sshd and/or when there are issues generally with sshd&lt;br /&gt;
&lt;br /&gt;
To find out what versions of cygwin/sshd are installed at NEOSYS clients, in Nagios check &amp;quot;Status Information&amp;quot; of the neosys-ssh service &lt;br /&gt;
&lt;br /&gt;
 SSH OK - OpenSSH_7.7 (protocol 2.0) &lt;br /&gt;
&lt;br /&gt;
Before updating Cygwin or its packages you MUST read [[Avoid Corrupting Cygwin Installations]]&lt;br /&gt;
&lt;br /&gt;
=== Upgrading Cygwin remotely ===&lt;br /&gt;
&lt;br /&gt;
NEOSYS normal remote server support connection uses cygwin/ssh. Cygwin can be upgraded while in use with a script as explained in the section below.&lt;br /&gt;
&lt;br /&gt;
==== Upgrading Cygwin with a script ====&lt;br /&gt;
&lt;br /&gt;
The following script can be used to automatically upgrade cygwin to the latest version quite easily even when people are using NEOSYS. However it carries a small risk described below.&lt;br /&gt;
&lt;br /&gt;
WARNING This script temporarily disconnects and disables all ssh remote support connections, including any ssh connection you are using to initiate the process, for the duration of the upgrade.&lt;br /&gt;
&lt;br /&gt;
Since something may go wrong and the script might FAIL to re enable ssh remote connections, you can take one of the precautionary measures listed below.&lt;br /&gt;
&lt;br /&gt;
* either perform a temporary Teamviewer installation. The quick teamviewer zero installation remote support method will not work under rdp/tunnelier/remmina&lt;br /&gt;
* or ensure that client IT support is available ONSITE to provide temporary teamviewer access in the event of any problem&lt;br /&gt;
* or be prepared to lose the ability to provide remote support to the installation until the previous item is available&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TeamViewer 9 issue&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When attempting to connect to client server via TeamViewer 9 (setup via Tunnelier with unattended access) it shows the error below&lt;br /&gt;
&lt;br /&gt;
[[File:TVerror.jpg]]&lt;br /&gt;
&lt;br /&gt;
SOLUTION: Install TeamViewer 7 which does not give this error. Contact NEOSYS IT for TeamViewer7 commercial license. You must have the client server&#039;s administrator password to login using TeamViewer. After the upgrade, REMOVE SETTINGS for unattended access and UNINSTALL Teamviewer. Teamviewer must NOT BE LEFT with permanent login by number and password! Teamviewer options, security, REMOVE &amp;quot;Predefined password (For unattended access)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Running the script =====&lt;br /&gt;
&lt;br /&gt;
[[Setting_up_and_using_remote_support#Finding_the_script|Locate the upgradecygwin.cmd script]] and run it some usual way by clicking and pressing Enter. &lt;br /&gt;
&lt;br /&gt;
You MUST inspect the version of the pre-installed script against the version shown at http://www.neosys.com/support/upgradecygwin.cmd and ensure that the script you are using is the latest one, as the script is updated with fixes for problems faced in the past.&lt;br /&gt;
&lt;br /&gt;
The upgradecygwin.cmd script will try to download the latest version of setup-x86 from cygwin.com. In case it is not possible to download the setup-x86.exe file from cygwin.com due to proxy/firewall or other issues, then follow the below steps before running the cygwin upgrade script.&lt;br /&gt;
#Download setup-x86.exe manually from http://www.cygwin.com/setup-x86.exe&lt;br /&gt;
#Place it in the same directory as the upgrade script&lt;br /&gt;
#Rename it to &amp;quot;setup-x86-manual.exe&amp;quot;. The cygwin upgrade script will rename this file to setup-x86.exe&lt;br /&gt;
&lt;br /&gt;
If you initiate the script while connected on ssh using tunnelier/remmina etc. halfway through the script you will be disconnected.&lt;br /&gt;
&lt;br /&gt;
The script will take a few minutes to download and install any cygwin upgrades.&lt;br /&gt;
&lt;br /&gt;
Once the script is finished, it will re-enable creation of new incoming ssh connections and attempt to send an email to support@neosys.com via the standard mailout.neosys.com:2500 email server.&lt;br /&gt;
&lt;br /&gt;
You should then be able to reconnect using ssh and tunnelier/remmina. If you do not get any email then perhaps the script is unable to send the email to the standard mailout.neosys.com:2500 email server due to a firewall. In this case after 10 minutes or so you should be able to reconnect using ssh anyway.&lt;br /&gt;
&lt;br /&gt;
*upgradecygwin.log - contents of the email that would have been sent&lt;br /&gt;
*upgradecygwin.err - any errors that prevent sending the email&lt;br /&gt;
&lt;br /&gt;
If you cannot connect on ssh using tunnelier/remmina after say 20 minutes then the script must have failed. To resolve that problem, either use your existing Teamviewer connection or get client IT support to physically access the server to install Teamviewer for you.&lt;br /&gt;
&lt;br /&gt;
Running the script multiple times will not cause any issue. If there is little or nothing to upgrade then the time to complete will be short since there is less to download and install.&lt;br /&gt;
&lt;br /&gt;
===== Verifying successful run =====&lt;br /&gt;
&lt;br /&gt;
#You must carefully inspect the email or log for &amp;quot;error&amp;quot; or &amp;quot;fail&amp;quot; and intelligently and thoughtfully find any other unexpected results and deal with them. It is impossible to give guidelines for everything so this requires brainwork.&lt;br /&gt;
#[[Setting_up_and_using_remote_support#How_to_check_Cygwin_version_.3F|You must check the versions of &amp;quot;cygwin&amp;quot; and &amp;quot;openssh&amp;quot;]] at a minimum and ensure they agree with the latest expected version numbers.&lt;br /&gt;
#You must check for the word &amp;quot;reboot&amp;quot; especially in the following scenarios:&lt;br /&gt;
&lt;br /&gt;
 Installing file cygfile:///usr/bin/cygwin1.dll&lt;br /&gt;
 io_stream_cygfile: fopen(/usr/bin/cygwin1.dll) failed 13 Permission denied&lt;br /&gt;
 Failed to open cygfile:///usr/bin/cygwin1.dll for writing.&lt;br /&gt;
 Scheduled reboot replacement of file C:\cygwin\bin/cygwin1.dll with C:\cygwin\bin/cygwin1.dll.new&lt;br /&gt;
&lt;br /&gt;
 mbox note: In-use files have been replaced. You need to reboot as soon as possible to activate the new versions. Cygwin may operate  &lt;br /&gt;
 incorrectly until you reboot.&lt;br /&gt;
&lt;br /&gt;
 note: In-use files have been replaced. You need to reboot as soon as possible to activate the new versions. Cygwin may operate incorrectly &lt;br /&gt;
 until you reboot.&lt;br /&gt;
 Ending cygwin install&lt;br /&gt;
&lt;br /&gt;
===== Dealing with reboot required =====&lt;br /&gt;
&lt;br /&gt;
The script attempts to shutdown sshd and some services that may be present in some installations like rsync and exim.&lt;br /&gt;
&lt;br /&gt;
The script attempts to avoid causing &amp;quot;reboot required&amp;quot; by stopping the upgrade if any cygwin processes are found to be running. &amp;quot;Reboot required&amp;quot; indicates that some cygwin program was running while the upgrade process was running and this usually IRRETRIEVABLY BREAKS the cygwin functionality because cygwin&#039;s upgrade isnt smart enough to deal with this.&lt;br /&gt;
&lt;br /&gt;
It is quite likely that a reboot will NOT solve various problems.&lt;br /&gt;
&lt;br /&gt;
Rerunning the script will not show the errors again but the problem of bad upgrade.&lt;br /&gt;
&lt;br /&gt;
SOLUTION: You should completely clean out all traces of cygwin in the computer and then reinstall cygwin completely from scratch. How to clean thoroughly is documented in wiki.&lt;br /&gt;
&lt;br /&gt;
===== Finding the script =====&lt;br /&gt;
&lt;br /&gt;
The latest version of the script can be found in the latest version of NEOSYS. The script is installed in the neosys\neosys directory. &lt;br /&gt;
&lt;br /&gt;
For older versions of NEOSYS it can be created or upgraded as follows:&lt;br /&gt;
&lt;br /&gt;
Open http://www.neosys.com/support/upgradecygwin.cmd on your browser to view the script.&lt;br /&gt;
&lt;br /&gt;
Then copy the script onto notepad on the server and save this as a .cmd file in the location mentioned below:&lt;br /&gt;
&lt;br /&gt;
Single installation&lt;br /&gt;
 x:\neosys\neosys\upgradecygwin.cmd&lt;br /&gt;
&lt;br /&gt;
Multiple installation&lt;br /&gt;
 x:\hosts\CLIENTCODE\neosys\upgradecygwin.cmd&lt;br /&gt;
&lt;br /&gt;
where x is the drive in which NEOSYS is installed.&lt;br /&gt;
&lt;br /&gt;
==== How to check Cygwin version ?  ====&lt;br /&gt;
&lt;br /&gt;
If you are looking for the version number for the whole Cygwin release, there is none. &lt;br /&gt;
&lt;br /&gt;
Each package in the Cygwin release has its own version. You can find out the Cygwin.dll version by using the following command:&lt;br /&gt;
&lt;br /&gt;
 cygcheck -V&lt;br /&gt;
&lt;br /&gt;
To find the version of the Cygwin Package installed, you can use &lt;br /&gt;
&lt;br /&gt;
 cygcheck -c PACKAGE_NAME&lt;br /&gt;
&lt;br /&gt;
eg - To check the version of the openssh package you will have to type the following command in cygwin:&lt;br /&gt;
&lt;br /&gt;
 cygcheck -c openssh&lt;br /&gt;
&lt;br /&gt;
The output should be as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Package           Version           Status&lt;br /&gt;
 openssh           6.0p1-2             OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to uninstall/reinstall cygwin ==&lt;br /&gt;
&lt;br /&gt;
With setup.exe (the installer file of cygwin) you can uninstall individual packages but not Cygwin.&lt;br /&gt;
&lt;br /&gt;
Before you do this, make sure you have stopped the cygwin service (NET STOP SSHD), removed the sshd server (cygrunsrv -R sshd), deleted the sshd &amp;amp; sshd_server users (net user sshd /DELETE)&lt;br /&gt;
&lt;br /&gt;
To uninstall Cygwin you have to run the following in DOS prompt:&lt;br /&gt;
&lt;br /&gt;
 rmdir /s /q C:\cygwin&lt;br /&gt;
&lt;br /&gt;
You cannot delete the cygwin folder from Windows explorer due to a Access Denied error and this is the best way to uninstall cygwin.&lt;br /&gt;
&lt;br /&gt;
== Adding packages to Cygwin after installation ==&lt;br /&gt;
&lt;br /&gt;
Adding packages causes Cygwin to also upgrade but upgrade requires a special process because it cant be upgraded remotely while Cygwin sshd server is working.&lt;br /&gt;
&lt;br /&gt;
#Upgrade Cygwin&lt;br /&gt;
#Add the package using Cygwin normal setup program&lt;br /&gt;
&lt;br /&gt;
Step 1 is NOT optional if you want to do step 2.&lt;br /&gt;
&lt;br /&gt;
In the above procedure upgrade Cygwin using the script and follow the precautionary measures listed in [[Setting up and using remote support#Upgrading Cygwin with a script | Upgrade using script]], in case script fails to renable ssh remote connection. Next run setup.exe file present in D:\neosys\neosys to install the required the package.&lt;br /&gt;
&lt;br /&gt;
=== Adding individual packages to cygwin without doing a full upgrade ===&lt;br /&gt;
&lt;br /&gt;
You can add individual packages to cygwin without doing a full upgrade in many cases. The installed or upgraded version of cygwin should be recent since the current version of the package you want to install might not work with an old version installed cygwin.dll.&lt;br /&gt;
&lt;br /&gt;
To figure out if the cygwin version is recent and will be compatible with the new package, compare the current installed version with the latest version of cygwin.&lt;br /&gt;
&lt;br /&gt;
Cygwin DLL has been named cygwin1.dll and the number 1 is present in the beginning of the release name. Additionally there are DLL major and minor numbers that correspond to the name of the release and a release number respectively. The major version number gets incremented only when a change is made that makes existing software incompatible. The minor version changes every time a new backward compatible Cygwin release is made available. Therefore we need to check the major version of cygwin on the server.&lt;br /&gt;
&lt;br /&gt;
In other words cygwin-1.7.1-2 means cygwin1.dll, major version 7, minor version 1 and release 2.&lt;br /&gt;
&lt;br /&gt;
e.g if the current version of Cygwin DLL is 2.3.0 and latest version is 2.4.1-1 that means there is a change in the major version from 3 to 4 so we cannot go ahead with installing a new package.&lt;br /&gt;
&lt;br /&gt;
Commands below to add or remove packages. Press the View button repeatedly in the installation wizard to get to &amp;quot;Pending&amp;quot; to see what will be installed.&lt;br /&gt;
 #adding&lt;br /&gt;
 setup-x86 -P PACKAGE_NAME&lt;br /&gt;
&lt;br /&gt;
 #removing&lt;br /&gt;
 setup-x86 -x PACKAGE_NAME&lt;br /&gt;
&lt;br /&gt;
== Getting Ownership and Permissions Correct ==&lt;br /&gt;
&lt;br /&gt;
Installation of cygwin under domain administrator account needs to be fixed as follows:&lt;br /&gt;
&lt;br /&gt;
#c:\cygwin Properties, Security, Advanced&lt;br /&gt;
#Change owner to: Administrators&lt;br /&gt;
#Tick: Replace owner on subcontainers&lt;br /&gt;
&lt;br /&gt;
After changing ownership of all cygwin folders to Administrators all ssh login will be blocked and you will get a windows application event log message. &amp;quot;root&amp;quot; actually means sshd&#039;s user which is sshd_server by default or can be found in the cygwin ssh windows services properties under log on&lt;br /&gt;
&lt;br /&gt;
 fatal: /var/empty must be owned by root and not group or world-writable.&lt;br /&gt;
&lt;br /&gt;
Fix this in cygwin console as follows:&lt;br /&gt;
&lt;br /&gt;
 chown sshd_server /var/empty&lt;br /&gt;
&lt;br /&gt;
== Configuring Firewall/Router ==&lt;br /&gt;
&lt;br /&gt;
You will have to port forward 19580 on the router to port 19580 on the neosys server. Some routers call port forwarding “port mapping” or “virtual servers”&lt;br /&gt;
&lt;br /&gt;
It is BAD idea to simply open port 22 since an open port 22 attracts scanners/hackers like flies.&lt;br /&gt;
&lt;br /&gt;
Configure port forwarding of port 4430 ONLY if access from outside office is required by the client. Support MUST obtain Client management permission before port forwarding 4430.&lt;br /&gt;
&lt;br /&gt;
== Configuring Specific Client Routers ==&lt;br /&gt;
&lt;br /&gt;
[[Adline Dubai - CISCO PIX Firewall]]&lt;br /&gt;
&lt;br /&gt;
[[Sonicwall Firewall Configuration]]&lt;br /&gt;
&lt;br /&gt;
== How to install ssh on port 19580 over vnc on port 19580 ==&lt;br /&gt;
&lt;br /&gt;
Install vnc on port 19580&lt;br /&gt;
 &lt;br /&gt;
connect on vnc&lt;br /&gt;
 &lt;br /&gt;
setup cygwin sshd on port 22&lt;br /&gt;
 &lt;br /&gt;
test you can login on port 22&lt;br /&gt;
&lt;br /&gt;
 ssh neosys@127.0.0.1&lt;br /&gt;
 &lt;br /&gt;
change sshd port to 19580 (but it wont start)&lt;br /&gt;
 &lt;br /&gt;
schedule a windows system reboot in 10 mins at windows command prompt&lt;br /&gt;
 &lt;br /&gt;
 shutdown -t 600&lt;br /&gt;
 &lt;br /&gt;
change vnc port to 5900 (if will disconnect you)&lt;br /&gt;
 &lt;br /&gt;
wait for 10 mins and try to ssh login on port 19580&lt;br /&gt;
&lt;br /&gt;
== Changing user on Cygwin==&lt;br /&gt;
&lt;br /&gt;
On SSH command line:&lt;br /&gt;
&lt;br /&gt;
 ssh neosys@127.0.0.1 (where &#039;neosys&#039; is the username)&lt;br /&gt;
&lt;br /&gt;
== Installing and configuring UltraVNC ==&lt;br /&gt;
&lt;br /&gt;
VNC/Putty is not typically used for NEOSYS remote support anymore and has been replaced by tunnelier/rdp&lt;br /&gt;
&lt;br /&gt;
[[Installing and configuring UltraVNC]]&lt;br /&gt;
&lt;br /&gt;
== Remote Desktop Connection ==&lt;br /&gt;
&lt;br /&gt;
Servers are normally not exposed to the internet so IT staff and suppliers are often not careful to use strong passwords and use things like &amp;quot;password&amp;quot; or blank.&lt;br /&gt;
&lt;br /&gt;
Given the above, it is NEOSYS policy NOT to use remote desktop via direct access from the internet at all and especially not long term. This is to prevent worms from instantly discovering possible entry points - typically before NEOSYS can even begin to enforce strong administrator password.&lt;br /&gt;
&lt;br /&gt;
If it is otherwise IMPOSSIBLE (difficult or inconvenient does NOT count as impossible!) to avoid using remote desktop protocol to the public internet then a simple and effective way of significantly increasing security is to change the remote desktop port from 3389 to something else e.g. 33890 as per NEOSYS convention.&lt;br /&gt;
&lt;br /&gt;
=== Changing RDC port from standard to nonstandard ===&lt;br /&gt;
&lt;br /&gt;
# Start Registry Editor.&lt;br /&gt;
# Locate and then click the following registry subkey:&lt;br /&gt;
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber&lt;br /&gt;
# On the Edit menu, click Modify, and then click Decimal.&lt;br /&gt;
# Type the new port number, and then click OK.&lt;br /&gt;
# Quit Registry Editor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solving &amp;quot;Authentication that can continue: publickey,password&amp;quot; Error when connecting to remote servers via remote access clients ==&lt;br /&gt;
&lt;br /&gt;
Some remote access clients cannot connect to ssh servers without special configuration.&lt;br /&gt;
&lt;br /&gt;
For example remina/ssh cannot connect to windows/cygwin/sshd in their default configuration.&lt;br /&gt;
&lt;br /&gt;
=== Error Message ===&lt;br /&gt;
[[Image:Sshremmina.jpg]]&lt;br /&gt;
&lt;br /&gt;
 SSH password authentication failed: Access denied. Authentication that can continue: publickey,password,keyboard-interactive&lt;br /&gt;
&lt;br /&gt;
=== Solution 1 ===&lt;br /&gt;
&lt;br /&gt;
If possible configure the client to not perform challenge response during login.&lt;br /&gt;
&lt;br /&gt;
There appears to be no way to do this for remina currently&lt;br /&gt;
&lt;br /&gt;
=== Solution 2 ===&lt;br /&gt;
&lt;br /&gt;
On the target server:&lt;br /&gt;
&lt;br /&gt;
Edit the ssh service configuration&lt;br /&gt;
&lt;br /&gt;
  nano /etc/sshd_config&lt;br /&gt;
&lt;br /&gt;
Add the last line to the following section&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Change to no to disable s/key passwords&lt;br /&gt;
#ChallengeResponseAuthentication yes&lt;br /&gt;
ChallengeResponseAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the ssh service&lt;br /&gt;
&lt;br /&gt;
 net stop sshd&lt;br /&gt;
 net start sshd&lt;br /&gt;
&lt;br /&gt;
Check that you can login using password from one workstation and it will be solved for all workstations for that server&lt;br /&gt;
&lt;br /&gt;
=== Solution 3 ===&lt;br /&gt;
&lt;br /&gt;
On a client workstation:&lt;br /&gt;
&lt;br /&gt;
#Use the autologin.sh script to configure automatic login. Refer [[Backup_and_Restore#Creating.2FUpgrading_autologin.sh| Autologin.sh]]&lt;br /&gt;
#For &amp;quot;Authentication/Login Method&amp;quot; choose option &amp;quot;Public Key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Check that you can login using password. This will have to be done on every workstation for every server so is rather tedious but it does not require reconfiguration of the server.&lt;br /&gt;
&lt;br /&gt;
=== Solution 4 ===&lt;br /&gt;
&lt;br /&gt;
On the target server, check whether authorized_keys file contains your public key. You can do that by checking the user name displayed at the end of each key.&lt;br /&gt;
&lt;br /&gt;
To view the authorized_keys file, open cygwin terminal and type&lt;br /&gt;
&lt;br /&gt;
 cat .ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
If authorized_keys file does not contain your public key, then copy it from authorized_keys.backup file using the below command:&lt;br /&gt;
&lt;br /&gt;
 cat .ssh/authorized_keys.backup&lt;br /&gt;
&lt;br /&gt;
Next edit the authorized_keys file using the below command:&lt;br /&gt;
&lt;br /&gt;
 nano .ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
Then paste the copied key in a new line. Ensure that the key appears in a single line and then close the authorized_keys file.&lt;br /&gt;
&lt;br /&gt;
Check that you can connect to the target server using automatic SSH authentication (SSH Agent or Public key)&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Testing_NEOSYS&amp;diff=3612</id>
		<title>Testing NEOSYS</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Testing_NEOSYS&amp;diff=3612"/>
		<updated>2019-03-31T12:35:05Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Timesheets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== General Instructions for Testing NEOSYS ===&lt;br /&gt;
#Every time a new version of NEOSYS is released, it must be tested thoroughly for all its features to ensure NEOSYS credibility to clients.&lt;br /&gt;
#If the new version released has new entries in What&#039;s new in NEOSYS, then support MUST copy paste the new What&#039;s new entries onto email and send it to support inbox so that the What&#039;s new entries can be searched for in support inbox.&lt;br /&gt;
#This email must then be moved to the Support sub-folder in Thunderbird called &amp;quot;Permanent&amp;quot; so that emails in this folder are not deleted to clear space in future.&lt;br /&gt;
#Tests for each module must be carried out by logging in as different users as some issues do not show up when logged in as NEOSYS user.&lt;br /&gt;
#Whenever there are multiple rows, the 2nd line must ALWAYS be tested and this must be the primary test. This is because many errors do not show in the first line and only show in the subsequent lines.&lt;br /&gt;
&lt;br /&gt;
===Lightning Test===&lt;br /&gt;
&lt;br /&gt;
Lightning Test is a quick test of NEOSYS where all essential features mostly used by clients must be tested. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lightning Test for all the modules in NEOSYS should not take more than 2 hours. All the tests listed below with an asterisk are mandatory and the rest can be skipped in a Lightning Test.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== List of Tasks to be tested ===&lt;br /&gt;
===== Media =====&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 60%; height: 100px; text-align: left ; margin: 1em 1em auto;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | List of Tasks&lt;br /&gt;
|-&lt;br /&gt;
| * || Create a new plan&lt;br /&gt;
|- &lt;br /&gt;
| * || Check Plan Look up&lt;br /&gt;
|-&lt;br /&gt;
| * || Create a plan by copying from a plan/schedule&lt;br /&gt;
|-&lt;br /&gt;
| * || Take a plan printout, make use of filters on the screen&lt;br /&gt;
|- &lt;br /&gt;
| * || Create a new schedule&lt;br /&gt;
|-&lt;br /&gt;
|   || Check Schedule Look up&lt;br /&gt;
|- &lt;br /&gt;
| * || Create a schedule by copying from plan/schedule&lt;br /&gt;
|-&lt;br /&gt;
| * || Use shortcut keys like tab/f9/f7 etc while creating the schedule&lt;br /&gt;
|- &lt;br /&gt;
| * || Add vehicles with notes/Rate cards&lt;br /&gt;
|-&lt;br /&gt;
| * || Enter discount and fee for the vehicles&lt;br /&gt;
|- &lt;br /&gt;
| * || Check if discount and fee gets reflected in the cost and bill&lt;br /&gt;
|-&lt;br /&gt;
|   || Create free ads&lt;br /&gt;
|-&lt;br /&gt;
|   || Check if free ads reflect in the reports&lt;br /&gt;
|-&lt;br /&gt;
| * || Book ads&lt;br /&gt;
|-&lt;br /&gt;
| * || Certify ads&lt;br /&gt;
|-&lt;br /&gt;
| * || Invoice ads, reprint invoice/invoices in bulk (more than 2)&lt;br /&gt;
|-&lt;br /&gt;
| * || Generate media diary&lt;br /&gt;
|-&lt;br /&gt;
|   || Generate progress summary&lt;br /&gt;
|-&lt;br /&gt;
| * || Do cancellations&lt;br /&gt;
|-&lt;br /&gt;
| * || Generate credit notes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Finance =====&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 60%; height: 100px; text-align: left ; margin: 1em 1em auto;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | List of Tasks&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Create a new batches (INV/PUR/PAY/REC) in Journal entry page&lt;br /&gt;
|- &lt;br /&gt;
|   || Check the Journal Setup page&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Check Voucher file/deallocation&lt;br /&gt;
|-&lt;br /&gt;
|   || Generate the List of Vouchers&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Generate a Ledger print&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Check the Statement of Accounts&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Check the Chart of Accounts file&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Generate Trial Balances&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Generate Financial Statements&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Check the Currency &amp;amp; Exchange Rate file&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Edit the Company file &lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Check if discount and fee gets reflected in the cost and bill&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width:10px; text-align:center;&amp;quot; | * || Test three basic styles of journals e.g &amp;quot;SIDE BY SIDE&amp;quot; format for Sales invoices, &amp;quot;MAIN ACCOUNT IN THE HEADING&amp;quot; format for Bank Payments, &amp;quot;VERTICAL&amp;quot; format for General journals(JOU).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Jobs =====&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 60%; height: 100px; text-align: left ; margin: 1em 1em auto;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | List of Tasks&lt;br /&gt;
|-&lt;br /&gt;
| * || Create new Job&lt;br /&gt;
|- &lt;br /&gt;
| * || Check Job Look up&lt;br /&gt;
|-&lt;br /&gt;
| * || Copy a job&lt;br /&gt;
|-&lt;br /&gt;
| * || Enter all details&lt;br /&gt;
|- &lt;br /&gt;
| * || Look up for Job Types&lt;br /&gt;
|-&lt;br /&gt;
|   || Use shortcut keys tab/f9/f7&lt;br /&gt;
|- &lt;br /&gt;
| * || Create Estimate&lt;br /&gt;
|-&lt;br /&gt;
| * || Create Purchase Order&lt;br /&gt;
|- &lt;br /&gt;
| * || Generate invoice in Estimates&lt;br /&gt;
|-&lt;br /&gt;
| * || Check invoice gets reflected correctly in Purchase order&lt;br /&gt;
|- &lt;br /&gt;
| * || Enter supplier invoice for Purchase orders&lt;br /&gt;
|-&lt;br /&gt;
| * || Check whether all above changes get reflected in the Job file&lt;br /&gt;
|-&lt;br /&gt;
|   || Create Credit Notes&lt;br /&gt;
|-&lt;br /&gt;
| * || Job printout&lt;br /&gt;
|-&lt;br /&gt;
| * || Purchase Order printout&lt;br /&gt;
|-&lt;br /&gt;
| * || Estimate printout&lt;br /&gt;
|-&lt;br /&gt;
| * || Minutely verify reports to check data consistency&lt;br /&gt;
|-&lt;br /&gt;
|   || Generate &amp;quot;List of Jobs pending estimates&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|   || Generate &amp;quot;List of Jobs with WIP/Accrued Cost&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Analysis =====&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 60%; height: 100px; text-align: left ; margin: 1em 1em auto;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | List of Tasks&lt;br /&gt;
|-&lt;br /&gt;
| * || Create/Edit/Run a Media Analysis report&lt;br /&gt;
|- &lt;br /&gt;
| * || Create/Edit/Run a Billing Analysis report&lt;br /&gt;
|- &lt;br /&gt;
| * || Create a copy of a Billing Analysis report&lt;br /&gt;
|- &lt;br /&gt;
| * || Create a new Billing Analysis Column design&lt;br /&gt;
|-&lt;br /&gt;
|   || Test the Free Ad Analysis report.&lt;br /&gt;
|- &lt;br /&gt;
|   || Test Budget file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Timesheets =====&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 60%; height: 100px; text-align: left ; margin: 1em 1em auto;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | List of Tasks&lt;br /&gt;
|-&lt;br /&gt;
| * || Edit the Timesheet Configuration file&lt;br /&gt;
|- &lt;br /&gt;
| * || Edit existing activities in Activity file&lt;br /&gt;
|-&lt;br /&gt;
| * || Create new activities in the Activity file&lt;br /&gt;
|-&lt;br /&gt;
| * || Create a new Timesheet for a user, test each and every field&lt;br /&gt;
|- &lt;br /&gt;
|   || Take Timesheet printouts, test all the options available&lt;br /&gt;
|-&lt;br /&gt;
|   || Test Approval emails according to the users in the Configuration file.&lt;br /&gt;
|- &lt;br /&gt;
| * || Test Reminder emails&lt;br /&gt;
|-&lt;br /&gt;
|   || Generate Timesheet Analysis report using various filters.&lt;br /&gt;
|- &lt;br /&gt;
|   || Save the report in Excel and verify the records present.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Login page, Support menu and Help menu =====&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 60%; height: 100px; text-align: left ; margin: 1em 1em auto;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | &lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | List of Tasks&lt;br /&gt;
|-&lt;br /&gt;
| * || Reset password from NEOSYS login page and check whether new password is received via email successfully&lt;br /&gt;
|-&lt;br /&gt;
| * || Create a new user in the Authorization File and save it&lt;br /&gt;
|- &lt;br /&gt;
| * || Edit and save the System Configuration File &lt;br /&gt;
|-&lt;br /&gt;
|   || Take a backup of NEOSYS&lt;br /&gt;
|-&lt;br /&gt;
|   || Generate a log report&lt;br /&gt;
|-&lt;br /&gt;
|   || Generate usage statistics report&lt;br /&gt;
|-&lt;br /&gt;
|   || Generate list of database processes&lt;br /&gt;
|-&lt;br /&gt;
|   || Generate list of documents in use while editing any document (eg. schedule file, job file, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| * || Edit and save the User Details page&lt;br /&gt;
|-&lt;br /&gt;
| * || Login as a User group to check all locks/keys are working properly&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=File:Unitsfile.png&amp;diff=3610</id>
		<title>File:Unitsfile.png</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=File:Unitsfile.png&amp;diff=3610"/>
		<updated>2019-03-05T06:28:06Z</updated>

		<summary type="html">&lt;p&gt;Joel: Joel uploaded a new version of File:Unitsfile.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Generally&amp;diff=3609</id>
		<title>Troubleshooting NEOSYS Generally</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Generally&amp;diff=3609"/>
		<updated>2019-03-05T06:26:27Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Fixing &amp;quot;Units file is missing&amp;quot; error */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Solving failure to start a NEOSYS server due to disk failure message ==&lt;br /&gt;
=== Problem ===&lt;br /&gt;
During a reboot process (which maybe due to a Windows update or even done by a support personnel) the NEOSYS server gets hung on the startup and shows a message &amp;quot;Boot Failure - Abort, Retry&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
=== Temporary solution ===&lt;br /&gt;
This typically happens due to the USB being plugged into the server and the boot sequence being wrong - i.e. the server trying to boot from the USB first and fails. The immediate solution would be to unplug the USB and ask the client to reboot the server again and upon successfully rebooting the system, plug the USB back again.&lt;br /&gt;
&lt;br /&gt;
=== Permanent solution ===&lt;br /&gt;
The above problem will occur every time the computer is rebooted, so you need to immediately talk to the IT Administrator of the client and ask them to rectify the boot sequence to make it boot first from the CD ROM, then the HDD and last the USB.&lt;br /&gt;
&amp;lt;BR&amp;gt;Allowing &amp;quot;Boot from USB&amp;quot; causes a severe risk of infection by boot sector viruses since the first infected USB device inserted WILL infect the server immediately as anti-virus programs are not active during boot.&lt;br /&gt;
&lt;br /&gt;
== Replicate options used &amp;amp; error using sysmsg Data: ==&lt;br /&gt;
&lt;br /&gt;
Users send screenshots when NEOSYS server process suffers an error, but the error message often blocks the options they used, making it difficult to replicate the problem.&lt;br /&gt;
&lt;br /&gt;
Below method avoids the need to ask the user to send another screenshot without the error message. &lt;br /&gt;
&lt;br /&gt;
Find the form data in the raw text of the emailed error message. &lt;br /&gt;
&lt;br /&gt;
[[image:Rawformdatapng.png]]&lt;br /&gt;
&lt;br /&gt;
Sadly normal email view renders it useless by mangling it, treating ^ as formatting character superscript.&lt;br /&gt;
&lt;br /&gt;
The form raw data will be something like this:&lt;br /&gt;
&lt;br /&gt;
 1^^^1^3^3^^^^^^^^^^^^^^^3^^^^^^^^^18319^18319^^^^^^^^^4^^0^^^^^^^^^^^^^1}2&lt;br /&gt;
&lt;br /&gt;
First prepare a command by inserting the above form data into the following command in place of %FORMDATA%. Do it anywhere you can cut and paste text.&lt;br /&gt;
&lt;br /&gt;
 form_setdefault(&#039;%FORMDATA%&#039;)&lt;br /&gt;
&lt;br /&gt;
or in old versions of NEOSYS&lt;br /&gt;
&lt;br /&gt;
 gro.defaultrevstr=unescape(&#039;%FORMDATA%&#039;.neosysconvert(&#039;`^]}\~&#039;,rm+fm+vm+sm+tm+stm))&lt;br /&gt;
&lt;br /&gt;
Achieving the following command:&lt;br /&gt;
&lt;br /&gt;
 form_setdefault(&#039;1^^^1^3^3^^^^^^^^^^^^^^^3^^^^^^^^^18319^18319^^^^^^^^^4^^0^^^^^^^^^^^^^1}2&#039;)&lt;br /&gt;
&lt;br /&gt;
or in old versions of NEOSYS&lt;br /&gt;
&lt;br /&gt;
 gro.defaultrevstr=unescape(&#039;1^^^1^3^3^^^^^^^^^^^^^^^3^^^^^^^^^18319^18319^^^^^^^^^4^^0^^^^^^^^^^^^^1}2&#039;.neosysconvert(&#039;`^]}\~&#039;,rm+fm+vm+sm+tm+stm))&lt;br /&gt;
&lt;br /&gt;
Once you have constructed the command, do the following:&lt;br /&gt;
&lt;br /&gt;
#As NEOSYS user, get onto the exact same screen as the user was in when they got the message. (Using the screenshot they send)&lt;br /&gt;
#Press Ctrl+Shift+F12 - to get a NEOSYS javascript prompt&lt;br /&gt;
#Paste the command and Press Enter - to execute the command - it must confirm with &amp;quot;setdefaultform( ... ) = ok&amp;quot;&lt;br /&gt;
#Press Enter or click OK - to remove the confirmation&lt;br /&gt;
#Press Esc or click Cancel - to close the javascript prompt&lt;br /&gt;
#Press F8 or click Close - to refresh the form&lt;br /&gt;
#The form should now be filled in correctly including any hidden fields.&lt;br /&gt;
&lt;br /&gt;
==[[Administering_NEOSYS_Server#Clearing_File_Locks| Troubleshooting &amp;quot;Document is being updated&amp;quot; message]]==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the &amp;quot;Database not available&amp;quot; error message == &lt;br /&gt;
=== Problem explained ===&lt;br /&gt;
This error appears when you try to login to NEOSYS after you enter your username and password and click the Login button.&lt;br /&gt;
&lt;br /&gt;
[[image:database_unavailable.jpg]]&lt;br /&gt;
&lt;br /&gt;
Error message : &lt;br /&gt;
&lt;br /&gt;
 Cannot login because : &lt;br /&gt;
 Error :  The (database code) database is not available right now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the error message appears post login i.e. when users are working on the system then check if processes are free to run user request.&lt;br /&gt;
&lt;br /&gt;
[[image:not_available.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Solution explained ===&lt;br /&gt;
# Determine if the processes are running. If they are running and you still get the same message that means that either the processes have [[Troubleshooting_NEOSYS_Generally#Troubleshooting_Hung_processes|hung]] and need to be [[Troubleshooting_NEOSYS_Generally#How_to_kill_hung_NEOSYS_processes|killed]].&lt;br /&gt;
# If the processes are not visible on the desktop, it is possible that they are running in the background and have hung for some reason. Check the windows task manager to see if any ‘ntvdm’ process is running and [[Troubleshooting_NEOSYS_Generally#If_NEOSYS_processes_are_not_visible_on_the_server_desktop|fix hung processes]].&lt;br /&gt;
# If not hung then the available processes may be busy running long reports and a new process needs to be started. Refer to [[Handling_Nagios_Client_Monitoring_System#Counting_current_active_users| counting current active users]] to get a sense of the processing requirements for an installation.&lt;br /&gt;
# If there are processes available which are not hung or busy running reports, then ensure that the URL is pointing to the correct IP address and not to a wrong one e.g. a backup server.&lt;br /&gt;
# If the process had not hung and no processes running, then the server might have restarted due to a power failure or a windows update and the administrator user had not logged in post the scheduled startup time of 6AM. To determine the cause of this, investigate in the Windows Event Viewer Log file.&lt;br /&gt;
# You can now start up the process by clicking on the respective desktop icons.&lt;br /&gt;
# Also check if the nightly backup took place successfully or not.&lt;br /&gt;
# Look into the logs at the date/time stated for the last transaction processed to investigate why process got hung. See [[Troubleshooting_NEOSYS_Generally#Inspecting_Database_LOGS_Folder| Inspecting logs]] for more information on logs.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting &amp;quot;user not authorised to login from a location&amp;quot; error message ==&lt;br /&gt;
[[image:IPerror.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Error message:&#039;&#039;&#039;&lt;br /&gt;
 xxx is not authorised to login form the location (IP Number. xx.xx.xx.xx)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution Explained:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Check the URL used and follow the steps below to check if it is correct and email the user accordingly.&lt;br /&gt;
#If the Client installation is hosted on NEOSYS server then users can use only https link to access NEOSYS.&lt;br /&gt;
#*Check with the client&#039;s management if this particular IP is their public IP.&lt;br /&gt;
#*Add IP on management confirmation (Refer to [[Procedures#Handling_User_Requests_to_add_an_IP_or_range_of_IPs_to_access_NEOSYS|Handling User Requests to add IP/IPs ]] ) &lt;br /&gt;
#In case of Client hosted server, users should access NEOSYS via LAN using the http link.&lt;br /&gt;
#*There can be exceptional cases where user needs to access NEOSYS outside the office Network e.g a client installation with two companies at different locations and NEOSYS installed at one. In this case Support will have to add the IP number of the second company so that users can access NEOSYS.&amp;lt;br&amp;gt;But before you even suggest to add the IP, get the request from their management saying that the IP number is another office location and needs to be added. (Refer to [[Procedures#Handling_User_Requests_to_add_an_IP_or_range_of_IPs_to_access_NEOSYS|Handling User Requests to add IP/IPs ]] )&lt;br /&gt;
&lt;br /&gt;
== Handling damaged files ==&lt;br /&gt;
&lt;br /&gt;
[[Handling damaged files]]&lt;br /&gt;
&lt;br /&gt;
=== Checking for corrupt database files ===&lt;br /&gt;
Login to NEOSYS Maintenance. This can be done when users are online.&lt;br /&gt;
&lt;br /&gt;
Press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.FILES&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 CHK.FILES filename&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sizelock while performing chk.files &#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Fixing sizelock errors should not be done while other users are online to the same database.&lt;br /&gt;
&lt;br /&gt;
Sizelock errors are not critical and will be fixed automatically during the nightly backup.&lt;br /&gt;
&lt;br /&gt;
Sizelock errors occur if a program or process that is selecting records from a file is aborted in some abnormal way.&lt;br /&gt;
&lt;br /&gt;
Error message:&lt;br /&gt;
&lt;br /&gt;
 These Files/Tables have a Sizelock Value of 2 or greater. &lt;br /&gt;
 Tag/Select the Files/Tables to be Fixed.&lt;br /&gt;
 Press F9 to fix selected files&lt;br /&gt;
&lt;br /&gt;
Press F9 to proceed with fixing the selected files or press ESC to continue with chk.files without fixing sizelock as it gets automatically fixed during the nightly backup. &lt;br /&gt;
&lt;br /&gt;
Refer to the [http://techwiki.neosys.com/index.php/Backup_and_Restore#Error_Message:_Size_Lock Sizelock errors in backup emails] for more information.&lt;br /&gt;
&lt;br /&gt;
[[file:sizelock.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Determining Database File Name from Operating System File Name ===&lt;br /&gt;
&lt;br /&gt;
To assess the potential damage and possible remedial measures you need to know the database file name. If the message only refers to the operating system file name you need to follow this procedure to determine the database file name.&lt;br /&gt;
&lt;br /&gt;
Once you have the database file name you can use CHK.FILES XXXXXXX to check if corrupt or not and various other procedures to fix the corruption.&lt;br /&gt;
&lt;br /&gt;
Remember that fixing the corrupt data does not solve the overall problem. The *cause* of the corruption must be identified and eliminated otherwise the problem may reoccur and in a more serious form perhaps with unrecoverable loss of data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╒═══════════════════════════════════TCL - 2══════════════════════════════════╕&lt;br /&gt;
│                                                                            │&lt;br /&gt;
│ :list FILES WITH ALL CONTAINING &#039;REV76481&#039;                                 │&lt;br /&gt;
│                                                                            │&lt;br /&gt;
╘════════════════════════════════════════════════════════════════════════════╛&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:DBfilenamefromOSfilename.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Finding out when and by whom a record was deleted ==&lt;br /&gt;
&lt;br /&gt;
In most cases, NEOSYS does not allow users to delete records and instead keeps a record of everything. In some cases however, things are deleted and the only way to get full details about the deletion is to search the logs. This is cumbersome, but there is a quick way to find out when, and by whom, a record was deleted. Prior to NEOSYS software versions dated Mar 2014, and deletions done before the same date, this procedure will only tell you when the record was deleted - but not who deleted it. Knowing exactly when it was deleted will nevertheless help you to search the logs for full details.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode F5&lt;br /&gt;
&lt;br /&gt;
 ED SHADOW DELETED*filename*key&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 ED SHADOW DELETED*BATCHES*L*JOU*2*U&lt;br /&gt;
&lt;br /&gt;
Journals are stored in the BATCHES file. The key of an unposted batch is x*y*999*U where x is the company code, y is the journal type code, 999 is UNPOSTED batch number and U is just U to indicate unposted batches. Note that unposted batches are normally deleted at the time they are posted - ie converted to posted batches.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔══════════════════════════┤DELETED*BATCHES*L*JOU*2*U├═════════════════════════╗&lt;br /&gt;
║16831.60706                                                                   ║&lt;br /&gt;
║BRUCEL                                                                        ║&lt;br /&gt;
║╒═══════════════════════════════════TCL - 6══════════════════════════════════╕║&lt;br /&gt;
║│                                                                            │║&lt;br /&gt;
║│ :EVAL PRINT 16831.60706 &#039;[DATETIME]&#039;                                       │║&lt;br /&gt;
║│                                                                            │║&lt;br /&gt;
║╘════════════════════════════════════════════════════════════════════════════╛║&lt;br /&gt;
║                                                                              ║&lt;br /&gt;
║                                                                              ║&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you see the number (in this case 16831.60706) you can convert it to a time and date by typing something like&lt;br /&gt;
&lt;br /&gt;
 PRINT 16831.60706 &#039;[DATETIME]&#039;&lt;br /&gt;
&lt;br /&gt;
Using this date and time you can search the logs more effectively to find out who did the deletion and in what circumstances.&lt;br /&gt;
&lt;br /&gt;
== Assessing Database Size per File ==&lt;br /&gt;
In NEOSYS maintenance mode&lt;br /&gt;
 &lt;br /&gt;
 LIST FILES BY BY-DSND SIZE VOLUME.NAME SIZE&lt;br /&gt;
 &lt;br /&gt;
This will include all files not just those in the actual dataset in DATA\* folders.&lt;br /&gt;
&lt;br /&gt;
== Fixing slow speed ==&lt;br /&gt;
=== [[Benchmarking NEOSYS]] ===&lt;br /&gt;
=== Investigating slow response in NEOSYS using NEOSYS logs ===&lt;br /&gt;
If users complain about slow speed, but the server CPU performance looks normal, then support MUST investigate NEOSYS logs to find out why NEOSYS was slow at the time when the client complained about slow response.&lt;br /&gt;
&lt;br /&gt;
Search NEOSYS log entries around the time that the user complained about slow response and look for log entries with high response time. Make a note of what requests took long to respond. If multiple users were simultaneously requesting long reports from NEOSYS, then NEOSYS can be expected to respond slowly for other smaller requests that were processed at that time.&lt;br /&gt;
&lt;br /&gt;
Also refer to [http://userwiki.neosys.com/index.php/General_FAQ#Why_is_NEOSYS_taking_a_long_time_to_generate_a_report.3F why is NEOSYS taking a long time to generate a report].&lt;br /&gt;
&lt;br /&gt;
=== Investigating CPU 100% using Windows Task Manager ===&lt;br /&gt;
Email, to support, a screen-shot of task manager APPLICATIONS, PROCESSES and PERFORMANCE screens MAXIMIZED TO SHOW AS MUCH AS POSSIBLE. &lt;br /&gt;
&lt;br /&gt;
(Sort the processes to show ntvdm, waiting.exe and high cpu% processes clearly)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Steps:&#039;&#039;&#039;&lt;br /&gt;
#Right Click on Windows Taskbar and click on Start Task Manager &amp;lt;br&amp;gt; [[image:starttaskmanager.jpg]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Processes and then click on CPU &amp;lt;br&amp;gt;&#039;&#039;&#039;Note - The HIGH cpu% processes which should usually be the &amp;quot;process&amp;quot; called &amp;quot;System Idle Process&amp;quot; &#039;&#039;&#039;&amp;lt;br&amp;gt;[[image:cpu100percent1.jpg]] &amp;lt;br&amp;gt; &lt;br /&gt;
#Click on the Performance Tab &amp;lt;br&amp;gt; &#039;&#039;&#039;Note - PF Usage should typically be much less than Physical Memory otherwise there is insufficient real memory in the server to handle the load&#039;&#039;&#039; &amp;lt;br&amp;gt; [[image:cpu100percent3.jpg]] &amp;lt;br&amp;gt; &lt;br /&gt;
#Click on Application Tab then Right Click on a NEOSYS Process and Click on Bring to Front &amp;lt;br&amp;gt;&#039;&#039;&#039;See what the NEOSYS Process is doing &amp;lt;br&amp;gt; [[image:cpu100percent2.jpg]] &amp;lt;br&amp;gt; &lt;br /&gt;
#Right Click on a NEOSYS Process and Click on Go to Processes &amp;lt;br&amp;gt;&#039;&#039;&#039;Note the cpu% ntvdm process &amp;lt;br&amp;gt;[[image:cpu100percent2_2.jpg]]&amp;lt;br&amp;gt;  &lt;br /&gt;
#Normally NEOSYS application screens say &amp;quot;LISTENING&amp;quot; in the bottom line and those applications should have very low cpu%&amp;lt;br&amp;gt;[[image:normalneosysprocess.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
#Look at the difference between the screen of running NEOSYS processes (applications actually) which are idle (listening for requests) and active (processing a request from a user)&lt;br /&gt;
#Note the number of cpus or cpu threads in the server from the performance screen graphics&amp;lt;br&amp;gt;[[image:performance-taskmgr-cputhread.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
#Take screen-shots of any and ALL hung or long running processes (NEOSYS application screens) and email them to support. Even small details on the screens and user names, the user names may give clues to what problem caused the hanging.A Typical Hung NEOSYS process will look like this: &amp;lt;br&amp;gt; [[image:hungneosysprocess.jpg]] &amp;lt;br&amp;gt;&lt;br /&gt;
#Once all hung/long processes are closed then CPU should be low and not near 100%. If it is still 100% then check all high cpu% processes and send a screen-shot of processes sorted to show the high cpu% process names to support.&lt;br /&gt;
&lt;br /&gt;
=== Solving server CPU% is 100 and all users are extremely slow/stopped ===&lt;br /&gt;
&lt;br /&gt;
Get the screenshots of Task Manager and ALL processes on the server, the objective is to assess the true issue. No need to get the screens not in use obviously but you can send a parallel screen shot for them if you want to be pedantic or even a comment will do.&lt;br /&gt;
&lt;br /&gt;
==== Too few CPUs/threads for the number of users ====&lt;br /&gt;
In Windows task manager normally, you should see one ntvdm.exe and one waiting.exe process per NEOSYS process (application). A standard installation has three NEOSYS processes per main database and plus one per test database. This is configured in Support Menu, Configuration File.&lt;br /&gt;
&lt;br /&gt;
If there are MORE ntvdm processes than you expect from the configuration file, then perhaps NEOSYS is auto starting new NEOSYS processes to try and cater for a high number of concurrent users.&lt;br /&gt;
&lt;br /&gt;
If the number of concurrent NEOSYS processes significantly exceeds the number of cpus/hyperthreads available in the server then processing for everybody can become so slow for everybody and almost no work gets done.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
Stop NEOSYS creating new NEOSYS processes automatically. Create a text file with the first and only line as AUTOSTART=NO in the neosys\neosys folder something like this.&lt;br /&gt;
&lt;br /&gt;
notepad d:\neosys\neosys\NET.CFG&lt;br /&gt;
&lt;br /&gt;
AUTOSTART=NO&lt;br /&gt;
&lt;br /&gt;
== How do I troubleshoot email not received? ==&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting email not received]]&lt;br /&gt;
&lt;br /&gt;
== Fixing permissions errors while logging in ==&lt;br /&gt;
 &lt;br /&gt;
=== Problem ===&lt;br /&gt;
 &lt;br /&gt;
While logging in, you get the following error message:&lt;br /&gt;
[[Image:login_error_message.jpg]]&lt;br /&gt;
 &lt;br /&gt;
=== Solution ===&lt;br /&gt;
 &lt;br /&gt;
Add the internet guest account to the security list of the data folder with the default permission of list/read/write&lt;br /&gt;
 &lt;br /&gt;
Make sure the read&amp;amp;execute permission is removed&lt;br /&gt;
[[Image:permissions_on_data.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fixing the &#039;HTTP Error 500.0 - Internal Server Error&#039; while logging in on IE on a Windows Vista system ==&lt;br /&gt;
&lt;br /&gt;
=== Problem ===&lt;br /&gt;
After configuring IIS on Windows Vista you will get this error message while trying to login into NEOSYS from Internet Explorer:&lt;br /&gt;
&lt;br /&gt;
 HTTP Error 500.0 - Internal Server Error&lt;br /&gt;
 Description: This application is running in an application pool that uses the Integrated .NET  &lt;br /&gt;
 mode. This is the preferred mode for running ASP.NET applications on the current and future &lt;br /&gt;
 version of IIS.&lt;br /&gt;
 &lt;br /&gt;
 In this mode, the application using client impersonation configured with &amp;lt;identity &lt;br /&gt;
 impersonate=&amp;quot;true&amp;quot; /&amp;gt; may not behave correctly. Client impersonation is not available in early &lt;br /&gt;
 ASP.NET request processing stages and may lead modules in those stages to execute with process &lt;br /&gt;
 identity instead.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
You can move the application to an application pool that uses the Classic .NET mode by using the following from a command line window (the window must be running as Administrator) &lt;br /&gt;
&lt;br /&gt;
 %systemroot%\system32\inetsrv\APPCMD.EXE set app &amp;quot;Default Web Site/neosys&amp;quot; /applicationPool:&amp;quot;Classic .NET AppPool&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use any other application pool on your system that is running in the Classic .NET mode. You can also use the IIS Administration tool to move this application to another application pool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fixing the &#039;Class Not Registered&#039; error message while logging in ==&lt;br /&gt;
&lt;br /&gt;
=== Problem ===&lt;br /&gt;
While logging into NEOSYS, you will get a popup window giving an error message saying &#039;Class Not Registered - Server Error&#039;. Typically, you will encounter this error with XP Pro IIS 5.1. As usual, there&#039;s way to solve it, however the root cause of this is still unknown.&lt;br /&gt;
&lt;br /&gt;
Anyway, you will get the proper message in the event log:&lt;br /&gt;
&lt;br /&gt;
 Event Type: Warning&lt;br /&gt;
 Event Source: W3SVC&lt;br /&gt;
 Event Category: None&lt;br /&gt;
 Event ID: 36&lt;br /&gt;
 Description: The server failed to load application &#039;/LM/W3SVC/1/ROOT/NEOSYS.&lt;br /&gt;
 The error was &#039;Class not registered&#039;. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
So, what do you do ? This problem is related to Component Services, and when you open Component Services MMC, you will most probably  get  Error Code 8004E00F COM + was unable to talk to Microsoft Distributed Transaction Coordinator. So, fix the COM+ services first by using the following KB from Microsoft (PRB: Cannot Expand &amp;quot;My Computer&amp;quot; in Component Services MMC Snap-In http://support.microsoft.com/?id=301919):&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, reinstall Component Services as follows: WARNING: &lt;br /&gt;
# Open registry editor, locate HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3, and then delete this key.  &lt;br /&gt;
# From the Start menu, point to Settings, click Control Panel, and then click Add/Remove Programs.  &lt;br /&gt;
# Click Add/Remove Windows Components. &lt;br /&gt;
# Proceed through the wizard, and accept all of the defaults (including IIS)&lt;br /&gt;
# Restart the computer.&lt;br /&gt;
&lt;br /&gt;
If the above didn&#039;t solve it, and you still receive the &#039;Class not registered&#039; error message, then you need to recreate the IIS packages in COM+, try&lt;br /&gt;
&lt;br /&gt;
# Delete IIS related package in Component Services MMC&lt;br /&gt;
# IIS In-Process Applications &lt;br /&gt;
# IIS Out-of-Process Pooled Applications &lt;br /&gt;
# IIS Utilities&lt;br /&gt;
&lt;br /&gt;
Next, if you still get the message, try following before re-install IIS if you can&#039;t find Distributed Transaction Coordinator in your Services console.&lt;br /&gt;
&lt;br /&gt;
Launch command prompt and run the following command.&lt;br /&gt;
# msdtc -install&lt;br /&gt;
# net start msdtc&lt;br /&gt;
&lt;br /&gt;
Then try re-install IIS.&lt;br /&gt;
&lt;br /&gt;
This should solve the problem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling File Security option on Win XP Professional ==&lt;br /&gt;
&lt;br /&gt;
=== Problem ===&lt;br /&gt;
&lt;br /&gt;
In the Properties of any folders, the Security option does not show, hence you cannot modify the Read, Write options.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
The solution would be to untick the &#039;Simple File Sharing&#039; option from  Tools &amp;gt; Folder Options &amp;gt; View:&lt;br /&gt;
[[Image:simplefilesharingoff.jpg]]&lt;br /&gt;
&lt;br /&gt;
== %00%00%00%00 Errors ==&lt;br /&gt;
&lt;br /&gt;
=== Error Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SYSTEM ERROR in line 162. Amount &amp;quot;-2698.00AED&amp;quot; or base &amp;quot;%00%00%00%00&amp;quot; has been wrongly generated   &lt;br /&gt;
GET NEOSYS SUPPORT. DO NOT ATTEMPT TO CORRECT MANUALLY    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Solution ===&lt;br /&gt;
%00%00%00%00 indicates an internal error that NEOSYS programmer has to fix. It is usually random and can be hard to replicate unlike almost all other NEOSYS errors which usually replicate reliably once you find the cause.&lt;br /&gt;
&lt;br /&gt;
== B703 Errors ==&lt;br /&gt;
&lt;br /&gt;
The B703 error is usually always related to something too big for NEOSYS to handle. &lt;br /&gt;
&lt;br /&gt;
These are the only B errors that NEOSYS cant always permanently prevent by fixing the software.&lt;br /&gt;
&lt;br /&gt;
For more information, check [[Troubleshooting_NEOSYS_Media_System#B703_Errors|B703 errors]]&lt;br /&gt;
&lt;br /&gt;
== Internet Explorer Menu, View, Text Size doesnt change font size as expected ==&lt;br /&gt;
&lt;br /&gt;
Cause: This is because the font size is now user definable in NEOSYS and View, Text Size does not override predefined font sizes.&lt;br /&gt;
&lt;br /&gt;
Solution: If you are using Internet Explorer 7 you can scale the screen (including the font size  using ctrl + and ctrl - keyboard shortcuts or the font size button on the bottom right hand side of the window. &lt;br /&gt;
&lt;br /&gt;
You can adjust the font size on the User Details form when you login although this permanently applies to all forms not just the one that you are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uploaded jpg files fail to display in internet explorer ==&lt;br /&gt;
&lt;br /&gt;
Some large jpg files &amp;gt; 2Mb cannot be viewed in internet explorer despite being viewable in image preview, ms paint and other viewers/editors. It is not an issue caused by uploading or downloading the files.&lt;br /&gt;
&lt;br /&gt;
These file appear to have been created on Photoshop CS Macintosh and may be a special type of uncompressed jpg used for production quality files.&lt;br /&gt;
&lt;br /&gt;
=== Partial solution ===&lt;br /&gt;
Before uploading the files, open them in some editor like MS Paint (right click, edit) and save them. However this results in a loss of quality. Perhaps there is some program that can convert these files to a format understandable by Internet explorer without any loss of quality.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;This document is currently read only&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Cause ===&lt;br /&gt;
The user attempting to modify this document does not have the authorization key to do so.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Inform the user that he is not authorised to modify the document and give him the list of users within his company who are authorised to do so.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;You have attempted to write to a read-only file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Message ===&lt;br /&gt;
&lt;br /&gt;
Error while writing data.&lt;br /&gt;
You have attempted to write to a read-only file.&lt;br /&gt;
- or -&lt;br /&gt;
access to the file has been denied by the operating system.&lt;br /&gt;
(operating system file name: &amp;quot;..\DATA\ADLINEC\ADAGENCY\REV76467.OV00012618&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Cause ===&lt;br /&gt;
&lt;br /&gt;
It is almost certainly due to some third party backup or other maintenance software opening the NEOSYS database files when it shouldn&#039;t e.g. badly configured third party backup scheduled to backup NEOSYS while NEOSYS is still running. Note that the exact filename varies each time.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
This can be a serious error that causes damaged files in NEOSYS especially if the filename ends in .OV. Use the usual methods of checking for damaged files e.g. do a backup which also looks for damaged files BUT DO NOT OVERWRITE THE LATEST BACKUP SINCE IT MAY BE REQUIRED for restoration. Then fix the damaged files using the usual methods e.g. by rebuilding/using&lt;br /&gt;
FIXFILE or restoring databases. For more info check [[Handling damaged files|Handling damaged files]]&lt;br /&gt;
&lt;br /&gt;
=== Prevention ===&lt;br /&gt;
&lt;br /&gt;
Remove the third party backup or other maintenance software or reschedule it to run at a time that NEOSYS is shutdown. Removal of software may require hunting through the windows process list for unexpected programs running.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting Hung processes==&lt;br /&gt;
&lt;br /&gt;
=== Investigating hung NEOSYS processes ===&lt;br /&gt;
&lt;br /&gt;
To find out if a process is hung, check the time on the last line of the process which would be frozen since the time it first hung. This time can be cross-referenced with the current server time and you will notice the difference in time b/w the server and the hung process. You can also find the duration of hung processes in Nagios.&lt;br /&gt;
&lt;br /&gt;
Step 1&lt;br /&gt;
&lt;br /&gt;
Gather all the useful and necessary information about the current state of the system by taking screenshots of the NEOSYS process windows, server time and date, process list in Task Manager etc.&lt;br /&gt;
&lt;br /&gt;
Always remember to take screenshots of the whole screen, since every little detail is useful for investigation. &lt;br /&gt;
&lt;br /&gt;
Send an e-mail to Support with all the investigated details.&lt;br /&gt;
&lt;br /&gt;
Step 2&lt;br /&gt;
&lt;br /&gt;
Request a shutdown of all NEOSYS processes, which would leave only the hung processes open. &lt;br /&gt;
&lt;br /&gt;
Close the hung process/es.&lt;br /&gt;
&lt;br /&gt;
Step 3&lt;br /&gt;
&lt;br /&gt;
Process explorer can be installed from Microsoft Sysinternals and for a deeper inspection of the problem with a view to resolving it, should be used to gain information about what files are open.&lt;br /&gt;
&lt;br /&gt;
If already installed, procexp.exe can be found on the Desktop or from Start Menu-&amp;gt; Programs.&lt;br /&gt;
&lt;br /&gt;
In process explorer, Find -&amp;gt; Handle -&amp;gt; type d:\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Submit the complete list (maybe more than one page) to support for records.&lt;br /&gt;
&lt;br /&gt;
[[Image:invhungprocess.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== [[Troubleshooting_NEOSYS_Generally#Investigating_CPU_100.25_using_Windows_Task_Manager|Investigating CPU 100% using Windows Task Manager]]  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[Troubleshooting_NEOSYS_Generally#Solving_server_CPU.25_is_100_and_all_users_are_extremely_slow.2Fstopped|Solving server CPU% is 100 and all users are extremely slow/stopped]] ===&lt;br /&gt;
&lt;br /&gt;
=== Error message: &amp;quot;Fatal Error in Rev Restart&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
[[image:fatal.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Error message: “Abort, Retry, Fail” ===&lt;br /&gt;
==== Problem ====&lt;br /&gt;
The following messages may come on older versions of NEOSYS if there is a problem with the USB media inserted for backup.&lt;br /&gt;
&lt;br /&gt;
[[image:usberror.jpg]]&lt;br /&gt;
&lt;br /&gt;
This results in “NEOSYS has not checked in” message on Nagios since it hangs during the monitoring update and locks all other processes from monitoring too.&lt;br /&gt;
&lt;br /&gt;
General failure writing drive F&lt;br /&gt;
Abort, Retry, Fail?&lt;br /&gt;
&lt;br /&gt;
Not read reading drive F&lt;br /&gt;
Abort, Retry, Fail?&lt;br /&gt;
&lt;br /&gt;
Pressing A or F results in the problem happening again in about a minute, perhaps on a different process.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
Temporary solution is to do “Safely remove hardware” from the windows notification area. Using “Eject” from My Computer will not work.&lt;br /&gt;
&lt;br /&gt;
Permanent solution is to replace the defective USB memory stick. Sometime reformatting is sufficient.&lt;br /&gt;
&lt;br /&gt;
Upgrading NEOSYS will probably stop the defective media from causing NEOSYS to hang but the USB will still be useless for backup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error message: &amp;quot;Read error in the operating system file&amp;quot; ===&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Nagios reports a hung process and on the server a process has the following message popup.&lt;br /&gt;
&lt;br /&gt;
 Read error in the operating system file &amp;quot;..\DATA\PT0833\ACCOUNTS\REV20049&lt;br /&gt;
 The file does not exist or the filename is&lt;br /&gt;
 not valid for the operating system.&lt;br /&gt;
&lt;br /&gt;
[[Image:readerrorintheoperatingsystemfile.png]]&lt;br /&gt;
&lt;br /&gt;
==== Cause ====&lt;br /&gt;
Some non-NEOSYS program is directly accessing the NEOSYS database files while NEOSYS processes are running and using the files as well.&lt;br /&gt;
&lt;br /&gt;
*Client IT staff using a backup program to perform backup without ensuring that NEOSYS processes are shutdown.&lt;br /&gt;
*A NEOSYS rsync process taking longer than expected due to new USB.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
Kill the NEOSYS process eg with the X button. It is advisable NOT to let it run further while it cannot properly access one of its files.&lt;br /&gt;
&lt;br /&gt;
==== Prevention ====&lt;br /&gt;
Remove the third party program or arrange for it to operate only while NEOSYS processes are shutdown eg from 3am-6am.&lt;br /&gt;
&lt;br /&gt;
=== Error message: &amp;quot;Not enough string space - Out of Memory&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
==== Message ====&lt;br /&gt;
&lt;br /&gt;
‘RTP27’ Line 1. [B29] Not enough string space – Out of Memory.&lt;br /&gt;
&lt;br /&gt;
Not enough memory to execute Debugger; current program aborted.&lt;br /&gt;
Press any key to continue&lt;br /&gt;
&lt;br /&gt;
[[Image:out_of_memory.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Cause ====&lt;br /&gt;
Unknown perhaps related to some large document or report&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
Ask users for any hanging transactions.&lt;br /&gt;
None other than closing and starting another process.&lt;br /&gt;
&lt;br /&gt;
Also refer [[Troubleshooting NEOSYS Generally#Enabling EMS memory on Window 2003|Enabling EMS memory on Window 2003]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error message: B521 ===&lt;br /&gt;
&lt;br /&gt;
[[Image:B521.jpg]] &lt;br /&gt;
&lt;br /&gt;
 Another user is currently updating indexes. &lt;br /&gt;
 Waiting to make your updates...&lt;br /&gt;
 If you interrupt this process,&lt;br /&gt;
 you may have to rebuild all the indexes&lt;br /&gt;
&lt;br /&gt;
B521 message is usually temporary and goes away by itself. If it does not then, as the text of the B521 message makes clear, some OTHER process is holding up the system, preventing the process with B521 message from continuing.&lt;br /&gt;
&lt;br /&gt;
B521 message is a symptom of other problem so it does not itself have some one simple solution. You must find which other process or issue is causing the hold up and solve whatever problem is causing the hold up, which could be anything.&lt;br /&gt;
&lt;br /&gt;
=== Error message: &amp;quot; NTVDM encountered a hard error &amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
The following error message appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:ntvdm.jpg]]&lt;br /&gt;
&lt;br /&gt;
 NTVDM encountered a hard error&lt;br /&gt;
&lt;br /&gt;
==== Solution  ====&lt;br /&gt;
 &lt;br /&gt;
This error is caused by missing or corrupt Windows system files (i.e. command.com, autoexec.nt and config.nt). The solution is to run a program called XP FIX which will reinstall these missing files. You can download it form http://www.visualtour.com/downloads/xp_fix.exe&lt;br /&gt;
&lt;br /&gt;
Sometimes even after running the XP FIX program the error still appears. Then you need to copy all the files under C:/windows/repair to C:/windows/system32 and in the autoexec.nt and config.nt put REM before any lines there which don&#039;t have it.&lt;br /&gt;
&lt;br /&gt;
====Possible fix for some NTVDM errors ====&lt;br /&gt;
&lt;br /&gt;
===== Error message ===== &lt;br /&gt;
&lt;br /&gt;
[[Image:Ntvdm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
 NTVDM has encountered a System error.&lt;br /&gt;
 The system cannot find the file specified.&lt;br /&gt;
 Choose close to terminate the application.&lt;br /&gt;
&lt;br /&gt;
=====Possible solution===== &lt;br /&gt;
&lt;br /&gt;
#Change the TEMP and TMP environment variables to C:\WINDOWS\TEMP. This should be for the user that runs NEOSYS processes - normally administrator.&lt;br /&gt;
#Close all NEOSYS processes &lt;br /&gt;
#Logout/Login again&lt;br /&gt;
#Restart NEOSYS processes&lt;br /&gt;
&lt;br /&gt;
[[image:Ntvdmsoln.png]]&lt;br /&gt;
&lt;br /&gt;
===== Check solution done properly ===== &lt;br /&gt;
&lt;br /&gt;
You can check that by typing ECHO %TEMP% and ECHO %TMP% at a console prompt after logging out and in again. &lt;br /&gt;
&lt;br /&gt;
Note that windows will actually set the windows environment variables to something like C:\WINDOWS\TEMP\2 for some unknown reason. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
d:\hosts&amp;gt;ECHO %temp% &lt;br /&gt;
C:\WINDOWS\TEMP\2 &lt;br /&gt;
&lt;br /&gt;
d:\hosts&amp;gt;ECHO %tmp% &lt;br /&gt;
C:\WINDOWS\TEMP\2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Error message: [[Troubleshooting_NEOSYS_Generally#Troubleshooting_the_.22Database_not_available.22_error_message|&amp;quot;Database not available&amp;quot; post login]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error message: [[Backup_and_Restore#Error_Message:_.22Cannot_backup.2Frestore_because_PROCESS1_PROCESS2_.28etc.29_is.2Fare_online.22_message|&amp;quot;Cannot backup/restore because PROCESS1 PROCESS2 (etc) is/are online&amp;quot;]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to kill hung NEOSYS processes ===&lt;br /&gt;
 &lt;br /&gt;
NOTE WELL: If you kill actively working NEOSYS processes (those which are &amp;quot;listening&amp;quot; and not hung/crashed) there is a reasonable chance that the database will be damaged and might need a restore losing possibly large amounts of work.&lt;br /&gt;
 &lt;br /&gt;
==== If NEOSYS processes are visible on the server desktop ====&lt;br /&gt;
 &lt;br /&gt;
Look for processes which don&#039;t have &amp;quot;Listening ...&amp;quot; on the last but one line. The times on the left hand side are frozen as at the time of the hang.&lt;br /&gt;
 &lt;br /&gt;
You can then click the X to kill the process and confirm that this is OK.&lt;br /&gt;
 &lt;br /&gt;
Example of a NEOSYS process that has hung due to a software error resulting in a failure to handle a complex query with a lot of brand codes.&lt;br /&gt;
&lt;br /&gt;
[[Image:hungprocess.jpg]]&lt;br /&gt;
 &lt;br /&gt;
==== If NEOSYS processes are not visible on the server desktop ====&lt;br /&gt;
&lt;br /&gt;
NEOSYS processes are most of the time visible on the desktop (i.e. the black dos windows) in Windows 2003 OS, except in the case that the process has been scheduled to start on computer restart and no one has logged into the server. In this case it would be running in the background. TODO&lt;br /&gt;
&lt;br /&gt;
You can check if there are any hung processes from the NEOSYS Support Menu, List of Database Processes. &lt;br /&gt;
[[Image:databaseprocesseslist.jpg]]&lt;br /&gt;
&lt;br /&gt;
In this case you should follow the below instructions - however all of them need to be done within 30 seconds of starting the first instruction to avoid inconvenience to the users. It is recommend that you keep relevant windows open before proceeding with the same:&lt;br /&gt;
&lt;br /&gt;
#Shutdown NEOSYS by TEMPORARILY putting a file called GLOBAL.END in the parent directory of NEOSYS (if there is already a GLOBAL.END.TEMP file then rename it to GLOBAL.END). Leaving the file there would prevent NEOSYS from starting up again. Shutting down NEOSYS from the Support menu will not work because of the hung processes.&lt;br /&gt;
#Use Windows Task Manager to kill all the NTVDM processes - assuming that you have closed all the visible NEOSYS processes, then the NTVDM processes in the task manager would be the hung one.&lt;br /&gt;
#Delete GLOBAL.END or rename it to GLOBAL.END.TEMP&lt;br /&gt;
#Restart the processes back again. If there are many datasets then you need to restart them all well within the 30 seconds period. Restarting a process will not be noticed by users, if started immediately.&lt;br /&gt;
#*Create a [[Configuring_STARTALL.cmd_command_to_auto_start_all_processess | STARTALL.cmd]] file for future cases, where you may need to quickly start many processes for clients with multiple datasets.&lt;br /&gt;
&lt;br /&gt;
In case of Patsalides, where we have a thousand datasets which start &amp;quot;on demand&amp;quot; i.e. usually on login; all you need to do is start one dataset which will restart all the other datasets &amp;quot;on demand&amp;quot;. If there is no response within 30 seconds then one of the running datasets will start it up so there appears to be a 30 second delay when you login to one of the thousand datasets the first time on any one day.&lt;br /&gt;
&lt;br /&gt;
=== Temporary workarounds for hung NEOSYS processes ===&lt;br /&gt;
Until the error in the software is fixed users can often get their results by simplifying their requirements. For example select individual clients instead of selecting all the brands for a particular client. If the user has repeated his request (in forlorn hope that it would work finally) then the number of working NEOSYS processes will drop causing severe slowdown for other users and complete stop if all the NEOSYS processes hang.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot; You do not have sufficient privilege to access this file &amp;quot;  ==&lt;br /&gt;
&lt;br /&gt;
This error message may come up while NEOSYS processes start up at the same time.&lt;br /&gt;
&lt;br /&gt;
Error message on:  &lt;br /&gt;
16 bit MS-DOS Subsystem&lt;br /&gt;
D:\hosts\Client_nam\NEOSYS\AREV.EXE&lt;br /&gt;
C:\Windows\SYSTEM32\CONFIG.NT. Error Code 0x20. You do not have sufficient privilige to access this file. See your system administrator. Choose &#039;Close&#039; to terminate the application.&lt;br /&gt;
&lt;br /&gt;
Close the error message window and look for NEOSYS processes for that client. In case there is no process, start the NEOSYS process.&lt;br /&gt;
&lt;br /&gt;
[[image:Errormsg.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Fixing wrong default program assigned to open a file type ==&lt;br /&gt;
&lt;br /&gt;
The NEOSYS process (cmd file) might open up in a notepad, instead of the usual black colour DOS window. This may happen if a JavaScript file is opened using notepad. Support MUST be very CAREFUL when accessing  .JS and .JSE files and double check that the default program remains wscript.exe and not changed to notepad/wordpad. The issue can be fixed by the following:&lt;br /&gt;
&lt;br /&gt;
#Check if Windows Script 5.6/5.7 is installed, IF NOT download and install it from the Microsoft Website.&lt;br /&gt;
#Go to Control Panel -&amp;gt; Default Programs -&amp;gt; Associate a file type or protocol with a program and then change the default program for .JS and .JSE to &amp;quot;Microsoft Windows Based Script Host&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For file types that must not have any default program to open them (e.g. .vol file type):&lt;br /&gt;
#Right click the concerned file (e.g. ADAGENCY.vol) &amp;gt; Open with &amp;gt; Choose another app &amp;gt; More apps&lt;br /&gt;
#Select &amp;quot;Always use this app to open XXXX files&amp;quot;&lt;br /&gt;
#Click &amp;quot;Look for another app on this PC&amp;quot;&lt;br /&gt;
#Locate and select the concerned file (ADAGENCY.vol in this example). An error should appear &amp;quot;This app can&#039;t be run on your PC&amp;quot;. Click OK.&lt;br /&gt;
&lt;br /&gt;
== Fixing a &#039;Could not start&#039; error on Scheduled Tasks in Windows Server 2000 SP4 ==&lt;br /&gt;
&lt;br /&gt;
This error occurs because of a change that is made to the data that is stored in the credentials database when you install Windows 2000 SP4. Hence installing SP4 causes the the data that is stored in the credentials database to get converted to an SP4-compatible format. A registry key is configured to indicate that the data has been converted to the SP4 format.&lt;br /&gt;
&lt;br /&gt;
Hence the Scheduled Tasks do not work sometimes. However the Scheduled Tasks works fine sometimes, but when you uninstall SP4, it does not work.&lt;br /&gt;
&lt;br /&gt;
The best solution is to:&lt;br /&gt;
&lt;br /&gt;
# Incase Scheduled Tasks do not work after installing SP4, then uninstall SP4 and it should be fine.&lt;br /&gt;
# Incase Scheduled Tasks works after installing SP4, and later after uninstalling SP4, it does not work, then install SP4 and it should be fine.&lt;br /&gt;
&lt;br /&gt;
== Checking for server or NEOSYS crashes ==&lt;br /&gt;
 &lt;br /&gt;
#NEOSYS Maintenance Mode&lt;br /&gt;
#General Menu, Setup, Processes&lt;br /&gt;
#Select the dates and the option Detailed&lt;br /&gt;
 &lt;br /&gt;
This report shows a list of dates and times that NEOSYS logged in but did not log out properly.&lt;br /&gt;
 &lt;br /&gt;
Ignore the very latest entries since they represent the current NEOSYS processes. For example, if you have four NEOSYS processes running at the time that you get the report (including any in maintenance mode) then you can ignore the last four entries.&lt;br /&gt;
 &lt;br /&gt;
The date and time shows for each process that has failed to shutdown correctly when the process logged in. Versions of NEOSYS from January 2008 will also show the date and time that each crashed NEOSYS process was last active (heartbeat) so that the time of failure can be known.&lt;br /&gt;
 &lt;br /&gt;
If you see a bunch of NEOSYS processes all started up at around the same time but all failed to shutdown correctly then the cause will be a server failure - usually power failure.&lt;br /&gt;
 &lt;br /&gt;
Isolated one-off failures will be related to individual NEOSYS process crashes - most commonly caused by one of the following:&lt;br /&gt;
 &lt;br /&gt;
#NEOSYS hanging to due to software failure&lt;br /&gt;
#Manually exiting a NEOSYS process on the server either by pressing Ctrl+Alt+Del or clicking the &amp;quot;X&amp;quot; close icon/box and ignoring the warning&lt;br /&gt;
#Random server failures eg memory, disk etc&lt;br /&gt;
 &lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
 LOGIN 22/12/2007 06:02 NEOSYS SERVER ADAGENCY         Current workstation &lt;br /&gt;
 LOGIN 23/12/2007 06:00 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 06:01 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 06:02 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 08:52 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 08:52 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 08:53 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 8/1/2008 06:00 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 8/1/2008 06:01 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 8/1/2008 06:02 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 8/1/2008 13:51 NEOSYS SERVER NEOSYS         Current user session  &lt;br /&gt;
&lt;br /&gt;
Interpretation:&lt;br /&gt;
 &lt;br /&gt;
The first four entries indicate that all four NEOSYS processes started at 06am were suddenly killed probably by power failure&lt;br /&gt;
 &lt;br /&gt;
The next four entries indicate that NEOSYS was restarted at around 08:52 and all these processes were AGAIN killed probably by power failure&lt;br /&gt;
 &lt;br /&gt;
The last four entries can be ignored because there were four NEOSYS processes running at the time that the report was generated&lt;br /&gt;
&lt;br /&gt;
== Searching for word/number in the database files using maintenance mode ==&lt;br /&gt;
&lt;br /&gt;
You can search for any word/number in the database files of NEOSYS, using the following command line:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 FIND FILENAME WORDWITHOUTANYSPACES&lt;br /&gt;
 &lt;br /&gt;
 For eg:&lt;br /&gt;
 FIND CURRENCIES 1.1&lt;br /&gt;
 (here you are searching for the number 1.1 in the currencies file) You CANNOT search for a phrase ie include spaces like this.&lt;br /&gt;
 &lt;br /&gt;
 Or you can also type:&lt;br /&gt;
 FIND FILENAME &amp;lt;enter&amp;gt;&lt;br /&gt;
 and it will ask you what you want do to search. You can enter an exact phrase with spaces.&lt;br /&gt;
&lt;br /&gt;
Incase you do not know the filenames, you can enter the following command to see all the filenames in the system:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 LF&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting a Service Unavailable message on Internet Explorer when opening up NEOSYS ==&lt;br /&gt;
&lt;br /&gt;
=== Error Message ===&lt;br /&gt;
&lt;br /&gt;
The following error message appears in Internet Explorer when you try to open up NEOSYS:&lt;br /&gt;
&lt;br /&gt;
 Service Unavailable&lt;br /&gt;
&lt;br /&gt;
=== Solution  ===&lt;br /&gt;
 &lt;br /&gt;
Open the IIS Manager, right click Web Sites and select properties:&lt;br /&gt;
[[Image:serviceunavailable1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Switch to the Service Tab and tick the &amp;quot;Run WWW Service in IIS 5.0 Isolation Mode&amp;quot;.&lt;br /&gt;
[[Image:serviceunavailable2.jpg]]&lt;br /&gt;
&lt;br /&gt;
You will be asked for Restart of IIS. Click yes to restart IIS. If you are not asked just restart IIS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inspecting IIS log files ==&lt;br /&gt;
&lt;br /&gt;
At a windows command prompt:&lt;br /&gt;
&lt;br /&gt;
 c:&lt;br /&gt;
 cd \Windows\system32\LogFiles\W3SVC1&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 %SystemDrive%&lt;br /&gt;
 cd %SystemRoot%&lt;br /&gt;
 cd system32\LogFiles\W3SVC1&lt;br /&gt;
&lt;br /&gt;
then (substituting the ip number you are interested in)&lt;br /&gt;
&lt;br /&gt;
 find &amp;quot;192.168.1.55&amp;quot; *|sort&amp;gt;temp.log&lt;br /&gt;
&lt;br /&gt;
Open temp.log in Excel and use Tools, Data, Text to Columns to split into columns using options &amp;quot;Delimited&amp;quot; and check split on Space.&lt;br /&gt;
&lt;br /&gt;
Autowidth all columns by clicking on the top left box just outside the data to the left of column A and above column 1 then double click the column separator to the right of column &amp;quot;A&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note that times and dates are in UTC/GMT so you have to add/subtract your timezone offset to get local times.&lt;br /&gt;
&lt;br /&gt;
==Inspecting Database LOGS Folder==&lt;br /&gt;
NEOSYS log files e.g. 15123103.xml are created by the database processes and contain user requests to the NEOSYS database. Each XML file represents commands executed by each NEOSYS process.&lt;br /&gt;
&lt;br /&gt;
If the database is not available according to the website then no entry will appear in that log. (The request will appear in the IIS website log but that log is nothing to do with database processes)&lt;br /&gt;
&lt;br /&gt;
It is often quicker and easier to do a preliminary search for database requests using the Request Log in NEOSYS UI, although more specific details such as Session No, Host IP, Filename and DataOut/In are only available in the XML logs.&lt;br /&gt;
&lt;br /&gt;
Find log files in neosys/LOGS. The file naming format is yymmdd(log created by process No.) E.g 18060402 = 4th of July 2018 process02.&lt;br /&gt;
&lt;br /&gt;
Use simple text editor to view the log files. &lt;br /&gt;
&lt;br /&gt;
Details found in XML log files:&amp;lt;br&amp;gt;&lt;br /&gt;
Message: Date, Time, User, Filename, WorkstationIP, HostIP, HTTP and Session. &amp;lt;br&amp;gt;&lt;br /&gt;
Request: Req1, Req2, Req..&amp;lt;br&amp;gt;&lt;br /&gt;
Response: ProcessingSecs&amp;lt;br&amp;gt;&lt;br /&gt;
DataOut/DataIn:&lt;br /&gt;
&lt;br /&gt;
=== Understanding Log Entries ===&lt;br /&gt;
Inspecting and searching through Logs file allows NEOSYS staff to answer clients queries like &amp;quot;Who deleted schedule XXXX&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
To read and understand the log file with more ease, copy the portion of the log file required to be analysed into another text editor.&lt;br /&gt;
&lt;br /&gt;
While going through the log file you may come across a request &amp;quot;EXECUTE GENERAL GETTASKS NOT&amp;quot;, this request is concerned with getting a list of tasks that the user is *not* allowed to do.&lt;br /&gt;
&lt;br /&gt;
To read and understand the log file with more ease, copy the portion of the log file required to be analysed into another text editor.&lt;br /&gt;
&lt;br /&gt;
The text that appears as %FE, %FC, %FD, etc. are basically separators. Replace %FE, %FD, %FC, etc. with a separator like &amp;quot;--&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Once replacing all these characters is done, the log file will be more easily readable and vital information will be clearer. &lt;br /&gt;
&lt;br /&gt;
In the log file, you may find numbers like 17290, 17195, etc. These numbers denote dates selected or entered by the NEOSYS user. These are basically the number of days from 31st December 1967 till the date chosen by the user. For example, to convert 17290 to actual date, 31/12/1967 + 17290 = 3/5/2015. So the actual date is 3rd May 2015.&lt;br /&gt;
&lt;br /&gt;
To convert these numbers to dates using maintenance mode, refer to the article [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Finding_out_when_and_by_whom_a_record_was_deleted Finding out when and by whom a record was deleted]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:NEOSYS Logs.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Fixing NEOSYS processes that do not auto start / Recovering from incorrect advanced date or time ==&lt;br /&gt;
This solution is applicable to live database processes only. Test database processes don’t auto-start any other processes.&lt;br /&gt;
&lt;br /&gt;
=== Problem explained ===&lt;br /&gt;
After starting up the 1st process, the rest of the processes don&#039;t start up.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
The possible cause for this could be that the system date/time might have been changed - either manually or by the auto synchronization. Do the following checks in the sequence of order:&lt;br /&gt;
&lt;br /&gt;
# Check for any *.$* files (* after dollar sign should show a number, the highest being the latest one). If it shows OK, then proceed ahead.&lt;br /&gt;
# Check for any .end files and delete it to rename to .end.temp&lt;br /&gt;
# Check the System Event Viewer log for any 520 or 577 error message (refer http://128.175.24.251/forensics/timechange.htm). Also check for any out of sequence / ahead of today date or time.&lt;br /&gt;
# In case of no 520 or 577 error message, go to Administrative Tools &amp;gt; Local Security Policy &amp;gt; Local Policies &amp;gt; Audit Policy &amp;gt; Audit Privilege use - make sure that Success and Failure are selected under this (this will ensure that future changes to the date/time are recorded in the System Log).&lt;br /&gt;
# In NEOSYS maintenance mode - F5 ED PROCESSES %UPDATE% - and see what it says, incase of any text (only text, not numbers) there, that means that for sure the system date has been changed. To fix this, exit the editor by pressing the ESCAPE key and then type DELETE PROCESSES &amp;quot;%UPDATE%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Fixing starting issues with NEOSYS processes or Maintenance Mode==&lt;br /&gt;
&lt;br /&gt;
=== Fixing &amp;quot;UNABLE TO OPEN BOOT MEDIA MAP&amp;quot; error ===&lt;br /&gt;
&lt;br /&gt;
Opening NEOSYS process or maintenance mode just opens and closes the window instantly.&lt;br /&gt;
&lt;br /&gt;
Running ADAGENCY.BAT from a windows CMD shows an error message&lt;br /&gt;
&lt;br /&gt;
 Unable to open boot media map.&lt;br /&gt;
&lt;br /&gt;
Cause:&lt;br /&gt;
&lt;br /&gt;
AREV.EXE is unable to access the  REVMEDIA.LK file.&lt;br /&gt;
&lt;br /&gt;
Possibly due to windows permissions problems. For example after using CYGWIN RSYNC without the --no-perms option.&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
&lt;br /&gt;
If cygwin rsync has screwed up the permissions you can reset the permissions for all files on the D: disk&lt;br /&gt;
&lt;br /&gt;
D: disk properties, security tab, Advanced button&lt;br /&gt;
#Owner: change to administrator&lt;br /&gt;
#Check &amp;quot;Replace owner on subcontainers and objects&amp;quot;&lt;br /&gt;
#Check &amp;quot;Replace all child object permission entries with ... &amp;quot;&lt;br /&gt;
#Apply and confirm all questions&lt;br /&gt;
#Repeat and change BACK to Owner: SYSTEM&lt;br /&gt;
[[Image:Unableopenbootmediamap.png]]&lt;br /&gt;
&lt;br /&gt;
===Fixing issue where NEOSYS processes do not start-up at all or start-up and close immediately===&lt;br /&gt;
&lt;br /&gt;
Fixing issue where NEOSYS processes do not start-up at all or start-up and close immediately.&lt;br /&gt;
&lt;br /&gt;
# Check if a file with the name global.end exists in the root directory of the NEOSYS installation. Eg D:\global.end . If you find such a file, rename it to global.end.temp - for more information on global.end and what it does, refer to [[Administering_NEOSYS_Server#Closing_NEOSYS_Services|Closing NEOSYS Services]]&lt;br /&gt;
# If the above didn&#039;t fix the problem and NEOSYS still does not start, do a windows search for the entire NEOSYS folder for *.end (i.e. any file ending with .end extension). You may find a (databasecode).end file in D:\neosys\neosys folder which is created by the NEOSYS program during backup at 1 am and later on removed automatically. In this case NEOSYS program might have crashed during the backup and left this file behind. (databasecode).end files prevent other other NEOSYS processes starting up on the database while exclusive processes (like backup) are being done.&lt;br /&gt;
&lt;br /&gt;
Or try: Delete the read-only file REVBOOT file (under d:/neosys/neosys folder). REVBOOT file is recreated when you start maintenance mode.&lt;br /&gt;
&lt;br /&gt;
In case the above didn&#039;t fix the problem then escalate to the programmer immediately.&lt;br /&gt;
&lt;br /&gt;
== Recognising and Solving Low Memory Problems ==&lt;br /&gt;
&lt;br /&gt;
Quick Note: Installing a server class operating system on a workstation class computer with the intention of NEOSYS serving a heavy load is likely to cause problems with low memory.&lt;br /&gt;
&lt;br /&gt;
Quick Fix: Disable *ALL* non-essential features in the power-on setup menu.&lt;br /&gt;
&lt;br /&gt;
=== Effects ===&lt;br /&gt;
&lt;br /&gt;
It is speculated but not proven that low memory may cause NEOSYS to fail by hanging, causing damaged files etc.&lt;br /&gt;
&lt;br /&gt;
=== Checking ===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 MEMORY&lt;br /&gt;
&lt;br /&gt;
On server class machines it should say somewhere around 350Kb to 370Kb Free&lt;br /&gt;
&lt;br /&gt;
Some server class machines have around 330Kb and sometimes even less with no reported problems&lt;br /&gt;
&lt;br /&gt;
The actual effect of low memory is supposed to make NEOSYS slower and perhaps cause hanging and damaged files however this has not been proven in an specific case so far.&lt;br /&gt;
&lt;br /&gt;
On workstation class machines it may often say around 280Kb to 300Kb.&lt;br /&gt;
&lt;br /&gt;
=== Cause ===&lt;br /&gt;
&lt;br /&gt;
Although there is plenty of real memory in virtually all computers now, NEOSYS runs in the legacy 16 bit virtual memory space of a windows mode called NTVDM. This is limited to 1Mb plus 4Mb of EMS memory.&lt;br /&gt;
&lt;br /&gt;
The 1Mb memory space is shared with:&lt;br /&gt;
&lt;br /&gt;
#Various non-essential windows drivers which NEOSYS automatically disables them in autoexec.nt&lt;br /&gt;
#Various plug and play hardware device drivers for the various adapters in the computer like video, network adapters and various other items that NEOSYS is unable to disable.&lt;br /&gt;
&lt;br /&gt;
In a server class computer the hardware device drivers are usually minimally present in the 1Mb base memory and do not therefore DOESNT a low memory situation for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
In workstation class computers there are often many hardware device drivers present in the 1Mb base memory and this DOES causes a low memory situation for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
When NEOSYS is installed on workstation class computers with XP there is usually not a heavy load expectation and therefore the low memory does not cause a problem.&lt;br /&gt;
&lt;br /&gt;
If Windows Server OS is installed on a workstation class computer NEOSYS may well be expected to serve a heavy load with limited amounts of memory.&lt;br /&gt;
&lt;br /&gt;
Workstation class computers: hardware drivers present and EMS is installed in low memory (0000-9FFF) causing low memory for NEOSYS and possible inability to &lt;br /&gt;
&lt;br /&gt;
Server class computers: Usually few hardware drivers are present in high part (A000-FFFF) of the 1Mb base memory and EMS is able to occupy the high memory leaving the low part (0000-9FFFF) of the 1Mb memory free for NEOSYS. You can find out how much memory is available to NEOSYS and whether EMS is occuping high or low memory using the following sections.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Low Memory ===&lt;br /&gt;
&lt;br /&gt;
Start, Run, notepad c:\windows\system32\autoexec.nt&lt;br /&gt;
&lt;br /&gt;
Every time NEOSYS starts it tries to make some changes as follow:&lt;br /&gt;
&lt;br /&gt;
#replaces all lines in C:/WINDOWS/SYSTEM32/AUTOEXEC.NT starting with &#039;lh &#039; to start with &#039;rem NEOSYS LH &#039; instead.&lt;br /&gt;
#changes the line in C:/WINDOWS/SYSTEM32/CONFIG.NT &amp;quot;files=...&amp;quot; to &amp;quot;FILES=200&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The replacement is case sensitive triggered on &#039;lh&#039; and &#039;files&#039; so if you manually edit the files and remove the rem or change the number of files and leave the LH and FILES in uppercase then NEOSYS will NOT make further changes. This allows you to do manual amendments to the files without NEOSYS overwriting them.&lt;br /&gt;
&lt;br /&gt;
Check that NEOSYS has successfully disabled all the drivers in the lines starting with LH.&lt;br /&gt;
&lt;br /&gt;
They should be commented out (prefixed) with REM or REM NEOSYS as follows.&lt;br /&gt;
&lt;br /&gt;
After making changes reopen NEOSYS in maintenance mode to use the MEMORY and WHO commands again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM Install CD ROM extensions&lt;br /&gt;
REM NEOSYS LH %SystemRoot%\system32\mscdexnt.exe&lt;br /&gt;
&lt;br /&gt;
REM Install network redirector (load before dosx.exe)&lt;br /&gt;
REM NEOSYS LH %SystemRoot%\system32\redir&lt;br /&gt;
&lt;br /&gt;
REM Install DPMI support&lt;br /&gt;
REM NEOSYS LH %SYSTEMROOT%\SYSTEM32\DOSX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Low Memory Issues in Windows 2003 server can be fixed using instructions mentioned at [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Enabling_EMS_memory_on_Window_2003 Fixing Low Memory in Windows 2003 Server]&lt;br /&gt;
&lt;br /&gt;
=== Allowing DOS programs that require DOSX to run on the same computer as NEOSYS ===&lt;br /&gt;
&lt;br /&gt;
The automatic commenting out DOSX by NEOSYS will prevent some other DOS-like programs from running. If NEOSYS is on dedicated server then there should be no other such programs to fail. However, if you must allow DOS-like programs to work as well as NEOSYS you can do the following configuration:&lt;br /&gt;
&lt;br /&gt;
#leave or restore the original AUTOEXEC.NT and CONFIG.NT files where they are&lt;br /&gt;
#copy them to another folder eg neosys folder&lt;br /&gt;
#make the necessary REM changes there by hand&lt;br /&gt;
#right click the NEOSYS\NEOSYS\AREV.PIF and select properties&lt;br /&gt;
#change the location of the AUTOEXEC.NT and CONFIG.NT files in the following location&lt;br /&gt;
&lt;br /&gt;
[[image:pifsettings.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Checking EMS Memory Configuration ===&lt;br /&gt;
&lt;br /&gt;
==== Inspection ====&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 WHO&lt;br /&gt;
&lt;br /&gt;
 press the up arrow to get to the last part/page&lt;br /&gt;
&lt;br /&gt;
===== Example of Typical Server EMS Memory =====&lt;br /&gt;
[[image:serveremm.jpg]]&lt;br /&gt;
&lt;br /&gt;
===== Example of Typical Workstation EMS Memory =====&lt;br /&gt;
[[image:workstationemm.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Correction====&lt;br /&gt;
&lt;br /&gt;
No easy way&lt;br /&gt;
&lt;br /&gt;
Removal of hardware adapters designed for workstations instead of servers eg graphics cards and network cards.&lt;br /&gt;
&lt;br /&gt;
Many of the devices may be located on the motherboard and not relocatable except possibly by BIOS configuration or special manufacturer information.&lt;br /&gt;
&lt;br /&gt;
Use windows device manager, View: Resources by Connection, Open the Memory item and look for items between 000A0000 up to 000FFFFF that might give you a clue as to what hardware could be removed or reconfigured. Actually only 000C0000 to 000FFFFF is candidate for EMS memory since 000A000-000BFFFF is mandatory video memory in all systems.&lt;br /&gt;
&lt;br /&gt;
[[image:devicemanager.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Fixing issue where NEOSYS processes do not start-up at all or start-up and close immediately ==&lt;br /&gt;
&lt;br /&gt;
# Find if a file with the name global.end exists in the root directory of the NEOSYS installation. Eg D:\global.end . If you find such a file, rename it to global.end.temp - for more information on global.end and what it does refer to [[Administering_NEOSYS_Server#Closing_NEOSYS_Services|Closing NEOSYS Services]]&lt;br /&gt;
# If the above didn&#039;t fix the problem and NEOSYS still does not start, do a windows search for the entire NEOSYS folder for *.end (i.e. any file ending with .end extension). You may find a (databasecode).end file in D:\neosys\neosys folder which is created by the NEOSYS program during backup at 1 am and later on removed automatically. In this case NEOSYS program might have crashed during the backup and left this file behind. (databasecode).end files prevent other other NEOSYS processes starting up on the database while exclusive processes (like backup) are being done.&lt;br /&gt;
&lt;br /&gt;
In case the above didn&#039;t fix the problem then escalate to the programmer immediately.&lt;br /&gt;
&lt;br /&gt;
=== Solving &amp;quot;Control Record&amp;quot; error in maintenance mode ===&lt;br /&gt;
&lt;br /&gt;
If processes dont start after you log into maintenance mode and you get an error message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔════[FS152]═══════════════════════════════════════╗&lt;br /&gt;
║          The control record &amp;quot;RECORDS&amp;quot;            ║&lt;br /&gt;
║           is too long to be saved.               ║&lt;br /&gt;
║   The current record length is 65539 characters. ║&lt;br /&gt;
║                                                  ║&lt;br /&gt;
║               &amp;lt; Press any key &amp;gt;                  ║&lt;br /&gt;
╚══════════════════════════════════════════════════╝  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[File:Record1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1&#039;&#039;&#039;. Press space to get rid of the error message and you should then get this menu&lt;br /&gt;
&lt;br /&gt;
[[File:Record2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2&#039;&#039;&#039;. Press F5 and run this command (case sensitive)&lt;br /&gt;
&lt;br /&gt;
 DICT DEFINITIONS&lt;br /&gt;
&lt;br /&gt;
or Press Alt+S and run this command (case sensitive)&lt;br /&gt;
&lt;br /&gt;
 EXECUTE DICT DEFINITIONS&lt;br /&gt;
&lt;br /&gt;
[[File:Record3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3&#039;&#039;&#039;. Press Shift+F3 to get the following message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔══[B202]══════════════════════════════════╗&lt;br /&gt;
║            &amp;quot;DEFINITIONS&amp;quot; has             ║&lt;br /&gt;
║          &amp;quot;QUICKDEX&amp;quot; installed            ║&lt;br /&gt;
║                                          ║&lt;br /&gt;
║ Do you want to remove &amp;quot;QUICKDEX&amp;quot;? [Y/N]  ║&lt;br /&gt;
║                                          ║&lt;br /&gt;
║ &amp;lt;Y                                      &amp;gt;║&lt;br /&gt;
╚══════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Do you want to remove &amp;quot;QUICKDEX&amp;quot;? [Y/N]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4&#039;&#039;&#039;. Press Enter to choose Yes.&lt;br /&gt;
&lt;br /&gt;
[[File:Record4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039;Restart NEOSYS to see if the problem has been solved&lt;br /&gt;
&lt;br /&gt;
== Solving “page not found” or &amp;quot;HTTP Error 404.3 - Not Found&amp;quot; when downloading some file types after uploading them successfully ==&lt;br /&gt;
&lt;br /&gt;
A user gets this error message when trying to download a file that has been uploaded into NEOSYS.&lt;br /&gt;
&lt;br /&gt;
Windows web server will not download file types that it is unaware of. You can enable the download of new file types.&lt;br /&gt;
&lt;br /&gt;
===Adding Mime Types in Windows Sever 2003=== &lt;br /&gt;
&lt;br /&gt;
==== One by One ====&lt;br /&gt;
&lt;br /&gt;
Follow below steps to enable the download of new file types one by one.&lt;br /&gt;
&lt;br /&gt;
This process is tedious and error-prone if you have to add many types.&lt;br /&gt;
&lt;br /&gt;
#Computer Management&lt;br /&gt;
#Services and Applications&lt;br /&gt;
#IIS properties&lt;br /&gt;
#Mime Types&lt;br /&gt;
#Add&lt;br /&gt;
&lt;br /&gt;
The added Mime type will not take effect unless IIS is restarted. This should be done only when users are offline because restarting IIS kills login sessions and therefore forces users to login again.&lt;br /&gt;
&lt;br /&gt;
Open command prompt and enter the following command&lt;br /&gt;
 iisreset&lt;br /&gt;
&lt;br /&gt;
==== Many ====&lt;br /&gt;
&lt;br /&gt;
Window Server 2003 is unaware of all the Office 2007+ file types. To add all Office 2007+ file types at once do the following:&lt;br /&gt;
&lt;br /&gt;
Stop IIS&lt;br /&gt;
&lt;br /&gt;
 iisreset /stop&lt;br /&gt;
&lt;br /&gt;
Open the list of mime types&lt;br /&gt;
&lt;br /&gt;
*Start, Run, notepad C:\WINDOWS\system32\inetsrv\MetaBase.xml&lt;br /&gt;
&lt;br /&gt;
Search the file for “xlsx” and quit the editor if already inserted.&lt;br /&gt;
&lt;br /&gt;
Otherwise, find the following line,&lt;br /&gt;
&lt;br /&gt;
  .xml,text/xml&lt;br /&gt;
&lt;br /&gt;
and insert after that line the following lines. They do not need to be indented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.docm,application/vnd.ms-word.document.macroEnabled.12&lt;br /&gt;
.docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document&lt;br /&gt;
.dotm,application/vnd.ms-word.template.macroEnabled.12&lt;br /&gt;
.dotx,application/vnd.openxmlformats-officedocument.wordprocessingml.template&lt;br /&gt;
.potm,application/vnd.ms-powerpoint.template.macroEnabled.12&lt;br /&gt;
.potx,application/vnd.openxmlformats-officedocument.presentationml.template&lt;br /&gt;
.ppam,application/vnd.ms-powerpoint.addin.macroEnabled.12&lt;br /&gt;
.ppsm,application/vnd.ms-powerpoint.slideshow.macroEnabled.12&lt;br /&gt;
.ppsx,application/vnd.openxmlformats-officedocument.presentationml.slideshow&lt;br /&gt;
.pptm,application/vnd.ms-powerpoint.presentation.macroEnabled.12&lt;br /&gt;
.pptx,application/vnd.openxmlformats-officedocument.presentationml.presentation&lt;br /&gt;
.xlam,application/vnd.ms-excel.addin.macroEnabled.12&lt;br /&gt;
.xlsb,application/vnd.ms-excel.sheet.binary.macroEnabled.12&lt;br /&gt;
.xlsm,application/vnd.ms-excel.sheet.macroEnabled.12&lt;br /&gt;
.xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&lt;br /&gt;
.xltm,application/vnd.ms-excel.template.macroEnabled.12&lt;br /&gt;
.xltx,application/vnd.openxmlformats-officedocument.spreadsheetml.template&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save the file with File and Exit&lt;br /&gt;
&lt;br /&gt;
Restart IIS&lt;br /&gt;
&lt;br /&gt;
=== Adding Mime Types in Windows Server 2008===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[file:mime2008.jpg]]&lt;br /&gt;
&lt;br /&gt;
This message shows when a user attempts to download a file that has been uploaded into NEOSYS and the file extension is not configured in IIS server Mime Maps.&lt;br /&gt;
&lt;br /&gt;
The user may also get the below error message:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[file:mimetype.jpg]]&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
&lt;br /&gt;
Add mime mappings in IIS. Use the GUI or the servers command line.&lt;br /&gt;
The exact solution depends on the file type. Example for .msg files:&lt;br /&gt;
&lt;br /&gt;
 C:\windows\System32\inetsrv\appcmd set config /section:staticContent /+&amp;quot;[fileExtension=&#039;.msg&#039;,mimeType=&#039;application/vnd.ms-outlook&#039;]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The bit that varies in the above example is:&lt;br /&gt;
&lt;br /&gt;
*.msg&lt;br /&gt;
&lt;br /&gt;
*application/vnd.ms-outlook&lt;br /&gt;
&lt;br /&gt;
Other mime types can be found on the web eg https://www.thoughtco.com/file-extensions-and-mime-types-3469109&lt;br /&gt;
&lt;br /&gt;
Getting the 2nd part right enables the user to have the downloaded file open automatically in the right application for the file extension,  but only if they have the right application installed.&lt;br /&gt;
&lt;br /&gt;
== Handling Neosys Automatic Upgrade Error Messages ==&lt;br /&gt;
&lt;br /&gt;
=== Error Message ===&lt;br /&gt;
We will receive an email from the NEOSYS client installation with the following message:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;UPGRADEN.EXE&amp;quot; does not have expected exe MZ signature&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
This message is a note that the NEOSYS automatic update procedure failed to download an upgrade file correctly.&lt;br /&gt;
This happens sometimes due to network issues but can be ignored because the file will be probably be correctly downloaded on the next automatic update check.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This message is only informative to help with any problem with the automatic upgrade procedure and may be removed in a later version of neosys (currently Oct 2012)&lt;br /&gt;
&lt;br /&gt;
== Handling Duplicate Login Error E-mails ==&lt;br /&gt;
&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
When a user starts a new session on NEOSYS, any existing session is lost. If a user then tries to go back and work on the old session, they will receive a Duplicate Login Error email.&lt;br /&gt;
&lt;br /&gt;
This is because any user can have only one active session to work on. For example, if a user account is logged into NEOSYS from two different browsers or two different workstations at the same time, the user will receive this error e-mail.&lt;br /&gt;
&lt;br /&gt;
=== Error E-mail ===&lt;br /&gt;
[[File:dup-login.png]]&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
To avoid the Duplicate Login error e-mail, you must always logout from your active NEOSYS session before starting a new session elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Testing https connection ==&lt;br /&gt;
&lt;br /&gt;
The following procedure tests that the https server is operational and not blocked by firewall etc. It does not detect certificate errors.&lt;br /&gt;
&lt;br /&gt;
From a windows command prompt use the following telnet command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet clientname.hosts.neosys.com 4430&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
#4430 is the usual NEOSYS http port but replace it by whatever port is actually used for NEOSYS https on the system being tested. If there are multiple https installations on a particular server then different ports are probably used&lt;br /&gt;
#Replace clientname.hosts.neosys.com with the normal https login domain name of the client for whom we want to check the https service&lt;br /&gt;
&lt;br /&gt;
Normal behavior is that it should open a black screen. Pressing Enter or any key returns the _ character. (Close the window using the [X] since there is no keyboard command to do so)&lt;br /&gt;
&lt;br /&gt;
Hanging means that there is some connectivity issue (firewall/ip/server not running/https not installed etc)&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting &amp;quot;page not found&amp;quot; error while using https ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#The https service stops working and gives &amp;quot;Page not found&amp;quot; error.&lt;br /&gt;
#The https connection tests fine using telnet (see article above)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Reinstall https using the usual procedure (currently using selfssl)&lt;br /&gt;
#Email clients, requesting to reinstall the new security certificate by following the instructions for [http://userwiki.neosys.com/index.php/Setting_up_and_Configuring_NEOSYS_Generally#Fixing_HTTPS_certificate_error_when_logging_in_from_an_external_link_using_IE8.2C_IE9_and_IE10 Internet Explorer] or [http://userwiki.neosys.com/index.php/Configuring_Safari_for_MAC_OS#Fixing_HTTPS_certificate_error_when_logging_in_using_an_external_link_using_MAC_Operating_System Safari] browser.&lt;br /&gt;
&lt;br /&gt;
== Installing &amp;quot;QUICKDEX&amp;quot; on some files ==&lt;br /&gt;
&amp;quot;Quickdex&amp;quot; is a type of index that keeps an alphabetical order on small files. In some maintenance procedures you may be asked to &amp;quot;install Quickdex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For example to add a quickdex to the UNITS file.&lt;br /&gt;
&lt;br /&gt;
Maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 DICT UNITS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
г=================Dictionary=================┐&lt;br /&gt;
│                                            │&lt;br /&gt;
│  File name      UNITS                      │&lt;br /&gt;
│  Field name     .........................  │&lt;br /&gt;
│                                            │&lt;br /&gt;
│  Dict type                                 │&lt;br /&gt;
│  Single/Multi                              │&lt;br /&gt;
│  Data type                                 │&lt;br /&gt;
│  Output format                             │&lt;br /&gt;
│  Validation patterns                       │&lt;br /&gt;
│                                            │&lt;br /&gt;
│  Position              Key part            │&lt;br /&gt;
│                                            │&lt;br /&gt;
│  Column heading                            │&lt;br /&gt;
│                                            │&lt;br /&gt;
│                                            │&lt;br /&gt;
│  Justification     Display length          │&lt;br /&gt;
│  Description                               │&lt;br /&gt;
│                                            │&lt;br /&gt;
│                                            │&lt;br /&gt;
L============================================-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press Shift+F3.&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;Do you want to remove ...&amp;quot; then Quickdex has already been installed and you should not continue. Press Esc to cancel, then Esc to quit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
г=[B202]==================================┐&lt;br /&gt;
│                                         │&lt;br /&gt;
│               &amp;quot;UNITS&amp;quot; has               │&lt;br /&gt;
│          &amp;quot;QUICKDEX&amp;quot; installed.          │&lt;br /&gt;
│                                         │&lt;br /&gt;
│ Do you want to remove &amp;quot;QUICKDEX&amp;quot;? [Y/N] │&lt;br /&gt;
│                                         │&lt;br /&gt;
│&amp;lt;Y                                      &amp;gt;│&lt;br /&gt;
L=========================================-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise it should say &amp;quot;Do you want to install ...&amp;quot;. Press Enter to accept.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
г=[W963]============================┐&lt;br /&gt;
│                                   │&lt;br /&gt;
│     Do you want to install a      │&lt;br /&gt;
│ Quickdex or Rightdex index? [Q/R] │&lt;br /&gt;
│                                   │&lt;br /&gt;
│&amp;lt;Q                                &amp;gt;│&lt;br /&gt;
L===================================-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It should then say &amp;quot;Do you want to update ...&amp;quot;. Press Enter to accept.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
г=[W901]========================================┐&lt;br /&gt;
│                                               │&lt;br /&gt;
│           The &amp;quot;UNITS&amp;quot; file has had            │&lt;br /&gt;
│ the &amp;quot;QUICKDEX&amp;quot; modifying filing system added. │&lt;br /&gt;
│        There are 0 records in &amp;quot;UNITS&amp;quot;.        │&lt;br /&gt;
│                                               │&lt;br /&gt;
│    Do you want to update &amp;quot;QUICKDEX&amp;quot;? [Y/N]    │&lt;br /&gt;
│                                               │&lt;br /&gt;
│&amp;lt;Y                                            &amp;gt;│&lt;br /&gt;
L===============================================-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards it should return to the initial screen. Press Esc to quit.&lt;br /&gt;
&lt;br /&gt;
== Solving NEOSYS smtp server failure ==&lt;br /&gt;
In case the neosys smtp server fails then we can just use the client&#039;s smtp server.&lt;br /&gt;
&lt;br /&gt;
The following information is required from the client&#039;s smtp server configuration:&lt;br /&gt;
#hostname&lt;br /&gt;
#username&lt;br /&gt;
#password&lt;br /&gt;
#port no. (most likely = 25)&lt;br /&gt;
&lt;br /&gt;
These details should be entered in the &#039;&#039;&#039;System Configuration File&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[[image:SYSCFGFILE-SMTP.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Strange characters in maintenance mode ==&lt;br /&gt;
While in Maintenance mode, pressing keys on keyboard gives strange characters. Even Enter and Esc don’t work. &lt;br /&gt;
&lt;br /&gt;
This problem has been seen using RDP on:&lt;br /&gt;
*Window Server 2003 Web Edition&lt;br /&gt;
*Windows Server 2003 R2 SP2&lt;br /&gt;
&lt;br /&gt;
[[image:strangecharmaint.jpg]] &lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
#Go to Windows -&amp;gt; control panel&lt;br /&gt;
#Go to Regional and Language Options &lt;br /&gt;
#Click on Languages tab then click on Details &amp;lt;br&amp;gt; [[image:lang1.jpg]] &amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Settings Tab and Change default input language to English (United States)&amp;lt;br&amp;gt;(or perhaps something else depending on rdp keyboard) &amp;lt;br&amp;gt; [[image:lang2.jpg]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NEOSYS processes do not start after Windows Update  ==&lt;br /&gt;
&lt;br /&gt;
===Problem===&lt;br /&gt;
Scheduled Task to start the NEOSYS processes fail on Servers with Windows 2008 after Windows update. Support will have to log into the server to start the processes manually&lt;br /&gt;
Message on the Schedule Task displays &amp;quot; The operation being requested was not performed because the user has not logged on to the network. The specified service does not exit &amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[image:sti.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
For clients who cannot tolerate manual intervention after server reboots for any reason (e.g.need to start work before NEOSYS support is available or on NEOSYS support weekends), tick &amp;quot;highest privileges&amp;quot; and &amp;quot;run whether the user is logged in or not&amp;quot;. This approach means that NEOSYS processes which are started by the windows scheduled task are not visible on the desktop and run hidden in the background and only listed in task manager, so avoid this approach on small clients (only few users). Avoiding this approach will also serve to act as an indicator of server restarts.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting NEOSYS remote support port forwarding ==&lt;br /&gt;
This assumes that you have already “port forwarded” tcp port 19580 from your public internet router to the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
=== Tst 0 - Check if SSH is working on the NEOSYS Server ===&lt;br /&gt;
Type in the following command in command prompt:&lt;br /&gt;
 telnet 127.0.0.1 19580&lt;br /&gt;
&lt;br /&gt;
IF ALL OK you will see the following:&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-03.jpg]] &lt;br /&gt;
&lt;br /&gt;
=== Test 1 - Check if SSH is basically working on NEOSYS server over the LAN ===&lt;br /&gt;
You must know and use the NEOSYS SERVER LAN IP to do this.&lt;br /&gt;
&lt;br /&gt;
 telnet ???.???.???.??? 19580&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-01.jpg]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you have the WRONG SERVER LAN IP or NEOSYS server SSH is NOT working then it will hang for about 15 seconds and then say “Could not open connection to host …”&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-02.jpg]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
OR IF ALL OK you will see the following:&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-03.jpg]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press Enter to Exit&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-04.jpg]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test 2 - Check if can connect to the NEOSYS ssh from OUTSIDE the office  ===&lt;br /&gt;
From any internet connected computer OUTSIDE the office test if you can connect to NEOSYS ssh service. You cannot do this test from inside the office.&lt;br /&gt;
&lt;br /&gt;
You need to know the public ip or domain name of the router. If the router IP is dynamic then NEOSYS sets up dynamic name server so instead of a static ip number you will have a domain name something like clientxyz.redirectme.net.&lt;br /&gt;
&lt;br /&gt;
Enter the command .. using YOUR public internet IP number (NOT the LAN ip number) or the dynamic domain name.&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-05.jpg]]  &lt;br /&gt;
&lt;br /&gt;
If everything is working OK you will get a black screen as follows. You will NOT get the “SSH-2.0-OpenSSH-4.7” banner” because NEOSYS ssh remote support is restricted to connect ONLY from LAN ip nos and NEOSYS office ip nos.&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-06.jpg]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you press Enter a few times then the cursor will just go down. You have click the [X] to close the window.&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-07.jpg]]  &lt;br /&gt;
&lt;br /&gt;
=== Test 3 - Check that the ssh connection from step 2 was rejected  ===&lt;br /&gt;
On the NEOSYS server, check the Windows Application log to verify that an SSH connection was rejected.&lt;br /&gt;
&lt;br /&gt;
The rejected ip number will be of the system outside the office that you performed the test from.&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-08.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Sample Email: Solving port 19580 port forwarding issues ===&lt;br /&gt;
&lt;br /&gt;
Some IT people know how to troubleshoot port forwarding issues but others are mostly just power users who can configure a home router. If the IT person is in the second category then it is quicker for NEOSYS support to offer to configure their router from the NEOSYS server using Teamviewer. Ideally NEOSYS should not be doing client IT work but if client IT allows NEOSYS access to their router then NEOSYS support can make a brief attempt to do the configuration. If the issue is still unresolved then request the client to get a professional IT network expert to do the job and inform them that NEOSYS will not be able to provide them any support till connectivity is fixed. Below is a letter advising a more skilled person to check connections using telnet which is a low level test.&lt;br /&gt;
&lt;br /&gt;
You can usually determine the NEOSYS server LAN IP number from Nagios. If so then adjust the email text appropriately.&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
It is highly critical to fix the connectivity with the NEOSYS server because NEOSYS will not be able to provide any support until connectivity is fixed. User support issues will be delayed and remain unresolved if you do not fix this issue URGENTLY.&lt;br /&gt;
&lt;br /&gt;
At the moment there is no connection from the internet via your router to the NEOSYS server and when we do the following, we get no connection. &lt;br /&gt;
&lt;br /&gt;
   telnet CLIENTNAME.hosts.neosys.com 19580&lt;br /&gt;
&lt;br /&gt;
Normally it should connect and presents a black screen (saying SSH something after pressing Enter) which we close.&lt;br /&gt;
&lt;br /&gt;
Please check that you can connect to the NEOSYS server internally by using the NEOSYS server IP address in the following command on any computer in your LAN.&lt;br /&gt;
&lt;br /&gt;
   telnet 192.168.?.? 19580&lt;br /&gt;
&lt;br /&gt;
If you can connect to the NEOSYS server internally then please check port forwarding.&lt;br /&gt;
&lt;br /&gt;
Additionally check the following:&lt;br /&gt;
1. Has your router IP changed? The IP we have is x.x.x.x&lt;br /&gt;
2. Has your server’s LAN IP changed and are you forwarding to the correct LAN IP?&lt;br /&gt;
3. Is the configuration really correct?&lt;br /&gt;
4. Check router logs for clues&lt;br /&gt;
5. Check NAT settings in the router&lt;br /&gt;
&lt;br /&gt;
If you still cannot see the problem, do &amp;quot;telnet CLIENTNAME.hosts.neosys.com 19580&amp;quot; command from OUTSIDE your network to replicate the problem we are facing.&lt;br /&gt;
&lt;br /&gt;
For troubleshooting steps refer Troubleshooting NEOSYS remote support&lt;br /&gt;
http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding&lt;br /&gt;
&lt;br /&gt;
If the problem still persists, please get a professional IT network expert to fix the issue.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Port mapping restricted by Source IP ===&lt;br /&gt;
&lt;br /&gt;
On NEOSYS router, port forwarding has been setup only for specific source IP addresses. This means you will not be able to establish a TCP connection to NEOSYS server unless your server&#039;s outbound IP is mapped to the NEOSYS router. In other words unless the outbound i.e source IP/port of your server has been granted access on the NEOSYS router for all incoming connections you will not be able to make connections to NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
Outbound IP is used whenever a server tries to make a connection to another server outside its network. On the other hand a server receives all incoming connections using it&#039;s Inbound IP.&lt;br /&gt;
&lt;br /&gt;
Therefore to setup ssh connection from a new Client server to NEOSYS server we need to grant access to its outbound IP on the NEOSYS router. See [[Troubleshooting_NEOSYS_Generally#If_Telnet_does_not_work | link]] to find the outbound server IP/ports of the server.&lt;br /&gt;
&lt;br /&gt;
== Solving “Cant login … INVALID DATA PATH … permission denied” ==&lt;br /&gt;
=== Error Message ===&lt;br /&gt;
&lt;br /&gt;
[[image:error-invalid-data-path-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Error Text:&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Cannot login because:&lt;br /&gt;
 ERROR: INVALID DATA PATH&lt;br /&gt;
 “D:\HOSTS\HOSTNAME\DATA\HOSTNAME\~8746345.1$” Permission Denied&lt;br /&gt;
&lt;br /&gt;
=== Problem Explained ===&lt;br /&gt;
When installing NEOSYS on an existing “non-clean” Windows installation, the standard NEOSYS installation procedure can result in failure to login if the standard windows folder permissions have been modified.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution is to grant IIS permission to write in the \neosys\DATA folder and subfolders as follows:&lt;br /&gt;
#First add the IUSR_XXXXXXX user to the list of users. (XXXXXXXX is the server name and therefore varies per server) as follows:&lt;br /&gt;
#*Right Click on DATA Folder and click on Properties&lt;br /&gt;
#*Click on Security Tab -&amp;gt; Add -&amp;gt; Advanced&lt;br /&gt;
#*Click on Find Now, Select the IUSR_XXXXXXX user and Click on OK&amp;lt;br&amp;gt;[[image:error-invalid-data-path-2.jpg]]&amp;lt;br&amp;gt;[[image:error-invalid-data-path-3.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
#Second, for the newly added IUSR (IIS user) change the permissions as follows:&lt;br /&gt;
#*&#039;&#039;&#039;REMOVE&#039;&#039;&#039; the read and execute permission (for security, IIS should be unable to execute things that it might have uploaded)&lt;br /&gt;
#*&#039;&#039;&#039;ADD&#039;&#039;&#039; the write permission &amp;lt;br&amp;gt;[[image:error-invalid-data-path-4.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
#Login should now be possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NEOSYS process window displays message &amp;quot;Upgrade Downloading&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
[[image:upgradedownloading.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Problem Explained ===&lt;br /&gt;
NEOSYS thinks it sees an new neosys2.exe upgrade file on the location http://www.neosys.com/support/neosys2.exe which is accessed by http so attempts to download it.&lt;br /&gt;
&lt;br /&gt;
Http proxies and various internet issues can cause incorrect info to be sent and there is actually no upgrade available. In this case, eventually it realizes that it cant find an appropriate and it stops. &lt;br /&gt;
&lt;br /&gt;
You don’t have to worry about this case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enabling EMS memory on Window 2003 ==&lt;br /&gt;
&lt;br /&gt;
Normally EMS memory is provided by Windows 2003 but this can vary depending on the server hardware/bios configuration&lt;br /&gt;
&lt;br /&gt;
If you get the following messages on Windows 2003&lt;br /&gt;
&lt;br /&gt;
#Backup File Size is 0&lt;br /&gt;
#RTP27. [B28] Not enough String Space – Out of Memory&lt;br /&gt;
&lt;br /&gt;
=== Cause ===&lt;br /&gt;
&lt;br /&gt;
On servers that had no problem previously, the problem is caused by a windows update in Oct 2012 that disables standard Windows EMS memory.&lt;br /&gt;
&lt;br /&gt;
The patch is issued by Microsoft on 9 Oct 2012 but the installation date in the server depends on when the update was actually installed.&lt;br /&gt;
&lt;br /&gt;
http://support.microsoft.com/kb/2724197&lt;br /&gt;
&lt;br /&gt;
=== Solution 1 - maximum performance ===&lt;br /&gt;
&lt;br /&gt;
To re-enable standard windows EMS on older slower servers or servers where NEOSYS performance must be maximized.&lt;br /&gt;
&lt;br /&gt;
The following link contains instructions how to remove the offending windows update&lt;br /&gt;
&lt;br /&gt;
It also shows how to prevent it being reinstalled automatically by Windows.&lt;br /&gt;
&lt;br /&gt;
http://www.columbia.edu/~em36/wpdos/emsxp.html&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to prevent it being reinstalled again automatically&lt;br /&gt;
&lt;br /&gt;
=== Solution 2 – ease of installation ===&lt;br /&gt;
&lt;br /&gt;
This option can also be used if Window 2003 is unable to provide EMS memory for example when the server hardware/bios configuration prevents it.&lt;br /&gt;
&lt;br /&gt;
Install EMSMAGIC in the same way as for Windows server 2008&lt;br /&gt;
&lt;br /&gt;
EMSMAGIC has higher memory consumption and makes NEOSYS processes slower so it is better to use Solution 1 above if NEOSYS performance is an issue.&lt;br /&gt;
&lt;br /&gt;
== Fixing no output file in XXX YYY Issue ==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
[[File:Nooutputfile.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Problem Explained===&lt;br /&gt;
&lt;br /&gt;
The message “No output file in XXX YYY” can appear at several instances in NEOSYS, most often when generating reports or documents. &lt;br /&gt;
&lt;br /&gt;
This problem is usually caused by software error and it indicates that the NEOSYS server responded without any output and without any message. &lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
*Find proof to check if the data required for the report actually exists. This way we can eliminate lack of data as a cause for this error.&lt;br /&gt;
*Check to see if a similar issue has been fixed in latest version of NEOSYS.&lt;br /&gt;
*Document HOW and WHERE the problem can be duplicated by NEOSYS programmers to identify and correct the software.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Units file is missing&amp;quot; error ==&lt;br /&gt;
&lt;br /&gt;
[[Image:unitsfile.png]]&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
As the message mentions, the &#039;Units&#039; file is missing. This error can be fixed by copying the file from any other installation, since the Units file is the same in all installations.&lt;br /&gt;
&lt;br /&gt;
The Units file is found in the &#039;General&#039; folder. Path : neosys/NEOSYS/DATA/DATABASE/GENERAL/&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting Internet Connections ==&lt;br /&gt;
&lt;br /&gt;
===Cannot Connect===&lt;br /&gt;
&lt;br /&gt;
While investigating as to why users are not able to access NEOSYS or http://www.neosys.com/ , you can check which ISP the connection issue is on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;whois ipno&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect very carefully to get clues as to which ISP and which AREA of the ISP the problematic ip numbers are and which do NOT have problems&lt;br /&gt;
&lt;br /&gt;
Doing tracert on windows command prompt on the user&#039;s computer may help locate which point on the route between the user and the server is blocking access&lt;br /&gt;
&lt;br /&gt;
 tracert xxxx.hosts.neosys.com&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;xxxx&amp;quot; is the client name. In this example, the output will be something like shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Tracing route to xxxx.hosts.neosys.com [37.48.81.101]&lt;br /&gt;
over a maximum of 30 hops:&lt;br /&gt;
&lt;br /&gt;
  1     2 ms     1 ms     3 ms  ukr.sb.com [192.168.2.1]&lt;br /&gt;
  2    10 ms    10 ms    11 ms  losubs.subs.bng2.th-lon.zen.net.uk [62.3.80.21]&lt;br /&gt;
  3    12 ms    10 ms    67 ms  ae1-182.cr1.th-lon.zen.net.uk [62.3.86.80]&lt;br /&gt;
  4    10 ms    11 ms    11 ms  ae0-0.br2.th-lon.zen.net.uk [62.3.80.42]&lt;br /&gt;
  5    13 ms    14 ms    14 ms  peering.thn.lon.leaseweb.net [195.66.225.56]&lt;br /&gt;
  6    23 ms    23 ms    24 ms te-0-10-0-19.bb01.ams-01.leaseweb.net [31.31.32.71]&lt;br /&gt;
  7    22 ms    22 ms    23 ms xe-11-2-3.br01.ams-01.nl.leaseweb.net [31.31.38.89]&lt;br /&gt;
  8    25 ms    28 ms    26 ms  be-10.cr02.ams-01.nl.leaseweb.net [81.17.34.21]&lt;br /&gt;
  9    24 ms    20 ms    25 ms po-1002.ce02.ams-01.nl.leaseweb.net [37.48.95.195]&lt;br /&gt;
 10    24 ms    22 ms    22 ms  nl10r.neosys.com [37.48.81.101]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting TCP/IP Connections ===&lt;br /&gt;
&lt;br /&gt;
====Telnet check====&lt;br /&gt;
 telnet &amp;lt;hostname&amp;gt; 19580&lt;br /&gt;
&lt;br /&gt;
If success then host is on web and port is open. &lt;br /&gt;
Otherwise if error: &amp;quot;Connection refused,&amp;quot; then either an intermediate firewall is blocking access or the port is closed on host machine. &lt;br /&gt;
Action: check with client if office firewall(s) allow connection on that port and if the port is open on the host server.&lt;br /&gt;
&lt;br /&gt;
====If Telnet does not work====&lt;br /&gt;
In case telnet does not work, login to the remote host server to investigate the issue. Run the following command simultaneously while doing Telnet from client server to the remote host to check if the TCP packets are reaching the Remote server.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tcpdump -v &#039;src host client-domain-name/ip&#039; &lt;br /&gt;
tcpdump -v portno &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check if packets are sent from the client server to the remote host, you can run the following command simultaneously while trying to ssh to the remote server.&lt;br /&gt;
&amp;lt;pre&amp;gt;netstat -an &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also check if the outbound ports are open from which you are trying to establish the TCP connection to the remote server.&lt;br /&gt;
&amp;lt;pre&amp;gt;telnet portquiz.net portno &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The outbound IP addresses at times can be different from the public IP of the Client server so be sure that the public IP of the client server is the same as its source IP (which represents an incoming connection from Client to Remote server). One way to find the source IP of the Client server is sending an email from Client server to &amp;quot;support@neosys.com&amp;quot;. On receiving the email in Thunderbird, select the email and press Ctrl+u. A new window Opens giving full details of the email received. The third &amp;quot;Received :from&amp;quot; gives the IP of the source.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting DNS failure ===&lt;br /&gt;
&lt;br /&gt;
NEOSYS clients routers are usually configured to use their ISP DNS service and the ISP DNS service is supposed to contact one of NEOSYS&#039;s DNS servers to convert server names like hosts.neosys.com into IP numbers. Misconfiguration of clients routers or problems in the ISP DNS server may cause CANNOT CONNECT problems. Often the connect fails quickly and immediately since if a name cannot be converted to an ip number then the connection cannot even be attempted and therefore there is little or no timeout to wait through.&lt;br /&gt;
&lt;br /&gt;
NEOSYS.COM name servers are listed publically and obtained by whois command.&lt;br /&gt;
&lt;br /&gt;
 whois neosys.com&lt;br /&gt;
&lt;br /&gt;
 Name Server: DNS1.EASYDNS.COM&lt;br /&gt;
 Name Server: DNS2.EASYDNS.NET&lt;br /&gt;
 Name Server: DNS3.EASYDNS.ORG&lt;br /&gt;
 Name Server: NS12.ZONEEDIT.COM&lt;br /&gt;
 Name Server: NS18.ZONEEDIT.COM&lt;br /&gt;
&lt;br /&gt;
In order to contact NEOSYS DNS servers the ISP&#039;s have to use a global DNS to obtain the ip addresses of NEOSYS DNS servers given the host names of NEOSYS DNS servers given in the whois info&lt;br /&gt;
&lt;br /&gt;
Here is an example of DU testing NEOSYS DNS servers. The NEOSYS DNS server ip addresses are listed in the Destination column.&lt;br /&gt;
&lt;br /&gt;
[[File:internet.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If one DNS server is down or unreachable REGARDLESS OF REASON, the ISP is supposed to use the other DNS servers. It is impossible for all NEOSYS DNS servers to be unreachable except in gross disconnection from the internet of the ISP since it is effectively impossible that all NEOSYS DNS servers which are carefully spread around the internet, to be unreachable.&lt;br /&gt;
&lt;br /&gt;
In the above test one of the NEOSYS DNS servers is unreachable but all the others are reachable therefore DU should have no problem providing DNS service to its clients.&lt;br /&gt;
&lt;br /&gt;
ISP are often worse at providing DNS server than the famous GOOGLE DNS servers, so re configuring client router to use GOOGLE DNS servers is a way to prove that the problem lies with the ISP&#039;s DNS service&lt;br /&gt;
&lt;br /&gt;
=== Additional test for troubleshooting problems with uploading ===&lt;br /&gt;
&lt;br /&gt;
====Verifying that upload.dll can run====&lt;br /&gt;
&lt;br /&gt;
This isnt a complete test of everything. It just checks if the upload program can be run by the web server. It doesnt check if uploads work or the image directory is correctly configured with the right permissions and uploads can actually be done.&lt;br /&gt;
&lt;br /&gt;
===== Error Message =====&lt;br /&gt;
&lt;br /&gt;
... to be added when discovered ...&lt;br /&gt;
&lt;br /&gt;
===== Test =====&lt;br /&gt;
&lt;br /&gt;
Test HTTP if accessible by LAN; Test HTTPS is accessible by Internet; Test both if both are available.&lt;br /&gt;
&lt;br /&gt;
On the server type the following into a browser&lt;br /&gt;
&lt;br /&gt;
LAN/HTTP:&lt;br /&gt;
&lt;br /&gt;
 http://localhost/neosys/neosys/dll/upload.dll&lt;br /&gt;
&lt;br /&gt;
WAN/HTTPS:&lt;br /&gt;
&lt;br /&gt;
 https://localhost:9999/neosys/dll/upload.dll&lt;br /&gt;
&lt;br /&gt;
===== Expected Result =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Upload Error. !&lt;br /&gt;
Please call me from a form !!!&lt;br /&gt;
The first param must be Filename= name of the uploaded file, TYPE=TEXT&lt;br /&gt;
The second param must be Filedata= uploaded file, TYPE=FILE&lt;br /&gt;
The third param is optional PathData= path to uploaded file, default c:\temp\, TYPE=HIDDEN&lt;br /&gt;
The forth param is optional RedirectPage= name of asp who receive the results, TYPE=HIDDEN&lt;br /&gt;
Add others params at the end with INPUT tag.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:Uerror.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Patching a NEOSYS program ==&lt;br /&gt;
&lt;br /&gt;
Patches done to NEOSYS programs are not affected by live to test database copy, since the programs are on installation level and not database level.&lt;br /&gt;
&lt;br /&gt;
The patch provided will tell you the program name and contain either a whole replacement program text or just some changed lines which you will have to find and edit.&lt;br /&gt;
&lt;br /&gt;
For older versions of NEOSYS, you will need to know the file name which may be provided along with the patch or you can find it using the following code in maintenance mode:&lt;br /&gt;
&lt;br /&gt;
 ED VOC programname&lt;br /&gt;
&lt;br /&gt;
ED VOC XYZ tells you what program name is executed and from what file, when you type the command XYZ. Normally the program name is the same as the command.&lt;br /&gt;
&lt;br /&gt;
The file name will normally be BP for agency programs, GBP for general programs or ABP for finance programs.&lt;br /&gt;
&lt;br /&gt;
NEOSYS programs are stored in files just like records of ordinary database files. You can edit either with &amp;quot;ED filename programname&amp;quot; or &amp;quot;TED filename programname&amp;quot;. TED is better for editing source code as it opens the the code in a text editor, whereas ED opens the code in the same maintenance window.&lt;br /&gt;
&lt;br /&gt;
To test patches immediately, Support may have to clear cache by pressing CTRL+F5. Refer to [[Configuring_IIS#IIS_web_page_caching|Web Caching]] for more information.&lt;br /&gt;
&lt;br /&gt;
===Installing patch in live database===&lt;br /&gt;
&lt;br /&gt;
In the rare case that the programmer asks Support to install the patch directly on LIVE dataset, start by typing the following command in maintenance mode before commencing:&lt;br /&gt;
&lt;br /&gt;
 UTIL&lt;br /&gt;
&lt;br /&gt;
Follow the instructions mentioned in the [[Troubleshooting_NEOSYS_Generally#Installing_patch_in_test_database| next section]], but skip the instruction to TEST the patched program in test dataset.&lt;br /&gt;
&lt;br /&gt;
The instruction to INSTALL the patched program MUST be followed BEFORE testing the patch in live dataset. Otherwise the changes will not get reflected.&lt;br /&gt;
&lt;br /&gt;
===Installing patch in test database===&lt;br /&gt;
&lt;br /&gt;
1. EDIT the program source code.&lt;br /&gt;
&lt;br /&gt;
 TED programname&lt;br /&gt;
&lt;br /&gt;
If you have to edit or patch a program that starts with the word DICT. and the remainder of the program name is the same as a real file name e.g DICT.INVOICES, then you cannot omit and must type the actual source file name - in this case, &amp;quot;BP&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Otherwise, if you just type &amp;quot;ED DICT.INVOICES&amp;quot; hoping to edit the DICT.INVOICES program in the BP file, then you will end up editing the dictionary of INVOICES, which is not what you are trying to do. Use the command below to edit such type of programs:&lt;br /&gt;
&lt;br /&gt;
 ED BP DICT.INVOICES&lt;br /&gt;
&lt;br /&gt;
If you want to patch line 8, i.e. the source code, of an S type dictionary then you can use TED for easier editing.&lt;br /&gt;
&lt;br /&gt;
 TED DICT.filename itemname &lt;br /&gt;
&lt;br /&gt;
Next either cut and paste to modify the whole program or edit the program text according to the patch/instructions provided.&lt;br /&gt;
&lt;br /&gt;
Save and close the program source code.&lt;br /&gt;
&lt;br /&gt;
2. COMPILE it. If you get errors then check your edits are correct and recompile otherwise return the patch to programming.&lt;br /&gt;
&lt;br /&gt;
In newer versions of NEOSYS, versions in and after April 2018, use the below command for compiling.&lt;br /&gt;
&lt;br /&gt;
 CO programname&lt;br /&gt;
&lt;br /&gt;
In older versions of NEOSYS, you will have to include the filename.&lt;br /&gt;
&lt;br /&gt;
 COMPILE filename programname&lt;br /&gt;
&lt;br /&gt;
3. TEST it. Ensure the patched program now works in TEST database.&lt;br /&gt;
&lt;br /&gt;
4. INSTALL the patched program in the LIVE database. &lt;br /&gt;
&lt;br /&gt;
For newer versions of NEOSYS, versions in and after April 2018, use the below command to copy from test to live.  &lt;br /&gt;
&lt;br /&gt;
 COPYBP programname&lt;br /&gt;
&lt;br /&gt;
For older versions of NEOSYS, depending on the filename that you patched, one of the following commands will have to be used.&lt;br /&gt;
&lt;br /&gt;
 COPYGBP programname&lt;br /&gt;
 COPYABP programname&lt;br /&gt;
 COPYBP programname&lt;br /&gt;
&lt;br /&gt;
== Patching NEOSYS dictionaries ==&lt;br /&gt;
&lt;br /&gt;
A patch to a dictionary applies immediately when you save it and to all datasets regardless of which dataset you work in.&lt;br /&gt;
&lt;br /&gt;
You need:&lt;br /&gt;
&lt;br /&gt;
#the file name eg INVOICES&lt;br /&gt;
#the item name (column name) eg  DATETIME_AMENDED&lt;br /&gt;
#10 lines of data similar to the example below.&lt;br /&gt;
#if the item is an S type dictionary, then either the whole, or only the amended part, of the source code of the dictionary.&lt;br /&gt;
&lt;br /&gt;
 ED DICT INVOICES DATETIME_AMENDED&lt;br /&gt;
&lt;br /&gt;
TYPE everything below exactly on the corresponding line numbers except lines 3 and very commonly line 8, as these lines may contain multiple values separated by a superscript 2 (²). Line numbers in the below screen are only for illustrative purpose. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ╔═══════════════════════════┤DATETIME_AMENDED├═════════════════════════╗&lt;br /&gt;
 1║S                                                                     ║&lt;br /&gt;
 2║                                                                      ║&lt;br /&gt;
 3║DateTime²Amended                                                      ║&lt;br /&gt;
 4║S                                                                     ║&lt;br /&gt;
 5║                                                                      ║&lt;br /&gt;
 6║                                                                      ║&lt;br /&gt;
 7║[DATETIME]                                                            ║&lt;br /&gt;
 8║updated=@record&amp;lt;28&amp;gt;²created=@record&amp;lt;31,1&amp;gt;²@ans=&#039;&#039;²if created and num(c║..actually this line continues off the screen to the right&lt;br /&gt;
 9║R                                                                     ║&lt;br /&gt;
10║10                                                                    ║&lt;br /&gt;
11║                                                                      ║&lt;br /&gt;
  :                                                                      :&lt;br /&gt;
  :                                                                      :&lt;br /&gt;
  ╚══════════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press Ctrl+E on lines 3 or 8 in order to enter sub-lines. &lt;br /&gt;
&lt;br /&gt;
The multiple values (on line 3 and 8) separated by a superscript 2 (²) automatically appear when sub-lines are entered.&lt;br /&gt;
&lt;br /&gt;
For line 8, you will need to cut and paste the lines of below program to the Ctrl+E screen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════┤Field 8 of DATETIME_AMENDED├════════════════════════╗&lt;br /&gt;
║updated=@record&amp;lt;28&amp;gt;                                                           ║&lt;br /&gt;
║created=@record&amp;lt;31,1&amp;gt;                                                         ║&lt;br /&gt;
║@ans=&#039;&#039;                                                                       ║&lt;br /&gt;
║if created and num(created) and num(updated) then                             ║&lt;br /&gt;
║ createdsecs=field(created,&#039;.&#039;,1)*86400+field(created,&#039;.&#039;,2)                  ║&lt;br /&gt;
║ updatedsecs=field(updated,&#039;.&#039;,1)*86400+field(updated,&#039;.&#039;,2)                  ║&lt;br /&gt;
║ if abs(updatedsecs-createdsecs)&amp;gt;120 then                                     ║&lt;br /&gt;
║  @ans=updated                                                                ║&lt;br /&gt;
║  end                                                                         ║&lt;br /&gt;
║ end                                                                          ║&lt;br /&gt;
║                                                                              ║&lt;br /&gt;
║                                                                              ║&lt;br /&gt;
╚══════════════════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you save and exit the Ctrl+E screen, you will see the sublines separated by superscript 2 appear in one line in the ED screen. &lt;br /&gt;
&lt;br /&gt;
Similarly, for line 3, you need to enter its sub-lines in Ctrl+E screen.&lt;br /&gt;
&lt;br /&gt;
To ensure indenting remains nice (although indenting is not important and can be messed up without causing any problem) then copy the double bars at the front of the lines (if available, otherwise insert some char in position 1 of each line perhaps) and then remove them after you paste ... or just edit until the indenting is correct if you really want to.&lt;br /&gt;
&lt;br /&gt;
Press F9 and/or Esc to save and/or exit from Ctrl+E screen&lt;br /&gt;
&lt;br /&gt;
Press F9 and/or Esc to save and/or exit from ED&lt;br /&gt;
&lt;br /&gt;
== Linux Commands ==&lt;br /&gt;
&lt;br /&gt;
This section is aimed teaching support, new to the Linux environment, how to navigate and use the most common useful commands.&lt;br /&gt;
&lt;br /&gt;
Use google or &amp;quot;man &amp;lt;programName&amp;gt;&amp;quot; to get the manual of a program. E.g &amp;quot;man man&amp;quot; gives you the MANual for the Manual program.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;|&amp;quot; use the pipe command to take output of one command and input into another. E.g Cmd: &amp;quot; Echo &amp;quot;ABC&amp;quot; | removeA | removeC &amp;quot;. Output = &amp;quot;B&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Typically commands assume you mean the current directory, if you don&#039;t specify which directory you want the command to perform in/on.&lt;br /&gt;
&lt;br /&gt;
Strings with spaces have to be wrapped in double quotation &amp;quot;May 14 01:30:55&amp;quot; before use as input to most commands.&lt;br /&gt;
&lt;br /&gt;
Follow this convention in wiki to understand the syntax (structure) of the Linux commands and options.&lt;br /&gt;
&lt;br /&gt;
Input wrapped in &amp;quot;&amp;lt;...&amp;gt;&amp;quot; is mandatory.&lt;br /&gt;
&lt;br /&gt;
Input wrapped in &amp;quot;[...]&amp;quot; is optional. &lt;br /&gt;
&lt;br /&gt;
=== Searching for strings in one or many files using grep ===&lt;br /&gt;
&lt;br /&gt;
Using the GUI with Ctrl + F is laborious and less powerful.&lt;br /&gt;
&lt;br /&gt;
Use grep command in Linux or Cygwin to search files especially when you are doing deep inspection of NEOSYS Logs. &lt;br /&gt;
&lt;br /&gt;
Use the following command to search for a string in any file or directory&lt;br /&gt;
&lt;br /&gt;
 grep &amp;lt;string&amp;gt; [path to file OR filename] [-r]&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;string&amp;quot; is the text to be searched and &amp;quot;-r&amp;quot; means recursive - check all files in all sub directories.&lt;br /&gt;
&lt;br /&gt;
 grep -i -a string path/file&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;file&amp;quot; is the type of file you are looking for and &amp;quot;path&amp;quot; is the path of the directory you are looking into. Use &amp;quot;&amp;quot; when having spaces in your string.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;-i&amp;quot; means ignore upper/lower case characters in the string and &amp;quot;-a&amp;quot; means treat the file type as text and display the matching text)&lt;br /&gt;
&lt;br /&gt;
e.g when searching in NEOSYS logs the year/month/date is specified in the file name, so if you are looking for a file in year 2016 in the month of Feb, use&lt;br /&gt;
&lt;br /&gt;
 grep XXXX path/1602*&lt;br /&gt;
&lt;br /&gt;
In the above command * (asterisk) is a wildcard &amp;quot;means replace * with any thing&amp;quot; and is used when you don&#039;t know what that part of the command could be. &lt;br /&gt;
&lt;br /&gt;
E.g &amp;quot;*.jpg&amp;quot; means any file names that end with &amp;quot;.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sample below of grep command and its output where it is searching for &amp;quot;Dior&amp;quot; in 2016 march logs.&lt;br /&gt;
&lt;br /&gt;
 $ grep -i Dior /cygdrive/d/hosts/test/logs/test/2016/1603*&lt;br /&gt;
 Binary file path/16030301.XML matches&lt;br /&gt;
&lt;br /&gt;
Using * (asterisk), a string can also be searched globally across all installations on the server.&lt;br /&gt;
&lt;br /&gt;
Below example will search all files whose file names begin with &amp;quot;NEOS00&amp;quot;, in all client installation folders inside the &amp;quot;hosts&amp;quot; folder, for log entries containing text &amp;quot;5th June 2016&amp;quot;.&lt;br /&gt;
 $ grep -a &amp;quot;2016 JUN 05&amp;quot; /cygdrive/d/hosts/*/logs/NEOS00*|less&lt;br /&gt;
&lt;br /&gt;
Use the commands below to display the search string and required number of lines that come either after or before the search string, depending on what you enter in your command. It helps to get more information from files especially when you only know few words and the other information around the searched string also gets displayed. &lt;br /&gt;
&lt;br /&gt;
 grep -A&amp;lt;NUM&amp;gt; string file&lt;br /&gt;
&lt;br /&gt;
Above command will display the line where the searched string was found, and also display NUM lines after the searched text&lt;br /&gt;
&lt;br /&gt;
 grep -B&amp;lt;NUM&amp;gt; string file&lt;br /&gt;
&lt;br /&gt;
Above command will display the line where the searched string was found, and also display NUM lines before the searched text&lt;br /&gt;
&lt;br /&gt;
See the examples and their respective outputs below:&lt;br /&gt;
&lt;br /&gt;
 $ grep -A2 -i &amp;quot;Dior&amp;quot; 1603*&lt;br /&gt;
 Binary file 16032101.XML matches&lt;br /&gt;
 Binary file 16032901.XML matches&lt;br /&gt;
&lt;br /&gt;
 $ grep -A2 -a &amp;quot;Dior&amp;quot; 1603*&lt;br /&gt;
 16030301.XML:&amp;lt;DataOut&amp;gt;DIOR%FEPOI%FE&#039;&#039;&#039;Dior&#039;&#039;&#039; Poison%FE%FE%FE%FE%FEDubai,    UAE%FE%FE%FE%FEN%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FEN%FE%FE%FE17584.43592%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE1%FE%FE%FE%FE%FE%FE%FE%FE%FENEOSYS%FE17584.43592%FE94_200_49_146%FE1%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FEpaulson&amp;lt;/DataOut&amp;gt;&amp;lt;/Message&amp;gt;&lt;br /&gt;
 --&lt;br /&gt;
 16030301.XML:&amp;lt;DataOut&amp;gt;DIOR%FEPOI%FE&#039;&#039;&#039;Dior&#039;&#039;&#039; Poison%FE%FE%FE%FE%FEDubai,   UAE%FE%FE%FE%FEN%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FEN%FE%FE%FE17584.43592%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE1%FE%FE%FE%FE%FE%FE%FE%FE%FENEOSYS%FE17584.43592%FE94_200_49_146%FE1%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FEpaulson&amp;lt;/DataOut&amp;gt;&amp;lt;/Message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more examples of grep below:&lt;br /&gt;
&lt;br /&gt;
Use the command below when searching for more than one string&amp;lt;br&amp;gt;&lt;br /&gt;
 grep -a string1 *|grep string2&lt;br /&gt;
&lt;br /&gt;
Use the below command to omit the lines containing specific strings in your search:&lt;br /&gt;
 grep -B2 -a Processing 160329*|grep -v DataIn|grep -v Message|less&amp;lt;br&amp;gt;&lt;br /&gt;
Above command will display lines containing string &amp;quot;Processing&amp;quot; and exclude lines containing string &amp;quot;DataIn&amp;quot; and &amp;quot;Message&amp;quot;, |&amp;quot;less&amp;quot; displays the output in a new screen.&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;zgrep&amp;quot; command to search in zip files:&lt;br /&gt;
 zgrep string1 /path |zgrep string2 |less&lt;br /&gt;
&lt;br /&gt;
=== FIND ===&lt;br /&gt;
&lt;br /&gt;
Use this find command to list all files/directories modified after a certain date.&lt;br /&gt;
&lt;br /&gt;
 find [path, if omitted means = current directory] [-type f,d] [-newermt &#039;MM/DD/YYYY HH:MM:SS&#039;]&lt;br /&gt;
&lt;br /&gt;
Or use a filename instead of date:&lt;br /&gt;
 &lt;br /&gt;
 find  -newer filename&lt;br /&gt;
&lt;br /&gt;
== Managing the queue of reports being delivered by email ==&lt;br /&gt;
&lt;br /&gt;
In maintenance mode.&lt;br /&gt;
&lt;br /&gt;
=== Listing ===&lt;br /&gt;
&lt;br /&gt;
 LIST DOCUMENTS WITH SCHEDULED_ONCE&lt;br /&gt;
&lt;br /&gt;
=== Clearing ===&lt;br /&gt;
&lt;br /&gt;
 SELECT DOCUMENTS WITH SCHEDULED_ONCE&lt;br /&gt;
 DELETE DOCUMENTS&lt;br /&gt;
&lt;br /&gt;
== Reduce used disk space on NEOSYS or client hosted servers ==&lt;br /&gt;
Non essential files getting accumulated over time can take up a lot of space on the hard disk resulting in low free space on the server. NEOSYS Client Monitoring system alerts about low free space for win3 server as it monitors the Disk Space of both C &amp;amp; D drive. To fix it Support team will have to create free space on the server.&lt;br /&gt;
&lt;br /&gt;
Making space on the server is time taking and requires patience as you need to go through all the files/folders looking for non-essential files. Do not make any assumptions for not looking into a folder.&lt;br /&gt;
&lt;br /&gt;
Non-essential files are the ones without which we can work properly and will continue to work in future.&lt;br /&gt;
&lt;br /&gt;
Support team should keep in mind the below points while creating space on the server:&lt;br /&gt;
&lt;br /&gt;
#Look into the drive for which nagios is alerting and dig into all the folders.&lt;br /&gt;
#Right click Folder &amp;gt; Properties &amp;gt; Size on Disk, to find out the size of a folder.&lt;br /&gt;
#On d drive majority of the space is taken by d:\hosts and d:\data.bak folder and on c drive it&#039;s taken up by the important windows/cygwin folders.&lt;br /&gt;
#The space distribution will give you an idea about which folders to target that can free up a good amount of space on clean up.&lt;br /&gt;
#Following are the non essential files/folders which can create a lot of space on removal. Use your intelligence and presence of mind while deleting files/folders because once deleted the information is lost forever.&lt;br /&gt;
#*Folder: d\data.bak. Check for stopped clients&#039; backups and delete if present.&lt;br /&gt;
#*Folder: d\hosts\clientname\logs (where clientname stands for all the client folders in hosts) Look into logs prior to the current year and the year before and delete them. In the recent versions of NEOSYS, log folders are compressed and take up a lot less space on disk than presented as their size. You can see the difference in their properties.&lt;br /&gt;
#*Folder: d\hosts\clientname\downloads. This folder might contain lot of old versions of neosys.exe files. Keep the two latest versions and delete the rest. Do this for all client folders except test installation because Support maintains all the old versions of neosys.exe in it.&lt;br /&gt;
#*Folder: d\hosts\old. In this folder, delete all client folders that are older than 1 year.&lt;br /&gt;
#*Apart from above folders look for random backup.zip files present in c/d drive. This happens when Support restores data from a zip file and forgets to delete it after the restore.&lt;br /&gt;
&lt;br /&gt;
To quickly get an idea of which directories consume the largest space, SSH onto server and use the &amp;quot;du&amp;quot; command along with various options, combined with command &amp;quot;sort&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;du&amp;quot; Disk Usage is used to estimate file space usage under a particular directory. Look up &amp;quot;sort&amp;quot; and &amp;quot;head&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Use this to find the estimate disk usage of each sub directory of every log directory in /hosts and then sort -n umerically and -r everse sort from high to low:&lt;br /&gt;
&lt;br /&gt;
 du /*/LOGS/*/20* --time  | sort -n -r&lt;br /&gt;
&lt;br /&gt;
Go to /hosts or D:/NEOSYS folder. Use command to get the estimate disk usage for all sub directories excluding directories where you know for certain files cannot be deleted.&lt;br /&gt;
(sort the directories by highest to lowest estimated disk usage in kb and then shows the top 20)&lt;br /&gt;
&lt;br /&gt;
 du --exclude={*/NEOSYS,*/neosys.net,*path/to/another/dir/that/cannot/be/deleted} --time | sort -r -n | head -n 20&lt;br /&gt;
&lt;br /&gt;
=== Reduce used disk space on backup servers ===&lt;br /&gt;
&lt;br /&gt;
If a server is scheduled to daily delete backup files older than 30 days, then there may be random files that are left behind for longer than 30 days, which are:&lt;br /&gt;
*any xx/xx/31 files on months than are followed by months with only 30 days, since the backup procedure deletes the previous month&#039;s file on the same day and day 31 does not exist in all months and&lt;br /&gt;
*any &amp;quot;same day last month&amp;quot; files that were not deleted by the backup procedure because it did not run or did not complete.&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;crontab -l&amp;quot; to list all scheduled tasks, to find the how old a file must be before it is deleted.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting Scripting Disabled error message on browser ==&lt;br /&gt;
 Error: NEOSYS requires             You have&lt;br /&gt;
       1. Internet Explorer 6+&lt;br /&gt;
         or Safari 3.1+&lt;br /&gt;
         or Firefox 3+&lt;br /&gt;
         or Chrome 8.0+&lt;br /&gt;
       2. Scripting enabled       Scripting disabled&lt;br /&gt;
       3. Cookies enabled         Unknown&lt;br /&gt;
&lt;br /&gt;
[[image:IEtrb1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Follow steps in given link to fix Script disable error on browsers : https://wmich.edu/helpdesk/internetenablecookies&lt;br /&gt;
&lt;br /&gt;
==[[Configuring_IIS#Solving_.22Service_unavailable.22_error_due_to_disabled_application_pool | Handling &#039;Service Unavailable&#039; on browser due to IIS issue]]==&lt;br /&gt;
&lt;br /&gt;
== Searching for users with a particular email address ==&lt;br /&gt;
&lt;br /&gt;
In maintenance mode &lt;br /&gt;
 &lt;br /&gt;
 FIND USERS XX@YY.COM&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Generally&amp;diff=3608</id>
		<title>Troubleshooting NEOSYS Generally</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Generally&amp;diff=3608"/>
		<updated>2019-03-04T13:56:36Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Solving failure to start a NEOSYS server due to disk failure message ==&lt;br /&gt;
=== Problem ===&lt;br /&gt;
During a reboot process (which maybe due to a Windows update or even done by a support personnel) the NEOSYS server gets hung on the startup and shows a message &amp;quot;Boot Failure - Abort, Retry&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
=== Temporary solution ===&lt;br /&gt;
This typically happens due to the USB being plugged into the server and the boot sequence being wrong - i.e. the server trying to boot from the USB first and fails. The immediate solution would be to unplug the USB and ask the client to reboot the server again and upon successfully rebooting the system, plug the USB back again.&lt;br /&gt;
&lt;br /&gt;
=== Permanent solution ===&lt;br /&gt;
The above problem will occur every time the computer is rebooted, so you need to immediately talk to the IT Administrator of the client and ask them to rectify the boot sequence to make it boot first from the CD ROM, then the HDD and last the USB.&lt;br /&gt;
&amp;lt;BR&amp;gt;Allowing &amp;quot;Boot from USB&amp;quot; causes a severe risk of infection by boot sector viruses since the first infected USB device inserted WILL infect the server immediately as anti-virus programs are not active during boot.&lt;br /&gt;
&lt;br /&gt;
== Replicate options used &amp;amp; error using sysmsg Data: ==&lt;br /&gt;
&lt;br /&gt;
Users send screenshots when NEOSYS server process suffers an error, but the error message often blocks the options they used, making it difficult to replicate the problem.&lt;br /&gt;
&lt;br /&gt;
Below method avoids the need to ask the user to send another screenshot without the error message. &lt;br /&gt;
&lt;br /&gt;
Find the form data in the raw text of the emailed error message. &lt;br /&gt;
&lt;br /&gt;
[[image:Rawformdatapng.png]]&lt;br /&gt;
&lt;br /&gt;
Sadly normal email view renders it useless by mangling it, treating ^ as formatting character superscript.&lt;br /&gt;
&lt;br /&gt;
The form raw data will be something like this:&lt;br /&gt;
&lt;br /&gt;
 1^^^1^3^3^^^^^^^^^^^^^^^3^^^^^^^^^18319^18319^^^^^^^^^4^^0^^^^^^^^^^^^^1}2&lt;br /&gt;
&lt;br /&gt;
First prepare a command by inserting the above form data into the following command in place of %FORMDATA%. Do it anywhere you can cut and paste text.&lt;br /&gt;
&lt;br /&gt;
 form_setdefault(&#039;%FORMDATA%&#039;)&lt;br /&gt;
&lt;br /&gt;
or in old versions of NEOSYS&lt;br /&gt;
&lt;br /&gt;
 gro.defaultrevstr=unescape(&#039;%FORMDATA%&#039;.neosysconvert(&#039;`^]}\~&#039;,rm+fm+vm+sm+tm+stm))&lt;br /&gt;
&lt;br /&gt;
Achieving the following command:&lt;br /&gt;
&lt;br /&gt;
 form_setdefault(&#039;1^^^1^3^3^^^^^^^^^^^^^^^3^^^^^^^^^18319^18319^^^^^^^^^4^^0^^^^^^^^^^^^^1}2&#039;)&lt;br /&gt;
&lt;br /&gt;
or in old versions of NEOSYS&lt;br /&gt;
&lt;br /&gt;
 gro.defaultrevstr=unescape(&#039;1^^^1^3^3^^^^^^^^^^^^^^^3^^^^^^^^^18319^18319^^^^^^^^^4^^0^^^^^^^^^^^^^1}2&#039;.neosysconvert(&#039;`^]}\~&#039;,rm+fm+vm+sm+tm+stm))&lt;br /&gt;
&lt;br /&gt;
Once you have constructed the command, do the following:&lt;br /&gt;
&lt;br /&gt;
#As NEOSYS user, get onto the exact same screen as the user was in when they got the message. (Using the screenshot they send)&lt;br /&gt;
#Press Ctrl+Shift+F12 - to get a NEOSYS javascript prompt&lt;br /&gt;
#Paste the command and Press Enter - to execute the command - it must confirm with &amp;quot;setdefaultform( ... ) = ok&amp;quot;&lt;br /&gt;
#Press Enter or click OK - to remove the confirmation&lt;br /&gt;
#Press Esc or click Cancel - to close the javascript prompt&lt;br /&gt;
#Press F8 or click Close - to refresh the form&lt;br /&gt;
#The form should now be filled in correctly including any hidden fields.&lt;br /&gt;
&lt;br /&gt;
==[[Administering_NEOSYS_Server#Clearing_File_Locks| Troubleshooting &amp;quot;Document is being updated&amp;quot; message]]==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting the &amp;quot;Database not available&amp;quot; error message == &lt;br /&gt;
=== Problem explained ===&lt;br /&gt;
This error appears when you try to login to NEOSYS after you enter your username and password and click the Login button.&lt;br /&gt;
&lt;br /&gt;
[[image:database_unavailable.jpg]]&lt;br /&gt;
&lt;br /&gt;
Error message : &lt;br /&gt;
&lt;br /&gt;
 Cannot login because : &lt;br /&gt;
 Error :  The (database code) database is not available right now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the error message appears post login i.e. when users are working on the system then check if processes are free to run user request.&lt;br /&gt;
&lt;br /&gt;
[[image:not_available.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Solution explained ===&lt;br /&gt;
# Determine if the processes are running. If they are running and you still get the same message that means that either the processes have [[Troubleshooting_NEOSYS_Generally#Troubleshooting_Hung_processes|hung]] and need to be [[Troubleshooting_NEOSYS_Generally#How_to_kill_hung_NEOSYS_processes|killed]].&lt;br /&gt;
# If the processes are not visible on the desktop, it is possible that they are running in the background and have hung for some reason. Check the windows task manager to see if any ‘ntvdm’ process is running and [[Troubleshooting_NEOSYS_Generally#If_NEOSYS_processes_are_not_visible_on_the_server_desktop|fix hung processes]].&lt;br /&gt;
# If not hung then the available processes may be busy running long reports and a new process needs to be started. Refer to [[Handling_Nagios_Client_Monitoring_System#Counting_current_active_users| counting current active users]] to get a sense of the processing requirements for an installation.&lt;br /&gt;
# If there are processes available which are not hung or busy running reports, then ensure that the URL is pointing to the correct IP address and not to a wrong one e.g. a backup server.&lt;br /&gt;
# If the process had not hung and no processes running, then the server might have restarted due to a power failure or a windows update and the administrator user had not logged in post the scheduled startup time of 6AM. To determine the cause of this, investigate in the Windows Event Viewer Log file.&lt;br /&gt;
# You can now start up the process by clicking on the respective desktop icons.&lt;br /&gt;
# Also check if the nightly backup took place successfully or not.&lt;br /&gt;
# Look into the logs at the date/time stated for the last transaction processed to investigate why process got hung. See [[Troubleshooting_NEOSYS_Generally#Inspecting_Database_LOGS_Folder| Inspecting logs]] for more information on logs.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting &amp;quot;user not authorised to login from a location&amp;quot; error message ==&lt;br /&gt;
[[image:IPerror.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Error message:&#039;&#039;&#039;&lt;br /&gt;
 xxx is not authorised to login form the location (IP Number. xx.xx.xx.xx)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution Explained:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Check the URL used and follow the steps below to check if it is correct and email the user accordingly.&lt;br /&gt;
#If the Client installation is hosted on NEOSYS server then users can use only https link to access NEOSYS.&lt;br /&gt;
#*Check with the client&#039;s management if this particular IP is their public IP.&lt;br /&gt;
#*Add IP on management confirmation (Refer to [[Procedures#Handling_User_Requests_to_add_an_IP_or_range_of_IPs_to_access_NEOSYS|Handling User Requests to add IP/IPs ]] ) &lt;br /&gt;
#In case of Client hosted server, users should access NEOSYS via LAN using the http link.&lt;br /&gt;
#*There can be exceptional cases where user needs to access NEOSYS outside the office Network e.g a client installation with two companies at different locations and NEOSYS installed at one. In this case Support will have to add the IP number of the second company so that users can access NEOSYS.&amp;lt;br&amp;gt;But before you even suggest to add the IP, get the request from their management saying that the IP number is another office location and needs to be added. (Refer to [[Procedures#Handling_User_Requests_to_add_an_IP_or_range_of_IPs_to_access_NEOSYS|Handling User Requests to add IP/IPs ]] )&lt;br /&gt;
&lt;br /&gt;
== Handling damaged files ==&lt;br /&gt;
&lt;br /&gt;
[[Handling damaged files]]&lt;br /&gt;
&lt;br /&gt;
=== Checking for corrupt database files ===&lt;br /&gt;
Login to NEOSYS Maintenance. This can be done when users are online.&lt;br /&gt;
&lt;br /&gt;
Press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.FILES&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 CHK.FILES filename&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Sizelock while performing chk.files &#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Fixing sizelock errors should not be done while other users are online to the same database.&lt;br /&gt;
&lt;br /&gt;
Sizelock errors are not critical and will be fixed automatically during the nightly backup.&lt;br /&gt;
&lt;br /&gt;
Sizelock errors occur if a program or process that is selecting records from a file is aborted in some abnormal way.&lt;br /&gt;
&lt;br /&gt;
Error message:&lt;br /&gt;
&lt;br /&gt;
 These Files/Tables have a Sizelock Value of 2 or greater. &lt;br /&gt;
 Tag/Select the Files/Tables to be Fixed.&lt;br /&gt;
 Press F9 to fix selected files&lt;br /&gt;
&lt;br /&gt;
Press F9 to proceed with fixing the selected files or press ESC to continue with chk.files without fixing sizelock as it gets automatically fixed during the nightly backup. &lt;br /&gt;
&lt;br /&gt;
Refer to the [http://techwiki.neosys.com/index.php/Backup_and_Restore#Error_Message:_Size_Lock Sizelock errors in backup emails] for more information.&lt;br /&gt;
&lt;br /&gt;
[[file:sizelock.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Determining Database File Name from Operating System File Name ===&lt;br /&gt;
&lt;br /&gt;
To assess the potential damage and possible remedial measures you need to know the database file name. If the message only refers to the operating system file name you need to follow this procedure to determine the database file name.&lt;br /&gt;
&lt;br /&gt;
Once you have the database file name you can use CHK.FILES XXXXXXX to check if corrupt or not and various other procedures to fix the corruption.&lt;br /&gt;
&lt;br /&gt;
Remember that fixing the corrupt data does not solve the overall problem. The *cause* of the corruption must be identified and eliminated otherwise the problem may reoccur and in a more serious form perhaps with unrecoverable loss of data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╒═══════════════════════════════════TCL - 2══════════════════════════════════╕&lt;br /&gt;
│                                                                            │&lt;br /&gt;
│ :list FILES WITH ALL CONTAINING &#039;REV76481&#039;                                 │&lt;br /&gt;
│                                                                            │&lt;br /&gt;
╘════════════════════════════════════════════════════════════════════════════╛&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:DBfilenamefromOSfilename.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Finding out when and by whom a record was deleted ==&lt;br /&gt;
&lt;br /&gt;
In most cases, NEOSYS does not allow users to delete records and instead keeps a record of everything. In some cases however, things are deleted and the only way to get full details about the deletion is to search the logs. This is cumbersome, but there is a quick way to find out when, and by whom, a record was deleted. Prior to NEOSYS software versions dated Mar 2014, and deletions done before the same date, this procedure will only tell you when the record was deleted - but not who deleted it. Knowing exactly when it was deleted will nevertheless help you to search the logs for full details.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode F5&lt;br /&gt;
&lt;br /&gt;
 ED SHADOW DELETED*filename*key&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 ED SHADOW DELETED*BATCHES*L*JOU*2*U&lt;br /&gt;
&lt;br /&gt;
Journals are stored in the BATCHES file. The key of an unposted batch is x*y*999*U where x is the company code, y is the journal type code, 999 is UNPOSTED batch number and U is just U to indicate unposted batches. Note that unposted batches are normally deleted at the time they are posted - ie converted to posted batches.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔══════════════════════════┤DELETED*BATCHES*L*JOU*2*U├═════════════════════════╗&lt;br /&gt;
║16831.60706                                                                   ║&lt;br /&gt;
║BRUCEL                                                                        ║&lt;br /&gt;
║╒═══════════════════════════════════TCL - 6══════════════════════════════════╕║&lt;br /&gt;
║│                                                                            │║&lt;br /&gt;
║│ :EVAL PRINT 16831.60706 &#039;[DATETIME]&#039;                                       │║&lt;br /&gt;
║│                                                                            │║&lt;br /&gt;
║╘════════════════════════════════════════════════════════════════════════════╛║&lt;br /&gt;
║                                                                              ║&lt;br /&gt;
║                                                                              ║&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you see the number (in this case 16831.60706) you can convert it to a time and date by typing something like&lt;br /&gt;
&lt;br /&gt;
 PRINT 16831.60706 &#039;[DATETIME]&#039;&lt;br /&gt;
&lt;br /&gt;
Using this date and time you can search the logs more effectively to find out who did the deletion and in what circumstances.&lt;br /&gt;
&lt;br /&gt;
== Assessing Database Size per File ==&lt;br /&gt;
In NEOSYS maintenance mode&lt;br /&gt;
 &lt;br /&gt;
 LIST FILES BY BY-DSND SIZE VOLUME.NAME SIZE&lt;br /&gt;
 &lt;br /&gt;
This will include all files not just those in the actual dataset in DATA\* folders.&lt;br /&gt;
&lt;br /&gt;
== Fixing slow speed ==&lt;br /&gt;
=== [[Benchmarking NEOSYS]] ===&lt;br /&gt;
=== Investigating slow response in NEOSYS using NEOSYS logs ===&lt;br /&gt;
If users complain about slow speed, but the server CPU performance looks normal, then support MUST investigate NEOSYS logs to find out why NEOSYS was slow at the time when the client complained about slow response.&lt;br /&gt;
&lt;br /&gt;
Search NEOSYS log entries around the time that the user complained about slow response and look for log entries with high response time. Make a note of what requests took long to respond. If multiple users were simultaneously requesting long reports from NEOSYS, then NEOSYS can be expected to respond slowly for other smaller requests that were processed at that time.&lt;br /&gt;
&lt;br /&gt;
Also refer to [http://userwiki.neosys.com/index.php/General_FAQ#Why_is_NEOSYS_taking_a_long_time_to_generate_a_report.3F why is NEOSYS taking a long time to generate a report].&lt;br /&gt;
&lt;br /&gt;
=== Investigating CPU 100% using Windows Task Manager ===&lt;br /&gt;
Email, to support, a screen-shot of task manager APPLICATIONS, PROCESSES and PERFORMANCE screens MAXIMIZED TO SHOW AS MUCH AS POSSIBLE. &lt;br /&gt;
&lt;br /&gt;
(Sort the processes to show ntvdm, waiting.exe and high cpu% processes clearly)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Steps:&#039;&#039;&#039;&lt;br /&gt;
#Right Click on Windows Taskbar and click on Start Task Manager &amp;lt;br&amp;gt; [[image:starttaskmanager.jpg]] &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Processes and then click on CPU &amp;lt;br&amp;gt;&#039;&#039;&#039;Note - The HIGH cpu% processes which should usually be the &amp;quot;process&amp;quot; called &amp;quot;System Idle Process&amp;quot; &#039;&#039;&#039;&amp;lt;br&amp;gt;[[image:cpu100percent1.jpg]] &amp;lt;br&amp;gt; &lt;br /&gt;
#Click on the Performance Tab &amp;lt;br&amp;gt; &#039;&#039;&#039;Note - PF Usage should typically be much less than Physical Memory otherwise there is insufficient real memory in the server to handle the load&#039;&#039;&#039; &amp;lt;br&amp;gt; [[image:cpu100percent3.jpg]] &amp;lt;br&amp;gt; &lt;br /&gt;
#Click on Application Tab then Right Click on a NEOSYS Process and Click on Bring to Front &amp;lt;br&amp;gt;&#039;&#039;&#039;See what the NEOSYS Process is doing &amp;lt;br&amp;gt; [[image:cpu100percent2.jpg]] &amp;lt;br&amp;gt; &lt;br /&gt;
#Right Click on a NEOSYS Process and Click on Go to Processes &amp;lt;br&amp;gt;&#039;&#039;&#039;Note the cpu% ntvdm process &amp;lt;br&amp;gt;[[image:cpu100percent2_2.jpg]]&amp;lt;br&amp;gt;  &lt;br /&gt;
#Normally NEOSYS application screens say &amp;quot;LISTENING&amp;quot; in the bottom line and those applications should have very low cpu%&amp;lt;br&amp;gt;[[image:normalneosysprocess.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
#Look at the difference between the screen of running NEOSYS processes (applications actually) which are idle (listening for requests) and active (processing a request from a user)&lt;br /&gt;
#Note the number of cpus or cpu threads in the server from the performance screen graphics&amp;lt;br&amp;gt;[[image:performance-taskmgr-cputhread.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
#Take screen-shots of any and ALL hung or long running processes (NEOSYS application screens) and email them to support. Even small details on the screens and user names, the user names may give clues to what problem caused the hanging.A Typical Hung NEOSYS process will look like this: &amp;lt;br&amp;gt; [[image:hungneosysprocess.jpg]] &amp;lt;br&amp;gt;&lt;br /&gt;
#Once all hung/long processes are closed then CPU should be low and not near 100%. If it is still 100% then check all high cpu% processes and send a screen-shot of processes sorted to show the high cpu% process names to support.&lt;br /&gt;
&lt;br /&gt;
=== Solving server CPU% is 100 and all users are extremely slow/stopped ===&lt;br /&gt;
&lt;br /&gt;
Get the screenshots of Task Manager and ALL processes on the server, the objective is to assess the true issue. No need to get the screens not in use obviously but you can send a parallel screen shot for them if you want to be pedantic or even a comment will do.&lt;br /&gt;
&lt;br /&gt;
==== Too few CPUs/threads for the number of users ====&lt;br /&gt;
In Windows task manager normally, you should see one ntvdm.exe and one waiting.exe process per NEOSYS process (application). A standard installation has three NEOSYS processes per main database and plus one per test database. This is configured in Support Menu, Configuration File.&lt;br /&gt;
&lt;br /&gt;
If there are MORE ntvdm processes than you expect from the configuration file, then perhaps NEOSYS is auto starting new NEOSYS processes to try and cater for a high number of concurrent users.&lt;br /&gt;
&lt;br /&gt;
If the number of concurrent NEOSYS processes significantly exceeds the number of cpus/hyperthreads available in the server then processing for everybody can become so slow for everybody and almost no work gets done.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
Stop NEOSYS creating new NEOSYS processes automatically. Create a text file with the first and only line as AUTOSTART=NO in the neosys\neosys folder something like this.&lt;br /&gt;
&lt;br /&gt;
notepad d:\neosys\neosys\NET.CFG&lt;br /&gt;
&lt;br /&gt;
AUTOSTART=NO&lt;br /&gt;
&lt;br /&gt;
== How do I troubleshoot email not received? ==&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting email not received]]&lt;br /&gt;
&lt;br /&gt;
== Fixing permissions errors while logging in ==&lt;br /&gt;
 &lt;br /&gt;
=== Problem ===&lt;br /&gt;
 &lt;br /&gt;
While logging in, you get the following error message:&lt;br /&gt;
[[Image:login_error_message.jpg]]&lt;br /&gt;
 &lt;br /&gt;
=== Solution ===&lt;br /&gt;
 &lt;br /&gt;
Add the internet guest account to the security list of the data folder with the default permission of list/read/write&lt;br /&gt;
 &lt;br /&gt;
Make sure the read&amp;amp;execute permission is removed&lt;br /&gt;
[[Image:permissions_on_data.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fixing the &#039;HTTP Error 500.0 - Internal Server Error&#039; while logging in on IE on a Windows Vista system ==&lt;br /&gt;
&lt;br /&gt;
=== Problem ===&lt;br /&gt;
After configuring IIS on Windows Vista you will get this error message while trying to login into NEOSYS from Internet Explorer:&lt;br /&gt;
&lt;br /&gt;
 HTTP Error 500.0 - Internal Server Error&lt;br /&gt;
 Description: This application is running in an application pool that uses the Integrated .NET  &lt;br /&gt;
 mode. This is the preferred mode for running ASP.NET applications on the current and future &lt;br /&gt;
 version of IIS.&lt;br /&gt;
 &lt;br /&gt;
 In this mode, the application using client impersonation configured with &amp;lt;identity &lt;br /&gt;
 impersonate=&amp;quot;true&amp;quot; /&amp;gt; may not behave correctly. Client impersonation is not available in early &lt;br /&gt;
 ASP.NET request processing stages and may lead modules in those stages to execute with process &lt;br /&gt;
 identity instead.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
You can move the application to an application pool that uses the Classic .NET mode by using the following from a command line window (the window must be running as Administrator) &lt;br /&gt;
&lt;br /&gt;
 %systemroot%\system32\inetsrv\APPCMD.EXE set app &amp;quot;Default Web Site/neosys&amp;quot; /applicationPool:&amp;quot;Classic .NET AppPool&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use any other application pool on your system that is running in the Classic .NET mode. You can also use the IIS Administration tool to move this application to another application pool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fixing the &#039;Class Not Registered&#039; error message while logging in ==&lt;br /&gt;
&lt;br /&gt;
=== Problem ===&lt;br /&gt;
While logging into NEOSYS, you will get a popup window giving an error message saying &#039;Class Not Registered - Server Error&#039;. Typically, you will encounter this error with XP Pro IIS 5.1. As usual, there&#039;s way to solve it, however the root cause of this is still unknown.&lt;br /&gt;
&lt;br /&gt;
Anyway, you will get the proper message in the event log:&lt;br /&gt;
&lt;br /&gt;
 Event Type: Warning&lt;br /&gt;
 Event Source: W3SVC&lt;br /&gt;
 Event Category: None&lt;br /&gt;
 Event ID: 36&lt;br /&gt;
 Description: The server failed to load application &#039;/LM/W3SVC/1/ROOT/NEOSYS.&lt;br /&gt;
 The error was &#039;Class not registered&#039;. &lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
So, what do you do ? This problem is related to Component Services, and when you open Component Services MMC, you will most probably  get  Error Code 8004E00F COM + was unable to talk to Microsoft Distributed Transaction Coordinator. So, fix the COM+ services first by using the following KB from Microsoft (PRB: Cannot Expand &amp;quot;My Computer&amp;quot; in Component Services MMC Snap-In http://support.microsoft.com/?id=301919):&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, reinstall Component Services as follows: WARNING: &lt;br /&gt;
# Open registry editor, locate HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3, and then delete this key.  &lt;br /&gt;
# From the Start menu, point to Settings, click Control Panel, and then click Add/Remove Programs.  &lt;br /&gt;
# Click Add/Remove Windows Components. &lt;br /&gt;
# Proceed through the wizard, and accept all of the defaults (including IIS)&lt;br /&gt;
# Restart the computer.&lt;br /&gt;
&lt;br /&gt;
If the above didn&#039;t solve it, and you still receive the &#039;Class not registered&#039; error message, then you need to recreate the IIS packages in COM+, try&lt;br /&gt;
&lt;br /&gt;
# Delete IIS related package in Component Services MMC&lt;br /&gt;
# IIS In-Process Applications &lt;br /&gt;
# IIS Out-of-Process Pooled Applications &lt;br /&gt;
# IIS Utilities&lt;br /&gt;
&lt;br /&gt;
Next, if you still get the message, try following before re-install IIS if you can&#039;t find Distributed Transaction Coordinator in your Services console.&lt;br /&gt;
&lt;br /&gt;
Launch command prompt and run the following command.&lt;br /&gt;
# msdtc -install&lt;br /&gt;
# net start msdtc&lt;br /&gt;
&lt;br /&gt;
Then try re-install IIS.&lt;br /&gt;
&lt;br /&gt;
This should solve the problem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling File Security option on Win XP Professional ==&lt;br /&gt;
&lt;br /&gt;
=== Problem ===&lt;br /&gt;
&lt;br /&gt;
In the Properties of any folders, the Security option does not show, hence you cannot modify the Read, Write options.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
The solution would be to untick the &#039;Simple File Sharing&#039; option from  Tools &amp;gt; Folder Options &amp;gt; View:&lt;br /&gt;
[[Image:simplefilesharingoff.jpg]]&lt;br /&gt;
&lt;br /&gt;
== %00%00%00%00 Errors ==&lt;br /&gt;
&lt;br /&gt;
=== Error Message ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SYSTEM ERROR in line 162. Amount &amp;quot;-2698.00AED&amp;quot; or base &amp;quot;%00%00%00%00&amp;quot; has been wrongly generated   &lt;br /&gt;
GET NEOSYS SUPPORT. DO NOT ATTEMPT TO CORRECT MANUALLY    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Solution ===&lt;br /&gt;
%00%00%00%00 indicates an internal error that NEOSYS programmer has to fix. It is usually random and can be hard to replicate unlike almost all other NEOSYS errors which usually replicate reliably once you find the cause.&lt;br /&gt;
&lt;br /&gt;
== B703 Errors ==&lt;br /&gt;
&lt;br /&gt;
The B703 error is usually always related to something too big for NEOSYS to handle. &lt;br /&gt;
&lt;br /&gt;
These are the only B errors that NEOSYS cant always permanently prevent by fixing the software.&lt;br /&gt;
&lt;br /&gt;
For more information, check [[Troubleshooting_NEOSYS_Media_System#B703_Errors|B703 errors]]&lt;br /&gt;
&lt;br /&gt;
== Internet Explorer Menu, View, Text Size doesnt change font size as expected ==&lt;br /&gt;
&lt;br /&gt;
Cause: This is because the font size is now user definable in NEOSYS and View, Text Size does not override predefined font sizes.&lt;br /&gt;
&lt;br /&gt;
Solution: If you are using Internet Explorer 7 you can scale the screen (including the font size  using ctrl + and ctrl - keyboard shortcuts or the font size button on the bottom right hand side of the window. &lt;br /&gt;
&lt;br /&gt;
You can adjust the font size on the User Details form when you login although this permanently applies to all forms not just the one that you are on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Uploaded jpg files fail to display in internet explorer ==&lt;br /&gt;
&lt;br /&gt;
Some large jpg files &amp;gt; 2Mb cannot be viewed in internet explorer despite being viewable in image preview, ms paint and other viewers/editors. It is not an issue caused by uploading or downloading the files.&lt;br /&gt;
&lt;br /&gt;
These file appear to have been created on Photoshop CS Macintosh and may be a special type of uncompressed jpg used for production quality files.&lt;br /&gt;
&lt;br /&gt;
=== Partial solution ===&lt;br /&gt;
Before uploading the files, open them in some editor like MS Paint (right click, edit) and save them. However this results in a loss of quality. Perhaps there is some program that can convert these files to a format understandable by Internet explorer without any loss of quality.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;This document is currently read only&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Cause ===&lt;br /&gt;
The user attempting to modify this document does not have the authorization key to do so.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
Inform the user that he is not authorised to modify the document and give him the list of users within his company who are authorised to do so.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;You have attempted to write to a read-only file&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Message ===&lt;br /&gt;
&lt;br /&gt;
Error while writing data.&lt;br /&gt;
You have attempted to write to a read-only file.&lt;br /&gt;
- or -&lt;br /&gt;
access to the file has been denied by the operating system.&lt;br /&gt;
(operating system file name: &amp;quot;..\DATA\ADLINEC\ADAGENCY\REV76467.OV00012618&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Cause ===&lt;br /&gt;
&lt;br /&gt;
It is almost certainly due to some third party backup or other maintenance software opening the NEOSYS database files when it shouldn&#039;t e.g. badly configured third party backup scheduled to backup NEOSYS while NEOSYS is still running. Note that the exact filename varies each time.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
This can be a serious error that causes damaged files in NEOSYS especially if the filename ends in .OV. Use the usual methods of checking for damaged files e.g. do a backup which also looks for damaged files BUT DO NOT OVERWRITE THE LATEST BACKUP SINCE IT MAY BE REQUIRED for restoration. Then fix the damaged files using the usual methods e.g. by rebuilding/using&lt;br /&gt;
FIXFILE or restoring databases. For more info check [[Handling damaged files|Handling damaged files]]&lt;br /&gt;
&lt;br /&gt;
=== Prevention ===&lt;br /&gt;
&lt;br /&gt;
Remove the third party backup or other maintenance software or reschedule it to run at a time that NEOSYS is shutdown. Removal of software may require hunting through the windows process list for unexpected programs running.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting Hung processes==&lt;br /&gt;
&lt;br /&gt;
=== Investigating hung NEOSYS processes ===&lt;br /&gt;
&lt;br /&gt;
To find out if a process is hung, check the time on the last line of the process which would be frozen since the time it first hung. This time can be cross-referenced with the current server time and you will notice the difference in time b/w the server and the hung process. You can also find the duration of hung processes in Nagios.&lt;br /&gt;
&lt;br /&gt;
Step 1&lt;br /&gt;
&lt;br /&gt;
Gather all the useful and necessary information about the current state of the system by taking screenshots of the NEOSYS process windows, server time and date, process list in Task Manager etc.&lt;br /&gt;
&lt;br /&gt;
Always remember to take screenshots of the whole screen, since every little detail is useful for investigation. &lt;br /&gt;
&lt;br /&gt;
Send an e-mail to Support with all the investigated details.&lt;br /&gt;
&lt;br /&gt;
Step 2&lt;br /&gt;
&lt;br /&gt;
Request a shutdown of all NEOSYS processes, which would leave only the hung processes open. &lt;br /&gt;
&lt;br /&gt;
Close the hung process/es.&lt;br /&gt;
&lt;br /&gt;
Step 3&lt;br /&gt;
&lt;br /&gt;
Process explorer can be installed from Microsoft Sysinternals and for a deeper inspection of the problem with a view to resolving it, should be used to gain information about what files are open.&lt;br /&gt;
&lt;br /&gt;
If already installed, procexp.exe can be found on the Desktop or from Start Menu-&amp;gt; Programs.&lt;br /&gt;
&lt;br /&gt;
In process explorer, Find -&amp;gt; Handle -&amp;gt; type d:\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Submit the complete list (maybe more than one page) to support for records.&lt;br /&gt;
&lt;br /&gt;
[[Image:invhungprocess.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== [[Troubleshooting_NEOSYS_Generally#Investigating_CPU_100.25_using_Windows_Task_Manager|Investigating CPU 100% using Windows Task Manager]]  ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[Troubleshooting_NEOSYS_Generally#Solving_server_CPU.25_is_100_and_all_users_are_extremely_slow.2Fstopped|Solving server CPU% is 100 and all users are extremely slow/stopped]] ===&lt;br /&gt;
&lt;br /&gt;
=== Error message: &amp;quot;Fatal Error in Rev Restart&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
[[image:fatal.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Error message: “Abort, Retry, Fail” ===&lt;br /&gt;
==== Problem ====&lt;br /&gt;
The following messages may come on older versions of NEOSYS if there is a problem with the USB media inserted for backup.&lt;br /&gt;
&lt;br /&gt;
[[image:usberror.jpg]]&lt;br /&gt;
&lt;br /&gt;
This results in “NEOSYS has not checked in” message on Nagios since it hangs during the monitoring update and locks all other processes from monitoring too.&lt;br /&gt;
&lt;br /&gt;
General failure writing drive F&lt;br /&gt;
Abort, Retry, Fail?&lt;br /&gt;
&lt;br /&gt;
Not read reading drive F&lt;br /&gt;
Abort, Retry, Fail?&lt;br /&gt;
&lt;br /&gt;
Pressing A or F results in the problem happening again in about a minute, perhaps on a different process.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
Temporary solution is to do “Safely remove hardware” from the windows notification area. Using “Eject” from My Computer will not work.&lt;br /&gt;
&lt;br /&gt;
Permanent solution is to replace the defective USB memory stick. Sometime reformatting is sufficient.&lt;br /&gt;
&lt;br /&gt;
Upgrading NEOSYS will probably stop the defective media from causing NEOSYS to hang but the USB will still be useless for backup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error message: &amp;quot;Read error in the operating system file&amp;quot; ===&lt;br /&gt;
==== Problem ====&lt;br /&gt;
Nagios reports a hung process and on the server a process has the following message popup.&lt;br /&gt;
&lt;br /&gt;
 Read error in the operating system file &amp;quot;..\DATA\PT0833\ACCOUNTS\REV20049&lt;br /&gt;
 The file does not exist or the filename is&lt;br /&gt;
 not valid for the operating system.&lt;br /&gt;
&lt;br /&gt;
[[Image:readerrorintheoperatingsystemfile.png]]&lt;br /&gt;
&lt;br /&gt;
==== Cause ====&lt;br /&gt;
Some non-NEOSYS program is directly accessing the NEOSYS database files while NEOSYS processes are running and using the files as well.&lt;br /&gt;
&lt;br /&gt;
*Client IT staff using a backup program to perform backup without ensuring that NEOSYS processes are shutdown.&lt;br /&gt;
*A NEOSYS rsync process taking longer than expected due to new USB.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
Kill the NEOSYS process eg with the X button. It is advisable NOT to let it run further while it cannot properly access one of its files.&lt;br /&gt;
&lt;br /&gt;
==== Prevention ====&lt;br /&gt;
Remove the third party program or arrange for it to operate only while NEOSYS processes are shutdown eg from 3am-6am.&lt;br /&gt;
&lt;br /&gt;
=== Error message: &amp;quot;Not enough string space - Out of Memory&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
==== Message ====&lt;br /&gt;
&lt;br /&gt;
‘RTP27’ Line 1. [B29] Not enough string space – Out of Memory.&lt;br /&gt;
&lt;br /&gt;
Not enough memory to execute Debugger; current program aborted.&lt;br /&gt;
Press any key to continue&lt;br /&gt;
&lt;br /&gt;
[[Image:out_of_memory.jpg]]&lt;br /&gt;
&lt;br /&gt;
==== Cause ====&lt;br /&gt;
Unknown perhaps related to some large document or report&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
Ask users for any hanging transactions.&lt;br /&gt;
None other than closing and starting another process.&lt;br /&gt;
&lt;br /&gt;
Also refer [[Troubleshooting NEOSYS Generally#Enabling EMS memory on Window 2003|Enabling EMS memory on Window 2003]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error message: B521 ===&lt;br /&gt;
&lt;br /&gt;
[[Image:B521.jpg]] &lt;br /&gt;
&lt;br /&gt;
 Another user is currently updating indexes. &lt;br /&gt;
 Waiting to make your updates...&lt;br /&gt;
 If you interrupt this process,&lt;br /&gt;
 you may have to rebuild all the indexes&lt;br /&gt;
&lt;br /&gt;
B521 message is usually temporary and goes away by itself. If it does not then, as the text of the B521 message makes clear, some OTHER process is holding up the system, preventing the process with B521 message from continuing.&lt;br /&gt;
&lt;br /&gt;
B521 message is a symptom of other problem so it does not itself have some one simple solution. You must find which other process or issue is causing the hold up and solve whatever problem is causing the hold up, which could be anything.&lt;br /&gt;
&lt;br /&gt;
=== Error message: &amp;quot; NTVDM encountered a hard error &amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
The following error message appears:&lt;br /&gt;
&lt;br /&gt;
[[Image:ntvdm.jpg]]&lt;br /&gt;
&lt;br /&gt;
 NTVDM encountered a hard error&lt;br /&gt;
&lt;br /&gt;
==== Solution  ====&lt;br /&gt;
 &lt;br /&gt;
This error is caused by missing or corrupt Windows system files (i.e. command.com, autoexec.nt and config.nt). The solution is to run a program called XP FIX which will reinstall these missing files. You can download it form http://www.visualtour.com/downloads/xp_fix.exe&lt;br /&gt;
&lt;br /&gt;
Sometimes even after running the XP FIX program the error still appears. Then you need to copy all the files under C:/windows/repair to C:/windows/system32 and in the autoexec.nt and config.nt put REM before any lines there which don&#039;t have it.&lt;br /&gt;
&lt;br /&gt;
====Possible fix for some NTVDM errors ====&lt;br /&gt;
&lt;br /&gt;
===== Error message ===== &lt;br /&gt;
&lt;br /&gt;
[[Image:Ntvdm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
 NTVDM has encountered a System error.&lt;br /&gt;
 The system cannot find the file specified.&lt;br /&gt;
 Choose close to terminate the application.&lt;br /&gt;
&lt;br /&gt;
=====Possible solution===== &lt;br /&gt;
&lt;br /&gt;
#Change the TEMP and TMP environment variables to C:\WINDOWS\TEMP. This should be for the user that runs NEOSYS processes - normally administrator.&lt;br /&gt;
#Close all NEOSYS processes &lt;br /&gt;
#Logout/Login again&lt;br /&gt;
#Restart NEOSYS processes&lt;br /&gt;
&lt;br /&gt;
[[image:Ntvdmsoln.png]]&lt;br /&gt;
&lt;br /&gt;
===== Check solution done properly ===== &lt;br /&gt;
&lt;br /&gt;
You can check that by typing ECHO %TEMP% and ECHO %TMP% at a console prompt after logging out and in again. &lt;br /&gt;
&lt;br /&gt;
Note that windows will actually set the windows environment variables to something like C:\WINDOWS\TEMP\2 for some unknown reason. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
d:\hosts&amp;gt;ECHO %temp% &lt;br /&gt;
C:\WINDOWS\TEMP\2 &lt;br /&gt;
&lt;br /&gt;
d:\hosts&amp;gt;ECHO %tmp% &lt;br /&gt;
C:\WINDOWS\TEMP\2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Error message: [[Troubleshooting_NEOSYS_Generally#Troubleshooting_the_.22Database_not_available.22_error_message|&amp;quot;Database not available&amp;quot; post login]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error message: [[Backup_and_Restore#Error_Message:_.22Cannot_backup.2Frestore_because_PROCESS1_PROCESS2_.28etc.29_is.2Fare_online.22_message|&amp;quot;Cannot backup/restore because PROCESS1 PROCESS2 (etc) is/are online&amp;quot;]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to kill hung NEOSYS processes ===&lt;br /&gt;
 &lt;br /&gt;
NOTE WELL: If you kill actively working NEOSYS processes (those which are &amp;quot;listening&amp;quot; and not hung/crashed) there is a reasonable chance that the database will be damaged and might need a restore losing possibly large amounts of work.&lt;br /&gt;
 &lt;br /&gt;
==== If NEOSYS processes are visible on the server desktop ====&lt;br /&gt;
 &lt;br /&gt;
Look for processes which don&#039;t have &amp;quot;Listening ...&amp;quot; on the last but one line. The times on the left hand side are frozen as at the time of the hang.&lt;br /&gt;
 &lt;br /&gt;
You can then click the X to kill the process and confirm that this is OK.&lt;br /&gt;
 &lt;br /&gt;
Example of a NEOSYS process that has hung due to a software error resulting in a failure to handle a complex query with a lot of brand codes.&lt;br /&gt;
&lt;br /&gt;
[[Image:hungprocess.jpg]]&lt;br /&gt;
 &lt;br /&gt;
==== If NEOSYS processes are not visible on the server desktop ====&lt;br /&gt;
&lt;br /&gt;
NEOSYS processes are most of the time visible on the desktop (i.e. the black dos windows) in Windows 2003 OS, except in the case that the process has been scheduled to start on computer restart and no one has logged into the server. In this case it would be running in the background. TODO&lt;br /&gt;
&lt;br /&gt;
You can check if there are any hung processes from the NEOSYS Support Menu, List of Database Processes. &lt;br /&gt;
[[Image:databaseprocesseslist.jpg]]&lt;br /&gt;
&lt;br /&gt;
In this case you should follow the below instructions - however all of them need to be done within 30 seconds of starting the first instruction to avoid inconvenience to the users. It is recommend that you keep relevant windows open before proceeding with the same:&lt;br /&gt;
&lt;br /&gt;
#Shutdown NEOSYS by TEMPORARILY putting a file called GLOBAL.END in the parent directory of NEOSYS (if there is already a GLOBAL.END.TEMP file then rename it to GLOBAL.END). Leaving the file there would prevent NEOSYS from starting up again. Shutting down NEOSYS from the Support menu will not work because of the hung processes.&lt;br /&gt;
#Use Windows Task Manager to kill all the NTVDM processes - assuming that you have closed all the visible NEOSYS processes, then the NTVDM processes in the task manager would be the hung one.&lt;br /&gt;
#Delete GLOBAL.END or rename it to GLOBAL.END.TEMP&lt;br /&gt;
#Restart the processes back again. If there are many datasets then you need to restart them all well within the 30 seconds period. Restarting a process will not be noticed by users, if started immediately.&lt;br /&gt;
#*Create a [[Configuring_STARTALL.cmd_command_to_auto_start_all_processess | STARTALL.cmd]] file for future cases, where you may need to quickly start many processes for clients with multiple datasets.&lt;br /&gt;
&lt;br /&gt;
In case of Patsalides, where we have a thousand datasets which start &amp;quot;on demand&amp;quot; i.e. usually on login; all you need to do is start one dataset which will restart all the other datasets &amp;quot;on demand&amp;quot;. If there is no response within 30 seconds then one of the running datasets will start it up so there appears to be a 30 second delay when you login to one of the thousand datasets the first time on any one day.&lt;br /&gt;
&lt;br /&gt;
=== Temporary workarounds for hung NEOSYS processes ===&lt;br /&gt;
Until the error in the software is fixed users can often get their results by simplifying their requirements. For example select individual clients instead of selecting all the brands for a particular client. If the user has repeated his request (in forlorn hope that it would work finally) then the number of working NEOSYS processes will drop causing severe slowdown for other users and complete stop if all the NEOSYS processes hang.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot; You do not have sufficient privilege to access this file &amp;quot;  ==&lt;br /&gt;
&lt;br /&gt;
This error message may come up while NEOSYS processes start up at the same time.&lt;br /&gt;
&lt;br /&gt;
Error message on:  &lt;br /&gt;
16 bit MS-DOS Subsystem&lt;br /&gt;
D:\hosts\Client_nam\NEOSYS\AREV.EXE&lt;br /&gt;
C:\Windows\SYSTEM32\CONFIG.NT. Error Code 0x20. You do not have sufficient privilige to access this file. See your system administrator. Choose &#039;Close&#039; to terminate the application.&lt;br /&gt;
&lt;br /&gt;
Close the error message window and look for NEOSYS processes for that client. In case there is no process, start the NEOSYS process.&lt;br /&gt;
&lt;br /&gt;
[[image:Errormsg.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Fixing wrong default program assigned to open a file type ==&lt;br /&gt;
&lt;br /&gt;
The NEOSYS process (cmd file) might open up in a notepad, instead of the usual black colour DOS window. This may happen if a JavaScript file is opened using notepad. Support MUST be very CAREFUL when accessing  .JS and .JSE files and double check that the default program remains wscript.exe and not changed to notepad/wordpad. The issue can be fixed by the following:&lt;br /&gt;
&lt;br /&gt;
#Check if Windows Script 5.6/5.7 is installed, IF NOT download and install it from the Microsoft Website.&lt;br /&gt;
#Go to Control Panel -&amp;gt; Default Programs -&amp;gt; Associate a file type or protocol with a program and then change the default program for .JS and .JSE to &amp;quot;Microsoft Windows Based Script Host&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For file types that must not have any default program to open them (e.g. .vol file type):&lt;br /&gt;
#Right click the concerned file (e.g. ADAGENCY.vol) &amp;gt; Open with &amp;gt; Choose another app &amp;gt; More apps&lt;br /&gt;
#Select &amp;quot;Always use this app to open XXXX files&amp;quot;&lt;br /&gt;
#Click &amp;quot;Look for another app on this PC&amp;quot;&lt;br /&gt;
#Locate and select the concerned file (ADAGENCY.vol in this example). An error should appear &amp;quot;This app can&#039;t be run on your PC&amp;quot;. Click OK.&lt;br /&gt;
&lt;br /&gt;
== Fixing a &#039;Could not start&#039; error on Scheduled Tasks in Windows Server 2000 SP4 ==&lt;br /&gt;
&lt;br /&gt;
This error occurs because of a change that is made to the data that is stored in the credentials database when you install Windows 2000 SP4. Hence installing SP4 causes the the data that is stored in the credentials database to get converted to an SP4-compatible format. A registry key is configured to indicate that the data has been converted to the SP4 format.&lt;br /&gt;
&lt;br /&gt;
Hence the Scheduled Tasks do not work sometimes. However the Scheduled Tasks works fine sometimes, but when you uninstall SP4, it does not work.&lt;br /&gt;
&lt;br /&gt;
The best solution is to:&lt;br /&gt;
&lt;br /&gt;
# Incase Scheduled Tasks do not work after installing SP4, then uninstall SP4 and it should be fine.&lt;br /&gt;
# Incase Scheduled Tasks works after installing SP4, and later after uninstalling SP4, it does not work, then install SP4 and it should be fine.&lt;br /&gt;
&lt;br /&gt;
== Checking for server or NEOSYS crashes ==&lt;br /&gt;
 &lt;br /&gt;
#NEOSYS Maintenance Mode&lt;br /&gt;
#General Menu, Setup, Processes&lt;br /&gt;
#Select the dates and the option Detailed&lt;br /&gt;
 &lt;br /&gt;
This report shows a list of dates and times that NEOSYS logged in but did not log out properly.&lt;br /&gt;
 &lt;br /&gt;
Ignore the very latest entries since they represent the current NEOSYS processes. For example, if you have four NEOSYS processes running at the time that you get the report (including any in maintenance mode) then you can ignore the last four entries.&lt;br /&gt;
 &lt;br /&gt;
The date and time shows for each process that has failed to shutdown correctly when the process logged in. Versions of NEOSYS from January 2008 will also show the date and time that each crashed NEOSYS process was last active (heartbeat) so that the time of failure can be known.&lt;br /&gt;
 &lt;br /&gt;
If you see a bunch of NEOSYS processes all started up at around the same time but all failed to shutdown correctly then the cause will be a server failure - usually power failure.&lt;br /&gt;
 &lt;br /&gt;
Isolated one-off failures will be related to individual NEOSYS process crashes - most commonly caused by one of the following:&lt;br /&gt;
 &lt;br /&gt;
#NEOSYS hanging to due to software failure&lt;br /&gt;
#Manually exiting a NEOSYS process on the server either by pressing Ctrl+Alt+Del or clicking the &amp;quot;X&amp;quot; close icon/box and ignoring the warning&lt;br /&gt;
#Random server failures eg memory, disk etc&lt;br /&gt;
 &lt;br /&gt;
Example:&lt;br /&gt;
 &lt;br /&gt;
 LOGIN 22/12/2007 06:02 NEOSYS SERVER ADAGENCY         Current workstation &lt;br /&gt;
 LOGIN 23/12/2007 06:00 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 06:01 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 06:02 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 08:52 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 08:52 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 23/12/2007 08:53 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 8/1/2008 06:00 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 8/1/2008 06:01 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 8/1/2008 06:02 NEOSYS SERVER ADAGENCY         Current workstation  &lt;br /&gt;
 LOGIN 8/1/2008 13:51 NEOSYS SERVER NEOSYS         Current user session  &lt;br /&gt;
&lt;br /&gt;
Interpretation:&lt;br /&gt;
 &lt;br /&gt;
The first four entries indicate that all four NEOSYS processes started at 06am were suddenly killed probably by power failure&lt;br /&gt;
 &lt;br /&gt;
The next four entries indicate that NEOSYS was restarted at around 08:52 and all these processes were AGAIN killed probably by power failure&lt;br /&gt;
 &lt;br /&gt;
The last four entries can be ignored because there were four NEOSYS processes running at the time that the report was generated&lt;br /&gt;
&lt;br /&gt;
== Searching for word/number in the database files using maintenance mode ==&lt;br /&gt;
&lt;br /&gt;
You can search for any word/number in the database files of NEOSYS, using the following command line:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 FIND FILENAME WORDWITHOUTANYSPACES&lt;br /&gt;
 &lt;br /&gt;
 For eg:&lt;br /&gt;
 FIND CURRENCIES 1.1&lt;br /&gt;
 (here you are searching for the number 1.1 in the currencies file) You CANNOT search for a phrase ie include spaces like this.&lt;br /&gt;
 &lt;br /&gt;
 Or you can also type:&lt;br /&gt;
 FIND FILENAME &amp;lt;enter&amp;gt;&lt;br /&gt;
 and it will ask you what you want do to search. You can enter an exact phrase with spaces.&lt;br /&gt;
&lt;br /&gt;
Incase you do not know the filenames, you can enter the following command to see all the filenames in the system:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 LF&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting a Service Unavailable message on Internet Explorer when opening up NEOSYS ==&lt;br /&gt;
&lt;br /&gt;
=== Error Message ===&lt;br /&gt;
&lt;br /&gt;
The following error message appears in Internet Explorer when you try to open up NEOSYS:&lt;br /&gt;
&lt;br /&gt;
 Service Unavailable&lt;br /&gt;
&lt;br /&gt;
=== Solution  ===&lt;br /&gt;
 &lt;br /&gt;
Open the IIS Manager, right click Web Sites and select properties:&lt;br /&gt;
[[Image:serviceunavailable1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Switch to the Service Tab and tick the &amp;quot;Run WWW Service in IIS 5.0 Isolation Mode&amp;quot;.&lt;br /&gt;
[[Image:serviceunavailable2.jpg]]&lt;br /&gt;
&lt;br /&gt;
You will be asked for Restart of IIS. Click yes to restart IIS. If you are not asked just restart IIS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inspecting IIS log files ==&lt;br /&gt;
&lt;br /&gt;
At a windows command prompt:&lt;br /&gt;
&lt;br /&gt;
 c:&lt;br /&gt;
 cd \Windows\system32\LogFiles\W3SVC1&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 %SystemDrive%&lt;br /&gt;
 cd %SystemRoot%&lt;br /&gt;
 cd system32\LogFiles\W3SVC1&lt;br /&gt;
&lt;br /&gt;
then (substituting the ip number you are interested in)&lt;br /&gt;
&lt;br /&gt;
 find &amp;quot;192.168.1.55&amp;quot; *|sort&amp;gt;temp.log&lt;br /&gt;
&lt;br /&gt;
Open temp.log in Excel and use Tools, Data, Text to Columns to split into columns using options &amp;quot;Delimited&amp;quot; and check split on Space.&lt;br /&gt;
&lt;br /&gt;
Autowidth all columns by clicking on the top left box just outside the data to the left of column A and above column 1 then double click the column separator to the right of column &amp;quot;A&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note that times and dates are in UTC/GMT so you have to add/subtract your timezone offset to get local times.&lt;br /&gt;
&lt;br /&gt;
==Inspecting Database LOGS Folder==&lt;br /&gt;
NEOSYS log files e.g. 15123103.xml are created by the database processes and contain user requests to the NEOSYS database. Each XML file represents commands executed by each NEOSYS process.&lt;br /&gt;
&lt;br /&gt;
If the database is not available according to the website then no entry will appear in that log. (The request will appear in the IIS website log but that log is nothing to do with database processes)&lt;br /&gt;
&lt;br /&gt;
It is often quicker and easier to do a preliminary search for database requests using the Request Log in NEOSYS UI, although more specific details such as Session No, Host IP, Filename and DataOut/In are only available in the XML logs.&lt;br /&gt;
&lt;br /&gt;
Find log files in neosys/LOGS. The file naming format is yymmdd(log created by process No.) E.g 18060402 = 4th of July 2018 process02.&lt;br /&gt;
&lt;br /&gt;
Use simple text editor to view the log files. &lt;br /&gt;
&lt;br /&gt;
Details found in XML log files:&amp;lt;br&amp;gt;&lt;br /&gt;
Message: Date, Time, User, Filename, WorkstationIP, HostIP, HTTP and Session. &amp;lt;br&amp;gt;&lt;br /&gt;
Request: Req1, Req2, Req..&amp;lt;br&amp;gt;&lt;br /&gt;
Response: ProcessingSecs&amp;lt;br&amp;gt;&lt;br /&gt;
DataOut/DataIn:&lt;br /&gt;
&lt;br /&gt;
=== Understanding Log Entries ===&lt;br /&gt;
Inspecting and searching through Logs file allows NEOSYS staff to answer clients queries like &amp;quot;Who deleted schedule XXXX&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
To read and understand the log file with more ease, copy the portion of the log file required to be analysed into another text editor.&lt;br /&gt;
&lt;br /&gt;
While going through the log file you may come across a request &amp;quot;EXECUTE GENERAL GETTASKS NOT&amp;quot;, this request is concerned with getting a list of tasks that the user is *not* allowed to do.&lt;br /&gt;
&lt;br /&gt;
To read and understand the log file with more ease, copy the portion of the log file required to be analysed into another text editor.&lt;br /&gt;
&lt;br /&gt;
The text that appears as %FE, %FC, %FD, etc. are basically separators. Replace %FE, %FD, %FC, etc. with a separator like &amp;quot;--&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Once replacing all these characters is done, the log file will be more easily readable and vital information will be clearer. &lt;br /&gt;
&lt;br /&gt;
In the log file, you may find numbers like 17290, 17195, etc. These numbers denote dates selected or entered by the NEOSYS user. These are basically the number of days from 31st December 1967 till the date chosen by the user. For example, to convert 17290 to actual date, 31/12/1967 + 17290 = 3/5/2015. So the actual date is 3rd May 2015.&lt;br /&gt;
&lt;br /&gt;
To convert these numbers to dates using maintenance mode, refer to the article [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Finding_out_when_and_by_whom_a_record_was_deleted Finding out when and by whom a record was deleted]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:NEOSYS Logs.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Fixing NEOSYS processes that do not auto start / Recovering from incorrect advanced date or time ==&lt;br /&gt;
This solution is applicable to live database processes only. Test database processes don’t auto-start any other processes.&lt;br /&gt;
&lt;br /&gt;
=== Problem explained ===&lt;br /&gt;
After starting up the 1st process, the rest of the processes don&#039;t start up.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
&lt;br /&gt;
The possible cause for this could be that the system date/time might have been changed - either manually or by the auto synchronization. Do the following checks in the sequence of order:&lt;br /&gt;
&lt;br /&gt;
# Check for any *.$* files (* after dollar sign should show a number, the highest being the latest one). If it shows OK, then proceed ahead.&lt;br /&gt;
# Check for any .end files and delete it to rename to .end.temp&lt;br /&gt;
# Check the System Event Viewer log for any 520 or 577 error message (refer http://128.175.24.251/forensics/timechange.htm). Also check for any out of sequence / ahead of today date or time.&lt;br /&gt;
# In case of no 520 or 577 error message, go to Administrative Tools &amp;gt; Local Security Policy &amp;gt; Local Policies &amp;gt; Audit Policy &amp;gt; Audit Privilege use - make sure that Success and Failure are selected under this (this will ensure that future changes to the date/time are recorded in the System Log).&lt;br /&gt;
# In NEOSYS maintenance mode - F5 ED PROCESSES %UPDATE% - and see what it says, incase of any text (only text, not numbers) there, that means that for sure the system date has been changed. To fix this, exit the editor by pressing the ESCAPE key and then type DELETE PROCESSES &amp;quot;%UPDATE%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Fixing starting issues with NEOSYS processes or Maintenance Mode==&lt;br /&gt;
&lt;br /&gt;
=== Fixing &amp;quot;UNABLE TO OPEN BOOT MEDIA MAP&amp;quot; error ===&lt;br /&gt;
&lt;br /&gt;
Opening NEOSYS process or maintenance mode just opens and closes the window instantly.&lt;br /&gt;
&lt;br /&gt;
Running ADAGENCY.BAT from a windows CMD shows an error message&lt;br /&gt;
&lt;br /&gt;
 Unable to open boot media map.&lt;br /&gt;
&lt;br /&gt;
Cause:&lt;br /&gt;
&lt;br /&gt;
AREV.EXE is unable to access the  REVMEDIA.LK file.&lt;br /&gt;
&lt;br /&gt;
Possibly due to windows permissions problems. For example after using CYGWIN RSYNC without the --no-perms option.&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
&lt;br /&gt;
If cygwin rsync has screwed up the permissions you can reset the permissions for all files on the D: disk&lt;br /&gt;
&lt;br /&gt;
D: disk properties, security tab, Advanced button&lt;br /&gt;
#Owner: change to administrator&lt;br /&gt;
#Check &amp;quot;Replace owner on subcontainers and objects&amp;quot;&lt;br /&gt;
#Check &amp;quot;Replace all child object permission entries with ... &amp;quot;&lt;br /&gt;
#Apply and confirm all questions&lt;br /&gt;
#Repeat and change BACK to Owner: SYSTEM&lt;br /&gt;
[[Image:Unableopenbootmediamap.png]]&lt;br /&gt;
&lt;br /&gt;
===Fixing issue where NEOSYS processes do not start-up at all or start-up and close immediately===&lt;br /&gt;
&lt;br /&gt;
Fixing issue where NEOSYS processes do not start-up at all or start-up and close immediately.&lt;br /&gt;
&lt;br /&gt;
# Check if a file with the name global.end exists in the root directory of the NEOSYS installation. Eg D:\global.end . If you find such a file, rename it to global.end.temp - for more information on global.end and what it does, refer to [[Administering_NEOSYS_Server#Closing_NEOSYS_Services|Closing NEOSYS Services]]&lt;br /&gt;
# If the above didn&#039;t fix the problem and NEOSYS still does not start, do a windows search for the entire NEOSYS folder for *.end (i.e. any file ending with .end extension). You may find a (databasecode).end file in D:\neosys\neosys folder which is created by the NEOSYS program during backup at 1 am and later on removed automatically. In this case NEOSYS program might have crashed during the backup and left this file behind. (databasecode).end files prevent other other NEOSYS processes starting up on the database while exclusive processes (like backup) are being done.&lt;br /&gt;
&lt;br /&gt;
Or try: Delete the read-only file REVBOOT file (under d:/neosys/neosys folder). REVBOOT file is recreated when you start maintenance mode.&lt;br /&gt;
&lt;br /&gt;
In case the above didn&#039;t fix the problem then escalate to the programmer immediately.&lt;br /&gt;
&lt;br /&gt;
== Recognising and Solving Low Memory Problems ==&lt;br /&gt;
&lt;br /&gt;
Quick Note: Installing a server class operating system on a workstation class computer with the intention of NEOSYS serving a heavy load is likely to cause problems with low memory.&lt;br /&gt;
&lt;br /&gt;
Quick Fix: Disable *ALL* non-essential features in the power-on setup menu.&lt;br /&gt;
&lt;br /&gt;
=== Effects ===&lt;br /&gt;
&lt;br /&gt;
It is speculated but not proven that low memory may cause NEOSYS to fail by hanging, causing damaged files etc.&lt;br /&gt;
&lt;br /&gt;
=== Checking ===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 MEMORY&lt;br /&gt;
&lt;br /&gt;
On server class machines it should say somewhere around 350Kb to 370Kb Free&lt;br /&gt;
&lt;br /&gt;
Some server class machines have around 330Kb and sometimes even less with no reported problems&lt;br /&gt;
&lt;br /&gt;
The actual effect of low memory is supposed to make NEOSYS slower and perhaps cause hanging and damaged files however this has not been proven in an specific case so far.&lt;br /&gt;
&lt;br /&gt;
On workstation class machines it may often say around 280Kb to 300Kb.&lt;br /&gt;
&lt;br /&gt;
=== Cause ===&lt;br /&gt;
&lt;br /&gt;
Although there is plenty of real memory in virtually all computers now, NEOSYS runs in the legacy 16 bit virtual memory space of a windows mode called NTVDM. This is limited to 1Mb plus 4Mb of EMS memory.&lt;br /&gt;
&lt;br /&gt;
The 1Mb memory space is shared with:&lt;br /&gt;
&lt;br /&gt;
#Various non-essential windows drivers which NEOSYS automatically disables them in autoexec.nt&lt;br /&gt;
#Various plug and play hardware device drivers for the various adapters in the computer like video, network adapters and various other items that NEOSYS is unable to disable.&lt;br /&gt;
&lt;br /&gt;
In a server class computer the hardware device drivers are usually minimally present in the 1Mb base memory and do not therefore DOESNT a low memory situation for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
In workstation class computers there are often many hardware device drivers present in the 1Mb base memory and this DOES causes a low memory situation for NEOSYS.&lt;br /&gt;
&lt;br /&gt;
When NEOSYS is installed on workstation class computers with XP there is usually not a heavy load expectation and therefore the low memory does not cause a problem.&lt;br /&gt;
&lt;br /&gt;
If Windows Server OS is installed on a workstation class computer NEOSYS may well be expected to serve a heavy load with limited amounts of memory.&lt;br /&gt;
&lt;br /&gt;
Workstation class computers: hardware drivers present and EMS is installed in low memory (0000-9FFF) causing low memory for NEOSYS and possible inability to &lt;br /&gt;
&lt;br /&gt;
Server class computers: Usually few hardware drivers are present in high part (A000-FFFF) of the 1Mb base memory and EMS is able to occupy the high memory leaving the low part (0000-9FFFF) of the 1Mb memory free for NEOSYS. You can find out how much memory is available to NEOSYS and whether EMS is occuping high or low memory using the following sections.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Low Memory ===&lt;br /&gt;
&lt;br /&gt;
Start, Run, notepad c:\windows\system32\autoexec.nt&lt;br /&gt;
&lt;br /&gt;
Every time NEOSYS starts it tries to make some changes as follow:&lt;br /&gt;
&lt;br /&gt;
#replaces all lines in C:/WINDOWS/SYSTEM32/AUTOEXEC.NT starting with &#039;lh &#039; to start with &#039;rem NEOSYS LH &#039; instead.&lt;br /&gt;
#changes the line in C:/WINDOWS/SYSTEM32/CONFIG.NT &amp;quot;files=...&amp;quot; to &amp;quot;FILES=200&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The replacement is case sensitive triggered on &#039;lh&#039; and &#039;files&#039; so if you manually edit the files and remove the rem or change the number of files and leave the LH and FILES in uppercase then NEOSYS will NOT make further changes. This allows you to do manual amendments to the files without NEOSYS overwriting them.&lt;br /&gt;
&lt;br /&gt;
Check that NEOSYS has successfully disabled all the drivers in the lines starting with LH.&lt;br /&gt;
&lt;br /&gt;
They should be commented out (prefixed) with REM or REM NEOSYS as follows.&lt;br /&gt;
&lt;br /&gt;
After making changes reopen NEOSYS in maintenance mode to use the MEMORY and WHO commands again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM Install CD ROM extensions&lt;br /&gt;
REM NEOSYS LH %SystemRoot%\system32\mscdexnt.exe&lt;br /&gt;
&lt;br /&gt;
REM Install network redirector (load before dosx.exe)&lt;br /&gt;
REM NEOSYS LH %SystemRoot%\system32\redir&lt;br /&gt;
&lt;br /&gt;
REM Install DPMI support&lt;br /&gt;
REM NEOSYS LH %SYSTEMROOT%\SYSTEM32\DOSX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Low Memory Issues in Windows 2003 server can be fixed using instructions mentioned at [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Enabling_EMS_memory_on_Window_2003 Fixing Low Memory in Windows 2003 Server]&lt;br /&gt;
&lt;br /&gt;
=== Allowing DOS programs that require DOSX to run on the same computer as NEOSYS ===&lt;br /&gt;
&lt;br /&gt;
The automatic commenting out DOSX by NEOSYS will prevent some other DOS-like programs from running. If NEOSYS is on dedicated server then there should be no other such programs to fail. However, if you must allow DOS-like programs to work as well as NEOSYS you can do the following configuration:&lt;br /&gt;
&lt;br /&gt;
#leave or restore the original AUTOEXEC.NT and CONFIG.NT files where they are&lt;br /&gt;
#copy them to another folder eg neosys folder&lt;br /&gt;
#make the necessary REM changes there by hand&lt;br /&gt;
#right click the NEOSYS\NEOSYS\AREV.PIF and select properties&lt;br /&gt;
#change the location of the AUTOEXEC.NT and CONFIG.NT files in the following location&lt;br /&gt;
&lt;br /&gt;
[[image:pifsettings.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Checking EMS Memory Configuration ===&lt;br /&gt;
&lt;br /&gt;
==== Inspection ====&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 WHO&lt;br /&gt;
&lt;br /&gt;
 press the up arrow to get to the last part/page&lt;br /&gt;
&lt;br /&gt;
===== Example of Typical Server EMS Memory =====&lt;br /&gt;
[[image:serveremm.jpg]]&lt;br /&gt;
&lt;br /&gt;
===== Example of Typical Workstation EMS Memory =====&lt;br /&gt;
[[image:workstationemm.jpg]]&lt;br /&gt;
&lt;br /&gt;
====Correction====&lt;br /&gt;
&lt;br /&gt;
No easy way&lt;br /&gt;
&lt;br /&gt;
Removal of hardware adapters designed for workstations instead of servers eg graphics cards and network cards.&lt;br /&gt;
&lt;br /&gt;
Many of the devices may be located on the motherboard and not relocatable except possibly by BIOS configuration or special manufacturer information.&lt;br /&gt;
&lt;br /&gt;
Use windows device manager, View: Resources by Connection, Open the Memory item and look for items between 000A0000 up to 000FFFFF that might give you a clue as to what hardware could be removed or reconfigured. Actually only 000C0000 to 000FFFFF is candidate for EMS memory since 000A000-000BFFFF is mandatory video memory in all systems.&lt;br /&gt;
&lt;br /&gt;
[[image:devicemanager.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Fixing issue where NEOSYS processes do not start-up at all or start-up and close immediately ==&lt;br /&gt;
&lt;br /&gt;
# Find if a file with the name global.end exists in the root directory of the NEOSYS installation. Eg D:\global.end . If you find such a file, rename it to global.end.temp - for more information on global.end and what it does refer to [[Administering_NEOSYS_Server#Closing_NEOSYS_Services|Closing NEOSYS Services]]&lt;br /&gt;
# If the above didn&#039;t fix the problem and NEOSYS still does not start, do a windows search for the entire NEOSYS folder for *.end (i.e. any file ending with .end extension). You may find a (databasecode).end file in D:\neosys\neosys folder which is created by the NEOSYS program during backup at 1 am and later on removed automatically. In this case NEOSYS program might have crashed during the backup and left this file behind. (databasecode).end files prevent other other NEOSYS processes starting up on the database while exclusive processes (like backup) are being done.&lt;br /&gt;
&lt;br /&gt;
In case the above didn&#039;t fix the problem then escalate to the programmer immediately.&lt;br /&gt;
&lt;br /&gt;
=== Solving &amp;quot;Control Record&amp;quot; error in maintenance mode ===&lt;br /&gt;
&lt;br /&gt;
If processes dont start after you log into maintenance mode and you get an error message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔════[FS152]═══════════════════════════════════════╗&lt;br /&gt;
║          The control record &amp;quot;RECORDS&amp;quot;            ║&lt;br /&gt;
║           is too long to be saved.               ║&lt;br /&gt;
║   The current record length is 65539 characters. ║&lt;br /&gt;
║                                                  ║&lt;br /&gt;
║               &amp;lt; Press any key &amp;gt;                  ║&lt;br /&gt;
╚══════════════════════════════════════════════════╝  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[File:Record1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1&#039;&#039;&#039;. Press space to get rid of the error message and you should then get this menu&lt;br /&gt;
&lt;br /&gt;
[[File:Record2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2&#039;&#039;&#039;. Press F5 and run this command (case sensitive)&lt;br /&gt;
&lt;br /&gt;
 DICT DEFINITIONS&lt;br /&gt;
&lt;br /&gt;
or Press Alt+S and run this command (case sensitive)&lt;br /&gt;
&lt;br /&gt;
 EXECUTE DICT DEFINITIONS&lt;br /&gt;
&lt;br /&gt;
[[File:Record3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3&#039;&#039;&#039;. Press Shift+F3 to get the following message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔══[B202]══════════════════════════════════╗&lt;br /&gt;
║            &amp;quot;DEFINITIONS&amp;quot; has             ║&lt;br /&gt;
║          &amp;quot;QUICKDEX&amp;quot; installed            ║&lt;br /&gt;
║                                          ║&lt;br /&gt;
║ Do you want to remove &amp;quot;QUICKDEX&amp;quot;? [Y/N]  ║&lt;br /&gt;
║                                          ║&lt;br /&gt;
║ &amp;lt;Y                                      &amp;gt;║&lt;br /&gt;
╚══════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Do you want to remove &amp;quot;QUICKDEX&amp;quot;? [Y/N]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4&#039;&#039;&#039;. Press Enter to choose Yes.&lt;br /&gt;
&lt;br /&gt;
[[File:Record4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039;Restart NEOSYS to see if the problem has been solved&lt;br /&gt;
&lt;br /&gt;
== Solving “page not found” or &amp;quot;HTTP Error 404.3 - Not Found&amp;quot; when downloading some file types after uploading them successfully ==&lt;br /&gt;
&lt;br /&gt;
A user gets this error message when trying to download a file that has been uploaded into NEOSYS.&lt;br /&gt;
&lt;br /&gt;
Windows web server will not download file types that it is unaware of. You can enable the download of new file types.&lt;br /&gt;
&lt;br /&gt;
===Adding Mime Types in Windows Sever 2003=== &lt;br /&gt;
&lt;br /&gt;
==== One by One ====&lt;br /&gt;
&lt;br /&gt;
Follow below steps to enable the download of new file types one by one.&lt;br /&gt;
&lt;br /&gt;
This process is tedious and error-prone if you have to add many types.&lt;br /&gt;
&lt;br /&gt;
#Computer Management&lt;br /&gt;
#Services and Applications&lt;br /&gt;
#IIS properties&lt;br /&gt;
#Mime Types&lt;br /&gt;
#Add&lt;br /&gt;
&lt;br /&gt;
The added Mime type will not take effect unless IIS is restarted. This should be done only when users are offline because restarting IIS kills login sessions and therefore forces users to login again.&lt;br /&gt;
&lt;br /&gt;
Open command prompt and enter the following command&lt;br /&gt;
 iisreset&lt;br /&gt;
&lt;br /&gt;
==== Many ====&lt;br /&gt;
&lt;br /&gt;
Window Server 2003 is unaware of all the Office 2007+ file types. To add all Office 2007+ file types at once do the following:&lt;br /&gt;
&lt;br /&gt;
Stop IIS&lt;br /&gt;
&lt;br /&gt;
 iisreset /stop&lt;br /&gt;
&lt;br /&gt;
Open the list of mime types&lt;br /&gt;
&lt;br /&gt;
*Start, Run, notepad C:\WINDOWS\system32\inetsrv\MetaBase.xml&lt;br /&gt;
&lt;br /&gt;
Search the file for “xlsx” and quit the editor if already inserted.&lt;br /&gt;
&lt;br /&gt;
Otherwise, find the following line,&lt;br /&gt;
&lt;br /&gt;
  .xml,text/xml&lt;br /&gt;
&lt;br /&gt;
and insert after that line the following lines. They do not need to be indented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.docm,application/vnd.ms-word.document.macroEnabled.12&lt;br /&gt;
.docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document&lt;br /&gt;
.dotm,application/vnd.ms-word.template.macroEnabled.12&lt;br /&gt;
.dotx,application/vnd.openxmlformats-officedocument.wordprocessingml.template&lt;br /&gt;
.potm,application/vnd.ms-powerpoint.template.macroEnabled.12&lt;br /&gt;
.potx,application/vnd.openxmlformats-officedocument.presentationml.template&lt;br /&gt;
.ppam,application/vnd.ms-powerpoint.addin.macroEnabled.12&lt;br /&gt;
.ppsm,application/vnd.ms-powerpoint.slideshow.macroEnabled.12&lt;br /&gt;
.ppsx,application/vnd.openxmlformats-officedocument.presentationml.slideshow&lt;br /&gt;
.pptm,application/vnd.ms-powerpoint.presentation.macroEnabled.12&lt;br /&gt;
.pptx,application/vnd.openxmlformats-officedocument.presentationml.presentation&lt;br /&gt;
.xlam,application/vnd.ms-excel.addin.macroEnabled.12&lt;br /&gt;
.xlsb,application/vnd.ms-excel.sheet.binary.macroEnabled.12&lt;br /&gt;
.xlsm,application/vnd.ms-excel.sheet.macroEnabled.12&lt;br /&gt;
.xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&lt;br /&gt;
.xltm,application/vnd.ms-excel.template.macroEnabled.12&lt;br /&gt;
.xltx,application/vnd.openxmlformats-officedocument.spreadsheetml.template&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save the file with File and Exit&lt;br /&gt;
&lt;br /&gt;
Restart IIS&lt;br /&gt;
&lt;br /&gt;
=== Adding Mime Types in Windows Server 2008===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[file:mime2008.jpg]]&lt;br /&gt;
&lt;br /&gt;
This message shows when a user attempts to download a file that has been uploaded into NEOSYS and the file extension is not configured in IIS server Mime Maps.&lt;br /&gt;
&lt;br /&gt;
The user may also get the below error message:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[file:mimetype.jpg]]&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
&lt;br /&gt;
Add mime mappings in IIS. Use the GUI or the servers command line.&lt;br /&gt;
The exact solution depends on the file type. Example for .msg files:&lt;br /&gt;
&lt;br /&gt;
 C:\windows\System32\inetsrv\appcmd set config /section:staticContent /+&amp;quot;[fileExtension=&#039;.msg&#039;,mimeType=&#039;application/vnd.ms-outlook&#039;]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The bit that varies in the above example is:&lt;br /&gt;
&lt;br /&gt;
*.msg&lt;br /&gt;
&lt;br /&gt;
*application/vnd.ms-outlook&lt;br /&gt;
&lt;br /&gt;
Other mime types can be found on the web eg https://www.thoughtco.com/file-extensions-and-mime-types-3469109&lt;br /&gt;
&lt;br /&gt;
Getting the 2nd part right enables the user to have the downloaded file open automatically in the right application for the file extension,  but only if they have the right application installed.&lt;br /&gt;
&lt;br /&gt;
== Handling Neosys Automatic Upgrade Error Messages ==&lt;br /&gt;
&lt;br /&gt;
=== Error Message ===&lt;br /&gt;
We will receive an email from the NEOSYS client installation with the following message:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;UPGRADEN.EXE&amp;quot; does not have expected exe MZ signature&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
This message is a note that the NEOSYS automatic update procedure failed to download an upgrade file correctly.&lt;br /&gt;
This happens sometimes due to network issues but can be ignored because the file will be probably be correctly downloaded on the next automatic update check.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This message is only informative to help with any problem with the automatic upgrade procedure and may be removed in a later version of neosys (currently Oct 2012)&lt;br /&gt;
&lt;br /&gt;
== Handling Duplicate Login Error E-mails ==&lt;br /&gt;
&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
When a user starts a new session on NEOSYS, any existing session is lost. If a user then tries to go back and work on the old session, they will receive a Duplicate Login Error email.&lt;br /&gt;
&lt;br /&gt;
This is because any user can have only one active session to work on. For example, if a user account is logged into NEOSYS from two different browsers or two different workstations at the same time, the user will receive this error e-mail.&lt;br /&gt;
&lt;br /&gt;
=== Error E-mail ===&lt;br /&gt;
[[File:dup-login.png]]&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
To avoid the Duplicate Login error e-mail, you must always logout from your active NEOSYS session before starting a new session elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Testing https connection ==&lt;br /&gt;
&lt;br /&gt;
The following procedure tests that the https server is operational and not blocked by firewall etc. It does not detect certificate errors.&lt;br /&gt;
&lt;br /&gt;
From a windows command prompt use the following telnet command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet clientname.hosts.neosys.com 4430&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
#4430 is the usual NEOSYS http port but replace it by whatever port is actually used for NEOSYS https on the system being tested. If there are multiple https installations on a particular server then different ports are probably used&lt;br /&gt;
#Replace clientname.hosts.neosys.com with the normal https login domain name of the client for whom we want to check the https service&lt;br /&gt;
&lt;br /&gt;
Normal behavior is that it should open a black screen. Pressing Enter or any key returns the _ character. (Close the window using the [X] since there is no keyboard command to do so)&lt;br /&gt;
&lt;br /&gt;
Hanging means that there is some connectivity issue (firewall/ip/server not running/https not installed etc)&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting &amp;quot;page not found&amp;quot; error while using https ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problem:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#The https service stops working and gives &amp;quot;Page not found&amp;quot; error.&lt;br /&gt;
#The https connection tests fine using telnet (see article above)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Reinstall https using the usual procedure (currently using selfssl)&lt;br /&gt;
#Email clients, requesting to reinstall the new security certificate by following the instructions for [http://userwiki.neosys.com/index.php/Setting_up_and_Configuring_NEOSYS_Generally#Fixing_HTTPS_certificate_error_when_logging_in_from_an_external_link_using_IE8.2C_IE9_and_IE10 Internet Explorer] or [http://userwiki.neosys.com/index.php/Configuring_Safari_for_MAC_OS#Fixing_HTTPS_certificate_error_when_logging_in_using_an_external_link_using_MAC_Operating_System Safari] browser.&lt;br /&gt;
&lt;br /&gt;
== Installing &amp;quot;QUICKDEX&amp;quot; on some files ==&lt;br /&gt;
&amp;quot;Quickdex&amp;quot; is a type of index that keeps an alphabetical order on small files. In some maintenance procedures you may be asked to &amp;quot;install Quickdex&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For example to add a quickdex to the UNITS file.&lt;br /&gt;
&lt;br /&gt;
Maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 DICT UNITS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
г=================Dictionary=================┐&lt;br /&gt;
│                                            │&lt;br /&gt;
│  File name      UNITS                      │&lt;br /&gt;
│  Field name     .........................  │&lt;br /&gt;
│                                            │&lt;br /&gt;
│  Dict type                                 │&lt;br /&gt;
│  Single/Multi                              │&lt;br /&gt;
│  Data type                                 │&lt;br /&gt;
│  Output format                             │&lt;br /&gt;
│  Validation patterns                       │&lt;br /&gt;
│                                            │&lt;br /&gt;
│  Position              Key part            │&lt;br /&gt;
│                                            │&lt;br /&gt;
│  Column heading                            │&lt;br /&gt;
│                                            │&lt;br /&gt;
│                                            │&lt;br /&gt;
│  Justification     Display length          │&lt;br /&gt;
│  Description                               │&lt;br /&gt;
│                                            │&lt;br /&gt;
│                                            │&lt;br /&gt;
L============================================-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press Shift+F3.&lt;br /&gt;
&lt;br /&gt;
If it says &amp;quot;Do you want to remove ...&amp;quot; then Quickdex has already been installed and you should not continue. Press Esc to cancel, then Esc to quit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
г=[B202]==================================┐&lt;br /&gt;
│                                         │&lt;br /&gt;
│               &amp;quot;UNITS&amp;quot; has               │&lt;br /&gt;
│          &amp;quot;QUICKDEX&amp;quot; installed.          │&lt;br /&gt;
│                                         │&lt;br /&gt;
│ Do you want to remove &amp;quot;QUICKDEX&amp;quot;? [Y/N] │&lt;br /&gt;
│                                         │&lt;br /&gt;
│&amp;lt;Y                                      &amp;gt;│&lt;br /&gt;
L=========================================-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise it should say &amp;quot;Do you want to install ...&amp;quot;. Press Enter to accept.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
г=[W963]============================┐&lt;br /&gt;
│                                   │&lt;br /&gt;
│     Do you want to install a      │&lt;br /&gt;
│ Quickdex or Rightdex index? [Q/R] │&lt;br /&gt;
│                                   │&lt;br /&gt;
│&amp;lt;Q                                &amp;gt;│&lt;br /&gt;
L===================================-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It should then say &amp;quot;Do you want to update ...&amp;quot;. Press Enter to accept.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
г=[W901]========================================┐&lt;br /&gt;
│                                               │&lt;br /&gt;
│           The &amp;quot;UNITS&amp;quot; file has had            │&lt;br /&gt;
│ the &amp;quot;QUICKDEX&amp;quot; modifying filing system added. │&lt;br /&gt;
│        There are 0 records in &amp;quot;UNITS&amp;quot;.        │&lt;br /&gt;
│                                               │&lt;br /&gt;
│    Do you want to update &amp;quot;QUICKDEX&amp;quot;? [Y/N]    │&lt;br /&gt;
│                                               │&lt;br /&gt;
│&amp;lt;Y                                            &amp;gt;│&lt;br /&gt;
L===============================================-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afterwards it should return to the initial screen. Press Esc to quit.&lt;br /&gt;
&lt;br /&gt;
== Solving NEOSYS smtp server failure ==&lt;br /&gt;
In case the neosys smtp server fails then we can just use the client&#039;s smtp server.&lt;br /&gt;
&lt;br /&gt;
The following information is required from the client&#039;s smtp server configuration:&lt;br /&gt;
#hostname&lt;br /&gt;
#username&lt;br /&gt;
#password&lt;br /&gt;
#port no. (most likely = 25)&lt;br /&gt;
&lt;br /&gt;
These details should be entered in the &#039;&#039;&#039;System Configuration File&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
[[image:SYSCFGFILE-SMTP.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Strange characters in maintenance mode ==&lt;br /&gt;
While in Maintenance mode, pressing keys on keyboard gives strange characters. Even Enter and Esc don’t work. &lt;br /&gt;
&lt;br /&gt;
This problem has been seen using RDP on:&lt;br /&gt;
*Window Server 2003 Web Edition&lt;br /&gt;
*Windows Server 2003 R2 SP2&lt;br /&gt;
&lt;br /&gt;
[[image:strangecharmaint.jpg]] &lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
#Go to Windows -&amp;gt; control panel&lt;br /&gt;
#Go to Regional and Language Options &lt;br /&gt;
#Click on Languages tab then click on Details &amp;lt;br&amp;gt; [[image:lang1.jpg]] &amp;lt;br&amp;gt;&lt;br /&gt;
#Click on Settings Tab and Change default input language to English (United States)&amp;lt;br&amp;gt;(or perhaps something else depending on rdp keyboard) &amp;lt;br&amp;gt; [[image:lang2.jpg]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NEOSYS processes do not start after Windows Update  ==&lt;br /&gt;
&lt;br /&gt;
===Problem===&lt;br /&gt;
Scheduled Task to start the NEOSYS processes fail on Servers with Windows 2008 after Windows update. Support will have to log into the server to start the processes manually&lt;br /&gt;
Message on the Schedule Task displays &amp;quot; The operation being requested was not performed because the user has not logged on to the network. The specified service does not exit &amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[image:sti.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
For clients who cannot tolerate manual intervention after server reboots for any reason (e.g.need to start work before NEOSYS support is available or on NEOSYS support weekends), tick &amp;quot;highest privileges&amp;quot; and &amp;quot;run whether the user is logged in or not&amp;quot;. This approach means that NEOSYS processes which are started by the windows scheduled task are not visible on the desktop and run hidden in the background and only listed in task manager, so avoid this approach on small clients (only few users). Avoiding this approach will also serve to act as an indicator of server restarts.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting NEOSYS remote support port forwarding ==&lt;br /&gt;
This assumes that you have already “port forwarded” tcp port 19580 from your public internet router to the NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
=== Tst 0 - Check if SSH is working on the NEOSYS Server ===&lt;br /&gt;
Type in the following command in command prompt:&lt;br /&gt;
 telnet 127.0.0.1 19580&lt;br /&gt;
&lt;br /&gt;
IF ALL OK you will see the following:&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-03.jpg]] &lt;br /&gt;
&lt;br /&gt;
=== Test 1 - Check if SSH is basically working on NEOSYS server over the LAN ===&lt;br /&gt;
You must know and use the NEOSYS SERVER LAN IP to do this.&lt;br /&gt;
&lt;br /&gt;
 telnet ???.???.???.??? 19580&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-01.jpg]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
If you have the WRONG SERVER LAN IP or NEOSYS server SSH is NOT working then it will hang for about 15 seconds and then say “Could not open connection to host …”&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-02.jpg]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
OR IF ALL OK you will see the following:&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-03.jpg]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press Enter to Exit&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-04.jpg]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Test 2 - Check if can connect to the NEOSYS ssh from OUTSIDE the office  ===&lt;br /&gt;
From any internet connected computer OUTSIDE the office test if you can connect to NEOSYS ssh service. You cannot do this test from inside the office.&lt;br /&gt;
&lt;br /&gt;
You need to know the public ip or domain name of the router. If the router IP is dynamic then NEOSYS sets up dynamic name server so instead of a static ip number you will have a domain name something like clientxyz.redirectme.net.&lt;br /&gt;
&lt;br /&gt;
Enter the command .. using YOUR public internet IP number (NOT the LAN ip number) or the dynamic domain name.&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-05.jpg]]  &lt;br /&gt;
&lt;br /&gt;
If everything is working OK you will get a black screen as follows. You will NOT get the “SSH-2.0-OpenSSH-4.7” banner” because NEOSYS ssh remote support is restricted to connect ONLY from LAN ip nos and NEOSYS office ip nos.&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-06.jpg]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you press Enter a few times then the cursor will just go down. You have click the [X] to close the window.&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-07.jpg]]  &lt;br /&gt;
&lt;br /&gt;
=== Test 3 - Check that the ssh connection from step 2 was rejected  ===&lt;br /&gt;
On the NEOSYS server, check the Windows Application log to verify that an SSH connection was rejected.&lt;br /&gt;
&lt;br /&gt;
The rejected ip number will be of the system outside the office that you performed the test from.&lt;br /&gt;
&lt;br /&gt;
[[image:tr-pf-08.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Sample Email: Solving port 19580 port forwarding issues ===&lt;br /&gt;
&lt;br /&gt;
Some IT people know how to troubleshoot port forwarding issues but others are mostly just power users who can configure a home router. If the IT person is in the second category then it is quicker for NEOSYS support to offer to configure their router from the NEOSYS server using Teamviewer. Ideally NEOSYS should not be doing client IT work but if client IT allows NEOSYS access to their router then NEOSYS support can make a brief attempt to do the configuration. If the issue is still unresolved then request the client to get a professional IT network expert to do the job and inform them that NEOSYS will not be able to provide them any support till connectivity is fixed. Below is a letter advising a more skilled person to check connections using telnet which is a low level test.&lt;br /&gt;
&lt;br /&gt;
You can usually determine the NEOSYS server LAN IP number from Nagios. If so then adjust the email text appropriately.&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
Dear XYZ,&lt;br /&gt;
&lt;br /&gt;
It is highly critical to fix the connectivity with the NEOSYS server because NEOSYS will not be able to provide any support until connectivity is fixed. User support issues will be delayed and remain unresolved if you do not fix this issue URGENTLY.&lt;br /&gt;
&lt;br /&gt;
At the moment there is no connection from the internet via your router to the NEOSYS server and when we do the following, we get no connection. &lt;br /&gt;
&lt;br /&gt;
   telnet CLIENTNAME.hosts.neosys.com 19580&lt;br /&gt;
&lt;br /&gt;
Normally it should connect and presents a black screen (saying SSH something after pressing Enter) which we close.&lt;br /&gt;
&lt;br /&gt;
Please check that you can connect to the NEOSYS server internally by using the NEOSYS server IP address in the following command on any computer in your LAN.&lt;br /&gt;
&lt;br /&gt;
   telnet 192.168.?.? 19580&lt;br /&gt;
&lt;br /&gt;
If you can connect to the NEOSYS server internally then please check port forwarding.&lt;br /&gt;
&lt;br /&gt;
Additionally check the following:&lt;br /&gt;
1. Has your router IP changed? The IP we have is x.x.x.x&lt;br /&gt;
2. Has your server’s LAN IP changed and are you forwarding to the correct LAN IP?&lt;br /&gt;
3. Is the configuration really correct?&lt;br /&gt;
4. Check router logs for clues&lt;br /&gt;
5. Check NAT settings in the router&lt;br /&gt;
&lt;br /&gt;
If you still cannot see the problem, do &amp;quot;telnet CLIENTNAME.hosts.neosys.com 19580&amp;quot; command from OUTSIDE your network to replicate the problem we are facing.&lt;br /&gt;
&lt;br /&gt;
For troubleshooting steps refer Troubleshooting NEOSYS remote support&lt;br /&gt;
http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Generally#Troubleshooting_NEOSYS_remote_support_port_forwarding&lt;br /&gt;
&lt;br /&gt;
If the problem still persists, please get a professional IT network expert to fix the issue.&lt;br /&gt;
&lt;br /&gt;
Best Regards,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Port mapping restricted by Source IP ===&lt;br /&gt;
&lt;br /&gt;
On NEOSYS router, port forwarding has been setup only for specific source IP addresses. This means you will not be able to establish a TCP connection to NEOSYS server unless your server&#039;s outbound IP is mapped to the NEOSYS router. In other words unless the outbound i.e source IP/port of your server has been granted access on the NEOSYS router for all incoming connections you will not be able to make connections to NEOSYS server.&lt;br /&gt;
&lt;br /&gt;
Outbound IP is used whenever a server tries to make a connection to another server outside its network. On the other hand a server receives all incoming connections using it&#039;s Inbound IP.&lt;br /&gt;
&lt;br /&gt;
Therefore to setup ssh connection from a new Client server to NEOSYS server we need to grant access to its outbound IP on the NEOSYS router. See [[Troubleshooting_NEOSYS_Generally#If_Telnet_does_not_work | link]] to find the outbound server IP/ports of the server.&lt;br /&gt;
&lt;br /&gt;
== Solving “Cant login … INVALID DATA PATH … permission denied” ==&lt;br /&gt;
=== Error Message ===&lt;br /&gt;
&lt;br /&gt;
[[image:error-invalid-data-path-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Error Text:&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Cannot login because:&lt;br /&gt;
 ERROR: INVALID DATA PATH&lt;br /&gt;
 “D:\HOSTS\HOSTNAME\DATA\HOSTNAME\~8746345.1$” Permission Denied&lt;br /&gt;
&lt;br /&gt;
=== Problem Explained ===&lt;br /&gt;
When installing NEOSYS on an existing “non-clean” Windows installation, the standard NEOSYS installation procedure can result in failure to login if the standard windows folder permissions have been modified.&lt;br /&gt;
&lt;br /&gt;
=== Solution ===&lt;br /&gt;
The solution is to grant IIS permission to write in the \neosys\DATA folder and subfolders as follows:&lt;br /&gt;
#First add the IUSR_XXXXXXX user to the list of users. (XXXXXXXX is the server name and therefore varies per server) as follows:&lt;br /&gt;
#*Right Click on DATA Folder and click on Properties&lt;br /&gt;
#*Click on Security Tab -&amp;gt; Add -&amp;gt; Advanced&lt;br /&gt;
#*Click on Find Now, Select the IUSR_XXXXXXX user and Click on OK&amp;lt;br&amp;gt;[[image:error-invalid-data-path-2.jpg]]&amp;lt;br&amp;gt;[[image:error-invalid-data-path-3.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
#Second, for the newly added IUSR (IIS user) change the permissions as follows:&lt;br /&gt;
#*&#039;&#039;&#039;REMOVE&#039;&#039;&#039; the read and execute permission (for security, IIS should be unable to execute things that it might have uploaded)&lt;br /&gt;
#*&#039;&#039;&#039;ADD&#039;&#039;&#039; the write permission &amp;lt;br&amp;gt;[[image:error-invalid-data-path-4.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
#Login should now be possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NEOSYS process window displays message &amp;quot;Upgrade Downloading&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
[[image:upgradedownloading.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Problem Explained ===&lt;br /&gt;
NEOSYS thinks it sees an new neosys2.exe upgrade file on the location http://www.neosys.com/support/neosys2.exe which is accessed by http so attempts to download it.&lt;br /&gt;
&lt;br /&gt;
Http proxies and various internet issues can cause incorrect info to be sent and there is actually no upgrade available. In this case, eventually it realizes that it cant find an appropriate and it stops. &lt;br /&gt;
&lt;br /&gt;
You don’t have to worry about this case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enabling EMS memory on Window 2003 ==&lt;br /&gt;
&lt;br /&gt;
Normally EMS memory is provided by Windows 2003 but this can vary depending on the server hardware/bios configuration&lt;br /&gt;
&lt;br /&gt;
If you get the following messages on Windows 2003&lt;br /&gt;
&lt;br /&gt;
#Backup File Size is 0&lt;br /&gt;
#RTP27. [B28] Not enough String Space – Out of Memory&lt;br /&gt;
&lt;br /&gt;
=== Cause ===&lt;br /&gt;
&lt;br /&gt;
On servers that had no problem previously, the problem is caused by a windows update in Oct 2012 that disables standard Windows EMS memory.&lt;br /&gt;
&lt;br /&gt;
The patch is issued by Microsoft on 9 Oct 2012 but the installation date in the server depends on when the update was actually installed.&lt;br /&gt;
&lt;br /&gt;
http://support.microsoft.com/kb/2724197&lt;br /&gt;
&lt;br /&gt;
=== Solution 1 - maximum performance ===&lt;br /&gt;
&lt;br /&gt;
To re-enable standard windows EMS on older slower servers or servers where NEOSYS performance must be maximized.&lt;br /&gt;
&lt;br /&gt;
The following link contains instructions how to remove the offending windows update&lt;br /&gt;
&lt;br /&gt;
It also shows how to prevent it being reinstalled automatically by Windows.&lt;br /&gt;
&lt;br /&gt;
http://www.columbia.edu/~em36/wpdos/emsxp.html&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to prevent it being reinstalled again automatically&lt;br /&gt;
&lt;br /&gt;
=== Solution 2 – ease of installation ===&lt;br /&gt;
&lt;br /&gt;
This option can also be used if Window 2003 is unable to provide EMS memory for example when the server hardware/bios configuration prevents it.&lt;br /&gt;
&lt;br /&gt;
Install EMSMAGIC in the same way as for Windows server 2008&lt;br /&gt;
&lt;br /&gt;
EMSMAGIC has higher memory consumption and makes NEOSYS processes slower so it is better to use Solution 1 above if NEOSYS performance is an issue.&lt;br /&gt;
&lt;br /&gt;
== Fixing no output file in XXX YYY Issue ==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
[[File:Nooutputfile.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Problem Explained===&lt;br /&gt;
&lt;br /&gt;
The message “No output file in XXX YYY” can appear at several instances in NEOSYS, most often when generating reports or documents. &lt;br /&gt;
&lt;br /&gt;
This problem is usually caused by software error and it indicates that the NEOSYS server responded without any output and without any message. &lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
*Find proof to check if the data required for the report actually exists. This way we can eliminate lack of data as a cause for this error.&lt;br /&gt;
*Check to see if a similar issue has been fixed in latest version of NEOSYS.&lt;br /&gt;
*Document HOW and WHERE the problem can be duplicated by NEOSYS programmers to identify and correct the software.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Units file is missing&amp;quot; error ==&lt;br /&gt;
&lt;br /&gt;
[[Image:unitsfile.png]]&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
This error can be fixed by copying the file from any another installation, since the Units file is the same in all installations.&lt;br /&gt;
&lt;br /&gt;
The Units file is found in the &#039;General&#039; folder. Path : neosys/NEOSYS/DATA/DATABASE/GENERAL/&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting Internet Connections ==&lt;br /&gt;
&lt;br /&gt;
===Cannot Connect===&lt;br /&gt;
&lt;br /&gt;
While investigating as to why users are not able to access NEOSYS or http://www.neosys.com/ , you can check which ISP the connection issue is on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;whois ipno&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect very carefully to get clues as to which ISP and which AREA of the ISP the problematic ip numbers are and which do NOT have problems&lt;br /&gt;
&lt;br /&gt;
Doing tracert on windows command prompt on the user&#039;s computer may help locate which point on the route between the user and the server is blocking access&lt;br /&gt;
&lt;br /&gt;
 tracert xxxx.hosts.neosys.com&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;xxxx&amp;quot; is the client name. In this example, the output will be something like shown below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Tracing route to xxxx.hosts.neosys.com [37.48.81.101]&lt;br /&gt;
over a maximum of 30 hops:&lt;br /&gt;
&lt;br /&gt;
  1     2 ms     1 ms     3 ms  ukr.sb.com [192.168.2.1]&lt;br /&gt;
  2    10 ms    10 ms    11 ms  losubs.subs.bng2.th-lon.zen.net.uk [62.3.80.21]&lt;br /&gt;
  3    12 ms    10 ms    67 ms  ae1-182.cr1.th-lon.zen.net.uk [62.3.86.80]&lt;br /&gt;
  4    10 ms    11 ms    11 ms  ae0-0.br2.th-lon.zen.net.uk [62.3.80.42]&lt;br /&gt;
  5    13 ms    14 ms    14 ms  peering.thn.lon.leaseweb.net [195.66.225.56]&lt;br /&gt;
  6    23 ms    23 ms    24 ms te-0-10-0-19.bb01.ams-01.leaseweb.net [31.31.32.71]&lt;br /&gt;
  7    22 ms    22 ms    23 ms xe-11-2-3.br01.ams-01.nl.leaseweb.net [31.31.38.89]&lt;br /&gt;
  8    25 ms    28 ms    26 ms  be-10.cr02.ams-01.nl.leaseweb.net [81.17.34.21]&lt;br /&gt;
  9    24 ms    20 ms    25 ms po-1002.ce02.ams-01.nl.leaseweb.net [37.48.95.195]&lt;br /&gt;
 10    24 ms    22 ms    22 ms  nl10r.neosys.com [37.48.81.101]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting TCP/IP Connections ===&lt;br /&gt;
&lt;br /&gt;
====Telnet check====&lt;br /&gt;
 telnet &amp;lt;hostname&amp;gt; 19580&lt;br /&gt;
&lt;br /&gt;
If success then host is on web and port is open. &lt;br /&gt;
Otherwise if error: &amp;quot;Connection refused,&amp;quot; then either an intermediate firewall is blocking access or the port is closed on host machine. &lt;br /&gt;
Action: check with client if office firewall(s) allow connection on that port and if the port is open on the host server.&lt;br /&gt;
&lt;br /&gt;
====If Telnet does not work====&lt;br /&gt;
In case telnet does not work, login to the remote host server to investigate the issue. Run the following command simultaneously while doing Telnet from client server to the remote host to check if the TCP packets are reaching the Remote server.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tcpdump -v &#039;src host client-domain-name/ip&#039; &lt;br /&gt;
tcpdump -v portno &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check if packets are sent from the client server to the remote host, you can run the following command simultaneously while trying to ssh to the remote server.&lt;br /&gt;
&amp;lt;pre&amp;gt;netstat -an &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also check if the outbound ports are open from which you are trying to establish the TCP connection to the remote server.&lt;br /&gt;
&amp;lt;pre&amp;gt;telnet portquiz.net portno &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The outbound IP addresses at times can be different from the public IP of the Client server so be sure that the public IP of the client server is the same as its source IP (which represents an incoming connection from Client to Remote server). One way to find the source IP of the Client server is sending an email from Client server to &amp;quot;support@neosys.com&amp;quot;. On receiving the email in Thunderbird, select the email and press Ctrl+u. A new window Opens giving full details of the email received. The third &amp;quot;Received :from&amp;quot; gives the IP of the source.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting DNS failure ===&lt;br /&gt;
&lt;br /&gt;
NEOSYS clients routers are usually configured to use their ISP DNS service and the ISP DNS service is supposed to contact one of NEOSYS&#039;s DNS servers to convert server names like hosts.neosys.com into IP numbers. Misconfiguration of clients routers or problems in the ISP DNS server may cause CANNOT CONNECT problems. Often the connect fails quickly and immediately since if a name cannot be converted to an ip number then the connection cannot even be attempted and therefore there is little or no timeout to wait through.&lt;br /&gt;
&lt;br /&gt;
NEOSYS.COM name servers are listed publically and obtained by whois command.&lt;br /&gt;
&lt;br /&gt;
 whois neosys.com&lt;br /&gt;
&lt;br /&gt;
 Name Server: DNS1.EASYDNS.COM&lt;br /&gt;
 Name Server: DNS2.EASYDNS.NET&lt;br /&gt;
 Name Server: DNS3.EASYDNS.ORG&lt;br /&gt;
 Name Server: NS12.ZONEEDIT.COM&lt;br /&gt;
 Name Server: NS18.ZONEEDIT.COM&lt;br /&gt;
&lt;br /&gt;
In order to contact NEOSYS DNS servers the ISP&#039;s have to use a global DNS to obtain the ip addresses of NEOSYS DNS servers given the host names of NEOSYS DNS servers given in the whois info&lt;br /&gt;
&lt;br /&gt;
Here is an example of DU testing NEOSYS DNS servers. The NEOSYS DNS server ip addresses are listed in the Destination column.&lt;br /&gt;
&lt;br /&gt;
[[File:internet.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If one DNS server is down or unreachable REGARDLESS OF REASON, the ISP is supposed to use the other DNS servers. It is impossible for all NEOSYS DNS servers to be unreachable except in gross disconnection from the internet of the ISP since it is effectively impossible that all NEOSYS DNS servers which are carefully spread around the internet, to be unreachable.&lt;br /&gt;
&lt;br /&gt;
In the above test one of the NEOSYS DNS servers is unreachable but all the others are reachable therefore DU should have no problem providing DNS service to its clients.&lt;br /&gt;
&lt;br /&gt;
ISP are often worse at providing DNS server than the famous GOOGLE DNS servers, so re configuring client router to use GOOGLE DNS servers is a way to prove that the problem lies with the ISP&#039;s DNS service&lt;br /&gt;
&lt;br /&gt;
=== Additional test for troubleshooting problems with uploading ===&lt;br /&gt;
&lt;br /&gt;
====Verifying that upload.dll can run====&lt;br /&gt;
&lt;br /&gt;
This isnt a complete test of everything. It just checks if the upload program can be run by the web server. It doesnt check if uploads work or the image directory is correctly configured with the right permissions and uploads can actually be done.&lt;br /&gt;
&lt;br /&gt;
===== Error Message =====&lt;br /&gt;
&lt;br /&gt;
... to be added when discovered ...&lt;br /&gt;
&lt;br /&gt;
===== Test =====&lt;br /&gt;
&lt;br /&gt;
Test HTTP if accessible by LAN; Test HTTPS is accessible by Internet; Test both if both are available.&lt;br /&gt;
&lt;br /&gt;
On the server type the following into a browser&lt;br /&gt;
&lt;br /&gt;
LAN/HTTP:&lt;br /&gt;
&lt;br /&gt;
 http://localhost/neosys/neosys/dll/upload.dll&lt;br /&gt;
&lt;br /&gt;
WAN/HTTPS:&lt;br /&gt;
&lt;br /&gt;
 https://localhost:9999/neosys/dll/upload.dll&lt;br /&gt;
&lt;br /&gt;
===== Expected Result =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Upload Error. !&lt;br /&gt;
Please call me from a form !!!&lt;br /&gt;
The first param must be Filename= name of the uploaded file, TYPE=TEXT&lt;br /&gt;
The second param must be Filedata= uploaded file, TYPE=FILE&lt;br /&gt;
The third param is optional PathData= path to uploaded file, default c:\temp\, TYPE=HIDDEN&lt;br /&gt;
The forth param is optional RedirectPage= name of asp who receive the results, TYPE=HIDDEN&lt;br /&gt;
Add others params at the end with INPUT tag.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[image:Uerror.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Patching a NEOSYS program ==&lt;br /&gt;
&lt;br /&gt;
Patches done to NEOSYS programs are not affected by live to test database copy, since the programs are on installation level and not database level.&lt;br /&gt;
&lt;br /&gt;
The patch provided will tell you the program name and contain either a whole replacement program text or just some changed lines which you will have to find and edit.&lt;br /&gt;
&lt;br /&gt;
For older versions of NEOSYS, you will need to know the file name which may be provided along with the patch or you can find it using the following code in maintenance mode:&lt;br /&gt;
&lt;br /&gt;
 ED VOC programname&lt;br /&gt;
&lt;br /&gt;
ED VOC XYZ tells you what program name is executed and from what file, when you type the command XYZ. Normally the program name is the same as the command.&lt;br /&gt;
&lt;br /&gt;
The file name will normally be BP for agency programs, GBP for general programs or ABP for finance programs.&lt;br /&gt;
&lt;br /&gt;
NEOSYS programs are stored in files just like records of ordinary database files. You can edit either with &amp;quot;ED filename programname&amp;quot; or &amp;quot;TED filename programname&amp;quot;. TED is better for editing source code as it opens the the code in a text editor, whereas ED opens the code in the same maintenance window.&lt;br /&gt;
&lt;br /&gt;
To test patches immediately, Support may have to clear cache by pressing CTRL+F5. Refer to [[Configuring_IIS#IIS_web_page_caching|Web Caching]] for more information.&lt;br /&gt;
&lt;br /&gt;
===Installing patch in live database===&lt;br /&gt;
&lt;br /&gt;
In the rare case that the programmer asks Support to install the patch directly on LIVE dataset, start by typing the following command in maintenance mode before commencing:&lt;br /&gt;
&lt;br /&gt;
 UTIL&lt;br /&gt;
&lt;br /&gt;
Follow the instructions mentioned in the [[Troubleshooting_NEOSYS_Generally#Installing_patch_in_test_database| next section]], but skip the instruction to TEST the patched program in test dataset.&lt;br /&gt;
&lt;br /&gt;
The instruction to INSTALL the patched program MUST be followed BEFORE testing the patch in live dataset. Otherwise the changes will not get reflected.&lt;br /&gt;
&lt;br /&gt;
===Installing patch in test database===&lt;br /&gt;
&lt;br /&gt;
1. EDIT the program source code.&lt;br /&gt;
&lt;br /&gt;
 TED programname&lt;br /&gt;
&lt;br /&gt;
If you have to edit or patch a program that starts with the word DICT. and the remainder of the program name is the same as a real file name e.g DICT.INVOICES, then you cannot omit and must type the actual source file name - in this case, &amp;quot;BP&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Otherwise, if you just type &amp;quot;ED DICT.INVOICES&amp;quot; hoping to edit the DICT.INVOICES program in the BP file, then you will end up editing the dictionary of INVOICES, which is not what you are trying to do. Use the command below to edit such type of programs:&lt;br /&gt;
&lt;br /&gt;
 ED BP DICT.INVOICES&lt;br /&gt;
&lt;br /&gt;
If you want to patch line 8, i.e. the source code, of an S type dictionary then you can use TED for easier editing.&lt;br /&gt;
&lt;br /&gt;
 TED DICT.filename itemname &lt;br /&gt;
&lt;br /&gt;
Next either cut and paste to modify the whole program or edit the program text according to the patch/instructions provided.&lt;br /&gt;
&lt;br /&gt;
Save and close the program source code.&lt;br /&gt;
&lt;br /&gt;
2. COMPILE it. If you get errors then check your edits are correct and recompile otherwise return the patch to programming.&lt;br /&gt;
&lt;br /&gt;
In newer versions of NEOSYS, versions in and after April 2018, use the below command for compiling.&lt;br /&gt;
&lt;br /&gt;
 CO programname&lt;br /&gt;
&lt;br /&gt;
In older versions of NEOSYS, you will have to include the filename.&lt;br /&gt;
&lt;br /&gt;
 COMPILE filename programname&lt;br /&gt;
&lt;br /&gt;
3. TEST it. Ensure the patched program now works in TEST database.&lt;br /&gt;
&lt;br /&gt;
4. INSTALL the patched program in the LIVE database. &lt;br /&gt;
&lt;br /&gt;
For newer versions of NEOSYS, versions in and after April 2018, use the below command to copy from test to live.  &lt;br /&gt;
&lt;br /&gt;
 COPYBP programname&lt;br /&gt;
&lt;br /&gt;
For older versions of NEOSYS, depending on the filename that you patched, one of the following commands will have to be used.&lt;br /&gt;
&lt;br /&gt;
 COPYGBP programname&lt;br /&gt;
 COPYABP programname&lt;br /&gt;
 COPYBP programname&lt;br /&gt;
&lt;br /&gt;
== Patching NEOSYS dictionaries ==&lt;br /&gt;
&lt;br /&gt;
A patch to a dictionary applies immediately when you save it and to all datasets regardless of which dataset you work in.&lt;br /&gt;
&lt;br /&gt;
You need:&lt;br /&gt;
&lt;br /&gt;
#the file name eg INVOICES&lt;br /&gt;
#the item name (column name) eg  DATETIME_AMENDED&lt;br /&gt;
#10 lines of data similar to the example below.&lt;br /&gt;
#if the item is an S type dictionary, then either the whole, or only the amended part, of the source code of the dictionary.&lt;br /&gt;
&lt;br /&gt;
 ED DICT INVOICES DATETIME_AMENDED&lt;br /&gt;
&lt;br /&gt;
TYPE everything below exactly on the corresponding line numbers except lines 3 and very commonly line 8, as these lines may contain multiple values separated by a superscript 2 (²). Line numbers in the below screen are only for illustrative purpose. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ╔═══════════════════════════┤DATETIME_AMENDED├═════════════════════════╗&lt;br /&gt;
 1║S                                                                     ║&lt;br /&gt;
 2║                                                                      ║&lt;br /&gt;
 3║DateTime²Amended                                                      ║&lt;br /&gt;
 4║S                                                                     ║&lt;br /&gt;
 5║                                                                      ║&lt;br /&gt;
 6║                                                                      ║&lt;br /&gt;
 7║[DATETIME]                                                            ║&lt;br /&gt;
 8║updated=@record&amp;lt;28&amp;gt;²created=@record&amp;lt;31,1&amp;gt;²@ans=&#039;&#039;²if created and num(c║..actually this line continues off the screen to the right&lt;br /&gt;
 9║R                                                                     ║&lt;br /&gt;
10║10                                                                    ║&lt;br /&gt;
11║                                                                      ║&lt;br /&gt;
  :                                                                      :&lt;br /&gt;
  :                                                                      :&lt;br /&gt;
  ╚══════════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Press Ctrl+E on lines 3 or 8 in order to enter sub-lines. &lt;br /&gt;
&lt;br /&gt;
The multiple values (on line 3 and 8) separated by a superscript 2 (²) automatically appear when sub-lines are entered.&lt;br /&gt;
&lt;br /&gt;
For line 8, you will need to cut and paste the lines of below program to the Ctrl+E screen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════┤Field 8 of DATETIME_AMENDED├════════════════════════╗&lt;br /&gt;
║updated=@record&amp;lt;28&amp;gt;                                                           ║&lt;br /&gt;
║created=@record&amp;lt;31,1&amp;gt;                                                         ║&lt;br /&gt;
║@ans=&#039;&#039;                                                                       ║&lt;br /&gt;
║if created and num(created) and num(updated) then                             ║&lt;br /&gt;
║ createdsecs=field(created,&#039;.&#039;,1)*86400+field(created,&#039;.&#039;,2)                  ║&lt;br /&gt;
║ updatedsecs=field(updated,&#039;.&#039;,1)*86400+field(updated,&#039;.&#039;,2)                  ║&lt;br /&gt;
║ if abs(updatedsecs-createdsecs)&amp;gt;120 then                                     ║&lt;br /&gt;
║  @ans=updated                                                                ║&lt;br /&gt;
║  end                                                                         ║&lt;br /&gt;
║ end                                                                          ║&lt;br /&gt;
║                                                                              ║&lt;br /&gt;
║                                                                              ║&lt;br /&gt;
╚══════════════════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you save and exit the Ctrl+E screen, you will see the sublines separated by superscript 2 appear in one line in the ED screen. &lt;br /&gt;
&lt;br /&gt;
Similarly, for line 3, you need to enter its sub-lines in Ctrl+E screen.&lt;br /&gt;
&lt;br /&gt;
To ensure indenting remains nice (although indenting is not important and can be messed up without causing any problem) then copy the double bars at the front of the lines (if available, otherwise insert some char in position 1 of each line perhaps) and then remove them after you paste ... or just edit until the indenting is correct if you really want to.&lt;br /&gt;
&lt;br /&gt;
Press F9 and/or Esc to save and/or exit from Ctrl+E screen&lt;br /&gt;
&lt;br /&gt;
Press F9 and/or Esc to save and/or exit from ED&lt;br /&gt;
&lt;br /&gt;
== Linux Commands ==&lt;br /&gt;
&lt;br /&gt;
This section is aimed teaching support, new to the Linux environment, how to navigate and use the most common useful commands.&lt;br /&gt;
&lt;br /&gt;
Use google or &amp;quot;man &amp;lt;programName&amp;gt;&amp;quot; to get the manual of a program. E.g &amp;quot;man man&amp;quot; gives you the MANual for the Manual program.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;|&amp;quot; use the pipe command to take output of one command and input into another. E.g Cmd: &amp;quot; Echo &amp;quot;ABC&amp;quot; | removeA | removeC &amp;quot;. Output = &amp;quot;B&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Typically commands assume you mean the current directory, if you don&#039;t specify which directory you want the command to perform in/on.&lt;br /&gt;
&lt;br /&gt;
Strings with spaces have to be wrapped in double quotation &amp;quot;May 14 01:30:55&amp;quot; before use as input to most commands.&lt;br /&gt;
&lt;br /&gt;
Follow this convention in wiki to understand the syntax (structure) of the Linux commands and options.&lt;br /&gt;
&lt;br /&gt;
Input wrapped in &amp;quot;&amp;lt;...&amp;gt;&amp;quot; is mandatory.&lt;br /&gt;
&lt;br /&gt;
Input wrapped in &amp;quot;[...]&amp;quot; is optional. &lt;br /&gt;
&lt;br /&gt;
=== Searching for strings in one or many files using grep ===&lt;br /&gt;
&lt;br /&gt;
Using the GUI with Ctrl + F is laborious and less powerful.&lt;br /&gt;
&lt;br /&gt;
Use grep command in Linux or Cygwin to search files especially when you are doing deep inspection of NEOSYS Logs. &lt;br /&gt;
&lt;br /&gt;
Use the following command to search for a string in any file or directory&lt;br /&gt;
&lt;br /&gt;
 grep &amp;lt;string&amp;gt; [path to file OR filename] [-r]&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;string&amp;quot; is the text to be searched and &amp;quot;-r&amp;quot; means recursive - check all files in all sub directories.&lt;br /&gt;
&lt;br /&gt;
 grep -i -a string path/file&lt;br /&gt;
&lt;br /&gt;
where &amp;quot;file&amp;quot; is the type of file you are looking for and &amp;quot;path&amp;quot; is the path of the directory you are looking into. Use &amp;quot;&amp;quot; when having spaces in your string.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;-i&amp;quot; means ignore upper/lower case characters in the string and &amp;quot;-a&amp;quot; means treat the file type as text and display the matching text)&lt;br /&gt;
&lt;br /&gt;
e.g when searching in NEOSYS logs the year/month/date is specified in the file name, so if you are looking for a file in year 2016 in the month of Feb, use&lt;br /&gt;
&lt;br /&gt;
 grep XXXX path/1602*&lt;br /&gt;
&lt;br /&gt;
In the above command * (asterisk) is a wildcard &amp;quot;means replace * with any thing&amp;quot; and is used when you don&#039;t know what that part of the command could be. &lt;br /&gt;
&lt;br /&gt;
E.g &amp;quot;*.jpg&amp;quot; means any file names that end with &amp;quot;.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sample below of grep command and its output where it is searching for &amp;quot;Dior&amp;quot; in 2016 march logs.&lt;br /&gt;
&lt;br /&gt;
 $ grep -i Dior /cygdrive/d/hosts/test/logs/test/2016/1603*&lt;br /&gt;
 Binary file path/16030301.XML matches&lt;br /&gt;
&lt;br /&gt;
Using * (asterisk), a string can also be searched globally across all installations on the server.&lt;br /&gt;
&lt;br /&gt;
Below example will search all files whose file names begin with &amp;quot;NEOS00&amp;quot;, in all client installation folders inside the &amp;quot;hosts&amp;quot; folder, for log entries containing text &amp;quot;5th June 2016&amp;quot;.&lt;br /&gt;
 $ grep -a &amp;quot;2016 JUN 05&amp;quot; /cygdrive/d/hosts/*/logs/NEOS00*|less&lt;br /&gt;
&lt;br /&gt;
Use the commands below to display the search string and required number of lines that come either after or before the search string, depending on what you enter in your command. It helps to get more information from files especially when you only know few words and the other information around the searched string also gets displayed. &lt;br /&gt;
&lt;br /&gt;
 grep -A&amp;lt;NUM&amp;gt; string file&lt;br /&gt;
&lt;br /&gt;
Above command will display the line where the searched string was found, and also display NUM lines after the searched text&lt;br /&gt;
&lt;br /&gt;
 grep -B&amp;lt;NUM&amp;gt; string file&lt;br /&gt;
&lt;br /&gt;
Above command will display the line where the searched string was found, and also display NUM lines before the searched text&lt;br /&gt;
&lt;br /&gt;
See the examples and their respective outputs below:&lt;br /&gt;
&lt;br /&gt;
 $ grep -A2 -i &amp;quot;Dior&amp;quot; 1603*&lt;br /&gt;
 Binary file 16032101.XML matches&lt;br /&gt;
 Binary file 16032901.XML matches&lt;br /&gt;
&lt;br /&gt;
 $ grep -A2 -a &amp;quot;Dior&amp;quot; 1603*&lt;br /&gt;
 16030301.XML:&amp;lt;DataOut&amp;gt;DIOR%FEPOI%FE&#039;&#039;&#039;Dior&#039;&#039;&#039; Poison%FE%FE%FE%FE%FEDubai,    UAE%FE%FE%FE%FEN%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FEN%FE%FE%FE17584.43592%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE1%FE%FE%FE%FE%FE%FE%FE%FE%FENEOSYS%FE17584.43592%FE94_200_49_146%FE1%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FEpaulson&amp;lt;/DataOut&amp;gt;&amp;lt;/Message&amp;gt;&lt;br /&gt;
 --&lt;br /&gt;
 16030301.XML:&amp;lt;DataOut&amp;gt;DIOR%FEPOI%FE&#039;&#039;&#039;Dior&#039;&#039;&#039; Poison%FE%FE%FE%FE%FEDubai,   UAE%FE%FE%FE%FEN%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FEN%FE%FE%FE17584.43592%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE1%FE%FE%FE%FE%FE%FE%FE%FE%FENEOSYS%FE17584.43592%FE94_200_49_146%FE1%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FE%FEpaulson&amp;lt;/DataOut&amp;gt;&amp;lt;/Message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more examples of grep below:&lt;br /&gt;
&lt;br /&gt;
Use the command below when searching for more than one string&amp;lt;br&amp;gt;&lt;br /&gt;
 grep -a string1 *|grep string2&lt;br /&gt;
&lt;br /&gt;
Use the below command to omit the lines containing specific strings in your search:&lt;br /&gt;
 grep -B2 -a Processing 160329*|grep -v DataIn|grep -v Message|less&amp;lt;br&amp;gt;&lt;br /&gt;
Above command will display lines containing string &amp;quot;Processing&amp;quot; and exclude lines containing string &amp;quot;DataIn&amp;quot; and &amp;quot;Message&amp;quot;, |&amp;quot;less&amp;quot; displays the output in a new screen.&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;zgrep&amp;quot; command to search in zip files:&lt;br /&gt;
 zgrep string1 /path |zgrep string2 |less&lt;br /&gt;
&lt;br /&gt;
=== FIND ===&lt;br /&gt;
&lt;br /&gt;
Use this find command to list all files/directories modified after a certain date.&lt;br /&gt;
&lt;br /&gt;
 find [path, if omitted means = current directory] [-type f,d] [-newermt &#039;MM/DD/YYYY HH:MM:SS&#039;]&lt;br /&gt;
&lt;br /&gt;
Or use a filename instead of date:&lt;br /&gt;
 &lt;br /&gt;
 find  -newer filename&lt;br /&gt;
&lt;br /&gt;
== Managing the queue of reports being delivered by email ==&lt;br /&gt;
&lt;br /&gt;
In maintenance mode.&lt;br /&gt;
&lt;br /&gt;
=== Listing ===&lt;br /&gt;
&lt;br /&gt;
 LIST DOCUMENTS WITH SCHEDULED_ONCE&lt;br /&gt;
&lt;br /&gt;
=== Clearing ===&lt;br /&gt;
&lt;br /&gt;
 SELECT DOCUMENTS WITH SCHEDULED_ONCE&lt;br /&gt;
 DELETE DOCUMENTS&lt;br /&gt;
&lt;br /&gt;
== Reduce used disk space on NEOSYS or client hosted servers ==&lt;br /&gt;
Non essential files getting accumulated over time can take up a lot of space on the hard disk resulting in low free space on the server. NEOSYS Client Monitoring system alerts about low free space for win3 server as it monitors the Disk Space of both C &amp;amp; D drive. To fix it Support team will have to create free space on the server.&lt;br /&gt;
&lt;br /&gt;
Making space on the server is time taking and requires patience as you need to go through all the files/folders looking for non-essential files. Do not make any assumptions for not looking into a folder.&lt;br /&gt;
&lt;br /&gt;
Non-essential files are the ones without which we can work properly and will continue to work in future.&lt;br /&gt;
&lt;br /&gt;
Support team should keep in mind the below points while creating space on the server:&lt;br /&gt;
&lt;br /&gt;
#Look into the drive for which nagios is alerting and dig into all the folders.&lt;br /&gt;
#Right click Folder &amp;gt; Properties &amp;gt; Size on Disk, to find out the size of a folder.&lt;br /&gt;
#On d drive majority of the space is taken by d:\hosts and d:\data.bak folder and on c drive it&#039;s taken up by the important windows/cygwin folders.&lt;br /&gt;
#The space distribution will give you an idea about which folders to target that can free up a good amount of space on clean up.&lt;br /&gt;
#Following are the non essential files/folders which can create a lot of space on removal. Use your intelligence and presence of mind while deleting files/folders because once deleted the information is lost forever.&lt;br /&gt;
#*Folder: d\data.bak. Check for stopped clients&#039; backups and delete if present.&lt;br /&gt;
#*Folder: d\hosts\clientname\logs (where clientname stands for all the client folders in hosts) Look into logs prior to the current year and the year before and delete them. In the recent versions of NEOSYS, log folders are compressed and take up a lot less space on disk than presented as their size. You can see the difference in their properties.&lt;br /&gt;
#*Folder: d\hosts\clientname\downloads. This folder might contain lot of old versions of neosys.exe files. Keep the two latest versions and delete the rest. Do this for all client folders except test installation because Support maintains all the old versions of neosys.exe in it.&lt;br /&gt;
#*Folder: d\hosts\old. In this folder, delete all client folders that are older than 1 year.&lt;br /&gt;
#*Apart from above folders look for random backup.zip files present in c/d drive. This happens when Support restores data from a zip file and forgets to delete it after the restore.&lt;br /&gt;
&lt;br /&gt;
To quickly get an idea of which directories consume the largest space, SSH onto server and use the &amp;quot;du&amp;quot; command along with various options, combined with command &amp;quot;sort&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;du&amp;quot; Disk Usage is used to estimate file space usage under a particular directory. Look up &amp;quot;sort&amp;quot; and &amp;quot;head&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Use this to find the estimate disk usage of each sub directory of every log directory in /hosts and then sort -n umerically and -r everse sort from high to low:&lt;br /&gt;
&lt;br /&gt;
 du /*/LOGS/*/20* --time  | sort -n -r&lt;br /&gt;
&lt;br /&gt;
Go to /hosts or D:/NEOSYS folder. Use command to get the estimate disk usage for all sub directories excluding directories where you know for certain files cannot be deleted.&lt;br /&gt;
(sort the directories by highest to lowest estimated disk usage in kb and then shows the top 20)&lt;br /&gt;
&lt;br /&gt;
 du --exclude={*/NEOSYS,*/neosys.net,*path/to/another/dir/that/cannot/be/deleted} --time | sort -r -n | head -n 20&lt;br /&gt;
&lt;br /&gt;
=== Reduce used disk space on backup servers ===&lt;br /&gt;
&lt;br /&gt;
If a server is scheduled to daily delete backup files older than 30 days, then there may be random files that are left behind for longer than 30 days, which are:&lt;br /&gt;
*any xx/xx/31 files on months than are followed by months with only 30 days, since the backup procedure deletes the previous month&#039;s file on the same day and day 31 does not exist in all months and&lt;br /&gt;
*any &amp;quot;same day last month&amp;quot; files that were not deleted by the backup procedure because it did not run or did not complete.&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;crontab -l&amp;quot; to list all scheduled tasks, to find the how old a file must be before it is deleted.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting Scripting Disabled error message on browser ==&lt;br /&gt;
 Error: NEOSYS requires             You have&lt;br /&gt;
       1. Internet Explorer 6+&lt;br /&gt;
         or Safari 3.1+&lt;br /&gt;
         or Firefox 3+&lt;br /&gt;
         or Chrome 8.0+&lt;br /&gt;
       2. Scripting enabled       Scripting disabled&lt;br /&gt;
       3. Cookies enabled         Unknown&lt;br /&gt;
&lt;br /&gt;
[[image:IEtrb1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Follow steps in given link to fix Script disable error on browsers : https://wmich.edu/helpdesk/internetenablecookies&lt;br /&gt;
&lt;br /&gt;
==[[Configuring_IIS#Solving_.22Service_unavailable.22_error_due_to_disabled_application_pool | Handling &#039;Service Unavailable&#039; on browser due to IIS issue]]==&lt;br /&gt;
&lt;br /&gt;
== Searching for users with a particular email address ==&lt;br /&gt;
&lt;br /&gt;
In maintenance mode &lt;br /&gt;
 &lt;br /&gt;
 FIND USERS XX@YY.COM&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=File:Unitsfile.png&amp;diff=3607</id>
		<title>File:Unitsfile.png</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=File:Unitsfile.png&amp;diff=3607"/>
		<updated>2019-03-04T13:55:17Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3606</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3606"/>
		<updated>2019-02-25T06:39:15Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Using CHK.POST to fix some types of Cross Check Balance (CCB) errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cross-Year Cross Check Balance Warnings ==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
!!! WARNING This is a dangerous procedure. IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts. This can be caused by:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Meaning of other messages ===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
=== Re-enabling CCB warning mail notifications ===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX ==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C ] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
=== Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;quot;*MEVEJ*FZ&amp;quot;  L=232 V=REC*461*FZ 05/07/09 B=447 &amp;quot;MEVEJ&amp;quot;&lt;br /&gt;
  different account &amp;quot;ADVOPME&amp;quot;&lt;br /&gt;
                     Delete the index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│None&lt;br /&gt;
  3│Yes&lt;br /&gt;
  4│All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════════════════════════════╗&lt;br /&gt;
║  &amp;quot;*VIV*N&amp;quot;  L=458 V=IN*2012/1170*N 29/05/12 missing voucher      ║&lt;br /&gt;
║                     Delete the index entry?                     ║&lt;br /&gt;
║───┬─────────────────────────────────────────────────────────────║&lt;br /&gt;
║  1&amp;gt;No                                                           ║&lt;br /&gt;
║  2│Yes                                                          ║&lt;br /&gt;
║  3│None                                                         ║&lt;br /&gt;
║  4│All                                                          ║&lt;br /&gt;
╚═════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Different Date - Correct index entry? ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*OMD*AP&amp;quot;  L=115 V=IN*2013/350*AP 31/03/13 B=1159&lt;br /&gt;
  different date &amp;quot;14/03/13&amp;quot;&lt;br /&gt;
                     Correct index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│Yes&lt;br /&gt;
  3│Correct None&lt;br /&gt;
  4│Correct All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Checking if a voucher is fully posted ==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
=== First line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
=== Last line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
=== First and last lines are posted ===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
== Voucher number missing from posted batches ==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
Run the following command in maintenance mode and check for errors. &lt;br /&gt;
 &lt;br /&gt;
 F5&lt;br /&gt;
 UTIL&lt;br /&gt;
 CHK.VOUCHERS  &lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
== [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS ] ==&lt;br /&gt;
&lt;br /&gt;
== Using CHK.POST to fix some types of Cross Check Balance (CCB) errors ==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors &lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Redo_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
== B10 &amp;amp; B12 Errors ==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals which are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
See [[Procedures#Amending.2FReposting_Journal_Entries|Procedure for Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
To repost a batch, edit the journal on the Journal Entry/Query page and save. Click OK for the prompt “OK to repost now?”.&lt;br /&gt;
== Editing and Reposting Vouchers ==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
=== UNPOST ===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
=== EDIT ===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
=== REPOST ===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Removing strange outstanding items on accounts that have balance of zero ==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reinstating Open Item Statements after Clear Open Items ==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
=== 1. Check, solve, record all existing cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
=== 3. Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Check for cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Speeding up CHK.VOUCHERS CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
== Check steps of each CHK program ==&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CONTROLS ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VOUCHERS ===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BATCHES ===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VINDEX ===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.OB ===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BALANCES ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CHARTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ACCOUNTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
== Fixing opening balance of the new year that does not agree with the previous closing balance ==&lt;br /&gt;
&lt;br /&gt;
You need to redo open new year procedure for the problematic years, where Recreate opening balances(which is part of opennewyear.subs) should fix the issue.&lt;br /&gt;
&lt;br /&gt;
=== Redo Open New Year procedure ===&lt;br /&gt;
&lt;br /&gt;
1. Edit the Company file in Maintenance mode by running &#039;ED COMPANIES &amp;lt;COMPANY CODE&amp;gt;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :ED COMPANIES A                                                            │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. In the &#039;Year&#039; field, which is the second field, enter the year prior to the year that you need to run Open New year for.&lt;br /&gt;
&lt;br /&gt;
The &#039;Year&#039; field displays the current financial year of the company.&lt;br /&gt;
&lt;br /&gt;
For example, if the problem is with opening balance of 2019, change the &#039;Year&#039; field to 12/2018. &lt;br /&gt;
 ╔══════════════════════════════════════┤A├═════════════════════════════════════╗&lt;br /&gt;
 ║Company name A                                                                ║&lt;br /&gt;
 ║1/19   &amp;lt;b&amp;gt;&amp;lt;---(Change to 12/18)&amp;lt;/b&amp;gt;                                                  ║&lt;br /&gt;
 ║AED                                                                           ║&lt;br /&gt;
 ║EXDIⁿEXDI                                                                     ║&lt;br /&gt;
&lt;br /&gt;
3. In NEOSYS, open new year 2019 from Menu -&amp;gt; Finance -&amp;gt; Maintenance -&amp;gt; Open New Year. &lt;br /&gt;
&lt;br /&gt;
4. In Maintenance mode, run CHK.OB and include a few prior years as well, to see if all balances are fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3605</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3605"/>
		<updated>2019-02-25T06:37:02Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Re-running Open New Year procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cross-Year Cross Check Balance Warnings ==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
!!! WARNING This is a dangerous procedure. IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts. This can be caused by:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Meaning of other messages ===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
=== Re-enabling CCB warning mail notifications ===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX ==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C ] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
=== Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;quot;*MEVEJ*FZ&amp;quot;  L=232 V=REC*461*FZ 05/07/09 B=447 &amp;quot;MEVEJ&amp;quot;&lt;br /&gt;
  different account &amp;quot;ADVOPME&amp;quot;&lt;br /&gt;
                     Delete the index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│None&lt;br /&gt;
  3│Yes&lt;br /&gt;
  4│All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════════════════════════════╗&lt;br /&gt;
║  &amp;quot;*VIV*N&amp;quot;  L=458 V=IN*2012/1170*N 29/05/12 missing voucher      ║&lt;br /&gt;
║                     Delete the index entry?                     ║&lt;br /&gt;
║───┬─────────────────────────────────────────────────────────────║&lt;br /&gt;
║  1&amp;gt;No                                                           ║&lt;br /&gt;
║  2│Yes                                                          ║&lt;br /&gt;
║  3│None                                                         ║&lt;br /&gt;
║  4│All                                                          ║&lt;br /&gt;
╚═════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Different Date - Correct index entry? ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*OMD*AP&amp;quot;  L=115 V=IN*2013/350*AP 31/03/13 B=1159&lt;br /&gt;
  different date &amp;quot;14/03/13&amp;quot;&lt;br /&gt;
                     Correct index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│Yes&lt;br /&gt;
  3│Correct None&lt;br /&gt;
  4│Correct All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Checking if a voucher is fully posted ==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
=== First line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
=== Last line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
=== First and last lines are posted ===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
== Voucher number missing from posted batches ==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
Run the following command in maintenance mode and check for errors. &lt;br /&gt;
 &lt;br /&gt;
 F5&lt;br /&gt;
 UTIL&lt;br /&gt;
 CHK.VOUCHERS  &lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
== [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS ] ==&lt;br /&gt;
&lt;br /&gt;
== Using CHK.POST to fix some types of Cross Check Balance (CCB) errors ==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors &lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Re-running_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
== B10 &amp;amp; B12 Errors ==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals which are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
See [[Procedures#Amending.2FReposting_Journal_Entries|Procedure for Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
To repost a batch, edit the journal on the Journal Entry/Query page and save. Click OK for the prompt “OK to repost now?”.&lt;br /&gt;
== Editing and Reposting Vouchers ==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
=== UNPOST ===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
=== EDIT ===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
=== REPOST ===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Removing strange outstanding items on accounts that have balance of zero ==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reinstating Open Item Statements after Clear Open Items ==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
=== 1. Check, solve, record all existing cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
=== 3. Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Check for cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Speeding up CHK.VOUCHERS CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
== Check steps of each CHK program ==&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CONTROLS ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VOUCHERS ===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BATCHES ===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VINDEX ===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.OB ===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BALANCES ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CHARTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ACCOUNTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
== Fixing opening balance of the new year that does not agree with the previous closing balance ==&lt;br /&gt;
&lt;br /&gt;
You need to redo open new year procedure for the problematic years, where Recreate opening balances(which is part of opennewyear.subs) should fix the issue.&lt;br /&gt;
&lt;br /&gt;
=== Redo Open New Year procedure ===&lt;br /&gt;
&lt;br /&gt;
1. Edit the Company file in Maintenance mode by running &#039;ED COMPANIES &amp;lt;COMPANY CODE&amp;gt;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :ED COMPANIES A                                                            │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. In the &#039;Year&#039; field, which is the second field, enter the year prior to the year that you need to run Open New year for.&lt;br /&gt;
&lt;br /&gt;
The &#039;Year&#039; field displays the current financial year of the company.&lt;br /&gt;
&lt;br /&gt;
For example, if the problem is with opening balance of 2019, change the &#039;Year&#039; field to 12/2018. &lt;br /&gt;
 ╔══════════════════════════════════════┤A├═════════════════════════════════════╗&lt;br /&gt;
 ║Company name A                                                                ║&lt;br /&gt;
 ║1/19   &amp;lt;b&amp;gt;&amp;lt;---(Change to 12/18)&amp;lt;/b&amp;gt;                                                  ║&lt;br /&gt;
 ║AED                                                                           ║&lt;br /&gt;
 ║EXDIⁿEXDI                                                                     ║&lt;br /&gt;
&lt;br /&gt;
3. In NEOSYS, open new year 2019 from Menu -&amp;gt; Finance -&amp;gt; Maintenance -&amp;gt; Open New Year. &lt;br /&gt;
&lt;br /&gt;
4. In Maintenance mode, run CHK.OB and include a few prior years as well, to see if all balances are fine.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3597</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3597"/>
		<updated>2019-02-20T06:19:27Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Re-running Open New Year procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cross-Year Cross Check Balance Warnings ==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
!!! WARNING This is a dangerous procedure. IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts. This can be caused by:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Meaning of other messages ===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
=== Re-enabling CCB warning mail notifications ===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX ==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C ] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
=== Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;quot;*MEVEJ*FZ&amp;quot;  L=232 V=REC*461*FZ 05/07/09 B=447 &amp;quot;MEVEJ&amp;quot;&lt;br /&gt;
  different account &amp;quot;ADVOPME&amp;quot;&lt;br /&gt;
                     Delete the index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│None&lt;br /&gt;
  3│Yes&lt;br /&gt;
  4│All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════════════════════════════╗&lt;br /&gt;
║  &amp;quot;*VIV*N&amp;quot;  L=458 V=IN*2012/1170*N 29/05/12 missing voucher      ║&lt;br /&gt;
║                     Delete the index entry?                     ║&lt;br /&gt;
║───┬─────────────────────────────────────────────────────────────║&lt;br /&gt;
║  1&amp;gt;No                                                           ║&lt;br /&gt;
║  2│Yes                                                          ║&lt;br /&gt;
║  3│None                                                         ║&lt;br /&gt;
║  4│All                                                          ║&lt;br /&gt;
╚═════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Different Date - Correct index entry? ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*OMD*AP&amp;quot;  L=115 V=IN*2013/350*AP 31/03/13 B=1159&lt;br /&gt;
  different date &amp;quot;14/03/13&amp;quot;&lt;br /&gt;
                     Correct index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│Yes&lt;br /&gt;
  3│Correct None&lt;br /&gt;
  4│Correct All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Checking if a voucher is fully posted ==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
=== First line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
=== Last line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
=== First and last lines are posted ===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
== Voucher number missing from posted batches ==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
Run the following command in maintenance mode and check for errors. &lt;br /&gt;
 &lt;br /&gt;
 F5&lt;br /&gt;
 UTIL&lt;br /&gt;
 CHK.VOUCHERS  &lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
== [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS ] ==&lt;br /&gt;
&lt;br /&gt;
== Using CHK.POST to fix some types of Cross Check Balance (CCB) errors ==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors &lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Re-running_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
== B10 &amp;amp; B12 Errors ==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals which are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
See [[Procedures#Amending.2FReposting_Journal_Entries|Procedure for Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
To repost a batch, edit the journal on the Journal Entry/Query page and save. Click OK for the prompt “OK to repost now?”.&lt;br /&gt;
== Editing and Reposting Vouchers ==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
=== UNPOST ===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
=== EDIT ===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
=== REPOST ===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Removing strange outstanding items on accounts that have balance of zero ==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reinstating Open Item Statements after Clear Open Items ==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
=== 1. Check, solve, record all existing cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
=== 3. Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Check for cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Speeding up CHK.VOUCHERS CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
== Check steps of each CHK program ==&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CONTROLS ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VOUCHERS ===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BATCHES ===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VINDEX ===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.OB ===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BALANCES ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CHARTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ACCOUNTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
== Re-running Open New Year procedure ==&lt;br /&gt;
&lt;br /&gt;
1. Edit the Company file in Maintenance mode by running &#039;ED COMPANIES &amp;lt;COMPANY CODE&amp;gt;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :ED COMPANIES A                                                            │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. In the &#039;Year&#039; field, which is the second field, enter the year prior to the year that you need to run Open New year for.&lt;br /&gt;
&lt;br /&gt;
The &#039;Year&#039; field displays the current financial year of the company e.g. &#039;1/19&#039;.&lt;br /&gt;
 ╔══════════════════════════════════════┤A├═════════════════════════════════════╗&lt;br /&gt;
 ║Company name A                                                                ║&lt;br /&gt;
 ║1/19   &amp;lt;b&amp;gt;&amp;lt;---(Change to 1/18)&amp;lt;/b&amp;gt;                                                   ║&lt;br /&gt;
 ║AED                                                                           ║&lt;br /&gt;
 ║EXDIⁿEXDI                                                                     ║&lt;br /&gt;
&lt;br /&gt;
3. In NEOSYS, open new year 2019 from Menu -&amp;gt; Finance -&amp;gt; Maintenance -&amp;gt; Open New Year. &lt;br /&gt;
&lt;br /&gt;
4. In Maintenance mode, run CHK.OB to see if all balances are fine. To be careful, include a few prior years as well in this check.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :chk.ob                                                                    │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╔══════════════════════════════════════════════════════╗▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║                   Years to check?                    ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║ (0 or starting year for all, but only checks forward ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║           ie ob v cb not backward cb v ob)           ║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒║&amp;lt;15 16 17 18 19                                      &amp;gt;║▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒╚══════════════════════════════════════════════════════╝▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3596</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3596"/>
		<updated>2019-02-19T08:13:07Z</updated>

		<summary type="html">&lt;p&gt;Joel: /* Using CHK.POST to fix some types of Cross Check Balance (CCB) errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cross-Year Cross Check Balance Warnings ==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
!!! WARNING This is a dangerous procedure. IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts. This can be caused by:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Meaning of other messages ===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
=== Re-enabling CCB warning mail notifications ===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX ==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C ] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
=== Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;quot;*MEVEJ*FZ&amp;quot;  L=232 V=REC*461*FZ 05/07/09 B=447 &amp;quot;MEVEJ&amp;quot;&lt;br /&gt;
  different account &amp;quot;ADVOPME&amp;quot;&lt;br /&gt;
                     Delete the index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│None&lt;br /&gt;
  3│Yes&lt;br /&gt;
  4│All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════════════════════════════╗&lt;br /&gt;
║  &amp;quot;*VIV*N&amp;quot;  L=458 V=IN*2012/1170*N 29/05/12 missing voucher      ║&lt;br /&gt;
║                     Delete the index entry?                     ║&lt;br /&gt;
║───┬─────────────────────────────────────────────────────────────║&lt;br /&gt;
║  1&amp;gt;No                                                           ║&lt;br /&gt;
║  2│Yes                                                          ║&lt;br /&gt;
║  3│None                                                         ║&lt;br /&gt;
║  4│All                                                          ║&lt;br /&gt;
╚═════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Different Date - Correct index entry? ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*OMD*AP&amp;quot;  L=115 V=IN*2013/350*AP 31/03/13 B=1159&lt;br /&gt;
  different date &amp;quot;14/03/13&amp;quot;&lt;br /&gt;
                     Correct index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│Yes&lt;br /&gt;
  3│Correct None&lt;br /&gt;
  4│Correct All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Checking if a voucher is fully posted ==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
=== First line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
=== Last line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
=== First and last lines are posted ===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
== Voucher number missing from posted batches ==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
Run the following command in maintenance mode and check for errors. &lt;br /&gt;
 &lt;br /&gt;
 F5&lt;br /&gt;
 UTIL&lt;br /&gt;
 CHK.VOUCHERS  &lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
== [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS ] ==&lt;br /&gt;
&lt;br /&gt;
== Using CHK.POST to fix some types of Cross Check Balance (CCB) errors ==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors &lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must [[Troubleshooting_NEOSYS_Finance_System#Re-running_Open_New_Year_procedure| rerun the Open New Year procedure]] for all prior years.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
== B10 &amp;amp; B12 Errors ==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals which are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
See [[Procedures#Amending.2FReposting_Journal_Entries|Procedure for Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
To repost a batch, edit the journal on the Journal Entry/Query page and save. Click OK for the prompt “OK to repost now?”.&lt;br /&gt;
== Editing and Reposting Vouchers ==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
=== UNPOST ===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
=== EDIT ===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
=== REPOST ===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Removing strange outstanding items on accounts that have balance of zero ==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reinstating Open Item Statements after Clear Open Items ==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
=== 1. Check, solve, record all existing cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
=== 3. Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Check for cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Speeding up CHK.VOUCHERS CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
== Check steps of each CHK program ==&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CONTROLS ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VOUCHERS ===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BATCHES ===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VINDEX ===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.OB ===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BALANCES ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CHARTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ACCOUNTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
== Re-running Open New Year procedure ==&lt;br /&gt;
&lt;br /&gt;
1. Edit Company file in Maintenance mode by running &#039;ED COMPANIES &amp;lt;COMPANY CODE&amp;gt;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :ED COMPANIES A                                                            │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. The &#039;Year&#039; field will have the current financial year of the Company entered e.g. &#039;1/19&#039;. Change the year to the prior year &#039;1/18&#039;.&lt;br /&gt;
 ╔══════════════════════════════════════┤A├═════════════════════════════════════╗&lt;br /&gt;
 ║Company name A                                                                ║&lt;br /&gt;
 ║&amp;lt;b&amp;gt;1/19&amp;lt;/b&amp;gt;                                                                          ║&lt;br /&gt;
 ║AED                                                                           ║&lt;br /&gt;
 ║EXDIⁿEXDI                                                                     ║&lt;br /&gt;
&lt;br /&gt;
3. In NEOSYS, open new year 2019 from Menu -&amp;gt; Finance -&amp;gt; Maintenance -&amp;gt; Open New Year. &lt;br /&gt;
&lt;br /&gt;
4. Run CHK.OB to see if all okay with the balances.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3595</id>
		<title>Troubleshooting NEOSYS Finance System</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Troubleshooting_NEOSYS_Finance_System&amp;diff=3595"/>
		<updated>2019-02-19T08:10:19Z</updated>

		<summary type="html">&lt;p&gt;Joel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Finance Maintenance Mode fixing tools==&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the instructions below before you proceed with fixing CCB errors with any check/fix:&lt;br /&gt;
&lt;br /&gt;
Do not do mass fixes eg “Add/Delete ALL xyz” options from a year in the past eg 2007 while only checking accounts for 2009. You must CHECK EVERYTHING THAT YOU REQUEST TO BE FIXED.&lt;br /&gt;
&lt;br /&gt;
The various fixing tools like CHK.ALLOC etc are impossible to make safe in all circumstances so if you don’t really know what you are doing you assume the WORST not the BEST with these fixing tools. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;CHECK EVERYTHING YOU “FIX”!!!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not go back risking fixes in prior years for which Finance has been closed, unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
While checking/fixing a CCB error, check and fix any other errors if present to avoid CCB&#039;s in future.&lt;br /&gt;
&lt;br /&gt;
After doing check/fixes, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE OR EVEN REQUIRE A RESTORE OF A BACKUP CAUSING LOSS OF MANY DAYS WORK TO THE CLIENT&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cross-Year Cross Check Balance Warnings ==&lt;br /&gt;
&lt;br /&gt;
When you use Opening Balance Journals, NEOSYS does not guarantee that the opening balances of one year match the closing balance of a prior year. This occurs quite normally and commonly occurs in the situations described below.&lt;br /&gt;
&lt;br /&gt;
Regardless of the cause, in such cases, any statement or ledger account of movements (not open items) that crosses the disjoint years will have a &amp;quot;cross check balance&amp;quot; note at the bottom of the account. A cross check balance warning is just a warning that the closing balance of the account (as calculated from a simple total of the opening balance in the old year plus all transactions) does not agree with the actual account balance according to the trial balance in the new year.&lt;br /&gt;
&lt;br /&gt;
If the opening balance of the account in the second year is not equal to the closing balance in the prior year then logically the two years cannot be viewed as a single continuous account and agree with the trial balance.&lt;br /&gt;
&lt;br /&gt;
===Posting into years prior to Opening Balance===&lt;br /&gt;
&lt;br /&gt;
When you start up a company in one year using Opening Balance Journals then the closing balances of the prior years remain zero. If you thereafter start to post into prior years, the closing balances of those years will remain in disagreement with the opening balance of the following years.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to obtain cross-year accounts between years, and you wish such account&#039;s balances to agree with the later year trial balance, then you must arrange for the closing balances of the prior years to agree with the opening balances of the following years.&lt;br /&gt;
&lt;br /&gt;
To do this, ensure that any Opening Balance Journals that are posted into any particular year are also posted into all prior financial years of interest, or better, post them directly into the earliest year and any following years will automatically be updated as normal.&lt;br /&gt;
&lt;br /&gt;
===Opening Balance Journals===&lt;br /&gt;
&lt;br /&gt;
If you post Opening Balance Journals into one year for any reason, they are not posted into prior years. Therefore the opening balances of the amended year become different from the prior year.&lt;br /&gt;
&lt;br /&gt;
In this respect, auditors amendments to opening balances should be posted as normal journals in the final period of the prior year and not as Opening Balance Journals in the current year.&lt;br /&gt;
&lt;br /&gt;
===Producing Historical Accounts===&lt;br /&gt;
&lt;br /&gt;
As mentioned above, if you post Opening Balance Journals into one year, they are not posted into prior years. For such accounts, NEOSYS will show Cross Check Balance warning if you take a ledger account or statement of account report across multiple years including years prior to the Opening Balance Journal posting. e.g. if an account has opening balance entry in 2011, and no entries in 2010, then ledger account report with period setting 2010 - 2018 will show Cross Check Balance warning.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To avoid this Cross Check Balance warning, in the report period settings exclude years prior to the Opening Balance Journal posting, since the account anyway has no entries in the prior years.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warnings using CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
Cross Check Balance Message on an account means the total of the outstanding items in an account does not match the balance as in the movement - typically the outstanding shows a higher balance than the balance in the movement, but might not always be the case. The reasons why this may happen is because of the following:&lt;br /&gt;
&lt;br /&gt;
*Reposting journals containing allocated items (which NEOSYS doesnt handle in all circumstances)&lt;br /&gt;
*Failing to clear open item accounts on a regular basis where the number of postings is high&lt;br /&gt;
&lt;br /&gt;
This procedure only applies to CCB on the outstanding item type statements which are the more common problem. CCB on movement accounts are rarer, more serious and cannot be fixed by this procedure.&lt;br /&gt;
&lt;br /&gt;
This might not always fix the CCB warnings and hence you will need to escalate to the programmer.&lt;br /&gt;
&lt;br /&gt;
!!! WARNING This is a dangerous procedure. IF YOU DO NOT FOLLOW INSTRUCTIONS CAREFULLY YOU CAN END UP MODIFYING AUDITED ACCOUNTS AND AUDITORS/ACCOUNTANTS AND IT WILL TAKE DAYS FOR PROGRAMMERS TO TRY AND CORRECT THE DAMAGE YOU CAUSE!&lt;br /&gt;
&lt;br /&gt;
This can be run while other users are online.&lt;br /&gt;
&lt;br /&gt;
DO THIS ON TESTDATA FIRST&lt;br /&gt;
&lt;br /&gt;
While running the command, monitor the lines coming up on the screen for any warnings. In case you make any changes and select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot; for any message, you should re run the command again until clean.&lt;br /&gt;
&lt;br /&gt;
This exact procedure restores vouchers missing from open item accounts. This can be caused by:&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 UTIL (nothing happens at this stage as its a background process and gives you access to the next command)&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
 Minimum voucher year.period?&lt;br /&gt;
&lt;br /&gt;
Generally go back as little as possible to cover vouchers that might be missing from O/I accounts.&lt;br /&gt;
&lt;br /&gt;
 Which account do you want or blank for all?&lt;br /&gt;
&lt;br /&gt;
You MUST search for all accounts. Entering one account WILL NOT WORK since it will only check vouchers already on the open item accounts and we are looking for those that are missing.&lt;br /&gt;
&lt;br /&gt;
IGNORE OR RESPOND NEGATIVELY to all messages or questions EXCEPT the following:&lt;br /&gt;
&lt;br /&gt;
 Missing from O/I index?&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Yes&amp;quot; or &amp;quot;Yes to all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Meaning of other messages ===&lt;br /&gt;
&lt;br /&gt;
1. The following message pair does not usually cause cross check balances and indicates that they have cancelled some foreign currency allocation since allocation should not cause and change in rate.&lt;br /&gt;
&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation base outstanding -7326.15 expected -6762.60 (-563.550,.08333333)&lt;br /&gt;
 IN*175510*C 20/01/08 ALMA 4/2 REC*4440*C allocation changed exchange rate from .08333333 to .07692308&lt;br /&gt;
&lt;br /&gt;
2. For the following message, you MUST choose &amp;quot;Leave all&amp;quot; , otherwise risk damage to closed audited prior year accounts:&lt;br /&gt;
&lt;br /&gt;
 Account numbers do not agree. Delete the allocation?&lt;br /&gt;
&lt;br /&gt;
3. For the following message, choose &amp;quot;Add it to other voucher&amp;quot; ONLY for the voucher/account that needs fixing. Do not choose &amp;quot;Add all&amp;quot; unless you know each and every allocation that will be added, as it could cause problems such as allocating to vouchers that are already allocated i.e. causing double allocations. You MUST check everything that you request to be fixed.&lt;br /&gt;
&lt;br /&gt;
 Allocation is missing ?&lt;br /&gt;
&lt;br /&gt;
4. For the following message, choose &amp;quot;Skip further Warnings&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 Amounts do not agree - please fix manually&lt;br /&gt;
&lt;br /&gt;
=== Re-enabling CCB warning mail notifications ===&lt;br /&gt;
NEOSYS is pre-configured to send out email notifications (to the same group of people who receive the backup alerts) when a Cross Check Balance (CCB) warning is found for the first time on an account. That means there will be only 1 email notification irrespective of the times the warning occurs until it is fixed.&lt;br /&gt;
&lt;br /&gt;
After the CCB is fixed or after clearing or otherwise eliminating the same, you need to delete the CCB file in D:\neosys\neosys to re-enable NEOSYS to resend notification by email after it discovers CCB warnings on that account again in the future.&lt;br /&gt;
&lt;br /&gt;
== Fixing &amp;quot;Cross Check Balance&amp;quot; warning using CHK.VINDEX ==&lt;br /&gt;
&lt;br /&gt;
YOU MUST READ AND APPLY THE GENERAL INSTRUCTIONS WRITTEN FOR CHK.ALLOC AS WELL FOR CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
This program can fix a few CCB warnings that CHK.ALLOC cannot - including some in balance forward type accounts (ie not open item/outstanding item accounts) .&lt;br /&gt;
&lt;br /&gt;
Not all the possible fixes are described here and any messages which are not described here should be responded to NEGATIVELY!&lt;br /&gt;
&lt;br /&gt;
CCB error for [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_Error:_.22A.2Fc._.3F.3F.3F.22_message_in_account_of_outstanding_items Wrong A/C ] can be fixed by running CHK.VINDEX&lt;br /&gt;
&lt;br /&gt;
=== Different account - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;quot;*MEVEJ*FZ&amp;quot;  L=232 V=REC*461*FZ 05/07/09 B=447 &amp;quot;MEVEJ&amp;quot;&lt;br /&gt;
  different account &amp;quot;ADVOPME&amp;quot;&lt;br /&gt;
                     Delete the index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│None&lt;br /&gt;
  3│Yes&lt;br /&gt;
  4│All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Missing Voucher - Delete the index entry?===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════════════════════════════╗&lt;br /&gt;
║  &amp;quot;*VIV*N&amp;quot;  L=458 V=IN*2012/1170*N 29/05/12 missing voucher      ║&lt;br /&gt;
║                     Delete the index entry?                     ║&lt;br /&gt;
║───┬─────────────────────────────────────────────────────────────║&lt;br /&gt;
║  1&amp;gt;No                                                           ║&lt;br /&gt;
║  2│Yes                                                          ║&lt;br /&gt;
║  3│None                                                         ║&lt;br /&gt;
║  4│All                                                          ║&lt;br /&gt;
╚═════════════════════════════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
=== Different Date - Correct index entry? ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;*OMD*AP&amp;quot;  L=115 V=IN*2013/350*AP 31/03/13 B=1159&lt;br /&gt;
  different date &amp;quot;14/03/13&amp;quot;&lt;br /&gt;
                     Correct index entry?&lt;br /&gt;
───┬─────────────────────────────────────────────────────────────&lt;br /&gt;
  1&amp;gt;No&lt;br /&gt;
  2│Yes&lt;br /&gt;
  3│Correct None&lt;br /&gt;
  4│Correct All&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select Yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Checking if a voucher is fully posted ==&lt;br /&gt;
&lt;br /&gt;
Sometimes due to some kind of system error a batch is not fully posted then one voucher in the batch may be half-posted. Any remaining vouchers in the batch (after/below) will almost certainly be completely unposted.&lt;br /&gt;
&lt;br /&gt;
To see if this has happened, first identify which voucher is problematic and then check if the first and last lines of the voucher are correctly posted by seeing if the voucher appears in their respective ledger accounts.&lt;br /&gt;
&lt;br /&gt;
=== First line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line does not appear then probably the whole voucher is not posted at all.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher may successfully solve the problem but see [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Reposting_a_Batch_in_Journal_Entry Reposting a batch] and [http://techwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Fixing_.22Cross_Check_Balance.22_warnings_using_CHK.ALLOC Cross Check Balance] to avoid potential issues in reposting.&lt;br /&gt;
&lt;br /&gt;
=== Last line is not posted ===&lt;br /&gt;
&lt;br /&gt;
If the first line appears but the last line does not appear as posted in its ledger account then the voucher is &amp;quot;HALF POSTED&amp;quot;. This breaks the all important law of double entry accounting and the trial balance will not balance.&lt;br /&gt;
&lt;br /&gt;
Reposting the voucher will not solve the problem because the system does not take into account that the voucher is half posted when it is reversing the original voucher during the repost.&lt;br /&gt;
&lt;br /&gt;
=== First and last lines are posted ===&lt;br /&gt;
&lt;br /&gt;
In the case there is no problem. The voucher is fully posted and the half-posted issue is not present&lt;br /&gt;
&lt;br /&gt;
== Voucher number missing from posted batches ==&lt;br /&gt;
&lt;br /&gt;
In some cases voucher numbers are missing from posted batches.&lt;br /&gt;
&lt;br /&gt;
There could be several reasons why the voucher numbers are missing. The voucher number is generated but does not reflect on the batch or the voucher number did not get generated at the time of posting.  We are still investigating the root cause to this problem.&lt;br /&gt;
&lt;br /&gt;
For both cases, take a ledger print out for the account the voucher number is missing and check if the voucher number is present in the ledger print out.&lt;br /&gt;
&lt;br /&gt;
===1. The entries in the batch reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the entries reflect in the ledger print out, open the voucher file and investigate why the voucher number did not appear when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will appear in the batch when the batch is re-saved. The same voucher numbers appears as it was in the voucher file.&lt;br /&gt;
&lt;br /&gt;
===2. The entry in the batch does not reflect on the ledger print===&lt;br /&gt;
&lt;br /&gt;
If the voucher file is not present in the ledger print out, open the batch and investigate why the voucher number did not generate when the batch was posted.&lt;br /&gt;
&lt;br /&gt;
The voucher numbers will be generated when the batch is re-saved but not in sequence number. Notify clients the batches are re-saved and the voucher number will not be in sequence.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
Run CHK.VOUCHERS and check for errors. Then re-save the batch.&lt;br /&gt;
&lt;br /&gt;
The authorisation to re-save a batch is restricted to NEOSYS and a few client users at the moment. &lt;br /&gt;
&lt;br /&gt;
====Running CHK.VOUCHERS====&lt;br /&gt;
Run the following command in maintenance mode and check for errors. &lt;br /&gt;
 &lt;br /&gt;
 F5&lt;br /&gt;
 UTIL&lt;br /&gt;
 CHK.VOUCHERS  &lt;br /&gt;
&lt;br /&gt;
When running CHK.VOUCHERS, respond to prompts as shown below. Generally respond negatively to prompts which are not specified below, but in TEST datasets you can experiment by responding positively.&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Missing from batch but matching ref with no voucher can be found. Add it?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;No&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Delete empty unposted / deleted voucher ?&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Yes or All&amp;quot; for the following message:&lt;br /&gt;
&lt;br /&gt;
  Account “ XYZ” type is “ COST” , but the voucher analysis code “28*1*COMPANYCODE*XYZ” is type “ BILL/INCOME” . &lt;br /&gt;
  Fix voucher analysis code to be COST and repost? :----  YES/ALL&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;All&amp;quot; for the following message. This is to keep the file &amp;quot;clean&amp;quot; of messages but does not actually cause any changes in the rest of the system. &lt;br /&gt;
&lt;br /&gt;
 Account &amp;quot;XYZ&amp;quot; is &amp;quot;JOBS&amp;quot;, but the voucher analysis code &amp;quot;28*1*clientcode**marketcode*suppliercode*mediatypecode&amp;quot; is &amp;quot;MEDIA&amp;quot;&lt;br /&gt;
 Fix voucher analysis code is to be JOBS and repost?&lt;br /&gt;
&lt;br /&gt;
After doing check/fix, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
== [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Why_does_an_outstanding_not_appear_while_taking_a_ledger_printout Fixing CCB errors that do not get fixed with CHK.ALLOC, CHK.VINDEX or CHK.VOUCHERS ] ==&lt;br /&gt;
&lt;br /&gt;
== Using CHK.POST to fix some types of Cross Check Balance (CCB) errors ==&lt;br /&gt;
&lt;br /&gt;
CHK.POST can be used to fix/recreate the BALANCES files. This could be useful in the following cases:&lt;br /&gt;
&lt;br /&gt;
#Some stubborn Cross Check Balance errors &lt;br /&gt;
#BALANCES file is damaged (use [[Handling_damaged_files#Using_FIXFILE_to_repair_corrupted_files|FIXFILE]] first)&lt;br /&gt;
&lt;br /&gt;
Use it strictly only after ALL other errors have been fixed using the usual CHK programs&lt;br /&gt;
&lt;br /&gt;
*CHK.VOUCHERS&lt;br /&gt;
*CHK.VINDEX&lt;br /&gt;
*CHK.ALLOC&lt;br /&gt;
*CHK.BATCHES&lt;br /&gt;
*CHK.BALANCES&lt;br /&gt;
*CHK.ACCOUNTS&lt;br /&gt;
*CHK.CHARTS&lt;br /&gt;
*CHK.CONTROLS&lt;br /&gt;
*CHK.OB (As of 12/2/19: Only Bates and AdlineD can parameters be entered in UI, whereas in TEST and other clients, editing of program code must be done to tailor the program to check what you want. E.g a period)&lt;br /&gt;
&lt;br /&gt;
[[Troubleshooting_NEOSYS_Finance_System#Check_steps_of_each_CHK_program|What checks are performed on in each CHK routine]]&lt;br /&gt;
&lt;br /&gt;
This program adjusts the balances in the trial balance reports (which also show in the “Cross Check Balance phrase on the Detailed Ledger Accounts) to match the vouchers found in the voucher file. Note that CHK.ALLOC and CHK.VINDEX have no effect on these figures and instead amend the transactions shown on the Detailed Ledger Account - and thereby the totals on the same report so that they agree with the CCB amount and thereby the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Most CCB in NEOSYS are related to problems on outstanding item accounts and are fixed with the CHK.ALLOC program. More rarely, problems occur in the movement accounts and are fixed with the CHK.VINDEX program - although this can also fix some errors in outstanding item statements. Even more rarely will the problem be on the Trial Balances/CCB balances and can be fixed with this CHK.POST procedure&lt;br /&gt;
&lt;br /&gt;
WARNING! This solution may make things worse so don’t use on live data unless EXHAUSTIVELY checked that everything is ok on test data first.&lt;br /&gt;
&lt;br /&gt;
WARNING! Don’t go back and “correct” previous years which have been closed because auditors expect them never to change (EVEN IF THEY ARE WRONG!) and it can be impossible to put them back “wrong” if you “correct” them.&lt;br /&gt;
&lt;br /&gt;
WARNING! If you correct previous years then you must rerun the Open New Year procedure for all prior years and this procedure is not documented and can only be run by programmers at the moment.&lt;br /&gt;
&lt;br /&gt;
#In maintenance mode press Alt+1&lt;br /&gt;
#Enter the range of periods that you want to check/adjust the trial balance for e.g. 1/9-7/9 for 1st Period of 2009 up to the 7th period of 2009.&lt;br /&gt;
#Press F9 and Esc&lt;br /&gt;
#Press F5 and type CHK.POST&lt;br /&gt;
#What stage to start at? Choose “Select Vouchers”&lt;br /&gt;
#Clear the updated balances file? Choose “Clear it”&lt;br /&gt;
#OK to Start? … OK&lt;br /&gt;
#If there are any discrepancies found between the Trial Balance Balances/CCB balances … and the Vouchers in the file you will get some fairly cryptic questions asking you, one by one, if you want to fix the balances.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
#It is advised that you only fix the balances which refer to the accounts that you are concerned about. You will find the account number buried in the cryptic questions referred to above.&lt;br /&gt;
#If you fix subsidiary account balances then MAKE SURE that you also fix the control accounts balances (if you are prompted).&lt;br /&gt;
&lt;br /&gt;
== B10 &amp;amp; B12 Errors ==&lt;br /&gt;
&lt;br /&gt;
The error might be displayed as follows :&lt;br /&gt;
&lt;br /&gt;
 ERROR NO: B10 IN DAYBOOK.SUBSX AT 133&lt;br /&gt;
 Variable has not been assigned a value. Zero used.&lt;br /&gt;
&lt;br /&gt;
This error should have said something like : &amp;quot;The ledgers are closed up to the period you have just tried to post&amp;quot; OR &amp;quot;Financial Year 2011 must be opened before you post into it.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Try again and you would see the exact message if you have not opened the new year as yet.&lt;br /&gt;
&lt;br /&gt;
==Fixing &amp;quot;Index has been deleted&amp;quot; message==&lt;br /&gt;
&lt;br /&gt;
===Error Message===&lt;br /&gt;
&lt;br /&gt;
 The index record &amp;quot;TEXT.XREF*abc*xyz&amp;quot;&lt;br /&gt;
 has been deleted.&lt;br /&gt;
 The index for &amp;quot;TEXT.XREF&amp;quot;&lt;br /&gt;
 should be rebuilt.&lt;br /&gt;
&lt;br /&gt;
===Solution===&lt;br /&gt;
&lt;br /&gt;
[http://techwiki.neosys.com/index.php/Handling_damaged_files#Fixing_damaged_index_files_.28names_starting_with_.21.29 Perform REINDEXVOUCHERS in maintenance mode].&lt;br /&gt;
&lt;br /&gt;
==Reposting a Batch in Journal Entry==&lt;br /&gt;
The authorisation to repost a batch is restricted to NEOSYS and a few client users at the moment. Reposting a batch will repost all the vouchers in the batch.&lt;br /&gt;
&lt;br /&gt;
See [http://userwiki.neosys.com/index.php/Troubleshooting_NEOSYS_Finance_System#Correcting_mistakes_in_postings Correcting mistakes in postings] for NEOSYS policy for correcting mistakes in journal postings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Reposting journals which are already allocated will create cross check balance errors, so before reposting, any allocations should be de-allocated to avoid these errors.&lt;br /&gt;
&lt;br /&gt;
Reposting a batch should be done in TEST dataset first. After reposting, all accounts should be tested for cross check balance errors. Do this by taking ledger printout for the whole year for all accounts.&lt;br /&gt;
&lt;br /&gt;
See [[Procedures#Amending.2FReposting_Journal_Entries|Procedure for Reposting Journal Entries]]&lt;br /&gt;
&lt;br /&gt;
To repost a batch, edit the journal on the Journal Entry/Query page and save. Click OK for the prompt “OK to repost now?”.&lt;br /&gt;
== Editing and Reposting Vouchers ==&lt;br /&gt;
&lt;br /&gt;
WARNING: Can cause effectively irreversible damage to the finance database requiring restoration of a suitable backup causing loss of data and/or total loss of database if backup not available.&lt;br /&gt;
&lt;br /&gt;
It is almost impossible to edit and repost vouchers and keep the audit trail correct so this procedure is of limited use. The stages are UNPOST, EDIT, REPOST.&lt;br /&gt;
&lt;br /&gt;
Must be done on test data and advisable to run CHK.VOUCHERS afterwards.&lt;br /&gt;
&lt;br /&gt;
=== UNPOST ===&lt;br /&gt;
 F5&lt;br /&gt;
 UNPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
*XXX is the voucher type/journal code&lt;br /&gt;
*YYY is the voucher number&lt;br /&gt;
*ZZZ is the company code&lt;br /&gt;
&lt;br /&gt;
Any problems with the voucher might generate messages but the problems will be reverse the problems which must have occurred when posting the voucher in the first place.&lt;br /&gt;
&lt;br /&gt;
=== EDIT ===&lt;br /&gt;
 F5&lt;br /&gt;
 ED VOUCHERS XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
For example, if due to a neosys system error, the ZZZ999 suspense account has been used instead of some missing internal system accounts like exchange gain/loss accounts then you can insert the correct account.&lt;br /&gt;
&lt;br /&gt;
Change line 8 (which contains the account numbers) from:&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²²&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 REZO²REZO²BMDI²BMDI²EXDI²EXDI&lt;br /&gt;
&lt;br /&gt;
where EXDI is the ORIGINAL A/c No. of the Exchange Difference A/c.&lt;br /&gt;
&lt;br /&gt;
F9, ESC to save and exit&lt;br /&gt;
&lt;br /&gt;
=== REPOST ===&lt;br /&gt;
&lt;br /&gt;
 F5&lt;br /&gt;
 REPOST XXX*YYYYY*ZZZ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Removing strange outstanding items on accounts that have balance of zero ==&lt;br /&gt;
&lt;br /&gt;
Sometimes running CHK.ALLOC on periods too far back in time causes old items to be incorrectly resurrected and become outstanding.&lt;br /&gt;
&lt;br /&gt;
If the account balance is zero in the current period and has been for some years then you can simply delete all outstanding items.&lt;br /&gt;
&lt;br /&gt;
Assuming the (original) account number is AAAA and the company code is CC, in maintenance mode, F5.&lt;br /&gt;
&lt;br /&gt;
 DELETE VOUCHER.INDEX *AAAA*CC&lt;br /&gt;
&lt;br /&gt;
It should say &amp;quot;1 Item(s) deleted&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reinstating Open Item Statements after Clear Open Items ==&lt;br /&gt;
&lt;br /&gt;
WARNING: DO THIS PROCESS ON TEST DATA FIRST TO VERIFY THAT IT DOES NOT CAUSE CROSS CHECK BALANCE ERRORS&lt;br /&gt;
&lt;br /&gt;
WARNING: THIS PROCESS MAY CAUSE CROSS CHECK BALANCE ERRORS BY REINSTATING &amp;quot;ANCIENT CORRUPT VOUCHERS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;CHECK BACK&amp;quot; AS FEW YEARS AS NEEDED TO INCLUDE ALL VOUCHERS THAT COULD BE OPEN/OUTSTANDING AT THE DESIRED PERIOD.&lt;br /&gt;
&lt;br /&gt;
It is not easy to know how far to &amp;quot;check back&amp;quot; for open items so go back two years initially unless it is known that there may be items outstanding from even earlier years.&lt;br /&gt;
&lt;br /&gt;
=== 1. Check, solve, record all existing cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Restoring open items may create cross check balance errors so first you need to fix all EXISTING cross check balance errors in the database.&lt;br /&gt;
&lt;br /&gt;
Do not proceed to the next step until this step is complete otherwise you will have no idea what problems were created by CHK.ALLOC and what problems were in the database before.&lt;br /&gt;
&lt;br /&gt;
Expect no sympathy from programmers if you ignore this or fail to work on testdata first.&lt;br /&gt;
&lt;br /&gt;
First print ***ALL*** open item ledger accounts to check for existing cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
Correct all &amp;quot;cross check balances&amp;quot; using the usual procedures to do so.&lt;br /&gt;
&lt;br /&gt;
Note that cross check balances are unavoidable on some *extremely large* open item accounts. This does not mean that you can ignore cross check balances on merely large accounts. They must be fixed.&lt;br /&gt;
&lt;br /&gt;
Save copies of the detailed ledger accounts of any *extremely large&amp;quot; open items accounts that you have not fixed their cross check balances.&lt;br /&gt;
&lt;br /&gt;
=== 2. Edit back the Company File &amp;quot;cleared-upto period&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Complete this step quickly if users are working online - in order not to lock the company file for longer than it takes to change the &amp;quot;cleared upto period&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode,  press F5. example company code X. Do this for all companies that need to.&lt;br /&gt;
&lt;br /&gt;
 ED COMPANIES X&lt;br /&gt;
&lt;br /&gt;
change line 17 to be the last period (YYMM) desired to have been cleared.&lt;br /&gt;
&lt;br /&gt;
DONT add or delete any lines!&lt;br /&gt;
&lt;br /&gt;
F9, Esc&lt;br /&gt;
&lt;br /&gt;
=== 3. Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
This process can be run while users are working since there is a only a very slight chance that they will be posting the same account at the time that the program is updating its open item voucher index.&lt;br /&gt;
&lt;br /&gt;
In maintenance mode press F5&lt;br /&gt;
&lt;br /&gt;
 CHK.ALLOC&lt;br /&gt;
&lt;br /&gt;
Minimum is how far to go back. See explanation above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════════════════╗&lt;br /&gt;
║ Minimum voucher year.period to check? ║&lt;br /&gt;
║              (0 for all)              ║&lt;br /&gt;
║&amp;lt;200801                               &amp;gt;║&lt;br /&gt;
╚═══════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which account do you want? PRESS ESC (or Enter+Esc)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═════════════════════════════════════════╗&lt;br /&gt;
║       Which account do you want ?       ║&lt;br /&gt;
║                                         ║&lt;br /&gt;
║    Give the account number or name,     ║&lt;br /&gt;
║     or press [Enter] if not known.      ║&lt;br /&gt;
║ (separate multiple entries with spaces) ║&lt;br /&gt;
║&amp;lt;                                       &amp;gt;║&lt;br /&gt;
╚═════════════════════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add it? ... Choose &amp;quot;Yes to All&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
╔═══════════════════════════╗&lt;br /&gt;
║  Missing from O/I index   ║&lt;br /&gt;
║      Add it? (1.1KB)      ║&lt;br /&gt;
║───┬───────────────────────║&lt;br /&gt;
║  1│Yes                    ║&lt;br /&gt;
║  2│No                     ║&lt;br /&gt;
║  3&amp;gt;Yes to all &amp;lt;-THIS ONE  ║&lt;br /&gt;
║  4│No to all              ║&lt;br /&gt;
║  5│Yes to all *HAEX*FZ    ║&lt;br /&gt;
║  6│No to all *HAEX*FZ     ║&lt;br /&gt;
╚═══════════════════════════╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. Check for cross check balances ===&lt;br /&gt;
&lt;br /&gt;
Print ***ALL*** open item ledger accounts to check for any additional cross check balances in open item accounts.&lt;br /&gt;
&lt;br /&gt;
For speed, omit old WIPxx and ACCxx ledgers since their accounts are probably all closed.&lt;br /&gt;
&lt;br /&gt;
If you have any ADDITIONAL cross check balances compared to those recorded in step 1, then you can rerun step 3 and &amp;quot;check back&amp;quot; a little earlier. Try one year earlier at a time - to avoid the problem of reinstating &amp;quot;ancient corrupt vouchers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Speeding up CHK.VOUCHERS CHK.ALLOC ==&lt;br /&gt;
&lt;br /&gt;
When running the above programs takes time due to a large number of vouchers, then you can speed up the process by prebuilding a filter and using it on each invocation of the program. This filter is lost when you login again.&lt;br /&gt;
&lt;br /&gt;
For example, if you want to check vouchers for account numbers XXXX, YYYY and ZZZZ in financial period 2004.01 and onwards&lt;br /&gt;
&lt;br /&gt;
 SELECT VOUCHERS WITH YEAR_PERIOD GE &amp;quot;14.01&amp;quot; AND WITH ACCOUNT &amp;quot;XXXX&amp;quot; &amp;quot;YYYY&amp;quot; &amp;quot;ZZZZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wait for it to say &amp;quot;xxxx record(s) selected&amp;quot; briefly and then show blank command line again, then type&lt;br /&gt;
&lt;br /&gt;
 SAVELIST XYZ&lt;br /&gt;
&lt;br /&gt;
then each time just before you run CHK.VOUCHERS and CHK.ALLOC you can do the following to make them only look at the selected vouchers&lt;br /&gt;
&lt;br /&gt;
 GETLIST XYZ&lt;br /&gt;
&lt;br /&gt;
== Check steps of each CHK program ==&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ALLOC ===&lt;br /&gt;
&lt;br /&gt;
Check the VOUCHERS file&lt;br /&gt;
&lt;br /&gt;
Checks that allocations occur in pairs and that both sides refer to the same account number and are in the same financial period.&lt;br /&gt;
&lt;br /&gt;
Checks not allocated more than the amount/base amount on the voucher.&lt;br /&gt;
&lt;br /&gt;
Checks open items (not allocated or not fully allocated) exist in the open item records of the voucher index file.&lt;br /&gt;
&lt;br /&gt;
Checks that allocations do not cause a rate change since automatic revaluation is supposed to occur on allocation.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CONTROLS ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Check that the control account balances agree with the total of the balances of their subsidiary accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VOUCHERS ===&lt;br /&gt;
&lt;br /&gt;
Checks a lot of things in the VOUCHERS File.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BATCHES ===&lt;br /&gt;
&lt;br /&gt;
Check the BATCHES file (Journals File).&lt;br /&gt;
&lt;br /&gt;
Checks journal type, company code and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
For each voucher check that it is not missing and that its voucher period, posted/unposted state and Journal No. agree with that of the Journal.&lt;br /&gt;
&lt;br /&gt;
Checks amounts and base amounts are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks base currency entries have matching base amount entries ie if base is USD then amount is 100USD and base is 100 (101 or something else).&lt;br /&gt;
&lt;br /&gt;
For posted batches, checks A/c Nos. are valid.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.VINDEX ===&lt;br /&gt;
&lt;br /&gt;
Checks the VOUCHER.INDEX file.&lt;br /&gt;
&lt;br /&gt;
For each entry in the index ie line on a ledger account.&lt;br /&gt;
&lt;br /&gt;
Checks for ledger entries that have problems eg wrong account or missing voucher.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No, currency code, journal type and company code are valid.&lt;br /&gt;
&lt;br /&gt;
Checks open items indexes are only for open item accounts.&lt;br /&gt;
&lt;br /&gt;
Checks Journal type OB does not exist on movement indexes.&lt;br /&gt;
&lt;br /&gt;
Checks that reversed batches have matching reversal batch and vice versa.&lt;br /&gt;
&lt;br /&gt;
Checks vouchers exist.&lt;br /&gt;
&lt;br /&gt;
Checks that the voucher period, date, currency and A/c No. agrees with the index.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.OB ===&lt;br /&gt;
&lt;br /&gt;
Check the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks that opening balances are correct versus closing balances for accounts that are neither closed nor closing accounts.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.BALANCES ===&lt;br /&gt;
&lt;br /&gt;
Checks the BALANCES file.&lt;br /&gt;
&lt;br /&gt;
Checks A/c No., currency code, voucher type and company code are all valid.&lt;br /&gt;
&lt;br /&gt;
Checks balances are all numeric.&lt;br /&gt;
&lt;br /&gt;
Checks the decimal places of balances of base currency are not more than the standard number of base currency decimal places.&lt;br /&gt;
&lt;br /&gt;
Checks the base currency record references to all other currencies is alphabetical.&lt;br /&gt;
&lt;br /&gt;
Checks all non-base currency balance records are referenced on the base currency record.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.CHARTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the CHARTS and LEDGERS files.&lt;br /&gt;
&lt;br /&gt;
Checks A/c and Original A/c are valid ie exist in ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks any company and currency codes are valid.&lt;br /&gt;
&lt;br /&gt;
Checks the internal lookup tables in DEFINITIONS file are correct.&lt;br /&gt;
&lt;br /&gt;
=== Run CHK.ACCOUNTS ===&lt;br /&gt;
&lt;br /&gt;
Checks the ACCOUNTS file.&lt;br /&gt;
&lt;br /&gt;
Checks accounts exist in the Chart File.&lt;br /&gt;
&lt;br /&gt;
Checks the account records representing Account and Orig A/c No. refer to each other symmetrically.&lt;br /&gt;
&lt;br /&gt;
Checks that any Control A/c, Closing A/c, Company code and Currency code is valid and match the same in the Chart File.&lt;br /&gt;
&lt;br /&gt;
== Re-running Open New Year procedure ==&lt;br /&gt;
&lt;br /&gt;
1. Edit Company file in Maintenance mode by running &#039;ED COMPANIES &amp;lt;COMPANY CODE&amp;gt;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   Media  Production  Finance  Management  Timesheets  Files  General  Exit&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
▒╒═══════════════════════════════════TCL - 2══════════════════════════════════╕▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒│ :ED COMPANIES A                                                            │▒&lt;br /&gt;
▒│                                                                            │▒&lt;br /&gt;
▒╘════════════════════════════════════════════════════════════════════════════╛▒&lt;br /&gt;
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. The &#039;Year&#039; field will have the current financial year of the Company entered e.g. &#039;1/19&#039;. Change the year to the prior year &#039;1/18&#039;.&lt;br /&gt;
 ╔══════════════════════════════════════┤A├═════════════════════════════════════╗&lt;br /&gt;
 ║Company name A                                                                ║&lt;br /&gt;
 ║&amp;lt;b&amp;gt;1/19&amp;lt;/b&amp;gt;                                                                          ║&lt;br /&gt;
 ║AED                                                                           ║&lt;br /&gt;
 ║EXDIⁿEXDI                                                                     ║&lt;br /&gt;
&lt;br /&gt;
3. In NEOSYS, open new year 2019 from Menu -&amp;gt; Finance -&amp;gt; Maintenance -&amp;gt; Open New Year. &lt;br /&gt;
&lt;br /&gt;
4. Run CHK.OB to see if all okay with the balances.&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
	<entry>
		<id>https://techwiki.neosys.com/index.php?title=Configuring_Thunderbird&amp;diff=3588</id>
		<title>Configuring Thunderbird</title>
		<link rel="alternate" type="text/html" href="https://techwiki.neosys.com/index.php?title=Configuring_Thunderbird&amp;diff=3588"/>
		<updated>2019-02-13T12:21:31Z</updated>

		<summary type="html">&lt;p&gt;Joel: /*  Handling junk emails */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Setting Up the Inbox Accounts ==&lt;br /&gt;
&lt;br /&gt;
The instructions given below explain how to set up the &amp;quot;Support&amp;quot; account on Thunderbird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Open Mozilla Thunderbird. Choose the &amp;quot;Create a new account&amp;quot; option. Click on &amp;quot;Skip this and use my existing email&amp;quot; option on the &amp;quot;Welcome to Thunderbird&amp;quot; window.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. In the Mail Account Setup window, enter &amp;quot;support@neosys.com&amp;quot; for Your Name, &amp;quot;support@neosys.com&amp;quot; for Email Address and the password provided by Neosys staff. Click on continue.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Click on &amp;quot;Manual Config&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Key in &amp;quot;imap.neosys.com&amp;quot; for incoming IMAP host name, server hostname &amp;quot;smtp.neosys.com&amp;quot; and port &amp;quot;587&amp;quot; for outgoing SMTP and &amp;quot;support.neosys&amp;quot; as username. For SMTP, change the SSL to &amp;quot;STARTTLS&amp;quot; and authentication to &amp;quot;No authentication&amp;quot;. Click on the &amp;quot;Re-test&amp;quot; button and then click &amp;quot;Done&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Thunderbird_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BEFORE clicking on inbox and BEFORE adding other inboxes, you MUST refer to [[Configuring_Thunderbird#Adding_email_accounts_with_large_numbers_of_emails | Adding email accounts with large numbers of emails]]. This is because if you add all the accounts together at once, they will all sync together and it will take 1-2 days for the sync to complete.&lt;br /&gt;
&lt;br /&gt;
For backups@neosys.com, support2@neosys.com (Nagios), name.neosys@gmail.com repeat the steps mentioned above, with the below-mentioned replacements.&lt;br /&gt;
&lt;br /&gt;
1. For backups@neosys.com, enter &amp;quot;backups@neosys.com&amp;quot; for Your Name, &amp;quot;backups@neosys.com&amp;quot; for Email address and enter the password provided by Neosys staff.&lt;br /&gt;
Enter the username as &amp;quot;backups.neosys&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
2. For support2@neosys.com, enter &amp;quot;support2@neosys.com&amp;quot; for Your Name, &amp;quot;support2@neosys.com&amp;quot; for Email address and enter the password provided by Neosys staff.&lt;br /&gt;
Enter the username as &amp;quot;support2.neosys&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. For name.neosys@gmail.com, enter your full name for Your Name, &amp;quot;name.neosys@gmail.com&amp;quot; for Email address and enter the password. You do not need to follow the steps for manual config as the settings will be automatically configured.&lt;br /&gt;
&lt;br /&gt;
[[File:thunderbird_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:thunderbird_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Account Settings ==&lt;br /&gt;
&lt;br /&gt;
Verify that the account settings for all the accounts are entered as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings2.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings3.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings4.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Account junk.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
The Synchronisation &amp;amp; Storage settings should be changed to the settings shown below only at a convenient time, since downloading all the emails will take a lot of time for accounts with large number of emails. Also see [[Configuring_Thunderbird#Adding_email_accounts_with_large_numbers_of_emails |Adding email accounts with large number of emails ]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings6.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings7.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:acsettings8.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Adding email accounts with large numbers of emails ===&lt;br /&gt;
&lt;br /&gt;
After adding email accounts with large numbers of emails, in order to avoid long wait while downloading all the emails, it is best to change the account settings - BEFORE clicking on INBOX, which triggers the download/sync - to download the bodies of only the last 30 days of emails. The email headings are always synced but that does not take long.&lt;br /&gt;
&lt;br /&gt;
See Account Settings, Synchronisation and Storage.&lt;br /&gt;
&lt;br /&gt;
Since searching of emails only works when the bodies of emails have been downloaded, if you need to text search all emails, then, at a convenient time, you can remove or increase the number of days in the setting and somehow trigger the full sync.&lt;br /&gt;
&lt;br /&gt;
[[File:thla.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Configuring alternative outgoing mail servers ===&lt;br /&gt;
&lt;br /&gt;
Alternative outgoing mail servers mailout.neosys.com and mailout2.neosys.com MUST be added so that in case the main mail server goes down we can at least send emails. &lt;br /&gt;
&lt;br /&gt;
To add a new mail server click the Add button under &amp;quot;Outgoing Server (SMTP) Settings&amp;quot; section. Enter mailout server name/port, choose Connection security: &amp;quot;None&amp;quot; and Authentication method: &amp;quot;No authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*Add alternative outgoing mail server mailout.neosys.com, port: 2500. This mail server should be used in case smtp.neosys.com has problems.&lt;br /&gt;
*Additionally add outgoing server mailout2.neosys.com, port: 2500. mailout2.neosys.com is better than mailout.neosys.com since mailout.neosys.com is on the same server as imap.neosys.com and we should have incoming and outgoing via different servers.&lt;br /&gt;
&lt;br /&gt;
[[File:mailout3.png]]&lt;br /&gt;
&lt;br /&gt;
*When switching to alternative outgoing server, ensure that the account&#039;s settings use the alternative outgoing server as shown in the screenshot below. You do not need to set the alternate outgoing mail server as Default.&lt;br /&gt;
&lt;br /&gt;
[[File:mailout2.png]]&lt;br /&gt;
&lt;br /&gt;
== Viewing long running processes on Thunderbird ==&lt;br /&gt;
When setting up and configuring Thunderbird, using its Activity Manager (Tools &amp;gt; Activity Manager) and possibly using the header bar &amp;quot;Always on top&amp;quot; option on the Activity Manager window may be helpful to know what long running processes are being performed.&lt;br /&gt;
&lt;br /&gt;
[[File:Activity manager.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Deleting Thunderbird accounts==&lt;br /&gt;
Check the option &amp;quot;Remove Message Data&amp;quot; when removing accounts from Thunderbird. Otherwise, the old messages stay forever taking space on the disk.&lt;br /&gt;
&lt;br /&gt;
[[File:dt2.png]]&lt;br /&gt;
&lt;br /&gt;
Select Remove Message Data option as shown below.&lt;br /&gt;
&lt;br /&gt;
[[File:dt.png]]&lt;br /&gt;
&lt;br /&gt;
== Add-ons ==&lt;br /&gt;
&lt;br /&gt;
[[File:Addon2.png]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting incompatible Lightning add-on===&lt;br /&gt;
Some Thunderbird versions may not support Lightning add-on. In such cases follow the below steps to get Lightning add-on to work&lt;br /&gt;
&lt;br /&gt;
#Remove the lightning add-on in Thunderbird (if already installed)&lt;br /&gt;
#Close Thunderbird&lt;br /&gt;
#Install xul-ext-lightning package using the below terminal command &amp;lt;pre&amp;gt;sudo apt install xul-ext-lightning&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Restart Thunderbird&lt;br /&gt;
&lt;br /&gt;
== Other configurations ==&lt;br /&gt;
&lt;br /&gt;
===Configure inbox to display selected columns ===&lt;br /&gt;
&lt;br /&gt;
The below options MUST be set in Support Inbox. To do so Right click on a column heading and select the below options:  &lt;br /&gt;
&lt;br /&gt;
#Thread&lt;br /&gt;
#Starred&lt;br /&gt;
#Attachment&lt;br /&gt;
#Subject&lt;br /&gt;
#Correspondents &lt;br /&gt;
#Received: You MUST add column RECEIVED which is the email date received to email inbox because the default Date seems to be the DATE SENT whereas we are primarily interested in the date we received the email. The difference is due to delays in email servers or spam tricks.&lt;br /&gt;
&lt;br /&gt;
The below options MUST NOT be set in Support Inbox&lt;br /&gt;
&lt;br /&gt;
#Junk status: Emails will automatically be moved to Junk folder if the junk icon in this column is clicked. Hence remove Junk Status column so that emails are not accidentally moved to junk. To remove, right-click on a column heading and untick &amp;quot;Junk Status&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Configure Mail Content ===&lt;br /&gt;
&lt;br /&gt;
Preferences &amp;gt; Privacy &amp;gt; untick &amp;quot;Allow remote content in messages&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Support MUST set the &amp;quot;Allow remote content in messages&amp;quot; as blocked in Thunderbird without adding any exceptions for any email id. The reason is remote content i.e embedded images, stylesheets etc is a privacy concern as it sends your private information to the mail sender. We do not know the source of these embedded content in emails so cannot trust them as they can be web bugs.&lt;br /&gt;
&lt;br /&gt;
=== Configure Layout View ===&lt;br /&gt;
&lt;br /&gt;
Layout view should be set as Vertical view.&lt;br /&gt;
&lt;br /&gt;
=== Thunderbird Preferences ===&lt;br /&gt;
&lt;br /&gt;
#Preferences &amp;gt; Display &amp;gt; Advanced &amp;gt; untick &amp;quot; Automatically mark messages as read&amp;quot;.&lt;br /&gt;
#Keep settings as below for Preferences &amp;gt; Security.&lt;br /&gt;
#Keep settings as below for Preferences &amp;gt; Composition &amp;gt; Spelling.&lt;br /&gt;
&lt;br /&gt;
[[File:Globaljunk.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Composition.png|500px]]&lt;br /&gt;
&lt;br /&gt;
=== Configure MailAlert ===&lt;br /&gt;
&lt;br /&gt;
Right click Inbox &amp;gt; Mailbox Alert &amp;gt; Edit Mailbox Alert alerts &amp;gt; Select Default message. Set as below. Once set Right click Inbox &amp;gt; Mailbox Alert &amp;gt; check Default message&lt;br /&gt;
&lt;br /&gt;
[[file:thsh.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Configure Auto Resize Image ===&lt;br /&gt;
&lt;br /&gt;
Set the preferences for the Auto Resize Image add-on as shown in the screenshot at the end of this section.&lt;br /&gt;
&lt;br /&gt;
To handle different scenarios when resizing images in emails, follow the below steps:&lt;br /&gt;
&lt;br /&gt;
*Resize all images in the email: Click &amp;quot;Send&amp;quot; followed by &amp;quot;Confirm&amp;quot; on the Auto resize screen.&lt;br /&gt;
&lt;br /&gt;
*Skip resize all images in the email: Click &amp;quot;Send&amp;quot; followed by &amp;quot;Cancel Resizing&amp;quot; on the Auto resize screen.&lt;br /&gt;
&lt;br /&gt;
*Resize Images only in the email trail and skip resizing new images: Click &amp;quot;Resize&amp;quot; on top of your screen and proceed with writing the email/adding new images. When ready to send the email, follow above step for skipping resize all images in the email.&lt;br /&gt;
&lt;br /&gt;
[[File:Resize2.png]]&lt;br /&gt;
&lt;br /&gt;
=== Configure Header Tools Lite ===&lt;br /&gt;
&lt;br /&gt;
Set the preferences for the Header Tools Lite add-on as shown in the screenshot below.&lt;br /&gt;
&lt;br /&gt;
[[File:headertoolslite.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Configure Dorando Keyconfig ===&lt;br /&gt;
&lt;br /&gt;
Menu &amp;gt; Add-ons &amp;gt; Edit Keyconfig Preferences &amp;gt; Disable shortcuts for &#039;Archive&#039; and &#039;Junk&#039; as shown in the screenshots below.&lt;br /&gt;
&lt;br /&gt;
[[File:Keyconfig1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Keyconfig2.png]]&lt;br /&gt;
&lt;br /&gt;
=== Getting access to NEOSYS support calendar ===&lt;br /&gt;
&lt;br /&gt;
After confirming that the steps below are successfully done, delete your local personal calendar and make the shared support calendar the default.&lt;br /&gt;
&lt;br /&gt;
In Thunderbird, add a new CalDAV network calendar by navigating to File (Alt+f) -&amp;gt; New -&amp;gt; Calendar.&lt;br /&gt;
&lt;br /&gt;
You will have to enter your nextcloud user and pass.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal1.png]]&lt;br /&gt;
&lt;br /&gt;
Location: https://nextcloud.hosts.neosys.com:44318/remote.php/dav/calendars/support/support_shared_by_steve/&lt;br /&gt;
&lt;br /&gt;
[[File:Cal2.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Cal3.png]]&lt;br /&gt;
&lt;br /&gt;
It should show a tick if successful, otherwise you will have to Unsubscribe and try again.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal4.png]]&lt;br /&gt;
&lt;br /&gt;
Change the new calendar properties to Refresh every 5 mins.&lt;br /&gt;
&lt;br /&gt;
[[File:Cal5.png]]&lt;br /&gt;
&lt;br /&gt;
=== Applying filter for backup failure emails ===&lt;br /&gt;
&lt;br /&gt;
In order to filter any backup failure emails as Important, go to Tools &amp;gt; Message Filters and create a new filter with settings as shown below:&lt;br /&gt;
&lt;br /&gt;
[[File:Filter.jpg]]&lt;br /&gt;
&lt;br /&gt;
==[[Procedures#Email_Retention_Policy| Email Retention Policy]] ==&lt;br /&gt;
&lt;br /&gt;
==[[Procedures#Handling_junk.2Fspam_email| Handling junk/spam emails]]==&lt;br /&gt;
&lt;br /&gt;
== Clearing out old improperly deleted Thunderbird Accounts ==&lt;br /&gt;
&lt;br /&gt;
If you delete Thunderbird accounts without checking the option &amp;quot;Remove Message Data&amp;quot; the old messages stay forever taking space on the disk.&lt;br /&gt;
&lt;br /&gt;
To locate any such unnecessary files&lt;br /&gt;
&lt;br /&gt;
 ls -l -h /home/*/.thunderbird/*.default/ImapMail/*/INBOX&lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-rw------- 1 arvind arvind  16M May 25 16:36 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.gmail.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 668M Mar 29 08:54 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-1.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 242M May 28 14:45 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-2.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 755M May 25 12:39 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-3.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind 420M Apr 24 10:27 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys-4.com/INBOX&lt;br /&gt;
-rw------- 1 arvind arvind  13G May 28 14:37 /home/arvind/.thunderbird/odi5mrka.default/ImapMail/imap.neosys.com/INBOX&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the dates, which indicate the date of the last message received, to get a rough idea of what accounts are in use and not in use&lt;br /&gt;
&lt;br /&gt;
Check which of the folders are currently in use by looking in Thunderbird settings for each account one by one, &amp;quot;Server Settings&amp;quot;, &amp;quot;Local Directory&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Delete the folders and files which are not in use using whatever method you like.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.thunderbird&amp;quot;, like all files and folders which start with a dot, is a hidden folder which you can make visible in Nautilus File Manager by pressing Ctrl+h&lt;/div&gt;</summary>
		<author><name>Joel</name></author>
	</entry>
</feed>