Последние сообщения

Страницы: 1 ... 3 4 [5] 6 7 ... 10
41
You are not allowed to view links. Register or Login
По быстрому поковырялся с возможностями добавления своих кнопок, похоже, что такой возможности нет, так как объект в качестве имени функции принимает предопределенный набор констант, хотя возможно я не нашел необходимого метода.
Был не прав, есть такая возможность причем она совмещена с возомжностью вывода и стандартных кнопок
Код: You are not allowed to view links. Register or Login
gc_alv_table->set_screen_status(
    pfstatus      = '0100'
    report        =  sy-repid
    set_functions = gc_alv_table->c_functions_all ).
в общем указываем свой PF-статус и говорим что надо добавить еще и стандартных кнопок к нему.
42
You are not allowed to view links. Register or Login
Вы правы Олег. BAPi работает как часы.
Отлично, я вспоминаю, что кажется когда тоже имел проблемы именно с услугами и пришлось там чуть поковыряться пока создался документ, но давно было дело.
43
You are not allowed to view links. Register or Login
Где-то ты с нумерацией позиций нахомутал, я сомтрю что у тебя вторая позиция а там номер позиции 00000000001, потом где-то serno_line = '01'. для второй позиции а где-то serno_line = '02', для той же второй позиции. Короче внимательно пройдись по коду. Этот бапи работает как часы и точно проблема не в нем, а втом что ты ему передаешь :-)
Вы правы Олег. BAPi работает как часы. Вроде бы разобрался. Вот пример работающего кода с  позициями, т.е. сколько PR-ок столько и позиций в заказе на услуги. В каждой позиции по одной услуге с нужной контировкой. Может кому - нибудь пригодится.
Код: You are not allowed to view links. Register or Login
**********************Заголовок заказа*********************************
  head-comp_code = '123'.
  head-doc_type  = 'SRV'.
  head-creat_date = sy-datum.
  head-created_by = sy-uname.
  head-langu    = sy-langu.
  head-purch_org  = ttab-ekorg.
  head-pur_group  = ttab-ekgrp.
  head-currency   = ttab-waers.
  head-exch_rate  = '1.00000'.
  head-doc_date   = sy-datum.
  head-status = 'I'.

  headx-comp_code = 'X'.
  headx-doc_type  = 'X'.
  headx-creat_date = 'X'.
  headx-created_by = 'X'.
  headx-langu = 'X'.
  headx-purch_org  = 'X'.
  headx-pur_group  = 'X'.
  headx-currency   = 'X'.
  headx-exch_rate  = 'X'.
  headx-doc_date   = 'X'.
  headx-vendor = 'X'.
  headx-status = 'X'.
***********************Заголовок заказа********************************

  LOOP AT ttab.
***********************Заголовок позиции заказа************************
    po_item   = po_item   + 10.
    IF sy-tabix = 1.
      pckg_no   = pckg_no + 1.
      line_no   = line_no + 1.
      pln_line  = pln_line + 2.
    ELSE.
      pckg_no   = pckg_no + 2.
      line_no   = line_no + 2.
      pln_line  = pln_line + 1.
    ENDIF.
    pckg_no1   = pckg_no1 + 2.
    line_no1   = line_no1 + 2.

    wa_item-po_item    = po_item.
    wa_item-short_text = ttab-ktext1.
    wa_item-plant      = ttab-werks.
    wa_item-matl_group = ttab-matkl.
    wa_item-quantity   = '1'.
    wa_item-net_price  = '0'.
    wa_item-price_unit = '0'.
    wa_item-item_cat   = '9'. Тип позиции D
    wa_item-acctasscat = '6'.
    wa_item-gr_ind     = 'X'.
    wa_item-gr_non_val = 'X'.
    wa_item-preq_no    = ttab-banfn.
    wa_item-preq_item  = '00010'.
    wa_item-pckg_no    = pckg_no.
    APPEND wa_item TO item.
    CLEAR wa_item.

    wa_itemx-po_item    = po_item.
    wa_itemx-po_itemx   = 'X'.
    wa_itemx-short_text = 'X'.
    wa_itemx-plant      = 'X'.
    wa_itemx-matl_group = 'X'.
    wa_itemx-quantity   = 'X'.
    wa_itemx-net_price  = 'X'.
    wa_itemx-price_unit = 'X'.
    wa_itemx-item_cat   = 'X'.
    wa_itemx-acctasscat = 'X'.
    wa_itemx-gr_ind     = 'X'.
    wa_itemx-gr_non_val = 'X'.
    wa_itemx-preq_no    = 'X'.
    wa_itemx-preq_item  = 'X'.
    wa_itemx-pckg_no    = 'X'.
    APPEND wa_itemx TO itemx.
    CLEAR wa_itemx.
