world's leader in iseries automated operations · world's leader in iseries automated...

173

Upload: lenhi

Post on 04-Jun-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

World's Leader in iSeriesAutomated Operations

6455 City West Parkway

Eden Prairie, MN 55344 Ph: 952-933-0609 www.helpsystems.com

The purpose of this cookbook is to give you some ideas of what you can do with OPAL® (OPeratorAssistance Language®), the unique operations language used in Robot/SCHEDULE®, Robot/CONSOLE®,and Robot/REPORTS®.

The recipes included in this cookbook were contributed by people like you, people who use the Robotproducts every day to automate their operations and make their lives easier. As you review these recipes,you’ll see OPAL code that does everything from send pager messages and execute commands to createcustomized reports for users. Although individual code samples may not be applicable to your site, youcan use them as examples to create your own code that automates some area of your operations. Themore you use OPAL, the more you see how powerful just a few lines of code can be.

Now, for some housekeeping tips:

• Each OPAL recipe included in the cookbook has been reviewed, but has not been tested. Werecommend that you thoroughly test any OPAL you write before putting it into production.

• The cookbook is divided into three sections: Robot/SCHEDULE, Robot/CONSOLE, and Robot/REPORTS.Each contains OPAL code from that product. However, some recipes cross over to other Robotproducts. For example, a Robot/SCHEDULE OPAL might use Robot/ALERT to send a pager or e-mailmessage to the operator; a Robot/CONSOLE OPAL might start a Robot/SCHEDULE job, and so on.

• Some of the OPAL recipes have been modified from the original due to space limitations.

• The Operation Values field shown in many of the examples includes the complete code for a com-mand. This is to illustrate how the command would look; however, you must display the ExtendedCommand Entry panel to enter the complete command when creating your OPAL.

• Blank recipe pages are included at the end of each section. Use these to write your own OPALrecipes.

If you have any questions, or want to discuss how you can implement OPAL in your operations, callHelp/Systems Technical Support at 952-933-0609.

We hope you enjoy looking through this cookbook and trying some of the recipes. Thank you again toall who contributed. Have fun!

DISCLAIMERTHIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT ISNOT MEANT TO BE COMPLETE DOCUMENTATION FOR CREATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRON-MENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMINGFAMILIAR WITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY ORLIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

If Today is Monday or Friday, Run Job 7

Run Job Only on First Sunday of Month 8

Update LDA with Sunday’s Date 9

Only Run on Sat/Sun/Mon/Fri 10

Run Job First Day of Each Quarter 11

Check Date, Run Query 12

Check the Job Queue 13

Skip Job if Last or First Day of Month 14

Start Production System after Midnight 15

Sunday Check 16

Don’t React on Saturday Night/Sunday Morning 17

Don’t React Before 12:30 a.m. 18

Is Tape Controller Active? 19

Skip Job if No Records Exist 20

Is User Active on System? 21

Run Between 5th and 12th of Month 22

Check Date and Skip 23

Are ECM Engines Running? 24

Run Job on Friday or Saturday 25

Run Job Every x Number of Days 26

Check if Subsystem is Active, JOBQ Waiting 27

Check if a Work Day 29

File Transfer Notification 30

Only One Active Journal Save 31

Run Job When File Available 32

Execute Last Day of Month 33

Robot/SCHEDULE Job Reaction 34

Skip Job if File is Empty 35

Run Second Friday of Month 36

Run Job in Daytime and Afternoon Only 37

Don’t Process Jobs at Same Time 38

Skip Jobs on Thursday Night 39

Check For and Skip Certain Active Jobs 40

Check Flag in Data Area 41

Check Flags in Different Data Areas 42

Check File for Records before Submission 43

Check for Certain Files before Submission 44

Check for Active Subsystem 45

Check if First or Second Fiscal Day 46

Table of Contents

Robot/SCHEDULE OPAL

3

Check if Previous Job is Active 47

Skip on Monday after 9:00 p.m. 48

No Jobs Left in Batch Queue 49

Page if Save Queues Are on Hold 50

Skip when Special Jobs Running 51

Check if File Is in Use and Has Records 52

Skip Job Based on Status of Previous Job 53

Delay Job when Reacting to Another Job 54

Skip Job if Previous Day Nonworking Day 55

Execute Only on Saturday 56

Monitor if Subsytems Are Active 57

Skip Job if not Current Month 58

June 2008 Update RCV 59

Check Object Lock 60

Skip Job if Records Exist 61

Active Jobs on Last Day 62

Last Day Execute Robot/SCHEDULE Job 63

Run Only on First and Last Saturdays 64

Skip First Fiscal Mon, Sun, and Last Sat 65

Start Job if Records in File 66

Check Day of Week and Skip 67

Start QINTER 68

Problem with Job, Page 69

Run Job if Records Exist 70

Check for Lock on Data Area 71

Check for Workday and Two Files 72

Check for First Four Working Days 73

OPAL to Change an *LDA 74

Checking MQ Series Queues 75

Page After Hours 81

Check Message Data and Customize Reply 82

Check Data Area and Customize Reply 83

Notify and Page 84

Check Message Variable and Customize Reply 85

Check for User and End Job 86

Notify for Communications Problems 87

Page for Power Outage 88

Check for User and Notify 89

Table of Contents

Robot/CONSOLE OPAL

4

Check Message Text 90

Check Mounted Tape 91

Test if Juggler Program Is in Error 92

Verify Lines Varied Off 93

Move INQUIRY Printer Messages Out 94

Multiple Systems with Same Printer Name 95

Page Based on Value 96

Storage Limit is Exceeded 97

Page Users after Disk Drive Failure 98

Execute Command after Normal Completion 99

Conditional Message Suppress 100

Make Message Response Required 101

Max Number of Spooled Records Reached 102

Network File Has Arrived 103

Respond to this Message 104

Redirect Msgs and Make Response Required 105

Monitor for Jobs Ending Abnormally 106

Monitor for Program Messages 107

Vary On Device after Invalid Signon 108

Conditional Required Response 109

Submit Job at Save Checkpoint 110

Check Writer Status 111

Send Error Message Text 112

Bad Signon Attempts 113

Vary On/Off Tape Drive 114

Delete/Re-create MSGQ 115

Vary Controller On/Off 116

Job Queue Information 117

Check Tape Device Status 118

Message Queue Empty 119

Verify Robot/CONSOLE is Monitoring QSYSOPR 120

User Signed On to DSP01 121

Executing a Command with Parameters 122

Formatting Message Text 123

Check for Repeat Value 124

Possible Repeat Issue 125

Checking Communications in Robot/NETWORK 126

Maximum Spooled Files Reached 127

Paging During Unattended Operations 128

Mount Tape for OMS Month End 129

Table of Contents

5

Table of Contents

Check Message Data and Execute Robot/SCHEDULE Job 130

Tape Loaded and Initialized 131

Automate Checkpoint Processing 132

Notification to Users Outside Robot/CONSOLE 133

Include Total Page 139

Distribute Report on Friday 140

Include Invoice Pages 141

Burst Report by Address 142

Burst Report by Number 143

Check for Internet Invoices 144

Include User Job 145

Include Pages from Large File 146

Omit First Page if Blank 147

Include Sales Data by Area 148

Delete Duplicate Records 149

Pass Report Data to a CL Program 150

Monitor Distribution Queues 151

Distribute Report by User 152

Include Only Specific Data 153

Include Page in Report 154

Report to Run on Sunday Only 155

Create an Index by PO Number 156

Segment Report by Customer Service Rep 157

Check for User and Date Range 158

Select Specific Plant Numbers 159

Print One Division at a Time 160

Divides Report into Multiple Sections 161

Using a Table 162

Robot/REPORTS OPAL

6

If Today is Monday or Friday, Run JobFrom the Kitchen of Ajish Jose

Logic Operand Variable Operation Operation ValueIF DAY EQ 2OR DAY EQ 3OR DAY EQ 4

SKIPEND

This OPAL code will run a job only on Monday or Friday.

7

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Job Only on First Sunday of MonthFrom the Kitchen of Ajish Jose

Logic Operand Variable Operation Operation ValueIF WEEKEND NE 1OR DAY NE 7

SKIPEND

This job can be a group member or reactive job on other Sundays. The OPAL controls which Sundays it will run.

8

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Update LDA with Sunday’s DateFrom the Kitchen of Ajish Jose

Logic Operand Variable Operation Operation ValueRTVDTADFN LDAMRP600

USRFLD1 CHGTO @@SUNDATECHGDTADFN LDAMRP600

This OPAL updates a data area with Sunday’s date.

9

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Only Run on Sat/Sun/Mon/FriFrom the Kitchen of Joyce Brundage

Logic Operand Variable Operation Operation ValueIF DAY EQ 2

SKIPELSEIF DAY EQ 3

SKIPELSEIF DAY EQ 4

SKIPENDEND

If the day equals 2 (Tuesday), skip job.If the day equals 3 (Wednesday), skip job.If the day equals 4 (Thursday), skip job.

10

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Job First Day of Each QuarterFrom the Kitchen of Gary Keith

Logic Operand Variable Operation Operation ValueIF @@MONNO NE 01AND @@MONNO NE 04AND @@MONNO NE 07AND @@MONNO NE 10

SKIPEND

If the current month is any month other than January, April, July, or October, the job is skipped.

11

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Date, Run QueryFrom the Kitchen of Darryl Graham

Logic Operand Variable Operation Operation ValueIF SYSDATE GT 123103AND SYSDATE LT 20104

SNDRBTDTA ROBOTLIB/SNDRBTDTA PRQJOB(JOBRUNJAN) STATUS(C)ELSEIF SYSDATE GT 13104AND SYSDATE LT 30104

SNDRBTDTA ROBOTLIB/SNDRBTDTA PRQJOB(JOBRUNFEB) STATUS(C)ELSEIF SYSDATE GT 22804AND SYSDATE LT 40104

SNDRBTDTA ROBOTLIB/SNDRBTDTA PRQJOB(JOBRUNMAR) STATUS(C)ELSEIF SYSDATE GT 33104AND SYSDATE LT 50104

SNDRBTDTA ROBOTLIB/SNDRBTDTA PRQJOB(JOBRUNAPR) STATUS(C)ELSEIF SYSDATE GT 43004AND SYSDATE LT 60104

