Article ID: 10190
UPDATE: Updates in ITScriptNet 3.0a(28)
UPDATE
Applies To: ITScriptNet V3
ITScriptNet V3.0a(28) contains the following updates.
DETAILS
ITScriptNet V3.0 is a major upgrade over V2.x. Updates include:

System Console

Omni Server startup options – The OMNI Server can be run as a service. From the Console you can now install or remove the service from the OMNI Server Configuration utility, start and stop the service and set the option to Manually start the service, Automatically start, or Disable the service (don’t allow it to start if called from another service).

Limited the application to a single instance – Previously, we allowed multiple instances of the System Console to be open, which caused strange things to happen. Now if you try to open another instance the system tray indicator will toggle between active and inactive.

New tab for Help and Support – This tab provides quick access to online help (KnowledgeBase, Forum and our website), sample programs, and our Ready-To-Go® (free) programs.

‘Guest-only’ mode for ActiveSync – On the Programs tab under Configure Devices you can set whether the ActiveSync Partnership setting screen appears to the PC user when they cradle a device. Setting it to Guest-Only Mode will suppress the screen from popping up.

Designer Features

Debugger improvements for Global Scripts – The debugger shows the correct source line when stepping into the global script.

Pasting elements does NOT bring up the Properties dialog – This was a minor annoyance. When copying and pasting an element, usually from one screen to another, the Properties screen would always appear. Usually you don’t need to make changes to the copied element so there was an added click to close the dialog. Now, there is an added click to open the dialog if needed.

‘Text’ and ‘Element Name’ field order switched (for Text elements) – Many times you don’t change the default name (Text1) for a Text element. So, we put the Text field, the text you want to display to the user, first to eliminate having to navigate down a field.

ITB Comparison - File>Compare Programs. Compare two programs to see what is different between them. Displaying the results as HTML is an option.

Generate validation files from the Validation File list screen – Adding a button on this screen saves five clicks.

Cut/Copy/Paste of multiple elements – Select multiple elements on a prompt to cut or copy then paste to the same prompt or another prompt.

Element pastes in the same position – If the cut or copied element name does not already exist on the prompt, the element is placed in the same position as the original. If the element name exists the element is pasted to a position down and to the right slightly.

Enhanced Syntax checking - Detects mismatch IF/ENDIF or FOR/NEXT or WHILE/WEND pairs.

Tighter control over selecting elements - Updated the ‘hit’ testing for grabbing elements so it does not detect a click in the handle area as a click on that element. Clicks must be inside the bounding rectangle or on the handles themselves.

Lock Position of Elements - View>Lock Elements. Locks the position of all elements on the prompt, including a new one just added. This is to avoid accidently moving elements, usually when double clicking them to open the Properties dialogue.

Inserting prompts now adjusts the Next Prompt setting correctly – When a new prompt is inserted or added via ‘Paste After’ the Next Prompt setting on the Prompt Settings screen for the new prompt and the prompt immediately before the new prompt is automatically set to the next prompt in the flowchart.

Enhanced ‘Find’ feature - The Find dialog on the In Prompt Script Editor puts the currently selected text in the textbox when Ctrl+F is pressed.

Changed a script tree root name. Changed 'Responses' to 'Prompt/Element Values'. This eliminates the confusion with the ‘Response’ label for a set of functions. Removed ‘Lookups’ list.

ITB Password dialog box now loops - The box waits for a correct password or for selecting ‘Cancel’.

Prompt names limited to 20 characters in length – The limit was 30, which was too long.

Prompt/Element names were set to uppercase - Fixed this annoyance issue where this was happening after closing the script editor and reopening.

On the Advanced Symbology Settings screen, checking the item will display the options – Textbox, Combobox, Listbox, Grid elements only - Previously, only selecting the item (clicking on the text) would display the options. Now when you check the box to select it the options will display.

‘Find’ dialog defaults to search all prompts – Previously, the default was to search the current prompt. Most uses of ‘Find’ is for searching the entire program.

Increased read/write buffer sizes for InPrompt Scripts - Allow scripts larger than 16K. Someone wrote a huge script larger than our previous limit of 16K. Wow!

Override scripts (Fn Button) for the Exit passwords – Program>Program Settings – Passwords can be controlled at runtime, allowing their use and even the password itself to be affected while running the program.

Exporting validation file definitions defaults the filename to match the validation file

Increased the timer interval value to 6 digits (999999ms = 16 minutes) – Previous value was 99999(1.6 minutes). The timer does stop when the unit hibernates or is turned off.

Pressing Undo on the script editor now forces a refresh of the code window

Prompt tree elements are organized by element type – Previously, the elements were listed in the order they were created, making it hard at times to find an element in the tree.