***********************Заголовок позиции заказа************************
***********************Контировка позиции заказа***********************
    wa_acct-po_item    = po_item.
    wa_acct-serial_no  = '01'.
    wa_acct-gl_account = ttab-kstar.
    wa_acct-co_area    = '3000'.
    wa_acct-costcenter = ttab-kostl.
    wa_acct-orderid    = ttab-aufnr.
    APPEND wa_acct TO acct.
    CLEAR wa_acct.

    wa_acctx-po_item    = po_item.
    wa_acctx-serial_no  = '01'.
    wa_acctx-gl_account = 'X'.
    wa_acctx-co_area    = 'X'.
    wa_acctx-costcenter = 'X'.
    wa_acctx-orderid    = 'X'.
    APPEND wa_acctx TO acctx.
    CLEAR wa_acctx.
***********************Контировка позиции заказа***********************
***********************Услуга позиции заказа***************************

    wa_esllc-pckg_no    = pckg_no.
    wa_esllc-line_no    = line_no.
    wa_esllc-ext_line   = '0000000000'.
    wa_esllc-outl_level = '000'.
    wa_esllc-outl_ind   = 'X'.
    wa_esllc-subpckg_no = wa_esllc-pckg_no + 1.
    wa_esllc-price_unit = '0'.
    wa_esllc-from_line  = '000001'.
*    wa_esllc-short_text = 'Alarm System Installation'.
    APPEND wa_esllc TO esllc.
    CLEAR wa_esllc.

    wa_esllc-pckg_no    = pckg_no1.
    wa_esllc-line_no    = line_no1.
    wa_esllc-ext_line   = '0000000010'.
    wa_esllc-outl_level = '0'.
    wa_esllc-quantity   = ttab-menge.
    wa_esllc-price_unit = '1'.
    wa_esllc-base_uom   = ttab-meins.
    wa_esllc-gr_price   = ttab-brtwr.
*    wa_esllc-short_text = 'Alarm System Installation'.
    wa_esllc-pln_pckg   = ttab-sub_packno.
    wa_esllc-pln_line   = '0000000002'.
    wa_esllc-service  = ttab-srvpos.
    wa_esllc-matl_group = ttab-matkl.
    APPEND wa_esllc TO esllc.
    CLEAR  wa_esllc.

    wa_esklc-pckg_no = pckg_no1.
    wa_esklc-line_no = line_no1.
    wa_esklc-serno_line = '01'.
    wa_esklc-percentage = '100'.
    wa_esklc-serial_no = '01'.
    APPEND wa_esklc TO  esklc.
    CLEAR wa_esklc.
***********************Услуга позиции заказа***************************
  ENDLOOP.

***********************Z-поля в заголовке заказа***********************
  is_extension-zz_agrnum  = ttab-angnr.
  is_extension-zz_agrnumd = ttab-ihran.
  lt_ext-structure  = 'BAPI_TE_MEPOHEADER'.
  lt_ext-valuepart1 = is_extension.
  APPEND lt_ext.

  is_extensionx-zz_agrnum  = 'X'.
  is_extensionx-zz_agrnumd = 'X'.
  lt_ext-structure  = 'BAPI_TE_MEPOHEADERX'.
  lt_ext-valuepart1 = is_extensionx.
  APPEND lt_ext.
***********************Z-поля в заголовке заказа***********************

  CALL FUNCTION 'BAPI_PO_CREATE1'
    EXPORTING
      poheader          = head
      poheaderx         = headx
*     TESTRUN           =
    IMPORTING
      exppurchaseorder  = exppurchaseorder
*     EXPHEADER         =
*     EXPPOEXPIMPHEADER =
    TABLES
      return            = return
      poitem            = item
      poitemx           = itemx
      poaccount         = acct
      poaccountx        = acctx
      poservices        = esllc
      posrvaccessvalues = esklc
      extensionin       = lt_ext.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
