Friday, May 8, 2015

Call Program in Function Module ABAP

I have created a function module by name 'ZQTR_VACCANT'.
Purpose of this function module is to fetch the data from the program.
Result of the function module will be displayed on the ASP NET Portal.
You can call any program by replacing the ZTM_QURTER_STATUS and with parameters required to execute the program.
At the end you will get the result in TEXTLINES.
It will be separated by | 'PIPE' sign.
Split it as per your requirement.

FUNCTION ZQTR_VACCANT.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(TOWNSHIPID) TYPE  ZTM_TOWNSHIPID
*"     VALUE(VACANT) TYPE  SY-UCOMM
*"  TABLES
*"      ITAB STRUCTURE  ZQTR_VACCANT
*"----------------------------------------------------------------------
DATALIST_TAB TYPE TABLE OF ABAPLIST.
DATATEXTLINES(1024TYPE C OCCURS WITH HEADER LINE.
DATAWA_TEXTLINES LIKE LINE OF TEXTLINES.

SUBMIT ZTM_QURTER_STATUS WITH TOWNSHIP TOWNSHIPID
                         WITH VACANT VACANT
                         EXPORTING LIST TO MEMORY
                         AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
  TABLES
    LISTOBJECT LIST_TAB
  EXCEPTIONS
    NOT_FOUND  1
    OTHERS     2.

IF SY-SUBRC 0.
  CALL FUNCTION 'WRITE_LIST'
    TABLES
      LISTOBJECT LIST_TAB.
ENDIF.

CALL FUNCTION 'LIST_TO_ASCI'
  TABLES
    LISTOBJECT LIST_TAB
    LISTASCI TEXTLINES
  EXCEPTIONS
    EMPTY_LIST 1
    LIST_INDEX_INVALID 2
  OTHERS 3.

TYPESBEGIN OF ST,
        SNO1 TYPE BELNR_D,
        SNO TYPE BELNR_D,
        TYPEID TYPE ZTM_TYPEID,
        SUBTYPEID TYPE ZTM_SUBTYPEID,
        BUILDINGID TYPE ZTM_BUILDINGID,
        QUARTERID TYPE ZTM_QUARTERID,
        FLOOR  TYPE ZTM_FLOOR,
        LOCATION TYPE ZTM_LOCATION,
        ENDDATE(10),
       END OF ST.
DATAIT TYPE STANDARD TABLE OF ST.
DATAWA LIKE LINE OF IT.

LOOP AT TEXTLINES INTO WA_TEXTLINES.
  CHECK SY-TABIX GT 9.
  " SPLIT PIPE DELIMITED DATA
  SPLIT WA_TEXTLINES AT '|' INTO WA-SNO1 WA-SNO WA-TYPEID WA-SUBTYPEID WA-BUILDINGID WA-QUARTERID WA-FLOOR WA-LOCATION WA-ENDDATE.
  APPEND WA TO IT.
  CLEAR  WA.
ENDLOOP.

LOOP AT IT INTO WA.
  IF WA-TYPEID IS NOT INITIAL.
    MOVE-CORRESPONDING WA TO ITAB.
    APPEND ITAB.
  ENDIF.
ENDLOOP.

ENDFUNCTION.

No comments:

Post a Comment