Open all | Close all


orgaisation selection BSP - set and get server side cookie ( set_server_cookie )

*orgselection.htm


Type Definitions
----------------
types: tt_hrp1001 type standard table of hrp1001 initial size 0.

TYPES: BEGIN OF t_orgdisplay,
  level(40) TYPE c,
  id        type i,
  parent    type i,
  objid TYPE hrp1001-objid,
  orgtx     type string,
  begda TYPE hrp1001-begda,
  endda TYPE hrp1001-endda,
  display type string,
  checked type string,
 END OF t_orgdisplay.
TYPES: tt_orgdisplay TYPE STANDARD TABLE OF t_orgdisplay.


Page Attributes
---------------
gd_count	TYPE	SY-INDEX
gd_id	TYPE	STRING
gd_str	TYPE	STRING
gd_update	TYPE	I
it_hrp1001	TYPE	TT_HRP1001
it_orgdisplay	TYPE	TT_ORGDISPLAY
it_selection	TYPE	Z_SOGRANT
p_windowsid	TYPE	STRING
tv_iterator	TYPE REF TO	IF_HTMLB_TABLEVIEW_ITERATOR
vIndex	TYPE	I
vSize	TYPE	STRING
wa_orgdisplay	TYPE	T_ORGDISPLAY


On Create
---------------
* this handler is called once the page is first created (stateful mode)
* it performs a once-off data initialization or object creation
    DATA: a_name          TYPE string VALUE 'NONE',
          a_name_space    TYPE string VALUE 'NONE',
          u_name          TYPE string VALUE 'NONE',
          session_id      TYPE string VALUE 'NONE'.

    cl_bsp_server_side_cookie=>get_server_cookie(
      EXPORTING
        name                  = p_windowsid
        application_name      = 'ORG_LIST'
        application_namespace = runtime->application_namespace
        username              = sy-uname
        session_id            = 'SESSION_ID'
        data_name             = 'COOKIE_ID_50CASE1'
      CHANGING
        data_value            = it_orgdisplay ).

    IF it_orgdisplay IS INITIAL.
      SUBMIT zorg_retrieve AND RETURN.
      IMPORT it_orgdisplay TO it_orgdisplay FROM MEMORY ID 'ZORGSTRUCT'.

      cl_bsp_server_side_cookie=>set_server_cookie(
        EXPORTING
          name                  = p_windowsid
          application_name      = 'ORG_LIST'
          application_namespace = runtime->application_namespace
          username              = sy-uname
          session_id            = 'SESSION_ID'
          data_value            = it_orgdisplay
          data_name             = 'COOKIE_ID_50CASE1'
          expiry_time_rel       = 3600
       ).
    ENDIF.


On Initialization
---------
* event handler for data retrieval

DATA: a_name          TYPE string VALUE 'NONE',
      a_name_space    TYPE string VALUE 'NONE',
      u_name          TYPE string VALUE 'NONE',
      session_id      TYPE string VALUE 'NONE'.


cl_bsp_server_side_cookie=>get_server_cookie(
  EXPORTING
    name                  = p_windowsid
    application_name      = 'ORG_LIST'
    application_namespace =  runtime->application_namespace
    username              = sy-uname
    session_id            = 'SESSION_ID'
    data_name             = 'COOKIE_ID_50CASE1'
*  IMPORTING
*    EXPIRY_DATE           =
*    EXPIRY_TIME           =
  CHANGING
    data_value            = it_orgdisplay ).


On InputProcessing
---------
* event handler for checking and processing user input and
* for defining navigation
    DATA: a_name          TYPE string VALUE 'NONE',
          a_name_space    TYPE string VALUE 'NONE',
          u_name          TYPE string VALUE 'NONE',
          session_id      TYPE string VALUE 'NONE'.

CLASS cl_htmlb_manager DEFINITION LOAD.
DATA: event TYPE REF TO cl_htmlb_event.
event ?= cl_htmlb_manager=>get_event( runtime->server->request ).

data: wa_next type string,
      wa_string type string,
      wa_selection like line of it_selection.

