DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 1 Intro to DCL Programming David J. Dachtera.

Slides:



Advertisements
Similar presentations
DCL Programming Hands-on Session David J Dachtera DJE Systems -
Advertisements

CIS 240 Introduction to UNIX Instructor: Sue Sampson.
Intermediate Code Generation
Object Oriented Programming A programming concept which views programs as objects with properties and ways to manipulate the object and the properties.
Writing better DCL procedures A simple guide by Andy Park
PL/SQL.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Introduction to Unix – CS 21 Lecture 11. Lecture Overview Shell Programming Variable Discussion Command line parameters Arithmetic Discussion Control.
COMP234 Perl Printing Special Quotes File Handling.
File System Interface CSCI 444/544 Operating Systems Fall 2008.
CS Lecture 03 Outline Sed and awk from previous lecture Writing simple bash script Assignment 1 discussion 1CS 311 Operating SystemsLecture 03.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Introduction to Scripting.
Javascript II Expressions and Data Types. 2 JavaScript Review programs executed by the web browser programs embedded in a web page using the script element.
XP New Perspectives on XML, 2 nd Edition Tutorial 7 1 TUTORIAL 7 CREATING A COMPUTATIONAL STYLESHEET (Using XSLT style sheet to calculate values based.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Programming Epson Robots – Part 2 ME 4135 – Fall 2012 Dr. R. Lindeke.
 2004 Prentice Hall, Inc. All rights reserved. Chapter 25 – Perl and CGI (Common Gateway Interface) Outline 25.1 Introduction 25.2 Perl 25.3 String Processing.
The Data Element. 2 Data type: A description of the set of values and the basic set of operations that can be applied to values of the type. Strong typing:
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
DCL - Digital Command Language Matthias Schmitt
The Data Element. 2 Data type: A description of the set of values and the basic set of operations that can be applied to values of the type. Strong typing:
Introduction to Databases Chapter 6: Understanding the SQL Language.
DJE Systems©1999 All Rights ReservedIntermediate DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 1 Intermediate DCL Programming David J. Dachtera.
SYST Web Technologies SYST Web Technologies Lesson 6 – Intro to JavaScript.
Title Slide CSS 404/504 The UNIX Operating System (2) By Ralph B. Bisland, Jr.
Chapter 8 Cookies And Security JavaScript, Third Edition.
ASP.NET Programming with C# and SQL Server First Edition Chapter 3 Using Functions, Methods, and Control Structures.
Extensible Stylesheet Language Chao-Hsien Chu, Ph.D. School of Information Sciences and Technology The Pennsylvania State University XSL-FO XSLT.
Selection Control Structures Simple Program Design Third Edition A Step-by-Step Approach 4.
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
PHP - Basic Language Constructs CSCI 297 Scripting Languages - Day Two.
Agenda Review C++ Library Functions Review User Input Making your own functions Exam #1 Next Week Reading: Chapter 3.
© 2006 DJE Systems, All Rights Reserved The information contained herein is subject to change without notice GET CONNECTED People. Training. Technology.
Shell Programming. Creating Shell Scripts: Some Basic Principles A script name is arbitrary. Choose names that make it easy to quickly identify file function.
ITBP 119 Algorithms and Problem Solving Section 2.1 Installing software Section 2.2 First Programs Section 2.3 Variables.
Variables and ConstantstMyn1 Variables and Constants PHP stands for: ”PHP: Hypertext Preprocessor”, and it is a server-side programming language. Special.
Fall 2004CSI University of Ottawa Introduction to PHP Basic principles and syntax.
Chapter 1 – Matlab Overview EGR1302. Desktop Command window Current Directory window Command History window Tabs to toggle between Current Directory &
Guide to Linux Installation and Administration, 2e1 Chapter 11 Using Advanced Administration Techniques.
IBC233 Lecture 2 Updated Winter 2008 Agenda Test next Week – Jan 23 ISeries Architecture CL (Control Language) Library Lists Operations Navigator.
Introduction to Computer Programming
JavaScript Scripting language What is Scripting ? A scripting language, script language, or extension language is a programming language.
Writing Scripts Hadi Otrok COEN 346.
More about Strings. String Formatting  So far we have used comma separators to print messages  This is fine until our messages become quite complex:
©Colin Jamison 2004 Shell scripting in Linux Colin Jamison.
Artificial Intelligence Lecture No. 26 Dr. Asad Ali Safi ​ Assistant Professor, Department of Computer Science, COMSATS Institute of Information Technology.
DCL Programming Hands-on Session David J Dachtera DJE Systems -
Linux Commands C151 Multi-User Operating Systems.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Introduction to Scripting.
Chapter 1: Overview of SAS System Basic Concepts of SAS System.
XP New Perspectives on XML, 2 nd Edition Tutorial 7 1 TUTORIAL 7 CREATING A COMPUTATIONAL STYLESHEET.
XP 1 XSLT II Robin Burke ECT 360. XP 2 Outline Conditionals Numbering Functions and operators Variables and parameters Named and recursive templates.
XP 1 XSLT II Robin Burke ECT 360. XP 2 Homework #4 Forgot we hadn't covered "choose" becomes extra credit My books.xml didn't include descriptions.
1 Week # 4 Introduction to PDM PDM is a workbench environment that lets programmers and system operators navigate the three levels of the AS/400’s object-based.
Tutorial 11 1 JavaScript Operators and Expressions.
Sudeshna Sarkar, IIT Kharagpur 1 Programming and Data Structure Sudeshna Sarkar Lecture 3.
Expressions and Data Types Professor Robin Burke.
2 nd Intro to Shell Scripting. Dates for Last Week of Class Homework 7 – Due Tuesday 5/1 by midnight Labs 7 & 8 or late ones – 8 is extra credit – Due.
An Introduction to Programming with C++ Sixth Edition Chapter 5 The Selection Structure.
Linux Tutorial Lesson Two *Getting Help in Linux *Data movement and manipulation *Relative and Absolute path *Processes Note: see chapter 1,2,3 from Linux.
1 An SDL Tutorial Two primary elements: –Structure –Identifies the various components of the system, and the communication paths among them. –Components:
1 Agenda  Unit 7: Introduction to Programming Using JavaScript T. Jumana Abu Shmais – AOU - Riyadh.
The Selection Structure
Computers & Programming Languages
Exam 1 Material Study Guide
Basics.
Linux Shell Script Programming
JavaScript: Introduction to Scripting
C Language B. DHIVYA 17PCA140 II MCA.
Control Structures.
Presentation transcript:

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 1 Intro to DCL Programming David J. Dachtera DJE Systems

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 2 Agenda Basic DCL Concepts Commands Verbs Symbols IF-THEN IF-THEN-ENDIF IF-THEN-ELSE-ENDIF Labels, GOTO

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 3 Agenda, Cont’d GOSUB-RETURN Common Lexical Functions F$CVTIME F$GETDVI F$GETJPI F$GETQUI F$GETSYI PARAMETERS Logical Names

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 4 Agenda, Cont’d Batch jobs that reSUBMIT themselves Daily Jobs Weekly Jobs Question & Answer

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 5 DCL - Programming? DCL as a programming language?

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 6 DCL Command Elements $ verb parameter_1 parameter_2 DCL Commands consist of a verb and one or more parameters.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 7 DCL Verbs Internal commands ASSIGN, CALL, DEFINE, GOSUB, GOTO, IF, RETURN, SET, STOP, others… External commands APPEND, BACKUP, COPY, DELETE, PRINT, RENAME, SET, SUBMIT, others...

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 8 DCL Verbs, Cont’d “Foreign” Commands $ symbol = value Examples: $ DIR :== DIRECTORY/SIZE=ALL/DATE $ ZIP :== $ZIP/VMS

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 9 Command Qualifiers $ command/qualifier $ command/qualifier=value $ command/qualifier=(value,value) $ command/qualifier=keyword=value $ command/qualifier=- (keyword=value,keyword=(value,value))

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 10 Non-positional Qualifiers Apply to the entire command, no matter where they appear. $ command param1/qual param2 Example: $ COPY A.DAT A.NEW/LOG $ DELETE/LOG C.TMP;

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 11 Positional Qualifiers Apply only to the object they qualify. $ command param1/qual=value1 - param2/qual=value2 Examples: $ PRINT/COPIES=2 RPT1.LIS,RPT2.LIS $ PRINT RPT1.LIS/COPIES=1,- RPT2.LIS/COPIES=3

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 12 Common Qualifiers Many commands support a set of common qualifiers: /BACKUP /BEFORE /CREATED /EXCLUDE /EXPIRED /INCLUDE /MODIFIED /OUTPUT /PAGE /SINCE See the on-line HELP for specifics.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 13 DCL Statement Elements $ vbl = value DCL statements are typically assignments where a variable receives a value.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 14 Assignment Statements $ vbl = F$lexical_function( params ) Examples: $ FSP = F$SEARCH(“*.TXT”) $ DFLT = F$ENVIRONMENT (“DEFAULT”) $ NODE = F$GETSYI(“NODENAME”)

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 15 Assignment Statements $ vbl = string_expression Examples: $ A = “String 1 “ + “String 2” $ B = A - “String “ - “String “ $ C = ‘A’ Maximum string length = 255 bytes

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 16 Assignment Statements $ vbl = numeric_expression Examples: $ A = 1 $ B = A +1 $ C = B + A + %X7F25 $ D = %O3776

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 17 Assignment Statements $ vbl[start_bit,bit_count]=numeric_exp Examples: $ ESC[0,8]=%X1B $ CR[0,8]=13 $ LF[0,8]=10 $ FF[0,8]=12 $ CRLF[0,8]=13 $ CRLF[8,8]=10

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 18 Assignment Statements $ vbl = boolean_expression Examples: $ MANIA = (“TRUE”.EQS. “FALSE”) $ TRUE = (1.EQ. 1) $ FALSE = (1.EQ. 0) $ YES = 1 $ NO = 0

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 19 Assignment Statements Local Assignment: $ vbl = value Global Assignment: $ vbl == value

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 20 Assignment Statements Quoted String: $ vbl = “quoted string” Case is preserved. Examples: $ PROMPT = “Press RETURN to continue “ $ INVRSP = “% Invalid response!”

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 21 Assignment Statements Unquoted string: $ vbl := unquoted string Case is NOT preserved, becomes uppercase. Leading/trailing spaces are trimmed off. Examples: $ SAY := Write Sys$Output $ SYSMAN :== $SYSMAN ! Comment

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 22 Foreign Commands $ vbl := $filespec[ param[ param[ …]]] “filespec” defaults to SYS$SYSTEM:.EXE Maximum string length is 510 bytes.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 23 Conditional Expressions $ IF condition THEN statement Variations: $ IF condition THEN $ statement $ IF condition THEN - $ statement

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 24 Conditional Expressions $ IF condition $ THEN $statement(s) $ ENDIF

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 25 Conditional Expressions $ IF condition $ THEN $IF condition $THEN $statement(s) $ENDIF

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 26 Conditional Expressions $ IF condition $ THEN $IF condition $THEN $statement(s) $ENDIF $statement(s) $ ENDIF

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 27 Conditional Expressions $ IF condition $ THEN $statement(s) $IF condition $THEN $statement(s) $ENDIF

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 28 Conditional Expressions $ IF condition $ THEN statement(s) $IF condition $THEN $statement(s) $ENDIF This may not work in pre-V6 VMS!

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 29 Conditional Expressions $ IF condition $ THEN $ statement(s) $ ELSE $statement(s) $ ENDIF

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 30 Labels, GOTO $ GOTO label_1. $label_1:

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 31 GOSUB, RETURN $ GOSUB label_1. $label_1: $ statement(s) $ RETURN

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 32 SUBROUTINE - ENDSUB... $ CALL label_1[ param[ param[ …]]. $label_1: SUBROUTINE $ statement(s) $ END SUBROUTINE

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 33 Common Lexical Functions $ vbl = F$CVTIME(string[, keyword[, keyword]]) “string” = Absolute time expression “keyword” = (1st instance) is one of “ABSOLUTE”, “COMPARISION”, “DELTA” “keyword” = (2nd instance) is one of “DATE”, “DATETIME”, “DAY”, “MONTH”, “YEAR”, “HOUR”, “MINUTE”, “SECOND”, “HUNDREDTH”, “WEEKDAY”

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 34 Common Lexical Functions F$CVTIME(), Continued… Defaults: $ vbl = F$CVTIME(string, - ”COMPARISON”, - ”DATETIME” )

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 35 Common Lexical Functions F$CVTIME(), Continued… Date Formats: Comparison YYYY-MM-DD HH:MM:SS.CC Absolute DD-MMM-YYYY HH:MM:SS.CC Delta +/-DDDDD HH:MM:SS.CC

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 36 Common Lexical Functions $ vbl = F$GETDVI( dev_name, keyword ) “dev_name” is a valid device name “keyword” is a quoted string Examples: $ FBLK = F$GETDVI( “DUA0”,”FREEBLOCKS”) $ MNTD = F$GETDVI( “DKA500”,”MNT”) $ DVNM := DUA0: $ VLNM := VOLNAM $ VNAM = F$GETDVI( DVNM, VLNM )

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 37 Common Lexical Functions $ vbl = F$QETQUI( - function,- item,- value,- keyword(s)) See the on-line help for descriptions.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 38 Common Lexical Functions $ VBL = F$GETJPI( pid, keyword ) Examples: $ USN = F$GETJPI( 0, “USERNAME” ) $ MOD = F$GETJPI( 0, “MODE” )

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 39 Common Lexical Functions $ vbl = F$GETSYI( item[, nodename] ) Examples: $ NODE = F$GETSYI( “NODENAME” ) $ FGP = F$GETSYI( “FREE_GBLPAGES” ) $ FGS = F$GETSYI( “FREE_GBLSECTS” )

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 40 Parameters p1 p2 p3 … p8 Notes: Only eight(8) parameters are passed from the command line, P1 through P8 Parameters with embedded spaces must be quoted strings. Parameters are separated by a space.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 41 Parameters, Cont’d p1 p2 p3 … p8 Notes, Cont’d: Reference parameters via the variable names P1 through P8. No built-in “shift” function. If you need it, write it as a GOSUB.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 42 Logical Names Created using ASSIGN and DEFINE. $ ASSIGN DUA0:[MY_DIR] MY_DIR $ DEFINE MY_DIR DUA0:[MY_DIR] Deleted using DEASSIGN. $ DEASSIGN MY_DIR

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 43 Logical Names Specifying a logical name table: $ ASSIGN/TABLE=table_name $ DEFINE/TABLE=table_name Examples: $ DEFINE/TABLE=LNM$PROCESS $ DEFINE/PROCESS $ DEFINE/TABLE=LNM$JOB $ DEFINE/JOB $ DEFINE/TABLE=LNM$GROUP! These require $ DEFINE/GROUP! GRPNAM privilege. $ DEFINE/TABLE=LNM$SYSTEM! These require $ DEFINE/SYSTEM! SYSNAM privilege.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 44 Logical Names Specifying a mode: $ ASSIGN/USER $ ASSIGN/SUPERVISOR $ ASSIGN/EXECUTIVE! Requires CMEXECprivilege $ DEFINE/USER $ DEFINE/SUPERVISOR $ DEFINE/EXECUTIVE! Requires CMEXECprivilege There is no /KERNEL qualifier. Kernel mode logicals must be created by privileged programs (requires CMKRNL privilege).

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 45 Logical Names “Rooted” Logicals - Specifying Translation Attributes $ DEFINE/TRANSLATION_ATTRIBUTES=- (CONCEALED) Note: /TRANSLATION_ATTRIBUTES is a positional qualifier.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 46 Logical Names “Rooted” Logicals, Cont’d - Example: $ DEFINE/TRANS=(CONC) SRC_DIR DKA0:[SRC.] $ DIRECTORY SRC_DIR:[000000] $ DIRECTORY SRC_DIR:[MKISOFS] $ DEFINE SRC_AP SRC_DIR:[AP] $ DIRECTORY SRC_AP $ DEFINE SRC_GL SRC_DIR:[GL] $ DIRECTORY SRC_GL

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 47 Recurring Batch Jobs Jobs can reSUBMIT themselves - use the F$GETQUI lexical function to obtain the needed information: $ vbl = F$GETQUI( “DISPLAY_JOB”, - item,, “THIS JOB” ) Useful items: QUEUE_NAME, FILE_SPECIFICATION, AFTER_TIME, others.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 48 Daily Batch Jobs Daily Jobs Get the /AFTER time: $ AFTER = F$GETQUI( “DISPLAY_JOB”,- “AFTER_TIME”,,- “THIS_JOB”) Add one day to it: $ NEXT = F$CVTIME( “’’AFTER’+1-”,- “ABSOLUTE”, )

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 49 Weekly Batch Jobs Weekly Jobs Get the /AFTER time: $ AFTER = F$GETQUI( “DISPLAY_JOB”,- “AFTER_TIME”,,- “THIS_JOB”) Add seven days to it: $ NEXT = F$CVTIME( “’’AFTER’+7-”,- “ABSOLUTE”, )

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 50 Select Tasks by Day Get the current day name, look for tasks for that day. $ TODAY = F$CVTIME(,, “WEEKDAY” ) $ PRC_NAME := [.‘TODAY’]WEEKLY.COM $ FSP = F$SEARCH( PRC_NAME ) $ IF FSP.NES. “” THEN - &FSP Example Path [.SUNDAY]WEEKLY.COM

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 51 Select Monthly Tasks by Day Get the current day number, look for tasks for that day. $ TODAY = F$CVTIME(,, “DAY” ) $ PRC_NAME := [.‘TODAY’]MONTHLY.COM $ FSP = F$SEARCH( PRC_NAME ) $ IF FSP.NES. “” THEN - &FSP Example Path [.01]MONTHLY.COM

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 52 Select Last Day of the Month Get the current day number +1, see if it’s the first of the month. $ TOMORROW = F$CVTIME( “+1-”,, “DAY” ) $ IF TOMORROW.EQ. 1 THEN - $ statement

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 53 Select Yearly Tasks by Date Get the current day and numbers, look for tasks for that day. $ TODAY = F$CVTIME(,, “MONTH” ) + - F$CVTIME(,, “DAY” )! String values! $ PRC_NAME := [.‘TODAY’]YEARLY.COM $ FSP = F$SEARCH( PRC_NAME ) $ IF FSP.NES. “” THEN - &FSP Example Paths: [.0101]YEARLY.COM [.0731]YEARLY.COM

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 54 Q / A Speak now or forever hold your peas.

DJE Systems©1999 All Rights ReservedIntroduction to DCL Programming DECUS Symposium - Fall 1999 San DiegoSlide 55 Thank You ! Remember to fill out the evaluation forms! …and stay tuned for Intermediate DCL Programming!