ZASBIS_PARAMETRELER

function zasbis_parametreler.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(LT_SIP_VIN) TYPE  ZSD_SIP_TT_VIN OPTIONAL
*"  EXPORTING
*"     VALUE(E_SIP_VIN_DATA) TYPE  ZSD_SIP_TT_VIN_DATA
*"     VALUE(E_SIP_ARACTIPI) TYPE  ZSD_SIP_TT_ARACTIPI
*"     VALUE(E_SIP_KARAK) TYPE  ZSD_SIP_TT_KARAK
*"     VALUE(E_ASBIS_CONF) TYPE  ZSD_ASBIS_TT_CONF
*"     VALUE(E_ASBIS_VARYANT) TYPE  ZSD_ASBIS_TT_VARYANT
*"     VALUE(E_ASBIS_AKS) TYPE  ZSD_ASBIS_TT_AKS
*"     VALUE(E_ASBIS_VRSYN) TYPE  ZSD_ASBIS_TT_VRYSN
*"     VALUE(E_ASBIS_KATIM) TYPE  ZSD_ASBIS_TT_KATIM
*"     VALUE(E_ASBIS_TICAD) TYPE  ZSD_ASBIS_TT_TICAD
*"     VALUE(E_ASBIS_ETIKET) TYPE  ZSD_ASBIS_TT_ETIKET
*"     VALUE(E_ASBIS_ATNY) TYPE  ZSD_ASBIS_TT_ATNY
*"     VALUE(E_ASBIS_TAY) TYPE  ZSD_ASBIS_TT_TAY
*"     VALUE(E_ASBIS_AOR) TYPE  ZSD_ASBIS_TT_AOR
*"     VALUE(E_ASBIS_LASTIK) TYPE  ZSD_ASBIS_TT_LASTIK
*"     VALUE(E_ASBIS_LASKOD) TYPE  ZSD_ASBIS_TT_LASKOD
*"     VALUE(E_ASBIS_IMALATCI) TYPE  ZSD_ASBIS_TT_IMALATCI
*"     VALUE(E_ASBIS_JANT) TYPE  ZSD_ASBIS_TT_JANT
*"     VALUE(E_ASBIS_KINGPIN) TYPE  ZSD_ASBIS_TT_KINGPIN
*"     VALUE(E_ASBIS_AGRA) TYPE  ZSD_ASBIS_TT_AGRA
*"     VALUE(E_ASBIS_AGRD) TYPE  ZSD_ASBIS_TT_AGRD
*"     VALUE(E_ASBIS_AGO) TYPE  ZSD_ASBIS_TT_AGO
*"     VALUE(E_ASBIS_MINMAX) TYPE  ZSD_ASBIS_TT_MINMAX
*"     VALUE(E_ASBIS_SABLON) TYPE  ZSD_ASBIS_TT_SABLON
*"     VALUE(E_RETURN) TYPE  ZSD_ASBIS_TT_RETURN
*"----------------------------------------------------------------------
* asbis dataları okumada, öncelik order için girilmiş bir veri varmı
* (boş olabilir),
* daha sonra oer den girilmiş bir değer varmı (bol olabilir),
* en son olarak ta standart veriler okunacaktır
**********************************************************************
  clear : gs_lt_sip_vin.
  clear : e_sip_vin_data[], e_sip_vin_data, gs_e_sip_vin_data.
  clear : e_sip_aractipi[], e_sip_aractipi, gs_e_sip_aractipi.
  clear : e_sip_karak[], e_sip_karak.
  clear : e_asbis_conf[], e_asbis_conf, gs_e_asbis_conf.
  clear : e_asbis_varyant[], e_asbis_varyant, gs_e_asbis_varyant.
  clear : e_asbis_aks[], e_asbis_aks, gs_e_asbis_aks.
  clear : e_asbis_vrsyn[], e_asbis_vrsyn, gs_e_asbis_vrsyn.
  clear : e_asbis_katim[], e_asbis_katim, gs_e_asbis_katim.
  clear : e_asbis_ticad[], e_asbis_ticad, gs_e_asbis_ticad.
  clear : e_asbis_etiket[], e_asbis_etiket, gs_e_asbis_etiket.
  clear : e_asbis_atny[], e_asbis_atny, gs_e_asbis_atny.
  clear : e_asbis_tay[], e_asbis_tay, gs_e_asbis_tay.
  clear : e_asbis_aor[], e_asbis_aor, gs_e_asbis_aor.
  clear : e_asbis_lastik[], e_asbis_lastik, gs_e_asbis_lastik.
  clear : e_asbis_laskod[], e_asbis_laskod, gs_e_asbis_laskod.
  clear : e_asbis_imalatci[], e_asbis_imalatci, gs_e_asbis_imalatci.
  clear : e_asbis_jant[], e_asbis_jant, gs_e_asbis_jant.
  clear : e_asbis_kingpin[], e_asbis_kingpin, gs_e_asbis_kingpin.
  clear : e_asbis_agra[], e_asbis_agra, gs_e_asbis_agra.
  clear : e_asbis_agrd[], e_asbis_agrd, gs_e_asbis_agrd.
  clear : e_asbis_ago[], e_asbis_ago, gs_e_asbis_ago.
  clear : e_asbis_minmax[], e_asbis_minmax, gs_e_asbis_minmax.
  clear : e_asbis_sablon[], e_asbis_sablon, gs_e_asbis_sablon.
**********************************************************************
  clear : gt_e_sip_bom[], gt_e_sip_bom, gs_e_sip_bom.
  clear : gt_e_sip_karak[], gt_e_sip_karak, gs_e_sip_karak.
  clear : gt_bom[], gt_bom, gs_bom.
  clear : e_return[], e_return, ls_return.
  clear : gv_sernr.
  clear : gt_zsd_aractipi[], gt_zsd_aractipi, gs_zsd_aractipi.
  clear : gt_zasbisvariant[], gt_zasbisvariant, gs_zasbisvariant.
  clear : gt_zasbisaksdeger[], gt_zasbisaksdeger, gs_zasbisaksdeger.
  clear : gt_zasbisakstip[], gt_zasbisakstip, gs_zasbisakstip.
  clear : gt_zasbisversiyon[], gt_zasbisversiyon, gs_zasbisversiyon.
  clear : gt_zasbisarctntm[], gt_zasbisarctntm, gs_zasbisarctntm.
  clear : gt_zasbistipony[], gt_zasbistipony, gs_zasbistipony,
          gss_zasbistipony.
  clear : gt_zasbisticad[], gt_zasbisticad, gs_zasbisticad.
  clear : gt_zasbiszoretk[], gt_zasbiszoretk, gs_zasbiszoretk.
  clear : gt_zasbisdingil[], gt_zasbisdingil, gs_zasbisdingil.
  clear : gt_zasbisyukindex[], gt_zasbisyukindex, gs_zasbisyukindex.
  clear : gt_zasbisimltci[], gt_zasbisimltci, gs_zasbisimltci.
  clear : gt_zasbisaor[], gt_zasbisaor, gs_zasbisaor.
  clear : gt_zasbisaor_select[], gt_zasbisaor_select,
          gs_zasbisaor_select.
  clear : gt_zasbisjant[], gt_zasbisjant, gs_zasbisjant.
  clear : gt_zasbiskingpin[], gt_zasbiskingpin, gs_zasbiskingpin.
  clear : gt_zasbiskrksira[], gt_zasbiskrksira, gs_zasbiskrksira.
  clear : gt_zasbisagirlik[], gt_zasbisagirlik, gs_zasbisagirlik.
  clear : gt_zasbisagirlikk[], gt_zasbisagirlikk, gs_zasbisagirlikk.
  clear : gt_zasbisminmax[], gt_zasbisminmax, gs_zasbisminmax.
  clear : gt_zasbissablond[], gt_zasbissablond[], gs_zasbissablond.
  clear : gt_zasbistay[], gt_zasbistay, gs_zasbistay.
**********************************************************************
**********************************************************************
  clear : gt_zkont_werks[], gt_zkont_werks, gs_zkont_werks.
  select * from zkont_werks
     into table gt_zkont_werks
          where zcprog eq 'ZASBIS_PARAMETRELER'
            and zprgtip eq '1'.
**********************************************************************
  clear : gt_t002[], gt_t002, gs_t002.
**********************************************************************
  select * from t002 into table gt_t002.
**********************************************************************
**********************************************************************
  clear : gv_tar, gv_sat.
  move sy-datum to gv_tar.
  move sy-uzeit to gv_sat.

  move 'TR' to sy-langu.

  loop at lt_sip_vin into gs_lt_sip_vin.
    gv_index = sy-tabix.
    clear : gv_dvm.
    clear : lv_spras.

    if gs_lt_sip_vin-spras eq ' '.
      move 'TR' to gs_lt_sip_vin-spras.
    else.
      lv_spras = gs_lt_sip_vin-spras.
      translate lv_spras to upper case.
      gs_lt_sip_vin-spras = lv_spras.
    endif.

    read table gt_t002 into gs_t002
                   with key laiso = gs_lt_sip_vin-spras.
    if sy-subrc eq 0.
      move gs_t002-spras to gs_lt_sip_vin-spras_l.
    endif.
**********************************************************************
    if gs_lt_sip_vin-vbeln is not initial.

      call function 'CONVERSION_EXIT_ALPHA_INPUT'
        exporting
          input  = gs_lt_sip_vin-vbeln
        importing
          output = gs_lt_sip_vin-vbeln.

      call function 'CONVERSION_EXIT_ALPHA_INPUT'
        exporting
          input  = gs_lt_sip_vin-posnr
        importing
          output = gs_lt_sip_vin-posnr.

      if gs_lt_sip_vin-posnr is initial.
        move '000010' to gs_lt_sip_vin-posnr.
      endif.

      if gs_lt_sip_vin-sernr is initial.
        select single sernr from rog_s02obj
                            into gs_lt_sip_vin-sernr
                           where sdaufnr eq gs_lt_sip_vin-vbeln
                             and posnr eq gs_lt_sip_vin-posnr.
        move gs_lt_sip_vin-sernr to gv_sernr.
      else.
        select single sernr from rog_s02obj
                            into gv_sernr
                           where sdaufnr eq gs_lt_sip_vin-vbeln
                             and posnr eq gs_lt_sip_vin-posnr.
        if gv_sernr ne gs_lt_sip_vin-sernr.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '440'.
          ls_return-message_v1 = gs_lt_sip_vin-vbeln.
          ls_return-message_v2 = gs_lt_sip_vin-sernr.
          ls_return-message_v3 = gv_sernr.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      endif.
    else.
      if gs_lt_sip_vin-sernr is initial.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '441'.
        ls_return-message_v1 = ' '.
        ls_return-message_v2 = ' '.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      else.
        select single sdaufnr posnr
                 from rog_s02obj
                 into (gs_lt_sip_vin-vbeln, gs_lt_sip_vin-posnr)
                where sernr eq gs_lt_sip_vin-sernr.
        if sy-subrc ne 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '442'.
          ls_return-message_v1 = gs_lt_sip_vin-sernr.
          ls_return-message_v2 = ' '.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      endif.
    endif.

    check gv_dvm eq ' '.

    select single c~vbeln c~posnr c~matnr c~werks d~audat g~edatu
                  g~wmeng c~werks c~objnr c~cuobj c~zvbeln_r
                  c~zposnr_r zvbeln_t zposnr_t
      from vbap as c inner join vbak as d
        on c~vbeln = d~vbeln
     inner join vbep as g
        on g~vbeln = c~vbeln
       and g~posnr = c~posnr
      into corresponding fields of gs_sip
     where c~vbeln eq gs_lt_sip_vin-vbeln
       and c~posnr eq gs_lt_sip_vin-posnr.

    if sy-subrc ne 0.
      clear ls_return.
      ls_return-id = 'ZSD'.
      ls_return-type = 'E'.
      ls_return-number = '392'.
      ls_return-message_v1 = gs_lt_sip_vin-vbeln.
      ls_return-message_v2 = gs_lt_sip_vin-posnr.
      ls_return-message_v3 = ' '.
      ls_return-message_v4 = ' '.

      call function 'MESSAGE_TEXT_BUILD'
        exporting
          msgid               = ls_return-id
          msgnr               = ls_return-number
          msgv1               = ls_return-message_v1
          msgv2               = ls_return-message_v2
          msgv3               = ls_return-message_v3
          msgv4               = ls_return-message_v4
        importing
          message_text_output = ls_return-message.

      append ls_return to e_return.
      move 'X' to gv_dvm.
    endif.

    check gv_dvm eq ' '.
**********************************************************************
**********************************************************************
* araç ve şasi no
    move gs_lt_sip_vin-spras_l to gs_e_sip_vin_data-spras.
    move gs_lt_sip_vin-vbeln to gs_e_sip_vin_data-vbeln.
    move gs_lt_sip_vin-posnr to gs_e_sip_vin_data-posnr.
    move gs_lt_sip_vin-sernr to gs_e_sip_vin_data-sernr.
    move gs_sip-matnr to gs_e_sip_vin_data-matnr.
    select single maktx into gs_e_sip_vin_data-maktx
                        from makt
                       where matnr eq gs_sip-matnr
                         and spras eq gs_lt_sip_vin-spras_l.

* oer
    clear : gv_zvbeln_r, gv_zposnr_r, gv_zvbeln_t, gv_zposnr_t.
    clear : gv_say_oer, gv_zoer, gv_zoervar.
    clear : gs_zsd_conf.

    move gs_sip-zvbeln_r to gv_zvbeln_r.
    move gs_sip-zposnr_r to gv_zposnr_r.
    move gs_sip-zvbeln_t to gv_zvbeln_t.
    move gs_sip-zposnr_t to gv_zposnr_t.

    select * from zsd_conf
             into gs_zsd_conf
            where vbeln eq gv_zvbeln_r
              and posnr eq gv_zposnr_r
              and zredred eq ' '.
      move gs_e_sip_vin_data-vbeln to gs_e_asbis_conf-vbeln.
      move gs_e_sip_vin_data-posnr to gs_e_asbis_conf-posnr.
      move gs_zsd_conf-charact to gs_e_asbis_conf-charact.
      move gs_zsd_conf-ch_descr to gs_e_asbis_conf-ch_descr.
      move gs_zsd_conf-text255 to gs_e_asbis_conf-text255.

      move 'X' to gv_zoer.
      move 'OER var' to gv_zoervar.

      move gv_zvbeln_r to gs_e_sip_vin_data-zvbeln.
      move gv_zposnr_r to gs_e_sip_vin_data-zposnr.
      move gv_zoer to gs_e_sip_vin_data-zoer.

      append gs_e_asbis_conf to e_asbis_conf.
      clear gs_e_asbis_conf.
    endselect.

    clear : gv_say_oer.
    describe table e_asbis_conf lines gv_say_oer.
    if gv_say_oer eq 0.
      select * from zsd_conf
               into gs_zsd_conf
              where vbeln eq gv_zvbeln_t
                and posnr eq gv_zposnr_t
                and zredred eq ' '.
        move gs_e_sip_vin_data-vbeln to gs_e_asbis_conf-vbeln.
        move gs_e_sip_vin_data-posnr to gs_e_asbis_conf-posnr.
        move gs_zsd_conf-charact to gs_e_asbis_conf-charact.
        move gs_zsd_conf-ch_descr to gs_e_asbis_conf-ch_descr.
        move gs_zsd_conf-text255 to gs_e_asbis_conf-text255.

        move 'X' to gv_zoer.
        move 'OER var' to gv_zoervar.

        move gv_zvbeln_t to gs_e_sip_vin_data-zvbeln.
        move gv_zposnr_t to gs_e_sip_vin_data-zposnr.
        move gv_zoer to gs_e_sip_vin_data-zoer.

        append gs_e_asbis_conf to e_asbis_conf.
        clear gs_e_asbis_conf.
      endselect.
    endif.

* oer tercümesi varsa alınır
    loop at e_asbis_conf into gs_e_asbis_conf.
      gv_index_oer = sy-tabix.
      clear gs_zsd_conft.
      select single * from zsd_conft
                      into gs_zsd_conft
                     where vbeln = gs_e_asbis_conf-vbeln
                       and posnr = gs_e_asbis_conf-posnr
                       and charact = gs_e_asbis_conf-charact
                       and zdelno = space
                       and spras = gs_e_sip_vin_data-spras.
      if sy-subrc eq 0.
        move gs_zsd_conft-ch_descr to gs_e_asbis_conf-ch_descr.
        move gs_zsd_conft-text255 to gs_e_asbis_conf-text255.
        modify e_asbis_conf from gs_e_asbis_conf
                           index gv_index_oer.
      endif.
    endloop.

    append gs_e_sip_vin_data to e_sip_vin_data.
    clear : gs_e_sip_vin_data.