44
You are not allowed to view links. Register or Login
Добрый день.

Нужно создать пакетник по созданию заказа на услуги с nn-ым количеством позиций. У всех позиций разные контировки. Начитавшись в инете разной инфы, получилось создать заказ на услуги c одной позицией с помощью BAPI BAPI_PO_CREATE1 с типом позиции D и с контировкой куда копируется счёт, мвз и заказ. Пытаюсь создать с двумя позициями, программа создаёт вторую позицию, но контировку тянет из первой позиции. Кто - нибудь что то похожее делал? Ни как не могу понять в чём именно проблема? Вот код присвоения начиная с создания позиции.
Код: You are not allowed to view links. Register or Login
*********************Первая позиция********************************
wa_item-po_item = '00010'.
wa_item-short_text = 'Alarm System Installation'.
wa_item-plant = '8000'.
wa_item-matl_group = '86'.
wa_item-quantity   = '2'.
wa_item-net_price = '0'.
wa_item-price_unit = '0'.
wa_item-item_cat = '9'.
wa_item-acctasscat = '6'.
wa_item-gr_ind = 'X'.
wa_item-gr_non_val = 'X'.
wa_item-preq_no = '0020114422'.
wa_item-preq_item = '00010'.
wa_item-pckg_no =  '0000000001'.
APPEND wa_item TO item.
CLEAR wa_item.

wa_itemx-po_item = '00010'.
wa_itemx-po_itemx = 'X'.
wa_itemx-short_text = 'X'.
wa_itemx-plant = 'X'.
wa_itemx-matl_group = 'X'.
wa_itemx-quantity = 'X'.
wa_itemx-net_price = 'X'.
wa_itemx-price_unit = 0.
wa_itemx-item_cat = 'X'.
wa_itemx-acctasscat = 'X'.
wa_itemx-gr_ind = 'X'.
wa_itemx-gr_non_val = 'X'.
wa_itemx-preq_no = 'X'.
wa_itemx-preq_item = 'X'.
wa_itemx-pckg_no = 'X'.
APPEND wa_itemx TO itemx.
CLEAR wa_itemx.
***********************Конец первой позиции****************************
***********************Вторая позиция**********************************
wa_item-po_item = '00020'.
wa_item-short_text = 'Alarm System Installation2'.
wa_item-plant = '8000'.
wa_item-matl_group = '86'.
wa_item-quantity   = '2'.
wa_item-net_price = '0'.
wa_item-price_unit = '0'.
wa_item-item_cat = '9'.
wa_item-acctasscat = '6'.
wa_item-gr_ind = 'X'.
wa_item-gr_non_val = 'X'.
wa_item-preq_no = '0020114423'.
wa_item-preq_item = '00010'.
wa_item-pckg_no =  '0000000001'.
append wa_item to item.
clear wa_item.

wa_itemx-po_item = '00020'.
wa_itemx-po_itemx = 'X'.
wa_itemx-short_text = 'X'.
wa_itemx-plant = 'X'.
wa_itemx-matl_group = 'X'.
wa_itemx-quantity = 'X'.
wa_itemx-net_price = 'X'.
wa_itemx-price_unit = 0.
wa_itemx-item_cat = 'X'.
wa_itemx-acctasscat = 'X'.
wa_itemx-gr_ind = 'X'.
wa_itemx-gr_non_val = 'X'.
wa_itemx-preq_no = 'X'.
wa_itemx-preq_item = 'X'.
wa_itemx-pckg_no = 'X'.
append wa_itemx to itemx.
clear wa_itemx.
********************Конец второй позиции**************************
********************Начало первой позиции*************************
wa_acct-po_item = '00010'.
wa_acct-serial_no = '01'.
wa_acct-quantity = '1'.
wa_acct-distr_perc = '0'.
wa_acct-net_value  = '2000'.
wa_acct-gl_account = '8019.4885'.
wa_acct-co_area    = '2000'.
wa_acct-costcenter = '80-102'.
wa_acct-orderid   = '009010055021'.
wa_acct-activity  = '0010'.
APPEND wa_acct TO acct.
CLEAR wa_acct.

