Sunday, 28 April 2019

Why Is IBM UrbanCode Deploy, The Most Trending Thing Now?

I this blog, I will give an overview of  UCD i.e. IBM UrbanCode Deploy tool. It is another popular tool that is gaining popularity and widely used for automating application deployment. 

IBM Z the most robust, secure and scalable IT platform for your development framework. It's built for cloud, ready for blockchain, optimized for machine learning and open for DevOps.
What is the IBM UrbanCode Deploy Tool?
IBM UrbanCode Deploy is a tool for automating application deployments through your environments. It is designed to facilitate rapid feedback and continuous delivery in agile development while providing the audit trails, versioning and approvals needed in production.
IBM UrbanCode Deploy automates and speeds up software deployment through different environments. It is designed to support the DevOps approach, enabling incremental application changes to be rolled out quickly and in a reliable and repeatable manner. It includes build and test tools that can automate the deployment of applications all the way to mainframe production environments.
Mainframe Forum
IBM UrbanCode Deploy


Feature of IBM UrbanCode Deploy Tools. 




  1. The speed with qualityIncrease the frequency of software delivery through automated, repeatable deployment processes across development, test, and production.
  2. Reduce deployment failure: Deliver higher-quality application releases with increased compliance through end-to-end transparency, audit-ability and reduced time to feedback.
  3. Manage complexity: Simplify the deployment of multi-channel apps to all environments, whether on-premises or in the cloud—public or private, with consistency and repeatability.
  4. Reduce silos: Collaborate closely among lines of business, development and IT operations with a lean and agile DevOps software delivery approach.
  5. Scale Reliably: Use one centralized server to manage tens of thousands of endpoints to any number of clouds, data centers, or mainframes.
Mainframe Forum Tutorial
IBM UrbanCode Deploy Architecture


The Latest Trend In Devops, Devops Implementation In Mainframe Development, DevOps Meaning.

In this tutorial, I would try to focus on the latest trends in mainframe (The Big Iron) application development. The new methodology is more efficient, faster and cost effective as compare to old terminology. 

The software industry is continuously evolving with the introduction of new methodologies such as DevOps and a set of new tools (i.e. IBM UrbanCode Deploy, RDZ, DevOps Azure) that improve process efficiency. 

In the traditional software delivery pipeline, developers write code in an integrated development environment (IDE), such as Eclipse. The application is deployed to the test environment, then a pre-production or staging environment, and finally the production environment. 

The DevOps delivery pipeline has all the same phases. But, it adds automation and continuous feedback loops, so more things happen automatically, and the deliverable artifact can improve with each develop-build-deploy cycle.

You will be surprised to know that DevOps-style continuous delivery is also supported by Mainframe Systems (for example CICS Transaction Server). Let me give a brief explanation of the term DevOps.

What is DevOps or DevOps Meaning? 

DevOps  = Software Development and Information Technology Development. 
DevOps is a software development methodology that stresses intercommunication between software developers and other personnel such as testers, designers, quality assurance, and operations. Since the term was initially coined to describe the collaboration between software developers and operations personnel, both roles were concatenated to form the word DevOps
DevOps is a direct descendant of the more established Agile software methodology. DevOps is fairly new. The term was first used at an Agile conference in 2008. The name has stuck and has created a full-blown methodology. DevOps has created new ideas about how organizations create and maintain software. DevOps has also created an ecosystem full of tools and other solutions that claim to be DevOps.
DevOps
DevOps Methodology Overview.

The goal of DevOps is to leverage collaboration throughout the entire software development life cycle. Another cornerstone of DevOps is blurring some of the traditional responsibilities of the personnel involved in software development.

DevOps specifies the certain responsibilities and tasks that traditionally would be held by a single group – that is developers write test code and operations personnel set up servers – are now shared.

This collaboration will result in faster development times, better quality code, increased efficiency, quality assurance, user acceptance, and production support. Of course, since DevOps is so new, there are still many questions on how to measure the benefits of DevOps.

There are many underlying reasons that can be attributed to the emergence of DevOps. A major factor is the evolution of software. Traditionally, the software was developed to complete a business or technical task and programmers wrote them.

This software program needs to run on a computer. Network operators would provide and maintain the computer on which developers program their software. Generally, there are two different groups here – developers and operations personnel. Each group has a mutually exclusive, predefined role.