**********************************************************************
**********************************************************************
* karakteristik patlatılır
    clear : gt_e_sip_karak[], gt_e_sip_karak, gs_e_sip_karak.

    clear : lv_klart, lv_table.
    clear : lt_char[], lt_char, ls_char.
    clear : lt_char_v[], lt_char_v, ls_char_v.

    call function 'ZGET_KLART'
      importing
        e_klart = lv_klart
        e_table = lv_table.

    lv_object = gs_sip-matnr.
    clear : lv_class.

    call function 'CTMS_OBJECT_HAS_STANDARDCLASS'
      exporting
        object            = lv_object
        table             = lv_table
        classtype         = lv_klart
        with_text         = 'X'
        date_of_change    = sy-datum
      importing
        class             = lv_class
      exceptions
        no_classification = 1
        table_not_allowed = 2
        internal_error    = 3
        others            = 4.

    call function 'BAPI_CLASS_GET_CHARACTERISTICS'
      exporting
        classnum        = lv_class
        classtype       = lv_klart
*        langu_int       = 'T'
        langu_int       = sy-langu
        key_date        = sy-datum
        with_values     = 'X'
      tables
        characteristics = lt_char
        char_values     = lt_char_v.

    clear: sales_documents[], sales_documents, ls_order_header_inx,
           lt_order_item_in[], lt_order_item_in, lt_order_item_inx[],
           lt_order_item_inx,
           order_cfgs_cuvals_out[], order_cfgs_cuvals_out,
           lt_order_cfgs_ref[], lt_order_cfgs_ref,
           lt_order_cfgs_inst[], lt_order_cfgs_inst.

    clear : ls_bapi_view, lt_header[], lt_header, lt_item[], lt_item,
            lt_curefs[], lt_curefs, lt_cucfgs[], lt_cucfgs, lt_cuins[],
            lt_cuins, lt_cuvals[], lt_cuvals.

    sales_documents-vbeln = gs_sip-vbeln.
    append sales_documents.

    clear : ls_bapi_view.
    ls_bapi_view-header = 'X'.
    ls_bapi_view-item = 'X'.
    ls_bapi_view-configure = 'X'.

    call function 'BAPISDORDER_GETDETAILEDLIST'
      exporting
        i_bapi_view           = ls_bapi_view
      tables
        sales_documents       = sales_documents
        order_headers_out     = lt_header
        order_items_out       = lt_item
        order_cfgs_curefs_out = lt_curefs
        order_cfgs_cucfgs_out = lt_cucfgs
        order_cfgs_cuins_out  = lt_cuins
        order_cfgs_cuvals_out = lt_cuvals.

    loop at lt_cuvals into ls_cuvals.
      clear : ls_char.
      read table lt_char into ls_char
                     with key name_char = ls_cuvals-charc.
      clear : gv_ch_val.
      if ls_char-data_type <> 'CHAR'.

        lt_value = ls_cuvals-value.
        call function 'QSS0_FLTP_TO_CHAR_CONVERSION'
          exporting
            i_number_of_digits       = 0
            i_fltp_value             = lt_value
            i_value_not_initial_flag = 'X'
            i_screen_fieldlength     = 16
          importing
            e_char_field             = e_char_field.
        move e_char_field to gv_ch_val.

      else.
        move ls_cuvals-value to gv_ch_val.
      endif.

      move gs_lt_sip_vin-vbeln to gs_e_sip_karak-vbeln.
      move gs_lt_sip_vin-posnr to gs_e_sip_karak-posnr.
      move ls_cuvals-charc to gs_e_sip_karak-charact.
      move ls_char-descr_char to gs_e_sip_karak-ch_descr.
      shift gv_ch_val left deleting leading space.
      move gv_ch_val to gs_e_sip_karak-ch_val.

      clear gs_e_sip_karak-ch_vdescr.

      read table lt_char_v into ls_char_v
                       with key name_char = ls_cuvals-charc
                                char_value = gv_ch_val.
      if sy-subrc eq 0.
        move ls_char_v-descr_cval to gs_e_sip_karak-ch_vdescr.
      endif.

      append gs_e_sip_karak to gt_e_sip_karak.
      clear : gs_e_sip_karak.
    endloop.
*    clear : r_conf[], r_conf, gs_r_conf.
*
*    call function 'VC_I_GET_CONFIGURATION'
*      exporting
*        instance            = gs_sip-cuobj
*        language            = sy-langu
*      tables
*        configuration       = r_conf
*      exceptions
*        instance_not_found  = 1
*        internal_error      = 2
*        no_class_allocation = 3
*        instance_not_valid  = 4
*        others              = 5.
*
*    loop at r_conf into gs_r_conf.
*      clear : ls_char.
*      read table lt_char into ls_char
*                     with key name_char = gs_r_conf-atnam.
*      clear : gv_ch_val.
*      if ls_char-data_type <> 'CHAR'.
*        clear : str1, str2, str3, str4.
*
*        split gs_r_conf-atwrt at ' ' into str1 str2.
*        split str1 at '.' into str3 str4.
*        if str4 = ' '.
*          gv_ch_val = str1.
*        else.
*          replace all occurrences of '.' in str1 with ''.
*          condense str1.
*          gv_ch_val = str1.
*        endif.
*        replace all occurrences of ',' in gv_ch_val with '.'.
*      else.
*        move gs_r_conf-atwrt to gv_ch_val.
*      endif.
*
*      move gs_lt_sip_vin-vbeln to gs_e_sip_karak-vbeln.
*      move gs_lt_sip_vin-posnr to gs_e_sip_karak-posnr.
*      move gs_r_conf-atnam to gs_e_sip_karak-charact.
*      move gs_r_conf-atbez to gs_e_sip_karak-ch_descr.
*      move gv_ch_val to gs_e_sip_karak-ch_val.
*      move gs_r_conf-atwtb to gs_e_sip_karak-ch_vdescr.
*
*      append gs_e_sip_karak to gt_e_sip_karak.
*      clear : gs_e_sip_karak.
*    endloop.

    sort gt_e_sip_karak by vbeln posnr charact ascending.
    delete gt_e_sip_karak where charact eq 'ZTVARKOND'.

    clear nbr_say.
    describe table gt_e_sip_karak lines nbr_say.
    if nbr_say eq 0.
      clear ls_return.
      ls_return-id = 'ZSD'.
      ls_return-type = 'E'.
      ls_return-number = '444'.
      ls_return-message_v1 = gs_lt_sip_vin-vbeln.
      ls_return-message_v2 = gs_lt_sip_vin-posnr.
      ls_return-message_v3 = gs_sip-matnr.
      ls_return-message_v4 = ' '.

      call function 'MESSAGE_TEXT_BUILD'
        exporting
          msgid               = ls_return-id
          msgnr               = ls_return-number
          msgv1               = ls_return-message_v1
          msgv2               = ls_return-message_v2
          msgv3               = ls_return-message_v3
          msgv4               = ls_return-message_v4
        importing
          message_text_output = ls_return-message.

      append ls_return to e_return.
      move 'X' to gv_dvm.
    endif.

    loop at gt_e_sip_karak into gs_e_sip_karak.
      append gs_e_sip_karak to e_sip_karak.
    endloop.

    check gv_dvm eq ' '.
**********************************************************************
**********************************************************************
    "n.enesh 20092017 araç ağırlıkları
    clear : gv_brgew.
    read table gt_e_sip_karak into gs_e_sip_karak
                              with key  vbeln = gs_sip-vbeln
                                        posnr = gs_sip-posnr
                                        charact = 'ZTBOSA'.
    if sy-subrc eq 0.
      gs_e_asbis_ago-vbeln = gs_sip-vbeln.
      gs_e_asbis_ago-posnr = gs_sip-posnr.
      gs_e_asbis_ago-matnr = gs_sip-matnr.

      select single zzsd_paket from vbap
        into  gs_e_asbis_ago-paket
        where vbeln = gs_sip-vbeln
          and posnr = gs_sip-posnr.

      select single * from zasbisagirliko
        into corresponding fields of gs_agirliko
        where matnr = gs_sip-matnr
          and paket = '*ALL'.

      if  gs_agirliko is initial.

        select single * from zasbisagirliko
          into corresponding fields of gs_agirliko
          where matnr = gs_sip-matnr
            and paket = gs_e_asbis_ago-paket.

      endif.

      gs_e_asbis_ago-brgew = gs_e_sip_karak-ch_val.

      clear gs_e_sip_karak_s.
      read table gt_e_sip_karak into gs_e_sip_karak_s
                            with key vbeln = gs_sip-vbeln
                                     posnr = gs_sip-posnr
                                     charact = 'ZTSA'.
      if sy-subrc eq 0.
        clear : gv_ch_val.
        clear : str1, str2, str3, str4.

        split gs_e_sip_karak_s-ch_vdescr at ' ' into str1 str2.
        split str1 at '.' into str3 str4.
        if str4 = ' '.
          gv_ch_val = str1.
        else.
          replace all occurrences of '.' in str1 with ''.
          condense str1.
          gv_ch_val = str1.
        endif.

        gv_brgew = gv_ch_val.
        add gv_brgew to gs_e_asbis_ago-brgew.
      endif.

      clear : gv_hsp,gv_num.
      gv_num = gs_e_asbis_ago-brgew.
      gs_e_asbis_ago-brgew = gs_e_asbis_ago-brgew - gv_num+4(1).
      clear : gv_hsp,gv_num.

      gs_e_asbis_ago-gewei = 'KG'.

      "n.enesh 10102017
      clear : gs_e_sip_karak,gv_num.
      read table gt_e_sip_karak into gs_e_sip_karak
                            with key  vbeln = gs_sip-vbeln
                                      posnr = gs_sip-posnr
                                      charact = 'ZTDS'.
      if sy-subrc eq 0.
        gv_num1 = gs_e_sip_karak-ch_val.
        while gv_num1 > 0.
          case gv_num1.
            when 0010.
              if gs_agirliko-dngl10 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '10'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl10 = gv_hsp * gs_agirliko-dngl10 .
                gv_num = gs_e_asbis_ago-dngl10.
                gs_e_asbis_ago-dngl10 = gv_num.
            gs_e_asbis_ago-dngl10 = gs_e_asbis_ago-dngl10 - gv_num+4(1).
              endif.
            when 0009.
              if gs_agirliko-dngl9 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '9'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl9 = gv_hsp * gs_agirliko-dngl9 .
                gv_num = gs_e_asbis_ago-dngl9.
                gs_e_asbis_ago-dngl9 = gv_num.
              gs_e_asbis_ago-dngl9 = gs_e_asbis_ago-dngl9 - gv_num+4(1).
              endif.
            when 0008.
              if gs_agirliko-dngl8 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '8'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl8 = gv_hsp * gs_agirliko-dngl8 .
                gv_num = gs_e_asbis_ago-dngl8.
                gs_e_asbis_ago-dngl8 = gv_num.
              gs_e_asbis_ago-dngl8 = gs_e_asbis_ago-dngl8 - gv_num+4(1).
              endif.
            when 0007.
              if gs_agirliko-dngl7 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '7'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl7 = gv_hsp * gs_agirliko-dngl7 .
                gv_num = gs_e_asbis_ago-dngl7.
                gs_e_asbis_ago-dngl7 = gv_num.
              gs_e_asbis_ago-dngl7 = gs_e_asbis_ago-dngl7 - gv_num+4(1).
              endif.
            when 0006.
              if gs_agirliko-dngl6 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '6'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl6 = gv_hsp * gs_agirliko-dngl6 .
                gv_num = gs_e_asbis_ago-dngl6.
                gs_e_asbis_ago-dngl6 = gv_num.
              gs_e_asbis_ago-dngl6 = gs_e_asbis_ago-dngl6 - gv_num+4(1).
              endif.
            when 0005.
              if gs_agirliko-dngl5 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '5'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl5 = gv_hsp * gs_agirliko-dngl5 .
                gv_num = gs_e_asbis_ago-dngl5.
                gs_e_asbis_ago-dngl5 = gv_num.
              gs_e_asbis_ago-dngl5 = gs_e_asbis_ago-dngl5 - gv_num+4(1).
              endif.
            when 0004.
              if gs_agirliko-dngl4 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '4'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl4 = gv_hsp * gs_agirliko-dngl4 .
                gv_num = gs_e_asbis_ago-dngl4.
                gs_e_asbis_ago-dngl4 = gv_num.
              gs_e_asbis_ago-dngl4 = gs_e_asbis_ago-dngl4 - gv_num+4(1).
              endif.
            when 0003.
              if gs_agirliko-dngl3 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '3'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl3 = gv_hsp * gs_agirliko-dngl3 .
                gv_num = gs_e_asbis_ago-dngl3.
                gs_e_asbis_ago-dngl3 = gv_num.
              gs_e_asbis_ago-dngl3 = gs_e_asbis_ago-dngl3 - gv_num+4(1).
              endif.
            when 0002.
              if gs_agirliko-dngl2 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '2'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl2 = gv_hsp * gs_agirliko-dngl2 .
                gv_num = gs_e_asbis_ago-dngl2.
                gs_e_asbis_ago-dngl2 = gv_num.
              gs_e_asbis_ago-dngl2 = gs_e_asbis_ago-dngl2 - gv_num+4(1).
              endif.
            when 0001.
              if gs_agirliko-dngl1 eq 0.
                clear ls_return.
                ls_return-id = 'ZSD'.
                ls_return-type = 'E'.
                ls_return-number = '627'.
                ls_return-message_v1 = gs_sip-vbeln.
                ls_return-message_v2 = '1'.
                ls_return-message_v3 = ' '.
                ls_return-message_v4 = ' '.

                call function 'MESSAGE_TEXT_BUILD'
                  exporting
                    msgid               = ls_return-id
                    msgnr               = ls_return-number
                    msgv1               = ls_return-message_v1
                    msgv2               = ls_return-message_v2
                    msgv3               = ls_return-message_v3
                    msgv4               = ls_return-message_v4
                  importing
                    message_text_output = ls_return-message.

                append ls_return to e_return.
              else.
                clear : gv_hsp,gv_num.
                gv_hsp =  gs_e_asbis_ago-brgew  / 100 .
                gs_e_asbis_ago-dngl1 = gv_hsp * gs_agirliko-dngl1 .
                gv_num = gs_e_asbis_ago-dngl1.
                gs_e_asbis_ago-dngl1 = gv_num.
              gs_e_asbis_ago-dngl1 = gs_e_asbis_ago-dngl1 - gv_num+4(1).
              endif.
          endcase.
          gv_num1 = gv_num1 - 1.
        endwhile.

      endif.
      "en.enesh 10102017

      append gs_e_asbis_ago to e_asbis_ago.

      clear : gs_e_asbis_ago,gs_e_sip_karak,gv_hsp,gs_agirliko.
    endif.
    "en.enesh 20092017
**********************************************************************
**********************************************************************
    read table gt_zkont_werks with key werks = gs_sip-werks.
    if sy-subrc eq 0.
      move '1100' to gs_sip-werks.
    endif.
