+ Sapforum.Biz
|- Последние сообщения



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

Страницы: [1] 2 3 ... 10
1
You are not allowed to view links. Register or Login
Ошибку вроде бы устранил, правда между запусками функциональных модулей по демонтажу и монтажу пришлось добавить время запуска
Не выход, проверяйте запись блокировки объекта, будет самое оно. а то ведь может оказаться и больше и гораздо меньше секунды.
2
Ошибку вроде бы устранил, правда между запусками функциональных модулей по демонтажу и монтажу пришлось добавить время запуска разницей в одну секунду, я правда не знаю насколько сильно это скажется на производительности, скажем перемещение 500 ЕО 500 секунд, не считая выполнения самих функциональных модулей.
3
Доброго времени суток Всем.

Делаю пакетник по изменению и перемещению единиц оборудования. С изменением данных всё понятно и вроде бы работает, но вот перемещение сделать не удаётся. Перемещение ЕО делаю с помощью двух bapi, т.е. сначала делаю демонтаж BAPI_EQUI_DISMANTLE, а затем пытаюсь смонтировать на другое техническое место с помощью bapi BAPI_EQUI_INSTALL, т.е. оба bapi запускаются друг за другом. Демонтаж сделать получается, а вот на монтаже возникает ошибка типа Ед. оборудования 10000151: время монтажа/демонтажа должно быть позже, чем 17:20:05. Если я правильно понимаю, то систему смущает, что демонтаж и монтаж происходит секунда в секунду. Если я пытаюсь отдельно после этого запустить монтаж, то прога монтирует ЕО на нужное ТМ. Как быть в таком случае? Как то изменять время при монтаже или что? Может кто сталкивался с этим? Вот примерный код.
Код: You are not allowed to view links. Register or Login
data:
    ld_data_general_exp   type bapi_itob,
    ld_data_specific_exp  type bapi_itob_eq_only,
    ld_return             type bapiret2,
    ld_data_general_exp2    type bapi_itob,
    ld_data_specific_exp2 type bapi_itob_eq_only,
    ld_return2              type bapiret2,
    ld_equipment          type bapi_itob_eq_install_ext.

  call function 'BAPI_EQUI_DISMANTLE'
    exporting
      equipment         = '000000000010000151'
*     funcloc           = wa-funcloc_int2
*     SUPEQUI           =
      dism_date         = sy-datum
      dism_time         = sy-uzeit
    importing
      data_general_exp  = ld_data_general_exp
      data_specific_exp = ld_data_specific_exp
      return            = ld_return.

  if ld_return-type = space.
    commit work and wait.
  else.
*    wa-status2 = icon_failure.
    rollback work.
  endif.
  call function 'CONVERSION_EXIT_TPLNR_OUTPUT'
    exporting
      input  = '100.004.001.003'
    importing
      output = wa-funcloc_int2.

  ld_equipment-funcloc = wa-funcloc_int2.

  call function 'BAPI_EQUI_INSTALL'
    exporting
      equipment         = '000000000010000151'
      data_install      = ld_equipment
    importing
      data_general_exp  = ld_data_general_exp2
      data_specific_exp = ld_data_specific_exp2
      return            = ld_return2.
  if ld_return2-type = space.
    commit work and wait.
  else.
*    wa-status2 = icon_failure.
    rollback work.
  endif.
4
Продать/Купить / Вакансии в X5 Retail Group
« Последний ответ от Анна Февраль 18, 2018, 02:03:41 pm »
Здравствуйте!

Я  менеджер по подбору персонала компании X5 Retail Group, и сейчас у нас открыто большое количество вакансий для SAP консультантов (поддержка, разработка), есть интересные проекты да и вообще у нас не соскучишься :)

большинство вакансий в Москве, но есть и в Нижнем Новгороде, Ижевске.

Мы предлагаем:

-интересные задачи
-возможность профессионального роста и развития
-"белую" заработную плату, оформление по ТК РФ
-ДМС, скидки в наши магазины и у партнеров (фитнес,страхование, кредитование, развлечения, магазины бытовой техники, туризм)
-современный комфортный офис на ст.м.Волгоградский проспект.


Готова общаться подробнее на You are not allowed to view links. Register or Login
5
Как работать с таблицей extensionin[] можно посмотреть темы:

You are not allowed to view links. Register or Login (собственно пример реализации)
You are not allowed to view links. Register or Login (работы с контейнером)