Recently, the software has evolved to perform tasks such as emulation and virtualization. Developers can now deploy programs on virtual machines, often without the assistance of operations provisioning a physical server.

Clearly, there needs to be collaboration and coordination between developers and operations. This collaboration is called DevOps.

Many IT experts predict that as new technologies emerge that require more interfaces to more channels, the DevOps approach will gain popularity for the speed with which it can generate releases and updates.

Is DevOps is just a collaboration?

Of course, DevOps is more than this. DevOps collaboration is not limited to developers and operations. Adopters of DevOps identify different groups within their software infrastructure and the tasks they perform. 

Each group and task is analyzed to identify any areas of interdependence that can be added as collaborative efforts. DevOps intends to blur the traditional lines within the software development infrastructure. 

It is hoped that – since traditional tasks are now a shared collaborative effort – each group will feel more invested in tasks that they did not traditionally perform. 

To name a couple, developers will write better code as they are now partners in the quality assurance process and operations staff may spend more time on security patches as they discover network impact on the software development life cycle.

DevOps Benefits: 

In a DevOps, the business owner, the developers, and the operations team work collaboratively. The plan-develop-build-deploy-feedback process is continuous. The possible, human actions are minimized in favor of autonomous tools, including software builds that start on their own when eligible code updates become available. 


Devops
DevOps Overview

COBOL Evaluate Statement | Different Forms Of Evaluate Statement In COBOL [COBOL Evaluate Example].


EVALUATE in COBOL, Evaluate in cobol, evaluate cobol example

Different forms of COBOL Evaluate Statement


Welcome back to today's session on "COBOL Evaluate Statement". In this session, we will precisely explain the "Evaluate Statement in COBOL" and deep dive into the different forms of COBOL Evaluate statements. You'll go through different Evaluate statement examples for better understanding. So, let's get started with an introduction to COBOL Evaluate Statement. 

COBOL Evaluate Statement - Agenda. 

  • Introduction to Evaluate Statement in COBOL. 
  • How and when to use Evaluate in COBOL.
  • Different forms of COBOL Evaluate Statement.
  • COBOL Evaluate Statement Example. 
  • COBOL Evaluate Statement Tutorial.
  • Conclusion. 

Introduction.

EVALUATE in COBOL is similar to Microsoft Visual Basic "Select Case Statement". COBOL Evaluate statement is easy to implement and improve code readability. The key difference between EVALUATE and VBA Select Case is that no ‘Break’ is required i.e. control automatically transpire of the EVALUATE statement as soon as condition matched.

You can use Nested Evaluate in COBOL instead of nested If-ELSE statements.

How and when to use the COBOL Evaluate statement?

COBOL EVALUATE clause is better than nested IF-ELSE statement in terms of performance it saves a lot of CPU and simplifies the program logic. You can use nested IFs statements to implement business logic. There is no end to the depth of COBOL nested IF statements. But, when the COBOL program has to examine a variable for more than two levels, EVALUATE is the more preferred choice. 

Evaluate statement in COBOL is faster than nested IF-ELSE statements. It is not possible to replace all nested-Ifs in the program but you should try to replace as much as you can. 

Evaluate in COBOL Syntax. 

Let me write down the syntax of the COBOL EVALUATE statement.

* The syntax of the Evaluate statement as an If-statement alternative.

EVALUATE TRUE
    WHEN Condition-1
         Statement ... 
    WHEN OTHER 
         Statement- ... 
END-EVALUATE. 

During the execution of a COBOL EVALUATE statement, the values denoted by the list of subjects (items in the EVALUATE statement in COBOL) are compared with the values denoted by the list of objects in a WHEN phrase to establish a “match” between the two.

The value of a subject is compared with the value/range of values of the object in the corresponding ordinal position In the case of a single-valued (numeric/non-numeric) object, the subject-object comparison is done in the usual way.

When a range of values is specified for the object, the subject-object comparison results in TRUE, if the value of the subject falls within the range In the case of conditional values, the subject-object comparison results in TRUE, if both evaluate to the same value (that is if both are TRUE or both are FALSE).


Different forms of COBOL Evaluate Statement.

COBOL Evaluate statement has multiple formats. These formats suit the need of the programmer and enable them to implement business logic seamlessly. Let's deep dive into different forms of COBOL Evaluate Statements. 

#1. COBOL EVALUATE WHEN TRUE.

In this example, you'll see how to use multiple when conditions (i.e. COBOL evaluate multiple when). 