SNDRBTDTA ROBOTLIB/SNDRBTDTA PRQJOB(JOBRUNMAY) STATUS(C)ELSEIF SYSDATE GT 53104AND SYSDATE LT 70104

SNDRBTDTA ROBOTLIB/SNDRBTDTA PRQJOB(JOBRUNJUN) STATUS(C)ELSE

Note: The original OPAL contained additional conditions.

12

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check the Job QueueFrom the Kitchen of David Hinrichs

Logic Operand Variable Operation Operation ValueRTVJOBQ EXPRESS

IF JOBQHOLD EQ NOSKIP

ELSEPAGE RBTALRLIB/RBASNDMSG MSG(‘Express jobq

on hold too long. RBSSYSSTR may not have run, OneWorld may be down.’) TOPG(OPERATIONS)

UPDJOBEND

This OPAL checks to make sure that the shutdown-backup-startup process has completed successfully using a job that is outside theshutdown process. When the production system should be back up and running (along with releasing the job queue), run this OPAL. Ifthe express job queue is still held, it will send a pager message.

13

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip Job if Last or First Day of MonthFrom the Kitchen of David Hinrichs

Logic Operand Variable Operation Operation ValueIF SYSDATE EQ @@LDATSOR DAYMTH EQ 1THEN SKIPELSEEND

14

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Start Production System after MidnightFrom the Kitchen of David Hinrichs

Logic Operand Variable Operation Operation ValueIF SYSTIME GT 2320AND SYSTIME LE 2359

ADDMIN 5UPDJOB

END

Every weekday, after the production subsystem has been shut down and backed up, the production system must be restarted. Thiscannot be done before midnight. This job checks the time from when the production subsystem was shut down to make sure it is aftermidnight. If it is before midnight, it adds 5 minutes and checks again.

15

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Sunday CheckFrom the Kitchen of David Hinrichs

Logic Operand Variable Operation Operation ValueIF ACTUSR EQ SUNDAY

SKIPELSE

PAGE RBTALRLIB/RBASNDMSG MSG(‘Sunday backupnot signed on at Console. Sign it on for weekendbackups!’) TOPG(OPERATIONS)

END

This OPAL runs at 3:00 p.m. on Friday to check that the Sunday Robot/SAVE Restricted State Utility backup job has been signed on atthe console. If it isn’t signed on, it sends a pager message.

16

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Don’t React on Saturday Night/Sunday MorningFrom the Kitchen of Marty Constentino

Logic Operand Variable Operation Operation ValueIF DAY NE 6AND SYSTIME GE 2230OR DAY NE 7AND SYSTIME LE 0600

QUITELSE

SKIPEND

This OPAL helps when you have a job that reacts to another job every day, but do not want the job to react on Saturday night or Sundaymorning.

17

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Don’t React Before 12:30 a.m.From the Kitchen of Marty Constentino

Logic Operand Variable Operation Operation ValueIF SYSTIME LT 0030OR SYSTIME GT 2200

ADDMIN 15END

This OPAL helps when you have a job that reacts to another job, but don’t want the second job to run before 12:30 a.m.

18

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Is Tape Controller Active?From the Kitchen of Liam Hutchin

Logic Operand Variable Operation Operation ValueIF THISJOB EQ DIF ACTCTL NE TAPCTLD

SNDMSG MSG(‘controller is still not up....SKIPQUIT

ENDENDIF ACTCTL NE TAPCTLD

SNDMSG MSG(‘THE CONTROLLER IS NOT UP....SNDRBTDTA **Prompt to see command**ADDMIN 1

END

With this OPAL you can perform a loop only twice, instead of repeating until a condition is true. This checks if the tape controller is active. If not, a SNDRBTDTA is performed to immediately start a job that attempts to vary on the controller. The OPAL waits in D(Delayed) status, then checks again. This time, if the controller is not active, a message is sent and the job is skipped.

19

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip Job if No Records ExistFrom the Kitchen of Liam Hutchin

Logic Operand Variable Operation Operation ValueRTVOBJSTS FONPDTA/RCALLP *FILE

IF OBJSTS NE RECORDSSNDMSG MSG(‘No Records to Process’) TOUSER(*SYSOPR)SKIP

END

20

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Is User Active on System?From the Kitchen of Liam Hutchin

Logic Operand Variable Operation Operation ValueIF ACTUSR EQ USER1

SNDMSG MSG(‘USER1 Please signoff’) TOUSER(USER1)ADDMIN 1

END

This OPAL checks if a user is active on the system. It sends a message and waits until the user logs off.

21

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Between 5th and 12th of MonthFrom the Kitchen of Liam Hutchin

Logic Operand Variable Operation Operation ValueIF DAYMTH LT 5OR DAYMTH GT 12

SKIPEND

This OPAL allows the job to run only between the 5th and 12th (inclusive) of the month.

22

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Date and SkipFrom the Kitchen of Liam Hutchin

Logic Operand Variable Operation Operation ValueIF DAYMTH EQ 08

SKIPENDIF DAYMTH EQ 11

SKIPENDIF DAYMTH EQ 14

SKIPENDIF DAYMTH EQ 17

SKIPENDIF DAYMTH EQ 21

SKIPENDIF DAYMTH EQ 25

SKIPENDIF LASTDAY EQ SYSDATE

SKIPEND

23

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Are ECM Engines Running?From the Kitchen of Bill Holden

Logic Operand Variable Operation Operation ValueIF ACTJOB EQ ECMECCOR ACTJOB EQ ECMEDM

SKIPEND

Use this OPAL code to check if ECM engines are running. If either of the engines is running, the job that starts the engines is skippedso that two instances of the engines aren’t running. This OPAL was created because the command that attempts to start the engines isprogrammed to check if the engines are running, but it will not end itself. So, if one or more engines are running, the starting job willsit in the job queue waiting to start the next set of engines.

24

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Job on Friday or SaturdayFrom the Kitchen of Heath Kath

Logic Operand Variable Operation Operation ValueIF DAY EQ 5OR DAY EQ 6IF WEEKNO EQ 1OR WEEKNO EQ 4OR WEEKNO EQ 5

QUITELSE

SKIPENDELSE

SKIPEND

This OPAL is used to run a job on Friday or Saturday only if it is the first, fourth, or fifth week of the month.

25

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Job Every x Number of DaysFrom the Kitchen of Heath Kath

Logic Operand Variable Operation Operation ValueRTVDTADFN HK

IF USRFLD1 EQ @@DATEUSRFLD1 CHGTO @@DATE14

CHGDTADFN HKDATEQUIT

ELSESKIP

END

Use this OPAL to run a member job every x number of days.

26

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

27

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check if Subsystem is Active, JOBQ WaitingFrom the Kitchen of Heath Kath

Logic Operand Variable Operation Operation Value* Check if in specified time range and the subsystem is not active

IF SYSTIME GT 0700AND SYSTIME LT 1400AND ACTSBS NE HKSBS

* Retrieve informationRTVJOBQ HEATH/HKJOBQRTVDTADFN LOOPCOUNT* If job count<>0, loop, delay 10 minutes and check again.

IF JOBQCNT NE 0USRFLD1 CHGTO 0

CHGDTADFN LOOPCOUNTADDMIN 10

ELSE* Job cnt=0. If this is first loop, set loop count=1 and delay allowing jobs to* finish. If loop count=1, end OPAL and run the job to start the subsystem

IF USRFLD1 EQ 0USRLFD1 CHGTO 1

CHGDTADFN LOOPCOUNTADDMIN 5

ELSE

USRFLD1 CHGTO OCHGDTADFN LOOPCOUNTQUIT

ENDEND

continued...

28

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check if Subsystem is Active, JOBQ Waiting (continued)From the Kitchen of Heath Kath

Logic Operand Variable Operation Operation Value* If outside of time range or if the subsystem is active, end OPAL and* do not run the job.

ELSEUSRFLD1 CHGTO 0

CHGDTADFN LOOPCOUNTSKIP

END

You must set up a data definition. This example uses a data definition called LOOPCOUNT, which was defined to use a data area. Thedata area is character, length=1, and with an initial value of zero (0).

LOOPCOUNT allows time for a job that might be running to finish. Then, the job double-checks to make sure no new jobs have started.

29

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check if a Work Day From the Kitchen of Heath Kath

Logic Operand Variable Operation Operation ValueIF WORKDAY EQ YESAND DAYMTH NE 3AND DAYMTH NE 4

QUITELSE

SKIPEND

This OPAL checks to make sure it is a work day and that it is not the 3rd or 4th day of the month.

File Transfer NotificationFrom the Kitchen of Kevin Morris

Logic Operand Variable Operation Operation ValueRTVDTADFN RDAY

IF USRFLG1 EQ YSKIP

IF SKIPSTATUS EQ YESSENDMC **Prompt to see command**PAGE **Prompt to see command**

ENDRTVOBJSTS *LIBL/AGLID3 *FILE

IF OBJSTS EQ EXISTSAND OBJSTS NE RECORDS

ADDMIN 5END

RTVOBJSTS *LIBL/AGTID3 *FILEIF OBJSTS EQ EXISTSAND OBJSTS NE RECORDS

ADDMIN 5END

RTVOBJSTS *LIBL/BR001 *FILEIF OBJSTS EQ EXISTSAND OBJSTS NE RECORDS

ADDMIN 5ELSE

QUITEND

This OPAL code is used to determine if 3 files being transferred from another system have arrived in time to be processed in the currentbatch cycle. If the batch cycle has completed, no files are processed and notification is sent. If the batch cycle is active, the files areprocessed once the transfer is complete.

30

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Only One Active Journal SaveFrom the Kitchen of Martin Camacho

Logic Operand Variable Operation Operation ValueIF ACTDEV EQ TAP02AND DEVSTS EQ ACTIVEOR ACTJOB EQ JRN200OR ACTJOB EQ RBJRN200OR ACTJOB EQ JRN_ARCHOR ACTJOB EQ RBJRN_ARCH

SKIP* Job Skipped-No Resources AvailableSNDMSG SNDMSG MSG(‘Journal Job has been skipped.

Please investigate.’) TOUSR(*SYSOPR)ENDIF SKIPSTATUS EQ YESEND

This OPAL makes sure there is only one journal save job active at any time so that a nightly system backup or nightly journal save willnot interfere with other journal save jobs.

31

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Job When File AvailableFrom the Kitchen of Lisa McPherson

Logic Operand Variable Operation Operation ValueRTVOBJSTS PRODDATA/STKBILFILE*FILE

IF OBJSTS EQ EXISTSQUIT

ELSEADDMIN 2

END

This OPAL checks for the existence of a file before running the nightly processing. If it is not found, it adds two minutes to the starttime. This will loop until the file is available.

32

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Execute Last Day of MonthFrom the Kitchen of Mike Costello

Logic Operand Variable Operation Operation ValueIF LASTDAY EQ SYSDATEOR DAY EQ 5AND @@LDATY EQ @@DATP1OR DAY EQ 5AND @@LDATY EQ @@DATP2ELSE

SKIPEND

This OPAL permits a job that is scheduled for execution Monday through Friday to execute only if the current day is the last day of themonth or if it is Friday and the last day of the month is the subsequent Saturday or Sunday.

33

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Robot/SCHEDULE Job ReactionFrom the Kitchen of Michael Barrow

Logic Operand Variable Operation Operation ValueIF SYSTIME GT 1500

SKIPELSE

RTVDTADFN SMDSIF USRFLD1 EQ NTHEN

ADDMIN 30USRFLD1 CHGTO Y

CHGDTADFN SMDSELSEIF USRFLD1 EQ YAND SYSTIME LT 1000

ADDMIN 10ENDENDEND

This OPAL is attached to a job that reacts to a Robot/SCHEDULE job that reacts to a user job. 1) If it is after 15:00, the job is skipped.2) 30 minutes is added to the job before execution.3) If after a 30-minute delay, it is still before 10:00 a.m., the job is delayed 10 minutes until it is after 10:00.4) The data area is set to N by OPAL code attached to the job this reacts to.