6
В общем если кому надо будет создать пакетник через BAPI на изменение основных данных ЕО, в том числе и z-овских полей вот рабочая реализация через BAPI_EQUI_CHANGE
Код: You are not allowed to view links. Register or Login
data t_extensionin type bapiparex occurs 0 with header line.
  data ls_extensionin type bapiparex.
  data: e_item type itobapi_modify_eq
      , ls_item type ci_equi
      .
  clear:  t_extensionin.
  " доп поля
  clear: e_item.
  ls_item-zzito_loc = wa-zzito_loc.
  ls_extensionin-structure = 'CI_EQUI'.
  call method cl_abap_container_utilities=>fill_container_c
    exporting
      im_value     = ls_item
    importing
      ex_container = ls_extensionin+30.
  t_extensionin = ls_extensionin.
  append t_extensionin.

  bapi_itob_parms-equipment = wa-equipment2.
  if wa-objecttype is not initial.
    bapi_itob-objecttype = wa-objecttype.
    bapi_itobx-objecttype = 'X'.
  else.
  endif.
  if wa-inventory is not initial.
    bapi_itob-inventory = wa-inventory.
    bapi_itobx-inventory = 'X'.
  else.
  endif.
  if wa-manfacture is not initial.
    bapi_itob-manfacture = wa-manfacture.
    bapi_itobx-manfacture = 'X'.
  else.
  endif.

call function 'BAPI_EQUI_CHANGE'
    exporting
      equipment        = bapi_itob_parms-equipment
      data_general     = bapi_itob
      data_generalx    = bapi_itobx
      data_specific    = zbapi_itob_eq_only
      data_specificx   = zbapi_itob_eq_onlyx
    importing
      data_general_exp = bapi_itob
*     DATA_SPECIFIC_EXP       =
*     DATA_FLEET_EXP   =
      return           = ps_return
    tables
      extensionin      = t_extensionin[].
*   EXTENSIONOUT            =
  if ps_return-type = space.
    commit work and wait.
    if sy-subrc = 0.
*      perform status.
      if   wa-status2 = icon_checked or wa-status2 is initial.
        wa-status2 = icon_checked.
      endif.
    else.
*     Ошибка выполнения COMMIT WORK!!!
      ps_return-type = 'E'.
      wa-status2 = icon_failure.
    endif.
  else.
    wa-status2 = icon_failure.
    rollback work.
  endif.
Далее идём в BADi и создаём там реализацию, т.е. Enhancement Implementation типа ZEI_EAMS_ITOB_BAPI_CUST_FIELDS с классом Z_PM_EO и в методе, как и рекомендовал Олег, EXTENSIONIN_EQUI_CHANGE пишем код
Код: You are not allowed to view links. Register or Login
data: ls_extensionin type bapiparex
        , ls_item type ci_equi
        .
      loop at it_extensionin into ls_extensionin.
      call method cl_abap_container_utilities=>read_container_c
        exporting
          im_container = ls_extensionin+30
        importing
          ex_value     = ls_item.
    endloop.

      cs_object-zzito_loc = ls_item-zzito_loc.
Вроде бы работает и z-овские поля изменяются.
7
В общем сделал вот так
Код: You are not allowed to view links. Register or Login
data t_extensionin type bapiparex occurs 0 with header line.
  data ls_extensionin type bapiparex.
  data e_item type itobapi_modify_eq.
  clear:  t_extensionin.
  " доп поля
  clear: e_item.
  e_item-zzito_loc = wa-zzito_loc.
  ls_extensionin-structure = 'ITOBAPI_MODIFY_EQ'.
  call method cl_abap_container_utilities=>fill_container_c
    exporting
      im_value     = e_item
    importing
      ex_container = ls_extensionin+30.
*  append ls_extensionin to t_extensionin.
  t_extensionin = ls_extensionin.
call function 'BAPI_EQUI_CHANGE'
    exporting
      equipment        = bapi_itob_parms-equipment
      data_general     = bapi_itob
      data_generalx    = bapi_itobx
      data_specific    = zbapi_itob_eq_only
      data_specificx   = zbapi_itob_eq_onlyx
    importing
      data_general_exp = bapi_itob
*     DATA_SPECIFIC_EXP       =
*     DATA_FLEET_EXP   =
      return           = ps_return
    tables
      extensionin      = t_extensionin[].
