Текущее время: Ср, июл 23 2025, 23:23

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Загрузка материалов с высокой стоимостью
СообщениеДобавлено: Вт, июн 29 2010, 16:28 
Специалист
Специалист

Зарегистрирован:
Вт, авг 09 2005, 15:51
Сообщения: 149
Загружаю основные записи основных средств через LSMW, для чего использую замечательную BAPIшку BAPI_FIXEDASSET_OVRTAKE_CREATE (ну, можно и BAPI_FIXEDASSET_CREATE1, не суть). И всё бы хорошо, но на закладке ДопДанныеРФСпецифика (транзакция AS91) есть таблица "Материалы с высокой стоимостью" (структура J_3RF_PRECMSA). С помощью BAPI её не заполнишь, нет таких входных параметров. Догрузить эти данные через пакетник тоже не выйдет, пакетники отвратно работают с гридами. Кто-нибудь может подсказать, существует ли в природе метод как-то эти данные в ОС занести?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка материалов с высокой стоимостью
СообщениеДобавлено: Ср, июн 30 2010, 06:17 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Snus написал(а):
Загружаю основные записи основных средств через LSMW, для чего использую замечательную BAPIшку BAPI_FIXEDASSET_OVRTAKE_CREATE (ну, можно и BAPI_FIXEDASSET_CREATE1, не суть). И всё бы хорошо, но на закладке ДопДанныеРФСпецифика (транзакция AS91) есть таблица "Материалы с высокой стоимостью" (структура J_3RF_PRECMSA). С помощью BAPI её не заполнишь, нет таких входных параметров. Догрузить эти данные через пакетник тоже не выйдет, пакетники отвратно работают с гридами. Кто-нибудь может подсказать, существует ли в природе метод как-то эти данные в ОС занести?

Если бапи нету/не подходят и пакетный ввод не подходит. Можно попробовать так:
Ищем подходящий Бади или UE при сохранение ОС, в своей программе "Материалы с высокой стоимостью" передаем в мемори, запускаем BAPI_FIXEDASSET_CREATE1, и при сохранение в бади/UE забираем из памяти данные и передаем их дальше в обработку.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка материалов с высокой стоимостью
СообщениеДобавлено: Ср, июн 30 2010, 08:33 
Специалист
Специалист

Зарегистрирован:
Вт, авг 09 2005, 15:51
Сообщения: 149
Если честно, не совсем понял идею...
Проблема, в общем-то, в том, что я никак не могу найти хоть одно упоминание загрузки этих материалов в ОС. Считывание - сколько угодно, даже ФМ специальный есть. А вот загрузки - фиг. Не нашёл. Но не может же совсем не быть способа...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка материалов с высокой стоимостью  Тема решена
СообщениеДобавлено: Ср, июн 30 2010, 08:41 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Snus написал(а):
Если честно, не совсем понял идею...
Проблема, в общем-то, в том, что я никак не могу найти хоть одно упоминание загрузки этих материалов в ОС. Выгрузка - сколько угодно, даже ФМ специальный есть. А вот загрузки - фиг. Не нашёл. Но не может же совсем не быть способа...

CF GLO_UPDATE_ASSET_DATA_S
CF GLO_FAA_CSMD_WRITE_DOCUMENT

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка материалов с высокой стоимостью
СообщениеДобавлено: Ср, июн 30 2010, 09:06 
Специалист
Специалист

Зарегистрирован:
Вт, авг 09 2005, 15:51
Сообщения: 149
О, может сработать. Попробую, спасибо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка материалов с высокой стоимостью
СообщениеДобавлено: Вт, дек 13 2011, 18:25 
Начинающий
Начинающий

