Professional Documents
Culture Documents
AppWorx Corporation
AppWorx Basic Training Document No. 70OD-S-042006 Copyright 2002 - 2006 AppWorx Corporation All Rights Reserved. Printed in USA. This document may not be copied, photocopied, reproduced, translated or reduced to any electronic medium or machine readable form, in whole or in part, without the express written consent of AppWorx Corporation. The information contained in this document is subject to change without notice and does not represent a commitment on the part of AppWorx Corporation. The software described in this document is distributed under a license agreement or nondisclosure agreement. The software may be used and/or copied only in accordance with the terms of the agreement. AppWorx is a registered trademark of AppWorx Corporation. All other product names and services identified throughout this book are trademarks or registered trademarks of their respective companies.
AppWorx Corporation
2475 - 140th Avenue NE Bellevue, WA 98005 United States Phone: 877-APPWORX (877-277-9679) Fax: 425-644-2266 support@appworx.com www.appworx.com
AppWorx Europe Ltd.
Basepoint Business & Innovation Centre, Unit 1 Metcalf Way, Crawley West Sussex RH11 7XX United Kingdom Main Telephone Number : +44 (0) 1293 813900 Fax Number: +44 (0) 1293 813901 uk@appworx.com
iii
Contents
Lesson 1 Introduction ............................................................................................................. 1
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Course Overview................................................................................................................................ 2 Introduction to AppWorx..................................................................................................................... 4 AppWorx Is Object-Oriented .............................................................................................................. 6 AppWorx Architecture ........................................................................................................................ 8 Using the AppWorx Desktop ............................................................................................................ 10 Using Explorer.................................................................................................................................. 12 Adding, Editing, and Deleting AppWorx Objects.............................................................................. 14 Running Reports .............................................................................................................................. 16 Editing User Settings........................................................................................................................ 18 Exercise 1A: Modifying Your User Settings ................................................................................. 20 1.10 Review Questions .......................................................................................................................... 22
iv
Contents
6.6 Viewing an Historical Gantt Chart.................................................................................................... 98 6.7 Monitoring System Performance with the Dashboard ................................................................... 100 6.8 Viewing a Gantt Chart of a Chain .................................................................................................. 102 6.9 History and Custom Reports.......................................................................................................... 104 6.10 Review Questions........................................................................................................................ 106
11.3 Passing Values Through a Chain with Prompts........................................................................... 206 Exercise 11B: Passing Values through a Chain......................................................................... 208 11.4 Review Questions ........................................................................................................................ 210
vi
Contents
Lesson 1
Introduction
1.1 Course Overview ....................................................................................................................... 2 1.2 Introduction to AppWorx ............................................................................................................ 4 1.3 AppWorx Is Object-Oriented ...................................................................................................... 6 1.4 AppWorx Architecture ................................................................................................................ 8 1.5 Using the AppWorx Desktop ................................................................................................... 10 1.6 Using Explorer ......................................................................................................................... 12 1.7 Adding, Editing, and Deleting AppWorx Objects ..................................................................... 14 1.8 Running Reports ...................................................................................................................... 16 1.9 Editing User Settings ............................................................................................................... 18 Exercise 1A: Modifying Your User Settings ............................................................................... 20 1.10 Review Questions .................................................................................................................. 22
Lesson 1: Introduction
Slides
Course Objectives
At the end of the course, you will be able to: Run jobs Manage and monitor jobs as they are processed through AppWorx View output online Create modules to run programs Add prompts to modules to accommodate parameters in programs Create chains using predecessors Schedule modules and chains Pass prompt values through a chain Define substitution variables to query a database and use the values in prompts and condition statements Use condition statements to control the execution of modules and chains
Online Manuals
Complete online versions of the AppWorx manuals are accessible by selecting the Help button in AppWorx. If you select Help while defining an object, AppWorx opens the corresponding help topic. You can register for a user name and password to download PDF manuals at:
http://support.appworx.com.
Knowledge Base
The knowledge base provides write-ups to address problems and frequently asked questions. It is searchable by error message, category, and text. The knowledge base is located on the AppWorx Support Site.
http://support.appworx.com
Notes
Lesson 1: Introduction
Slides
What is AppWorx?
AppWorx is a powerful application job scheduling tool that meets the needs of operators, programmers, and system administrators throughout the life cycle of an application. AppWorx lets operators submit jobs on an ad hoc basis, view the output online, and print the output to a system printer or a local Windows printer. But it also lets programmers set up sophisticated job scheduling without writing scripts. Instead, users can create logical conditional statements with a few mouse clicks. System administrators will find AppWorx roles and security powerful tools for managing access to AppWorx.
S ccrip ts S rip ts
Pinpointing problems in a job stream, and restarting a job stream at any point of failure.
Balancing system load using AppWorx schedules, queues, and agent groups.
U N IX
W in d o w s
Controlling job stream execution based on the state of your corporate database with dynamic substitution variables
Lesson 1: Introduction
Slides
Modules
Agents
Applications
Libraries
Program types
Queues
Logins
Printers
Figure A. Objects are combined to define modules and chains. AppWorx takes the structured approach to its logical conclusion: object-oriented operations. Each element in the system is defined as an object. Once defined, AppWorx objects can be combined in an infinite number of combinations to accomplish operational tasks. Objects are combined to define modules. Modules are combined with other objects (such as queues, as shown in Figure A) to create chains that run batch processes. All of this is accomplished without writing scripts.
Modules (Jobs)
For AppWorx to run a program or execute a script, you must create a module. A module includes the information required for AppWorx to run a program or script on the server. You create a module and specify the program location, input, and output parameters. The information includes such items as the program directory, name, and parameters. Modules are run both individually and as components of AppWorx chains. Furthermore, a module can be a component of as many chains as you wish. If you change a module definition, the change is applied to every chain that includes it.
Queues
You control the flow of jobs to servers by using AppWorx queues. All jobs pass through an AppWorx queue to get to a server. You control queue throughput by setting the number of concurrent jobs or threads that can be processed. You can define an unlimited number of queues.
Roles
In a traditional system, you create groups of users, printers, and applications. In AppWorx, roles replace groups. Roles control access to all areas of AppWorx. You can define roles for users, printers, and applications, as well as any other set of objects. Roles can contain any combination of objects, and objects can be assigned to any number of roles.
Notes
Lesson 1: Introduction
Slides
Master
The master resides on a server and is the execution logic or brain of AppWorx. It monitors the schedule and, at the appropriate time, sends jobs to the designated agent for execution. The master connects to the AppWorx database where all object definitions are stored.
Agent
The local agent runs programs or executes scripts on the master. It receives commands via the master. A remote agent resides on another server. An agent must be installed on each machine where jobs are executed. The master will schedule and control job execution on all the agents assigned to it. The agent monitors jobs until they complete.
Client
The AppWorx Java-based client can run on any Java compliant device such as a PC, Apple Macintosh, or Sun workstation. The client provides access to all AppWorx functions and features. The clients communicate with the AppWorx master.
Object Storage
AppWorx uses object definitions stored in a database to give it an advantage over all other schedulers. Module and chain definitions, along with all other object definitions, are stored in the AppWorx relational database. This makes it easy to update an object's definition, and have AppWorx apply the updates everywhere you use the object.
Notes
10
Lesson 1: Introduction
Slides
Taskbar
Figure A. The AppWorx desktop. From the desktop you can: Define AppWorx objects such as modules and chains Run jobs Monitor operations View output
ToolTips
ToolTips provide a brief description of AppWorx buttons, icons, and fields. To see a ToolTip, rest the mouse pointer over the button, icon, or field. A ToolTip appears after the mouse pointer has remained motionless for a second or two. In Figure A, the mouse pointer is resting on the Library icon in the toolbar.
Toolbar
The toolbar consists of a row of icons on the top of the screen. When these icons are clicked, AppWorx opens a corresponding window. You can view or hide the toolbar by opening the View menu and checking the toolbar option. You can add to or edit the icons displayed on the toolbar with the Options menu by selecting Settings.
11
Taskbar
The taskbar is a graphic bar on the desktop used to select active AppWorx windows. From the taskbar, you can right-click to: Restore a window to the desktop or minimize it to the taskbar. Maximize a window to fill the desktop. Move a window to the front of the desktop. Close a window. Selector windows are special windows used when defining AppWorx objects. They are not displayed on the taskbar because they do not contain unique information and are represented by icons on the toolbar.
Notes
Status Bar
The status bar is displayed across the bottom of the Explorer window. Its color alerts you to the status of the AppWorx master, agents, and jobs running in the Backlog. When the Explorer window is minimized it uses the same color scheme on the taskbar.
12
Lesson 1: Introduction
Slides
Figure A. Object keys can be opened on the Explorer window to focus on jobs in the Backlog. The icon you select in the object tree determines the jobs listed in the Backlog.
To list: Select this icon:
All jobs in the Backlog. Jobs that have been submitted using the Requests window. Jobs that are set to run on a particular agent, or agent group. Jobs that are set to run on a particular queue. Jobs that are part of a particular chain. Jobs with a particular job status (WAITING, RUNNING, ABORTED, or HOLD).
Note: You can also filter the display of agents and/or queues by going to the
13
Notes
14
Lesson 1: Introduction
Slides
Figure A. Selector window To open a selector window, do one of the following: Select an icon from the toolbar on the desktop (see Figure B). Select an item from the Objects Admin menu on the desktop. Select the icon next to an objects field when defining another object. Note: AppWorx roles control access to the selector windows. If you do not have access to one, see your AppWorx administrator.
Figure B. You can open selector windows with the toolbar icons.
Click New. Select the object and click Edit. Select the object and click Delete.
15
If an object you are deleting is referenced (used) by one or more objects, you must remove the references before it can be deleted. If you try to delete an object without first removing the references, AppWorx will display a message saying it is in use. To find out where the object is being used, click the Usage button in the Selector window. If modules or chains are in the Backlog, you cannot delete their definitions. You will need to wait until they complete executing.
Notes
Figure C. To view all references for an object, click Usage on any object selector window.
Copying Objects
To copy an AppWorx object, choose Copy on the objects selector window (see Figure D). AppWorx a window for the new object. When copying modules and chains, you can decide whether to copy the conditions, notes, and schedules.
Figure D. To copy any AppWorx object, select the object and click copy.
16
Lesson 1: Introduction
Slides
Viewing Reports
You can view reports for each of the operations windows and selector windows.
To view reports for: An object type An operations window Do this:
This opens the Reports window and selects the report type (role type) corresponding to the window you opened it from. In Figure B, the Reports button is selected on the Modules selector window, opening the Reports window and with the Modules role type highlighted. You can type the first few letters of a reports name in the Search field, and AppWorx will find it. The Search field accepts valid UNIX regular expressions. To view reports for another object type, select that object type from the Role Type box. If an object is not listed in the Role Type box, there are no reports for it.
17
Notes
Figure B. Select a report on the Reports window. Once you select a report, click the Show button.
Prompt Values.
Some reports require you to enter prompt values. If the report you select requires prompt values, you must respond to them in the Report Parameters window shown in Figure C. Once prompts are provided (if necessary), AppWorx displays the report in Figure C. Enter prompt values its own window as shown in Figure A
18
Lesson 1: Introduction
Slides
19
Notes
20
Lesson 1: Introduction
Slides
21
Notes
22
Lesson 1: Introduction
Notes
23
Notes
24
Lesson 1: Introduction
Lesson 2
Requesting Jobs
2.1 Introduction to Requesting Jobs .............................................................................................. 2.2 Requesting and Submitting Modules and Chains .................................................................... 2.3 Viewing Output with the File Viewer ........................................................................................ Exercise 2A: Running a Module from the Requests Window .............................................. 2.4 Review Questions .................................................................................................................... 26 28 30 32 34
26
Slides
Figure A. Select one or more modules or chains and click Request, or simply double-click a single module or chain to request.
27
Notes
Viewing Output
After a module executes, you can view and print output online using the AppWorx File Viewer shown in Figure C. The File Viewer is accessible from both the Explorer and Output windows.
28
Slides
29
Responding to Prompts
If prompts were defined for the module or chain, they are displayed in the Prompts box in the Submit window. There are several ways to respond to a prompt: Accept the default value if one is displayed. 200.1.1.58 is the default value for the first prompt in Figure A. If you change the default value, you can select the Default button to bring it back. Enter a value in the default column. Click the LOV or MS button (if enabled) to pick a value from a list. The LOV button lets you select a single value. The MS button lets you select multiple values. The LOV and MS buttons will be enabled only if a list of values or multiple select prompt has been defined for the module.
Notes
Output Function
The output function determines how output is handled. This field will be editable only if a printer has been assigned to the module or chain. There are three choices: LOG: The application output or report files will be listed by default in the Output window. AppWorx loads all application output or report files for viewing in the Output window for jobs with a LOG output function every time you log into the client. This can take several seconds or minutes. If more than 500 files are loaded, an alert will be displayed. Therefore, if you are not using the Output window (that is, you view output from the History instead of the Output window), you should use the STORE setting. PRINT: The output is printed according to the print settings specified on this tab. STORE: This is the default setting. The output is not printed and is not listed in the Output window. If PRINT or STORE are selected, you can view all output files from the Output window by running an output query. With any of these settings, the application output and the system output files can be viewed from the Explorer window.
30
Slides
Figure A. You can view reports using the AppWorx File Viewer or another designated viewer.
31
Notes
Figure B. Email window Separate multiple email addresses with a space or semicolon. To select from emails assigned to AppWorx users, click the Select button. AppWorx opens a window where you can select the email addresses. You can decide whether to add the output file as an attachment and include additional text using the box at the bottom of the screen.
In order to send emails, you must specify email settings for the AppWorx master/local agent.
File Associations
You can also associate types of files with other viewers. For example, if you are generating an .xls file, you can have AppWorx automatically launch Microsofts Excel as the viewer. To do this you must have the type association selected in the File Association window (see Figure C).
32
Slides
Figure A. You can submit modules and chains on an ad hoc basis with the Requests window.
What to Do
To request the EMPLOYEE_REPORT module and view its output: 1. 2. 3. 4. 5. 6. 7. Select Requests from the Operations menu to open the Requests window and request the EMPLOYEE_REPORT module as shown in Figure A. Click on the LOV button. AppWorx displays the List of Values dialog box shown in Figure B. Select a department and double-click it. Add your two-digit nn suffix (e.g.: 01, 02, etc.) to the module name. Submit the module by clicking the Submit button. Open the Explorer window and wait for the job to complete and move to History. Right-click the EMPLOYEE_REPORTnn module in History.
33
Notes
Figure B. The List of Values dialog box. 8. 9. Select Output from the pop-up menu and double-click the b file. Please answer the following questions: How many output files are there? _________ List the name of the output file that contains the department report generated by the module executing the program. _____________________________ List the name of the output file that contains the value of the prompt, login information, and any error messages that may have been generated. _____________________________
34
Notes
35
Notes
36
Lesson 3
Monitoring and Managing Agents and Queues
3.1 Introduction to Monitoring and Managing Agents and Queues ............................................... 3.2 Managing Agents ..................................................................................................................... 3.3 Managing Queues ................................................................................................................... Exercise 3A: Creating a Queue and Running a Job Through It ........................................... 3.4 Review Questions .................................................................................................................... 38 40 42 44 46
38
Slides
Figure A. The Agent Summary AppWorx queues control the flow of jobs. All jobs must pass through a queue to get to be executed. You control queue throughput by assigning a queue to a thread schedule. From Explorer, you can check the status of queues, change queue settings, and assign queues to schedules to control the number of threads assigned to a queue.
39
Notes
40
Slides
41
Notes
42
Slides
Figure A. You can monitor and manage queues from Explorer. All jobs submitted to your system from AppWorx must pass through an AppWorx queue. You can control the number of jobs that flow through a queue in several ways: Select a thread schedule for the queue based on its Min thread and Max thread values. Minimum threads ensure that you always have a specified number of standby threads available for priority rush jobs. Maximum threads control the maximum number of jobs that can run concurrently in the queue. Set a priority for each queue. Use the single and multiple thread settings for modules and chains.
43
Defining Queues
To define a queue, you must name the queue, assign it to a thread schedule, set its priority, and make the queue active or inactive (see Figure B).
Notes
44
Slides
Creating a Queue
To create a queue and assign a predefined schedule to it: 1. From the Queues selector window, click New. AppWorx opens the Queues window shown in Figure A.
Figure A. Fill in the fields to add the queue. 2. Complete the fields using the information in the table below.
Field Description
Name Schedule
Priority
The name may be up to 10 characters long. Name your queue QUEUEnn. A schedule has to be defined in the Thread Schedules window. The schedule controls the maximum number of concurrent jobs that can run through the queue at any given time. AppWorx comes with a number of predefined schedules, 2 all Day, 3 all Day, , 9 all Day. You should select a schedule that allows at least three jobs to run concurrently. Defines the order in which queues are scanned for job initiation. Queues are scanned starting with the number 1. You can leave your queue at the default setting of 50.
Activates the queue. Active queues apply the thread settings. When you inactivate a queue, no jobs will be processed through it. The jobs will remain in the Backlog with a NULL status until the queue is activated.
Active
3.
45
Notes
3.
Figure B. Set the sleep prompt value to 30, and the Queue to 4. 5. 6. Submit the module. Open the Explorer window. Select QUEUEnn from the queues in the object tree. You will see the TEST_MODULE module running in the QUEUEnn Backlog as shown in Figure C.
46
Notes
3.
47
Notes
48
Lesson 4
Viewing Forecasts and Production Schedules
4.1 4.2 4.3 4.4 Introduction to Viewing Forecasts and Production Schedules ................................................ Generating and Viewing a Forecast ........................................................................................ Generating a Production Schedule .......................................................................................... Review Questions .................................................................................................................... 50 52 54 56
50
Slides
Forecast
Using the Forecast feature, you can view a list of scheduled modules and chains. An example forecast is shown in Figure A.
Figure A. The Forecast window. The data displayed in forecasts is generated and loaded into AppWorx by running the FORECAST module. When you create a schedule for the FORECAST module, you determine the time frame of the forecast and how often it is run.
Production Schedule
You can get a more detailed look at jobs that are scheduled to run by generating a production schedule. An example production schedule is shown in Figure B.
Skip {Chain}Report Name ---- ---------------------------------------------------Saturday Feb 23 2004 00:00 {SYSTEM}Saturday Feb 23 2004 00:00 {SYSTEM}DELDEFAULT NDOW {SYSTEM}HISTORY_PURGE Monday Feb 25 2004 00:00 {SALES_REPORTS}Monday FEB 25 2004 00:30 {SALES_REPORTS}REGION_A B If CURRENT TIME > 06:00:00 then SKIP TASK {SALES_REPORTS}REGION_B B If CHECK FILE NO /reports/region_b.dat {SALES_REPORTS}REGION_C
51
Notes
Figure B. Optional Graphical Forecast window The Graphical Management Package is covered in the next lesson.
52
Slides
Generating a Forecast
To generate a forecast, you run the FORECAST module shown in Figure B.
Figure B. To generate a forecast, you run the FORECAST module. You can run the module from the REQUEST window, or schedule it to run at set times during the day.
53
Notes
The start date and time for the forecast. The default value for the prompt is a series of numbers created using the #aw_now substitution variable. They represent the current date and time. In Figure B the default value is 20020219090643, this translates to: Year: 2002 Month: February (02) Day of month: 19th Time: 9:06:43 A.M. The end date and time for the forecast.
End Date Time (default is 1 day past start date) Max Depth Minimum Schedule Units
The levels of nested chains you wish to show in the forecast. Select whether you want to limit the forecast to list only one job per day, hour, or minute.
Viewing a Forecast
To open the Forecast window shown in Figure A, do one of the following: Open the Operations menu and select Forecast. Select the Forecast icon from the toolbar. AppWorx displays the printable list of modules and chains that are scheduled to run through the end of the next day (see Figure A). Each scheduled module/ chain includes the start date and time and the module or chains name. Chains also include a key icon used to expand/collapse them. To view the modules within a chain, click the chains key. To expand all keys for a chain and its children, select the chain, go to the View menu and select Expand Chains. To expand the keys in all chains, choose Expand All. Data displayed in forecasts is generated and loaded into AppWorx by running the FORECAST module. When you create a schedule for the FORECAST module, you determine the time frame of the forecast and how often it is run. For more information on running the FORECAST module, see topic 7.4 Setting the FORECAST Module Start Time(s).
54
Slides
Figure A. The PRODSCH chain in the Submit window. The output for the SCHPRINT module reports the jobs by date and time. It includes the following information: The date and time each chain is scheduled to run. The name of each module in each chain. The conditions associated with each module. The report can show only the jobs that will run, or all jobs that will run and all jobs that are eligible to run but will not run due to conditions set on the module. The sample production schedule report shown in this topic displays two chains: SYSTEM and SALES_REPORTS. The Skip column in the analysts report displays an abbreviation indicating why the module will not be run. Notice that NDOW displays for HISTORY_PURGE. Chain names are in {brackets}. Module names follow the chain names. The SALES_REPORTS chain runs three modules: REGION_A, REGION_B, and REGION_C. The first two modules each have a BEFORE condition.
55
Choose N to display only those jobs that will run. This report is most useful for operators who are monitoring the system. 4. Enter the minimum schedule number.
To display Use this value
Notes
Jobs scheduled to run daily Jobs scheduled to run hourly Jobs scheduled to run on minute intervals
-3 -4 -5
Note: If selecting an interval other than -3, you should review your start
and end dates, because the shorter interval settings will produce larger reports. 5. Submit the module and view the output for the SCHPRINT module.
Not active Not run, day of week Skip, not in calendar (being run with a calendar and it's not in the calendar) Run, in calendar (being run with a calendar and it's in the calendar) Skip, in calendar (skip using a skip calendar)
56
Notes
57
Notes
58
Lesson 5
Monitoring and Managing Jobs
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Introduction to Monitoring and Managing Jobs ........................................................................ Viewing and Editing Job Details .............................................................................................. Taking Action on Jobs in the Backlog ...................................................................................... Removing Jobs as Predecessors in History ............................................................................ Working with Operator Logs .................................................................................................... Exercise 5A: Performing Operations ................................................................................... Filtering the Backlog and History ............................................................................................. Querying for Jobs in History .................................................................................................... Exercise 5B: Finding a Job in the History ............................................................................ Staging Jobs ............................................................................................................................ Exercise 5C: Staging a Chain .............................................................................................. Review Questions .................................................................................................................... 60 62 64 66 68 70 74 76 78 80 82 84
60
Slides
61
Notes
Green Yellow
Red
All jobs, masters, and agents are running satisfactorily. One or more jobs are on hold. Note: If there are aborted jobs and jobs on hold, the aborted jobs take precedence and the status bar will be red. One or more jobs have aborted, or otherwise not completed with a status of FINISHED. Or a master or agent has a BUSY or TROUBLE status.
The status bar displays the time that the display was last refreshed. The virtual workday start time is displayed to the left of the status bar. It is used to establish reset times for predecessor statements. The current date and time of the database are displayed to the right of the status bar.
62
Slides
Figure A. Right-click and select Job Details to view the parameters for a job. Any changes you make apply only to the current instance of the job, and will not affect the job the next time it is submitted.
63
To remove a predecessor link, place a check mark in the Remove column and click Apply.
Notes
Viewing Successors
If a job in the Background has one or more successors, you can view the successors by right-clicking the job and choosing the Successors option from the pop-up menu.
Viewing Notes
Notes are written by the person who created the module or chain, they provide relevant information about the processing of a job. You can access these comments, suggestions, or instructions from the Backlog or History when they have been included.
64
Slides
Killing Jobs
If a job is running, you can kill it by selecting the job and using the Kill command. When you kill a job, it stays in the Backlog until you delete it, or reset it. When you kill a job, AppWorx makes an entry in the History showing the job was killed.
65
from the Backlog and an entry is displayed in the History. You cannot restart a job from the Explorer window once it has been removed from the Backlog. However, you can resubmit the job by going to the Requests window.
Notes
Deleting Jobs
If a job in the Backlog has a status other than STARTING or RUNNING, you can delete it. For example, jobs with a status of THREAD WAIT, ABORTED or KILLED can be deleted. When you have deleted a job, you cannot resubmit it directly from the Explorer window.
66
Slides
Figure A. You can remove this run of a job as a predecessor for all potential predecessor links from the History.
Procedure
To remove a job as a predecessor for all potential predecessor links, right-click the job listing in the History and select Remove as Predecessor from the popup menu as shown in Figure A. AppWorx removes this running of the job as a predecessor for all predecessor links which reference it. The predecessor links of other jobs will now need to be satisfied by another instance of this module, chain, or chain component.
67
Example
Assume you are running two nightly processing chains: Chain A and Chain B. Both chains have external predecessors to each others components. Mid-way through processing, both chains abort. You want to rerun the chains, but the external predecessors up to the point of failure have already been met because their jobs have completed successfully and passed into History. If you rerun the chains, all cross-dependencies up to the point of failure will already have been met and the chains may run out of sync. However, by using the Remove as Predecessor feature on the completed jobs in History, you can effectively reset all the external predecessors.
Notes
68
Slides
69
3.
To view logs for other modules/chains, select the module/chain from the
Module drop-down box. You can also query by keywords in the text.
Notes
Figure B. View logs for other instances of the job or query by name or keyword to view other jobs operator logs.
70
Slides
HOLD_TASK
This job is immediately put on hold by a condition statement. All of the modules in the chain are set to run sequentially, so this job prevents the other components from running. This job is in the chain so you can practice deleting a non-running job. This job has an incorrect value entered for a prompt that causes it to abort. This job is used to show what happens when you remove all predecessor links from a component.
After running the chain from the Requests window, you will switch to Explorer to: Remove the predecessor link from the DELETE_PRED_TASK job. Delete the DELETE_TASK job. Change the status of the HOLD_TASK job. Change the prompt value for the ABORT_TASK job, reset it, kill it, and finally delete it. This exercise illustrates the flexibility of job control in AppWorx.
Figure A. Select your queue to view only the modules you have submitted.
71
2. 3. 4. 5.
Enter your nn number in the Task Name Suffix field. This will enable you to find your specific chain in the Backlog. Click Submit. This runs the OPERATIONS_nn chain. Open the Explorer window. Expand the Chains listing in the Explorer tree and select the OPERATIONS_nn chain as shown in Figure B.
Notes
Figure B. Select your chain to view only the chain you submitted and its modules. Notice that the OPERATIONS_nn chain has an INITIATED status, the HOLD_TASK module is on hold, and the other three jobs are PRED WAIT (not running).
Deleting a Job
You can delete a job if it is in the Backlog but has not yet started. To delete the DELETE_TASK job: 1. 2. Right-click the DELETE_TASK job in the Backlog. Select Delete from the pop-up menu.
72
Notes
Figure C. Select Reset from the pop-up menu to reset a module on hold. 5. Note whether the module runs. If the module runs, the ABORT_TASK module should begin and abruptly abort.
Figure D. You can edit prompts in the Backlog and reset modules. This will cause the module to run for 5 minutes when it is reset. 3. Reset the module.
73
Notes
74
Slides
Figure A. You can select any combination of filters. To filter Backlog and History, open the Filter menu and choose Filter Backlog and History. Enter values in the fields by doing one or more of the following: Type in names of the objects separated by commas. Select from a list of objects by clicking on the object icon at the end of the field.
Saving a Filter
You can save a filter to use later by entering a name in the Filter name dropdown box. The filter will be saved when you click OK. Saved Filters can be recalled from the Filter name drop-down box for History queries, Output queries, and filters of the Backlog and History.
75
Notes
Figure B. Object assignment window for modules Use the Other filters field to enter text-based filters. You can enter several letters, and all objects beginning with those letters will be included. You can use wildcards in the text. You can use the _ wildcard to represent a
single character, and the % wildcard to represent an unlimited number of characters.
Use the Search field to query the Unassigned table. You can apply the search criteria to the Assigned column as well by selecting the Show all assigned option.
76
Slides
Figure A. You can limit the jobs listed in the History using the History Query window. This window works the same way the Filter window works.
77
Notes
78
Slides
What to Do
1. 2. Open Explorer. Open the Filter menu and select History Query. AppWorx displays the History Query window shown in Figure A.
Figure A. History query window 3. In the Modules field, type EMPLOYEE_REPORT_nn, where nn is your student number. You cannot select this job using the icons, because it ran with a task name suffix. 4. Click OK and check if the results are what you expected.
79
Notes
80
Slides
Statuses
Staged jobs in the Backlog will have a DATE PENDING status as shown in Figure A. Components of a chain in DATE PENDING status will have a STAGED or STAGED_PW status (depending on the components predecessor requirements).
Run a non-scheduled job. Run a non-scheduled job at a later date. Do not run a scheduled job. Run a scheduled job with changes.
Request the job from the Request window. Request the job from the Request window and change the start date. Stage the job, then delete it from the Backlog. Stage the job and make the changes in the Backlog.
Filtering
You can filter staged jobs in the Backlog using the Future Hours field in a Backlog and History filter.
81
Notes
Stage jobs for an operations shift Edit the job details for one or more particular jobs.
Use the MS button to select all modules and chains that are assigned to one or more AppWorx applications. Use the MS button to select individual modules and chains from the application(s) selected in the first prompt. If one or more applications are selected, but not any chains or modules, then all chains/modules of the selected applications will be staged. Any scheduled chains or modules not staged will be inserted in the Backlog at the time they are eligible to run. Determine whether you wish to include chains/modules with Hours or Minutes selected in their schedules Units box. Determine the number of hours you want to stage jobs.
Multiple Schedules
You can create multiple schedules for the APPWORX_STAGING module that use different prompt values. For example, if you wanted to stage jobs for the next eight hours, and wanted to update the staging every hour, you might create the following schedules: WORKDAY: Runs Monday through Friday at 8:00 A.M. and lists all chains and modules for 8 hours without including hour/minute schedules. EVERY_HOUR: Runs every hour and lists all chains and modules including hour/minute schedules.
82
Slides
Scenario
You are an operator working in ABC Companys operations group. ABC Company has been running AppWorx for many months now, and operations is automated except for special requests. As such, you do not stage jobs in AppWorx unless there is a problem or special request. The SALES_REPORTnn chain is scheduled to run everyday at 11:00 P.M. You just received a call from one of the production analysts requesting that for tonights run, the WESTERN_REGION module should not be run.
What to Do
1. 2. 3. Stage the SALES_REPORTnn chain for the next 24 hours. Delete the WESTERN_REGION module from the chain for tonights run. You receive another phone call from the production analyst saying they want to cancel the entire chain. Delete the SALES_REPORTnn chain from the Backlog.
83
Notes
84
Notes
85
Notes
86
Lesson 6
Graphical Analysis Package (optional)
6.1 Introduction to the Graphical Analysis Package ...................................................................... 88 6.2 Monitoring and Managing Jobs with the Gantt View ............................................................... 90 6.3 Reading the Gantt View ........................................................................................................... 92 6.4 Setting the Gantt View Preferences ........................................................................................ 94 6.5 Viewing a Graphical Forecast .................................................................................................. 96 6.6 Viewing an Historical Gantt Chart ............................................................................................ 98 6.7 Monitoring System Performance with the Dashboard ........................................................... 100 6.8 Viewing a Gantt Chart of a Chain .......................................................................................... 102 6.9 History and Custom Reports ................................................................................................. 104 6.10 Review Questions ................................................................................................................ 106
88
Slides
89
Dashboard
If you want to monitor system performance, you can use the Dashboard included in the optional Graphical Analysis Package. Several Dashboard windows are shown in Figure C.
Notes
Graphical Forecast
The Forecasted Gantt view window shows you a list of scheduled modules and chains in a Gantt chart format. The Graphical Forecast is part of the Gantt view, an add-on product to AppWorx.
90
Slides
Figure A. The Gantt view window The Gantt view window displays an expandable job tree on the left, and the Gantt chart on the right. Each job (module or chain) is displayed on its own row. You can change the size of the two panes by dragging the vertical splitter bar that divides the panes. Rectangles represent the expected run times of the jobs: black for chains and blue for modules. Arrows drawn between the rectangles indicate predecessor links.
Gantt Legend
The Legend describes the graphics used in the Gantt view. To display the legend, click the Legend button in the menu bar. To close the Gantt Legend window, click the X in the upper right corner of the window.
91
Notes
Figure C. Hovering the mouse pointer over an object in the tree displays information about the object in a pop-up window.
92
Slides
Chains
Chains are represented by a rectangle with a black border. The rectangle extends from the scheduled start time to the estimated completion time based on the average run time for the chain. The average run time is based on the sum of the average run times of all jobs in the chain. When a chain is initiated, a green bar is displayed in the rectangle. The green bar indicates the current run time for the chain. The green bar is displayed until the chain is completes or is killed. When a chain completes, the run time bar turns black. If a job in a chain aborts, a red X is placed over the chain name in the job tree. Note a chain never aborts, only the components in a chain. From an operations standpoint, you can display only the unexpanded chains in the Gantt chart and easily monitor the system. If a problem arises with a chain, or you want to see more details about individual components in a chain, you can expand the chain.
Modules
Modules are represented by a rectangle with a blue border. The rectangle stretches from the scheduled start time to the completion time based on the average run time for the module. Actual run times for chains and modules are represented by solid bars in running through the center of the rectangles. The color of the bar indicates the status of the job.
Bar Color Description
Job is waiting to run. Job is running Job is on hold Job has aborted Job has completed successfully
93
symbols will align with the start and end times of a chain or module. If a chain or module starts earlier or later than scheduled, these symbols move to reflect the difference in times.
Notes
Examples
To help you interpret the start and end time symbols as they relate to chains and modules, several examples are given below.
When a chain or module is: The bar looks like this:
Waiting to run and is still on schedule Waiting to run and is expected to start ahead of schedule. Waiting to run, but is behind schedule Running on schedule Running ahead of schedule. Running behind schedule
94
Slides
Keep History
When selected, this option will keep completed chains in the Gantt view. Normally, completed chains are not displayed in the view. The chains will remain in the Gantt view until you close the Gantt view window.
95
Notes
96
Slides
2.
If you wish to filter the jobs displayed in the forecasted Gantt view window, edit the options described in the table below.
Field Limits the display of data from the FORECAST module to:
Start date End date Sub levels Include minute and hour schedules
Jobs scheduled after this start date. Jobs scheduled before this start date. Chain components within a maximum nested depth. Include jobs that are scheduled by minutes or hours (when unchecked).
97
By entering information into the fields on the Forecast dialog window, you are filtering the data generated by the FORECAST module, not adding to it. For example, if the FORECAST modules end time is set to 24 hours past the current time, and you enter a value for the Forecasted end date which is 48 hours from the current time, you would only see jobs in the graphical forecast that are scheduled to run in the next 24 hours.
Notes
98
Slides
Procedure
To view one or more jobs in the History in a Gantt chart format: 1. 2. Select one or more the jobs in the History. Right-click and choose the History Gantt view option as shown in Figure B. AppWorx opens the History Gantt view window shown in Figure A. If you select chains or chain components, AppWorx displays all jobs in the corresponding chain(s). 3. If you wish, you can right-click a job and select Flow Diagram to view its predecessors in a flowchart view.
99
Notes
Figure C. The History Gantt view window with six chains displayed.
100
Slides
AppWorx opens the Dashboard across the bottom of the Explorer window. To enlarge a gauge in the Dashboard, double-click the gauge. Enlarged gauges can be moved and sized.
Information Available
The gauges displayed in the Dashboard window are described in the table below.
Item Description
Backlog Distribution
Workload Balancing
Percentage of jobs in the Backlog by status. Each job status is color coded. ToolTips provide status names, number of jobs per status and total jobs when you rest the mouse pointer over a status. Percentage of running jobs by agent. ToolTips provide agent names, number of jobs per agent and total jobs when you rest the mouse pointer over an agent.
101
Number of completed jobs for the day and the number of jobs in the Backlog. Total thread capacity and thread capacity used for each agent. ToolTips provide max jobs allowed for each agent when you rest the mouse pointer over an agent.
Total job count and thread capacity used for each queue. ToolTips provide max jobs allowed for each
Notes
Queue Loading
Daily Activity
queue when you rest the mouse pointer over a queue. Graph of maximum number of jobs running each hour of the day. Green: Running jobs. Blue: Running or waiting jobs. Black: Running, waiting, or PRED WAIT jobs.
102
Slides
Figure A. Gantt view of a chain The Gantt view displays a tree view of the chain in the left pane, and the Gantt chart in the right pane. To view a Gantt chart of the chain, click the Tree view icon Builder menu bar. in the Chain
Actions
You can take the following actions on the Gantt view: You can expand and collapse the elements in the tree by clicking the toggle icons. You can scroll the Gantt chart using the scroll bar at the bottom of the right pane. You can change the hours displayed in the Gantt chart by selecting a value from the Visible Hours field. The range is 1 to 24 hours. You cannot add, edit, or delete components from the Gantt view.
103
Options
There are several options available from the Options menu. They are described below.
Option Print table Print preview table Print tree Print preview tree Expand Collapse Base time on external references Enter start time for Gantt chart Description These four options are used to preview and to print the tree and the Gantt chart.
Notes
These two options are used to expand and collapse a selected component in the tree. If the chain has external references, you can set the start times for the Gantt chart to them. The default start time for a Gantt chart is midnight of the current day. If the chain is scheduled to start at a specific time of the day, you can change the start time using this feature so it matches the scheduled start time. Resets the start time for the Gantt chart to midnight.
104
Slides
Viewing Reports
You can open reports from object selector windows and from several of the object definition and operations windows. A sample report is shown in Figure A.
Creating Reports
AppWorx reports are based on SQL statements. To create a report, you either start with an existing SQL statement and customize it, or create a report from scratch. You can add database tables and views to a report. Once database tables and views are added to a report, you can add columns from them. Each column can be customized in the report. The object definition for the report above is shown in Figure B.
105
Notes
Figure B. The report definition that creates the Application Jobs Completed by Hour report
106
Notes
107
Notes
108
Lesson 7
Creating Modules
7.1 Introduction to Creating Modules ........................................................................................... 7.2 Defining Modules ................................................................................................................... 7.3 Specifying Output and Login Options for Modules ................................................................ Exercise 7A: Creating a Module ........................................................................................ 7.4 Adding Prompts to Modules .................................................................................................. Exercise 7B: Creating a Module with a Prompt ................................................................. 7.5 Adding a List of Values Prompt ............................................................................................. Exercise 7C: Add an LOV Prompt to a Module ................................................................. 7.6 Adding Notes ......................................................................................................................... Exercise 7D: Adding Notes to a Module ............................................................................ 7.7 Output Scanning .................................................................................................................... Exercise 7E: Scanning Output ........................................................................................... 7.8 Notifications ........................................................................................................................... Exercise 7F: Sending a Notification (optional) ................................................................... 7.9 Review Questions .................................................................................................................. 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138
110
Slides
111
M odules
M odules in a Chain
Module A
Notes
Module A
B Module B Module B
Module C C
Module C
Module D D E Module E
Module D
Module E
Copying Modules
There may by times when you want to create several modules that are similar except for a few minor changes. For example, you may want to create two modules that run two different programs, but the information for the programs is identical except for the program names. The Copy feature lets you create one module, then copy it and change the program name (see Figure C)
When you copy a module, the prompts also are copied. You have the option of coping its conditions, notes, and schedules.
112
Slides
Defining Objects
You can define certain objects by clicking the icon to the right of their field. AppWorx will display an edit window where you can define the new object. Fields marked with an * on their right are required.
113
Defining Applications
You use applications to group modules and chains. When defining or requesting modules and chains, you can select an application. To define an application, you must give it a name and description (see Figure B).
Notes
Defining Libraries
A library defines the path for the program a module runs. To define a library, you must name the library and enter its path (see Figure C).
The path can be an actual path or an environment variable. If you use an environment variable other than $AW_HOME, you must define the Figure C. The Libraries window. variable either in an AppWorx environment variable object or in each instance of AppWorx. For UNIX machines, define the variable at the end of the $AW_HOME/site/sosite file in Bourne Shell format. To define a variable called INVERTORY_APP, you would enter:
INVENTORY_APP=/inventory/programs; export INVENTORY_APP
For Windows instances, define the variable at the end of site/envvar.bat as follows:
set INVENTORY_APP=\inventory\program
114
Slides
Output
Using the output tab shown in Figure A, you can control what happens to the output of modules.
Figure A. The Output tab for a module The Output function field determines how output is handled. There are three choices: LOG: The application output or report files will be listed by default in the Output window. AppWorx loads all application output or report files for viewing in the Output window for jobs with a LOG output function every time you log into the client. This can take several seconds or minutes. If more than 500 files are loaded, an alert will be displayed. Therefore, if you are not using the Output window (that is, you view output from the History instead of the Output window), you should use the STORE setting. PRINT: The output is printed according to the print settings specified on this tab. STORE: This is the default setting. The output is not printed and is not listed in the Output window. The Printer group, Printer, and Print option fields are valid only if you choose PRINT as the output function. With any of these settings, the application output and the system output files can be viewed from the Explorer window.
Login
Using the Login tab shown in Figure B, you can set the login the system will use when the module is executed (if necessary).
115
Notes
Figure B. You can select a primary and secondary login for a module. The primary and secondary logins make it possible to supply two logins to a program. This is useful if the program accesses two different databases. For example, a program might read from one database and write to another database. The Login Type field determines the logins available from the Login ID dropdown list. The entry in the Login Type field is determined by the program type selected for the module. When a program type is defined, it can be assigned a login. If a login was not assigned to the program type, the Login Type field will display No selection.
116
Slides
Figure A. Enter an application name and description. 4. In the Agent/Group field for the module, select the local agent on your training AppWorx instance. It will probably be different than the one shown in Figure B. 5. Your module will be running a SQL*Plus job located in the sql directory of the local agent. To point AppWorx to the correct script, select the BATCH library and the AWSQLP type in the Program box. Select QUEUEnn that you created earlier in the Queue field. Uncheck the Single Run option, this will allow you to run two or more instances of this module concurrently in later exercises.
6. 7.
117
Notes
Figure B. Use the Modules window to define a module. 8. On the Login tab, select the database login for the AppWorx training instance from the Login ID field in the Primary login box. Your database login will probably be different than the one shown in Figure C.
118
Slides
Types of Prompts
There are four types of prompts you can create. The type of prompt determines how the information is entered. The different types of prompts are described below.
Prompt Type Description
The prompt has a default value that users are not allowed to change. The prompt may or may not have a default value. Users are allowed to change the value. Users may select one (and only one) choice from a predefined list of possible values. Users may select one or more choices from a predefined list of possible values.
119
Notes
120
Slides
121
To add a fill-in prompt: 1. Select the Prompts tab in the Modules window (see Figure A).
Notes
Figure A. Prompts tab 2. Click New. AppWorx displays the Edit Prompt window shown. A sample filled in prompt for this exercise is displayed in Figure C.
Figure B. Enter prompt values and click OK. 3. Select Character as the data type. This will allow you to enter either a character or a number for the prompt value. You will enter a character as a prompt value in a later exercise to force this module to fail. 4. Enter the question you want displayed for the prompt in the
Description field. For example:
Enter a number of sleep seconds:
5. 6. 7. 8.
Enter time as your variable name. Remember, time is the variable in the modules script, so it must match here. Give the prompt a default value of five seconds by entering 5 in the
Default value field.
Check the Value required box, this will automatically also select Allow changes as well. To save prompt and the module.
122
Slides
Figure A. The Multiple Select/List of Values options include a data type with an appropriate SQL statement. The value the user selects from the list is stored in a table, then passed to the program run by the module at the time the module is executed. LOV prompts are useful for letting a user select values from a predefined list such as departments, part numbers, sales regions, states, or countries. If a user types in a value for an LOV prompt, the value is checked against the list generated by the SQL statement (see Figure A).
123
Notes
124
Slides
125
2.
Select Dept_Name as the data type. Notice that when you select Dept_Name, the List of Values and Multi select radio buttons become active. This is because the Dept_Name data type uses a SQL statement. In this case the SQL retrieves the names of the departments from the dept database table. The Dept_Name data type was pre-created for this exercise. If you want to see its SQL statement, click the icon to the right of the Data type field and view its definition.
Notes
3.
Enter the question you want displayed for the prompt in the
Description field. For example:
Select a department:
4. 5. 6. 7.
Enter dept_name as your variable name. Remember, dept_name is the variable in the modules script, so it must match here. Give the prompt a default value of ACCOUNTING by clicking the
Select button to the right of the Default value field.
Check the Value required box. This will automatically also select Allow changes as well. To save prompt and the module.
126
Slides
Types of Notes
There are two types of customizable notes: General and Abort. General notes can contain information on goals and requirements or existing security and access issues. Abort notes can contain information on what action to take if a module aborts or fails, who to contact if a module aborts, or what considerations exist when running a job.
Note Format
You can enter notes in plain text or in HTML code. If you enter HTML code and select the HTML check box, the note will be displayed in HTML format.
Note Locations
There are three locations within AppWorx where you can enter notes. Suggested uses for notes are described in the table below:
Note type Description
Module
Useful when the module is going to be requested ad hoc, or when the notes for the module would be usefulregardless of how the module was invoked. Can be used to provide information which is relevant to the entire chain. Can be used to provide specific information about one component in a chain.
127
Notes
128
Slides
129
Notes
130
Slides
131
Notes
132
Slides
What to Do
To test the scanning function: 1. Create a new output scan object called EMPLOYEESnn.
Figure A. Create an output scan called EMPLOYEESnn. 2. Create a rule that checks for the name BLAKE, and displays a status of BAD_EMP if the text is found.
133
3. 4.
Assign the output scan to your EMPLOYEESnn module in the Output scan field on the modules General tab. Employee BLAKE belongs to the SALES department. Run your EMPLOYEESnn module, selecting SALES as the department. The module should fail with a status of BAD_EMP. Now run the module again, this time selecting any department other than SALES. The module should complete satisfactorily.
Notes
5.
134
Slides
7.8 Notifications
Use notifications to create message files based on job statuses and send those files to any output device defined in AppWorx. You can use message templates to create boiler text that can be used in many notifications. When a job fails, especially in a lights-out operation, you want to be notified. Using the Notifications feature in AppWorx, you can define notification messages for a variety of statuses and have AppWorx send out the messages automatically. The messages can be unique, or you can use message templates to create boiler text that can be used in many notifications.
Figure A. Add Notification details to the notification object to sent message text
based on job status.
Message Templates
When you define a notification, you can enter custom text for that one notification, or use a message template. A message template is an AppWorx object that define boiler plate text that can be used with any number of notifications. The advantage is that you define the text once, then use it multiple times. Figure B shows the window where you define message templates.
135
Notes
Figure A. Add Notification details to the notification object to sent message text
based on job status.
Sending Output
Generally you will want to email notifications. You can enter any number of email addresses in the Email Recipients field. AppWorx supports the SMTP email protocol. You can attach system output files and report output files to the email. You can also attach files whose names match a pattern that includes % and * wildcards. For example, enter report% to specify all output file names beginning with report. To specify more than one pattern, create additional notifications.
136
Slides
What to Do
First, define the generic failure message template: 1. 2. 3. On the Object Admin menu, point to Development and select Message Templates. In the Message Templates window, click New. Enter the message text as shown in Figure A below. To enter the substitution variables and replacement values, click the { } button.
Figure A. Enter the message text. 4. 1. 2. 3. Save the message template by clicking OK. On the Object Admin menu, point to Development and select Notifications. In the Notifications selector window, click New. Set up the notification as shown in Figure B and click Apply.
Figure B. Enter the message text. 4. Open the Notification Details window by clicking the New button to the right of the empty table.
137
5.
Notes
Figure C. Enter the notification detail. 6. 7. 8. 9. Type your email address in the Email Recipients field. Save the notification detail by clicking OK. In the Notifications edit window, save the notification definition by clicking Apply. Assign the FAILUREnn notification to the EMPLOYEESnn module. When the module aborts, it should send you an email with the output files attached. 11. Check your to see if you received the email.
138
Notes
139
Notes
140
Lesson 8
Creating Chains
8.1 8.2 8.3 8.4 Introduction to Creating Chains ............................................................................................. Defining Chains and Selecting Execution Options ................................................................ Adding Components to a Chain ............................................................................................. Setting Component Options .................................................................................................. Exercise 8A: Creating a Basic Chain ................................................................................. 8.5 Adding Components Using the Add Buttons ......................................................................... Exercise 8B: Creating a Chain with Parallel Components ................................................. 8.6 Creating Component Groups ................................................................................................. Exercise 8C: Creating Component Groups ....................................................................... 8.7 Review Questions .................................................................................................................. 142 144 146 148 150 152 154 156 158 160
142
Slides
Running Chains
There are two ways to run a chain: Enter scheduling information using the Schedule tab on the Chains window. Submit the chain by opening to the Operations menu and selecting Requests.
143
Notes
144
Slides
Default agent
The Default agent field applies only to components in the chain that are assigned to an agent group with this agent in it. Components assigned to an agent group will only run on the agent specified in this field if they are not assigned to an agent on the Components tab.
Queue
Specifies the default AppWorx queue the chain will be submitted to. Components of this chain will run on their own queue rather than the queue selected here. If you want all chain components to run on the chains queue, you must select the Insert components into chains queue option for the master/local agent. If the chain is run using a schedule and that schedule includes a queue, that setting overrides the chains queue. If the chain is submitted on an ad hoc basis, the user may have the option to change the queue on the Submit window. If you wish to override the queue for an individual component in a chain, you can add a BEFORE condition using the CHANGE Q action.
Priority
Determines the priority for when this chain gets initiated. This setting usually isnt crucial. Chains are initiated as soon as they are inserted into the Backlog and their components priority is based on their module definition. A chains priority specifies when this chain gets initiated in relation to: When other chains submitted to this queue at the exact same time get initiated. When stand-alone modules waiting in this chains queue run. The order that chains initiate does not affect the order that their components run in. It does affect the order that their BEFORE conditions are evaluated (if they have any).
145
The top priority setting is 1, and the bottom is 99. The default is 50.
Notes
Single run
When selected, two instances of the chain cannot run concurrently. The second instance of the chain will wait in a SELF_WAIT job status until the first completes. If a module in the chain is defined as single-run, this can prevent the module from executing in a chain. For example, assume you have chain ABC, and in that chain you have module XYZ. Module XYZ is single-run. You request module XYZ and it runs in the Backlog. You then request chain ABC. Module XYZ in chain ABC will not execute until the first instance of the module completes executing.
Active
When selected, the chain will run when scheduled and be available from the Request window. If not selected, the chain will not run when scheduled, and it cannot be run from the Requests window.
146
Slides
Figure A. Use the Chains/Modules selector window to add components to chains. To display the Chains/Modules window, click the Chains/Modules selector window icon in the menu bar.
147
Notes
Figure B. To navigate large chains, use the Navigator window. You can also use the Find Component function to jump to a specific component in a chain. Activate this function by opening the Edit menu and choosing Find Component. AppWorx displays the Find alias window shown in Figure C where you can enter the name of the component you want to find.
148
Slides
149
Notes
150
Slides
Figure A. Creating the BASICnn chain 2. On the Components tab, add the SLEEPnn and EMPLOYEESnn modules shown in Figure B.
151
3.
If you wish, enter values for the SLEEPnn and EMPLOYEESnn modules prompts that are different than the default values. When you add a module to a chain and the module has prompts, you must enter the values for the prompts (see Figure C) if default values do not exist.
Notes
Figure C. Enter values for the prompts 4. Run the chain to make sure it works correctly.
152
Slides
Multiple Selections
When you use drag-and-drop to add components to a chain, you can only add one component at a time. An advantage to the add buttons is that you can add many components at one time.
Add Buttons
The Chains/Modules selector window includes four buttons that determine the predecessor links that AppWorx will create when you add a component to the chain. Initially, AppWorx creates success predecessor links. You can change these later if you wish.
Button
Successor
Clone
No preds External
Description AppWorx adds the component with predecessor links to all selected components. If the components selected are in more than one row, the new component will be placed below the lowest row. AppWorx adds the component using the predecessor links defined for all selected components. If the components selected are in more than one row, the new component will be placed in the lowest row and parallel with the objects in that row. AppWorx adds the components in the upper right corner of the Chain Builder window in the top row, without any predecessor links. AppWorx adds the components to the External References window with predecessor links to all selected components.
153
Procedure
To add one or more components to a chain using the add buttons: 1.Select one or more existing components in the chain. If an existing component does not exist, skip this step. 2.Select one or more components in the Chains/Modules window.
For multiple selections, use the Shift+click and Ctrl+click key-mouse combinations.
Notes
154
Slides
Module 2
Module 3
Module 4
Module 5
155
Notes
156
Slides
Job A
Job B1
Job C1
Job B2
Job C2
Job B3
Job D
157
Notes
158
Slides
What to Do
Create the PARALLEL_FLOWnn chain shown in Figure A. Use the SLEEPnn module for all components. When you have created the chain, test it to make sure it runs correctly. Use the Flow Diagram to monitor the chain in Explorer. Hint: Add the modules one at a time in succession. Then create the groups and add in the appropriate predecessor links.
159
Notes
160
Notes
161
Notes
162
Lesson 9
Adding Dependencies with Predecessors
9.1 Introduction to Predecessors ................................................................................................. 9.2 Predecessor Types ................................................................................................................ 9.3 Adding Predecessor Links with the Predecessor Definer ...................................................... Exercise 9A: Adding Predecessors with the Pred Definer Window ................................... 9.4 Adding and Editing External Predecessor Links .................................................................... Exercise 9B: Adding External Predecessors ..................................................................... 9.5 Testing Internal Predecessors Links with a Chain Simulation in GAP .................................. Exercise 9C: Creating a Branching Chain ......................................................................... 9.6 Review Questions .................................................................................................................. 164 166 168 170 172 174 176 178 180
164
Slides
Figure A. Predecessor links control execution order. In a chain, predecessor links determine the execution order of the components in the chain.When creating predecessor links, you determine the predecessor link type, which specifies its requirement and how it integrates with the other predecessor jobs.
165
Notes
166
Slides
Backlog when a job successfully completes its operation. Assuming that the master is up and running, FINISHED jobs in the Backlog will quickly move to the History.
Ineligible statuses: Ineligible statuses signify that a job is no longer eligible to
run. Ineligible statuses include: PW-DELETE, PW-SKIP, STG-SKIP, SKIPPED, CANCELED, DELETED, and INACTIVE. These statuses are displayed in the Backlog. Some ineligible statuses are displayed in the History as well.
Failure statuses: Failure statuses signify a job has failed. Failure statuses
include DIED, ABORTED, KILLED, TIMEDOUT, and LAUNCH ERROR. They may be displayed in the Backlog or History.
Interim statuses: Interim statuses signify that a job has failed. Interim statuses
include: DEAD, ABORTD, KILL, KILL1, KILLING, TIMEOUT, LAUNCH ERR. They are displayed in the Backlog. Assuming that the master is up and running, these jobs will quickly move to the History in a Failure status.
Success (default)
167
The predecessor runs and goes into a failure status. This job is
skipped when the predecessor runs and goes into an ineligible execution status or FINISHED status. The only difference between a Failure and Skip on Success predecessor is what happens when a job fails. Often used for branching logic.
Notes
Complete
The predecessor runs and goes into an ineligible execution status, a failure status, or a FINISHED status.
Predecessor links will not be satisfied while the object is still in the Backlog and the predecessors status goes to an interim failure status. This is because interim statuses in the Backlog may be changed by conditions. Once a FINISHED job moves to the History, the predecessor link will be satisfied. Even after a jobs predecessor links are met, one or more conditions may also need to be met before the job can run. Or perhaps a condition may take an action that changes the way a job runs.
168
Slides
Figure A. You can define more than one predecessor at a time using the Predecessor Definer window. In Figure A, the FTP module is selected as the From component, and modules APP0003, APP0004, APP0014, and APP0015 are selected as the To components. When you click Create predecessors, AppWorx will draw predecessor links from the FTP module to the four APP modules. You can also have multiple selections in the From list. To display the Predecessor Definer window, click the Predecessor Definer icon in the menu bar. To display only the component names in the To modules column as shown in Figure A, select the Use short name option. When not selected, this column shows the names of all parent chains for the component.
169
Notes
170
Slides
JOB_A JOB_B JOB_C JOB_D JOB_E JOB_F JOB_G JOB_H JOB_I JOB_J JOB_K
none JOB_A JOB_B JOB_B JOB_C JOB_D JOB_D JOB_F, JOB_E JOB_G JOB_H, JOB_K JOB_I
What to Do
To build the chain using the Predecessor Definer window: 1. 2. Create a new chain called PRED_DEFINERnn. Add 11 copies of your SLEEPnn module using the No Preds button in the Chains/Modules selector window, then enter alias names as shown in the Module column in the table above. You can enter alias names as you add the components or after they are all in the chain. 3. Open the Predecessor Definer window and define the predecessor links.
171
Notes
172
Slides
Example Use
External predecessor links can be useful in many situations, including the following: Two application groups in a company have created their own nightly processing chains. Each groups chain depends on the successful execution of modules within the other groups chain. To keep the chains in sync, they create external predecessor links to the components in each others chains.
173
Procedure
To add an external predecessor link: 1. 2. Open the Chains/Modules window. Select your module, chain, or one or more components (Shift+Click, Ctrl+Click) and do one of the following: Select the External option and click the Add button. Drag the components into the External Predecessors box. AppWorx adds the components to the External Predecessor box. The predecessor requirement can only be satisfied for the referenced module, chain, or chain component. When you add a predecessor link to a chain component, it is based on that components lineage. Therefore, a predecessor to TEST_MODULE in the SAMPLE_CHAIN will not be resolved by: TEST_MODULE when it is run in a different chain than SAMPLE_CHAIN. TEST_MODULE when it is run by itself outside of the SAMPLE_CHAIN. TEST_MODULE when it is run in the SAMPLE_CHAIN and the SAMPLE _CHAIN is nested in SUPER_CHAIN. 3. Select the predecessor link type by clicking on the parent component and doing one of the following: Open the Predecessor menu and select the type of predecessor. Right-click and select the type of predecessor. Press Ctrl+S (to add a Success predecessor).
Note: If you are creating a predecessor link to a chain, you must select
Notes
either the Complete or Success type predecessor link. Both of these options will mean that all of the components in the chain must finish with any status. 4. Click on the predecessor component in the External Predecessors window. AppWorx draws the predecessor link between the two components.
Virtual Workday
External predecessor links are subject to the constraints of the AppWorx virtual workday. The virtual workday is a point in time each day that limits how far back AppWorx will search in the Backlog and History for an external predecessor. The virtual workday is generally set at the time the product is installed.
174
Slides
Figure A. The STORE_REPORTS chain depends on data from the DATA_COLLECTION chain.
What to Do
1. 2. 3. Create the STORE _REPORTSnn and DATA_COLLECTIONnn chains shown in Figure A using TEST_MODULEs. Open the STORE_REPORTSnn chain and add the DATA_COLLECTIONnn chain as an external reference. Add the predecessor links from the STORE_REPORTSnn chain modules to the appropriate modules in the DATA_COLLECTIONnn chain to ensure the data modules have completed successfully before the EASTERN, CENTRAL, and WESTERN modules run. Run the STORE_REPORTSnn chain first. Do the modules in the chain show a PRED_WAIT status? ___________ 5. Now run the DATA_COLLECTIONnn chain. Did all of the modules complete successfully? __________________
4.
175
Notes
176
Slides
Procedure
To run a chain simulation: 1. If you want a component to fail during the simulation, select the component, right-click, select Completion code for simulation, and select Failure. AppWorx draws a red box around the component. 2. Open the Simulation menu and choose the speed for the simulation: Fast or Slow. The simulation speed can be saved for your workstation by selecting Save Preferences from the File menu. 3. To start the simulation, open the Simulation menu and choose Start.
177
Managing a Simulation
When AppWorx runs a simulation, it highlights each component as it executes. If the predecessor links to a failing component are success links, the simulation will stop at that point in the chain. For the simulation to continue, you must remove the fail code from the component. To remove the fail code: 1. 2. Select the failing component and right-click. Select Completion code for simulation, and select Reset completion code. AppWorx continues the simulation. To end a simulation, open the Simulation menu and select Stop. To pause a simulation, open the Simulation menu and select Suspend. To continue a simulation, open the Simulation menu, and select Resume.
Notes
178
Slides
No
Yes
Figure A. Branching logic To accomplish the branching, you will use predecessor links.
What to Do
Create a chain call BRANCHING_PREDnn with three modules: PROGRAM_A, PROGRAM_B, and PROGRAM_C. We suggest using the SLEEPnn module. That will allow you to abort the first module by entering an alphabetical character for the prompt instead of a number of seconds. Use the correct type of predecessor link to create the branching logic. Test your solution.
179
Notes
180
Notes
181
Notes
182
Lesson 10
Scheduling Modules and Chains
10.1 10.2 10.3 10.4 10.5 Introduction to Scheduling Modules and Chains ................................................................. Scheduling Basics ............................................................................................................... Fiscal Calendar Schedules (optional) .................................................................................. Setting Chain Component Eligibility .................................................................................... Special Scheduling Features ............................................................................................... Exercise 10A: Creating Schedules .................................................................................... 10.6 Review Questions ................................................................................................................ 184 186 188 190 192 194 196
184
Slides
Figure A. The Schedule tab A module or chain may have multiple schedules (see Figure A). Each schedule has four tabs: General Frequency Exceptions Prompts Note: Several example schedules are shown in the online help.
185
Notes
186
Slides
187
Defining Calendars
Sometimes there are days when information is handled in special ways. In AppWorx, you can specify these days by creating calendars. You can schedule modules and chains to run or not run on the days specified by a calendar. Calendars are useful for specifying a set of dates such as holidays, end of month processing dates, and end of fiscal quarter processing dates (see Figure C).
Notes
188
Slides
Examples
Fiscal calendar schedules are useful for the following types of scenarios: Run job XYZ on the last Friday of each fiscal month. Run job XYZ on the second and fourth Friday of each fiscal month. Run job XYZ on the last Friday of each fiscal quarter. If Friday is a holiday, run the job on the prior workday. Run job XYZ on the last Friday of each fiscal month, except for the dates included in a Holiday skip calendar. On skip days, run the job on the prior weekday.
Fields
When you select Fiscal in the Units group box on the Frequency tab, AppWorx displays the fields shown in Figure A. The fields are described below.
Field Description
Name
The Name field is used to select the type of fiscal calendar: 445, 454, 544, 444. This also specifies the start information, date and day of the week, of the calendar. The run days specify the days on which the job will run.
Run Days
189
Exception method
The method you select determines how AppWorx will handle days in a skip calendar. The options in the Exception method group box consider Monday through Friday as eligible run days regardless of the days of the week selected in the Run days group box. The exception methods will run jobs only Monday through Friday, never on Saturday or Sunday. The Exception method options are described below. Prior: The job will run on the first week day before the skip day. Skip: The job will not run. Next: The job will run on the next week day. Closest Workday: The job will run on closest weekday, either before or after, the skip day. The periods are the fiscal months. If the 444 fiscal calendar is used, there will be a 13th period. The cycles are the weeks in a month. If there is a fifth week, it is designated by the Last option. If you select only the Last option, this designates the last week in the month regardless if it is the fourth or fifth week. The Skip Calendar defines dates on which the job will not run.
Notes
Period Week
Skip Calendar
Figure B. To use the fiscal calendar scheduling feature, you must first create a basic fiscal calendar by running the AW_CREATE_FISCAL_CALENDAR module.
190
Slides
191
Notes
192
Slides
Specifying Exceptions
Using the Exceptions tab, you can exclude a regularly scheduled running of a module or chain or include additional times.
To change a single schedule day to an excluded day, or to change a nonscheduled day to an included exception day, click that day. Double-clicking a day will change all eligible days in that days week.
193
Notes
Figure D. Generate days for a calendar with the Date Builder tab.
194
Slides
Schedule A
Run on Monday, Wednesday, and Friday at 6 A.M.
Schedule B
Run every day, except holidays, at 9:30 P.M.
Schedule C
Run on holidays only, at 11:59 P.M.
Schedule D
Run the first Wednesday after the fifteenth of each month at 11 P.M.
Schedule E
Run weekdays at 8 A.M., 9 A.M., noon, 5 P.M. and 11:45 P.M. Make this schedule active starting the 1st of next month.
Schedule F
Run at 1:00 A.M. on the 5th workday before the end of each month. In this case assume your workdays are Monday through Friday.
Schedule G
Run every Monday through Friday at 12:10 A.M, except one week from today. Do not use a calendar. When run with this schedule, use a default prompt value of 30.
195
Notes
196
Notes
197
Notes
198
Lesson 11
Defining Substitution Variables
11.1 Introduction to Substitution Variables .................................................................................. 11.2 Defining Substitution Variables ............................................................................................ Exercise 11A: Using Substitution Variables in Prompts .................................................... 11.3 Passing Values Through a Chain with Prompts .................................................................. Exercise 11B: Passing Values through a Chain ................................................................ 11.4 Review Questions ................................................................................................................ 200 202 204 206 208 210
200
Slides
Figure A. The Substitution Variables window. The ability to include dynamic substitution variables in conditions lets you control operations based on the state of your corporate database.
201
Notes
202
Slides
Figure A. Static variables are stored in a database and retrieved at the time a job is executed.
203
Notes
204
Slides
Lists all jobs by queue Lists all jobs by module Lists all jobs by requestor
Each report has been written to accept start date and end date values. When you create the modules, you will define prompts that let users enter the start and end dates. You will use substitution variables to provide default values for the dates.
4. 5.
Submit the module from the Requests window to make sure the report runs correctly. Create the other two reports and define their prompts. Note: You can use the Copy button on the Modules selector window copy the REPORT_BATCHnn module to create the other two modules. Alternately, you can copy prompts from another module from the Prompts tab.
205
Notes
206
Slides
207
Notes
Figure A. You can pass values to modules in a chain using numbered substitution variables.
208
Slides
A variable name is not needed because the prompt values are passed to an AppWorx module, not to a program. 2. Check the Value required and Allow changes fields.
#1 #2
#1 and #2 tell AppWorx to use the values from the first and second prompt of the chain.
209
Notes
210
Notes
211
Notes
212
Lesson 12
Working with Conditions
12.1 12.2 12.3 12.4 12.5 12.6 Introduction to Conditions .................................................................................................... How AppWorx Processes Conditions .................................................................................. Adding, Editing, and Deleting Conditions ............................................................................ Condition Types ................................................................................................................... Condition Actions ................................................................................................................. Condition Action Timings ..................................................................................................... Exercise 12A: Checking the Time Since a Request .......................................................... Exercise 12B: Killing a Component that is Taking too Long to Execute ............................ Exercise 12C: Checking the Number of Records in a Database Table ............................. Exercise 12D: Creating a Menu Using Prompts ................................................................ Exercise 12E: Checking for a File ...................................................................................... Exercise 12F: Spanning Midnight ...................................................................................... 12.7 Review Questions ................................................................................................................ 214 216 218 220 222 224 226 228 230 232 234 236 238
214
Slides
Figure A. Conditions are a powerful tool for controlling job execution. Using conditions, you can do such things as: Check the current time and put a job on hold if it is later than 5 A.M. Check if a file exists, and if it does not, wait 15 minutes and check again. Run the second module if the first module in a chain completes successfully. Run the third module if the first module aborts. Conditions can apply to modules, chains, or chain components. By adding conditions to chain components, you can use a module differently in several chains, or even the same chain. You can also add, edit, or delete conditions for non-running jobs in the Backlog. When you do this, the changes are particular only to that running of the job. AppWorx can evaluate the conditions assigned to a module before, during, and after the module executes, and after a module is deleted, depending on the timing in the conditions definition. Conditions are not evaluated until the module is submitted and displayed in the Backlog. This includes conditions that are evaluated before a module executes. This means all components in a chain are displayed in the Backlog regardless of the conditions assigned to them. When a test defined in a condition is met, AppWorx takes the action defined in the condition. AppWorx includes a number of actions. If you want to take more than one action based on an event, you create multiple conditions, each with the same test but different actions.
215
Notes
Bad Conditions
If AppWorx evaluates a bad condition (for example a condition with a bad SQL statement) it will ignore the condition and report it to the masters log file. The modules status will be set to BAD CONDITN.
216
Slides
217
Start
Notes
No
Run job
Yes
No
Yes
Yes
No
Yes
End processing
218
Slides
219
Notes
Timing
Use the Timing field in the Condition Details window to control when AppWorx checks for a condition, and which conditions are available. The timing options are described below.
Option Description
BEFORE DURING
The condition is evaluated before the module/chain executes. The condition is evaluated every time the master checks the Backlog queue (about once a minute) while the module/chain is executing. The condition is evaluated after the module/chain executes, even if it aborts or is killed. If a module/chain is DELETED, the conditions on the DELETED module will be evaluated. This differs from an AFTER condition. AFTER conditions are not evaluated for a DELETED job.
AFTER DELETED
220
Slides
You can use the USER DEFINED condition to take an action every time a module is run by entering 1=1 in the Test box.
CHECK FILE*
BDA
Checks if the file named in the File Name field does or does not exist based on maximum file age, minimum unchanged time (stability), and/or minimum file size on the agent where the module is running. Wildcards and environment variables are allowed if the file name is enclosed in double quotes.
The first line of the last file found by CHECK FILE is stored in the replacement value {file-line}. You might use the {file-line} replacement value in a later condition to check whether the file included a text based error code and set the jobs status accordingly if it did. Important! You must put quotes around the file name.
CHECK HISTORY* (two options) Success Failure BDA Checks for the status of a module in the History within the last days, hours, and minutes. Use the Alias when referring to chain components. The condition is evaluated as true if: Success is selected and the module has a status of FINISHED. -or Failure is selected and the module has a status of DIED, ABORTED, KILLED, or TIMEDOUT. If the module is not found, the condition is evaluated as false. Checks if another process is running on the agent where the module is running. Provides the value for the current queue definition. The current time in the format HH:MM:SS. Checks if a module has been requested and is in the Backlog. Checks if a module is in a running state in the Backlog. Reads the return code generated by the program. The wall clock time since the module started running.
CHECK PROCESS CURRENT QUEUE* CURRENT TIME* MODULE REQUESTED* MODULE RUNNING* RETURN CODE* RUN TIME*
BDA BR BDAR B B A D
221
Notes
BDAR
*System function.
222
Slides
CANCEL SUBCHAIN*
BDA
CHANGE Q*
BD
DELAY TASK*
HOLD TASK* KILL TASK* REQUEST MODULE RESCHEDULE TASK* RESTART ON ABORT
B D BDAR B
BDA
223
RUN TASK* SEND JMS MESSAGE SEND NOTIFICATION SET ABORT STATUS* SET FINISHED STATUS* SET HOLD STATUS* SET SKIP STATUS* SET SUBVAR
B BDA BDA A
BDAR
B BDA
*Stops processing module conditions for the current evaluation cycle and will not start the job this evaluation cycle.
224
Slides
Figure A. Select an action timing for a condition. The action timing radio buttons are described in the table below.
Option The first time the condition is true Description AppWorx only initiates the specified action the first time the condition is true and changes its action timing to Disabled. After that, AppWorx skips the condition. You might use this option for a condition that notifies an operator when a module has failed. If there are events that cause the condition to be evaluated as true a number of times, AppWorx wont send out a new message every time. AppWorx initiates the specified action every time the condition is true. This setting is used often with the DELAY TASK action. For example, you might use this option if you want module Y to execute only after another module X has completed. You could check for the status of module X, and if it has not completed, use the DELAY TASK action to delay module Y by 15 minutes. You would want to use the delay each time the condition is true. AppWorx will skip the condition. You might use this option if you write a condition, but do not want to activate it. Note: The action timing for conditions with The first time the condition is true selected will change to Disabled in the Backlog/History for the running of a job when the action is taken.
Disabled
225
Notes
226
Slides
What to Do
1. 2. Create a chain called TIME_SINCEnn with two SLEEPnn modules that run one after the other. Set the first module to run for 60 seconds. Use the Alias field to give each module a unique name. For example 60_SECONDS_TESTnn. 3. 4. 5. Use a condition to skip the second module if it has been waiting in the Backlog for more than 30 seconds. Run the chain to see if the second module skipped. Change the run time of the first module to 5 seconds and test the chain again. This time, the second module should run.
227
Notes
228
Slides
What to Do
1. 2. 3. 4. 5. 6. Copy the chain TIME_SINCEnn that you created in the previous exercise. Rename the new chain ABORTnn. Modify the new chain so the first module runs for 300 seconds, and change the modules alias. Use a condition on the first module to cancel the remaining module in the chain if the first module runs longer than one minute. Use another condition statement on the first module to kill the first module if it runs longer than one minute. The second module in the chain has a condition statement that is no longer needed. Remove it. Check to see that the condition statements work, and that the second module ends up in History without running. After a minute or two, the first module should go into a KILLED status and remain in the Backlog. The second module should go be canceled.
229
Notes
230
Slides
What to Do
To check the number of employees and take an action: 1. Add conditions to the EMPLOYEESnn module you created earlier so that it runs only if there are 18 or more employees listed in the EMP table. You will want to use the #count_employees substitution variable which has already been defined for you. The variable includes a SQL statement that counts the records in the EMP table for all departments. Note: It does not matter how many employees are in the department you select. The substitution variable counts the number of employees in all departments. 2. 3. Check the condition by running the module. After running the module, open the #count_employees substitution variable (see Figure A). Select the Check SQL button to see how many employees are listed in the EMP table. Did the module run the way you would expect it to?
Figure A. Substitution variable used to count the number of rows in a database table.
231
Notes
232
Slides
What to Do
In an earlier exercise, you created a chain called REPORTSnn that lets end users enter start and end dates for a series of reports. In this exercise, your challenge is to use what youve learned about prompts, substitution variables, and conditions to enhance the REPORTSnn chain to let end users choose any combination of the three reports they want to run.
Requirements
Your chain must meet the following requirements: Keep the start and end date prompts in the REPORTSnn chain. Add prompts to the REPORTSnn chain that let end users choose the reports they want to run.
233
Notes
234
Slides
What to Do
1. 2. Make a copy of your SLEEPnn module and call it CHECKFILEnn. Add a BEFORE condition to the module that checks for the XYZ file in the sql subdirectory in the AppWorx home directory before it runs. The XYZ file does not exist. Use the DELAY TASK action instead of the WAIT UNTIL MET action to conserve computing resources. Why does the DELAY TASK action conserve resources? ____________________________________________________________ ____________________________________________________________ 3. 4. 5. Test your module. Did it run? ____________________________________________________________ In AppWorx Explorer, edit the BEFORE condition, changing the file name to employees.sql. This is a standard file that ships with AppWorx. Check to see if your module runs.
235
Notes
236
Slides
What to Do
1. 2. Create a chain called SALESnn. Add two SLEEPnn components to the chain and change their view names to DATA_COLLECTnn and DATA_POSTnn. Create a predecessor from DATA_POSTnn to DATA_COLLECTnn. Schedule the chain to run at 11:30 P.M. each evening including Saturday and Sunday. Figure out how to ensure that the DATA_POST module runs as close to midnight as possible.
3. 4.
237
Notes
238
Slides
239
Notes
240
Request and submit a module. View the output from a job online. Monitor a job and reset it if it aborts. Stage jobs for the next 24 hours. Create a module that runs a program. Add a fill-in prompt to a module. Add a list-of-values (LOV) prompt to a module. Create a chain and add several modules to it. Combine several modules in a chain into a group. Schedule a chain to run every Monday, Wednesday, and Friday at 5:00 P.M. Define a calendar and run a chain based on the days in the calendar. Use substitution variables to control the execution of modules in a chain. Pass prompt values from a chain to the modules in the chain. Add a predecessor to a module in chain so the module begins execution only after another job outside the chain has finished successfully. Add a condition to a module in a chain that requires a specific file to exist before the module will execute. Add a condition to a module that aborts the module if it has not run 30 minutes after being submitted. Send an email notification if a module aborts.
_____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5 _____ 5
_____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4 _____ 4
_____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3 _____ 3
_____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2 _____ 2
_____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1 _____ 1
____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____
Please indicate the extent to which you agree or disagree with the following statements describing the course.
Statement Very Confident Confident Not Confident
The course was well organized. The instructor knew the subject matter. The instructor gave clear and concise answers to questions. The classroom facilities were satisfactory. The Student Guide was well written and easy to use. The exercises were useful and reinforced the concepts covered in class.
Comments/Suggestions
_____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________
Other Information
Your name (optional): __________________________________ Company name: __________________________________ Date: __________________________________