* ürün ağacı
    clear : gt_bom[], gt_bom, gs_bom.

    call function 'CS_BOM_EXPL_KND_V1'
      exporting
        auskz                 = 'X'
        capid                 = 'PP01'
        cuobj                 = gs_sip-cuobj
        datuv                 = gs_sip-edatu
        emeng                 = gs_sip-wmeng
        mktls                 = 'X'
        mehrs                 = 'X'
        mtnrv                 = gs_sip-matnr
        stlal                 = '01'
        stlan                 = '1'
        stpst                 = 0
        svwvo                 = 'X'
        werks                 = gs_sip-werks
        vbeln                 = gs_sip-vbeln
        vbpos                 = gs_sip-posnr
        vrsvo                 = 'X'
      tables
        stb                   = gt_bom
      exceptions
        alt_not_found         = 1
        call_invalid          = 2
        material_not_found    = 3
        missing_authorization = 4
        no_bom_found          = 5
        no_plant_data         = 6
        no_suitable_bom_found = 7
        conversion_error      = 8
        others                = 9.

    delete gt_bom where alpgr is not initial and alprf > 1.

    clear nbr_say.
    describe table gt_bom lines nbr_say.
    if nbr_say eq 0.
      call function 'CS_BOM_EXPL_KND_V1'
        exporting
          auskz                 = 'X'
          capid                 = 'PP01'
          cuobj                 = gs_sip-cuobj
          datuv                 = gs_sip-edatu
          emeng                 = gs_sip-wmeng
          mktls                 = 'X'
          mehrs                 = 'X'
          mtnrv                 = gs_sip-matnr
          stlal                 = '01'
          stlan                 = '5'
          stpst                 = 0
          svwvo                 = 'X'
          werks                 = gs_sip-werks
          vbeln                 = gs_sip-vbeln
          vbpos                 = gs_sip-posnr
          vrsvo                 = 'X'
        tables
          stb                   = gt_bom
        exceptions
          alt_not_found         = 1
          call_invalid          = 2
          material_not_found    = 3
          missing_authorization = 4
          no_bom_found          = 5
          no_plant_data         = 6
          no_suitable_bom_found = 7
          conversion_error      = 8
          others                = 9.

      delete gt_bom where alpgr is not initial and alprf > 1.
    endif.

    loop at gt_bom into gs_bom.
      read table gt_e_sip_bom
            into gs_e_sip_bom-matnr
        with key matnr = gs_bom-idnrk.
      if sy-subrc ne 0.
        move gs_lt_sip_vin-vbeln to gs_e_sip_bom-vbeln.
        move gs_lt_sip_vin-posnr to gs_e_sip_bom-posnr.
        move gs_bom-idnrk to gs_e_sip_bom-matnr.
        append gs_e_sip_bom to gt_e_sip_bom.
        clear gs_e_sip_bom.
      endif.
    endloop.

    sort gt_e_sip_bom by vbeln posnr matnr ascending.

    clear nbr_say.
    describe table gt_e_sip_bom lines nbr_say.
    if nbr_say eq 0.
      clear ls_return.
      ls_return-id = 'ZSD'.
      ls_return-type = 'E'.
      ls_return-number = '444'.
      ls_return-message_v1 = gs_lt_sip_vin-vbeln.
      ls_return-message_v2 = gs_lt_sip_vin-posnr.
      ls_return-message_v3 = gs_sip-werks.
      ls_return-message_v4 = gs_sip-matnr.

      call function 'MESSAGE_TEXT_BUILD'
        exporting
          msgid               = ls_return-id
          msgnr               = ls_return-number
          msgv1               = ls_return-message_v1
          msgv2               = ls_return-message_v2
          msgv3               = ls_return-message_v3
          msgv4               = ls_return-message_v4
        importing
          message_text_output = ls_return-message.

      append ls_return to e_return.
      move 'X' to gv_dvm.
    endif.

    check gv_dvm eq ' '.
**********************************************************************
**********************************************************************
* araç tipi * tek kayıt gelmeli
    clear : gs_e_sip_karak.
    clear : gv_ch_val_marka, gv_ch_val_ds, gv_ch_val_le,
            gv_ch_val_ulke, gv_ch_val_imalat, gv_aractip.

    read table e_sip_karak into gs_e_sip_karak
                       with key vbeln = gs_lt_sip_vin-vbeln
                                posnr = gs_lt_sip_vin-posnr
                                charact = 'ZTMARKA'.
    if sy-subrc eq 0.
      move gs_e_sip_karak-ch_vdescr to gv_ch_val_marka.
      translate gv_ch_val_marka to upper case.
      if gv_ch_val_marka+0(1) eq 'K'.
        move 'KÄSSBOHRER' to gv_ch_val_marka.
      endif.
    endif.

    clear : gs_e_sip_karak.
    read table e_sip_karak into gs_e_sip_karak
                       with key vbeln = gs_lt_sip_vin-vbeln
                                posnr = gs_lt_sip_vin-posnr
                                charact = 'ZTDS'.
    if sy-subrc eq 0.
*      move gs_e_sip_karak-ch_vdescr to gv_ch_val_ds.
      concatenate gs_e_sip_karak-ch_val 'ADT'
             into gv_ch_val_ds separated by ' '.
    endif.

    clear : gs_e_sip_karak.
    read table e_sip_karak into gs_e_sip_karak
                       with key vbeln = gs_lt_sip_vin-vbeln
                                posnr = gs_lt_sip_vin-posnr
                                charact = 'ZTLE'.
    if sy-subrc eq 0.
      move gs_e_sip_karak-ch_val to gv_ch_val_le.
    endif.

    clear : gs_e_sip_karak.
    read table e_sip_karak into gs_e_sip_karak
                       with key vbeln = gs_lt_sip_vin-vbeln
                                posnr = gs_lt_sip_vin-posnr
                                charact = 'ZTIMALAT'.
    if sy-subrc eq 0.
      move gs_e_sip_karak-ch_val to gv_ch_val_imalat.
    endif.

    clear : gs_e_sip_karak.
    read table e_sip_karak into gs_e_sip_karak
                       with key vbeln = gs_lt_sip_vin-vbeln
                                posnr = gs_lt_sip_vin-posnr
                                charact = 'ZTULKE'.
    if sy-subrc eq 0.
      move gs_e_sip_karak-ch_val to gv_ch_val_ulke.
    endif.

    clear : gs_e_sip_karak.
    read table e_sip_karak into gs_e_sip_karak
                       with key vbeln = gs_lt_sip_vin-vbeln
                                posnr = gs_lt_sip_vin-posnr
                                charact = 'ZTARACTIPI'.
    if sy-subrc eq 0.
      move gs_e_sip_karak-ch_val to gv_aractip.
    endif.

    clear : gs_e_sip_karak.
    read table e_sip_karak into gs_e_sip_karak
                       with key vbeln = gs_lt_sip_vin-vbeln
                                posnr = gs_lt_sip_vin-posnr
                                charact = 'ZTARACTIPIK'.
    if sy-subrc eq 0.
      move gs_e_sip_karak-ch_val to gv_aractip.
    endif.

    clear : gs_e_sip_karak.
    read table e_sip_karak into gs_e_sip_karak
                       with key vbeln = gs_lt_sip_vin-vbeln
                                posnr = gs_lt_sip_vin-posnr
                                charact = 'ZTARACTIPIT'.
    if sy-subrc eq 0.
      move gs_e_sip_karak-ch_val to gv_aractip.
    endif.

    clear : gv_say_aractipi.
    clear : gt_zsd_aractipi[], gt_zsd_aractipi, gs_zsd_aractipi.
    select * from zsd_aractipi
       into table gt_zsd_aractipi
            where zmarka eq gv_ch_val_marka
              and matnr eq gs_sip-matnr
              and ztimalat eq gv_ch_val_imalat
              and ztds eq gv_ch_val_ds
              and ztulke eq gv_ch_val_ulke
              and ztle eq gv_ch_val_le.

    clear : gv_say_aractipi.
    describe table gt_zsd_aractipi lines gv_say_aractipi.
    if gv_say_aractipi eq 0.
      select * from zsd_aractipi
         into table gt_zsd_aractipi
              where zmarka eq gv_ch_val_marka
                and matnr eq gs_sip-matnr
                and ztimalat eq gv_ch_val_imalat
                and ztds eq gv_ch_val_ds
                and ztulke eq '*ALL'
                and ztle eq gv_ch_val_le.
    endif.

    describe table gt_zsd_aractipi lines gv_say_aractipi.
    if gv_say_aractipi eq 0.
      clear : gv_hata1, gv_hata2, gv_hata3, gv_hata4.

      concatenate gs_lt_sip_vin-vbeln  gs_lt_sip_vin-posnr
             into gv_hata1 separated by space.
      concatenate 'Marka :' gv_ch_val_marka
             into gv_hata2 separated by space.
      concatenate 'Ürün :' gs_sip-matnr 'İmalat :' gv_ch_val_imalat
             into gv_hata3 separated by space.
      concatenate 'Dingil :' gv_ch_val_ds 'Lastik :' gv_ch_val_le
             into gv_hata4 separated by space.

      clear ls_return.
      ls_return-id = 'ZSD'.
      ls_return-type = 'E'.
      ls_return-number = '443'.
      ls_return-message_v1 = gv_hata1.
      ls_return-message_v2 = gv_hata2.
      ls_return-message_v3 = gv_hata3.
      ls_return-message_v4 = gv_hata4.

      call function 'MESSAGE_TEXT_BUILD'
        exporting
          msgid               = ls_return-id
          msgnr               = ls_return-number
          msgv1               = ls_return-message_v1
          msgv2               = ls_return-message_v2
          msgv3               = ls_return-message_v3
          msgv4               = ls_return-message_v4
        importing
          message_text_output = ls_return-message.

      append ls_return to e_return.
      move 'X' to gv_dvm.
    elseif gv_say_aractipi eq 1.
      clear : gs_zsd_aractipi.
      read table gt_zsd_aractipi into gs_zsd_aractipi index 1.
      if sy-subrc eq 0.
        move gs_lt_sip_vin-vbeln to gs_e_sip_aractipi-vbeln.
        move gs_lt_sip_vin-posnr to gs_e_sip_aractipi-posnr.
        move gs_zsd_aractipi-zaractipi to gs_e_sip_aractipi-zaractipi.

        select single ztiponay
                 from zplnschedule
                 into gs_e_sip_aractipi-ztiponay
                where siparisno eq gs_lt_sip_vin-vbeln
                  and sipariskalemi eq gs_lt_sip_vin-posnr.
        if sy-subrc eq 0.
          if gs_e_sip_aractipi-ztiponay is not initial.
            append gs_e_sip_aractipi to e_sip_aractipi.
          else.
            clear ls_return.
            ls_return-id = 'ZSD'.
            ls_return-type = 'E'.
            ls_return-number = '446'.
            ls_return-message_v1 = gs_lt_sip_vin-vbeln.
            ls_return-message_v2 = gs_lt_sip_vin-posnr.
            ls_return-message_v3 = ' '.
            ls_return-message_v4 = ' '.

            call function 'MESSAGE_TEXT_BUILD'
              exporting
                msgid               = ls_return-id
                msgnr               = ls_return-number
                msgv1               = ls_return-message_v1
                msgv2               = ls_return-message_v2
                msgv3               = ls_return-message_v3
                msgv4               = ls_return-message_v4
              importing
                message_text_output = ls_return-message.

            append ls_return to e_return.
            move 'X' to gv_dvm.
          endif.
        else.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '447'.
          ls_return-message_v1 = gs_lt_sip_vin-vbeln.
          ls_return-message_v2 = gs_lt_sip_vin-posnr.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      endif.
    elseif gv_say_aractipi gt 1.
      clear ls_return.
      ls_return-id = 'ZSD'.
      ls_return-type = 'E'.
      ls_return-number = '462'.
      ls_return-message_v1 = gs_lt_sip_vin-vbeln.
      ls_return-message_v2 = gs_lt_sip_vin-posnr.
      ls_return-message_v3 = gs_sip-matnr.
      ls_return-message_v4 = ' '.

      call function 'MESSAGE_TEXT_BUILD'
        exporting
          msgid               = ls_return-id
          msgnr               = ls_return-number
          msgv1               = ls_return-message_v1
          msgv2               = ls_return-message_v2
          msgv3               = ls_return-message_v3
          msgv4               = ls_return-message_v4
        importing
          message_text_output = ls_return-message.

      append ls_return to e_return.
      move 'X' to gv_dvm.
    endif.

    clear gs_e_sip_aractipi.

    clear : gv_hata1, gv_hata2, gv_hata3, gv_hata4.
    clear nbr_say.
    loop at e_sip_aractipi into gs_e_sip_aractipi
                       where vbeln eq gs_lt_sip_vin-vbeln
                         and posnr eq gs_lt_sip_vin-posnr.
      add 1 to nbr_say.
    endloop.

    if nbr_say eq 0.
      concatenate gs_lt_sip_vin-vbeln  gs_lt_sip_vin-posnr
             into gv_hata1 separated by space.
      concatenate 'Marka :' gv_ch_val_marka
             into gv_hata2 separated by space.
      concatenate 'Ürün :' gs_sip-matnr 'İmalat :' gv_ch_val_imalat
             into gv_hata3 separated by space.
      concatenate 'Dingil :' gv_ch_val_ds 'Lastik :' gv_ch_val_le
             into gv_hata4 separated by space.

      clear ls_return.
      ls_return-id = 'ZSD'.
      ls_return-type = 'E'.
      ls_return-number = '443'.
      ls_return-message_v1 = gv_hata1.
      ls_return-message_v2 = gv_hata2.
      ls_return-message_v3 = gv_hata3.
      ls_return-message_v4 = gv_hata4.

      call function 'MESSAGE_TEXT_BUILD'
        exporting
          msgid               = ls_return-id
          msgnr               = ls_return-number
          msgv1               = ls_return-message_v1
          msgv2               = ls_return-message_v2
          msgv3               = ls_return-message_v3
          msgv4               = ls_return-message_v4
        importing
          message_text_output = ls_return-message.

      append ls_return to e_return.
      move 'X' to gv_dvm.
    endif.

    sort e_sip_aractipi by vbeln posnr zaractipi ztiponay.

    check gv_dvm eq ' '.
  endloop.
**********************************************************************
**********************************************************************
**********************************************************************
* ASBIS verileri okunuyor
  clear : gv_ch_val_genusttip.

  loop at e_sip_vin_data into gs_e_sip_vin_data.
    clear : gs_e_sip_aractipi.
    read table e_sip_aractipi into gs_e_sip_aractipi
                          with key vbeln = gs_e_sip_vin_data-vbeln
                                   posnr = gs_e_sip_vin_data-posnr.
    if sy-subrc eq 0.
