IBM Crypto Education Community - Group home

Rexx Sample: CKDS Record Count

  

/* Rexx */

/*-------------------------------------------------------------------*/
/* Description:                                                      */
/*                                                                   */
/* This REXX contains a sample that shows how to count records in    */
/* the CKDS                                                          */
/*                                                                   */
/* How To Run:                                                       */
/* - Execute this script from TSO                                    */
/*   (e.g. EX 'HLQ.MLD.LLQ(COUNTREC)')                               */
/*-------------------------------------------------------------------*/

/*********************************************************************/
/* List the record counts                                            */
/*********************************************************************/

kdsl_rule_array_count    = '00000003'x;
kdsl_rule_array          = 'CKDS    COUNT   ALL     ';
Call CSFKDSL;

say "CKDS record count: " c2d(kdsl_label_count);

say "-----------------------------------------------------------------"
say "End of Sample"
say "-----------------------------------------------------------------"

exit;

/* --------------------------------------------------------------- */
/* CSFKDSL - Key Data Set List                                     */
/*                                                                 */
/* Generates a list or count of CKDS and PKDS labels or TKDS       */
/* object handles.                                                 */
/*                                                                 */
/* See the ICSF Application Programmer's Guide for more details.   */
/* --------------------------------------------------------------- */
CSFKDSL:
kdsl_rc = 'FFFFFFFF'x;
kdsl_rs = 'FFFFFFFF'x;
kdsl_exit_data_length    = '00000000'x;
kdsl_exit_data           = '';
kdsl_label_filter_length = '00000000'x;
kdsl_label_filter        = '';
kdsl_search_crit_length  = '00000000'x;
kdsl_search_crit         = '';
kdsl_label_count         = '00000000'x;
kdsl_output_list_length  = '00000000'x;
kdsl_output_list         = '';
kdsl_reserved1_length    = '00000000'x;
kdsl_reserved1           = '';
kdsl_reserved2_length    = '00000000'x;
kdsl_reserved2           = '';
kdsl_continuation_area   = '';

ADDRESS LINKPGM "CSFKDSL",
                "kdsl_rc"                     "kdsl_rs"            ,
                "kdsl_exit_data_length"       "kdsl_exit_data"     ,
                "kdsl_rule_array_count"       "kdsl_rule_array"    ,
                "kdsl_label_filter_length"    "kdsl_label_filter"  ,
                "kdsl_search_crit_length"     "kdsl_search_crit"   ,
                "kdsl_label_count"                                 ,
                "kdsl_output_list_length"     "kdsl_output_list"   ,
                "kdsl_reserved1_length"       "kdsl_reserved1"     ,
                "kdsl_reserved2_length"       "kdsl_reserved2"     ,
                "kdsl_continuation_area";

if (KDSL_RC /= '00000000'x) Then
  say 'KDSL Failed   (rc=' c2x(KDSL_RC)' rs='c2x(KDSL_rs)')' ;

return;