Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

RETURNCODE fail in samrtfroms.

Former Member
0 Kudos

Hi All ,

i have developed a custom smartform and a custom Pritprogram . while executing form the transaction it is showing the form but in the OUTPUT type it is showing redbutton . in the processinglog it is giving message "Processing routine ENTRY in program ZZ_SDSH_PALLET_MANIFEST does not exist "

But in my print program i have a routine ENTRY .

while debugging i found that after exeqution of FORM sy-subrc = 0 and after that in Function module PROGRAMM_AUFRUFEN , i am getting the RETURNCODE = 999 .

If i give the return code = 0 . then Output type is displaying in green button .

sample code of Print program :

FORM ENTRY USING RETURN_CODE TYPE I SCREEN_OUTPUT TYPE C.

doing some code and calling Form function module.

ENDFORM.

FORM PROTOCOL_UPDATE USING SCREEN_OUTPUT.

CHECK SCREEN_OUTPUT EQ SPACE.

CALL FUNCTION 'NAST_PROTOCOL_UPDATE'

EXPORTING

MSG_ARBGB = SYST-MSGID

MSG_NR = SYST-MSGNO

MSG_TY = SYST-MSGTY

MSG_V1 = SYST-MSGV1

MSG_V2 = SYST-MSGV2

MSG_V3 = SYST-MSGV3

MSG_V4 = SYST-MSGV4

EXCEPTIONS

OTHERS = 1.

IF SY-SUBRC <> 0. ENDIF.

ENDFORM.

-


Thanks

3 REPLIES 3

Former Member
0 Kudos

Hi,

It looks like there is a problem with PROGRAMM_AUFRUFEN. What exactly is happening here?

Regards,

Ravi

0 Kudos

Hi ,

it is a standard functionmodule

Thanks

Former Member
0 Kudos

Check this code out..

REPORT  ZSD_PACKING_LIST_EN                        .
*-------------------------------------------------------------------*
*   Program    : ZSD_PACKING_LIST.                                  *
*   Author     : Suresh Kashimalla                                  *
*   Date       : 11/29/2004                                         *
*   Description: Driver Program for Packing List(SD)                *
*                                                                   *
*********************************************************************
*                    Modification Log                               *
* Author                :                                           *
* Date of change        :                                           *
* Functional Spec #     :                                           *
* Correction Request #  :                                           *
* Description of Change :                                           *
*********************************************************************
Tables: nast,                          "Messages
        *nast,                         "Messages
        tnapr,                         "Programs & Forms
        itcpo,                         "Communicationarea for Spool
        arc_params,                    "Archive parameters
        toa_dara,                      "Archive parameters
        addr_key,                      "Adressnumber for ADDRESS
        MARM,
        vepo.

type-pools szadr.
DATA price_print_mode(1) TYPE c.       "Print-mode
DATA: retcode   LIKE sy-subrc.         "Returncode
DATA: repeat(1) TYPE c.
DATA: xscreen(1) TYPE c.               "Output on printer or screen
Data: GS_Vbeln like LIKP-VBELN.
DATA : V_SIGNI like VTTK-signi,
       V_TPBEZ like VTTK-TPBEZ,
       v_vltdr like vttk-TDLNR,
       v_name1 TYPE name1,
       v_lfipl like lips-lfimg,
       v_lfipl1 like lips-lfimg.

DATA : V_CONLB TYPE F VALUE '2.20458553791887'.

************************************************************************
*Intenal Tables Declarations
************************************************************************
*Internal tabel Details fro SD Document: Delivery Header Data
DATA : BEGIN OF IT_LIKP OCCURS 0.
        INCLUDE STRUCTURE LIKP.
