У меня похожая проблема. Бапишка работала, работала и бац, перестала условия вообще подставлять. 
Второй день играюсь с парамтерами, мыпаюсь при создании в заказ цену подставить, оно тупо игнорирует все условия.
Режим расчета стоял G.
В чем может быть проблема?
Ниже код фм, котрый при сохранении заказа должен создавать копию в другой БЕ.
Code:
*"----------------------------------------------------------------------
*"*"Функциональный модуль обновления:
*"
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(IS_VBAK) TYPE  VBAK
*"     VALUE(IT_VBAP) TYPE  VA_VBAPVB_T
*"     VALUE(IT_VBEP) TYPE  VA_VBEPVB_T
*"     VALUE(IT_VBPA) TYPE  VA_VBPAVB_T
*"     VALUE(IT_KOMV) TYPE  KOMV_TAB
*"     VALUE(I_VKORG) TYPE  VKORG DEFAULT '3100'
*"     VALUE(I_WERKS) TYPE  WERKS_D DEFAULT '3100'
*"     VALUE(I_COMMIT) TYPE  FLAG OPTIONAL
*"----------------------------------------------------------------------
  " Рабочие области входящих таблиц
  FIELD-SYMBOLS: <ls_vbap> LIKE LINE OF it_vbap,
                 <ls_vbep> LIKE LINE OF it_vbep,
                 <ls_vbpa> LIKE LINE OF it_vbpa,
                 <ls_komv> LIKE LINE OF it_komv.
  " Данные для создания нового документа
  DATA: ls_order_header_in      TYPE bapisdhd1,
        lt_order_items_in       TYPE TABLE OF bapisditm WITH HEADER LINE,
        lt_order_schedules_in   TYPE TABLE OF bapischdl WITH HEADER LINE,
        lt_order_partners       TYPE TABLE OF bapiparnr WITH HEADER LINE,
        lt_order_conditions_in  TYPE TABLE OF bapicond  WITH HEADER LINE,
        ls_logic_switch         TYPE bapisdls,
*        lt_return               TYPE bapiret2_t,
        lv_salesdocument        TYPE bapivbeln-vbeln.
  " Данные заголовка
  ls_order_header_in-doc_type   = is_vbak-auart.
  ls_order_header_in-sales_org  = i_vkorg.
  ls_order_header_in-distr_chan = is_vbak-vtweg.
  ls_order_header_in-division   = is_vbak-spart.
  " Берем валюту из новой БЕ
  SELECT SINGLE a~waers INTO ls_order_header_in-currency
    FROM t001 AS a INNER JOIN tvko AS b ON b~bukrs EQ a~bukrs
    WHERE vkorg EQ i_vkorg.
* NOTE: Присвоение ссылочного заказа на уровне заголовка вызывает дамп в случае запуска данного ФМ в момент создания ссылочного заказа.
  ls_order_header_in-ref_doc    = is_vbak-vbeln.
  ls_order_header_in-refdoc_cat = is_vbak-vbtyp.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
    EXPORTING
      input  = is_vbak-vbeln
    IMPORTING
      output = ls_order_header_in-purch_no_c.
  " Для каждой не отклоненной позиции...
  LOOP AT it_vbap ASSIGNING <ls_vbap> WHERE abgru IS INITIAL.
    " Данные позиции
    lt_order_items_in-itm_number = <ls_vbap>-posnr.
    lt_order_items_in-material   = <ls_vbap>-matnr.
    lt_order_items_in-plant      = i_werks.
    lt_order_items_in-ref_doc    = is_vbak-vbeln.
    lt_order_items_in-ref_doc_it = <ls_vbap>-posnr.
    lt_order_items_in-ref_doc_ca = is_vbak-vbtyp.
    APPEND lt_order_items_in.
    " Данные партии поставки
    LOOP AT it_vbep ASSIGNING <ls_vbep> WHERE posnr EQ <ls_vbap>-posnr.
      lt_order_schedules_in-itm_number = <ls_vbep>-posnr.
      lt_order_schedules_in-req_qty    = <ls_vbep>-wmeng.
      lt_order_schedules_in-sched_line = <ls_vbep>-etenr.
      APPEND lt_order_schedules_in.
    ENDLOOP.
    " Данные условий
    LOOP AT it_komv ASSIGNING <ls_komv> WHERE kposn EQ <ls_vbap>-posnr AND kschl IS NOT INITIAL AND kbetr IS NOT INITIAL.
      CLEAR lt_order_conditions_in.
      lt_order_conditions_in-itm_number = <ls_komv>-kposn.
      lt_order_conditions_in-cond_st_no = <ls_komv>-stunr.
      lt_order_conditions_in-cond_count = <ls_komv>-zaehk.
      lt_order_conditions_in-cond_type  = <ls_komv>-kschl.
      IF <ls_komv>-krech EQ 'A'. " Для процентных условий делим значение на 10
        lt_order_conditions_in-cond_value  = <ls_komv>-kbetr / 10.
      ELSE.
        lt_order_conditions_in-cond_value  = <ls_komv>-kbetr.
      ENDIF.
      IF <ls_komv>-waers EQ is_vbak-waerk. " Для позиций в валюте заказа меняем валюту на новую
        lt_order_conditions_in-currency    = ls_order_header_in-currency.
      ELSE.
        lt_order_conditions_in-currency  = <ls_komv>-waers.
      ENDIF.
      lt_order_conditions_in-cond_unit   = <ls_komv>-kmein.
      lt_order_conditions_in-cond_p_unt  = <ls_komv>-kpein.
      APPEND lt_order_conditions_in.
    ENDLOOP.
  ENDLOOP.
*  " Данные партнеров
  LOOP AT it_vbpa ASSIGNING <ls_vbpa> WHERE posnr EQ '000000'.
    lt_order_partners-partn_role = <ls_vbpa>-parvw.
    CASE <ls_vbpa>-nrart.
      WHEN 'KU'. lt_order_partners-partn_numb = <ls_vbpa>-kunnr.
      WHEN 'LI'. lt_order_partners-partn_numb = <ls_vbpa>-lifnr.
      WHEN 'PE'. lt_order_partners-partn_numb = <ls_vbpa>-pernr.
      WHEN OTHERS.
        CONTINUE.
    ENDCASE.
    APPEND lt_order_partners.
  ENDLOOP.
  " Логика расчета цены
  ls_logic_switch-pricing = 'G'. " Копирование компонентов цен без изм., расчет налогов заново
  " Создаем новый заказ
  CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
    EXPORTING
      order_header_in     = ls_order_header_in
      logic_switch        = ls_logic_switch
    IMPORTING
      salesdocument       = lv_salesdocument
    TABLES
*      return              = lt_return
      order_items_in      = lt_order_items_in
      order_partners      = lt_order_partners
      order_schedules_in  = lt_order_schedules_in
      order_conditions_in = lt_order_conditions_in.
*  LOOP AT lt_return INTO ls_return.
*    WRITE:/ ls_return-type,
*            ls_return-id,
*            ls_return-number,
*            ls_return-message.
*  ENDLOOP.
  IF i_commit IS NOT INITIAL.
    IF lv_salesdocument IS NOT INITIAL.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    ENDIF.
  ENDIF.