34

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip Job if File is EmptyFrom the Kitchen of Mike Krebs

Logic Operand Variable Operation Operation ValueRTVOBJSTS QRYLIB/QUERY*FILE

IF OBJSTS NE EXISTSOR OBJSTS NE RECORDS

SKIPEND

This OPAL checks if a file is empty and causes a Robot/SCHEDULE job to be skipped if it is. Two Robot/SCHEDULE jobs are needed.The first runs the query with OUTTYPE(*outfile) specifying a specific outfile. The second job is reactive to the first job with the OPALcode attached (specifying the specific file). The second job runs the query specifying OUTTYPE(*printer).

35

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Second Friday of MonthFrom the Kitchen of Behzad Khoshkho

Logic Operand Variable Operation Operation ValueIF DAY NE 5AND WEEKNO NE 2

SKIPEND

Run the job on the second Friday of every month.

36

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Job in Daytime and Afternoon OnlyFrom the Kitchen of Lene Lyndrup Jensen

Logic Operand Variable Operation Operation ValueIF SYSTIME GT 2000

ADDMIN 30END

This OPAL runs a job only in the daytime and in the afternoon. If it is later than 20:00, the job should wait until after midnight and runthe following day instead.

37

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Don’t Process Jobs at Same TimeFrom the Kitchen of Toni Montgomery

Logic Operand Variable Operation Operation ValueIF ACTJOB EQ REREDIPURGOR ACTJOB EQ RBRDLYEDIR

SNDMSG MSG(‘RBREDIPURG or RBRDLYEDIR is active)ADDMIN 30

END

38

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip Jobs on Thursday NightFrom the Kitchen of Gerry Muyargas

Logic Operand Variable Operation Operation ValueIF DAY EQ 4AND SYSTIME GT 2300

SKIPEND

39

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check For and Skip Certain Active JobsFrom the Kitchen of Pete Palmeri

Logic Operand Variable Operation Operation ValueIF ACTJOB EQ CORP400BAND ACTJOB EQ CORP400QAND ACTJOB EQ DM40010#1AND ACTJOB EQ DM40010#2AND ACTJOB EQ DM40010#4AND ACTJOB EQ DM40021#1AND ACTJOB EQ DM40021#3AND ACTJOB EQ DM40022#2AND ACTJOB EQ DM40025#1AND ACTJOB EQ DM40025#2AND ACTJOB EQ DM40026#1AND ACTJOB EQ DM40030#1AND ACTJOB EQ DM40033#1AND ACTJOB EQ DM40033#2AND ACTJOB EQ DM40035#1AND ACTJOB EQ DM40035#2THEN SKIP

QUIT

40

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Flag in Data AreaFrom the Kitchen of Pete Palmeri

Logic Operand Variable Operation Operation ValueRTVDTADFN M7001

IF USRFLG1 NE YSKIP

END

41

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Flags in Different Data AreasFrom the Kitchen of Pete Palmeri

Logic Operand Variable Operation Operation ValueRTVDTADFN M7001RTVDTADFN M7011RTVDTADFN M7031RTVDTADFN M7051RTVDTADFN M7O61RTVDTADFN M7091

IF USRFLG1 NE YOR USRFLG2 NE YOR USRFLG3 NE YOR USRFLG4 NE YOR USRFLD1 NE YOR USRLFG5 NE Y

SKIPEND

42

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check File for Records before SubmissionFrom the Kitchen of Pete Palmeri

Logic Operand Variable Operation Operation ValueRTVOBJSTS RBTRUN2(PETETEST02) *FILE

IF OBJSTS EQ EXISTSAND OBJSTS EQ RECORDS

SKIPELSE

QUITEND

43

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for Certain Files before SubmissionFrom the Kitchen of Pete Palmeri

Logic Operand Variable Operation Operation ValueRTVOBJSTS MINQRY/RBTMINQRY *FILERTVOBJSTS ACTNEW/RBTACTNEW *FILERTVOBJSTS NEWJAB/RBTNEWJAB *FILERTVOBJSTS LIBMS/RBTLIBMS *FILE

IF OBJSTS NE EXISTSSKIPPAGE RBTALRLIB/RBASNDMSG MSG

(‘The Jabsco query libs did not come overfrom Q’) TOPG(OPERATOR)

END

44

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for Active SubsystemFrom the Kitchen of Pete Palmeri

Logic Operand Variable Operation Operation ValueIF ACTSBS EQ HTBATCH

SKIPENDIF SKIPSTATUS EQ YES

PAGE RBTALRLIB/RBASNDMSG MSG(‘HTBATCH needs to becycled’) TOPG(OPERATOR)

ENDQUIT

45

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check if First or Second Fiscal DayFrom the Kitchen of Pete Palmeri

Logic Operand Variable Operation Operation ValueIF DAYMTH NE 1AND DAYMTH NE 2

SKIPEND

46

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check if Previous Job is ActiveFrom the Kitchen of Pete Palmeri

Logic Operand Variable Operation Operation ValueIF ACTJOB EQ D@10KRUPL2

SKIPEND

47

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip on Monday after 9:00 p.m.From the Kitchen of Celia Pang

Logic Operand Variable Operation Operation ValueIF DAY EQ 1AND TIME GE 2100THEN SKIPEND

48

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

No Jobs Left in Batch QueueFrom the Kitchen of Jay Kamradt

Logic Operand Variable Operation Operation ValueRTVJOBQ QBATCH

IF JOBQCNT GE 1ADDMIN 1

ELSEQUIT

49

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Page if Save Queues Are on HoldFrom the Kitchen of Jay Kamradt

Logic Operand Variable Operation Operation ValueRTVJOBQ BKPTAP03

IF JOBQHOLD EQ YESPAGE ** Prompt to see command **

ENDRTVJOBQ BKPTAP04

IF JOBQHOLD EQ YESPAGE ** Prompt to see command **

50

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip when Special Jobs RunningFrom the Kitchen of Jay Kamradt

Logic Operand Variable Operation Operation ValueRTVJOB 000000000348

IF RBTJOBNBR EQ YOR RBTJOBNBR EQ COR RBTJOBNBR EQ R

SKIPEND

RTVJOB 000000000349IF RBTJOBNBR EQ YOR RBTJOBNBR EQ COR RBTJOBNBR EQ R

SKIPEND

51

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check if File Is in Use and Has RecordsFrom the Kitchen of Jay Kamradt

Logic Operand Variable Operation Operation ValueRTVOBJSTS GPPSLIB/GPSPLS *FILE

IF OBJSTS NE RECORDSOR OBJSTS EQ LOCKED

SKIPEND

52

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip Job Based on Status of Previous JobFrom the Kitchen of Arthur Pember

Logic Operand Variable Operation Operation ValueRTVJOB 000000002740

IF RBTJOBNBR EQ OSKIP

END

This OPAL skips a job if the override code of the preceding job is O (OMIT). This allows you to enter an OMIT override code for thepreceding job and prevent jobs that react to the omitted job from running.

53

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Delay Job when Reacting to Another JobFrom the Kitchen of Arthur Pember

Logic Operand Variable Operation Operation Value* This object will reschedule a job* for 4-1/2 hours when it runs.RTVJOB 000000000879

IF RBTJOBNBR NE DADDMIN 270

END

54

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip Job if Previous Day Nonworking DayFrom the Kitchen of Arthur Pember

Logic Operand Variable Operation Operation Value* This object checks the value of the* reserved command variable @@DM2WD,* which checks to see if the previous* day was a nonworking day in the* WEEKDAY calendar. If it was a non-* working day the job is skipped.

IF @@DM2WD EQ ‘N’SKIP

END

55

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Execute Only on SaturdayFrom the Kitchen of Regina Leslie

Logic Operand Variable Operation Operation ValueIF DAY NE 6

SKIPEND

56

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Monitor if Subsytems Are ActiveFrom the Kitchen of Regina Leslie

Logic Operand Variable Operation Operation ValueIF ACTSBS NE CDSBS

PAGE **Prompt to see command**ENDIF ACTSBS NE CMENVSOC

PAGE **Prompt to see command**ENDIF ACTSBS NE CMNDCSOC

PAGE **Prompt to see command**ENDIF ACTSBS NE CMRXPRD1

PAGE **Prompt to see command**END

This OPAL validates that all subsystems are active. This object is attached to a Robot/SCHEDULE job that runs every 15 minutes. If asubsystem is found to be inactive, a message is sent to Operations. This frees up manual monitoring of the subsystems by the operator.

57

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip Job if not Current MonthFrom the Kitchen of Leslie Larivee

Logic Operand Variable Operation Operation ValueIF @@MONNO NE 06

SKIPEND

