Exemplo n.º 1
0
    def _copy_vsam_to_temp_data_set(self, ds_name):
        """ Copy VSAM data set to a temporary sequential data set """
        mvs_rc = 0
        vsam_size = self._get_vsam_size(ds_name)
        sysprint = sysin = out_ds_name = None
        try:
            sysin = data_set.DataSet.create_temp("MVSTMP")
            sysprint = data_set.DataSet.create_temp("MVSTMP")
            out_ds_name = data_set.DataSet.create_temp("MSVTMP",
                                                       space_primary=vsam_size,
                                                       space_type="K")
            repro_sysin = " REPRO INFILE(INPUT)  OUTFILE(OUTPUT) "
            Datasets.write(sysin, repro_sysin)

            dd_statements = []
            dd_statements.append(
                types.DDStatement(ddName="sysin", dataset=sysin))
            dd_statements.append(
                types.DDStatement(ddName="input", dataset=ds_name))
            dd_statements.append(
                types.DDStatement(ddName="output", dataset=out_ds_name))
            dd_statements.append(
                types.DDStatement(ddName="sysprint", dataset=sysprint))

            mvs_rc = MVSCmd.execute_authorized(pgm="idcams",
                                               args="",
                                               dds=dd_statements)

        except OSError as err:
            self._fail_json(msg=str(err))

        except Exception as err:
            if Datasets.exists(out_ds_name):
                Datasets.delete(out_ds_name)

            if mvs_rc != 0:
                self._fail_json(
                    msg=(
                        "Non-zero return code received while executing MVSCmd "
                        "to copy VSAM data set {0}".format(ds_name)),
                    rc=mvs_rc,
                )
            self._fail_json(
                msg=
                ("Failed to call IDCAMS to copy VSAM data set {0} to a temporary"
                 " sequential data set".format(ds_name)),
                stderr=str(err),
                rc=mvs_rc,
            )

        finally:
            Datasets.delete(sysprint)
            Datasets.delete(sysin)

        return out_ds_name
Exemplo n.º 2
0
#Import the Z Open Automation Utilities libraries we need
from zoautil_py import MVSCmd, Datasets
from zoautil_py.types import DDStatement
# Import datetime, needed so we can format the report
from datetime import datetime
# Import os, needed to get the environment variables
import os

#Take the contents of this data set and read it into cc_contents
cc_contents = Datasets.read("MTM2020.PUBLIC.CUST16")

USERID = os.getenv("USER")
output_dataset = USERID + ".OUTPUT.CCINVALD"
#Delete the output dataset if it already exists
if Datasets.exists(output_dataset):
    Datasets.delete(output_dataset)

Datasets.create(output_dataset, "SEQ")

# Create a new SEQUENTIAL DATA SET with the name of output_dataset


#A function that checks to see if the number passed to it is even. Returns True or False (Boolean)
def is_even(num_to_check
            ):  # this is a function. num_to_check is what gets sent to it
    if ((num_to_check %
         2) == 0):  # a simple check to see if num_to_check is even.
        result = True  # We set result to True
        return result  # and then return it.
    else:  # if it isn't
        result = False  # set return to False