wa_acctx-po_item = '00010'.
wa_acctx-serial_no = '01'.
wa_acctx-gl_account = 'X'.
wa_acctx-co_area    = 'X'.
wa_acctx-costcenter = 'X'.
wa_acctx-orderid   = 'X'.
wa_acctx-activity  = 'X'.
APPEND wa_acctx TO acctx.
CLEAR wa_acctx.
********************Конец первой позиции**************************
********************Начало второй позиции*************************
wa_acct-po_item = '00020'.
wa_acct-serial_no = '02'.
wa_acct-quantity = '1'.
wa_acct-distr_perc = '0'.
wa_acct-net_value  = '2000'.
wa_acct-gl_account = '8019.4885'.
wa_acct-co_area    = '2000'.
wa_acct-costcenter = '80-101'.
wa_acct-orderid   = '009010055042'.
wa_acct-activity  = '0020'.
append wa_acct to acct.
clear wa_acct.

wa_acctx-po_item = '00020'.
wa_acctx-serial_no = '02'.
wa_acctx-gl_account = 'X'.
wa_acctx-co_area    = 'X'.
wa_acctx-costcenter = 'X'.
wa_acctx-orderid   = 'X'.
wa_acctx-activity  = 'X'.
append wa_acctx to acctx.
clear wa_acctx.
*******************Конец второй позиции****************************
*******************Начало первой позиции***************************
wa_esllc-pckg_no = '0000000001'.
wa_esllc-line_no = '0000000001'.
wa_esllc-EXT_LINE = '0'.
wa_esllc-outl_level = '0'.
wa_esllc-outl_ind   = 'X'.
wa_esllc-subpckg_no = wa_esllc-pckg_no + 1. "Child Package No
wa_esllc-price_unit = '0'.
wa_esllc-from_line = '1'.
wa_esllc-short_text = 'Alarm System Installation'.
APPEND wa_esllc TO esllc.
CLEAR wa_esllc.

wa_esllc-pckg_no = '0000000002'.
wa_esllc-line_no = '0000000002'.
wa_esllc-ext_line = '0000000010'.
wa_esllc-outl_level = '0'.
wa_esllc-quantity   = '2'.
wa_esllc-price_unit = '1'.
wa_esllc-base_uom = 'WK'.
wa_esllc-gr_price = '2000'.
wa_esllc-short_text = 'Alarm System Installation'.
wa_esllc-pln_pckg = '0000692650'.
wa_esllc-pln_line = '0000000002'.
wa_esllc-service  = '000000000001000022'.
wa_esllc-matl_group = '86'.
APPEND wa_esllc TO esllc.
CLEAR  wa_esllc.

wa_esklc-pckg_no = '0000000002'.
wa_esklc-line_no = '0000000002'.
wa_esklc-serno_line = '01'.
wa_esklc-percentage = '100'.
wa_esklc-serial_no = '01'.
APPEND wa_esklc TO  esklc.
CLEAR wa_esklc.
***********************Конец первой позиции***********************************
***********************Начало второй позиции**********************************
wa_esllc-pckg_no = '0000000001'.
wa_esllc-line_no = '0000000001'.
wa_esllc-EXT_LINE = '0'.
wa_esllc-outl_level = '0'.
wa_esllc-outl_ind   = 'X'.
wa_esllc-subpckg_no = wa_esllc-pckg_no + 1. "Child Package No
wa_esllc-price_unit = '0'.
wa_esllc-from_line = '1'.
wa_esllc-short_text = 'Alarm System Installation'.
append wa_esllc to esllc.
clear wa_esllc.

wa_esllc-pckg_no = '0000000002'.
wa_esllc-line_no = '0000000002'.
wa_esllc-ext_line = '0000000010'.
wa_esllc-outl_level = '0'.
wa_esllc-quantity   = '2'.
wa_esllc-price_unit = '1'.
wa_esllc-base_uom = 'WK'.
wa_esllc-gr_price = '2000'.
wa_esllc-short_text = 'Alarm System Installation'.
wa_esllc-pln_pckg = '0000692658'.
wa_esllc-pln_line = '0000000002'.
wa_esllc-service  = '000000000001000022'.
wa_esllc-matl_group = '86'.
append wa_esllc to esllc.
clear  wa_esllc.