**********************************************************************
* Varyant - ZASBIS9
      clear : gv_ch_val_genusttip, gs_e_sip_karak.
      clear : gv_zkaynak.

      read table e_sip_karak into gs_e_sip_karak
                         with key vbeln = gs_e_sip_vin_data-vbeln
                                  posnr = gs_e_sip_vin_data-posnr
                                  charact = 'ZTGENUSTIP'.
      if sy-subrc eq 0.
        move gs_e_sip_karak-ch_val to gv_ch_val_genusttip.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '448'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.

      clear : gt_zasbisvariant[], gt_zasbisvariant, gs_zasbisvariant.
      select * from zasbisvariant
         into table gt_zasbisvariant
              where atnam eq ' '
                and atwrt eq ' '
                and tipon eq ' '
                and vbeln eq gs_e_sip_vin_data-vbeln
                and posnr eq gs_e_sip_vin_data-posnr
                and zdrum eq 'A'.

      clear nbr_say.
      describe table gt_zasbisvariant lines nbr_say.
      if nbr_say eq 0.
        if gs_e_sip_vin_data-zoer eq 'X'.
          select * from zasbisvariant
             into table gt_zasbisvariant
                  where atnam eq ' '
                    and atwrt eq ' '
                    and tipon eq ' '
                    and vbeln eq gs_e_sip_vin_data-zvbeln
                    and posnr eq gs_e_sip_vin_data-zposnr
                    and zdrum eq 'A'.

          clear nbr_say.
          describe table gt_zasbisvariant lines nbr_say.
          if nbr_say gt 0.
            move 'OER' to gv_zkaynak.
          endif.
        endif.

        clear nbr_say.
        describe table gt_zasbisvariant lines nbr_say.
        if nbr_say eq 0.
          select * from zasbisvariant
             into table gt_zasbisvariant
                  where atnam eq 'ZTGENUSTIP'
                    and atwrt eq gv_ch_val_genusttip
                    and tipon eq gs_e_sip_aractipi-ztiponay
                    and vbeln eq ' '
                    and posnr eq ' '
                    and zdrum eq 'A'.
          clear nbr_say.
          describe table gt_zasbisvariant lines nbr_say.
          if nbr_say gt 0.
            move 'STANDART' to gv_zkaynak.
          endif.
        endif.
      else.
        move 'ORDER' to gv_zkaynak.
      endif.

      clear nbr_say.
      describe table gt_zasbisvariant lines nbr_say.
      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '449'.
        ls_return-message_v1 = gs_e_sip_karak-ch_vdescr.
        ls_return-message_v2 = gs_e_sip_aractipi-ztiponay.
        ls_return-message_v3 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v4 = gs_e_sip_vin_data-posnr.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.

        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '478'.
        ls_return-message_v1 = gs_e_sip_karak-ch_vdescr.
        ls_return-message_v2 = gs_e_sip_aractipi-ztiponay.
        ls_return-message_v3 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v4 = gs_e_sip_vin_data-posnr.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.

      clear : gv_ver.
      loop at gt_zasbisvariant into gs_zasbisvariant.

        clear : gs_e_sip_karak, gv_ver.
        if gs_zasbisvariant-krkt1 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisvariant-krkt1
                     ch_val = gs_zasbisvariant-deger1.
          if sy-subrc ne 0.
            move 'X' to gv_ver.
          endif.
        endif.
        check gv_ver eq ' '.

        clear : gs_e_sip_karak, gv_ver.
        if gs_zasbisvariant-krkt2 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisvariant-krkt2
                     ch_val = gs_zasbisvariant-deger2.
          if sy-subrc ne 0.
            move 'X' to gv_ver.
          endif.
        endif.
        check gv_ver eq ' '.

        clear : gs_e_sip_karak, gv_ver.
        if gs_zasbisvariant-krkt3 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisvariant-krkt3
                     ch_val = gs_zasbisvariant-deger3.
          if sy-subrc ne 0.
            move 'X' to gv_ver.
          endif.
        endif.
        check gv_ver eq ' '.

        clear : gs_e_sip_karak, gv_ver.
        if gs_zasbisvariant-krkt4 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisvariant-krkt4
                     ch_val = gs_zasbisvariant-deger4.
          if sy-subrc ne 0.
            move 'X' to gv_ver.
          endif.
        endif.
        check gv_ver eq ' '.

        clear : gs_e_sip_karak, gv_ver.
        if gs_zasbisvariant-krkt5 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisvariant-krkt5
                     ch_val = gs_zasbisvariant-deger5.
          if sy-subrc ne 0.
            move 'X' to gv_ver.
          endif.
        endif.
        check gv_ver eq ' '.

        clear : gs_e_sip_karak, gv_ver.
        if gs_zasbisvariant-krkt6 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisvariant-krkt6
                     ch_val = gs_zasbisvariant-deger6.
          if sy-subrc ne 0.
            move 'X' to gv_ver.
          endif.
        endif.
        check gv_ver eq ' '.

        clear : gs_e_sip_karak, gv_ver.
        if gs_zasbisvariant-krkt7 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisvariant-krkt7
                     ch_val = gs_zasbisvariant-deger7.
          if sy-subrc ne 0.
            move 'X' to gv_ver.
          endif.
        endif.
        check gv_ver eq ' '.

        move-corresponding gs_zasbisvariant to gs_e_asbis_varyant.
        move gs_e_sip_vin_data-vbeln to gs_e_asbis_varyant-vbeln.
        move gs_e_sip_vin_data-posnr to gs_e_asbis_varyant-posnr.
        move gv_zkaynak to gs_e_asbis_varyant-zkaynak.

        append gs_e_asbis_varyant to e_asbis_varyant.
        clear gs_e_asbis_varyant.
      endloop.

      clear nbr_say.
      loop at e_asbis_varyant into gs_e_asbis_varyant
                             where vbeln eq gs_e_sip_vin_data-vbeln
                               and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '478'.
        ls_return-message_v1 = gs_e_sip_karak-ch_vdescr.
        ls_return-message_v2 = gs_e_sip_aractipi-ztiponay.
        ls_return-message_v3 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v4 = gs_e_sip_vin_data-posnr.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
      if nbr_say gt 1.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '499'.
        ls_return-message_v1 = gs_e_sip_karak-ch_vdescr.
        ls_return-message_v2 = gs_e_sip_aractipi-ztiponay.
        ls_return-message_v3 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v4 = gs_e_sip_vin_data-posnr.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
**********************************************************************
* AKS Değerleri - ZASBIS7
      clear : gt_zasbisaksdeger[], gt_zasbisaksdeger, gs_zasbisaksdeger.
      clear : gv_zkaynak.
* ilk önce siparil numarası ile, daha sonra oer var ise teklif numarası
* ile en son standart değerler ile bakılır
      select * from zasbisaksdeger
         into table gt_zasbisaksdeger
              where matnr eq ' '
                and vbeln eq gs_e_sip_vin_data-vbeln
                and posnr eq gs_e_sip_vin_data-posnr
                and zdrum eq 'A'.

      clear nbr_say.
      describe table gt_zasbisaksdeger lines nbr_say.
      if nbr_say eq 0.
        if gs_e_sip_vin_data-zoer eq 'X'.
          select * from zasbisaksdeger
             into table gt_zasbisaksdeger
                  where matnr eq ' '
                    and vbeln eq gs_e_sip_vin_data-zvbeln
                    and posnr eq gs_e_sip_vin_data-zposnr
                    and zdrum eq 'A'.
          clear nbr_say.
          describe table gt_zasbisaksdeger lines nbr_say.
          if nbr_say gt 0.
            move 'OER' to gv_zkaynak.
          endif.
        endif.

        clear nbr_say.
        describe table gt_zasbisaksdeger lines nbr_say.
        if nbr_say eq 0.
          select * from zasbisaksdeger
             into table gt_zasbisaksdeger
                  where matnr eq gs_e_sip_vin_data-matnr
                    and vbeln eq ' '
                    and posnr eq ' '
                    and zdrum eq 'A'.

          clear nbr_say.
          describe table gt_zasbisaksdeger lines nbr_say.
          if nbr_say gt 0.
            move 'STANDART' to gv_zkaynak.
          endif.
        endif.
      else.
        move 'ORDER' to gv_zkaynak.
      endif.

      clear nbr_say.
      describe table gt_zasbisaksdeger lines nbr_say.
      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '450'.
        ls_return-message_v1 = gs_e_sip_vin_data-matnr.
        ls_return-message_v2 = ' '.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.

      clear : gv_aks.
      loop at gt_zasbisaksdeger into gs_zasbisaksdeger.

        clear : gs_e_sip_karak, gv_aks.
        if gs_zasbisaksdeger-krkt1 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisaksdeger-krkt1
                     ch_val = gs_zasbisaksdeger-deger1.
          if sy-subrc ne 0.
            move 'X' to gv_aks.
          endif.
        endif.
        check gv_aks eq ' '.

        clear : gs_e_sip_karak, gv_aks.
        if gs_zasbisaksdeger-krkt2 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisaksdeger-krkt2
                     ch_val = gs_zasbisaksdeger-deger2.
          if sy-subrc ne 0.
            move 'X' to gv_aks.
          endif.
        endif.
        check gv_aks eq ' '.

        clear : gs_e_sip_karak, gv_aks.
        if gs_zasbisaksdeger-krkt3 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisaksdeger-krkt3
                     ch_val = gs_zasbisaksdeger-deger3.
          if sy-subrc ne 0.
            move 'X' to gv_aks.
          endif.
        endif.
        check gv_aks eq ' '.

        clear : gs_e_sip_karak, gv_aks.
        if gs_zasbisaksdeger-krkt4 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisaksdeger-krkt4
                     ch_val = gs_zasbisaksdeger-deger4.
          if sy-subrc ne 0.
            move 'X' to gv_aks.
          endif.
        endif.
        check gv_aks eq ' '.

        clear : gs_e_sip_karak, gv_aks.
        if gs_zasbisaksdeger-krkt5 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisaksdeger-krkt5
                     ch_val = gs_zasbisaksdeger-deger5.
          if sy-subrc ne 0.
            move 'X' to gv_aks.
          endif.
        endif.
        check gv_aks eq ' '.

        clear : gs_e_sip_karak, gv_aks.
        if gs_zasbisaksdeger-krkt6 is not initial.
          read table e_sip_karak
                into gs_e_sip_karak
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = gs_zasbisaksdeger-krkt6
                     ch_val = gs_zasbisaksdeger-deger6.
          if sy-subrc ne 0.
            move 'X' to gv_aks.
          endif.
        endif.

        check gv_aks eq ' '.

        move-corresponding gs_zasbisaksdeger to gs_e_asbis_aks.
        move gs_e_sip_vin_data-vbeln to gs_e_asbis_aks-vbeln.
        move gs_e_sip_vin_data-posnr to gs_e_asbis_aks-posnr.
        move gv_zkaynak to gs_e_asbis_aks-zkaynak.

        check gv_aks eq ' '.
        append gs_e_asbis_aks to e_asbis_aks.
        clear gs_e_asbis_aks.
      endloop.

      clear nbr_say.
      loop at e_asbis_aks into gs_e_asbis_aks
                         where vbeln eq gs_e_sip_vin_data-vbeln
                           and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '477'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
      if nbr_say gt 1.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '463'.
        ls_return-message_v1 = gs_e_sip_vin_data-matnr.
        ls_return-message_v2 = ' '.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
**********************************************************************
**********************************************************************
* Versiyon * ZASBIS10
      clear : gs_e_asbis_aks, gs_e_sip_karak, gv_vervar, gv_vervars.
      clear : gt_zasbisakstip[], gt_zasbisakstip, gs_zasbisakstip.
      clear : gv_zkaynak, gv_aksver.

      select * from zasbisakstip
               into table gt_zasbisakstip
                    where zdrum eq 'A'.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTLE'.

      read table e_asbis_aks into gs_e_asbis_aks
                         with key vbeln = gs_e_sip_vin_data-vbeln
                                  posnr = gs_e_sip_vin_data-posnr.
      if sy-subrc eq 0.

        while gv_vervar = ' '.
          clear : gt_zasbisversiyon[], gt_zasbisversiyon,
                  gs_zasbisversiyon.

          select * from zasbisversiyon
             into table gt_zasbisversiyon
                  where tipon eq ' '
                    and vbeln eq gs_e_sip_vin_data-vbeln
                    and posnr eq gs_e_sip_vin_data-posnr
*                    and aksn1 eq ' '
*                    and aksn2 eq ' '
*                    and aksn3 eq ' '
*                    and aksn4 eq ' '
*                    and aksn5 eq ' '
*                    and aksn6 eq ' '
*                    and aksn7 eq ' '
*                    and aksn8 eq ' '
*                    and aksn9 eq ' '
*                    and aksn10 eq ' '
                    and atnam eq ' '
                    and atwrt eq ' '
                    and zdrum eq 'A'.

          clear : gv_say_versiyon.
          describe table gt_zasbisversiyon lines gv_say_versiyon.
          if gv_say_versiyon eq 0.
            if gs_e_sip_vin_data-zoer eq 'X'.
              select * from zasbisversiyon
                 into table gt_zasbisversiyon
                      where tipon eq ' '
                        and vbeln eq gs_e_sip_vin_data-zvbeln
                        and posnr eq gs_e_sip_vin_data-zposnr
*                        and aksn1 eq ' '
*                        and aksn2 eq ' '
*                        and aksn3 eq ' '
*                        and aksn4 eq ' '
*                        and aksn5 eq ' '
*                        and aksn6 eq ' '
*                        and aksn7 eq ' '
*                        and aksn8 eq ' '
*                        and aksn9 eq ' '
*                        and aksn10 eq ' '
                        and atnam eq ' '
                        and atwrt eq ' '
                        and zdrum eq 'A'.

              clear : gv_say_versiyon.
              describe table gt_zasbisversiyon lines gv_say_versiyon.
              if gv_say_versiyon gt 0.
                move 'OER' to gv_zkaynak.
              endif.
            endif.

            clear : gv_say_versiyon.
            describe table gt_zasbisversiyon lines gv_say_versiyon.
            if gv_say_versiyon eq 0.
* karakteristik ve cevabı var ise
              select * from zasbisversiyon
                 into table gt_zasbisversiyon
                      where tipon eq gs_e_sip_aractipi-ztiponay
                        and vbeln eq ' '
                        and posnr eq ' '
                        and aksn1 eq gs_e_asbis_aks-aksn1
                        and aksn2 eq gs_e_asbis_aks-aksn2
                        and aksn3 eq gs_e_asbis_aks-aksn3
                        and aksn4 eq gs_e_asbis_aks-aksn4
                        and aksn5 eq gs_e_asbis_aks-aksn5
                        and aksn6 eq gs_e_asbis_aks-aksn6
                        and aksn7 eq gs_e_asbis_aks-aksn7
                        and aksn8 eq gs_e_asbis_aks-aksn8
                        and aksn9 eq gs_e_asbis_aks-aksn9
                        and aksn10 eq gs_e_asbis_aks-aksn10
                        and atnam eq gs_e_sip_karak-charact
                        and atwrt eq gs_e_sip_karak-ch_val
                        and zdrum eq 'A'.

              clear : gv_say_versiyon.
              describe table gt_zasbisversiyon lines gv_say_versiyon.
              if gv_say_versiyon gt 0.
                move 'STANDART' to gv_zkaynak.
              else.
* 2. durumda
* sadece karakteristik var ise, cevaba bakılmayacak.
                select * from zasbisversiyon
                   into table gt_zasbisversiyon
                        where tipon eq gs_e_sip_aractipi-ztiponay
                          and vbeln eq ' '
                          and posnr eq ' '
                          and aksn1 eq gs_e_asbis_aks-aksn1
                          and aksn2 eq gs_e_asbis_aks-aksn2
                          and aksn3 eq gs_e_asbis_aks-aksn3
                          and aksn4 eq gs_e_asbis_aks-aksn4
                          and aksn5 eq gs_e_asbis_aks-aksn5
                          and aksn6 eq gs_e_asbis_aks-aksn6
                          and aksn7 eq gs_e_asbis_aks-aksn7
                          and aksn8 eq gs_e_asbis_aks-aksn8
                          and aksn9 eq gs_e_asbis_aks-aksn9
                          and aksn10 eq gs_e_asbis_aks-aksn10
                          and atnam eq gs_e_sip_karak-charact
                          and atwrt eq ' '
                          and zdrum eq 'A'.

                clear : gv_say_versiyon.
                describe table gt_zasbisversiyon lines gv_say_versiyon.
                if gv_say_versiyon gt 0.
                  move 'STANDART' to gv_zkaynak.
                endif.
              endif.
            endif.
          else.
            move 'ORDER' to gv_zkaynak.
          endif.

          add 1 to gv_vervars.

          clear : gv_say_versiyon.
          describe table gt_zasbisversiyon lines gv_say_versiyon.
          if gv_say_versiyon eq 0.
*            clear : gs_e_sip_karak-ch_val.