DATA : END OF IT_LIKP.
DATA : BEGIN OF IT_ZLIKP OCCURS 0,
         VBELN LIKE LIKP-VBELN,        " Delivery
         LFDAT LIKE LIKP-LFDAT,        " Delivery Date
         KUNNR LIKE LIKP-KUNNR,         " Ship-To Party
         BTGEW LIKE LIKP-BTGEW,        " Total Weight
         GEWEI LIKE LIKP-GEWEI,        " Weight Unit
         NTGEW LIKE LIKP-NTGEW,        " Net weight
         VOLUM LIKE LIKP-VOLUM,        " Volume
         VOLEH LIKE LIKP-VOLEH,        " Volume unit
         TRAID LIKE LIKP-TRAID,        "Means of Transport ID
         BTGEWLB LIKE LIKP-BTGEW,        " Total Weight
         GEWEILB LIKE LIKP-GEWEI,        " Weight Unit
         NTGEWLB LIKE LIKP-NTGEW,        " Net weight
         INCO1 LIKE LIKP-INCO1,        " Terms of deleviry
         INCO2 LIKE LIKP-INCO2,        " Terms of deleviry
END OF IT_ZLIKP.

*DATA : BEGIN OF IT_VTTK OCCURS 0,
*         TKNUM LIKE VTTK-TKNUM,       " Shipment Number
*         EDOCK  LIKE VTTK-SIGNI,      " Container ID
*         ADOCK  LIKE VTTK-TPBEZ,      " Description of Shipment
*         END OF IT_VTTK.

*Intenal table for Item Details from lips
DATA : BEGIN OF IT_LIPS OCCURS 0,
         vgpos like lips-vgpos,       " Refrence Doc Line item
         VBELN LIKE LIPS-VBELN,       " Delivery
         POSNR LIKE LIPS-POSNR,       " Delivery item
         lfimg like lips-lfimg,       " Actual quantity delivered
         meins like lips-meins,       " Delivered Quantity UOM
         MATNR LIKE LIPS-MATNR,       " Material Number
         vgbel like lips-matnr,       " Refrence Doc.
         KWMENG LIKE VBAP-KWMENG,     " Order quantity
         VRKME  LIKE VBAP-VRKME,      " Unit
         ARKTX LIKE LIPS-ARKTX,       " Short Text for Sales Order Item
         kcmeng like lips-kcmeng,     " Cumml. Delivery Quantity
         BSTNK LIKE VBAK-BSTNK,       " Cust.SKU
         lfipl like lips-lfimg,       " Actual quantity delivered
         lfior like lips-lfimg,       " Actual quantity delivered
         meinso like lips-meins,      " Delivered Quantity UOM
       END OF IT_LIPS.
*Internal table for Material Data.
DATA : BEGIN OF IT_MAT OCCURS 0,
         MATNR LIKE MARA-MATNR,
         BISMT LIKE MARA-BISMT,
       END OF IT_MAT.

*Internal table declaration for Special Note.
Data : Begin of it_STXH occurs 0,
         TDOBJECT like STXH-TDOBJECT,
         TDNAME like STXH-TDNAME,
         TDID  like STXH-TDID,
         TDSPRAS like STXH-TDSPRAS,
       End of it_STXH.

*Internal table for Item
Data : Begin of It_vbap occurs 0,
         vbeln like vbap-vbeln,
         posnr like vbap-posnr,
       End of it_vbap.
Data : It_IStxh like It_stxh occurs 0 with header line.

Data : V_posnr type char16.

Data : Begin of it_posnr occurs 0,
         item like stxh-tdname,
       End of it_posnr.


*pallet
DATA: IT_LTAP LIKE ZLTAP OCCURS 0 WITH HEADER LINE.

DATA: IT_ITEM LIKE ZLIPS_PACK OCCURS 0 WITH HEADER LINE.

*--Start of change by rashmi 30th Aug 05
data: v_vbelnl(70) type c,
      it_line like tline occurs 0,
      it_cert_line like tline occurs 0,
      it_cust_line like tline occurs 0.
*--End of change by rashmi 30th Aug 05