wa_esklc-pckg_no = '0000000002'.
wa_esklc-line_no = '0000000002'.
wa_esklc-serno_line = '01'.
wa_esklc-percentage = '100'.
wa_esklc-serial_no = '01'.
append wa_esklc to  esklc.
clear wa_esklc.
***********************Конец второй позиции*******************************
Где-то ты с нумерацией позиций нахомутал, я сомтрю что у тебя вторая позиция а там номер позиции 00000000001, потом где-то serno_line = '01'. для второй позиции а где-то serno_line = '02', для той же второй позиции. Короче внимательно пройдись по коду. Этот бапи работает как часы и точно проблема не в нем, а втом что ты ему передаешь :-)
45
Добрый день.

Нужно создать пакетник по созданию заказа на услуги с nn-ым количеством позиций. У всех позиций разные контировки. Начитавшись в инете разной инфы, получилось создать заказ на услуги c одной позицией с помощью BAPI BAPI_PO_CREATE1 с типом позиции D и с контировкой куда копируется счёт, мвз и заказ. Пытаюсь создать с двумя позициями, программа создаёт вторую позицию, но контировку тянет из первой позиции. Кто - нибудь что то похожее делал? Ни как не могу понять в чём именно проблема? Вот код присвоения начиная с создания позиции.
Код: You are not allowed to view links. Register or Login
*********************Первая позиция********************************
wa_item-po_item = '00010'.
wa_item-short_text = 'Alarm System Installation'.
wa_item-plant = '8000'.
wa_item-matl_group = '86'.
wa_item-quantity   = '2'.
wa_item-net_price = '0'.
wa_item-price_unit = '0'.
wa_item-item_cat = '9'.
wa_item-acctasscat = '6'.
wa_item-gr_ind = 'X'.
wa_item-gr_non_val = 'X'.
wa_item-preq_no = '0020114422'.
wa_item-preq_item = '00010'.
wa_item-pckg_no =  '0000000001'.
APPEND wa_item TO item.
CLEAR wa_item.

wa_itemx-po_item = '00010'.
wa_itemx-po_itemx = 'X'.
wa_itemx-short_text = 'X'.
wa_itemx-plant = 'X'.
wa_itemx-matl_group = 'X'.
wa_itemx-quantity = 'X'.
wa_itemx-net_price = 'X'.
wa_itemx-price_unit = 0.
wa_itemx-item_cat = 'X'.
wa_itemx-acctasscat = 'X'.
wa_itemx-gr_ind = 'X'.
wa_itemx-gr_non_val = 'X'.
wa_itemx-preq_no = 'X'.
wa_itemx-preq_item = 'X'.
wa_itemx-pckg_no = 'X'.
APPEND wa_itemx TO itemx.
CLEAR wa_itemx.
***********************Конец первой позиции****************************
***********************Вторая позиция**********************************
wa_item-po_item = '00020'.
wa_item-short_text = 'Alarm System Installation2'.
wa_item-plant = '8000'.
wa_item-matl_group = '86'.
wa_item-quantity   = '2'.
wa_item-net_price = '0'.
wa_item-price_unit = '0'.
wa_item-item_cat = '9'.
wa_item-acctasscat = '6'.
wa_item-gr_ind = 'X'.
wa_item-gr_non_val = 'X'.
wa_item-preq_no = '0020114423'.
wa_item-preq_item = '00010'.
wa_item-pckg_no =  '0000000001'.
append wa_item to item.
clear wa_item.

wa_itemx-po_item = '00020'.
wa_itemx-po_itemx = 'X'.
wa_itemx-short_text = 'X'.
wa_itemx-plant = 'X'.
wa_itemx-matl_group = 'X'.
wa_itemx-quantity = 'X'.
wa_itemx-net_price = 'X'.
wa_itemx-price_unit = 0.
wa_itemx-item_cat = 'X'.
wa_itemx-acctasscat = 'X'.
wa_itemx-gr_ind = 'X'.
wa_itemx-gr_non_val = 'X'.
wa_itemx-preq_no = 'X'.
wa_itemx-preq_item = 'X'.
wa_itemx-pckg_no = 'X'.
append wa_itemx to itemx.
clear wa_itemx.
********************Конец второй позиции**************************
********************Начало первой позиции*************************
wa_acct-po_item = '00010'.
wa_acct-serial_no = '01'.
wa_acct-quantity = '1'.
wa_acct-distr_perc = '0'.
wa_acct-net_value  = '2000'.
wa_acct-gl_account = '8019.4885'.
wa_acct-co_area    = '2000'.
wa_acct-costcenter = '80-102'.
wa_acct-orderid   = '009010055021'.
wa_acct-activity  = '0010'.
APPEND wa_acct TO acct.
CLEAR wa_acct.