*            clear ls_return.
*            ls_return-id = 'ZSD'.
*            ls_return-type = 'E'.
*            ls_return-number = '464'.
*            ls_return-message_v1 = gs_e_sip_aractipi-ztiponay.
*            ls_return-message_v2 = ' '.
*            ls_return-message_v3 = ' '.
*            ls_return-message_v4 = ' '.
*
*            call function 'MESSAGE_TEXT_BUILD'
*              exporting
*                msgid               = ls_return-id
*                msgnr               = ls_return-number
*                msgv1               = ls_return-message_v1
*                msgv2               = ls_return-message_v2
*                msgv3               = ls_return-message_v3
*                msgv4               = ls_return-message_v4
*              importing
*                message_text_output = ls_return-message.
*
*            append ls_return to e_return.
*            move 'X' to gv_dvm.
          elseif gv_say_versiyon eq 1.
            clear gs_zasbisversiyon.
            read table gt_zasbisversiyon into gs_zasbisversiyon
                                        index 1.
            if sy-subrc eq 0.
              move-corresponding gs_zasbisversiyon to gs_e_asbis_vrsyn.
              move gs_e_sip_vin_data-vbeln to gs_e_asbis_vrsyn-vbeln.
              move gs_e_sip_vin_data-posnr to gs_e_asbis_vrsyn-posnr.
              move gv_zkaynak to gs_e_asbis_vrsyn-zkaynak.
              clear : gv_aksver.

              if gs_e_asbis_vrsyn-aksn1 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn1.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl1.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt1.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen1.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn1.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.
              if gs_e_asbis_vrsyn-aksn2 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn2.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl2.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt2.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen2.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn2.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.
              if gs_e_asbis_vrsyn-aksn3 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn3.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl3.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt3.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen3.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn3.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.
              if gs_e_asbis_vrsyn-aksn4 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn4.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl4.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt4.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen4.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn4.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.
              if gs_e_asbis_vrsyn-aksn5 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn5.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl5.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt5.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen5.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn5.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.
              if gs_e_asbis_vrsyn-aksn6 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn6.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl6.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt6.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen6.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn6.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.
              if gs_e_asbis_vrsyn-aksn7 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn7.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl7.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt7.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen7.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn7.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.
              if gs_e_asbis_vrsyn-aksn8 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn8.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl8.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt8.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen8.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn8.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.
              if gs_e_asbis_vrsyn-aksn9 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn9.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl9.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt9.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen9.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn9.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.
              if gs_e_asbis_vrsyn-aksn10 is not initial.
                clear gs_zasbisakstip.
                read table gt_zasbisakstip
                      into gs_zasbisakstip
                  with key akstn = gs_e_asbis_vrsyn-aksn10.
                if sy-subrc eq 0.
                  move gs_zasbisakstip-zdnkl
                    to gs_e_asbis_vrsyn-zdnkl10.
                  move gs_zasbisakstip-zdumt
                    to gs_e_asbis_vrsyn-zdumt10.
                  move gs_zasbisakstip-zdumen
                    to gs_e_asbis_vrsyn-zdumen10.
                else.
                  move 'X' to gv_aksver.

                  clear ls_return.
                  ls_return-id = 'ZSD'.
                  ls_return-type = 'E'.
                  ls_return-number = '493'.
                  ls_return-message_v1 = gs_e_asbis_vrsyn-aksn10.
                  ls_return-message_v2 = ' '.
                  ls_return-message_v3 = ' '.
                  ls_return-message_v4 = ' '.

                  call function 'MESSAGE_TEXT_BUILD'
                    exporting
                      msgid               = ls_return-id
                      msgnr               = ls_return-number
                      msgv1               = ls_return-message_v1
                      msgv2               = ls_return-message_v2
                      msgv3               = ls_return-message_v3
                      msgv4               = ls_return-message_v4
                    importing
                      message_text_output = ls_return-message.

                  append ls_return to e_return.
                  move 'X' to gv_dvm.
                endif.
              endif.

              check gv_aksver eq ' '.
              append gs_e_asbis_vrsyn to e_asbis_vrsyn.
              clear gs_e_asbis_vrsyn.
            endif.

            move 'X' to gv_vervar.
          elseif gv_say_versiyon gt 1.
            clear ls_return.
            ls_return-id = 'ZSD'.
            ls_return-type = 'E'.
            ls_return-number = '465'.
            ls_return-message_v1 = gs_e_sip_aractipi-ztiponay.
            ls_return-message_v2 = ' '.
            ls_return-message_v3 = ' '.
            ls_return-message_v4 = ' '.

            call function 'MESSAGE_TEXT_BUILD'
              exporting
                msgid               = ls_return-id
                msgnr               = ls_return-number
                msgv1               = ls_return-message_v1
                msgv2               = ls_return-message_v2
                msgv3               = ls_return-message_v3
                msgv4               = ls_return-message_v4
              importing
                message_text_output = ls_return-message.

            append ls_return to e_return.
            move 'X' to gv_dvm.
            move 'X' to gv_vervar.
          endif.

          if gv_vervars eq 2.
            move 'X' to gv_vervar.
          endif.
        endwhile.
      endif.

      clear nbr_say.
      describe table e_asbis_vrsyn lines nbr_say.
      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '476'.
        ls_return-message_v1 = gs_e_sip_aractipi-ztiponay.
        ls_return-message_v2 = ' '.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
**********************************************************************
**********************************************************************
* Araç Kategorisi ve İmalatçısı * ZASBIS4
      clear : gt_zasbistipony[], gt_zasbistipony, gs_zasbistipony,
              gss_zasbistipony, gs_e_sip_karak.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTIMALAT'.

      if sy-subrc eq 0.
        select * from zasbistipony
           into table gt_zasbistipony
                where tipon eq gs_e_sip_aractipi-ztiponay
                  and atnam eq gs_e_sip_karak-charact
                  and atwrt eq gs_e_sip_karak-ch_val
                  and zdrum eq 'A'.

        clear : gv_say_tiponay.
        describe table gt_zasbistipony lines gv_say_tiponay.
        if gv_say_tiponay eq 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '468'.
          ls_return-message_v1 = gs_e_sip_vin_data-spras.
          ls_return-message_v2 = gs_e_sip_aractipi-ztiponay.
          ls_return-message_v3 = gs_e_sip_karak-charact.
          ls_return-message_v4 = gs_e_sip_karak-ch_val.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        elseif gv_say_tiponay eq 1.
          clear gs_zasbistipony.
          read table gt_zasbistipony into gs_zasbistipony
                                    index 1.
          if sy-subrc eq 0.
            move-corresponding gs_zasbistipony to gs_e_asbis_katim.
            move gs_e_sip_vin_data-vbeln to gs_e_asbis_katim-vbeln.
            move gs_e_sip_vin_data-posnr to gs_e_asbis_katim-posnr.

            append gs_e_asbis_katim to e_asbis_katim.
            clear gs_e_asbis_katim.
* 00 versiyonu alınıyor
            clear : gss_zasbistipony.
            select single * from zasbistipony
                            into gss_zasbistipony
                           where tipno eq gs_zasbistipony-tipno
                             and vrsno eq '00'
                             and zdrum eq 'A'.
            if sy-subrc eq 0.
              move-corresponding gss_zasbistipony to gs_e_asbis_katim.
              move gs_e_sip_vin_data-vbeln to gs_e_asbis_katim-vbeln.
              move gs_e_sip_vin_data-posnr to gs_e_asbis_katim-posnr.

              append gs_e_asbis_katim to e_asbis_katim.
              clear gs_e_asbis_katim.
            else.
            delete e_asbis_katim where vbeln eq gs_e_sip_vin_data-vbeln
                                   and posnr eq gs_e_sip_vin_data-posnr.
              clear ls_return.
              ls_return-id = 'ZSD'.
              ls_return-type = 'E'.
              ls_return-number = '467'.
              ls_return-message_v1 = gs_e_sip_aractipi-ztiponay.
              ls_return-message_v2 = ' '.
              ls_return-message_v3 = ' '.
              ls_return-message_v4 = ' '.

              call function 'MESSAGE_TEXT_BUILD'
                exporting
                  msgid               = ls_return-id
                  msgnr               = ls_return-number
                  msgv1               = ls_return-message_v1
                  msgv2               = ls_return-message_v2
                  msgv3               = ls_return-message_v3
                  msgv4               = ls_return-message_v4
                importing
                  message_text_output = ls_return-message.

              append ls_return to e_return.
              move 'X' to gv_dvm.
            endif.
          endif.
        elseif gv_say_tiponay gt 1.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '466'.
          ls_return-message_v1 = gs_e_sip_aractipi-ztiponay.
          ls_return-message_v2 = ' '.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '491'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.

      clear nbr_say.
      loop at e_asbis_katim into gs_e_asbis_katim
                         where vbeln eq gs_e_sip_vin_data-vbeln
                           and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '475'.
        ls_return-message_v1 = gs_e_sip_aractipi-ztiponay.
        ls_return-message_v2 = ' '.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
* Ticari Ad * ZASBIS15
      clear : gs_e_sip_karak, gt_zasbisticad[], gv_say_ticad,
              gt_zasbisticad, gs_zasbisticad.
      clear : gv_zkaynak.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTLE'.
      if sy-subrc eq 0.
* ilk önce karaktersitik değeri ile bakılır
        select * from zasbisticad
           into table gt_zasbisticad
                where matnr eq ' '
                  and atnam eq ' '
                  and atwrt eq ' '
                  and tipon eq ' '
                  and vbeln eq gs_e_sip_vin_data-vbeln
                  and posnr eq gs_e_sip_vin_data-posnr
                  and zdrum eq 'A'.

        clear  gv_say_ticad.
        describe table gt_zasbisticad lines gv_say_ticad.
        if gv_say_ticad eq 0.
          if gs_e_sip_vin_data-zoer eq 'X'.
            select * from zasbisticad
               into table gt_zasbisticad
                    where matnr eq ' '
                      and atnam eq ' '
                      and atwrt eq ' '
                      and tipon eq ' '
                      and vbeln eq gs_e_sip_vin_data-zvbeln
                      and posnr eq gs_e_sip_vin_data-zposnr
                      and zdrum eq 'A'.

            clear  gv_say_ticad.
            describe table gt_zasbisticad lines gv_say_ticad.
            if gv_say_ticad gt 0.
              move 'OER' to gv_zkaynak.
            endif.
          endif.

          clear  gv_say_ticad.
          describe table gt_zasbisticad lines gv_say_ticad.
          if gv_say_ticad eq 0.
            select * from zasbisticad
              into table gt_zasbisticad
                   where matnr eq gs_e_sip_vin_data-matnr
                     and atnam eq gs_e_sip_karak-charact
                     and atwrt eq gs_e_sip_karak-ch_val
                     and tipon eq gs_e_sip_aractipi-ztiponay
                     and vbeln eq ' '
                     and posnr eq ' '
                     and zdrum eq 'A'.

            clear  gv_say_ticad.
            describe table gt_zasbisticad lines gv_say_ticad.
            if gv_say_ticad gt 0.
              move 'STANDART' to gv_zkaynak.
            endif.
          endif.
        else.
          move 'ORDER' to gv_zkaynak.
        endif.

* ikinci olarak karaktersitik değeri *ALL olarak bakılır
        clear  gv_say_ticad.
        describe table gt_zasbisticad lines gv_say_ticad.
        if gv_say_ticad eq 0.
          select * from zasbisticad
             into table gt_zasbisticad
                  where matnr eq gs_e_sip_vin_data-matnr
                    and atnam eq gs_e_sip_karak-charact
                    and atwrt eq '*ALL'
                    and tipon eq gs_e_sip_aractipi-ztiponay
                    and vbeln eq ' '
                    and posnr eq ' '
                    and zdrum eq 'A'.

          clear  gv_say_ticad.
          describe table gt_zasbisticad lines gv_say_ticad.
          if gv_say_ticad gt 0.
            move 'STANDART' to gv_zkaynak.
          endif.
        endif.

        clear  gv_say_ticad.
        describe table gt_zasbisticad lines gv_say_ticad.
        if gv_say_ticad eq 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '459'.
          ls_return-message_v1 = gs_e_sip_vin_data-matnr.
          ls_return-message_v2 = gs_e_sip_karak-charact.
          ls_return-message_v3 = gs_e_sip_karak-ch_val.
          ls_return-message_v4 = gs_e_sip_aractipi-ztiponay.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        elseif gv_say_ticad eq 1.
          clear : gs_zasbisticad.
          read table gt_zasbisticad into gs_zasbisticad index 1.
          if sy-subrc eq 0.
            move-corresponding gs_zasbisticad to gs_e_asbis_ticad.
            move gs_e_sip_vin_data-vbeln to gs_e_asbis_ticad-vbeln.
            move gs_e_sip_vin_data-posnr to gs_e_asbis_ticad-posnr.
            move gv_zkaynak to gs_e_asbis_ticad-zkaynak.

            append gs_e_asbis_ticad to e_asbis_ticad.
            clear gs_e_asbis_ticad.
          endif.
        elseif gv_say_ticad gt 1.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '471'.
          ls_return-message_v1 = gs_e_sip_vin_data-matnr.
          ls_return-message_v2 = gs_e_sip_karak-charact.
          ls_return-message_v3 = gs_e_sip_karak-ch_val.
          ls_return-message_v4 = gs_e_sip_aractipi-ztiponay.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '469'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.

      clear nbr_say.
      loop at e_asbis_ticad into gs_e_asbis_ticad
                           where vbeln eq gs_e_sip_vin_data-vbeln
                             and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '474'.
        ls_return-message_v1 = gs_e_sip_aractipi-vbeln.
        ls_return-message_v2 = gs_e_sip_aractipi-posnr.
        ls_return-message_v3 = gs_e_sip_vin_data-matnr.
        ls_return-message_v4 = gs_e_sip_aractipi-ztiponay..

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
* Etiket * ZASBIS12
      clear : gs_e_sip_karak, gt_zasbiszoretk[], gv_say_zoretk,
              gt_zasbiszoretk, gs_zasbiszoretk.
      clear : gv_zkaynak.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTPAKET'.
      if sy-subrc eq 0.
** birinci olarka karaktersitik cevabı ile bakılır
*        select * from zasbiszoretk
*           into table gt_zasbiszoretk
*                where langu eq gs_e_sip_vin_data-spras
*                  and matnr eq ' '
*                  and atnam eq ' '
*                  and atwrt eq ' '
*                  and vbeln eq gs_e_sip_vin_data-vbeln
*                  and posnr eq gs_e_sip_vin_data-posnr
*                  and zdrum eq 'A'.
*
*        clear : gv_say_zoretk.
*        describe table gt_zasbiszoretk lines gv_say_zoretk.
*        if gv_say_zoretk eq 0.
*
*          if gs_e_sip_vin_data-zoer eq 'X'.
*            select * from zasbiszoretk
*               into table gt_zasbiszoretk
*                    where langu eq gs_e_sip_vin_data-spras
*                      and matnr eq ' '
*                      and atnam eq ' '
*                      and atwrt eq ' '
*                      and vbeln eq gs_e_sip_vin_data-zvbeln
*                      and posnr eq gs_e_sip_vin_data-zposnr
*                      and zdrum eq 'A'.
*            clear : gv_say_zoretk.
*            describe table gt_zasbiszoretk lines gv_say_zoretk.
*            if gv_say_zoretk gt 0.
*              move 'OER' to gv_zkaynak.
*            endif.
*          endif.
*
*          clear : gv_say_zoretk.
*          describe table gt_zasbiszoretk lines gv_say_zoretk.
*          if gv_say_zoretk eq 0.
*            select * from zasbiszoretk
*               into table gt_zasbiszoretk
*                    where langu eq gs_e_sip_vin_data-spras
*                      and matnr eq gs_e_sip_vin_data-matnr
*                      and atnam eq gs_e_sip_karak-charact
*                      and atwrt eq gs_e_sip_karak-ch_val
*                      and vbeln eq ' '
*                      and posnr eq ' '
*                      and zdrum eq 'A'.
*            clear : gv_say_zoretk.
*            describe table gt_zasbiszoretk lines gv_say_zoretk.
*            if gv_say_zoretk gt 0.
*              move 'STANDART' to gv_zkaynak.
*            endif.
*          endif.
*        else.
*          move 'ORDER' to gv_zkaynak.
*        endif.
*        clear : gv_say_zoretk.
*        describe table gt_zasbiszoretk lines gv_say_zoretk.
*        if gv_say_zoretk eq 0.
        select * from zasbiszoretk
           into table gt_zasbiszoretk
                where langu eq gs_e_sip_vin_data-spras
                  and matnr eq gs_e_sip_vin_data-matnr
                  and atnam eq gs_e_sip_karak-charact
                  and atwrt eq gs_e_sip_karak-ch_val
                  and vbeln eq ' '
                  and posnr eq ' '
                  and zdrum eq 'A'.
*          clear : gv_say_zoretk.
*          describe table gt_zasbiszoretk lines gv_say_zoretk.
*          if gv_say_zoretk gt 0.
*            move 'STANDART' to gv_zkaynak.
*          endif.
*        endif.

* ikinci olarak karakteristik değeri olarak *ALL olarak bakılıyor
        clear : gv_say_zoretk.
        describe table gt_zasbiszoretk lines gv_say_zoretk.
        if gv_say_zoretk eq 0.
          select * from zasbiszoretk
             into table gt_zasbiszoretk
                  where langu eq gs_e_sip_vin_data-spras
                    and matnr eq gs_e_sip_vin_data-matnr
                    and atnam eq gs_e_sip_karak-charact
                    and atwrt eq '*ALL'
                    and vbeln eq ' '
                    and posnr eq ' '
                    and zdrum eq 'A'.
*          clear : gv_say_zoretk.
*          describe table gt_zasbiszoretk lines gv_say_zoretk.
*          if gv_say_zoretk gt 0.
*            move 'STANDART' to gv_zkaynak.
*          endif.
        endif.

        clear : gv_say_zoretk.
        describe table gt_zasbiszoretk lines gv_say_zoretk.
        if gv_say_zoretk eq 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '461'.
          ls_return-message_v1 = gs_e_sip_vin_data-spras.
          ls_return-message_v2 = gs_e_sip_vin_data-matnr.
          ls_return-message_v3 = gs_e_sip_karak-charact.
          ls_return-message_v4 = gs_e_sip_karak-ch_val.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        elseif gv_say_zoretk eq 1.
          clear gs_zasbiszoretk.
          read table gt_zasbiszoretk into gs_zasbiszoretk index 1.
          if sy-subrc eq 0.
            move-corresponding gs_zasbiszoretk to gs_e_asbis_etiket.
            move gs_e_sip_vin_data-vbeln to gs_e_asbis_etiket-vbeln.
            move gs_e_sip_vin_data-posnr to gs_e_asbis_etiket-posnr.