Зарегистрирован:
Ср, дек 07 2011, 17:52
Сообщения: 7
Code:
*&---------------------------------------------------------------------*
*&      Form  create_glo
*&---------------------------------------------------------------------*
*       Взято из группы функций GLO_FIAA_SCREENS
*----------------------------------------------------------------------*
FORM create_glo USING ps_data TYPE zaa_s_dc01_alv.
  DATA: ls_key     TYPE faa_s_asset_key,
        lo_manager TYPE REF TO if_glo_master_data_mngr,
        lt_precmsa TYPE j_3rf_precmtt WITH HEADER LINE,
        ls_data    TYPE glo_s_asset_data,
        lo_msglist TYPE REF TO cl_hrbas_message_list,
        lt_error   TYPE hrbas_message_tab.
  FIELD-SYMBOLS: <ls_error> LIKE LINE OF lt_error.

  CHECK ps_data-bukrs IS NOT INITIAL AND ps_data-anln1 IS NOT INITIAL AND ps_data-anlkl IS NOT INITIAL.

  " Заполняем таблицу данных
  IF ps_data-preccode1 IS NOT INITIAL.
    CLEAR lt_precmsa.
    SELECT SINGLE * FROM j_3rf_precmet INTO CORRESPONDING FIELDS OF lt_precmsa WHERE preccode = ps_data-preccode1.
    lt_precmsa-quantity = 1.
    lt_precmsa-mass = ps_data-mass1.
    APPEND lt_precmsa.
  ENDIF.
  IF ps_data-preccode2 IS NOT INITIAL.
    CLEAR lt_precmsa.
    SELECT SINGLE * FROM j_3rf_precmet INTO CORRESPONDING FIELDS OF lt_precmsa WHERE preccode = ps_data-preccode2.
    lt_precmsa-quantity = 1.
    lt_precmsa-mass = ps_data-mass2.
    APPEND lt_precmsa.
  ENDIF.
  IF ps_data-preccode3 IS NOT INITIAL.
    CLEAR lt_precmsa.
    SELECT SINGLE * FROM j_3rf_precmet INTO CORRESPONDING FIELDS OF lt_precmsa WHERE preccode = ps_data-preccode3.
    lt_precmsa-quantity = 1.
    lt_precmsa-mass = ps_data-mass3.
    APPEND lt_precmsa.
  ENDIF.
  CHECK lt_precmsa[] IS NOT INITIAL.

  " Преобразуем данные в нужный формат
  ls_key-orgunit   = ps_data-bukrs.
  ls_key-asset     = ps_data-anln1.
  ls_key-subnumber = ps_data-anln2.
  MOVE-CORRESPONDING ls_key TO ls_data.
  CALL FUNCTION 'J_3RF_PRECM_ASSET_PACK'
    EXPORTING
      tb_precmat = lt_precmsa[]
    IMPORTING
      preccodes  = ls_data-glo_rus_precct
      quantities = ls_data-glo_rus_precq
      weights    = ls_data-glo_rus_precw.

  " Создаем менеджер
  TRY.
      CALL METHOD cf_glo_master_data_mngr=>find_by_key
        EXPORTING
          is_asset_key  = ls_key
          id_activity   = '01'
          id_assetclass = ps_data-anlkl
        RECEIVING
          ro_instance   = lo_manager.
    CATCH cx_faa_asset.
      ps_data-message_type   = sy-msgty.
      ps_data-message_id     = sy-msgid.
      ps_data-message_number = sy-msgno.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno INTO ps_data-message
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      RETURN.
  ENDTRY.
  CHECK lo_manager IS BOUND.

  " Сохраняем данные
  TRY.
      CALL METHOD lo_manager->set_data
        EXPORTING
          is_data = ls_data.
      CALL METHOD lo_manager->check_data
        CHANGING
          co_msglist = lo_msglist.
      IF lo_msglist IS BOUND.
        TRY.
            CALL METHOD lo_msglist->get_message_list
              IMPORTING
                messages = lt_error.
            LOOP AT lt_error ASSIGNING <ls_error>.
              ROLLBACK WORK.
              MOVE-CORRESPONDING <ls_error> TO sy.
              RAISE EXCEPTION TYPE cx_faa_asset.
            ENDLOOP.
          CATCH cx_hrbas_violated_assertion.
        ENDTRY.
      ENDIF.
    CATCH cx_faa_asset.
      ps_data-message_type   = sy-msgty.
      ps_data-message_id     = sy-msgid.
      ps_data-message_number = sy-msgno.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno INTO ps_data-message
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      RETURN.
  ENDTRY.
  TRY.
      CALL METHOD lo_manager->if_faa_storable~store
        EXPORTING
          ib_update_task = 'X'.
    CATCH cx_faa_storable.
      ps_data-message_type   = sy-msgty.
      ps_data-message_id     = sy-msgid.
      ps_data-message_number = sy-msgno.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno INTO ps_data-message
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      RETURN.
  ENDTRY.
ENDFORM.                    "create_glo


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Загрузка материалов с высокой стоимостью
СообщениеДобавлено: Вт, янв 24 2012, 12:05 
Начинающий
Начинающий

Зарегистрирован:
Чт, ноя 03 2011, 16:33
Сообщения: 6
Предложеные решения предлагают использовать для записи основной номер ОС и его субномер, но ведь он еще не сгенерирован.
Так же не понятно куда можно вписать эти перформы в field mapping.
Если кто-то знает, прокоментируйте пожалуйста.

Спасибо


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Загрузка материалов с высокой стоимостью
СообщениеДобавлено: Чт, янв 26 2012, 12:09 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
вообще доп параметры можно заслать в бапи через extension параметр - внутри бапи должен быть экзит - для extension in - может номер там есть и там можно вызвать это обновление. Если номера нет - то пишешь ZBAPI и внутри нее стандартное BAPI оно возвращает номер и субномер - потом тот код что выше привели - тоже можно в отдельный фм засунуть - и потом по результатам или все commit или все rollback.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Загрузка материалов с высокой стоимостью
СообщениеДобавлено: Чт, янв 26 2012, 19:35 
Начинающий
Начинающий

Зарегистрирован:
Чт, ноя 03 2011, 16:33
Сообщения: 6
В extension параметрах подходящего нет.
Вопрос собственно в следующем - lsmw создает файл со сконвертированными данными, а сами ОС-ы создаются на шаге START IDoc Processing, насколько я понимаю, так что
dump написал(а):
и потом по результатам или все commit или все rollback.
каким образом отрабатывать будет?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB