Standard Program created in SE38 or SE80

This is the orgtest.htm page of the example SAP HR org structure BSP, this is being used to demonstrate the use of javascript retrieve the SAP HR org structure and display it to the SAP bsp user. Please note although this will work as a standalone abap program it provides very little as output as it is designed to be implemented as part of the whole SAP HR org structure BSP

*&-------------------------------------------------------------*
*& Report  ZORG_RETRIEVE                                       *
*&                                                             *
*&-------------------------------------------------------------*
*Standard Program created in SE38 or SE80
REPORT  zorg_retrieve                                                  .
TYPES: tt_hrp1001 TYPE STANDARD TABLE OF hrp1001 INITIAL SIZE 0.
DATA: it_hrp1001 TYPE tt_hrp1001.
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,
 END OF t_orgdisplay.
DATA: it_orgdisplay TYPE STANDARD TABLE OF t_orgdisplay,
      wa_orgdisplay TYPE t_orgdisplay.
DATA: wa_hrp1001 LIKE LINE OF it_hrp1001,
      wa_objid TYPE hrp1001-objid,
      wa_objid1 TYPE hrp1001-objid,
      wa_objid2 TYPE hrp1001-objid,
      wa_objid3 TYPE hrp1001-objid,
      wa_objid4 TYPE hrp1001-objid,
      wa_objid5 TYPE hrp1001-objid,
      wa_objid6 TYPE hrp1001-objid,
      gd_branchid type i,
      gd_parent1 type i,
      gd_parent2 type i,
      gd_parent3 type i,
      gd_parent4 type i,
      gd_parent5 type i,
      gd_parent6 type i,
      gd_parent7 type i.
SELECT *
  FROM hrp1001
* up to 500 rows
  INTO TABLE it_hrp1001
 WHERE otype = 'O'  AND
       plvar = '01' AND
       rsign = 'B'  AND
       ( relat = '002' OR
         relat = '003' ) AND
       begda LE sy-datum AND
       endda GE sy-datum.
clear: gd_branchid.
*level 1
gd_parent1 = 0.
LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid = '50000025'.
  wa_objid = wa_hrp1001-varyf+2(8).
  wa_orgdisplay-level(2) = wa_orgdisplay-level(2) + 1.
  perform append_org_data using gd_branchid gd_parent1.
  gd_parent2 = gd_branchid.
*  WRITE:/ 'level1'.
* level 2
  LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid    = wa_objid
                                       AND varyf(1) = 'O'.
    wa_objid1 = wa_hrp1001-varyf+2(8).
    wa_orgdisplay-level+2(2) = wa_orgdisplay-level+2(2) + 1.
    perform append_org_data using gd_branchid gd_parent2.
    gd_parent3 = gd_branchid.
*    WRITE:/ 'level2'.
*   level 3
    LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid    = wa_objid1
                                         AND varyf(1) = 'O'.
      wa_objid2 = wa_hrp1001-varyf+2(8).
      wa_orgdisplay-level+4(2) = wa_orgdisplay-level+4(2) + 1.
      perform append_org_data using gd_branchid gd_parent3.
      gd_parent4 = gd_branchid.
*      WRITE:/ 'level3:', wa_objid2 .
*     level4
      LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid    = wa_objid2
                                           AND varyf(1) = 'O'.
        wa_objid3 = wa_hrp1001-varyf+2(8).
        wa_orgdisplay-level+6(2) = wa_orgdisplay-level+6(2) + 1.
        perform append_org_data using gd_branchid gd_parent4.
        gd_parent5 = gd_branchid.
*        WRITE:/ 'level4:', wa_objid3.
*       level5
        LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid    = wa_objid3
                                             AND varyf(1) = 'O'.
          wa_objid4 = wa_hrp1001-varyf+2(8).
          wa_orgdisplay-level+8(2) = wa_orgdisplay-level+8(2) + 1.
          perform append_org_data using gd_branchid gd_parent5.
          gd_parent6 = gd_branchid.