*   EXTENSIONOUT            =
  if ps_return-type = space.
    commit work and wait.
else.
    rollback work.
  endif.
В отладчике видно, что в структуре t_extensionin есть заполненное значение. Если я правильно понял, то дальше надо создать расширение для BADi badi_eam_itob_bapi_cust_fields, а вот как именно передать значение t_extensionin в  cs_object чот мне не понятно?
8
You are not allowed to view links. Register or Login
Свои поля передаете в структуре:
EXTENSIONIN   LIKE   BAPIPAREX   Bezugsstruktur für BAPI-Parameter ExtensionIn / ExtensionOut

Дальше реализуете BADI
badi_eam_itob_bapi_cust_fields и метод extensionin_equi_change

Где заполняете данные из структуры/таблицы EXTENSIONIN в данные cs_object и cs_fleet.
Не совсем понятно как в эту структуру BAPIPAREX передавать значения полей в программе, т.к. я использую BAPi BAPI_EQUI_CHANGE, то и структуру пытаюсь использовать itobapi_modify_eq, но при попытке передать туда значения выходит ошибка, что "EXTENSIONIN-VALUEPART1" и "E_ITEM" в программе уникода не могут быть преобразованы друг в друга program. 
Код: You are not allowed to view links. Register or Login
data:
    extensionin type table of bapiparex with header line,
    e_item      type  itobapi_modify_eq.
  e_item-zzito_loc = wa-zzito_loc.
  extensionin-structure = 'ITOBAPI_MODIFY_EQ'.
  extensionin-valuepart1 = e_item.
  append extensionin.
Как её заполнять не понятно.
9
Свои поля передаете в структуре:
EXTENSIONIN   LIKE   BAPIPAREX   Bezugsstruktur für BAPI-Parameter ExtensionIn / ExtensionOut

Дальше реализуете BADI
badi_eam_itob_bapi_cust_fields и метод extensionin_equi_change

Где заполняете данные из структуры/таблицы EXTENSIONIN в данные cs_object и cs_fleet.


10
You are not allowed to view links. Register or Login
Этой функцией пользоваться нельзя, так как у тебя вряд ли система младше 4.6. А с 4.6с надо использовать модуль BAPI_EQUI_CREATE, примеры есть на форуме, по поводу своих Z-полей, то исходя из того что в параметрах есть структура
Код: You are not allowed to view links. Register or Login
EXTENSIONIN LIKE BAPIPAREX Bezugsstruktur für BAPI-Parameter ExtensionIn / ExtensionOutто можно передать свои поля и корректно их обновить. Для этого нужно корректно реализовать точку расширения ES_EAM_ITOB_BAPI_CUST_FIELDS, в которой нужно переложить поля из структуры EXTENSIONIN в структуру таблицы EQUI. Примеры как работать с параметром EXTENSIONIN, тоже есть на форуме, это сейчас основной метод передачи пользовательских параметров в BAPI функции.
Добрый день Олег.

Поздновато пишу, но только начал реализовывать. В общем пытаюсь сделать пакетник для изменения с помощью Bapi BAPI_EQUI_CHANGE, все поля изменять удаётся кроме z-овских, сделал что то вроде:
Код: You are not allowed to view links. Register or Login
data:
    extensionin type table of bapiparex with header line,
    e_item      type itobapi_create_eq.
  e_item-equnr = wa-equnr.
  e_item-zzito_loc = wa-zzito_loc.
  extensionin-structure = 'ITOBAPI_CREATE_EQ'.
  extensionin-valuepart1 = e_item.
  append extensionin.

call function 'BAPI_EQUI_CHANGE'
    exporting
      equipment        = bapi_itob_parms-equipment
      data_general     = bapi_itob
      data_generalx    = bapi_itobx
      data_specific    = zbapi_itob_eq_only
      data_specificx   = zbapi_itob_eq_onlyx
    importing
      data_general_exp = bapi_itob
*     DATA_SPECIFIC_EXP       =
*     DATA_FLEET_EXP   =
      return           = ps_return
  tables
    extensionin             =  extensionin[].
*   EXTENSIONOUT            =
  if ps_return-type = space.
    commit work and wait.
Не пойму, что я делаю не так. Може ли это не работать, потому что z-овские поля были добавлены мной с помощью user-exit ITOB0001, а не с помощью ES_EAM_ITOB_BAPI_CUST_FIELDS ?
Страницы: [1] 2 3 ... 10