You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Sometimes 5250 enquiry style transactions use a 5250 screen that loop on <enter key values> -> <display data> -> <enter key values> -> <display data> interactions.
 Typically these screens have an INVOKE script that is structured along these lines:  
 
         var strAccessMenu   = "SomeMenuScreenName";
         var strThisEnquiry  = "SomeCherryEnquiryScreenName";    
 
         /*  Navigate to the menu that will provide access to the enquiry function */
        
         NAVIGATE_TO_JUNCTION(strAccessMenu);
         if ( !( CHECK_CURRENT_FORM(strAccessMenu, "Could not display menu", strAccessMenu) ) return;
 
         /* Invoke the screen from the access menu */
 
         SETVALUE("uMenuOptionField","7");  /* Say */
         SENDKEY(KeyEnter);
         if ( !( CHECK_CURRENT_FORM(strThisEnquiry,"Could not display enquiry screen", strThisEnquiry ) ) return;
 
         /* Enter the appropriate key value and display the enquiry details */
        
         SETVALUE("uKeyValueField",objInstanceList.Akey1[0] );  /* Say */
         SENDKEY(KeyEnter);
         if ( !( CHECK_CURRENT_FORM(strThisEnquiry,"Could not display", strThisEnquiry ) ) return;
         
         /* Finished */
 
When this transaction is used repeatedly (for example by clicking down through an instance list or orders, products, policies, etc) you can sometimes short-circuit the navigation logic by a simple script change along the following lines. This change produces less 5250 screen interactions giving a faster response for your end-users:
 
         var strAccessMenu   = "SomeMenuScreenName";
         var strThisEnquiry  = "SomeCherryEnquiryScreenName";    
 
         /* We only need to navigate if we are not already at the screen */
 
         if ( CURRENT_FORM() != strThisEnquiry )
         {      
 
             /*  Navigate to the menu that will provide access to the enquiry function */
        
             NAVIGATE_TO_JUNCTION(strAccessMenu);
             if ( !( CHECK_CURRENT_FORM(strAccessMenu, "Could not display menu", strAccessMenu) ) return;
 
             /* Invoke the screen from the access menu */
 
             SETVALUE("uMenuOptionField","7");  /* Say */
             SENDKEY(KeyEnter);
             if (!(CHECK_CURRENT_FORM(strThisEnquiry,"Could not display enquiry screen",strThisEnquiry)) return;
        
         }  
 
 
         /* Enter the appropriate key value and display the enquiry details */
        
         SETVALUE("uKeyValueField",objInstanceList.Akey1[0] );  /* Say */
         SENDKEY(KeyEnter);
         if ( !( CHECK_CURRENT_FORM(strThisEnquiry,"Could not display", strThisEnquiry ) ) return;
 
         /* Finished */

  • No labels