EVALUATE TRUE 
   WHEN END-OF-THE-FILE 
        PERFORM A00-WRT-TRL-REC 
   WHEN NOT-END-OF-THE-FILE 
        PERFORM B00-WRT-DTL-REC 
        PERFORM B10-RED-NXT-REC 
   WHEN OTHER 
        PERFORM Z00-CLL-ERR End-EVALUATE 
END-EVALUATE.


#2. COBOL EVALUATE WHEN TRUE ALSO TRUE.

The following example explains how you can code COBOL EVALUATE WHEN TRUE ALSO TRUE conditions (i.e. COBOL evaluate condition). 

EVALUATE TRUE ALSO TRUE
   WHEN WS-A = WS-B ALSO WS-C = WS-D
        DISPLAY 'CASE 1 is True' 
   WHEN WS-A > WS-B ALSO WS-C < WS-D 
        DISPLAY 'CASE 2 is True'  
   WHEN OTHER 
        DISPLAY 'OTHER CASE is True' 
END-EVALUATE.

#3. COBOL FORMAT 3: EVALUATE .... WHEN with multiple conditions i.e. AND and OR operator.

The following example explains how you can code COBOL EVALUATE WHEN with multiple conditions with logical operators (i.e. COBOL evaluate condition).

EVALUATE MARTIAL-STATUS 
   WHEN 'M'
        DISPLAY 'Married' 
   WHEN 'S'
   WHEN 'D'
   WHEN 'W'  
        DISPLAY 'Single'  
   WHEN OTHER 
        DISPLAY 'Not Specified' 
END-EVALUATE.


EVALUATE TRUE 
   WHEN WS-AGE > 10 AND WS-GEN = 'M'
        DISPLAY 'MALE with Age > 10' 
   WHEN WS-AGE > 10 AND WS-GEN = 'F' 
        DISPLAY 'Female with Age > 10'  
   WHEN (WS-AGE > 10 OR WS-AGE < 15) AND WS-GEN = 'F' 
        DISPLAY 'Female with Age between 10 - 15'  
   WHEN OTHER 
        DISPLAY 'Criteria not satisfy' 
END-EVALUATE.


#4 COBOL EVALUATE using THRU Phrase (i.e. EVALUATE WHEN with THRU).

This example teaches how you can code different conditions in a series of values to lead to the corresponding processing action by coding the THRU phrase. Operands in a COBOL EVALUATE THRU phrase must be of the same class.


EVALUATE WS-NUMBER
    WHEN 1
         DISPLAY '1'
    WHEN 2 
         DISPLAY '2' 
    WHEN 3 THRU 6
         DISPLAY 'Number between 3 - 6'
    WHEN OTHER 
         DISPLAY 'NUMBER not in range' 
END-EVALUATE.

If ANY is specified for an object, the subject-object comparison always results in TRUE 
The list of subjects is said to “match” with the list of the object if all the corresponding subject-object comparisons result in true 

Note: that the values of the subjects need not be of the same class. For example, one can be numeric and the other can be alphanumeric After the execution of one of the when clauses, the control is automatically passed on to the next sentence after the EVALUATE statement

COBOL EVALUATE Statement - Youtube.

Conclusion. 

Finally, this marks an end to the COBOL Evaluate Statement. COBOL Evaluate statement goes hand in hand and you got an alternative to COBOL Ifs statements. Evaluate statement in COBOL is better than IFs statement in terms of performance. Do check out COBOL LEVEL 88 Condition.


Subscribe to Topictrick & Don't forget to press THE BELL ICON to never miss any updates. Also, Please visit mention the link below to stay connected with Topictrick and the Mainframe forum on - 

► Youtube
► Facebook 
► Reddit

Thank you for your support. 
Mainframe Forum™

Sunday, 21 April 2019

IBM-CICS Top 100 Question & Answers 2023 | IBM-CICS Interview Questions & Answers For Experienced & Fresher.

IBM-CICS

IBM-CICS Interview questions and answers



CICS



Q.

What are the two CICS Signon transactions? 

A.

CESN and CSSN.

Q.

What is the difference between CESN and CSSN?

A.

CESN is the sign-on transaction with the External Security Manager such as RACF. ESM user id and the associated password must be provided for CESN transaction. On the other hand, CSSN is the sign on the transaction without ESM. The OPNAME and PASSWORD defined in the SNT must be provided for this transaction.

Q.