58

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

June 2008 Update RCVFrom the Kitchen of Leslie Larivee

Logic Operand Variable Operation Operation ValueIF @@YEAR4 EQ 2008AND @@MONNO EQ 06THEN @@BUCKET4 CHGTO 121ENDIF @@YEAR4 NE 2008

SKIPEND

59

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Object LockFrom the Kitchen of Yen-Thu Le

Logic Operand Variable Operation Operation ValueRTVOBJSTS QRYUSER/ABSENTMTLY *FILE

IF OBJSTS EQ EXISTSAND OBJSTS EQ RECORDSAND OBJSTS EQ LOCKEDAND ACTUSR EQ SERVICE

SNDMSG MSG(SIGNOFF) TOUSR(QSYSOPR)ELSE

QUIT

60

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip Job if Records ExistFrom the Kitchen of Bruce Lane

Logic Operand Variable Operation Operation ValueRTVOBJSTS PRODOPNS/DSPTAP *FILE

IF OBJSTS NE RECORDSSKIP

END

61

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Active Jobs on Last DayFrom the Kitchen of Lori Scheidegger

Logic Operand Variable Operation Operation ValueIF LASTDAY NE SYSDATE

SKIPENDIF ACTJOB EQ ATOCSTMR

GOTO ERRORENDIF ACTJOB EQ BOL001MR

GOTO ERRORENDIF ACTJOB EQ CCD100X

GOTO ERRORENDIF ACTJOB EQ CNVREQMR

GOTO ERRORENDIF ACTJOB EQ CRTREQMR

GOTO ERRORENDIF ACTJOB EQ DSBOMR

GOTO ERROREND

QUITTAG ERRORSENDMC RBTCONLIB/SENDMC MSGCTR(QSYSOPR) MSG

(‘OPERATOR: ENDDMRJRNM IS BEING DELAYEDUNTIL ASYNCS ARE DOWN.’) RESPOND(*YES)

ADDMIN 2QUIT

62

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Last Day Execute Robot/SCHEDULE JobFrom the Kitchen of Lori Scheidegger

Logic Operand Variable Operation Operation ValueIF LASTDAY NE SYSDATE

SKIPSNDRBTDTA ROBOTLIB/SNDRBTDTA PRQJOB(ZFCS014P)

PRQJOB#(990000002189) STATUS(C)END

63

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Only on First and Last SaturdaysFrom the Kitchen of Lori Scheidegger

Logic Operand Variable Operation Operation ValueIF LASTDAY NE SYSDATEAND DAYMTH NE 7

SKIPSNDRBTDTA ROBOTLIB/SNDRBTDTA PRQJOB(ZMRG020P)

PRQJOB#(990000003165) STATUS(C)END

64

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Skip First Fiscal Mon, Sun, and Last SatFrom the Kitchen of Lori Scheidegger

Logic Operand Variable Operation Operation Value* This excludes first Fiscal Monday

IF WEEKNO EQ 1AND DAYMTH EQ 2

SKIPELSE

* This excludes first Fiscal SundayIF WEEKNO EQ 1AND DAYMTH EQ 1

SKIPELSE

* This excludes last Fiscal SaturdayIF LASTDAY EQ SYSDATE

SKIPELSE

QUIT

65

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Start Job if Records in FileFrom the Kitchen of Barron E. Utter

Logic Operand Variable Operation Operation ValueRTVOBJSTS CLTEST *FILE

IF OBJTST EQ EXISTAND OBJSTS EQ RECORDSAND OBJSTS NE LOCKED

QUITELSEIF @@TIME GT 600AND @@TIME LT 1500

SNDRBTDTAQUIT

ELSEIF @@TIME GT 2300AND @@TIME LT 2350

ADDMIN 35ELSE

ADDMIN 21ENDENDEND

This OPAL checks if a file exists, has records, and is not locked. If the time is between 6:00 a.m. and 3:00 p.m., the program does aSNDRBTDTA. It also moves the start of the job past midnight if it is after 11:00 p.m.

66

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Day of Week and SkipFrom the Kitchen of Tom Mann

Logic Operand Variable Operation Operation ValueRTVDTADFN MOENDQEP

IF DAY EQ 5AND USRFLD1 EQ ‘0’THEN SKIPEND

This OPAL only runs the job on a Friday that is at month end; otherwise the job is skipped.

67

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Start QINTERFrom the Kitchen of Thomas Tran

Logic Operand Variable Operation Operation ValueIF ACTJOB EQ QINTER

SKIP

This OPAL checks if QINTER is started. If not, the Robot/SCHEDULE job starts QINTER.

68

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Problem with Job, PageFrom the Kitchen of Theresa Klein

Logic Operand Variable Operation Operation ValueRTVJOB 000000003424

IF RBTJOBNBR EQ CSKIP

ELSEPAGE ** Prompt to see command **

END

Simple OPAL code that checks on job completion status and pages if the job has any status other than ‘C’.

69

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Run Job if Records ExistFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueRTVOBJSTS mylib/myfile *FILE

IF OBJSTS EQ EXISTSAND OBJSTS EQ RECORDS

SKIPELSE

QUITEND

This OPAL checks if a file exists and contains records. If the file is not found or no records exist, the job is skipped.

70

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for Lock on Data Area From the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueRTVOBJSTS mylib/mydataarea *DTAARA

IF objsts EQ LOCKEDADDMIN 5

ELSEQUIT

END

This OPAL checks locks on a data area. If the data area is locked, the job is delayed 5 minutes.

71

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for Workday and Two FilesFrom the Kitchen of Patick De Blende

Logic Operand Variable Operation Operation ValueIF @@PWRKDAYF NOTINTABLE PDWHWORKF

SKIPELSE

RTVOBJSTS DISOTOOL/PDWHFUDOEK *FILEIF OBJSTS NE RECORDS

SNDRBDTA ROBOTLIB/SNDRBTDTA PRQJOB#(000000003678) STATUS(K)SKIP

ELSERTVOBJSTS DISOTOOL/PDWHREDOEK *FILE

IF OBJSTS NE RECORDSSNDRBDTA ROBOTLIB/SNDRBTDTA PRQJOB#(000000003693) STATUS(K)SKIP

ENDEND

QUIT

This OPAL controls Data Warehouse processing from the iSeries. It checks to see if a value is in the OPAL table. If it’s not in the table, itchecks the status of two files on the system and continues processing.

72

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for First Four Working DaysFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF @@PWRKDATF INTABLE PWORKDAYF

SKIPELSEIF ACTSBS NE SUBSYSTEM NAME

ADDMIN 5ENDEND

This OPAL code checks to see if it is the first to fourth working day of a fiscal period. If so, the job is skipped. If not, processing contin-ues with checking the subsystem. If the subsystem is inactive, the job will be delayed for 5 minutes. This OPAL code is attached to adaily application that should not start before the fifth workday of the fiscal period.

73

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

OPAL to Change an *LDAFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueRTVDTADFN MRP500

USRFLD1 CHGTO @@DATEUSRFLD5 CHGTO @@DTSP7

CHGDTADFN MRP500QUIT

Use this OPAL code to change an *LDA (local data area). In this example, two Robot/SCHEDULE reserved command variables are usedto change start and end dates.

74

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Checking MQ Series QueuesFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueRTVMQDEPTH BEUPJ01 SYSTEM.DEAD.LETTER.QUEUE

IF MQDEPTH GT 0SENDMC RBTCONLIB/SENDMC MSGCTR(message center) MSG(‘Check Queue’)

ENDQUIT

Use this OPAL code to check the queue depth of an MQ Series queue. If the threshold is exceeded, a response-required message isgenerated. The default OPAL owner must be authorized to the MQ Administrator user profile.

75

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

76

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

77

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

78

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

79

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

80

Page After HoursFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF SYSTIME GT 170000OR SYSTIME LT 080000

PAGE RBTALRLIB/RBASNDMSG MSG(TEXT) TOPG(PCNOTIFY)RSP(*SETUP) TRUNCATE(*YES)

ELSENOTIFYL OPERATIONS

END

81

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Message Data and Customize ReplyFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF DATA CT CGIBIN

ENTER CELSE

NOTIFYL PAYROLLRPYWITHIN 1800

USRTEXT CHGTO ‘This is the message:’USRTEXT BCAT MSGIDUSRTEXT CAT ‘:’USRTEXT BCAT TEXTUSRTEXT BCAT ‘From Job/Job#:’USRTEXT BCAT JOBUSRTEXT CAT ‘/’USRTEXT CAT JOBNUMBERUSRTEXT BCAT ‘User is:’USRTEXT CAT USERUSRTEXT BCAT ‘Variables are:’USRTEXT BCAT DATA

PAGE RBTALRLIB/RBASNDMSG MSG(USRTEXT) TOPG(PROGRAMMER)RSP(*SETUP) TRUNCATE(*NO)

END

82

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Data Area and Customize ReplyFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueEXECUTE RTVDTAARA DTAARA(QGPL/LOOPCTS) RTNVAR(&USRNBR1)

IF USRNBR1 LT 3USRNBR1 ADD 1

EXECUTE CHGDTAARA DTAARA(QGPL/LOOPCTL *ALL) VALUE(USRNBR1)DELAY 300ENTER R

ELSEEXECUTE CHGDTAARA DTAARA(QGPL/LOOPCTL) VALUE(0)NOTIFYL PAYROLLRPYWITHIN 1800

USRTEXT CHGTO ‘This is the message:’USRTEXT BCAT MSGIDUSRTEXT CAT ‘:’USRTEXT BCAT TEXTUSRTEXT BCAT ‘From Job/Job#:’USRTEXT BCAT JOBUSRTEXT CAT ‘/’USRTEXT CAT JOBNUMBERUSRTEXT BCAT ‘User is:’USRTEXT CAT USERUSRTEXT BCAT ‘Variables are’USRTEXT BCAT DATA

PAGE RBTALRLIB/RBASNDMSG MSG(USRTEXT) TOPG(PROGRAMMER) RSP(*SETUP) TRUNCATE(*NO)

END

83

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Notify and PageFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueNOTIFYL PROGRAMMERRPYWITHIN 300