*----------------------------------------------------------------------*
*      Parameters Declaration                                          *
*----------------------------------------------------------------------*
*PARAMETER : P_VBELN TYPE LIKP-VBELN.
*----------------------------------------------------------------------*
*      Data Declaration                                                *
*----------------------------------------------------------------------*
DATA : V_TKNUM LIKE VTTP-TKNUM.
DATA : V_BSTNK LIKE VBAK-BSTNK.
DATA : V_VBELV LIKE VBFA-VBELV.
DATA : V_VBELN LIKE VBAK-VBELN.
DATA : V_KWMENG LIKE VBAP-KWMENG.
DATA : V_WERKS LIKE LIPS-WERKS.
DATA : V_KUNNR LIKE KNA1-KUNNR.
DATA : V_TELF1 LIKE KNA1-TELF1.
DATA : V_TELFX LIKE KNA1-TELFX.
DATA : V_EBELN LIKE EKPO-EBELN,
           V_BRGEW LIKE VEKP-BRGEW,
          V_BTGEW LIKE LIKP-BTGEW.

CONSTANTS : C_J TYPE C VALUE 'J'.

DATA: LF_FM_NAME            TYPE RS38L_FNAM.
*
DATA:  V_LBBIL_INVOICE TYPE LBBIL_INVOICE,    " Invoice
        V_NAST TYPE  NAST.    " Nast
*
*data : it_likp like table of zlikp  with header line.
**----------------------------------------------------------------------
**
**      Start of Selection
**
**----------------------------------------------------------------------
**
************************************************************************
*Form Processing
************************************************************************
FORM entry USING return_code us_screen.
  CLEAR retcode.
  xscreen = us_screen.
  PERFORM processing.
  IF retcode NE 0.
    return_code = 1.
  ELSE.
    return_code = 0.
  ENDIF.
ENDFORM.                    "entry




*---------------------------------------------------------------------*
*       FORM PROCESSING                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM processing.
  Data : Is_Sender type adrnr.
  DATA: lf_fm_name            TYPE rs38l_fnam.
  DATA: ls_control_param      TYPE ssfctrlop.
  DATA: ls_composer_param     TYPE ssfcompop.
  DATA: ls_recipient          TYPE swotobjid.
  DATA: ls_sender             TYPE swotobjid.
  DATA: lf_formname           TYPE tdsfname.
  DATA: ls_addr_key           LIKE addr_key.
  Data: ls_APPL_OBJ           type SWOTOBJID.
  Data: LS_TSFDARA            type TSFDARA.
  DATA: document_output_info TYPE  ssfcrespd,
      job_output_info TYPE ssfcrescl,
      job_output_options TYPE ssfcresop.

  PERFORM get_data.
  CHECK retcode = 0.

*Get the Smart Form name.
  IF NOT tnapr-sform IS INITIAL.
    lf_formname = tnapr-sform.
  ELSE.
    lf_formname = tnapr-fonam.
  ENDIF.

*Get the Header text
*  To get Special Notes.
  Select TDOBJECT
         TDNAME
         TDID
         TDSPRAS
         into table it_STXH
         from STXH
         where TDNAME = Gs_vbeln.
* To get the ITem Details
  Select VBELN
         POSNR
         into table it_vbap
         from vbap
         Where VBELN = GS_vbeln.

  if not it_lips[] is initial.
    loop at it_lips.
      concatenate it_lips-vbeln it_lips-posnr into v_posnr.
      it_posnr-item = v_posnr.
      append it_posnr.
    endloop.
  endif.

*To Get the Item Text.
  Select TDOBJECT
         TDNAME
         TDID
         TDSPRAS
         into table it_ISTXH
         from STXH for all entries in it_posnr
         where TDNAME = it_posnr-item.

  select single werks
           into v_werks
           from lips
          where vbeln = GS_VBELN.
  concatenate '00' v_werks '0001' into v_kunnr.

  select single telf1 telfx
           into (v_telf1, v_telfx)
           from kna1
          where kunnr eq v_kunnr.

* CONVERTING GROSS AND NET WEIGHT INTO LBs
  IT_ZLIKP-BTGEWLB = IT_ZLIKP-BTGEW * V_CONLB.
  IT_ZLIKP-GEWEILB = 'LB'.
  IT_ZLIKP-NTGEWLB = IT_ZLIKP-NTGEW * V_CONLB.

  loop at it_ltap.
* it_ltap-brgewlb = it_ltap-brgew *  V_CONLB.
    it_ltap-geweilb = 'LB'.
    it_ltap-vistmlb = it_ltap-vistm *  V_CONLB.
    modify it_ltap index sy-tabix.
  endloop.