Program name on the Program Settings screen can be 40 characters – Previously, the maximum length was 20 characters.

Changed the font on the VBScript editor window to Courier (fixed pitch) – Program>Configure Receive>Edit Scripts button - This will help with alignment of the text.

Auto-generation of validation file fields no longer UCASE’s the fieldnames – This was just annoying. Does not affect any functionality.

Validation file field names can now be 100 characters - Previously, the maximum length was 20 characters.

New columns to the Validation Files screen - Provides a quick view of the key options for a validation file – Format (Fixed-width or Delimited), Auto-generation (No Auto Generation, Manual, On Every Upload, Remote), and SQL CE (Yes or No, if using SQL CE on the device to store the validation file, if available).

Removed the New Program Wizard – It’s time has passed. Dropping support for Single Prompt has made this obsolete.

Removed support for Single Prompt – As support for the older, obsolete devices is being discontinued and the devices we now support are Windows, we are no longer continuing to support Single Prompt in future versions. Older versions of ITScriptNet will always be available if someone feels the need to use Single Prompt for a simple application.

Added ‘Program Version’ setting to the Program>Program Settings screen – The version setting is helpful to know whether the user is using the latest program. This value is available to the program in the $ITBVERSION$ value. When transferring collected data with the Omni Server, this version number is checked against the version number of the ITB on the server and, if they do not match, the device sends its copy of the ITB to the server and the collected data is processed against that one. Otherwise, bad things tend to happen. This helps solve the problem of out-of-date ITBs on the server and client.

Right-click in the Prompt tree brings up the context menu for prompts and elements

Renamed RSS symbology to GS1 Databar - GS1.org recently renamed the ‘RSS’ symbology barcode to ‘GS1 DataBar’ to avoid confusion with the popular RSS XML Feed technology.

GPS Tracking Settings screen - Set various options for collecting and transmitting GPS data that is collected while the device is in motion. This data is typically used for mapping a breadcrumb trail.

Prompt Notes pane – Added an area under the prompt view area to add development notes.

Program Printing uses HTML – File>Print Program – This prints the properties, options, scripts and other information about each prompt and element in the program. Instead of direct printing, the document now displays as HTML and can be printed from there.

Script Assist™ - Works like Microsoft’s Intellisense. When in the script editor while entering a ‘prompt.element’ reference a list of elements will show in a drop down after entering ‘promptname.(dot)’ from which you can select an element to finish the reference. Also, upon entering a function name, ex. SetFocus, you can highlight it, right click, and select ‘Find Definition’ to see the function’s definition description in the upper right pane of the script editor.

Element features

Grid filtering 'Begins with' or 'Ends with' – Previously, filtering was done based on complete input values. Fields can now be filtered based on their beginning or ending characters.

Do Not Save option – There are times when data or input is needed during the collection process, but there is no need to save it.

Validate On Lose Focus property – One of our favorite new things! The built-in validation options can be run when you move off an element. This, coupled with the Validation Event on the Action tab, can completely validate the entry of a value at the time of entry.

Validate Event – On the Action tab of most elements you can run a script while the element is being validated.

Combobox/Listbox: Do not allow the first option – You can create a Combobox or Listbox where the first option is something like “––Select an Option–– “, and then NOT allow that to be a valid choice. Helps direct the user and adds professionalism to the program.

Push-like radio buttons and checkboxes - The elements look different when selected.

‘Disabled’ colors for Radio Buttons and Checkboxes – Use a different color when the Radio Button or Checkbox is in the ‘Disabled’ state.

Default To Pending option - When coming back from another prompt before saving the record the element value can be reset to the previously entered value. Say you have entered a receiving record but want to review your collected data before saving it. You can go to the review screen and, upon your return to the receiving screen, the previously entered data will display.

Grid: Set column widths using properties (prompt.grid.column.width) – The column width of grids can be set via a script. This allows the width to be changed based on the data filling the grid or any other criteria..

Grid: Set header text using properties (prompt.grid.column.headertext) - The text displayed in the header of the grid can be set via a script. This allows the text to be changed based on the data filling the grid.

Gradient buttons – The color of the button can be set to fade out in several different formats.

Gradient Rectangles - The color of the rectangle shape can be set to fade out in several different formats.

Image and text rotation – The Image and Text elements can be rotated in three other directions-Vertical Up, Vertical Down and Inverted.

Digital Ink signature line – A line can be displayed in the Digital Ink element, most likely used to indicate a signature line.

Digital Ink Rotation- Rotate to accommodate screen sizes and different directions a user might sign on the device.