USRTEXT CHGTO ‘This is the message:’USRTEXT BCAT MSGIDUSRTEXT CAT ‘:’USRTEXT BCAT TEXTUSRTEXT BCAT ‘From Job/Job#:’USRTEXT BCAT JOBUSRTEXT CAT ‘/’USRTEXT CAT JOBNUMBERUSRTEXT BCAT ‘User is:’USRTEXT BCAT USERUSRTEXT BCAT ‘Variables are:’USRTEXT BCAT DATA

PAGE RBTALRLIB/RBASNDMSG MSG(USRTEXT) TOPG(PROGRAMMER) RSP(*SETUP) TRUNCATE(*NO)

This OPAL sends a notification to the programmer list and waits 5 minutes for a reply. If no reply has been received after 5 minutes, acustomized message is sent to the programmer device or broadcast list.

84

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Message Variable and Customize ReplyFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF VAR5 EQ QUSLSPL

ENTER CENDIF VAR5 EQ SOR020

ENTER CELSE

NOTIFYL PROGRAMMERRPYWITHIN 300

USRTEXT CHGTO ‘This message is:’USRTEXT BCAT MSGIDUSRTEXT CAT ‘:’USRTEXT BCAT TEXTUSRTEXT BCAT ‘From Job/Job#:’USRTEXT BCAT JOBUSRTEXT CAT ‘/’USRTEXT CAT JOBNUMBERUSRTEXT BCAT ‘User is:’USRTEXT BCAT USERUSRTEXT BCAT ‘Variables are:’USRTEXT BCAT DATA

PAGE RBTALRLIB/RBASNDMSG MSG(USRTEXT) TOPG(PROGRAMMER) RSP(*SETUP) TRUNCATE(*NO)

This OPAL checks the data from variable &5 and customizes a reply.

85

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for User and End JobFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF VAR2 NOTINTABLE TIMEOUT

EXECUTE ENDJOB JOB(&JOBNUMBER/USER/JOB) OPTION(*IMMED)END

This OPAL ends an interactive job if the user is not a programmer. The QINACTITV system value is set to a time limit and once theinactive time limit has been reached, a message is sent to a message queue. Robot/CONSOLE tests the message for the User ID.This allows the programmers to have a longer inactive time limit on their sessions while maintaining security for the system.

86

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Notify for Communications ProblemsFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueUSRTEXT CHGTO ‘SMTP server not responding:’USRTEXT BCAT ‘This will keep all paging from’USRTEXT BCAT ‘going out!’USRTEXT BCAT ‘Check if NETSTAT port 25 is’USRTEXT BCAT ‘listening & check SMTP server.’

PAGE RBTALRLIB/RBASNDMSG MSG(USRTEXT) TOPG(SMTP)RSP(*NO) TRUNCATE(*YES)

This OPAL notifies the SYSOPR if a communication problem exists. It also notifies a person on the network team so issues can beresolved.

87

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Page for Power OutageFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF ACTUSR EQ QPAYROLL

NOTIFYL OPERATIONSELSE

PAGE RBTALRLIB/RBASNDMSG MSG(TEXT) TOPG(POWER)RSP (*SETUP) TRUNCATE(*NO) PRTY(1)

END

This OPAL notifies the main user (if he is signed in) that a power outage has occurred. Otherwise, a pager message is sent to the team.

88

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for User and NotifyFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF VAR9 INTABLE CREDIT

PAGE RBTALRLIB/RBASNDMSG MSG(‘RECORD INUSE BY &USER. PLEASE BACK OUT TO MAIN MENU.’) TOPG(‘SYSOPR-PC) RSP(*SETUP) TRUNCATE(*YES)

ELSEDEFAULT

END

This OPAL tests the message for specific users and sends a notification mesage if they have a job locked.

89

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Message TextFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF TEXT CT NF1116BOR TEXT CT NJ1256GOR TEXT CT Accts. Payable

SUPPRESSENDIF TEXT CT XJ1139OR TEXT CT PK1114OR TEXT CT Inbound MonitorOR TEXT CT D&BOR TEXT CT NJ1122

NOTIFYL PAYROLLEND

* Letting GLTask Force know EOW has* been kicked off.

IF TEXT CT End-of-weekPAGE RBTALRLIB/RBASNDMSG MSG(TEXT) TOPG(GLTASKFORC)

RSP(*NO) TRUNCATE(*N0)ELSE

NOTIFY QPAYROLLEND

This OPAL tests for certain programs and if the end-of-week processing has started. If so, it notifies the users.

90

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Mounted TapeFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF TEXT CT EOW

EXCUTE CALL PGM(PGMLIB/CHKVOLID)DELAY 60EXECUTE RTVDTAARA DTAARA(QGPL/VOLIDDTAARA) RTNVAR(&USRFLG)

IF USERFLG1 EQ YEXECUTE CHGDTAARA DTAARA(QGPL/VOLIDDTAARA 11)) VALUE(N)ENTER G

ELSENOTIFYL

ENDEND

This OPAL tests the volume ID of a tape. If the end-of-week tape is loaded in the tape drive, the program continues to run. Otherwise, itnotifies the operator.

91

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Test if Juggler Program Is in ErrorFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF TEXT CT JUGGLER

REDIRECT OPERATIONSELSE

NOTIFY QPAYROLLEND

This OPAL tests if the Juggler program is in error. If so, the message is sent to a message center to be handled.

92

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Verify Lines Varied OffFrom the Kitchen of Charles Atkinson

Logic Operand Variable Operation Operation ValueIF ACTLIN NE ECSLINE

EXECUTE VRYCFG CFGOBJ(ECSLINE) CFGTYPE(*LIN) STATUS(*OFF)ENDIF ACTLIN NE PAGER

EXECUTE VRYCFG CFGOBJ(PAGER) CFGTYPE(*LIN)STATUS(*OFF) ASCVRYOFF(*YES)

ENDIF ACTLIN NE QESLINE

EXECUTE VRYCFG CFJOBJ(QESLINE) CFGTYPE(*LIN) STATUS(*OFF)ENDIF ACTLIN NE QJDE

EXECUTE VRYCFG CFGOBJ(QJDE) CFGTYPE(*LIN) STATUS(*OFF)ENDIF ACTLIN NE QTILINE

EXECUTE VRYCFG CFGOBJ(QTILINE) CFGTYPE(*LIN) STATUS(*OFF)ENDIF ACTLIN NE QTIPASLIN

EXECUTE VRYCFG CFGOBJ(QTIPASLIN) CFGTYPE(*LIN) STATUS(*OFF)ENDIF ACTLIN NE Q1PLIN

EXECUTE VRYCFG CFGOBJ(Q1PLIN) CFGTYPE(*LIN) STATUS(*OFF)END

This OPAL verifies that all lines are varied off so one of them can be used by a job if needed.Note: The original OPAL contained additional conditions.

93

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Move INQUIRY Printer Messages OutFrom the Kitchen of Bill Broeckert

Logic Operand Variable Operation Operation ValueIF DATA CT PRINTERIF MSGTYPE EQ 05

REDIRECT DEFAULTELSE

SUPPRESSENDEND

This OPAL takes INQUIRY printer messages out of the escalation loop. It requires a message center called DEFAULT.

94

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Multiple Systems with Same Printer NameFrom the Kitchen of Cheryl Thomas

Logic Operand Variable Operation Operation ValueIF TEXT DC PRNTDDLASAND TEXT DC QSYSPRTAND SYSTEM NE AS400C21THEN REDIRECT PRINTERELSE

REDIRECT DONTPAGEEND

95

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Page Based on ValueFrom the Kitchen of Hamid Riazi

Logic Operand Variable Operation Operation ValueIF PROGRAM EQ STX005MENDIF SYSTIME LT 170000AND SYSTIME GT 080000AND TEXT CT TEXAS

PAGE **Press F4 to see command**PAGE **Press F4 to see command**

ENDIF SYSTIME GT 170000AND SYSTIME LT 080000AND TEXT CT TEXAS

PAGE **Press F4 to see command**ENDIF SYSTIME LT 170000AND SYSTIME GT 080000AND TEXT CT 9030

PAGE **Press F4 to see command**END

Note: This recipe has been modified from the original.

96

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Storage Limit is ExceededFrom the Kitchen of Brian Kamps