* determine smartform function module for invoice
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME           = 'ZSD_PACKING_LIST_EN'
    IMPORTING
      FM_NAME            = LF_FM_NAME
    EXCEPTIONS
      NO_FORM            = 1
      NO_FUNCTION_MODULE = 2
      OTHERS             = 3.
  IF SY-SUBRC <> 0.
*   error handling
    RETCODE = SY-SUBRC.
*    PERFORM protocol_update.
  ENDIF.

*--Start of change by rashmi on 30th Aug 2005.
*  CALL FUNCTION lf_fm_name
*    EXPORTING
*      ARCHIVE_INDEX        = TOA_DARA
*      ARCHIVE_INDEX_TAB    = LS_TSFDARA
*      ARCHIVE_PARAMETERS   = ARC_PARAMS
*      CONTROL_PARAMETERS   = ls_control_param
*      MAIL_APPL_OBJ        = ls_APPL_OBJ
*      MAIL_RECIPIENT       = ls_recipient
*      MAIL_SENDER          = ls_sender
*      OUTPUT_OPTIONS       = ls_composer_param
*      USER_SETTINGS        = ' '
*      znast                = nast
*      IT_LIKP              = IT_ZLIKP
*      V_TKNUM              = V_TKNUM
*      V_tpbez              = V_tpbez
*      V_Signi              = V_signi
*      V_NAME1              = V_NAME1
*      V_BSTNK              = V_BSTNK
*      V_VBELN              = V_VBELN
*      v_telf1              = v_telf1
*      v_telfx              = v_telfx
*      V_EBELN              = V_EBELN
*      V_CONLB              = V_CONLB
*      V_BTGEW              = V_BTGEW
*   IMPORTING
*      DOCUMENT_OUTPUT_INFO = document_output_info
*      JOB_OUTPUT_INFO      = job_output_info
*      JOB_OUTPUT_OPTIONS   = job_output_options
*    TABLES
*       IT_LIPS             = IT_ITEM
*      IT_LTAP              = IT_LTAP
*      it_STXH              = it_STXH
**      it_ISTXH              = it_ISTXH
*    EXCEPTIONS
*      FORMATTING_ERROR     = 1
*      INTERNAL_ERROR       = 2
*      SEND_ERROR           = 3
*      USER_CANCELED        = 4
*      OTHERS               = 5.
call function LF_FM_NAME                             "/1BCDWB/SF00000105
  exporting
   ARCHIVE_INDEX              = TOA_DARA
   ARCHIVE_INDEX_TAB          = LS_TSFDARA
   ARCHIVE_PARAMETERS         = ARC_PARAMS
   CONTROL_PARAMETERS         = ls_control_param
   MAIL_APPL_OBJ              = ls_APPL_OBJ
   MAIL_RECIPIENT             = ls_recipient
   MAIL_SENDER                = ls_sender
   OUTPUT_OPTIONS             = ls_composer_param
   USER_SETTINGS              = ' '
    znast                      = nast
    it_likp                    = IT_ZLIKP
    v_tknum                    = V_TKNUM
    v_tpbez                    = V_tpbez
    v_name1                    = V_NAME1
    v_signi                    = V_SIGNI
    v_bstnk                    = V_BSTNK
    v_vbeln                    = V_VBELN
    v_telf1                    = v_telf1
    v_telfx                    = v_telfx
    v_ebeln                    = V_EBELN
    v_conlb                    = V_CONLB
    v_btgew                    = V_BTGEW
 IMPORTING
   DOCUMENT_OUTPUT_INFO       = document_output_info
   JOB_OUTPUT_INFO            = job_output_info
   JOB_OUTPUT_OPTIONS         = job_output_options
  tables
    it_lips                    = IT_ITEM
    it_ltap                    = IT_LTAP
    it_stxh                    = it_STXH
    it_line                    = it_line
*--Start of changes by Rashmi on 30th Aug 05    .
    it_cert_line               = it_cert_line
    it_cust_line               = it_cust_line