What is the latest version of CICS?

A.

CICS TS Version 5.5

Q.

What are the two types of direct access files supported by CICS? 

A.

VSAM and BDAM.

Q.

What are the two types of TD0s 

A.

Intrapartition TDO and Extrapartition TDQ.

Q.

What is the difference between an Intrapartition TDQ and Extrapartition TDO? 

A.

Intrapartition TDO is read or wrote by the program(s) in the same CICS system while Extrapartition TDQ is used by the applications outside the CICS system also.

Q.

What are the two types of interfaces provided by CICS to application programs?

A.

Command level and Macro level.

Q.

What is the function of the CICS translator?

A.

The CICS translator converts the EXEC CICS commands into call statements for a specific programming language. There are CICS translators for Assembler, PUI and COBOL.

Q.

What does 'pseudo conversational' mean?

A.

The programming methodology in which the task will not wait for the terminal user's response, but frees the resources after sending the message is called a pseudo-conversational technique. Terminating the task every time the application needs a response from the user and then starting the next transaction when the user presses any attention key is pseudo conversational processing.

Q.

When to use which VSAM data set (i.e. EDS, KSDS, RRDS, LDS, ESDS) ?

VSAM dataset
Not sure when to use which data set. 

Being a programmer I have faced situations where you are not sure which VSAM data set is suitable for business applications.

In fact, as per my experience, there is the various factor that a programmer/designer should consider before finalizing data set which should be used for storing data.    

In this tutorial, I have tried to compile key points that might help you in taking a decision.

Use KSDS if:
  1. The data access is sequential, skip sequential, or direct access by a key field
  2.  You would prefer easy programming for direct data processing
  3.  There will be many record insertions, deletions, and logical record length varies
  4.  You may optionally access records by an alternate index
  5.  Complex recovery (due to index and data components) is not a problem
  6.  You want to use data compression.

Use RRDS if:
  1. The record processing is sequential, skip sequential, or direct processing.
  2. Easy programming for direct processing is not a requirement.
  3. The argument for accessing data in direct mode is a relative record number, not the contents of a data field (key). RRDS is suitable for the type of logical records identified by a continuous and dense pattern of numbers (such as 1,2,3,4...).
  4. All records are fixed length.
  5. There are a small number of record insertions and deletions, and all the space for insertions must be pre-allocated in advance.
  6. Performance is an issue. RRDS performance is better than KSDS but worse than QSAM or BSAM.
Use ESDS if:
  1. You are adding logical records only at the end of the data set and reading them sequentially (in the application control)
  2.  The logical record is variable length
  3.  You seldom need direct record processing by key (using AIX)
  4.  You are using a batch processing application.

Use LDS if:
  1.  You want to exploit DIV
  2.  Your application manages logical records
  3.  Performance is an issue.

A Summary Of The Characteristics Of VSAM Data Set Types | Comparing VSAM Data Set Organizations.


VSAM comparison
Characteristics Of VSAM Data Set Types
I hope you have gone through my previous tutorial regarding VSAM terminology and concept. As you are already aware that there are 4 types of VSAM cluster/data sets i.e. KSDS, ESDS, LDS, RRDS.

In this tutorial, I have tried to compare the characteristics of the VSAM data set  (i.e. ESDS, KSDS, RRDS, VRRDS).

This comparison of the VSAM data set organization would help you to understand the difference of each cluster.

The table provides a summary of the characteristics of VSAM data set types. 



ESDS

KSDS

Fixed-length RRDS

Variable-length RRDS

Linear data sets

Records are in the same order as they are entered

Records are in collating sequence by key field after load

Records are in relative record number order

Records are in relative record number order

No processing at a record level

Records can be fixed or variable length

Records can be fixed or variable length

Records are fixed length

Records are variable length

No processing at a record level

Direct access by RBA

Direct access by key or by RBA

Direct access by relative record number

Direct access by relative record number

Access with Data-In-Virtual (DIV) optionally

Consist of a data component only

Consist of data and index components

Consist of a data component only

Consist of data and index components

Consist of a data component only

Alternate index allowed

Alternate indexes allowed

No alternate index allowed

No alternate index allowed

No alternate index allowed

A record’s RBA cannot change

A record’s RBA can change

A record’s relative record number cannot change

A record’s relative record number cannot change

No processing at a record level

Space at the end of the data set is used for adding records

Free space is used for inserting and lengthening records