wa_acctx-po_item = '00010'.
wa_acctx-serial_no = '01'.
wa_acctx-gl_account = 'X'.
wa_acctx-co_area    = 'X'.
wa_acctx-costcenter = 'X'.
wa_acctx-orderid   = 'X'.
wa_acctx-activity  = 'X'.
APPEND wa_acctx TO acctx.
CLEAR wa_acctx.
********************Конец первой позиции**************************
********************Начало второй позиции*************************
wa_acct-po_item = '00020'.
wa_acct-serial_no = '02'.
wa_acct-quantity = '1'.
wa_acct-distr_perc = '0'.
wa_acct-net_value  = '2000'.
wa_acct-gl_account = '8019.4885'.
wa_acct-co_area    = '2000'.
wa_acct-costcenter = '80-101'.
wa_acct-orderid   = '009010055042'.
wa_acct-activity  = '0020'.
append wa_acct to acct.
clear wa_acct.

wa_acctx-po_item = '00020'.
wa_acctx-serial_no = '02'.
wa_acctx-gl_account = 'X'.
wa_acctx-co_area    = 'X'.
wa_acctx-costcenter = 'X'.
wa_acctx-orderid   = 'X'.
wa_acctx-activity  = 'X'.
append wa_acctx to acctx.
clear wa_acctx.
*******************Конец второй позиции****************************
*******************Начало первой позиции***************************
wa_esllc-pckg_no = '0000000001'.
wa_esllc-line_no = '0000000001'.
wa_esllc-EXT_LINE = '0'.
wa_esllc-outl_level = '0'.
wa_esllc-outl_ind   = 'X'.
wa_esllc-subpckg_no = wa_esllc-pckg_no + 1. "Child Package No
wa_esllc-price_unit = '0'.
wa_esllc-from_line = '1'.
wa_esllc-short_text = 'Alarm System Installation'.
APPEND wa_esllc TO esllc.
CLEAR wa_esllc.

wa_esllc-pckg_no = '0000000002'.
wa_esllc-line_no = '0000000002'.
wa_esllc-ext_line = '0000000010'.
wa_esllc-outl_level = '0'.
wa_esllc-quantity   = '2'.
wa_esllc-price_unit = '1'.
wa_esllc-base_uom = 'WK'.
wa_esllc-gr_price = '2000'.
wa_esllc-short_text = 'Alarm System Installation'.
wa_esllc-pln_pckg = '0000692650'.
wa_esllc-pln_line = '0000000002'.
wa_esllc-service  = '000000000001000022'.
wa_esllc-matl_group = '86'.
APPEND wa_esllc TO esllc.
CLEAR  wa_esllc.

wa_esklc-pckg_no = '0000000002'.
wa_esklc-line_no = '0000000002'.
wa_esklc-serno_line = '01'.
wa_esklc-percentage = '100'.
wa_esklc-serial_no = '01'.
APPEND wa_esklc TO  esklc.
CLEAR wa_esklc.
***********************Конец первой позиции***********************************
***********************Начало второй позиции**********************************
wa_esllc-pckg_no = '0000000001'.
wa_esllc-line_no = '0000000001'.
wa_esllc-EXT_LINE = '0'.
wa_esllc-outl_level = '0'.
wa_esllc-outl_ind   = 'X'.
wa_esllc-subpckg_no = wa_esllc-pckg_no + 1. "Child Package No
wa_esllc-price_unit = '0'.
wa_esllc-from_line = '1'.
wa_esllc-short_text = 'Alarm System Installation'.
append wa_esllc to esllc.
clear wa_esllc.

wa_esllc-pckg_no = '0000000002'.
wa_esllc-line_no = '0000000002'.
wa_esllc-ext_line = '0000000010'.
wa_esllc-outl_level = '0'.
wa_esllc-quantity   = '2'.
wa_esllc-price_unit = '1'.
wa_esllc-base_uom = 'WK'.
wa_esllc-gr_price = '2000'.
wa_esllc-short_text = 'Alarm System Installation'.
wa_esllc-pln_pckg = '0000692658'.
wa_esllc-pln_line = '0000000002'.
wa_esllc-service  = '000000000001000022'.
wa_esllc-matl_group = '86'.
append wa_esllc to esllc.
clear  wa_esllc.