constants: con_tab  type c value cl_abap_char_utilities=>HORIZONTAL_TAB.



  IF event->id = 'orgButton' AND event->event_type = 'click'.

    DATA: data TYPE REF TO CL_HTMLB_INPUTFIELD.
    data ?= CL_HTMLB_MANAGER=>GET_DATA(
                                      request = runtime->server->request
                                           name     = 'inputField'
                                           id       = 'id1'
                                        ).
    IF data IS NOT INITIAL.
      gd_id = data->value.
      wa_string = gd_id.
        DO.
          IF wa_string is initial.
            EXIT.
          ELSE.
           SPLIT wa_string AT ',' INTO wa_next
                                           wa_string.
           read table it_orgdisplay into wa_orgdisplay
                                         with key id = wa_next.
           if wa_orgdisplay-checked = 'CHECKED'.
             wa_orgdisplay-checked = 'UNCHECKED'.
           else.
             wa_orgdisplay-checked = 'CHECKED'.
           endif.
           modify it_orgdisplay from wa_orgdisplay index sy-tabix.
          ENDIF.
        ENDDO.
        if sy-subrc eq 0.
          cl_bsp_server_side_cookie=>set_server_cookie(
            EXPORTING
              name                  = p_windowsid
              application_name      = 'ORG_LIST'
              application_namespace = runtime->application_namespace
              username              = sy-uname
              session_id            = 'SESSION_ID'
              data_value            = it_orgdisplay
              data_name             = 'COOKIE_ID_50CASE1'
              expiry_time_rel       = 3600
          ).
          loop at it_orgdisplay into wa_orgdisplay where
                                            checked = 'CHECKED'.
            wa_selection-selname = 'S_DEPT'.
            wa_selection-sign    = 'I'.
            wa_selection-option  = 'EQ'.
            wa_selection-low     = wa_orgdisplay-objid.
            wa_selection-high    = wa_orgdisplay-objid.
            append wa_selection to it_selection.
          endloop.

          cl_bsp_server_side_cookie=>set_server_cookie(
            EXPORTING
              name                  = p_windowsid
              application_name      = 'SEL_SCREEN'
              application_namespace = runtime->application_namespace
              username              = sy-uname
              session_id            = 'SESSION_ID'
              data_value            = it_selection
              data_name             = 'COOKIE_ID_50CASE1'
              expiry_time_rel       = 3600
          ).
          navigation->goto_page('closewindow.htm').
        endif.
    ENDIF.
ENDIF.


Layout
------
<%@page language="abap"%>
<%@extension name="htmlb" prefix="htmlb"%>

<htmlb:content design="classic">
  <htmlb:page title = " ">
    <htmlb:form>

<html>

<head>
  <SCRIPT TYPE="text/javascript">
<!--
window.focus();
//-->
</SCRIPT>


<SCRIPT LANGUAGE="JavaScript">
function close_window(mylink, windowname)
{
  javascript:window.close();

//Implementation
//<A HREF="orgtest.htm"  onClick="return close_window(this, 'OrgUnit')"></A>
}
</script>


	<title>Organisational Structure</title>

	<link rel="StyleSheet" href="dtree.css" type="text/css" />
	<script type="text/javascript" src="dtree.js"></script>

</head>

<body>
      <htmlb:inputField id            = "id1"
                        invalid        = "true"
                        value          = "<%=gd_id%>"
                        required       = "true"
                        visible        = " "/>

          <htmlb:button id      = "orgButton"
                        text    = "Done"
                        onClick = "orgButton"/>

<div class="dtree">

	<p><a href="javascript: d.openAll();">open all</a> |
 <a href="javascript: d.closeAll();">close all</a></p>

	<script type="text/javascript">
		<!--
              var count = 1;
              var count2 = 0;
              var str = ' ';

		d = new dTree('d');

  		d.add(0,-1,'The University of Leeds');
<% loop at it_orgdisplay into wa_orgdisplay.%>
     d.add(<%=wa_orgdisplay-id %>,<%=wa_orgdisplay-parent %>,
'<%=wa_orgdisplay-objid %> | <%=wa_orgdisplay-orgtx %>',
'orgupdate.htm?gd_id=<%=wa_orgdisplay-id %>&gd_update=2','','MAIN',
'','','','','<%=wa_orgdisplay-checked %>');
     count++;
<% endloop. %>
//d.add(400,0,'My Pictures','javascript:void(0);','','MAIN','test','','',
'img/folderopen.gif',true,true,'',true);
//d.add(401,400,'My Pictures','example01.html','','MAIN',
'Pictures I\ve taken over the years','','','img/folderopen.gif');

//      d.oAll(false);  // closes all branches
	 document.write(d);
//  d.openTo(20, true);
//  d.openTo(5, true);

		//-->
	</script>

</div>

<p>©V!p3r</p>
          <htmlb:button id      = "orgButton"
                        text    = "Done"
                        onClick = "orgButton"/>

<IFRAME marginwidth="0" marginheight="0" src="top/top.htm" name="MAIN"
width="1" height="1" border="0" frameborder="0"
style="border:none;" scrolling="no"></iframe>

</body>

</html>
    </htmlb:form>
  </htmlb:page>
</htmlb:content>