*            move gv_zkaynak to gs_e_asbis_etiket-zkaynak.

            append gs_e_asbis_etiket to e_asbis_etiket.
            clear gs_e_asbis_etiket.
          endif.
        elseif gv_say_zoretk gt 1.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '472'.
          ls_return-message_v1 = gs_e_sip_vin_data-spras.
          ls_return-message_v2 = gs_e_sip_vin_data-matnr.
          ls_return-message_v3 = gs_e_sip_karak-charact.
          ls_return-message_v4 = gs_e_sip_karak-ch_val.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '470'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.

      clear nbr_say.
      loop at e_asbis_etiket into gs_e_asbis_etiket
                         where vbeln eq gs_e_sip_vin_data-vbeln
                           and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '473'.
        ls_return-message_v1 = gs_e_sip_vin_data-spras.
        ls_return-message_v2 = gs_e_sip_vin_data-matnr.
        ls_return-message_v3 = gs_e_sip_karak-charact.
        ls_return-message_v4 = gs_e_sip_karak-ch_val.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
* Araç tanıtım numarası yeri - ZASBIS13
      clear : gs_e_sip_karak, gt_zasbisarctntm[], gv_say_arctntmno,
              gt_zasbisarctntm, gs_zasbisarctntm.
      clear : gv_zkaynak.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTPAKET'.
      if sy-subrc eq 0.
* ilk olarak karaktersitik cevabı ile bakar
*        select * from zasbisarctntm
*           into table gt_zasbisarctntm
*                where langu eq gs_e_sip_vin_data-spras
*                  and matnr eq ' '
*                  and atnam eq ' '
*                  and atwrt eq ' '
*                  and vbeln eq gs_e_sip_vin_data-vbeln
*                  and posnr eq gs_e_sip_vin_data-posnr
*                  and zdrum eq 'A'.
*
*        clear : gv_say_arctntmno.
*        describe table gt_zasbisarctntm lines gv_say_arctntmno.
*        if gv_say_arctntmno eq 0.
*
*          if gs_e_sip_vin_data-zoer eq 'X'.
*            select * from zasbisarctntm
*               into table gt_zasbisarctntm
*                    where langu eq gs_e_sip_vin_data-spras
*                      and matnr eq ' '
*                      and atnam eq ' '
*                      and atwrt eq ' '
*                      and vbeln eq gs_e_sip_vin_data-zvbeln
*                      and posnr eq gs_e_sip_vin_data-zposnr
*                      and zdrum eq 'A'.
*
*            clear : gv_say_arctntmno.
*            describe table gt_zasbisarctntm lines gv_say_arctntmno.
*            if gv_say_arctntmno gt 0.
*              move 'OER' to gv_zkaynak.
*            endif.
*          endif.
*
*          clear : gv_say_arctntmno.
*          describe table gt_zasbisarctntm lines gv_say_arctntmno.
*          if gv_say_arctntmno eq 0.
*            select * from zasbisarctntm
*               into table gt_zasbisarctntm
*                    where langu eq gs_e_sip_vin_data-spras
*                      and matnr eq gs_e_sip_vin_data-matnr
*                      and atnam eq gs_e_sip_karak-charact
*                      and atwrt eq gs_e_sip_karak-ch_val
*                      and vbeln eq ' '
*                      and posnr eq ' '
*                      and zdrum eq 'A'.
*
*            clear : gv_say_arctntmno.
*            describe table gt_zasbisarctntm lines gv_say_arctntmno.
*            if gv_say_arctntmno gt 0.
*              move 'STANDART' to gv_zkaynak.
*            endif.
*          endif.
*        else.
*          move 'ORDER' to gv_zkaynak.
*        endif.
*
*        clear : gv_say_arctntmno.
*        describe table gt_zasbisarctntm lines gv_say_arctntmno.
*        if gv_say_arctntmno eq 0.
        select * from zasbisarctntm
           into table gt_zasbisarctntm
                where langu eq gs_e_sip_vin_data-spras
                  and matnr eq gs_e_sip_vin_data-matnr
                  and atnam eq gs_e_sip_karak-charact
                  and atwrt eq gs_e_sip_karak-ch_val
                  and vbeln eq ' '
                  and posnr eq ' '
                  and zdrum eq 'A'.
*
*          clear : gv_say_arctntmno.
*          describe table gt_zasbisarctntm lines gv_say_arctntmno.
*        if gv_say_arctntmno gt 0.
*          move 'STANDART' to gv_zkaynak.
*        endif.
*        endif.

* ikinci olarak karaktersitik cevabı *ALL ile bakar
        clear : gv_say_arctntmno.
        describe table gt_zasbisarctntm lines gv_say_arctntmno.
        if gv_say_arctntmno eq 0.
          select * from zasbisarctntm
             into table gt_zasbisarctntm
                  where langu eq gs_e_sip_vin_data-spras
                    and matnr eq gs_e_sip_vin_data-matnr
                    and atnam eq gs_e_sip_karak-charact
                    and atwrt eq '*ALL'
                    and vbeln eq ' '
                    and posnr eq ' '
                    and zdrum eq 'A'.

*          clear : gv_say_arctntmno.
*          describe table gt_zasbisarctntm lines gv_say_arctntmno.
*          if gv_say_arctntmno gt 0.
*            move 'STANDART' to gv_zkaynak.
*          endif.
        endif.

        clear : gv_say_arctntmno.
        describe table gt_zasbisarctntm lines gv_say_arctntmno.
        if gv_say_arctntmno eq 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '479'.
          ls_return-message_v1 = gs_e_sip_vin_data-spras.
          ls_return-message_v2 = gs_e_sip_vin_data-matnr.
          ls_return-message_v3 = gs_e_sip_karak-charact.
          ls_return-message_v4 = gs_e_sip_karak-ch_val.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        elseif gv_say_arctntmno eq 1.
          clear gs_zasbisarctntm.
          read table gt_zasbisarctntm into gs_zasbisarctntm index 1.
          if sy-subrc eq 0.
            move-corresponding gs_zasbisarctntm to gs_e_asbis_atny.
            move gs_e_sip_vin_data-vbeln to gs_e_asbis_atny-vbeln.
            move gs_e_sip_vin_data-posnr to gs_e_asbis_atny-posnr.
*            move gv_zkaynak to gs_e_asbis_atny-zkaynak.

            append gs_e_asbis_atny to e_asbis_atny.
            clear gs_e_asbis_atny.
          endif.
        elseif gv_say_arctntmno gt 1.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '480'.
          ls_return-message_v1 = gs_e_sip_vin_data-spras.
          ls_return-message_v2 = gs_e_sip_vin_data-matnr.
          ls_return-message_v3 = gs_e_sip_karak-charact.
          ls_return-message_v4 = gs_e_sip_karak-ch_val.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '470'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.

      clear nbr_say.
      loop at e_asbis_atny into gs_e_asbis_atny
                          where vbeln eq gs_e_sip_vin_data-vbeln
                            and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '481'.
        ls_return-message_v1 = gs_e_sip_vin_data-spras.
        ls_return-message_v2 = gs_e_sip_vin_data-matnr.
        ls_return-message_v3 = gs_e_sip_karak-charact.
        ls_return-message_v4 = gs_e_sip_karak-ch_val.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
* Araç Yön - ZASBIS19
      clear : gs_e_sip_karak, gt_zasbistay[], gv_say_tay,
              gt_zasbistay, gs_zasbistay.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTULKE'.
      if sy-subrc eq 0.
        select * from zasbistay
           into table gt_zasbistay
                where atnam_k eq gs_e_sip_karak-charact
                  and atwrt_k eq gs_e_sip_karak-ch_val
                  and zdrum eq 'A'.

        describe table gt_zasbistay lines gv_say_tay.
        if gv_say_tay eq 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '521'.
          ls_return-message_v1 = gs_e_sip_karak-charact.
          ls_return-message_v2 = gs_e_sip_karak-ch_val.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        elseif gv_say_tay eq 1.
          clear : gs_zasbistay.
          read table gt_zasbistay into gs_zasbistay index 1.
          if sy-subrc eq 0.
            move-corresponding gs_zasbistay to gs_e_asbis_tay.
            move gs_e_sip_vin_data-vbeln to gs_e_asbis_tay-vbeln.
            move gs_e_sip_vin_data-posnr to gs_e_asbis_tay-posnr.

            append gs_e_asbis_tay to e_asbis_tay.
            clear gs_e_asbis_tay.
          endif.
        elseif gv_say_tay gt 1.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '522'.
          ls_return-message_v1 = gs_e_sip_karak-charact.
          ls_return-message_v2 = gs_e_sip_karak-ch_val.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '523'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.

      clear nbr_say.
      loop at e_asbis_tay into gs_e_asbis_tay
                         where vbeln eq gs_e_sip_vin_data-vbeln
                           and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '524'.
        ls_return-message_v1 = gs_e_sip_aractipi-vbeln.
        ls_return-message_v2 = gs_e_sip_aractipi-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
* AOR - ZASBIS20 - ZASBIS24
      clear : gs_e_sip_karak, gt_zasbisaor[], gv_say_aor,
              gt_zasbisaor, gs_zasbisaor.
      clear : gt_zasbisaor_select[], gt_zasbisaor_select,
              gs_zasbisaor_select, gs_e_sip_karak_m, gs_e_sip_karak_k.
      clear : gv_aorvar.
      clear : gv_zkaynak.

      clear : gs_e_sip_karak.
      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTPAKET'.
      if sy-subrc eq 0.
        clear : gs_e_sip_karak_m.
        read table e_sip_karak
              into gs_e_sip_karak_m
          with key vbeln = gs_e_sip_vin_data-vbeln
                   posnr = gs_e_sip_vin_data-posnr
                   charact = 'ZTIMALAT'.
        if sy-subrc eq 0.
          clear : gs_e_sip_karak_k.
          read table e_sip_karak
                into gs_e_sip_karak_k
            with key vbeln = gs_e_sip_vin_data-vbeln
                     posnr = gs_e_sip_vin_data-posnr
                     charact = 'ZTADR'.
          if sy-subrc eq 0.
* tüm karaktersitik ve cevaplar içni bakılır
            select * from zasbisaor
            into table gt_zasbisaor
                 where matnr eq ' '
                   and atnam eq ' '
                   and atwrt eq ' '
                   and atnam_m eq ' '
                   and atwrt_m eq ' '
                   and atnam_k eq ' '
                   and atwrt_k eq ' '
                   and vbeln eq gs_e_sip_vin_data-vbeln
                   and posnr eq gs_e_sip_vin_data-posnr
                   and zdrum eq 'A'.

            clear : gv_say_aor.
            describe table gt_zasbisaor lines gv_say_aor.
            if gv_say_aor eq 0.

              if gs_e_sip_vin_data-zoer eq 'X'.
                select * from zasbisaor
                   into table gt_zasbisaor
                        where matnr eq ' '
                          and atnam eq ' '
                          and atwrt eq ' '
                          and atnam_m eq ' '
                          and atwrt_m eq ' '
                          and atnam_k eq ' '
                          and atwrt_k eq ' '
                          and vbeln eq gs_e_sip_vin_data-zvbeln
                          and posnr eq gs_e_sip_vin_data-zposnr
                          and zdrum eq 'A'.

                clear : gv_say_aor.
                describe table gt_zasbisaor lines gv_say_aor.
                if gv_say_aor gt 0.
                  move 'OER' to gv_zkaynak.
                endif.
              endif.

              clear : gv_say_aor.
              describe table gt_zasbisaor lines gv_say_aor.
              if gv_say_aor eq 0.
                select * from zasbisaor
                   into table gt_zasbisaor
                        where matnr eq gs_e_sip_vin_data-matnr
                          and atnam eq gs_e_sip_karak-charact
                          and atwrt eq gs_e_sip_karak-ch_val
                          and atnam_m eq gs_e_sip_karak_m-charact
                          and atwrt_m eq gs_e_sip_karak_m-ch_val
                          and atnam_k eq gs_e_sip_karak_k-charact
                          and atwrt_k eq gs_e_sip_karak_k-ch_val
                          and vbeln eq ' '
                          and posnr eq ' '
                          and zdrum eq 'A'.

                clear : gv_say_aor.
                describe table gt_zasbisaor lines gv_say_aor.
                if gv_say_aor gt 0.
                  move 'STANDART' to gv_zkaynak.
                endif.
              endif.
            else.
              move 'ORDER' to gv_zkaynak.
            endif.

* atwrt_m *all ile bakılır
            clear : gv_say_aor.
            describe table gt_zasbisaor lines gv_say_aor.
            if gv_say_aor eq 0.
              select * from zasbisaor
                 into table gt_zasbisaor
                      where matnr eq gs_e_sip_vin_data-matnr
                        and atnam eq gs_e_sip_karak-charact
                        and atwrt eq gs_e_sip_karak-ch_val
                        and atnam_m eq gs_e_sip_karak_m-charact
                        and atwrt_m eq '*ALL'
                        and atnam_k eq gs_e_sip_karak_k-charact
                        and atwrt_k eq gs_e_sip_karak_k-ch_val
                        and vbeln eq ' '
                        and posnr eq ' '
                        and zdrum eq 'A'.

              clear : gv_say_aor.
              describe table gt_zasbisaor lines gv_say_aor.
              if gv_say_aor gt 0.
                move 'STANDART' to gv_zkaynak.
              endif.
            endif.

* atwrt *all ile bakılır
            clear : gv_say_aor.
            describe table gt_zasbisaor lines gv_say_aor.
            if gv_say_aor eq 0.
              select * from zasbisaor
                 into table gt_zasbisaor
                      where matnr eq gs_e_sip_vin_data-matnr
                        and atnam eq gs_e_sip_karak-charact
                        and atwrt eq '*ALL'
                        and atnam_m eq gs_e_sip_karak_m-charact
                        and atwrt_m eq gs_e_sip_karak_m-ch_val
                        and atnam_k eq gs_e_sip_karak_k-charact
                        and atwrt_k eq gs_e_sip_karak_k-ch_val
                        and vbeln eq ' '
                        and posnr eq ' '
                        and zdrum eq 'A'.

              clear : gv_say_aor.
              describe table gt_zasbisaor lines gv_say_aor.
              if gv_say_aor gt 0.
                move 'STANDART' to gv_zkaynak.
              endif.
            endif.