*          WRITE:/ 'level5:', wa_objid4.
*       level6
        LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid    = wa_objid4
                                             AND varyf(1) = 'O'.
          wa_objid5 = wa_hrp1001-varyf+2(8).
          wa_orgdisplay-level+10(2) = wa_orgdisplay-level+10(2) + 1.
          perform append_org_data using gd_branchid gd_parent6.
          gd_parent7 = gd_branchid.
*          WRITE:/ 'level6:', wa_objid5.
*       level7
        LOOP AT it_hrp1001 INTO wa_hrp1001 WHERE objid    = wa_objid5
                                             AND varyf(1) = 'O'.
          wa_objid6 = wa_hrp1001-varyf+2(8).
          wa_orgdisplay-level+12(2) = wa_orgdisplay-level+12(2) + 1.
          perform append_org_data using gd_branchid gd_parent7.
*          WRITE:/ 'level6:', wa_objid6.
        ENDLOOP.
          CLEAR: wa_orgdisplay-level+12(2).
        ENDLOOP.
         CLEAR: wa_orgdisplay-level+10(2).
        ENDLOOP.
        CLEAR: wa_orgdisplay-level+8(2).
      ENDLOOP.
      CLEAR: wa_orgdisplay-level+6(2).
    ENDLOOP.
    CLEAR: wa_orgdisplay-level+4(2).
  ENDLOOP.
  CLEAR: wa_orgdisplay-level+2(2).
ENDLOOP.
CLEAR: wa_orgdisplay-level(2).
export it_orgdisplay to memory id 'ZORGSTRUCT'.
*&---------------------------------------------------------------------*
*&      Form  append_org_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form append_org_data using p_id
                           p_parent.
  gd_branchid = gd_branchid + 1.
  wa_orgdisplay-objid = wa_hrp1001-varyf+2(8).
  wa_orgdisplay-begda = wa_hrp1001-begda.
  wa_orgdisplay-endda = wa_hrp1001-endda.
  wa_orgdisplay-id     = p_id.
  wa_orgdisplay-parent = p_parent.
  if wa_orgdisplay-level+2  is initial.
    wa_orgdisplay-display = 'TOP'.
  endif.