*--End of changes by Rashmi on 30th Aug 05.
 EXCEPTIONS
   FORMATTING_ERROR           = 1
   INTERNAL_ERROR             = 2
   SEND_ERROR                 = 3
   USER_CANCELED              = 4
   OTHERS                     = 5
          .
*if sy-subrc <> 0.
** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
**         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*endif.
*--End of change by rashmi on 30th Aug 2005.
  IF sy-subrc <> 0.
    retcode = sy-subrc.
    PERFORM protocol_update.

* get SmartForm protocoll and store it in the NAST protocoll
*    PERFORM add_smfrm_prot.
  ENDIF.


ENDFORM.                    "processing




*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM GET_DATA .

  IF NAST-OBJKY+10 NE SPACE.
    NAST-OBJKY = NAST-OBJKY+16(10).
  ELSE.
    NAST-OBJKY = NAST-OBJKY.
  ENDIF.
*Select Nast Entries
  GS_VBELN = NAST-OBJKY.

*To Get the Header Details
  SELECT VBELN
         LFDAT
         KUNNR
         BTGEW
         GEWEI
         NTGEW
         VOLUM
         VOLEH
         TRAID
         INCO1
         INCO2
    INTO CORRESPONDING FIELDS OF TABLE IT_LIKP
    FROM LIKP
    WHERE VBELN = GS_VBELN.
  select single btgew from likp into v_btgew where vbeln = gs_vbeln.
  IF SY-SUBRC = 0.
    LOOP AT IT_LIKP.
      MOVE-CORRESPONDING IT_LIKP TO IT_ZLIKP.
*--Start of Changes by Rashmi 30th aug 2005.
      v_vbelnl = it_likp-vbeln.
      condense v_vbeln.

      call function 'READ_TEXT'
        exporting
*         CLIENT                        = SY-MANDT
          id                            = 'Z002'
          language                      = 'E'
          name                          = v_vbelnl
          object                        = 'VBBK'
*         ARCHIVE_HANDLE                = 0
*         LOCAL_CAT                     = ' '
*       IMPORTING
*         HEADER                        =
        tables
          lines                         = IT_LINE[]
       EXCEPTIONS
         ID                            = 1
         LANGUAGE                      = 2
         NAME                          = 3
         NOT_FOUND                     = 4
         OBJECT                        = 5
         REFERENCE_CHECK               = 6
         WRONG_ACCESS_TO_ARCHIVE       = 7
         OTHERS                        = 8
                .

      call function 'READ_TEXT'
        exporting
*         CLIENT                        = SY-MANDT
          id                            = 'Z007'
          language                      = 'E'
          name                          = V_VBELNL
          object                        = 'VBBK'
*         ARCHIVE_HANDLE                = 0
*         LOCAL_CAT                     = ' '
*       IMPORTING
*         HEADER                        =
        tables
          lines                         = IT_CERT_LINE[]
       EXCEPTIONS
         ID                            = 1
         LANGUAGE                      = 2
         NAME                          = 3
         NOT_FOUND                     = 4
         OBJECT                        = 5
         REFERENCE_CHECK               = 6
         WRONG_ACCESS_TO_ARCHIVE       = 7
         OTHERS                        = 8
                .

      call function 'READ_TEXT'
        exporting
*         CLIENT                        = SY-MANDT
          id                            = 'Z014'
          language                      = 'E'
          name                          = V_VBELNL
          object                        = 'VBBK'
*         ARCHIVE_HANDLE                = 0
*         LOCAL_CAT                     = ' '
*       IMPORTING
*         HEADER                        =
        tables
          lines                         = IT_CUST_LINE[]
       EXCEPTIONS
         ID                            = 1
         LANGUAGE                      = 2
         NAME                          = 3
         NOT_FOUND                     = 4
         OBJECT                        = 5
         REFERENCE_CHECK               = 6
         WRONG_ACCESS_TO_ARCHIVE       = 7
         OTHERS                        = 8
                .

*--End of changes by Rashmi 30th Aug 2005.
    ENDLOOP.
  ENDIF.