Empty slots in the data set are used for adding records

Free space is used for inserting and lengthening records

No processing at a record level

A record cannot be deleted, but you can reuse its space for a record of the same length

Space that is given up by a deleted or shortened record becomes free space

A slot that is given up by a deleted record can be reused

Space that is given up by a deleted or shortened record becomes free space

No processing at a record level

Spanned records allowed

Spanned records allowed

No spanned records

No spanned records

No spanned records

Extended format allowed

Extended format or compression allowed

Extended format allowed

Extended format allowed

Extended format allowed

Friday, 12 April 2019

How to define VSAM CLUSTER / VSAM File? | Command to define VSAM Database.

Virtual Storage Access Method.
To create a VSAM dataset/ VSAM file you need to use AMS (i.e. Access Method Service). 

Most of the ASM commands are used very often and almost every mainframe application programmer remember these commands.
  
As you can see, these include commands for defining all three types of VSAM datasets / Clusters, for defining and building alternate indexes for key-sequenced data sets, and for listing catalog information. 

However, there are basically two ways of defining a cluster i.e. maybe you can use JCL or ISPF panel. 

Access Method Service
ISPF panel to define VSAM cluster.


The DEFINE CLUSTER command is used to define a KSDS, ESDS, or RRDS. 

Please note that parameters at the CLUSTER level apply to the entire cluster and parameters at the DATA or INDEX level apply only to the data or index component. 


Wednesday, 10 April 2019

VSAM - Virtual Storage Access Method Concepts.

VSAM Concept
Virtual Storage Access Method which is popularly known as VSAM. VSAM is one of several access methods in z/OS. It applies only to data stored on direct access storage devices (DASDs). 

VSAM access method is used for indexed files on an IBM mainframe. It was introduced by IBM in the 1970s. This access method makes it easier for an application to run an I/O operation (moving data between an I/O device and memory)

It is a high-performance access method used to organize data in the form of files in Mainframes.

The word virtual means only that VSAM was introduced at approximately the same time as the initial IBM virtual storage operating systems OS/VS1 and OS/VS2. Since then VSAM has been continually improved and enhanced.

It provides a catalog facility that can be used for both VSAM and non-VSAM files. And it provides a multi-function utility program called Access Method Services (AMS) that lets you perform a variety of functions for VSAM as well as non-VSAM files.




VSAM
IBM Mainframe Architecture.


Type of Data set:


VSAM data sets are broadly categorized into 4 categories.
  1. ESDS: Entry-sequenced data set (ESDS), the records are stored one after the other in consecutive disk locations. On other platforms, this is called a sequential file.To retrieve records from a sequential file, you must read them sequentially by disk location. This type of record retrieval is referred to as sequential access.
  2. KSDS: A key-sequenced data set (KSDS) consists of two parts: an index component and a data component. Within the index component, each entry contains a key field value that points either to a lower-level index or to a record in the data component of the file. On other platforms, this type of data set is called an indexed file.
  3. RRDS: A relative-record data set (RRDS) consists of record areas that can contain one record. Each of these areas is identified by a relative record number that indicates its relative position in the file. On other platforms, this type of data set is called a relative file.
  4. LDS: A Linear data set (LDS) contains data that has no record boundaries. Linear data sets contain none of the control information that other VSAM data sets do. Linear data sets must be cataloged in an integrated catalog facility catalog.
Salient Feature: 
  • The retrieval of records is faster because of an efficiently organized index. The  index is small because of key compression algorithm used to store and retrieve records
  • Embedded free space makes the insertion of records easy  and  therefore requires less reorganization
  • The deletion of records means that they are physically deleted thus allowing the reclaiming of free space within data sets
  • Records can be accessed randomly by key or address  and can also be accessed sequentially at the same time
  • VSAM data sets can be shared across partitions, regions, address space and systems. The type and level of sharing can be controlled thru AMS and JCL
  • VSAM provides data security thru passwords protection of data sets at various levels like reading an update.
  • VSAM provides the ability to physically distribute datasets over various volumes based on key ranges.
  • VSAM data sets are device  independent

Drawbacks:
  • Free spaces, hence more disk space
  • The integrity of VSAM data sets in cross systems and cross regions sharing   must be controlled by the User.


Have a look of Top 20 Interview Questions for VSAM (Virtual Storage Access Method)..

How to schedule a job for a specific system?


