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

Compare with Current View Page History

« Previous Version 3 Next »

  • In this step you will extend the WebRoutine showsave, to fetch employee details. This will be invoked via a clickable image weblet in the list EMPDISP displayed by WebRoutine ShowSave.
  • An Employee's details will be stored in a new working list EMPDATA that will hold one entry and will also be mapped as persistent data.
  • A new WebRoutine showemp will display the stored employee details.
  • The search WebRoutine will be extended to handle clearing the lists EMPSAVE and EMPDATA.


  1. Define a working list EMPDATA for employee details:
         Def_List Name(#empdata) Fields(#EMPNO #SURNAME #GIVENAME #ADDRESS1 #ADDRESS2 #ADDRESS3 #POSTCODE #PHONEHME #PHONEBUS #DEPTMENT #SECTION #SALARY #STARTDTE #TERMDATE) Counter(#listcount) Type(*Working) Entrys(1)

  2. Define a group by to display employee fields
         Group_By Name(#empgrp) Fields((#EMPNO *out) (#SURNAME *out) (#GIVENAME *out) (#ADDRESS1 *out) (#ADDRESS2 *out) (#ADDRESS3 *out) (#postcode *out) (#PHONEbus *out) (#phonehme *out) (#DEPTMENT *out) (#SECTION *out) (#SALARY *out) (#STARTDTE *out) (#TERMDATE *out))

  3. Extend the web_map for persistent data to include list EMPDATA.
         Web_Map For(*none) Fields(#empsave #empdata) Options(*PERSIST)

  4. Extend case loop in the search WebRoutine to clear the saved lists.
         When (= C)
    Clr_List Named(#empsave)
    Clr_List Named(#empdata)
    Message Msgtxt('Saved employee list was cleared')
  5. Extend the case loop in the showsave WebRoutine to fetch employee data and add an entry to the list EMPDATA.
         When (= D)
    Clr_List Named(#empdata)
    Fetch Fields(#empgrp) From_File(pslmst) With_Key(#empno) Val_Error(*next)
    If_Status Is(*okay)
    Add_Entry To_List(#empdata)
    Message Msgtxt('Employee details saved')
    Endif
    Transfer Toroutine(search)
     
  6. In the showsave WebRoutine, add a web_map for input for field EMPNO. This value will be passed in for the selected row, by the clickable image.
         Web_Map For(*input) Fields(#empno)
  7. Create a new WebRoutine showemp to retrieve the one entry from the list EMPDATA or transfer to the search WebRoutine.
         WebRoutine Name(showemp) Desc('Show Saved Employee')
    Web_Map For(*output) Fields(#empgrp)
    If (#listcount = 1)
    Get_Entry Number(1) From_List(#empdata)
    Else
    Message Msgtxt('Employee details not available')
    Transfer Toroutine(search)
    Endif
    Endroutine

  8. Compile your WAM.

  9. Open the search WebRoutine in the Design view.

  10. Add a push button into the table at the bottom of the page. Set up the button properties:

    Property

    Value

    caption

    Show Employee Details

    on_click_wrname

    showemp

    submitExtraFields


    Field Name: STDRENTRY

    Literal Value: D



  11. Add a third push button into the table at the bottom of the page and setup the button properties:

    Property

    Value

    caption

    Clear Saved Lists

    on_click_wrname

    search

    submitExtraFields


    Field Name: STDRENTRY

    Literal Value: C



  12. Remove the place holder characters from this table.

  13. Save your changes.

  14. Open the showsave WebRoutine in the Design view.

  15. Select and delete the column heading for the first column.

  16. Drop a clickable image into the first column (field STDSELECT). Set up the clickable image properties:

    Property

    Value

    currentrowhfield

    EMPNO

    Currentrownumvalue

    $EMPNO

    Reentryvalue

    D

    On_click_wrname

    showsave



  17. Save your changes.

  18. Open the showemp WebRoutine in the Design view. Drop a push button onto the page below the list. Set up the button properties:

    Property

    Value

    Caption

    Return to Search

    On_click_wrname

    search

    submitExtraFields

    Field Name: STDRENTRY


    Literal Value: M



  19. Save your changes.

  20. Test your WAM.

    1. You should now get the following results:
      • Retrieve and display employee search results
      • Display saved list of employees
      • Select an employee in the saved list using the clickable image
      • Display selected employee and return to the search page
      • Display the saved employee data
      • Clear both saved employee list and employee data

    2. Start your WAM from any WebRoutine except WebRoutine init. You should be transferred to the init WebRoutine to establish a session, and then transferred to the search WebRoutine, displaying suitable messages.

  21. In your WAM source, use F7 to display WAM properties on the Details tab. Change the Session Timeout from its default value (300 seconds) to 10 and recompile your WAM.

  22. Test your WAM.
    Perform a search and display the saved list. This should be displayed. However, due to the very short time out (10 seconds) by the time you return to the search web page, the WAM will have timed out, giving appropriate messages. If you then immediately display the saved employee list, there will be no entries.

    Note: The session timeout value is the "wait time" for the response from the client (the browser). So with a session timeout of 10 seconds, whenever you delay for more than 10 seconds, the session will time out. If on the other hand you keep sending requests to the server within the 10 second time out window, the session will never time out.

    Persistent data will only be retrieved if the session is active. If a new session is established, due to time out, there is currently no persistent data for that session.
  • No labels