*Customer PO no
  SELECT VBELV
         FROM VBFA
         INTO V_VBELV UP TO 1 ROWS
         WHERE VBELN = GS_VBELN
         AND   VBTYP_N = C_J.
  ENDSELECT.

  IF SY-SUBRC = 0.
    SELECT VBELN
           BSTNK
           INTO (V_VBELN, V_BSTNK ) UP TO 1 ROWS
           FROM VBAK
           WHERE VBELN = V_VBELV.
    ENDSELECT.
  ENDIF.


*To Get item Details
  SELECT  vgpos
          VBELN
          POSNR
          LFIMG
          meins
          MATNR
          vgbel
          vgpos
          ARKTX
          KCMENG
          VRKME
    INTO CORRESPONDING FIELDS OF TABLE IT_LIPS
    FROM LIPS
    WHERE VBELN = GS_VBELN.


  sort it_lips by vgpos ascending posnr descending.

  IF NOT IT_LIPS[] IS INITIAL.
*Start of changes by Rashmi on 22nd Feb 06.
*Pallet
*    SELECT NLENR
*           BRGEW
*           GEWEI
*           VISTM
*           MATNR
*           POSNR
*           CHARG
*           VLENR
*       FROM LTAP
*       INTO CORRESPONDING FIELDS OF TABLE IT_LTAP
*        FOR ALL ENTRIES IN IT_LIPS
*       WHERE VBELN = GS_VBELN
*              AND MATNR = IT_LIPS-MATNR
*              AND POSNR = IT_LIPS-POSNR
*              and vorga = 'LF'.
*  ENDIF.
* Get the pallets from LTAP.
    SELECT NLENR
           BRGEW
           GEWEI
           VISTM
           MATNR
           POSNR
           CHARG
           VLENR
       FROM LTAP
       INTO CORRESPONDING FIELDS OF TABLE IT_LTAP
        FOR ALL ENTRIES IN IT_LIPS
       WHERE VBELN = GS_VBELN
              AND MATNR = IT_LIPS-MATNR
              AND POSNR = IT_LIPS-POSNR
              and vorga = 'LF'.
*Check from vepo and vekp tables if pallets not forund in LTAP.
    if it_ltap[] is initial.
*End of changes by Rashmi on 22nd Feb 06.
      select vekp~exidv
             vekp~brgew
             vekp~gewei
             vekp~ntgew
             vepo~matnr
             vepo~posnr
             vepo~charg
           into table it_ltap
           from vepo inner join vekp on vekp~venum = vepo~venum
           for all entries in it_lips
                   where vbeln = gs_vbeln
                   and matnr = it_lips-matnr
                  and posnr = it_lips-posnr.
    endif.
  endif.
  loop at it_lips.
*Start of comment by Rashmi on 22nd Feb 06.
*    select count(*)
*           into v_lfipl
*           from ltap
*          WHERE VBELN = GS_VBELN
*                  AND MATNR = IT_LIPS-MATNR
*                  AND POSNR = IT_LIPS-POSNR
*                  and vorga = 'LF'.
*Start of changes by Rashmi on 30th Jan 06.
    select count(*)
           into v_lfipl
           from VEPO
           WHERE VBELN = GS_VBELN
                    AND MATNR = IT_LIPS-MATNR
                    AND POSNR = IT_LIPS-POSNR.
*                    and vorga = 'LF'.
    if v_lfipl is initial and v_lfipl1 is initial. "Change on 22nd Feb
      select count(*)
             into v_lfipl
             from ltap
            WHERE VBELN = GS_VBELN
                  AND MATNR = IT_LIPS-MATNR
                  AND POSNR = IT_LIPS-POSNR
                  and vorga = 'LF'.
    endif.
*End of changes by Rashmi on 30th Jan 06.

    v_lfipl1 = v_lfipl1 + v_lfipl.
    clear v_lfipl.
    at end of vgpos.
      read table it_lips index sy-tabix.
      move it_lips-vrkme to it_lips-meinso.
      clear it_lips-vrkme.
      if it_lips-lfimg is initial.
        move it_lips-kcmeng to it_lips-lfimg.
      endif.
      if not v_lfipl1 is initial.
        it_lips-meins = 'PL'.
      endif.
      move v_lfipl1 to it_lips-lfipl.
      modify it_lips.
      clear it_lips.
      clear v_lfipl1.
    endat.
  endloop.

  sort it_lips by vgpos posnr.

  sort it_ltap by matnr posnr.