* atwrt *all ve atwrt_m *all ile bakılır
            clear : gv_say_aor.
            describe table gt_zasbisaor lines gv_say_aor.
            if gv_say_aor eq 0.

              select * from zasbisaor
                 into table gt_zasbisaor
                      where matnr eq gs_e_sip_vin_data-matnr
                        and atnam eq gs_e_sip_karak-charact
                        and atwrt eq '*ALL'
                        and atnam_m eq gs_e_sip_karak_m-charact
                        and atwrt_m eq '*ALL'
                        and atnam_k eq gs_e_sip_karak_k-charact
                        and atwrt_k eq gs_e_sip_karak_k-ch_val
                        and vbeln eq ' '
                        and posnr eq ' '
                        and zdrum eq 'A'.

              clear : gv_say_aor.
              describe table gt_zasbisaor lines gv_say_aor.
              if gv_say_aor gt 0.
                move 'STANDART' to gv_zkaynak.
              endif.
            endif.

            clear : gv_say_aor.
            describe table gt_zasbisaor lines gv_say_aor.
            if gv_say_aor eq 0.
              clear ls_return.
              ls_return-id = 'ZSD'.
              ls_return-type = 'E'.
              ls_return-number = '502'.
              ls_return-message_v1 = gs_e_sip_vin_data-matnr.
              ls_return-message_v2 = gs_e_sip_karak-ch_val.
              ls_return-message_v3 = gs_e_sip_karak_k-charact.
              ls_return-message_v4 = gs_e_sip_karak_k-ch_val.

              call function 'MESSAGE_TEXT_BUILD'
                exporting
                  msgid               = ls_return-id
                  msgnr               = ls_return-number
                  msgv1               = ls_return-message_v1
                  msgv2               = ls_return-message_v2
                  msgv3               = ls_return-message_v3
                  msgv4               = ls_return-message_v4
                importing
                  message_text_output = ls_return-message.

              append ls_return to e_return.
              move 'X' to gv_dvm.
            elseif gv_say_aor eq 1.
              move 'X' to gv_aorvar.
              clear gs_zasbisaor.
              read table gt_zasbisaor into gs_zasbisaor index 1.
              if sy-subrc eq 0.
                move-corresponding gs_zasbisaor to gs_e_asbis_aor.
                move gs_e_sip_vin_data-vbeln to gs_e_asbis_aor-vbeln.
                move gs_e_sip_vin_data-posnr to gs_e_asbis_aor-posnr.
                move gv_zkaynak to gs_e_asbis_aor-zkaynak.

                append gs_e_asbis_aor to e_asbis_aor.
                clear gs_e_asbis_aor.
              endif.
            elseif gv_say_aor gt 1.
              clear ls_return.
              ls_return-id = 'ZSD'.
              ls_return-type = 'E'.
              ls_return-number = '503'.
              ls_return-message_v1 = gs_e_sip_vin_data-matnr.
              ls_return-message_v2 = gs_e_sip_karak-ch_val.
              ls_return-message_v3 = gs_e_sip_karak_k-charact.
              ls_return-message_v4 = gs_e_sip_karak_k-ch_val.

              call function 'MESSAGE_TEXT_BUILD'
                exporting
                  msgid               = ls_return-id
                  msgnr               = ls_return-number
                  msgv1               = ls_return-message_v1
                  msgv2               = ls_return-message_v2
                  msgv3               = ls_return-message_v3
                  msgv4               = ls_return-message_v4
                importing
                  message_text_output = ls_return-message.

              append ls_return to e_return.
              move 'X' to gv_dvm.
            endif.
          else.
            clear ls_return.
            ls_return-id = 'ZSD'.
            ls_return-type = 'I'.
            ls_return-number = '622'.
            ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
            ls_return-message_v2 = gs_e_sip_vin_data-posnr.
            ls_return-message_v3 = ' '.
            ls_return-message_v4 = ' '.

            call function 'MESSAGE_TEXT_BUILD'
              exporting
                msgid               = ls_return-id
                msgnr               = ls_return-number
                msgv1               = ls_return-message_v1
                msgv2               = ls_return-message_v2
                msgv3               = ls_return-message_v3
                msgv4               = ls_return-message_v4
              importing
                message_text_output = ls_return-message.

            append ls_return to e_return.
          endif.
        else.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'I'.
          ls_return-number = '623'.
          ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
          ls_return-message_v2 = gs_e_sip_vin_data-posnr.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
        endif.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'I'.
        ls_return-number = '470'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
      endif.

      if gv_aorvar eq 'X'.
        clear nbr_say.
        loop at e_asbis_aor into gs_e_asbis_aor
                           where vbeln eq gs_e_sip_vin_data-vbeln
                             and posnr eq gs_e_sip_vin_data-posnr.
          add 1 to nbr_say.
        endloop.

        if nbr_say eq 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '504'.
          ls_return-message_v1 = gs_e_sip_vin_data-matnr.
          ls_return-message_v2 = gs_e_sip_karak-charact.
          ls_return-message_v3 = gs_e_sip_karak-ch_val.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
* Lastik Sayısı - ZASBIS8
      clear : gs_e_sip_karak, gs_e_sip_karak_k, gt_zasbisdingil[],
              gv_say_lastik, gt_zasbisdingil, gs_zasbisdingil.
      clear : gv_yok1, gv_yok2.
      clear : gv_zkaynak.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTDS'.
      if sy-subrc ne 0.
        move 'X' to gv_yok1.
      endif.

      read table e_sip_karak
            into gs_e_sip_karak_k
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTLA'.
      if sy-subrc ne 0.
        move 'X' to gv_yok2.
      endif.

      if gv_yok1 eq ' ' and gv_yok2 eq ' '.
        select * from zasbisdingil
           into table gt_zasbisdingil
                where atnam eq ' '
                  and atwrt eq ' '
                  and atnam_k eq ' '
                  and atwrt_k eq ' '
                  and vbeln eq gs_e_sip_vin_data-vbeln
                  and posnr eq gs_e_sip_vin_data-posnr
                  and zdrum eq 'A'.

        clear : gv_say_lastik.
        describe table gt_zasbisdingil lines gv_say_lastik.
        if gv_say_lastik eq 0.
          if gs_e_sip_vin_data-zoer eq 'X'.
            select * from zasbisdingil
           into table gt_zasbisdingil
                where atnam eq ' '
                  and atwrt eq ' '
                  and atnam_k eq ' '
                  and atwrt_k eq ' '
                  and vbeln eq gs_e_sip_vin_data-zvbeln
                  and posnr eq gs_e_sip_vin_data-zposnr
                  and zdrum eq 'A'.

            clear : gv_say_lastik.
            describe table gt_zasbisdingil lines gv_say_lastik.
            if gv_say_lastik gt 0.
              move 'OER' to gv_zkaynak.
            endif.
          endif.

          clear : gv_say_lastik.
          describe table gt_zasbisdingil lines gv_say_lastik.
          if gv_say_lastik eq 0.
            select * from zasbisdingil
               into table gt_zasbisdingil
                    where atnam eq gs_e_sip_karak-charact
                      and atwrt eq gs_e_sip_karak-ch_val
                      and atnam_k eq gs_e_sip_karak_k-charact
                      and atwrt_k eq gs_e_sip_karak_k-ch_val
                      and vbeln eq ' '
                      and posnr eq ' '
                      and zdrum eq 'A'.

            clear : gv_say_lastik.
            describe table gt_zasbisdingil lines gv_say_lastik.
            if gv_say_lastik gt 0.
              move 'STANDART' to gv_zkaynak.
            endif.
          endif.
        else.
          move 'ORDER' to gv_zkaynak.
        endif.

        clear : gv_say_lastik.
        describe table gt_zasbisdingil lines gv_say_lastik.
        if gv_say_lastik eq 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '484'.
          ls_return-message_v1 = gs_e_sip_karak-charact.
          ls_return-message_v2 = gs_e_sip_karak-ch_val.
          ls_return-message_v3 = gs_e_sip_karak_k-charact.
          ls_return-message_v4 = gs_e_sip_karak_k-ch_val.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        elseif gv_say_lastik eq 1.
          clear gs_zasbisdingil.
          read table gt_zasbisdingil into gs_zasbisdingil index 1.
          if sy-subrc eq 0.
            move-corresponding gs_zasbisdingil to gs_e_asbis_lastik.
            move gs_e_sip_vin_data-vbeln to gs_e_asbis_lastik-vbeln.
            move gs_e_sip_vin_data-posnr to gs_e_asbis_lastik-posnr.
            move gv_zkaynak to gs_e_asbis_lastik-zkaynak.

            append gs_e_asbis_lastik to e_asbis_lastik.
            clear gs_e_asbis_lastik.
          endif.
        elseif gv_say_lastik gt 1.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '485'.
          ls_return-message_v1 = gs_e_sip_karak-charact.
          ls_return-message_v2 = gs_e_sip_karak-ch_val.
          ls_return-message_v3 = gs_e_sip_karak_k-charact.
          ls_return-message_v4 = gs_e_sip_karak_k-ch_val.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      else.
        if gv_yok1 eq 'X'.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '482'.
          ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
          ls_return-message_v2 = gs_e_sip_vin_data-posnr.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
        if gv_yok2 eq 'X'.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '483'.
          ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
          ls_return-message_v2 = gs_e_sip_vin_data-posnr.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      endif.

      clear nbr_say.
      loop at e_asbis_lastik into gs_e_asbis_lastik
                            where vbeln eq gs_e_sip_vin_data-vbeln
                              and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '486'.
        ls_return-message_v1 = gs_e_sip_vin_data-spras.
        ls_return-message_v2 = gs_e_sip_vin_data-matnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
* Yük index - ZASBIS16
      clear : gt_zasbisyukindex[],
              gv_say_laskod, gt_zasbisyukindex, gs_zasbisyukindex.
      clear : gv_zkaynak.

** order iel bakılır
*      select * from zasbisyukindex
*               into gs_zasbisyukindex
*              where vbeln eq gs_e_sip_vin_data-vbeln
*                and posnr eq gs_e_sip_vin_data-posnr
*                and zdrum eq 'A'.
**        clear : gs_e_sip_bom.
**        read table gt_e_sip_bom into gs_e_sip_bom
**                  with key vbeln = gs_e_sip_vin_data-vbeln
**                           posnr = gs_e_sip_vin_data-posnr
**                           matnr = gs_zasbisyukindex-matnr.
**        if sy-subrc eq 0.
*        move-corresponding gs_zasbisyukindex to gs_e_asbis_laskod.
*        move gs_e_sip_vin_data-vbeln to gs_e_asbis_laskod-vbeln.
*        move gs_e_sip_vin_data-posnr to gs_e_asbis_laskod-posnr.
*        move 'ORDER' to gs_e_asbis_laskod-zkaynak.
*
*        append gs_e_asbis_laskod to e_asbis_laskod.
*        clear gs_e_asbis_laskod.
**        endif.
*      endselect.

*      clear nbr_say.
*      describe table e_asbis_laskod lines nbr_say.
*      if nbr_say eq 0.
** oer ile bakılır
*        if gs_e_sip_vin_data-zoer eq 'X'.
*          select * from zasbisyukindex
*                   into gs_zasbisyukindex
*                  where vbeln eq gs_e_sip_vin_data-zvbeln
*                    and posnr eq gs_e_sip_vin_data-zposnr
*                    and zdrum eq 'A'.
**            clear : gs_e_sip_bom.
**            read table gt_e_sip_bom into gs_e_sip_bom
**                      with key vbeln = gs_e_sip_vin_data-vbeln
**                               posnr = gs_e_sip_vin_data-posnr
**                               matnr = gs_zasbisyukindex-matnr.
**            if sy-subrc eq 0.
*            move-corresponding gs_zasbisyukindex to gs_e_asbis_laskod.
*            move gs_e_sip_vin_data-vbeln to gs_e_asbis_laskod-vbeln.
*            move gs_e_sip_vin_data-posnr to gs_e_asbis_laskod-posnr.
*            move 'OER' to gs_e_asbis_laskod-zkaynak.
*
*            append gs_e_asbis_laskod to e_asbis_laskod.
*            clear gs_e_asbis_laskod.
**            endif.
*          endselect.
*        endif.

* standart ile bakılır
*      clear nbr_say.
*      describe table e_asbis_laskod lines nbr_say.
*      if nbr_say eq 0.
      select * from zasbisyukindex
               into gs_zasbisyukindex
              where vbeln eq ' '
                and posnr eq ' '
                and zdrum eq 'A'.
        clear : gs_e_sip_bom.
        read table gt_e_sip_bom into gs_e_sip_bom
                            with key vbeln = gs_e_sip_vin_data-vbeln
                                     posnr = gs_e_sip_vin_data-posnr
                                     matnr = gs_zasbisyukindex-matnr.
        if sy-subrc eq 0.
          move-corresponding gs_zasbisyukindex to gs_e_asbis_laskod.
          move gs_e_sip_vin_data-vbeln to gs_e_asbis_laskod-vbeln.
          move gs_e_sip_vin_data-posnr to gs_e_asbis_laskod-posnr.
*              move 'STANDART' to gs_e_asbis_laskod-zkaynak.

          append gs_e_asbis_laskod to e_asbis_laskod.
          clear gs_e_asbis_laskod.
        endif.
      endselect.
*      endif.
*    endif.

      clear nbr_say.
      loop at e_asbis_laskod into gs_e_asbis_laskod
                            where vbeln eq gs_e_sip_vin_data-vbeln
                              and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '487'.
        ls_return-message_v1 = gs_e_sip_vin_data-spras.
        ls_return-message_v2 = gs_e_sip_vin_data-matnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      elseif nbr_say gt 1.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '488'.
        ls_return-message_v1 = gs_e_sip_vin_data-spras.
        ls_return-message_v2 = gs_e_sip_vin_data-matnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
**********************************************************************
* İmalatçı - ZASBIS3
      clear : gs_e_sip_karak, gt_zasbisimltci[], gv_say_imalatci,
              gt_zasbisimltci, gs_zasbisimltci.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTIMALAT'.
      if sy-subrc eq 0.
        select * from zasbisimltci
           into table gt_zasbisimltci
                where langu eq gs_e_sip_vin_data-spras
                  and atnam eq gs_e_sip_karak-charact
                  and atwrt eq gs_e_sip_karak-ch_val
                  and zdrum eq 'A'.

        clear : gv_say_imalatci.
        describe table gt_zasbisimltci lines gv_say_imalatci.
        if gv_say_imalatci eq 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '489'.
          ls_return-message_v1 = gs_e_sip_vin_data-spras.
          ls_return-message_v2 = gs_e_sip_karak-charact.
          ls_return-message_v3 = gs_e_sip_karak-ch_val.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        elseif gv_say_imalatci eq 1.
          clear gs_zasbisimltci.
          read table gt_zasbisimltci into gs_zasbisimltci index 1.
          if sy-subrc eq 0.
            move-corresponding gs_zasbisimltci to gs_e_asbis_imalatci.
            move gs_e_sip_vin_data-vbeln to gs_e_asbis_imalatci-vbeln.
            move gs_e_sip_vin_data-posnr to gs_e_asbis_imalatci-posnr.

            append gs_e_asbis_imalatci to e_asbis_imalatci.
            clear gs_e_asbis_imalatci.
          endif.
        elseif gv_say_imalatci gt 1.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '490'.
          ls_return-message_v1 = gs_e_sip_vin_data-spras.
          ls_return-message_v2 = gs_e_sip_karak-charact.
          ls_return-message_v3 = gs_e_sip_karak-ch_val.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '491'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.

      clear nbr_say.
      loop at e_asbis_imalatci into gs_e_asbis_imalatci
                              where vbeln eq gs_e_sip_vin_data-vbeln
                                and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '492'.
        ls_return-message_v1 = gs_e_sip_vin_data-spras.
        ls_return-message_v2 = gs_e_sip_karak-charact.
        ls_return-message_v3 = gs_e_sip_karak-ch_val.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
**********************************************************************
* Jant Kodu - ZASBIS21
      clear : gs_e_sip_karak, gt_zasbisjant[],
              gv_say_jant, gt_zasbisjant, gs_zasbisjant.
      clear : gv_zkaynak.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTLE'.

      if sy-subrc eq 0.
* order ile bakılır
*        select * from zasbisjant
*                 into gs_zasbisjant
*                where atnam eq ' '
*                  and atwrt eq ' '
*                  and vbeln eq gs_e_sip_vin_data-vbeln
*                  and posnr eq gs_e_sip_vin_data-posnr
*                  and zdrum eq 'A'.
        select * from zasbisjant
                 into gs_zasbisjant
                where vbeln eq gs_e_sip_vin_data-vbeln
                  and posnr eq gs_e_sip_vin_data-posnr
                  and zdrum eq 'A'.
*          clear : gs_e_sip_bom.
*          read table gt_e_sip_bom into gs_e_sip_bom
*            with key vbeln = gs_e_sip_vin_data-vbeln
*                     posnr = gs_e_sip_vin_data-posnr
*                     matnr = gs_zasbisjant-matnr.
*          if sy-subrc eq 0.
          move-corresponding gs_zasbisjant to gs_e_asbis_jant.
          move gs_e_sip_vin_data-vbeln to gs_e_asbis_jant-vbeln.
          move gs_e_sip_vin_data-posnr to gs_e_asbis_jant-posnr.
          move 'ORDER' to gs_e_asbis_jant-zkaynak.

          append gs_e_asbis_jant to e_asbis_jant.
          clear gs_e_asbis_jant.
*          endif.
        endselect.

        clear nbr_say.
        describe table e_asbis_jant lines nbr_say.
        if nbr_say eq 0.
* oer
          if gs_e_sip_vin_data-zoer eq 'X'.