wa_esklc-pckg_no = '0000000002'.
wa_esklc-line_no = '0000000002'.
wa_esklc-serno_line = '01'.
wa_esklc-percentage = '100'.
wa_esklc-serial_no = '01'.
append wa_esklc to  esklc.
clear wa_esklc.
***********************Конец второй позиции*******************************
46
Подогнали пример работы с бизнес-партнером, еслни нужно вызвать транзакцию «BP» с определенной балансовой единицей, как это сделать? Чтобы решить вопрос, нужно использовать класс CL_BUPA_DIALOG_JOEL и его метод START_WITH_NAVIGATION. Ниже приведен код, как это сделать.
Код: You are not allowed to view links. Register or Login
CONSTANTS:
  gc_activity_create  TYPE bu_aktyp VALUE '01',
  gc_activity_change  TYPE bu_aktyp VALUE '02',
  gc_activity_display TYPE bu_aktyp VALUE '03'.

PARAMETERS: p_bp TYPE bu_partner.
PARAMETERS: p_cc TYPE bukrs.

START-OF-SELECTION.
  PERFORM open_bp USING p_bp p_cc gc_activity_change.

FORM open_bp
  USING
    iv_bp TYPE bu_partner
    iv_cc TYPE bukrs
    iv_activity TYPE bu_aktyp.

  DATA:
    ls_role TYPE bus_roles.

  " need to set it as a parameter
  " so that it's read in the Company Code subscreen
  SET PARAMETER ID 'BUK' FIELD iv_cc.

  " create new request
  DATA(lo_request) = NEW cl_bupa_navigation_request( ).
  " open request with selected partner number
  lo_request->set_partner_number( iv_bp ).
  " set the activity you want the user to start the maintenance with
  lo_request->set_bupa_activity( iv_activity ). " 01 - Create, 02 - Change, 03 - Display

  " change the role of the BP to the desired one
  " together with the sub header id
  ls_role-role = 'FS0000'.
  lo_request->set_bupa_partner_role( ls_role ).
  lo_request->set_bupa_sub_header_id( 'FS0001' ).

  " display general data by default
  lo_request->set_maintenance_id( 'B' ). " B - Partner

  " set start-up options
  DATA(lo_options) = NEW cl_bupa_dialog_joel_options( ).
  " start the transaction with an invisible locator
  lo_options->set_locator_visible( space ).

  " open New BDT Instance for display of selected partner
  CALL METHOD cl_bupa_dialog_joel=>start_with_navigation
    EXPORTING
      iv_request              = lo_request
      iv_options              = lo_options
      iv_in_new_internal_mode = abap_true
    EXCEPTIONS
      already_started         = 1
      not_allowed             = 2
      OTHERS                  = 3.
ENDFORM.

Оригинал примера взят отсюда: You are not allowed to view links. Register or Login
47
You are not allowed to view links. Register or Login
Код: You are not allowed to view links. Register or Login
1 E CNIF_PI 007 Объект Сетевой график OP307701 создать было невозможно 000000 Сетевой график OP307701
2 E CNIF_PI 044 Сетевой график/заказ с номеромомер OP3070 уже существует 000000 OP3070
Поставль точку останова в модуле function cn2002_net_create_prepare . и посмотри на что оно ругается и что не так заполняется.
48
You are not allowed to view links. Register or Login

А вообще можешь код ошибки прислать.. текст конечно круто, но по тексту что-то искать нет смысла :-)
Здрасте Олег. Спасибо за наводку. Буду смотреть дальше. Текст ошибки вот

Код: You are not allowed to view links. Register or Login
1 E CNIF_PI 007 Объект Сетевой график OP307701 создать было невозможно 000000 Сетевой график OP307701
2 E CNIF_PI 044 Сетевой график/заказ с номеромомер OP3070 уже существует 000000 OP3070

49
You are not allowed to view links. Register or Login
Безрезультатно. Это как то связано с нумерацией сетевых графиков, но как это обойти?
Привет, а там смотри набор ФМ-ов есть может надо какие-то функции инициализации дергать перед вызовом создания?

Еще например есть такой ФМ CN2002_NETW_INIT - Сбросить таблицу карты сети.