* Retrieve Org. Unit text
  PERFORM get_org_unit USING wa_orgdisplay-objid
                             wa_hrp1001-begda
                             wa_hrp1001-endda
                       CHANGING wa_orgdisplay-orgtx.
  translate wa_orgdisplay-orgtx using ''' '.
  if wa_orgdisplay-orgtx is initial.
    wa_orgdisplay-orgtx = 'Text unavailable'.
  endif.
  APPEND wa_orgdisplay TO it_orgdisplay.
  clear: wa_orgdisplay-display.
endform.                    " append_org_data
*&---------------------------------------------------------------------*
*&      Form  get_org_unit
*&---------------------------------------------------------------------*
* Retrieve Org. Unit text
*----------------------------------------------------------------------*
FORM get_org_unit USING    p_orgeh
                           p_begda
                           p_endda
                  CHANGING p_orgtx.
  DATA: orgeh_short(12) TYPE c,
        orgeh_stext(40) TYPE c,
        read_return TYPE i.
* Returns full orgunit text, entry in table t527x is sometimes
* truncated so that it fits into a 25 character field
  CALL FUNCTION 'HR_READ_FOREIGN_OBJECT_TEXT'
       EXPORTING
          otype                   = 'O'
*         otype                   = ot_orgunit
            objid                   = p_orgeh   "p0001-orgeh
            begda                   = p_begda   "p0001-begda
            endda                   = p_endda   "p0001-endda
            reference_date          = p_begda   "p0001-begda
       IMPORTING
            short_text              = orgeh_short
            object_text             = orgeh_stext
            return                  = read_return
       EXCEPTIONS
            nothing_found           = 1
            wrong_objecttype        = 2
            missing_costcenter_data = 3
            missing_object_id       = 4
            OTHERS                  = 5.
  IF sy-subrc EQ 0.
    p_orgtx = orgeh_stext.
  ELSE.
*     If function module fails return text from text table
    SELECT SINGLE orgtx
      FROM t527x
      INTO p_orgtx
     WHERE orgeh EQ p_orgeh AND  "Replace with org. unit field
           sprsl EQ sy-langu AND
           ( endda GE sy-datum AND
             begda LE sy-datum ).
  ENDIF.
ENDFORM.                    " get_org_unit

Related Articles

Javascript to capture when a user closes or leaves sap bsp html page
Using AJAX functionality within our SAP BSP
Close BSP Session (type 'Pluggin HTTP') including when in SAP portal
SAP BSP to auto select region when user selects country using HTML and Javascript
HTML and Javascript code to force enter key to perform tab
JavaScrip command getElementById useful examples
MVC BSP input field - Demonstrate how to retrieve a value entered into text input field
Allowing multiple instances of a BSP application to be run by a user
Execute Standard SAP Transaction from BSP using dynamically created shortcut
Uplaod file within SAP BSP application using HTML and ABAP coding
UUseful SAP BSP application code - ABAP, HTML, HTMLB, Javascript, CSS
Creating a BSP Application class to help store and pass data betwenn your BSP pages
Training Course and Workshop Booking Form
BSP checkboxes using HTML and the OnInputProcessing BSP Event
BSP checkboxes using HTML and the OnInputProcessing BSP Event
Check HTML checkbox is checked using Javascript within your SAP BSP
BSP Dropdown List - create a BSP dropdown list which allows user selection!!
ABAP BSP to allow user to select from SAP HR org structure - CSS file
Java script to display tree structure on your SAP BSP web page
Create a Simple BSP - Simple BSP to display text and call section BSP page using HTML
SAP BSP Training course booking - Creating an example training course booking form using BSP
Creating an SAP BSP which executes an ABAP report to retrieve data for use within BSP application
org selection BSP - detials.htm page
Display page of the SAP BSP example application to store favourite tcodes as a cookie
Execute.htm page of the SAP BSP example application to store favourite tcodes as a cookie
Favourites cookie bsp - initial page to display input fields and retrieve user input
BSP using cookies - Demonstrate use of cookies within a BSP to store user favourits
ABAP Export data to memory - Demonstrate use of ABAP program to retrieve data for use in BSP
MVC BSP HTMLB input field - Demonstrate how to retrieve a value entered into text input field
BSP development using standard HTML code instead of Business HTML (HTMLB)
Business HTML (HTMLB) - List of business HTML tags you can use within your BSP
Adding JavaScript to BSP (HTML) pages - Shows how to add javascript to your BSP pages
Example JavaScript code which can be added to your BSP application
BSP MIME Objects for Org. search application
Call onInputProcessing event from SAP BSP page via href or button
Organisation selection BSP - close internet window using javascript
Organisation selection BSP - get server side cookie ( get_server_cookie )
orgaisation selection BSP - set and get server side cookie ( set_server_cookie )
Display orgaisation selection BSP
BSP which allows HR Organisation Structure search and selection using javascript
Organisation update program - get server side cookie ( get_server_cookie )
BSP to capture user entry into HTML input fields
Capture BSP radiobutton selection using HTML and the OnInputProcessing BSP Event
BSP checkboxes using HTML and the OnInputProcessing BSP Event
Stateful and stateless BSP applications
Get user entry into HTML input fields with SAP BSP
Javascript to capture when a user closes or leaves sap bsp html page
Creating a BSP using the Model View Controller ( MVC ) technique
Using SAP Model View Controller (MVC) development techniques to develop BSPs
Adding a JavaScript date selection field to a BSP
Creating a BSP using the Model View Controller ( MVC ) technique
Creating a BSP using the Model View Controller(MVC) technique
Creating a BSP using the Model View Controller ( MVC ) technique
Retrieve value from input text field within a model view controller ( MVC) BSP
Web Application Development - Example code and information on development using BSP
SAP BSP / Business Server Pages combine ABAP and other web technologies such as HTML, CSS
BSP development screen - developing application using business server pages