ESP Workload Automation

 View Only
Expand all | Collapse all

in a csf extension can I pass csf variables so they auto-populate an ispf panel?

  • 1.  in a csf extension can I pass csf variables so they auto-populate an ispf panel?

    Posted Mar 11, 2019 02:07 PM

    Hello Forum, 

         We use ESP v11.4 and caops to automatically trigger creation of certain types of help desk tickets.

    We also have the need to manually trigger a specific ESP event to create more esoteric types of tickets.

    Using the standard ESP triggering mechanism, ala ispf panel CYBESTRI, the operators currently have to manually enter the helpdesk queuename in USER1, the ticket severity must be entered in USER2,  the failed jobname  manually entered in USER3 and the failed job's Applname entered in USER4, and then trigger our SMTICKET event and a ticket gets created with those values incorporated.

     

     What I'd like to do, is something similar to the following:

     

    In a nutshell, I am trying, in a  rexx csf extension, which would be invoked after you tab to a failed job name in the csf and type SM1 next to the jobname:

     

    1) extract the csf jobname via Job() function   and assign it in the rexx to variable FF3 via  rexx statement  FF3 = Job()

     

    2) extract the csf applname via Appl() function   and assign it in the rexx to variable FF4 via rexx statement FF4 = Appl()

     

    3) In the rexx extension, display a new ispf panel  named 'cybessm1',   via the line 

    Address ISPEXEC "DISPLAY PANEL(CYBESSM1)"

    but have the cybessm1 panel display with the FF3 value already filled in the USER3 field &

    the FF4 value already filled in the USER4 field.

     

    Is it possible to pass those set FF3 and FF4  values to the CYBESSM1 panel so that they pre-populate the USER3 & USER4   fields in the panel?  In my rexx when I echo out FF3 and FF4 values, they are being picked up just fine extracted from the csf jobname,  but when I then do the display cmd for  the panel CYBESSM1,  the USER3 and USER4 are still blank....the panel is not picking up the FF3 and FF4 values in the rexx code.

    (see below, the panel does have variables FF3 and FF4)

    Here is what my panel looks like:

     

    )ATTR DEFAULT(%+_)
    /******************************************************************/
    /* Trigger Event Panel to create SM ticket */
    /******************************************************************/
    @ TYPE(TEXT) /* Eventname */
    ! TYPE(INPUT) CAPS(OFF) /* Userparms */
    $ TYPE(TEXT) COLOR(TURQ) /* Firstline */
    )BODY EXPAND(\\) /* ----------------------------------------------- */
    % \-\ TRIGGER AN EVENT TO CREATE SM TICKET\-\ +
    %COMMAND ===>_ZCMD @&EVNM
    +
    $FIll in any of the following optional fields and press ENTER:
    +
    +User Parameters passed to Event:
    +USER1%===>!FF1
    +USER2%===>!FF2
    +USER3%===>!FF3                           <<<<<<<<<<<  the rexx sets FF3 to Job() but panel doesn't reflect that..USER3 remains blank?
    +USER4%===>!FF4                           <<<<<<<<<<<  the rexx sets FF4 to Appl() but panel doesn't reflect that..USER4 remains blank?
    +
    +CASE SENSITIVE%===>_Q+ (Specify%Y+to retain case of USER1-4 parameters)
    +
    +ROOTJOB(S): (Names of jobs and successors, for a partial rerun)
    + %===>_FF5
    + %===>_FF6
    +
    )INIT /* ---------------------------------------------------------- */
    &FF3 = &FF3
    &FF4 = &FF3
    )PROC /* ---------------------------------------------------------- */
    VER (&ZCMD,LEN,'=',0,MSG=CYBES200)

     

     

     

    thanks,

     

    p.s  based on the user values gleaned from our ispf panel this type of cybess67 logic would trigger our event:

    /* Construct a TRIGGER command, using the specified options: 
    Cmd = "TRIGGER"  TEST.SMTICKET Raopt        << build a command to trigger our hand-rolled ticket-gen event

     

    If FF1 <> "" Then 
    Cmd = Cmd "USER1('"FF1"')"    <<< user will have to fill this in on the ispf panel
    If FF2 <> "" Then 
    Cmd = Cmd "USER2('"FF2"')"    <<< user will have to fill this in on the ispf panel
    If FF3 <> "" Then 
    Cmd = Cmd "USER3('"FF3"')"   <<<< would like FF3 & FF4 auto-filled in on the ispf panel when the panel is opened
    If FF4 <> "" Then 
    Cmd = Cmd "USER4('"FF4"')" 

     

    /* Execute the TRIGGER command: 
    Address ESP Cmd 
    If Rc <> 0 Then 
    Signal Again /* redisplay if error 
    Return



  • 2.  Re: in a csf extension can I pass csf variables so they auto-populate an ispf panel?

    Broadcom Employee
    Posted Mar 12, 2019 11:51 AM

    Hi Mike,

     

    This seems not an easy question. Would you mind to address it thru a support ticket?

     

    And we will post the result/answer.

     

    Thank you for your understanding,

     

    Lucy



  • 3.  Re: in a csf extension can I pass csf variables so they auto-populate an ispf panel?

    Posted Mar 12, 2019 12:00 PM

    Hi Lucy, yep, already got that in the pipe (I requested Ensono to open a question to CA with

    all that was included in the forum.

     

    thanks,

     

    This Email message and any attachment may contain information that is proprietary, legally privileged, confidential and/or subject to copyright belonging to Exelon Corporation or its affiliates ("Exelon"). This Email is intended solely for the use of the person(s) to which it is addressed. If you are not an intended recipient, or the employee or agent responsible for delivery of this Email to the intended recipient(s), you are hereby notified that any dissemination, distribution or copying of this Email is strictly prohibited. If you have received this message in error, please immediately notify the sender and permanently delete this Email and any copies. Exelon policies expressly prohibit employees from making defamatory or offensive statements and infringing any copyright or any other legal right by Email communication. Exelon will not accept any liability in respect of such communications. -EXCIP



  • 4.  Re: in a csf extension can I pass csf variables so they auto-populate an ispf panel?

    Broadcom Employee
    Posted Mar 13, 2019 03:46 PM

    Hi Mike,

     

    I have Emailed below to Ensono support.

     

    You can change following in sample member CYBESS67: 
    /* Blank out Variables used in panel CYBESTRI: 
    FF3 = "" 
    FF4 = "" 

     

    To: 
    FF3 = Jobname() 
    FF4 = Applname() 

     

    Then the JOB name and APPL name will be extracted from CSF and placed in the USER3 and USER4 fields. 

     

    For example, following is the job on CSF: 
    Job Name ApplName Gen# AvgRT Job Tag Job Status 
    ___ CYBLZ DOCLIB    1 -                               FAILED, JCL ERROR 

     

    And when I entered the CSF extension TRI, the panel will show as below: 
    FIll in any of the following options 
    REPLACE/ADD ===> 
    TRIGGER TIME ===> 

     

    APPL on HOLD ===> 
    BYPASS XEQ ===> 
    SYSTEM ===> 

     

    User Parameters passed to Event: 
    USER1 ===> 
    USER2 ===> 
    USER3 ===> CYBLZ <==== the job name 
    USER4 ===> DOCLIB <====== the appl name 

     

     

    Please give it a try and let me know if it works,

     

    Lucy



  • 5.  Re: in a csf extension can I pass csf variables so they auto-populate an ispf panel?

    Posted Mar 13, 2019 04:57 PM
      |   view attached

    Still no joy in Muddville Lucy, and your code paradigm is exactly what I’ve been trying the last 2 days without luck.

     

     

    Given failed job A#BIEGA6  Appl SMTEST in the csf:

     

    CYBESS01 olidated Status: View FAILED



  • 6.  Re: in a csf extension can I pass csf variables so they auto-populate an ispf panel?

    Posted Mar 13, 2019 05:08 PM

    looks like my email reply got truncated:

    ===>                                                  Scroll ===> CSR 

    Say "SM1  invoked"                                                      

    Say " "                                                                

    Say "Job()      =" Jobname()                                           

    Say "Appl()     =" Applname()                                           

                                                                            

    /* REXX: ASEPSAME(CYBESS67)                                          */

    /* Copyright (C) 2006 CA                                             */

                                                                            

    /* CSF/ApplMon extension to Trigger an Event                         */

    /*     associated with a job or Application.                         */

    /* Command Name: TR                                                  */

    /* Uncomment the following line to enable the confirmation pop-up.   */

    /* AskConf = "Yes"                                                   */

                                                                            

    /* Blank out Variables used in panel CYBESTRI:                       */

    A     = ""      /* Bypass next scheduled execution option            */

    AA    = ""      /* System option                                     */

    AA2   = ""      /* Trigger time/date                                 */

    B     = ""      /* Place Appl on hold option                         */

    FF1   = ""      /* User1 parm                                        */

    FF2   = ""      /* User2 parm                                        */

    FF3   = Jobname()   /* User3 parm                                    */

    FF4   = Applname()   /* User4 parm                                   */

    FF5   = ""      /* Root jobs1                                        */

    FF6   = ""      /* Root jobs2                                        */

    FF7   = ""      /* Subapplication                                    */

    Q     = ""      /* Case sensitivity flag                             */

    Raopt = ""      /* Replace or Add option                             */

                                                                            

    Again:                                                                 

    /* Display panel CYBESTRI to obtain options:                         */

    /*Address ISPEXEC "DISPLAY PANEL(CYBESTRI)"              */            

    Address ISPEXEC "DISPLAY PANEL(CYBESSM1)"           << panel cybessm1 is 100% copy of panel cybestri (I don’t want to mess with original panel)                   

    Say "FF3  STILL =" FF3                                                 

    exit    /* MB */                        <<<< I am exiting here while testing

     

     

    You can see FF3 is set to Jobname() and FF4 to Applname()

     

    When I type SM1 next to job a#biega, I get a display verifying

    the variables FF3 and FF4 are correct at least while inside the rexx:

     

    SM1  invoked          

                            

     Job()      = A#BIEGA6 

     Appl()     = SMTEST   

     ***                   

     

    but panel cybessm1 which, again, is a 100% identical copy of cybestri still shows no values whatsoever in USER3 or USER4:

     

    CYBESSM1 --------------------- TRIGGER AN EVENT --------------------------

    COMMAND ===>                                                             

                                                                               

     FIll in any of the following optional fields and press ENTER:            

     REPLACE/ADD  ===>         (Defaults to REPLACE - set by TRDFLT command)  

     TRIGGER TIME ===>                                                        

                             (Specify trigger time/date, NOW is the default)  

                                                                               

     APPL on HOLD ===>   (Specify Y to place Application in APPLHOLD status)  

     BYPASS XEQ ===>    (Specify Y to bypass next scheduled Event execution)  

     SYSTEM   ===>                    (SYSID where this Event is to execute)  

                                                                               

     User Parameters passed to Event:                                         

     USER1 ===>                                                                

     USER2 ===>                                                               

     USER3 ===>                                                               

     USER4 ===>                               



  • 7.  Re: in a csf extension can I pass csf variables so they auto-populate an ispf panel?

    Broadcom Employee
    Posted Mar 13, 2019 05:36 PM

    Hi Mike,

     

    I just tried with your exact code, and it worked fine for me, both USER3 and USER4 are populated.

     

    Wonder if there may be typo or extra char in the rexx code member. Could you replace it with a copy of CYBESS67 and ONLY change that two lines? 

     

    If it still doesn't work, you may add "TRACE R" to trace EVERY command.

     

    Thank you,

     

    Lucy



  • 8.  Re: in a csf extension can I pass csf variables so they auto-populate an ispf panel?

    Posted Mar 13, 2019 05:47 PM
      |   view attached

    okay I’ll try that.

    Perhaps we can go direct person-to-person email until we get a working copy??

     

    Michael Bieganski

    Technical Analyst

    Exelon C&I Network, Infra & Cloud Ops -Mainframe

     

    Chase Towers

    10 S. Dearborn, 45th Floor

    Chicago, IL 60603

    Office:779 231-7707

    Michael.Bieganski@exeloncorp.com<mailto:Michael.Bieganski@exeloncorp.com>



  • 9.  Re: in a csf extension can I pass csf variables so they auto-populate an ispf panel?
    Best Answer

    Broadcom Employee
    Posted Mar 21, 2019 09:28 AM

    Just FYI.

     

    It turned out when the CSF extension SM1 was defined in CYBESCSU table, "ISPF" was missed. It should be:

    LC SM1 EXEC(SM1) ISPF 

     

    After that was corrected, then following in the code can populate the jobname, applname & generation number on the event trigger screen:

    FF3   = Jobname()   /* User3 parm                                    */

    FF4   = Appl()    /* User4 parm                                   */

     

    Hope it helps,

     

    Lucy



  • 10.  Re: in a csf extension can I pass csf variables so they auto-populate an ispf panel?

    Posted Mar 21, 2019 09:36 AM

    that was all it was (sometimes it's just the little things).  Adding the ISPF to the command in cybesscu allowed the values to populate through to the panel.

    Thanks Lucy...you're the best!