JCL
How to schedule a job for a specific system?
As you might be aware, JES2 and JES3 can be used to manage a multiprocessor network that consists of more than one system.

In a multiprocessor network, each system operates under the control of its own copy of OS/390 or ZOS. 

However, the JES components of each processor’s operating system are connected in various ways to the JES components of the other processors, and a common spool is used to service all the processors in the network.

IBM Architecture.
IBM Mainframe Architecture 


As a result, JES2 and JES3 can control how jobs are processed by the systems within the multiprocessor network.
  • The term system affinity can be used to describe the relationship between a job and the system on which it executes.
  • Under JES2, you use the SYSAFF parameter of the /*JOBPARM statement to specify system affinity. 
  • Under JES3, you use the SYSTEM parameter of the //*MAIN statement.

The global processor is the processor that’s in charge of the entire network. A local processor is one that’s controlled by the global processor.

The syntax for the SYSAFF parameter of the JES2 /*JOBPARM statement

SYSAFF= {*} {(system-name,…)} {ANY}

Explanation


*

The job will run on the system that reads it (the default).

system-name

A one- to four-character system-id defined in the multiprocessor network that identifies which processor will run the job. If more than one system-name is specified, the job can run on any one of the processors listed.

ANY

The job can run on any available processor.

The syntax for the SYSTEM parameter of the JES3 //*MAIN statement

SYSTEM= {[/](main-name,…)} {JGLOBAL} {JLOCAL} {ANY} 


Explanation


main-name

A system-id defined in the multiprocessor network that identifies which processor will be used to run the job. If more than one main-name is specified, the job can run on any one of the processors listed.

/

The job can run on any processor except the one(s) listed.

JGLOBAL

The job must run on the global processor.

JLOCAL

The job can run on any local processor.

ANY

The job can run on any available processor.

Specifying system affinity

Under JES2

/*JOBPARM  SYSAFF=MVSA
/*JOBPARM  SYSAFF=(MVSA,MVSB)
/*JOBPARM  SYSAFF=ANY

Under JES3

//*MAIN    SYSTEM=(MVSA,MVSC,MVSD)
//*MAIN    SYSTEM=JLOCAL
//*MAIN    SYSTEM=/MVSB



Share Blog
Mainframe-Forum

Tuesday, 9 April 2019

How to create and use cataloged procedures.

In-stream procedure
JCL Catalog Procedure's
A JCL cataloged procedure (or just procedure) is a pre-written segment of code consisting of one or more job steps that you can include in a job stream. 

By using procedures/JCL catalog procedure, the amount of JCL coding you have to do is reduced, resulting in fewer coding errors and greater productivity.

Definition of cataloged procedure. 

A cataloged procedure is a series of JCL statements that are stored in a partitioned data set and may be invoked by any job on the system.

Typical types of cataloged procedures

  • IBM-supplied procedures that compile, link, and run programs
  • JCL steps that back up, delete and define VSAM files
  • Programs that are required by many jobs
  • Large jobs where it makes sense to separate the steps into manageable procedures.
Important Points:
Cataloged procedures are stored in partitioned data sets and can be invoked by any job on the system. When you invoke a cataloged procedure, the system looks for it in the system procedure library, SYS1.PROCLIB, unless you specify otherwise.

The syntax for invoking a JCL procedure


EXEC [PROC=]procedure-name

Explanation

procedure-name Identifies the procedure to be called and executed. For cataloged procedures, it’s the member name of the procedure. For in-stream procedures, it’s the name on the PROC statement that begins the procedure.

Example:

A job that invokes a cataloged procedure


//RC01RN JOB (45512),'R ROGGER',NOTIFY=RC01
//STEP1 EXEC TMP3000
//


The cataloged JCL procedure named TMP3000 that is invoked


//TMP3000  PROC 
//TMP3010 EXEC PGM=EMP33010
//SYSOUT  DD SYSOUT=*
//INVMAST DD DSNAME=RCA2.INVE.MASTER.FILE,DISP=SHR
//INVSEL  DD DSNAME=&&INVSEL,DISP=(NEW,PASS),
//           UNIT=SYSDA,SPACE=(CYL,(20,10))
//SELCTL  DD DUMMY
//INV3020 EXEC PGM=EMP3020
//SYSOUT  DD SYSOUT=*
//INVMAST DD DSNAME=&&INVSEL,DISP=(OLD,DELETE)
//INVSLST DD SYSOUT=*


JCL


New In-feed ads