Текущее время: Сб, июл 26 2025, 10:36

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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