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
#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