Lines can now be \ or / - Shape element - Shape Type can be set to a diagonal line from the upper left corner of the shape to the lower right corner, or lower left corner to the upper right corner.

Characters $ # @ . + - * / & < > = ( ) "" or are not allowed in Element names – These are reserved characters and will cause issues if used in the element name.

New Elements

Calendar – Display a calendar from which to select a date.

Date/Time Picker – A combobox-like element. Select a date by changing it directly or by displaying a calendar from which to choose a date. Option to use the element for time.

Display Status of various indicators – Display as an icon or text value the Battery Life, Free Space, GSM Registration Status or Signal Strength, NumLock of Shift State, Status Bar, WiFi Association Status or Signal Strength or to show the current date.

GPS Location – In the background, capture any combination of the six GPS values – Latitude, Longitude, Speed, Heading, Altitude and Number of Satellites.

Keypad – Display a keypad from which to enter data for an element. Choose from an optional 10-key numeric or 16-key Hexadecimal, or create your own custom keypad. Choose from different button styles and colors.

Events (Program>Program Events) Write a script to run when these events happen

Power On – If a program is running on the device when the unit shuts off (hibernates or turned off) this script will run when the unit is turned back on. A good use is, for security reasons, to have the program go back to the login screen to get a valid login entry.

Global timer – This script will run each time a new prompt is displayed.

Cradled/Uncradled – When the device is put in the cradle (or attached to the cable) (the cradle/cable must have power)or removed from the cradle this script will run.

Program Load – This script runs when the program is started, before the first screen is loaded.

Program Exit – This script runs when the user selects to exit the program.

Functions

Tone function – (Notification) - Play an audible tone, setting the sound (Hz), duration and volume.

GetTickCount function – (Date/Time) - Returns the system Tick Timer value. Can be used for debugging purposes to calculate time intervals with better precision that just Seconds, although it’s only accurate to about 18 ms.

SetKeyboardMode/GetKeyboardMode functions – (Notification) - Sets or Retrieves the state of the Caps Lock or Num Lock mode – Numeric, Uppercase Alpha or Lowercase Alpha.

OmniLoadProgram function – (Omni) - Connect to the Omni server to load an ITScriptNet program. The function returns a value to indicate whether the program was properly transferred.

OmniUpdateClient function – (Omni) - Connect to the Omni server to update the client. Returns ‘0’ if the client is already up to date. Returns non-zero if the client cannot be updated. The client exits and restarts if an update is made.

OmniSendCollectedData – (Omni) - Forces the device to try to connect and send any collected data to the server. Set parameters to only send certain records. Any other collected data will be left on the device. These parameters are only effective if the Collected Data is stored in SQL CE. Returns a value indicating whether the transfer was successful or not.

SetGridCellColor function – (Multi-Prompt) – Set the background and text color of a cell in a grid. Ex. The grid has a column for quantity. If the quantity is negative make the cell background red.

SetClock function – (Date/Time) – Allows the user to set the date and time on the device from within ITScriptNet. This is easier than navigating through the Windows screens.

Modified Message function to allow a single string parameter – (Notification) – Previously, you had to indicate a value for each of the four parameters. Now, you can leave off the ones at the end you aren’t using. Ex. Old way – Message(“Are you sure?”, “Confirm”, “Yes”, “No”). New Way – Message(“Invalid Entry. Please enter again.”). The caption and buttons are not needed, so they can be ignored.

Keypress script can return 0 to ignore the keypress completely – (Multi-Prompt) - Valid only during the OnKeyPress event. Returns the character code of the key pressed to trigger the event.

FileDate function – (File) - Returns the date / time that the file specified was last modified. The file must be located in the directory with the ITB.

PadLeft and PadRight functions – (String) - Pads the string with a specified character to the specified length. The pad characters are added to the left (or right) of the original string.

SaveCollectedData returns a success or fail code - (Lookup) - If the data validates the success code is returned, otherwise the fail code is returned.

Exec function – (Other) – Executes a specified script. The expression is evaluated and must be a correctly formatted string. So, using something like this, @test@ = left ("1234", 2), won't work. You have to do this,"@test@ = left" & chr(34) & "1234" & chr(34) & ", 2", so it evaluates to the expression above before executing. This is really only a problem if there are literal strings in the data.

Index-based functions failure process modified – Functions such as DeleteItem or GetItemData now fail if the index specified is larger than the number of items in the element. Previously, the last item in the list was selected.

DLL functions – (Other) –
DLLCall – Call a function in an external DLL;
DLLLoad – Load an external DLL from the ITB directory on the server. Returns a value of whether the file was loaded or not.;
DLLRelease – Release a previously loaded DLL.
These functions allow the developer more freedom to work outside ITScriptNet as necessary. Removes any further ITScriptNet limitations.