*            select * from zasbisjant
*                   into gs_zasbisjant
*                  where atnam eq ' '
*                    and atwrt eq ' '
*                    and vbeln eq gs_e_sip_vin_data-zvbeln
*                    and posnr eq gs_e_sip_vin_data-zposnr
*                    and zdrum eq 'A'.
            select * from zasbisjant
                   into gs_zasbisjant
                  where vbeln eq gs_e_sip_vin_data-zvbeln
                    and posnr eq gs_e_sip_vin_data-zposnr
                    and zdrum eq 'A'.
*              clear : gs_e_sip_bom.
*              read table gt_e_sip_bom into gs_e_sip_bom
*                with key vbeln = gs_e_sip_vin_data-vbeln
*                         posnr = gs_e_sip_vin_data-posnr
*                         matnr = gs_zasbisjant-matnr.
*              if sy-subrc eq 0.
              move-corresponding gs_zasbisjant to gs_e_asbis_jant.
              move gs_e_sip_vin_data-vbeln to gs_e_asbis_jant-vbeln.
              move gs_e_sip_vin_data-posnr to gs_e_asbis_jant-posnr.
              move 'OER' to gs_e_asbis_jant-zkaynak.

              append gs_e_asbis_jant to e_asbis_jant.
              clear gs_e_asbis_jant.
*              endif.
            endselect.
          endif.
* standart
          clear nbr_say.
          describe table e_asbis_jant lines nbr_say.
          if nbr_say eq 0.
            select * from zasbisjant
                     into gs_zasbisjant
                    where atnam eq gs_e_sip_karak-charact
                      and atwrt eq gs_e_sip_karak-ch_val
                      and vbeln eq ' '
                      and posnr eq ' '
                      and zdrum eq 'A'.

              clear : gs_e_sip_bom.
              read table gt_e_sip_bom into gs_e_sip_bom
                with key vbeln = gs_e_sip_vin_data-vbeln
                         posnr = gs_e_sip_vin_data-posnr
                         matnr = gs_zasbisjant-matnr.
              if sy-subrc eq 0.
                move-corresponding gs_zasbisjant to gs_e_asbis_jant.
                move gs_e_sip_vin_data-vbeln to gs_e_asbis_jant-vbeln.
                move gs_e_sip_vin_data-posnr to gs_e_asbis_jant-posnr.
                move 'STANDART' to gs_e_asbis_jant-zkaynak.

                append gs_e_asbis_jant to e_asbis_jant.
                clear gs_e_asbis_jant.
              endif.
            endselect.
          endif.
        endif.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '469'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.

      clear nbr_say.
      loop at e_asbis_jant into gs_e_asbis_jant
                          where vbeln eq gs_e_sip_vin_data-vbeln
                            and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '494'.
        ls_return-message_v1 = gs_e_sip_vin_data-spras.
        ls_return-message_v2 = gs_e_sip_vin_data-matnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      elseif nbr_say gt 1.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '495'.
        ls_return-message_v1 = gs_e_sip_vin_data-spras.
        ls_return-message_v2 = gs_e_sip_vin_data-matnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
**********************************************************************
* King Pin - ZASBIS22
      clear : gt_zasbiskingpin[], gv_say_kingpin, gt_zasbiskingpin,
              gs_zasbiskingpin.

      select * from zasbiskingpin
               into gs_zasbiskingpin
              where zdrum eq 'A'.

        clear : gs_e_sip_bom.
        read table gt_e_sip_bom into gs_e_sip_bom
          with key vbeln = gs_e_sip_vin_data-vbeln
                   posnr = gs_e_sip_vin_data-posnr
                   matnr = gs_zasbiskingpin-matnr.
        if sy-subrc eq 0.
          move-corresponding gs_zasbiskingpin to gs_e_asbis_kingpin.
          move gs_e_sip_vin_data-vbeln to gs_e_asbis_kingpin-vbeln.
          move gs_e_sip_vin_data-posnr to gs_e_asbis_kingpin-posnr.

          append gs_e_asbis_kingpin to e_asbis_kingpin.
          clear gs_e_asbis_kingpin.
        endif.
      endselect.

      clear nbr_say.
      loop at e_asbis_kingpin into gs_e_asbis_kingpin
                             where vbeln eq gs_e_sip_vin_data-vbeln
                               and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say > 1.
        sort e_asbis_kingpin ascending by zonce.
        read table e_asbis_kingpin into gs_e_asbis_kingpin_two index 1.
        loop at e_asbis_kingpin into gs_e_asbis_kingpin.
          gv_index_two = sy-tabix.
          if gs_e_asbis_kingpin_two-matnr ne gs_e_asbis_kingpin-matnr.
            delete e_asbis_kingpin index gv_index_two.
          endif.
        endloop.
      endif.

      clear nbr_say.
      loop at e_asbis_kingpin into gs_e_asbis_kingpin
                             where vbeln eq gs_e_sip_vin_data-vbeln
                               and posnr eq gs_e_sip_vin_data-posnr.
        add 1 to nbr_say.
      endloop.

      if nbr_say eq 0.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '505'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      elseif nbr_say gt 1.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'E'.
        ls_return-number = '506'.
        ls_return-message_v1 = gs_e_sip_vin_data-vbeln.
        ls_return-message_v2 = gs_e_sip_vin_data-posnr.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
**********************************************************************
**********************************************************************
* Min max * ZASBIS24
      clear : gs_e_asbis_minmax, gs_e_sip_karak, gv_minmaxvar,
              gt_zasbisminmax[], gt_zasbisminmax, gs_zasbisminmax,
              gv_say_minmax, gv_say_minmax_t, gs_e_sip_karak_x.
      clear : gv_zkaynak.

      read table e_sip_karak
            into gs_e_sip_karak
        with key vbeln = gs_e_sip_vin_data-vbeln
                 posnr = gs_e_sip_vin_data-posnr
                 charact = 'ZTPAKET'.

* oerder bazlı
      select * from zasbisminmax
         into table gt_zasbisminmax
              where matnr eq ' '
                and atnam eq ' '
                and atwrt eq ' '
                and vbeln eq gs_e_sip_vin_data-vbeln
                and posnr eq gs_e_sip_vin_data-posnr
                and zdrum eq 'A'.

      clear : gv_say_minmax.
      describe table gt_zasbisminmax lines gv_say_minmax.

      if gv_say_minmax gt 0.
        loop at gt_zasbisminmax into gs_zasbisminmax.
          move 'X' to gv_minmaxvar.

          move-corresponding gs_zasbisminmax to gs_e_asbis_minmax.
          move gs_e_sip_vin_data-vbeln to gs_e_asbis_minmax-vbeln.
          move gs_e_sip_vin_data-posnr to gs_e_asbis_minmax-posnr.
          move 'ORDER' to gs_e_asbis_minmax-zkaynak.

          append gs_e_asbis_minmax to e_asbis_minmax.
          clear gs_e_asbis_minmax.
        endloop.
      endif.
* oer bazlı
      clear : gv_say_minmax_t.
      describe table e_asbis_minmax lines gv_say_minmax_t.
      if gv_say_minmax_t eq 0.
        select * from zasbisminmax
           into table gt_zasbisminmax
                where matnr eq ' '
                  and atnam eq ' '
                  and atwrt eq ' '
                  and vbeln eq gs_e_sip_vin_data-zvbeln
                  and posnr eq gs_e_sip_vin_data-zposnr
                  and zdrum eq 'A'.

        clear : gv_say_minmax.
        describe table gt_zasbisminmax lines gv_say_minmax.

        if gv_say_minmax gt 0.
          loop at gt_zasbisminmax into gs_zasbisminmax.
            move 'X' to gv_minmaxvar.

            move-corresponding gs_zasbisminmax to gs_e_asbis_minmax.
            move gs_e_sip_vin_data-vbeln to gs_e_asbis_minmax-vbeln.
            move gs_e_sip_vin_data-posnr to gs_e_asbis_minmax-posnr.
            move 'OER' to gs_e_asbis_minmax-zkaynak.

            append gs_e_asbis_minmax to e_asbis_minmax.
            clear gs_e_asbis_minmax.
          endloop.
        endif.
      endif.
* standart
      clear : gv_say_minmax_t.
      describe table e_asbis_minmax lines gv_say_minmax_t.
      if gv_say_minmax_t eq 0.
        select * from zasbisminmax
           into table gt_zasbisminmax
                where atnam eq 'ZTPAKET'
                  and atwrt eq gs_e_sip_karak-ch_val
                  and zdrum eq 'A'.

        clear : gv_say_minmax.
        describe table gt_zasbisminmax lines gv_say_minmax.
        if gv_say_minmax gt 0.
          select * from zasbisminmax
             into table gt_zasbisminmax
                  where matnr eq gs_e_sip_vin_data-matnr
                    and atnam eq 'ZTPAKET'
                    and atwrt eq gs_e_sip_karak-ch_val
                    and vbeln eq ' '
                    and posnr eq ' '
                    and zdrum eq 'A'.

          clear : gv_say_minmax.
          describe table gt_zasbisminmax lines gv_say_minmax.

          if gv_say_minmax gt 0.
            loop at gt_zasbisminmax into gs_zasbisminmax.
              move 'X' to gv_minmaxvar.

              if gs_zasbisminmax-krkt1 ne space.
                clear : gs_e_sip_karak_x.
                read table e_sip_karak
                      into gs_e_sip_karak_x
                  with key vbeln = gs_e_sip_vin_data-vbeln
                           posnr = gs_e_sip_vin_data-posnr
                           charact = gs_zasbisminmax-krkt1
                           ch_val = gs_zasbisminmax-deger1.
                if sy-subrc ne 0.
                  clear gv_minmaxvar.
                endif.
              endif.

              if gs_zasbisminmax-krkt2 ne space.
                clear : gs_e_sip_karak_x.
                read table e_sip_karak
                      into gs_e_sip_karak_x
                  with key vbeln = gs_e_sip_vin_data-vbeln
                           posnr = gs_e_sip_vin_data-posnr
                           charact = gs_zasbisminmax-krkt2
                           ch_val = gs_zasbisminmax-deger2.
                if sy-subrc ne 0.
                  clear gv_minmaxvar.
                endif.
              endif.

              if gs_zasbisminmax-krkt3 ne space.
                clear : gs_e_sip_karak_x.
                read table e_sip_karak
                      into gs_e_sip_karak_x
                  with key vbeln = gs_e_sip_vin_data-vbeln
                           posnr = gs_e_sip_vin_data-posnr
                           charact = gs_zasbisminmax-krkt3
                           ch_val = gs_zasbisminmax-deger3.
                if sy-subrc ne 0.
                  clear gv_minmaxvar.
                endif.
              endif.

              if gs_zasbisminmax-krkt4 ne space.
                clear : gs_e_sip_karak_x.
                read table e_sip_karak
                      into gs_e_sip_karak_x
                  with key vbeln = gs_e_sip_vin_data-vbeln
                           posnr = gs_e_sip_vin_data-posnr
                           charact = gs_zasbisminmax-krkt4
                           ch_val = gs_zasbisminmax-deger4.
                if sy-subrc ne 0.
                  clear gv_minmaxvar.
                endif.
              endif.

              if gv_minmaxvar eq 'X'.
                move-corresponding gs_zasbisminmax to gs_e_asbis_minmax.
                move gs_e_sip_vin_data-vbeln to gs_e_asbis_minmax-vbeln.
                move gs_e_sip_vin_data-posnr to gs_e_asbis_minmax-posnr.
                move 'STANDART' to gs_e_asbis_minmax-zkaynak.

                append gs_e_asbis_minmax to e_asbis_minmax.
                clear gs_e_asbis_minmax.
              endif.
            endloop.
          endif.
        endif.

        clear : gv_say_minmax_t.
        describe table e_asbis_minmax lines gv_say_minmax_t.
        if gv_say_minmax_t gt 1.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'E'.
          ls_return-number = '634'.
          ls_return-message_v1 = gs_e_sip_vin_data-matnr.
          ls_return-message_v2 = gs_e_sip_karak-ch_val.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.

        if gv_say_minmax_t eq 0.
          clear ls_return.
          ls_return-id = 'ZSD'.
          ls_return-type = 'I'.
          ls_return-number = '633'.
          ls_return-message_v1 = gs_e_sip_vin_data-matnr.
          ls_return-message_v2 = gs_e_sip_karak-ch_val.
          ls_return-message_v3 = ' '.
          ls_return-message_v4 = ' '.

          call function 'MESSAGE_TEXT_BUILD'
            exporting
              msgid               = ls_return-id
              msgnr               = ls_return-number
              msgv1               = ls_return-message_v1
              msgv2               = ls_return-message_v2
              msgv3               = ls_return-message_v3
              msgv4               = ls_return-message_v4
            importing
              message_text_output = ls_return-message.

          append ls_return to e_return.
          move 'X' to gv_dvm.
        endif.
      else.
        clear ls_return.
        ls_return-id = 'ZSD'.
        ls_return-type = 'I'.
        ls_return-number = '635'.
        ls_return-message_v1 = gs_e_sip_vin_data-matnr.
        ls_return-message_v2 = gs_e_sip_karak-ch_val.
        ls_return-message_v3 = ' '.
        ls_return-message_v4 = ' '.

        call function 'MESSAGE_TEXT_BUILD'
          exporting
            msgid               = ls_return-id
            msgnr               = ls_return-number
            msgv1               = ls_return-message_v1
            msgv2               = ls_return-message_v2
            msgv3               = ls_return-message_v3
            msgv4               = ls_return-message_v4
          importing
            message_text_output = ls_return-message.

        append ls_return to e_return.
        move 'X' to gv_dvm.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
**********************************************************************
* Şablon * ZASBIS25
      clear : gs_e_asbis_sablon, gv_sablonvar,
              gt_zasbissablond[], gt_zasbissablond, gs_zasbissablond,
              gv_say_sablon, gv_say_sablon_t.
      clear : gv_zkaynak.

* oerder bazlı
      select * from zasbissablond
         into table gt_zasbissablond
              where vbeln eq gs_e_sip_vin_data-vbeln
                and posnr eq gs_e_sip_vin_data-posnr.

      clear : gv_say_sablon.
      describe table gt_zasbissablond lines gv_say_sablon.

      if gv_say_sablon gt 0.
        loop at gt_zasbissablond into gs_zasbissablond.
          move 'X' to gv_sablonvar.

          move-corresponding gs_zasbissablond to gs_e_asbis_sablon.
          move gs_e_sip_vin_data-vbeln to gs_e_asbis_sablon-vbeln.
          move gs_e_sip_vin_data-posnr to gs_e_asbis_sablon-posnr.
          move 'ORDER' to gs_e_asbis_sablon-zkaynak.

*          call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
*            exporting
*              input  = gs_e_asbis_sablon-zmindg
*            importing
*              output = gs_e_asbis_sablon-zmindg.
*
*          call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
*            exporting
*              input  = gs_e_asbis_sablon-zmaxdg
*            importing
*              output = gs_e_asbis_sablon-zmaxdg.

          append gs_e_asbis_sablon to e_asbis_sablon.
          clear gs_e_asbis_sablon.
        endloop.
      endif.
* oer bazlı
      clear : gv_say_sablon_t.
      describe table e_asbis_sablon lines gv_say_sablon_t.
      if gv_say_sablon_t eq 0.
        select * from zasbissablond
           into table gt_zasbissablond
                where vbeln eq gs_e_sip_vin_data-zvbeln
                  and posnr eq gs_e_sip_vin_data-zposnr.

        clear : gv_say_sablon.
        describe table gt_zasbissablond lines gv_say_sablon.

        if gv_say_sablon gt 0.
          loop at gt_zasbissablond into gs_zasbissablond.
            move 'X' to gv_sablonvar.

            move-corresponding gs_zasbissablond to gs_e_asbis_sablon.
            move gs_e_sip_vin_data-vbeln to gs_e_asbis_sablon-vbeln.
            move gs_e_sip_vin_data-posnr to gs_e_asbis_sablon-posnr.
            move 'OER' to gs_e_asbis_sablon-zkaynak.

*            call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
*              exporting
*                input  = gs_e_asbis_sablon-zmindg
*              importing
*                output = gs_e_asbis_sablon-zmindg.
*
*            call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
*              exporting
*                input  = gs_e_asbis_sablon-zmaxdg
*              importing
*                output = gs_e_asbis_sablon-zmaxdg.

            append gs_e_asbis_sablon to e_asbis_sablon.
            clear gs_e_asbis_sablon.
          endloop.
        endif.
      endif.
*      check gv_dvm eq ' '.
**********************************************************************
    endif.
  endloop.
endfunction.

 

No comment

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.