*Shipment no
  SELECT TKNUM FROM VTTP
          INTO V_TKNUM UP TO 1 ROWS
          WHERE VBELN = GS_VBELN.
  ENDSELECT.


  if sy-subrc = 0.
    Select single tdlnr Signi tpbez
          into (v_vltdr, v_Signi, v_tpbez)
          from vttk
          where tknum = v_tknum.

    if not v_vltdr is initial.
      select single name1 into v_name1
        from lfa1
       where lifnr eq v_vltdr.
      clear v_vltdr.
    endif.

  endif.



  SELECT MATNR BISMT
    INTO TABLE IT_MAT
    FROM MARA FOR ALL ENTRIES IN IT_LIPS
       WHERE MATNR = IT_LIPS-MATNR.


  LOOP AT IT_LIPS.

*Order quantity
    SELECT KWMENG
           vrkme
           INTO (IT_LIPS-KWMENG, it_lips-vrkme) UP TO 1 ROWS
           FROM VBAP
           WHERE VBELN = V_VBELV
           AND POSNR = IT_LIPS-POSNR.
    ENDSELECT.
    if sy-subrc <> 0.
      SELECT EBELN
             MENGE
             MEINS
           INTO (V_EBELN, IT_LIPS-KWMENG, it_lips-vrkme) UP TO 1 ROWS
             FROM EKPO
             WHERE EBELN = IT_LIPS-VGBEL
             AND EBELP = IT_LIPS-VGPOS+1(5).
      ENDSELECT.
    endif.
*   move-corresponding it_likp to it_item.
    READ TABLE IT_MAT WITH KEY MATNR = IT_LIPS-MATNR.
    MOVE IT_MAT-BISMT TO IT_ITEM-BISMT.

    MOVE : IT_LIPS-VBELN TO IT_ITEM-VBELN,
           IT_LIPS-POSNR TO IT_ITEM-POSNR,
           IT_LIPS-LFIMG TO IT_ITEM-LFIMG,
           IT_LIPS-LFIPL TO IT_ITEM-LFIPL,
           IT_LIPS-MEINS TO IT_ITEM-MEINS,
           IT_LIPS-MATNR TO IT_ITEM-MATNR,
           IT_LIPS-KWMENG TO IT_ITEM-KWMENG,
           IT_LIPS-VRKME TO IT_ITEM-VRKME,
           V_BSTNK TO IT_ITEM-BSTNK,
           IT_LIPS-ARKTX TO IT_ITEM-ARKTX  .
    if it_lips-meinso <> it_lips-vrkme.
      SELECT SINGLE *
          FROM MARM
         WHERE MATNR = IT_LIPS-MATNR
           AND MEINH = IT_LIPS-VRKME.
      IF SY-SUBRC EQ 0.
        IT_ITEM-LFIOR = ( IT_ITEM-LFIMG * ( MARM-UMREN / MARM-UMREZ ) ).
      ENDIF.
    else.
      move it_item-lfimg to it_item-lfior.
    endif.
    CLEAR MARM.
    IF IT_ITEM-LFIPL IS INITIAL.
      MOVE IT_ITEM-LFIMG TO IT_ITEM-LFIPL.
    ENDIF.
    APPEND IT_ITEM.
    CLEAR IT_ITEM.

  ENDLOOP.




ENDFORM.                    " get_data

*---------------------------------------------------------------------*
*       FORM PROTOCOL_UPDATE                                          *
*---------------------------------------------------------------------*
*       The messages are collected for the processing protocol.       *
*---------------------------------------------------------------------*

FORM protocol_update.

  CHECK xscreen = space.
  CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
    EXPORTING
      msg_arbgb = syst-msgid
      msg_nr    = syst-msgno
      msg_ty    = syst-msgty
      msg_v1    = syst-msgv1
      msg_v2    = syst-msgv2
      msg_v3    = syst-msgv3
      msg_v4    = syst-msgv4
    EXCEPTIONS
      OTHERS    = 1.
ENDFORM.                    "protocol_update