Where and how are my RAMP-TS screen identifications kept?
By default RAMP-TS stores your screens in a folder named /ts/screens.
Each screen definition is stored in a file named N.scn (eg: 1.scn, 2.scn, 3.scn, etc). They contain JSON fragments that define the characteristics of the screen.
These files are only required during development. For run time, all these of these files are published in a single consolidated file named screens.jsn. Screen.jsn is the only screen file that needs to be deployed to production environments
Important things to know about this folder
- Back it (and any subfolders) up regularly. The content of the N.scn files represents a significant investment of your time.
- Don’t copy from, copy to, move, rename or delete any file in folder /ts/Screens, or any subfolder of it.
- Only ever change the content of these files via the RAMP-TS editor.
Dividing up screen definitions
Your screen definitions do not have to be in /ts/screens, you can divide up screen definitions into sub-folders like /s/screens/Project1 or /ts/screens/Project2.
You just input the folder name (Project1) with nothing else. It is implicit that this is a sub-folder of /ts/screens:
When you define a RAMP-TS server in the framework, this subfolder name is specified as a private working set. Screen definitions may be divided up like this on an indivisible and completely independent project basis.
Screens should never be divided up on a unit of work or developer basis because you must not copy, move, rename or delete them.
RAMP-TS Guide |
|
How to Get Started with RAMP |
|
What is RAMP? |
|
RAMP Stage 1 |
|
RAMP Stage 2 |
|
RAMP Stage 3 |
|
A Modernized Application |
|
Key Benefits |
|
How the 5250 Application Will Change |
|
5250 Application Before Modernization |
|
5250 Application After Using RAMP |
|
Accessing Data in the Modernized Application |
|
Navigation in the Modernized Application |
|
Modernization Process Overview |
|
Stage 1: Creating a Modernization Framework |
|
Who Should Be Involved? |
|
Creating the Prototype |
|
Executing and Refining the Prototype |
|
Stage 2: Incrementally Modernizing the 5250 Application |
|
Naming the 5250 Screens |
|
Tracking and Classifying the Screens |
|
RAMP Stage 2A: Rapidly Modernizing Complete Application Segments |
|
How to Do It? |
|
RAMP Stage 2B: Individually Modernizing Frequently Used Screens |
|
How to Do It? |
|
RAMP Stage 2C: Adding Value |
|
What Adds Value? |
|
How to Do It? |
|
Stage 3: Removing IBM i Platform Dependencies |
|
Prerequisite Skills |
|
Warnings and Disclaimers |
|
What's New |
|
New Features in EPC 868 Version of RAMP |
|
New Features in EPC 843 Version of RAMP |
|
Licensing Requirements |
|
Installation and Configuration |
|
Installation on the Server |
|
Install and Configure RAMP-TS / aXes-TS on your IBM i Server |
|
Verify your RAMP-TS/aXes-TS Installation |
|
Backup Strategy |
|
Configuration |
|
Verify Browser Security Settings |
|
Set Up Reverse Proxy for Chrome, Safari and Firefox |
|
Configure RAMP |
|
If You Have Used RAMP-NL, Read This |
|
Ensure Your Framework Has an Overall Visual Style Theme |
|
Specify RAMP-TS Server Details |
|
Set up Super-Server Session |
|
Optionally Set up Framework Users and Security |
|
When Many Developers Work on the Same Application |
|
Handle Multiple Framework Versions |
|
Script Naming Convention |
|
Starting RAMP |
|
Start LANSA |
|
Start the Framework |
|
Start RAMP |
|
Start the Instant Prototyping Assistant |
|
Start the Program Coding Assistant |
|
Concepts |
|
Steps Involved in Using RAMP |
|
Framework Window |
|
RAMP Window |
|
Message Area |
|
Screen Tracking Area |
|
RAMP-TS 5250 Emulator Session |
|
Screen and Script List |
|
Organizing Screens and Scripts |
|
Details Area |
|
Session Details |
|
Destination Screen Details |
|
Script Area |
|
Screen Name Finder |
|
Types of Screens |
|
Destination Screen |
|
Junction Screen |
|
Special Screen |
|
Naming Conventions |
|
OBJECT-ACTION User Interfaces |
|
Modernization Issues |
|
The most important and complex 5250 program in an application can become a modernization trap |
|
How long will it take to RAMP my application? |
|
Reuse, Reface or Rewrite? |
|
Tutorials for RAMP Windows |
|
Before You Use the Tutorials |
|
RAMP-TS001: Creating a Basic Prototype of the Modernized Application |
|
Application before Modernization |
|
RAMP-TS001 Step 1. Create the Application Prototype |
|
RAMP-TS001 Step 2: Modify the Code Tables Prototype |
|
RAMP-TS001 Step 3: Examine the Employees Prototype |
|
RAMP-TS001 Step 4: Prototype End-User's Access to Employee Information |
|
RAMP-TS001 Step 5. Visualize the Filters |
|
RAMP-TS001 Step 6. Validate the Basic Prototype |
|
Summary |
|
RAMP-TS002: Rapidly Modernizing Complete Application Segments |
|
Before You Start |
|
RAMP-TS002 Step 1: Name the Screens |
|
RAMP-TS002 Step 2: Classify the Screens and Track Navigation |
|
RAMP-TS002 Step 3: Remove Cancel and Exit buttons |
|
RAMP-TS002 Step 4: Snap the Application into the Framework |
|
Summary |
|
RAMP-TS003: Creating a Data Filter for Employees |
|
RAMP-TS003 Step 1. Creating Your Real By Name Filter |
|
RAMP-TS003 Step 2. Snapping In the By Name Filter |
|
RAMP-TS003 Step 3. Filter Code |
|
Summary |
|
RAMP-TS004: Naming and Classifying the Employee Screens |
|
RAMP-TS004 Step 1. Name the Screens |
|
RAMP-TS004 Step 2. Classify Screens |
|
RAMP-TS004 Step 3. Track Navigation |
|
RAMP-TS004 Step 4. Take Snapshots of Your Destination Screens |
|
Summary |
|
RAMP-TS005: Reviewing Design |
|
RAMP-TS005 Step 1. Place Snapshots on Mock Up Command Handlers |
|
RAMP-TS005 Step 2. Review the Prototype |
|
Summary |
|
RAMP-TS006: Snapping in a Basic Inquiry Screen |
|
RAMP-TS006 Step 1. Snap a Basic Inquiry Screen into the Framework |
|
RAMP-TS006 Step 2. Change the Script to Use the Current Instance List Entry |
|
RAMP-TS006 Step 3. Disable Function Keys |
|
Summary |
|
RAMP-TS007: Snapping in a Data Entry Function |
|
RAMP-TS007 Step 1. Snap a Basic Data Entry Screen into the Framework |
|
RAMP-TS007 Step 2. Change the Script to Signal the New Employee Number |
|
RAMP-TS007 Step 3. Add Error Handling |
|
RAMP-TS007 Step 4. Change the Script to Update the Instance List |
|
RAMP-TS007 Step 5. Disable Function Keys |
|
Summary |
|
RAMP-TS008: Changing Inquiry Screen to Update Mode |
|
RAMP-TS008 Step 1. Make Display Employee Screen Input Capable |
|
RAMP-TS008 Step 2. Redisplay DisplayEmployee After Save |
|
RAMP-TS008 Step 3. Change Button Caption |
|
Summary |
|
RAMP-TS009: Tracing Navigation |
|
RAMP-TS009 Step 1. Starting the Trace and Redisplaying the Destination Screen |
|
RAMP-TS009 Step 2. Examining the Trace |
|
Summary |
|
RAMP-TS010: Using Special Field Handlers |
|
RAMP-TS010 Step 1. Naming the Field |
|
RAMP-TS010 Step 2. Associating the Field with the Handler |
|
RAMP-TS010 Step 3. Test the Special Field Handler |
|
Summary |
|
RAMP-TS011: Snapping in Shipped Documents Command Handler |
|
RAMP-TS011 Step 1. Snapping in the DX_DOCS Command Handler |
|
RAMP-TS011 Step 2. Adding Documents |
|
RAMP-TS011 Step 3. Working with Documents |
|
Summary |
|
RAMP-TS012: Snapping in Shipped Notes Command Handler |
|
RAMP-TS012 Step 1. Snapping in the DF_T3201 Command Handler |
|
RAMP-TS012 Step 2. Adding Notes |
|
Summary |
|
RAMP-TS013: Sending Instance List Data to Excel |
|
RAMP-TS013 Step 1. Creating the Command Handler |
|
RAMP-TS013 Step 2. Snapping in and Testing the Command Handler |
|
Summary |
|
RAMP-TS014: Snapping RAMP Screens into the HR Demo Application |
|
RAMP-TS014 Step 1. Snap in RAMP Screens to the HR Demo Application |
|
RAMP-TS014 Step 2. Modifying the SETVALUE Statement |
|
Summary |
|
RAMP-TS015: Understanding and Handling Screen Variations |
|
What is a 5250 Screen? |
|
RAMP-TS015 Step 1. Assigning the Same Name to Two Screen Variations |
|
RAMP-TS015 Step 2. Handling Different Screens with the Same Signature |
|
RAMP-TS015 Step 3. Creating Screen Variants |
|
RAMP-TS015 Step 4. Using Screen Variants in the Script |
|
RAMP-TS015 Step 5. Creating a Set of Screens (Advanced) |
|
Summary |
|
Advanced Tutorials |
|
RAMP-TSAD01: Using Buttons to Add Value to an Application |
|
About Buttons |
|
RAMP-TSAD01 Step 1. Enable Framework Buttons |
|
RAMP-TSAD01 Step 2. Name Fields to Be Copied on the DisplayEmployee Screen |
|
RAMP-TSAD01 Step 3. Add a Function to the Script for the DisplayEmployee Screen |
|
RAMP-TSAD01 Step 4. Call the Function in the ButtonClick Function |
|
RAMP-TSAD01 Step 5. Test the Buttons |
|
Summary |
|
RAMP-TSAD02: RAMP-TS Event Handling Basics |
|
RAMP-TSAD02 Step 1. Add a Signal Button to the By Name Filter |
|
RAMP-TSAD02 Step 2. Make Your 5250 Screen Listen to the Signal |
|
RAMP-TSAD02 Step 3. Test Signaling from Filter to RAMP Screen |
|
RAMP-TSAD02 Step 4. Add a Signal Button to the RAMP Screen |
|
RAMP-TSAD02 Step 5. Make the Filter Listen to the Signal |
|
RAMP-TSAD02 Step 6. Signalling from a RAMP script to a VLF component |
|
Summary |
|
RAMP-TSAD03: Special Field Handling |
|
RAMP-TSAD03 Step 1. Understand What Makes the Prompter Appear |
|
RAMP-TSAD03 Step 2. Being smarter with HANDLE_PROMPT() |
|
RAMP-TSAD03 Step 3. Handler Styles |
|
RAMP-TSAD03 Step 4. Generic Handler Association |
|
RAMP-TSAD03 Step 5. Generically Associating Date Fields with Date Picker |
|
RAMP-TSAD03 Step 6. Dynamic Handler Association |
|
RAMP-TSAD03 Step 7. Communicating with a Handler |
|
RAMP-TSAD03 Step 8. What to Do When Things Do Not Work |
|
Summary |
|
RAMP-TSAD04: Redesigning the Screen Using aXes |
|
RAMP-TSAD04 Step 1. Get Started with aXes Designer |
|
RAMP-TSAD04 Step 2. Set up Styles |
|
RAMP-TSAD04 Step 3. Hide Repetitive Information |
|
RAMP-TSAD04 Step 4. Add a Tooltip |
|
RAMP-TSAD04 Step 5. Add a Drop-Down |
|
RAMP-TSAD04 Step 6. Organize Fields inside Group Boxes |
|
RAMP-TSAD04 Step 7. Add Up and Down Buttons to Subfile |
|
RAMP-TSAD04 Step 8. Hide Function Keys and Add a Picture |
|
RAMP-TSAD04 Step 9. Add a Hyperlink |
|
RAMP-TSAD04 Step 10. Test the Redesigned Screen |
|
RAMP-TSAD04 Step 11. Remove the Screen Customization |
|
Summary |
|
RAMP-TSAD05: Using SHARED Properties and Functions |
|
What are Shared Scripts? |
|
RAMP-TSAD05 Step 1. Optional - Creating Your Own Copy of the Shared Scripts File |
|
RAMP-TSAD05 Step 2. Accessing SHARED properties and functions |
|
RAMP-TSAD05 Step 3. Creating your own SHARED properties |
|
RAMP-TSAD05 Step 4. Creating your own SHARED functions |
|
Summary |
|
RAMP-TSAD06: Handling Multiple Screens on Multiple Tabs |
|
RAMP-TSAD06 Step 1. A Multiple 5250 Screen Scenario |
|
RAMP-TSAD06 Step 2. Name the Screens |
|
RAMP-TSAD06 Step 3. Classify the Screens |
|
RAMP-TSAD06 Step 4. Review and Understand the Targets List |
|
RAMP-TSAD06 Step 5. Using Multiple Command Handler Tabs |
|
RAMP-TSAD06 Step 6. Review and Alter Buttons and Function Keys |
|
RAMP-TSAD06 Step 7. Review the value you have added to the 5250 application |
|
RAMP-TSAD06 Appendix: Function UFRTS03 |
|
RAMP-TSAD07: Handling Multiple Screens on a Single Tab |
|
RAMP-TSAD07 Step 1. A Multiple 5250 Screen Scenario |
|
RAMP-TSAD07 Step 2. Making a Plan |
|
RAMP-TSAD07 Step 3. Putting the Screens on a Single Tab |
|
RAMP-TSAD07 Step 4. Enable Function Keys/Buttons and Add Required Scripting |
|
RAMP-TSAD07 Step 5. Defining the Exit Junctions and vHandle_NAVIGATETO scripting |
|
RAMP-TSAD07 Step 6. Testing and Debugging |
|
RAMP-TSAD07 Step 7. Fine Tuning |
|
RAMP-TSAD08: Screen Wrapper Basics |
|
RAMP-TSAD08 Step 1. Name the Fields to Be Used in the Wrapper |
|
RAMP-TSAD08 Step 2. Create and Snap in the Screen Wrapper |
|
RAMP-TSAD08 Step 3. Understanding the Screen Wrapper Code |
|
RAMP-TSAD08 Step 4. Test Updating the Screen from the Wrapper |
|
Summary |
|
RAMP-TSAD09: Screen Wrapper with a Subfile |
|
RAMP-TSAD09 Step 1. Add an Image to the Screen Wrapper |
|
RAMP-TSAD09 Step 2. Add Skills List View to the Wrapper |
|
RAMP-TSAD09 Step 3. Add Code to Populate the List View |
|
Summary |
|
Scripting |
|
Learning |
|
Anatomy of Scripts |
|
Special Screen Script |
|
Junction Screen Script |
|
Destination Screen Script |
|
vHandle_NAVIGATETO Function |
|
vHandle_ARRIVE Function |
|
Your RAMP-TS Screen Script Defines a JavaScript Object |
|
Scripts in a Classic Details Display |
|
Javascript Essentials |
|
External JavaScript Documentation |
|
Basic Javascript syntax |
|
Reading, Writing and Storing Values |
|
alert() |
|
Converting Numbers to Strings |
|
Converting String to Numbers |
|
String Manipulation Functions |
|
Is This Variable Number or String? |
|
JavaScript Coding Styles |
|
Using the objGlobal Object |
|
Getting Organized |
|
Using objGlobal to pass optional parameters |
|
Using objGlobal to define commonly used functions |
|
Using |
|
Interacting with Instance Lists in Scripts |
|
The List Manager |
|
Visual and Programmatic Identifiers |
|
Working with All Selected Entries |
|
Scripting Pop-up Menu |
|
Replacing Hardcoded User Name with Current Framework User |
|
Replacing Hardcoded Employee Number with Current Instance List Entry |
|
Adding Your Own Options to the Scripting Pop-Up Menu |
|
Updating the Instance List from RAMP screens |
|
Filter Code which Automatically Handles Changes to Instance List |
|
Subfiles/Browselists |
|
Subfile Lines per Entry |
|
Identifying Subfile fields |
|
Referencing Subfile fields |
|
Iterating Subfile Rows |
|
Paging down or up a subfile |
|
Locating a specific value in a Subfile and making the selection |
|
Script Skeletons |
|
Script Functions |
|
LOCK_FRAMEWORK Function |
|
UNLOCK_FRAMEWORK Function |
|
RESTART_LAST_NAVIGATION Function |
|
OVRSFLAUTOGUI Function |
|
AVSWITCH Function |
|
TRIM_RIGHT Function |
|
TRIM_LEFT Function |
|
SHOW_CURRENT_FORM Function |
|
SHOWSTATUSBAR Function |
|
TOSTRING Function |
|
TONUMBER Function |
|
SETBUSY Function |
|
CHECK_FIELD_EXISTS Function |
|
DROP_SPECIAL_FIELD_HANDLER Function |
|
SET_SPECIAL_FIELD_HANDLER Function |
|
GET_FORM_MESSAGE Function |
|
SCREEN Function |
|
HIDE_5250_BUTTONS() Function |
|
SHOW_5250_BUTTONS() Function |
|
COPYTOCLIPBOARD Function |
|
FATAL_MESSAGE_TYPE Function |
|
SETKEYENABLED Function |
|
SETVALUE Function |
|
Q_SETVALUE Function |
|
GETVALUE Function |
|
SENDKEY Function |
|
Q_SENDKEY Function |
|
CHECK_CURRENT_FORM Function |
|
Q_CHECK_CURRENT_FORM Function |
|
AVCLOSEFORM Function |
|
HIDE_CURRENT_FORM Function |
|
CURRENT_FORM Function |
|
SETCURSORTOROW Function |
|
SETCURSORTOFIELD Function |
|
ALERT_MESSAGE Function |
|
CLEAR_MESSAGES Function |
|
FATAL_MESSAGE Function |
|
MESSAGE Function |
|
AVSIGNALEVENT Function |
|
TRACE Function |
|
HANDLE_PROMPT Function |
|
NAVIGATE_TO_SCREEN Function |
|
Q_NAVIGATE_TO_SCREEN Function |
|
STRIP_LEADING_NUMBERS Function |
|
ADD_STRING Function |
|
STRING Function |
|
OVERRIDE_KEY_CAPTION_SCREEN Function |
|
OVERRIDE_KEY_CAPTION_ALL Function |
|
AVSAVEVALUE Function |
|
AVRESTOREAVALUE and AVRESTORENVALUE Function |
|
ADD_UNKNOWN_FORM_GUESS Function |
|
SET_HANDLER_CAPTION Function |
|
Framework Objects that Scripts Can Refer To |
|
objGlobal |
|
objFramework |
|
objApplication |
|
objBusinessObject |
|
objCommand |
|
objListManager |
|
objUser |
|
Function Key Names for SENDKEY Function |
|
User-Defined Script Functions |
|
Switching Off Recursion Checking |
|
When Are Scripts Reloaded so That Change Can Be Tested? |
|
Advanced Scripting |
|
Creating your own navigation planner |
|
Using Screen References |
|
Using a vHandle_DEPART function |
|
Arrival Scripting and Inter-Screen Communication |
|
Debugging |
|
Debug and Diagnostics |
|
Common Scripting Errors |
|
Unable to display form |
|
Could not complete the operation due to error 80020101 |
|
Object expected |
|
Strange behavior in scripts |
|
Your script does not execute at all |
|
Tracing |
|
Using ALERT_MESSAGE in Your Scripts |
|
Screen Enrichment |
|
Hide screen titles in individual RAMP Screens |
|
Two Ways to Hide the Title |
|
The HTMLAPI Scripting Object |
|
Using The HTMLAPI Scripting Object |
|
HTMLAPI Usage Examples |
|
Implementing a Basic Standard Layout function |
|
Generically Modifying a Screen via the Standard Layout function |
|
Specifically Modifying a Screen via a Specific Layout function |
|
Adding More Capability to the Standard Generic Handler |
|
Modifying Subfile Headings |
|
Modifying Fonts |
|
Adding Images |
|
Things to watch out for |
|
What HTMLAPI functions are provided? |
|
Screen Wrappers |
|
When to Use 5250 Screen Wrappers? |
|
Screen Wrapper Fundamentals |
|
Events |
|
RampMessage Event |
|
RampTSAvailable Event |
|
vHandleArrive Event |
|
Methods |
|
MakerampTSavailable Method |
|
NavigateToScreen Method |
|
SetValue Method |
|
GetValue Method |
|
SendKey Method |
|
Current_Form Method |
|
SetCursor Method |
|
SetCursorToField Method |
|
Get_Form_Message Method |
|
Check_Field_Exists Method |
|
Examples |
|
Example 1: Show Employee Details. |
|
Example 2: Show Employee Details and Skills |
|
Example 3: Show the System i Disk Usage |
|
Programming Techniques |
|
Using Function Key Descriptions to Condition RAMP Buttons |
|
Questions about the Function |
|
SHARED.apply5250FunctionKeyPatterns |
|
Handling a Single Screen which Shows Multiple Modes |
|
A Command Handler Tab with Many 5250 Destinations |
|
A User Controlled Command Tab with Many Destinations |
|
A Program Controlled Command Tab with Many Destinations |
|
Using this Approach in other Situations |
|
Advanced Prompting |
|
Using Prompter Forms |
|
Are any Examples Provided to Learn More about this Topic? |
|
A RAMP Design Approach – Using a Single Junction Point (SJP) |
|
How does an SJP work? |
|
Is an SJP really that simple in a real application? |
|
Can SJP do the other useful things? |
|
Does SJP have to be CL (Control Language) program? |
|
What other issues might impact the use on an SJP approach? |
|
Using HIDE_CURRENT_FORM to manage access to command handler tabs |
|
Multilingual RAMP Applications |
|
Troubleshooting |
|
xxxxxxx is an orphan script and should be deleted |
|
Screen does not react when selection is changed in instance list |
|
Error running RAMP in end-user mode (UF_EXEC) but not in design mode (UF_DESGN) |
|
Frequently Asked Questions |
|
How to tell in a RAMP-TS script what theme is being used? |
|
How is a Framework associated with RAMP-TS or RAMP-NL? |
|
I have made a mistake in classifying a screen. How do I change the classification? |
|
How do I differentiate two screens which have the same name? |
|
How can I use web browser windows from RAMP scripts? |
|
How can I get the message from the bottom of the current 5250 screen into my RAMP script? |
|
How do I handle RA (Auto Record Advance) fields? |
|
Why should the F12=Cancel and F3=Exit buttons and function keys be disabled on every 5250 screen? |
|
Do I have to identify and script every 5250 screen in my application to modernize it? |
|
How can I get the RAMP tool to assign a fixed session? |
|
How do I make my scripts work in multiple partitions? |
|
Can you add in your own functions to the scripts? |
|
How do I stop break messages in aXes 5250 sessions? |
|
Appendix |
|