Logic Operand Variable Operation Operation ValueIF DATA CT ‘exceeded’THEN EXECUTE GVEMAIL/EMAIL MESSAGE(‘An ASP ha...END

This OPAL uses a simple e-mail utility called GVEMAIL to e-mail a group of users when the storage limit is exceeded.

97

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Page Users after Disk Drive FailureFrom the Kitchen of Brian Kamps

Logic Operand Variable Operation Operation ValueIF MSGID EQ CPI1165THEN PAGE **Press F4 to see command**

RESPONDEND

When a disk drive fails on the system, it issues error CPI1165. When the message is received, this OPAL pages a group of users.

98

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Execute Command after Normal CompletionFrom the Kitchen of Brian Kamps

Logic Operand Variable Operation Operation ValueIF JOB EQ J57X81AND SYSTIME GT 043000AND USER EQ HDBIWTHEN EXECUTE SBMJOBJS JOB(DAILYIW) TIME(*IMMED)ELSEIF JOB EQ J57X81AND SYSTIME LT 04300AND USER EQ HDBIWTHEN EXECUTE SBMJOBJS JOB(DAILYIW) TIME(0430)ELSEIF JOB EQ J57X80THEN EXECUTE SMBJOBJS JOB(WEEKBUDIS) TIME(*IM....

Monitor for message ID CPF1241. If a job completes normally, or in some cases based on time, submit a backup job.

99

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Conditional Message SuppressFrom the Kitchen of Carol Horton

Logic Operand Variable Operation Operation Value*

IF VAR1 EQ I0O26CPAGE **Press F4 to see command**PAGE **Press F4 to see command**

ELSEIF VAR1 EQ DWUPDATE

PAGE **Press F4 to see command**PAGE **Press F4 to see command**

ELSESUPPRESS

END

This OPAL code tests for VAR1 from a message from either of two jobs and sends a pager message. If it’s not from one of those jobs, itsuppresses the message.

100

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Make Message Response RequiredFrom the Kitchen of Carol Horton

Logic Operand Variable Operation Operation Value* make this an inquiry msgRESPOND

This OPAL code changes an informational message so it requires a response.

101

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Max Number of Spooled Records ReachedFrom the Kitchen of Chris Dick

Logic Operand Variable Operation Operation ValueIF JOB CT RBPCOMBTHEN ENTER NOMAX

NOTIFY CLDELSE

PAGE **Press F4 to see command**NOTIFY VKM

END

This OPAL code allows a security job that runs during nightly processing to go over the maximum number of spooled records; anyother job will page and notify the operator.

102

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Network File Has ArrivedFrom the Kitchen of Gareth Lewis

Logic Operand Variable Operation Operation Value* Misima file

IF FILE EQ PPL_MISPEXECUTE RBASNDMSG MSG(‘File PPL_MISP arr....

END* Porgera file

IF FILE EQ PPL_POGPEXECUTE RBASNDMSG MSG (‘Porgera file arri....

END

This OPAL sends a message when a network file has arrived on the system.

103

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Respond to this MessageFrom the Kitchen of Paul Hughes

Logic Operand Variable Operation Operation ValueIF DATA CT ‘End-of-Day’OR DATA CT ‘FTP ERROR’

RESPONDEND

This OPAL code makes sure CPF9897 messages are seen and responded to by the operator.

104

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Redirect Msgs and Make Response RequiredFrom the Kitchen of Mark Rinehart

Logic Operand Variable Operation Operation ValueIF MSGID INMSGTABLE SDMTABLETHEN RESPOND

REDIRECT REPLYEND

This OPAL example monitors for a variety of IBM Service Director messages. If a message occurs, the message set reads the messagetable SDMTABLE. If the message ID is in the table, Robot/CONSOLE makes it response required, and redirects it to the REPLY messagecenter.

105

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Monitor for Jobs Ending AbnormallyFrom the Kitchen of Mark Rinehart

Logic Operand Variable Operation Operation ValueIF VAR2 EQ ENDOFDAYIF VAR1 NOTINTABLE JOBNAMESTHEN PAGE **Press F4 to see command**ENDEND

This OPAL monitors for Job Ending Abnormal (CPF1240) messages in all message queues being monitored. If the message hasENDOFDAY as VAR2(USER) and if VAR1(JOBNAME) is not in the table JOBNAMES, then Robot/CONSOLE has Robot/ALERT page theon-call pager.

106

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Monitor for Program MessagesFrom the Kitchen of Mark Rinehart

Logic Operand Variable Operation Operation ValueIF VAR3 EQ CJFA0A9AND VAR1 EQ FGINBOUNDTHEN ENTER R

EXECUTE SNDMSG MSG(FGINBOUND Job in error)ENDIF VAR3 EQ QRY2283AND VAR1 EQ TL210CLTHEN ENTER C

EXECUTE SNDMSG MSG (‘TL210CL Job in error)ENDIF VAR3 EQ CPF9999AND VAR1 EQ TL212CLTHEN ENTER CENDIF VAR3 EQ CPF9999AND VAR1 EQ SY015CLTHEN ENTER CEND

This OPAL example monitors for the generic CPA0701 message. It checks the value in VAR3 for the job named in VAR1. It then enters areply to the message and sends a message to the on-call pager.

107

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Vary On Device after Invalid SignonFrom the Kitchen of Yen-Thu Le

Logic Operand Variable Operation Operation ValueDELAY 30EXECUTE VRYCFG CFGOBJ (VAR3) CFGTYPE(*DEV) STATUS (*ON)QUIT

108

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Conditional Required ResponseFrom the Kitchen of Lori Scheidegger

Logic Operand Variable Operation Operation ValueIF VAR1 EQ MGRFAXQ

RESPONDEND

This OPAL makes the message set require a response only for the selected printer (MGRFAXQ).

109

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Submit Job at Save CheckpointFrom the Kitchen of Lori Scheidegger

Logic Operand Variable Operation Operation ValueIF JOB EQ DAILY_SAVE

EXECUTE ROBOTLIB/RBTBCHUPD JOBNUMBER(1087) JOBNAME(SAVCHKPTDY) SCHEDULE(D)

END

This OPAL submits a Robot/SCHEDULE job at SAVCHKPNT (save while active checkpoint of backups) depending on which backup isrunning. This allows scheduled jobs to continue running while the backup finishes.

110

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Writer StatusFrom the Kitchen of Jean Rajski

Logic Operand Variable Operation Operation ValueREDIRECT SUPPRESSED

IF DEVICE INTABLE PRINTERSEXECUTE STRPRTWTR DEV(WRITER)

ELSEIF DEVICE NOTINTABLE PRINTERS

REDIRECT SUPPRESSEDENDEND

This OPAL is for message CPF3397-Writer &3/&2/&1 did not end normally. It checks to see if the printer is in table PRINTERS, and if itis, the message is redirected to the SUPPRESSED message center, and the writer is restarted. If the device is not in the table, the mes-sage is ignored and redirected to the SUPPRESSED message center. The DEV &1 parameter is defined in the message file list VariableName Maintenance as WRITER.

111

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Send Error Message TextFrom the Kitchen of Vania Malsam

Logic Operand Variable Operation Operation ValueIF TEXT CT The EFT authorizationTHEN

USRTEXT CAT ‘EFT Authorization status in Bank’USRTEXT BCAT VAR1USRTEXT CAT ‘has changed to status’USRTEXT BCAT VAR2

EXECUTE SNDMSG MSG(USRTEXT) TOUSR(robot01)END

When this error occurs, the description did not indicate the exact problem because there were four different variations of the error. ThisOPAL now gives the user the exact text of the error instead of a generic message.

112

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Bad Signon AttemptsFrom the Kitchen of Vania Malsam

Logic Operand Variable Operation Operation ValueIF WORKDAY EQ YIF SYSTIME GT 170000OR SYSTIME LT 070000

* If workday and after working hoursTHEN DELAY 1800ELSE

* If during working hours, delay 10 min.DELAY 600

END* If working day, vary on workstationEXECUTE VRYCFG CFGOBJ(VAR3) CFGTYPE(*DEV) STATUS (*ON)

ELSE* If not workday, pager message sent* to warn of signon attemptsPAGE **Press F4 to see command**

END

This OPAL helps when there are bad signon attempts. The OPAL determines whether the error has occurred during business hours. If itis a workday, but after business hours, it will delay for 3 hours. If it is during working hours, it will delay for 10 minutes. If it is a work-day, it will vary the workstation back on. If it’s not a workday, a pager message will be sent using Robot/ALERT.

113

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Vary On/Off Tape DriveFrom the Kitchen of Vania Malsam

Logic Operand Variable Operation Operation Value* Vary off tape deviceEXECUTE VRYCFG CFGOBJ(DEVICE) CFGTYPE(*DEV) STATUS(*OFF)DELAY 30* Vary tape device back onEXECUTE VRYCFG CFGOBJ(DEVICE) CFGTYPE(*DEV) STATUS(*ON)

This OPAL varies off the tape device and then varies it back on after a 30-second delay.

114

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Delete/Re-create MSGQFrom the Kitchen of Vania Malsam

Logic Operand Variable Operation Operation Value* Delete damaged message queueEXECUTE DLTMSGQ VAR2/VAR1* Create message queue in same libEXECUTE CRTMSGQ VAR2/VAR1* The end

If a message queue is damaged, this OPAL code deletes it, then creates a new one.

115

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Vary Controller On/OffFrom the Kitchen of Vania Malsam

Logic Operand Variable Operation Operation ValueIF CONTROLLER EQ BIS494THEN DELAY 60

TAG BEGIN1IF CONTROLLER EQ BIS494AND ACTCTL NE CONTROLLER

EXECUTE ENDWTR ETR(BISONP01) OPTION(*IMMED)EXECUTE VRYCFG CFGOBJ(CONTROLLER) CFGTYPE(*CTL) STATUS(*OFF)DELAY 15EXECUTE VRYCFG CFGOBJ(BIS4940) CFGTYPE(*CTL) STATUS(*OFF)DELAY 20EXECUTE VRYCFG CFGOBJ(CONTROLLER BIS49400) CFGTYPE(*CTL) STATUS(*ON)DELAY 300GOTO BEGIN1

ELSEEXECUTE STRPRTWTR DEV(BISONP01)

ENDEND

This OPAL handles a failed controller. First it delays for 1 minute and tags it with a value. If the controller is still not active, it ends thewriter, varies the controller off, waits 15 seconds, and varies the device off. After 20 seconds, it varies the controller back on. It thendelays for 50 minutes and returns to the tagged value and starts the process over again, in case it didn’t work the first time.

116

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Job Queue InformationFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueRTVJOBQ jobqueue_name

IF JOBQHOLD EQ NOSENDMC RBTCONLIB/SENDMC MSGCTR(message center) MSG(‘Job jobname:

Jobq jobqueue_name NOT on HOLD?’) RESPOND(*YES)ENDIF JOBQCNT GT 0

SENDMC RBTCONLIB/SENDMC MSGCTR(message center) MSG(‘Job jobname: Check jobq jobqueue_name’) RESPOND(*YES)

ENDIF JOBQCNT LT 10

SENDMC RBTCONLIB/SENDMC MSGCTR(message center) MSG(‘Job jobname: Check jobq jobqueue_name’) RESPOND(*YES)

END

This OPAL checks if a job queue is not on hold, the job is count greater than 0, or the job count is less than 10. If any of these condi-tions are true, then a response-required message is generated to a Robot/CONSOLE message center.

117

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Tape Device StatusFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF ACTDEV EQ TAP04AND DEVSTS NE VARIED OFF

SENDMC RBTCONLIB/SENDMC MSGCTR(message center) MSG(‘Job:CHKTAP04:Check status of TAP04’) RESPOND(*YES)

QUITEND

This OPAL code checks if the tape device is in the correct status for the unattended backups. If not, a response-required message issent to a Robot/CONSOLE message center.

118

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Message Queue EmptyFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueRTVOBJSTS ROBOTLIB/RBTSBMJOB *MSGQ

IF OBJSTS EQ RECORDSSENDMC RBTCONLIB/SENDMC MSGCTR(msgcenter) MSG(‘Msg queue not empty.

Check job RBTSBMJOB.’) RESPOND(*YES)PAGE RBTALRLIB/RBASNDMSG MSG(‘Message queue not empty. Check job

RBTSBMJOB.’) TOPG(OPERATOR)ELSE

SKIPEND

This OPAL checks if a message queue is empty. If not, a response-required message and pager message are sent.

119

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Verify Robot/CONSOLE is Monitoring QSYSOPRFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF ACTJOB EQ RBCQSYSOPR

SKIPELSE

SENDMC RBTCONLIB/SENDMC MSGCTR(SUPPORT) MSG(Message Center QSYSOPR not active?’) RESPOND(*YES)

END

This OPAL checks if a Robot/CONSOLE message center, RBCQSYSOPR, is active. If not, a response-required message is sent to anothermessage center.

120

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

User Signed On to DSP01From the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF ACTDEV EQ DSP01AND DEVSTS EQ ACTIVEAND ACTUSR NE TAW

SENDMC RBTCONLIB/SENDMC MSGCTR(msg center) MSG(‘Who is signed on to DSP01?’) RESPOND(*YES)

ELSESKIP

END

This OPAL checks if the authorized user is signed on to DSP01. If not, a message is sent to the message center to have an operatorcheck who is signed on.

121

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Executing a Command with ParametersFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF VAR2 NE QRECOVERY

EXECUTE WRKOBJLCK OBJ(VAR2/VAR1) OBJTYPE(*JRN) OUTPUT(*PRINT)SENDMC SENDMC MSGCTR(message_center) MSG(“Check spooled files for lock.”)

ELSEQUIT

This OPAL code is used on MSGID CPI70E5, Journal or journal receiver not available, for monitoring journal handling.

122

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Formatting Message TextFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueUSRTEXT CHGTO ‘GFA0002 message occured in :’USRTEST BCAT JOBUSRTEXT BCAT ‘Inform Operations Support’

ENTER IREDIRECT SUPPORTSENDMC SENDMC MSGCTR(message_center) MSG(USRTEXT) RESPOND(*YES)

This OPAL customizes a message sent to a Robot/CONSOLE message center after automatically replying with an I and redirecting.

123

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for Repeat ValueFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF TEXT CT /QMQM/AMQRMCLAAND REPEAT GT 5

SENDMC SENDMC MSGCTR(message center) MSG(‘PROB W/MQ’) RESPOND(*YES)ELSE

QUITELSEEND

* If this message occurs more than 5 times in 30 minutes* response required, potential problem with MQ Series

This OPAL checks for message ID CPF1240, Job &3/&2/&1 ended abnormally. If this message ID occurs frequently, potential errorsmay exist with a certain job.

124

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Possible Repeat IssueFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF REPEAT GT 7

RESPONDEND

* If the message appears more than 7 times in 30 minutes* potential problems may exist

This OPAL checks for message ID AMQ9544, Messages not put to destination queue. If this message ID occurs frequently, potentialerrors may exist.

125

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Checking Communications in Robot/NETWORKFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF DAY EQ 7IF SYSTME LT 140000

QUIT* If Sunday before 14:00 hours IPL procedure can be executed* No action required

ELSE* If Sunday after 14:00 hoursRESPOND

END* If NOT Sunday

ELSERESPOND

END

This OPAL checks for possible communication problems between two iSeries systems. An extra test is included on Sunday.

126

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Maximum Spooled Files ReachedFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF REPEAT GT 3

REDIRECT OPERATORELSE

ENTER 100000REDIRECT SUPPORT* increment of 100000 records will be given as long as message ID CPA4072* is not repeated more than 3 times in 30 minutes

END

This OPAL checks for the message ID CPA4072, Reached maximum number of spooled records for file &1 in library &2. (C R NOMAX1-99999). An increment of 100000 records will be given as long as this message does not appear more than 3 times within 30 minutes;otherwise, the message is redirected so the operator can take the appropriate action.

127

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Paging During Unattended OperationsFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueIF WORKDAY EQ YIF SYSTIME GT 220000OR SYSTIME LT 060000

* if workday and after working hours Response Required and PageRESPONDREDIRECT PAGING

ELSE* if workday and during working hours

ENDELSE

* if NOT working day, Response Required and PageRESPONDREDIRECT PAGING

END

This OPAL redirects messages from an OPAL table to a paging message center during unattended operations. Otherwise, a response-required message is generated. A Robot/SCHEDULE calendar name must be specified in the message set definition to determine if it isa working day or not.

128

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Mount Tape for OMS Month EndFrom the Kitchen of Rick Roe

Logic Operand Variable Operation Operation ValueIF DATA CT ‘mount the OMS M/E tape’

ENTER TAP04END

This OPAL, coded for CPA2401, answers the tape mount message for the job when an operator is not there to answer the message onthe Sunday of month end.

129

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check Message Data and Execute Robot/SCHEDULE JobFrom the Kitchen of Lori Scheidegger

Logic Operand Variable Operation Operation ValueIF VAR1 EQ LCPAGEDAND VAR2 EQ MODHDTAAND VAR4 EQ LCP

EXECUTE ROBOTLIB/RBTBCHUPD JOBNUMBER(990000002782)JOBNAME(INVTRFSHFN) SCHEDULE(D)

ENDIF VAR1 EQ ZFCOSIPAND VAR2 EQ MODHDTAAND VAR4 EQ ZFCOSIP

EXECUTE ROBOTLIB/RBTBCHUPD JOBNUMBER(000000007816)JOBNAME(DY_SQLDMD) SCHEDULE(D)

EXECUTE ROBOTLIB/RBTBCHUPD JOBNUMBER(990000003019)JOBNAME(WK_SQLDMD) SCHEDULE(D)

ENDIF VAR1 EQ ZOWSPAND VAR2 EQ MODHDTAAND VAR4 EQ ZOWSP

EXECUTE ROBOTLIB/RBTBCHUPD JOBNUMBER(000000009125)JOBNAME(CARFSHFIN) SCHEDULE(D)

ENDIF VAR1 EQ ZWOSPSQLYEAND VAR2 EQ MODHDTA

EXECUTE ROBOTLIB/RBTBCHUPD JOBNUMBER(000000014216)JOBNAME(YRRHSHFIN) SCHEDULE(D)

END

130

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Tape Loaded and InitializedFrom the Kitchen of Bruce Lane

Logic Operand Variable Operation Operation ValueIF SYSTIME GT 152500AND SYSTIME LT 153500THEN EXECUTE SNDMSG MSG(‘NO TAPE LOADED IN TA....

PAGE **Press F4 to see command**END

This OPAL is used in the late afternoon to check if the tapes have been loaded and initialized.

131

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Automate Checkpoint ProcessingFrom the Kitchen of Vladimir Konkine

Logic Operand Variable Operation Operation ValueIF TEXT EQ “JOB_NAME”

SNDRBTDTA ** Press F4 to see command **DELAY 120TAG CHK

USRFLD1 CHGTO @@CHKPNTIF USRFLD1 EQ RECEIVED

ENTER GGOTO ENDS

ELSEDELAY 120GOTO CHKTAG ENDS

ENDEND

This OPAL code is attached to a Robot/CONSOLE message set, which was created to capture a specific message from “JOB_NAME”.When the custom inquiry message is received from the job, the daily backup is submitted. The program then waits for the backup toreach the checkpoint. After reaching the checkpoint, reply to the message with a “G” to continue the backup.

132

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Notification to Users Outside Robot/CONSOLEFrom the Kitchen of Patrick De Blende

Logic Operand Variable Operation Operation ValueRESPOND

IF DAY NE 6SENDQ RBCOPLMSGQ MSGQ(message queue lib/message queue)SENDQ RBCOPLMSGQ MSGQ(message queue lib/message queue)

ENDQUIT

This OPAL code informs system engineers outside Robot/CONSOLE about a response-required message relating to an Auditing applica-tion. They are not familiar with the Robot/CONSOLE message centers, but by using this SENDQ instruction, they are notified when themessages are arriving in the message center. The test for day 6 (Saturday) is included to avoid messages forwarded because of a weeklyshutdown.

133

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

134

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

135

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

136

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

137

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Operation Operation Value

138

Include Total PageFrom the Kitchen of Sally Wackerly

Logic Operand Variable Line Beg End Operation Operation ValueIF 12 1 3 EQ 652OR 12 1 3 EQ 653OR 12 1 3 EQ 655OR 12 1 3 EQ 656OR 12 1 3 EQ 658OR 12 1 3 EQ 659THEN INCPAG

USRNBR1 CHGTO 652END

*IF USRNBR1 EQ 652IF 14 7 24 EQ ***DEPARTMENT***THEN INCPAG

USRNBR1 CHGTO 000QUITPAGE

ENDENDIF 12 1 3 EQ 672THEN INCPAG

USRNBR1 CHGTO 672END

*IF USRNBR1 EQ 672IF 14 7 24 EQ ***DEPARTMENT***THEN INCPAG

USRNBR1 CHGTO 000QUIT

ENDEND

139

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Distribute Report on FridayFrom the Kitchen of Ana Maldonado

Logic Operand Variable Line Beg End Operation Operation ValueIF DAY NE 5

EXCREPORTENDIF 14 55 58 EQ ‘0120’

INCPAGQUITPAGE

END

140

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Include Invoice PagesFrom the Kitchen of Eric Huffman

Logic Operand Variable Line Beg End Operation Operation ValueIF 5 14 19 EQ 000100OR 17 11 19 EQ LITEWORLDAND 17 11 25 NE LITEWORLD-NORTHOR 20 11 19 EQ LITEWORLDAND 20 11 25 NE LITEWORLD-NORTHTHEN INCPAG

QUITPAGEELSE

EXCPAGQUITPAGE

END

141

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Burst Report by AddressFrom the Kitchen of Eric Burwell

Logic Operand Variable Line Beg End Operation Operation ValueIF LINENBR EQ 6IF 46 60 EQ OMAHA, NE 68131

INCPAGQUITPAGE

ENDENDIF LINENBR EQ 7IF 46 60 EQ OMAHA, NE 68131

INCPAGEQUITPAGE

ENDENDIF LINENBR GE 8

QUITPAGEEND

142

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Burst Report by NumberFrom the Kitchen of Eric Burwell

Logic Operand Variable Line Beg End Operation Operation ValueIF LINENBR EQ 4IF 128 131 EQ -022

INCPAGQUITPAGE

ENDENDIF LINENBR EQ 5IF 128 131 EQ -022

INCPAGQUITPAGE

ENDENDIF LINENBR GE 6

QUITPAGEEND

143

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for Internet InvoicesFrom the Kitchen of J. C. Stahl

Logic Operand Variable Line Beg End Operation Operation ValueIF LINENBR EQ 19AND 77 77 EQ ‘2’THEN 19 8 14 CHGTO USRNBR1END

*IF 19 27 32 NOTINTABLE TRUMBULLAND 26 22 29 EQ ‘INTERNET’AND 58 74 77 EQ ‘CONT’THEN USRNBR1 RBTCHGRSV @@INTERNETEND

*IF USRNBR1 EQ @@INTERNETTHEN USRNBR1 CHGTO 11111

INCPAGQUITPAGE

END

144

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Include User JobFrom the Kitchen of Darlene Aliperto & Monica Chen

Logic Operand Variable Line Beg End Operation Operation ValueIF 3 3 EQ ‘/’AND 6 6 EQ ‘/’IF 52 57 EQ ‘QPADEV’

STRINCLINELSE

EXCLINENDEXCLIN

ENDEND

Use this OPAL in a Robot/REPORTS segment if you use the Robot/SCHEDULE Audit Log. The code shows only jobs that have been runby specific users. Replace the ‘QPADEV’ with the workstation ID. Set up the segment as ‘Retain Paging’=N, and ‘Last Heading Line’=9.

145

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Include Pages from Large FileFrom the Kitchen of Mona Frappier

Logic Operand Variable Line Beg End Operation Operation ValueIF 86 105 EQ SELECTION PARAMETERSTHEN INCPAG

QUITPAGEENDIF 11 2 20 EQ TOTALS FOR CARRIER:THEN INCPAG

QUITPAGEENDIF 2 14 EQ GRAND TOTALS:THEN INCPAG

QUITPAGEEND

Use this OPAL on a report to include certain pages out of a very large spooled file.

146

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Omit First Page if BlankFrom the Kitchen of Mona Frappier

Logic Operand Variable Line Beg End Operation Operation ValueIF 1 132 NE BLANK

STRINCLINEND

147

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Include Sales Data by AreaFrom the Kitchen of Pam Thomas

Logic Operand Variable Line Beg End Operation Operation ValueIF 5 7 INTABLE AREA 150

STRINCLINENDIF 48 55 EQ BLANKAND STSINC EQ Y

INCLINSTREXCLIN

END

This OPAL is used for a query that is broken down by Customer Service Rep. The Area Manager receives a report of the sales reps inhis/her area.

148

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Delete Duplicate RecordsFrom the Kitchen of Eric Crippin

Logic Operand Variable Line Beg End Operation Operation ValueIF 4 78 94 EQ USRLONG1AND 4 106 107 EQ ‘1’

EXCPAGENDINCPAG

ENDIF 4 78 94 NE USRLONG1AND 4 106 107 EQ ‘1’

4 78 94 CHGTO USRLONG1STRINCPAG

END

This OPAL looks at a spooled file that contains duplicate copies of pages and reduces it to one copy.

149

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Pass Report Data to a CL ProgramFrom the Kitchen of Eric Crippin

Logic Operand Variable Line Beg End Operation Operation ValueIF PAGENBR EQ 1AND LINENBR EQ 1

1 6 13 CHGTO USRFLD31 130 53 CHGTO USRLONG1

USRFLG1 CHGTO NENDIF 2 100 102 EQ ‘SL1’

INCPAGUSRFLG1 CHGTO Y

ELSEEXCPAG

ENDIF LASTLINE EQ YAND USRFLG1 EQ N

QUITENDIF LASTLINE EQ Y

USRFLD1 CHGTO SEGMENTUSRFLD2 CHGTO REPORTSETUSRFLD4 CHGTO REPORTNAME

EXECUTE SBMJOB CMD(CALL PGM(PUBLIC/XMSRR010)PARM(‘USRFLD1’ ‘USRFLD2’ ‘USRFLD3’ USRFLD4’‘USRLONG1’ LASTPAGE’)) JOB(USRFLD1)JOBQ(QGPL/DPREPORT)

QUITEND

This OPAL reads the Report ID and Report Title from the spooled file, separates out the required pages, launches a CL program, andpasses that information as parameters.

150

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Monitor Distribution QueuesFrom the Kitchen of Paul Hughes

Logic Operand Variable Line Beg End Operation Operation ValueIF 73 80 EQ ‘Rty-Fail’OR 73 80 EQ ‘Rty-Wait’AND 68 68 NE ‘0’

EXECUTE SNDMSG MSG(‘Data Queue Error...INCLIN

ELSEEXCLIN

END

This OPAL monitors distribution queues. When a program runs on a timed basis and generates *PRINT from a WRKDSTQ command,process the printed output to see if any of the distribution queues are waiting or have failed. If so, send a message to the system opera-tor to check the distribution queues. Other Robot products can send a pager or e-mail message, or require an operator to respond tothe condition.

151

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Distribute Report by UserFrom the Kitchen of Bill St. Lawrence

Logic Operand Variable Line Beg End Operation Operation ValueIF 1 10 EQ ‘STLAWRENCE’

INCPAG

This OPAL breaks down a list of users for report distribution. Each user has his/her own report segment. The segmented reports aree-mailed to each recipient.

152

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Include Only Specific DataFrom the Kitchen of Rita Romero

Logic Operand Variable Line Beg End Operation Operation ValueIF 10 13 16 EQ 1111OR 10 13 16 EQ 2222OR 10 13 16 EQ 3333OR 10 13 16 EQ 4444OR 10 13 16 EQ 5555

INCPAGQUITPAGE

END

This OPAL includes a page only if the specified data appears on the page and stops processing if the data doesn’t match the values.

153

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Include Page in ReportFrom the Kitchen of Terri Rugg

Logic Operand Variable Line Beg End Operation Operation ValueIF LINENBR EQ 8IF 71 72 EQ 32

INCPAGEND

QUITPAGEEND

154

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Report to Run on Sunday OnlyFrom the Kitchen of Yen-Thu Le

Logic Operand Variable Line Beg End Operation Operation ValueIF DAY GE 1AND DAY LE 6

SKIPEND

This OPAL code will run the report only on Sundays.

155

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Create an Index by PO NumberFrom the Kitchen of Ron Hudson

Logic Operand Variable Line Beg End Operation Operation ValueIF LINENBR EQ 3

72 77 INDEX PONO72 77 HILITE White/Underscore

END

This OPAL code is used in Robot/REPORTS to create an index of all purchase orders by PO number. When viewing the purchase order,the PO number is underlined and highlighted.

156

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Segment Report by Customer Service RepFrom the Kitchen of Rick Roe

Logic Operand Variable Line Beg End Operation Operation ValueIF 9 111 113 EQ U02AND 9 60 61 NE 02OR 9 111 113 EQ M02AND 9 60 61 NE 02OR 9 111 113 EQ M08AND 9 60 61 NE O2

INCPAGELSE

QUITPAGEEND

This OPAL selects accounts for Customer Service Representatives who use the report for shipping goods to customers. The full reportis very large and the reps want to see only the portions they are responsible for.

157

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Check for User and Date RangeFrom the Kitchen of Mike Roberts

Logic Operand Variable Line Beg End Operation Operation ValueIF DAYMTH GE 15AND DAYMTH LE 22AND USER EQ ‘CHUCK’IF LINENBR EQ 8AND 2 10 EQ ‘RESODEXPRT’

STRINCPAGENDIF LASTLINE EQ Y

EXECUTE RBTRCLLIB/RCLEXEC CLIENT(PC-ROBOT)CMD(‘C:\PROGRAM FILES\MONARCH\EXPORT\...’)

ENDEND

158

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Select Specific Plant NumbersFrom the Kitchen of Toni Montgomery

Logic Operand Variable Line Beg End Operation Operation ValueIF 5 83 85 EQ ‘20’

STRINCPAGQUITPAGE

ENDIF 5 83 85 GT ‘28’

ENDINCPAGQUITPAGE

END

This OPAL prints plant numbers between 20 and 28.

159

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Print One Division at a TimeFrom the Kitchen of Marie Bateman

Logic Operand Variable Line Beg End Operation Operation ValueIF TEXT CT ‘HOUS401’

INCLINENDIF TEXT CT ‘DR PK PROC 404’

INCLINENDIF TEXT CT ‘DR PK CHEM 408’

INCLINEND

This OPAL code looks at a 100+ page report and selects only the information for the Houston Facility.

160

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Divides Report into Multiple SectionsFrom the Kitchen of Craig Arensman

Logic Operand Variable Line Beg End Operation Operation ValueIF LINENBR EQ 9IF 8 10 EQ 910

STRINCPAGENDIF 8 10 GT 910

EXCPAGQUIT

ELSEQUITPAGE

ENDEND

This OPAL divides a report into multiple sections for printing and viewing. The report contains department numbers on line 9, columns8-10, in sequential order. If the department number is equal to 910, it starts including pages. When it finds the next department, itexcludes the page and quits processing.

161

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

Using a TableFrom the Kitchen of Chuck Brant

Logic Operand Variable Line Beg End Operation Operation ValueIF 1 5 INTABLE REASONSTHEN STRINCLINELSEIF 1 5 NOTINTABLE REASONSTHEN STREXCLINIF 1 6 EQ ‘DRIVER’

QUITPAGE

This OPAL searches every line of a report and starts including lines when it sees the codes in the table. It excludes any line that startswith a code NOT in the table. The OPAL quits the page when it finds the word DRIVER.

162

DISCLAIMER: THIS DOCUMENT WAS DESIGNED SOLELY AS AN EXAMPLE FOR CREATING OPAL CODE. AS SUCH, THIS DOCUMENT IS NOT MEANT TO BE COMPLETE DOCUMENTATION FOR CRE-ATING OR IMPLEMENTING OPAL IN ANY SPECIFIC ENVIRONMENT. WHEN CREATING OR IMPLEMENTING OPAL CODE, THE USER ASSUMES ALL RESPONSIBILITY FOR BECOMING FAMILIARWITH THEIR ENVIRONMENT AND FOR THE OUTCOME. HELP/SYSTEMS ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE RESULTS DUE TO THE IMPLEMENTATION OF OPAL CODE.

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Line Beg End Operation Operation Value

163

164

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Line Beg End Operation Operation Value

165

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Line Beg End Operation Operation Value

166

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Line Beg End Operation Operation Value

167

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Line Beg End Operation Operation Value

168

From the Kitchen of zzzzzzzzzzzzzzzzz

Logic Operand Variable Line Beg End Operation Operation Value