List functions – (Other) – Maintain a list of keys and values during the data collection process. This is helpful to avoid performing multiple validation lookups or to store what would otherwise be user variables.
ListAdd – Add a string to a list indicating the key and value.
ListClear – Clear a list of all entries.
ListLookup – Lookup a value from a list based on the key.

Functions renamed:

DownloadData -> DLSrvDownloadData

LoadProgram -> DLSrvLoadProgram

SendCollectedData -> OmniSendCollectedData

Validation Files features

CSV Validation Files – Previously, only fixed-width text files could be used. CSV files are common and take less space than fixed-width.

SQL CE support – Collected data and validation files can be stored on the device in a SQL CE database. Many new features take advantage of this, mainly grid filtering (allows use of SQL query) and SendCollectedData (send only certain records based on parameters). A significant drawback to SQL CE on the device is the extremely long loading time of large validation files. Use SQL CE only when necessary.

Indexes now work for files larger than 16MB – Companies with large validation files (typically several hundred thousand items) can now benefit from index files.

Performance Features

All elements hidden until the prompt is activated – This allows the screen to fill with all the elements all at once instead of as they activate. Makes for a more professional looking program.

Scripts and SQL statements in the ITB are now compressed – Makes the .itb file smaller.

PC Client

Set the alias from the PC Client configuration screen – Previously unable to set the alias. The alias is the name given to the device/PC that can be used to identify which device captured the record.

Clients

Select Program list has the focus set to the list – Focus was not set to the list previously, causing additional taps.

Programs are listed in alphabetical order – Easier to find programs in the Collect Data, Load Programs, Send Data to PC, Delete Data File and Delete Program lists.

EnableALD and EnableCentering functions updated - Can be used if the UseDefault setting is selected in the designer.

Alias is not permitted to contain invalid filename characters - < > “ | ? * : \ / or any characters between ascii values 0 and 31. These are reserved characters and can cause problems if used.

Running the client sets the Install registry key – This allows device licensing to work regardless of the device folder in which the client resides.

Changed 'Serial Port' field name to ‘Communications' on the configuration screen – More properly reflects the reference of the method.

Alias length increased to 30 characters – Changed from 20 characters.

Program>Program Settings option for Screen Mode – Set the screen display option - Disabled Bars, Caption Only or Full screen - within the design of the program.

Program>Program Settings option for 'Minimize on OK' for Windows Mobile – Tapping the ‘OK’ button in the upper right corner will minimize ITScriptNet, not close it, on WM devices.

Plus and OMNI clients combined – We have combined the clients into one. There is still separate licensing for Batch Plus and OMNI, however. The licensing will determine if OMNI features will be enabled.

Simulator

RF Print functions now work in the simulator – Using the Simulator you can now test the use of the RF Print functions as long as the PC running the Simulator is on the network.

Script Engine

Added && and || - Instead of ‘AND(@val1@, @val2@)’ you can now use ‘@va1@ && @val2@’ (or @val1@ || @val2@). This is more programmer-friendly.

Property-based syntax for controlling element settings - Instead of using user variables in in-prompt scripts and refreshing the element, you can now directly control most properties. For example, to set the background color of a textbox, you can now just use Prompt.textbox1.backgroundcolor =colorYellow

Fixed precedence order problems - We’ve improved the arithmetic precedence order. It’s not perfect, but much better. Ex. @x@ / @y@ + @z@ is equivalent to (@x@ / @y@) + @z@.

Omni Server

Updated to use a thread pool – This is a more efficient method for wireless communication.

Sending collected data now sends the ITB if it is not the same version as the one on the server – This avoids version difference issues that can cause the loss of data.

Communications

Added a return code to the DlSrvDownloadData and DlSrvLoadProgram – The return code can be used to alert the user as to whether the data or program was transferred or to perform other tasks whether it did or did not transfer.

Calls SystemIdleTimerReset on long-running OMNI calls – In the event the data transfer takes a while the device won't suspend while waiting for a response from the server.

All file transfers are now compressed – We’ve applied file compression to and from the device in order to reduce the bandwidth needed. This is especially important for GPRS communication.

Obsolete Features

Removed support for the following obsolete devices:

DOS devices – Hand Held Products’ Dolphin7200 and Compsee’s Apex)

Hand Held Products’ IT3875, Dolphin 7300 & 7400

Older versions will still be available for download on our site that support these devices.

This article last updated: 1/1/2009 12:00:00 AM
Please help us improve the Knowledge Base by rating this article.
    © 1997-2026 Z-Space Technologies - a BCA Innovations Company - All rights reserved