А вообще можешь код ошибки прислать.. текст конечно круто, но по тексту что-то искать нет смысла :-)
50
Добрый день Всем.

Есть надобность в пакетнике сетевых графиков. Нашёл такой ФМ BAPI_BUS2002_CREATE. Вроде как позволяет создавать заголовки сетевых графиков. Мне в общем то достаточно. Создал Проект и СПП элемент к нему. Далее программно пытаюсь создать сетевой график.
Код: You are not allowed to view links. Register or Login
data:
  it_bapi_bus2002_new type standard table of bapi_bus2002_new,
  wa_bapi_bus2002_new type bapi_bus2002_new,

  it_bapiret2         type standard table of bapiret2,
  wa_bapiret2         type bapiret2.

clear : wa_bapi_bus2002_new.
wa_bapi_bus2002_new-project_definition = 'OP23070'.       
wa_bapi_bus2002_new-wbs_element        = 'OP230701'.       
wa_bapi_bus2002_new-short_text         = 'Сетевой график OP230701'.     
wa_bapi_bus2002_new-network_type       = 'PS07'.
wa_bapi_bus2002_new-plant              = '3000'.      "
wa_bapi_bus2002_new-mrp_controller     = '100'.

call function 'BAPI_PS_INITIALIZATION'.



call function 'BAPI_BUS2002_CREATE'
  exporting
    i_network = wa_bapi_bus2002_new
  tables
    et_return = it_bapiret2.

loop at it_bapiret2 into wa_bapiret2 where type ca 'AE'.


  message id wa_bapiret2-id type wa_bapiret2-type number wa_bapiret2-number
  into wa_bapiret2-message
  with wa_bapiret2-message_v1 wa_bapiret2-message_v2
  wa_bapiret2-message_v3 wa_bapiret2-message_v4.
  write:/ 'Ошибка',wa_bapiret2-message.

endloop.

if sy-subrc eq 0.

  call function 'PS_FLAG_INIT_GLOBAL_FLAGS'.

  call function 'PS_FLAG_SET_GLOBAL_FLAGS'
    exporting
      i_precommit_ok = 'Y'.

endif.


check sy-subrc ne 0.

call function 'BAPI_PS_PRECOMMIT'
  tables
    et_return = it_bapiret2.

loop at it_bapiret2 into wa_bapiret2 where type ca 'AE'.


  message id wa_bapiret2-id type wa_bapiret2-type number wa_bapiret2-number
  into wa_bapiret2-message
  with wa_bapiret2-message_v1 wa_bapiret2-message_v2
  wa_bapiret2-message_v3 wa_bapiret2-message_v4.
  write:/ 'Ошибка:',wa_bapiret2-message.

endloop.

if sy-subrc eq 0.

  call function 'BAPI_TRANSACTION_ROLLBACK'
    importing
      return = it_bapiret2.

  call function 'PS_FLAG_INIT_GLOBAL_FLAGS'.

  call function 'PS_FLAG_SET_GLOBAL_FLAGS'
    exporting
      i_precommit_ok = 'Y'.

else.

  call function 'BAPI_TRANSACTION_COMMIT'
    exporting
      wait   = 'X'
    importing
      return = wa_bapiret2.
  write:/ 'Уведомление:',wa_bapiret2-message.
*
endif.

В итоге создаёт сетевой график. Система присваивает сетевому графику внутренний номер OP3070. И тут возникает проблема. При попытке создания ещё одного сетевого графика bapi ругается и возвращает
Код: You are not allowed to view links. Register or Login
Ошибка
Объект Сетевой график создать было невозможно
Ошибка
Сетевой график/заказ с номеромомер OP3070 уже существует
Т.е. система пытается опять создать сетевой график с этим же номером. Когда это делаешь через транзакцию CJ20N система говорит о том, что сетевой график с таким номером уже существует и предлагает в ручную ввести номер следующего сетевого графика. Введя следующий по порядку номер, график создаётся. Пытался добавить в BAPI в ручную следующий номер сетевого графика, там есть поле.
Код: You are not allowed to view links. Register or Login
wa_bapi_bus2002_new-network = 'OP3071'.Безрезультатно. Это как то связано с нумерацией сетевых графиков, но как это обойти?
Страницы: 1 ... 3 4 [5] 6 7 ... 10