Примечание
1. Диапазон амортизации будет выведен сам по себе, просто нажмите x, чтобы изменить поле.
демонстрационный код
функция zfm_erp_012.
* "------------------------------------------------ ----------------------
* "*" Локальный интерфейс:
* "ТАБЛИЦЫ
* "СТРУКТУРА T_DATA ZFM_ERP_012_DATA
* "------------------------------------------------ ----------------------
данные:
ls_key типа bapi1022_key,
ls_general_data тип bapi1022_feglg001,
ls_general_data_x типа bapi1022_feglg001x,
ls_postinginformation type bapi1022_feglg002,
ls_postinginformationx введите bapi1022_feglg002x,
ls_time_dependent_data тип bapi1022_feglg003,
ls_time_dependent_data_x тип bapi1022_feglg003x,
ls_allocations тип bapi1022_feglg004,
ls_allocationsx типа bapi1022_feglg004x,
ls_investacctassignmnt тип bapi1022_feglg010,
ls_investacctassignmntx типа bapi1022_feglg010x,
ls_origin типа bapi1022_feglg009, "源
ls_originx введите bapi1022_feglg009x.
*** Диапазон амортизации
данные:
lt_depreciationareas как таблица bapi1022_dep_areas,
ls_epreciationareas как строка lt_depreciationareas,
lt_depreciationareasx как таблица bapi1022_dep_areasx,
ls_depreciationareasx как строка lt_depreciationareasx.
"Выход
данные:
ls_return типа bapiret2,
строка типа lv_message,
lv_assetmaino типа bapi1022_1-assetmaino.
сделать 2 раза.
если sy-index = 1.
данные (testrun) = 'X'.
еще.
testrun = ''.
прочитать таблицу t_data с ключом rtype = 'E'.
если sy-subrc = 0.
возвращаться.
endif.
endif.
enddo.
цикл в t_data, где rtype ne 'S'.
t_data-anlkl = | {t_data-anlkl alpha = in} |.
t_data-eaufn = | {t_data-eaufn alpha = in} |.
t_data-kostl = | {t_data-kostl alpha = in} |.
* Поле для ключевого слова, которое будет создано
ls_key-companycode = t_data-bukrs. "Балансовая единица
* Группа логических полей 001-Общие данные
ls_general_data-assetclass = t_data-anlkl. "Класс активов
ls_general_data_x-assetclass = 'X'. "Обновленная информация о связанных полях пользовательских данных.
ls_general_data-descript = t_data-txt50. "Требуется описание
ls_general_data_x-descript = 'X'.
ls_general_data-descript2 = t_data-txa50. "Необязательное дополнительное описание актива - введите заводской номер
ls_general_data_x-descript2 = «Х».
ls_general_data-serial_no = t_data-sernr. "Серийный номер
ls_general_data_x-serial_no = 'X'.
ls_general_data-inventory_no = t_data-invnr. "Инвентарный №
ls_general_data_x-Invent_no = 'X'.
ls_general_data-amount = t_data-menge. "数量
ls_general_data_x-quantity = 'X'.
ls_general_data-base_uom = t_data-meins. "Базовая единица измерения
ls_general_data_x-base_uom = «Х».
* Группа логических полей 002-Учетная информация
ls_postinginformation-cap_date = t_data-aktiv. "Дата использования заглавных букв
ls_postinginformationx-cap_date = 'Х'.
* Группа логических полей 003-данные, связанные со временем
* ls_time_dependent_data-bus_area = t_data-gsber. "Сфера деятельности
* ls_time_dependent_data_x-bus_area = «Х».
ls_time_dependent_data-costcenter = t_data-kostl. "Требуемый центр затрат
ls_time_dependent_data_x-costcenter = 'X'.
* Группа логических полей 004-Назначение
ls_allocations-inv_reason = t_data-izwek. "причина инвестиций
ls_allocationsx-inv_reason = 'Х'.
ls_allocations-evalgroup1 = t_data-ord41. "Статус использования
ls_allocationsx-evalgroup1 = 'X'.
ls_allocations-evalgroup2 = t_data-ord42. "Экономическое использование
ls_allocationsx-evalgroup2 = 'X'.
* Группа логических полей 010-Присвоение инвестиционного счета
ls_investacctassignmnt-invest_ord = t_data-eaufn. "Инвестиционный приказ
ls_investacctassignmntx-invest_ord = 'Х'.
* Диапазон амортизации
ls_epreciationareas-area = '01'. "Фактическая область амортизации
ls_epreciationareas-odep_start_date = t_data-afabg. "Дата начала расчета амортизации
добавьте ls_epreciationareas в lt_depreciationareas.
ls_depreciationareasx-area = '01'.
ls_depreciationareasx-odep_start_date = 'X'.
добавьте ls_depreciationareasx к lt_depreciationareasx.
ls_epreciationareas-area = '02'. "Фактическая область амортизации
ls_epreciationareas-odep_start_date = t_data-afabg. "Дата начала расчета амортизации
добавьте ls_epreciationareas в lt_depreciationareas.
ls_depreciationareasx-area = '02'.
ls_depreciationareasx-odep_start_date = 'X'.
добавьте ls_depreciationareasx к lt_depreciationareasx.
ls_epreciationareas-area = '03'. "Фактическая область амортизации
ls_epreciationareas-odep_start_date = t_data-afabg. "Дата начала расчета амортизации
добавьте ls_epreciationareas в lt_depreciationareas.
ls_depreciationareasx-area = '03'.
ls_depreciationareasx-odep_start_date = 'X'.
добавьте ls_depreciationareasx к lt_depreciationareasx.
ls_epreciationareas-area = '04'. "Фактическая область амортизации
ls_epreciationareas-odep_start_date = t_data-afabg. "Дата начала расчета амортизации
добавьте ls_epreciationareas в lt_depreciationareas.
ls_depreciationareasx-area = '04'.
ls_depreciationareasx-odep_start_date = 'X'.
добавьте ls_depreciationareasx к lt_depreciationareasx.
*источник
ls_origin-vendor = t_data-lifnr. "Имя поставщика
ls_originx-vendor = 'Х'.
ls_origin-Manufacturer = t_data-herst. "Производитель актива
ls_originx-Manufacturer = 'X'.
вызвать функцию 'BAPI_FIXEDASSET_CREATE1'
экспорт
testrun = testrun
key = ls_key
origin = ls_origin
originx = ls_originx
generaldata = ls_general_data
generaldatax = ls_general_data_x
postinginformation = ls_postinginformation
postinginformationx = ls_postinginformationx
выделения = ls_allocations
выделенияx = ls_allocationsx
investacctassignmnt = ls_investacctassignmnt
investacctassignmntx = ls_investacctassignmntx
timedependentdata = ls_time_dependent_data
timedependentdatax = ls_time_dependent_data_x
импорт
asset = lv_assetmaino
return = ls_return
столы
depreciationareas = lt_depreciationareas
depreciationareasx = lt_depreciationareasx.
если ls_return-type = 'S'.
если testrun является начальным.
вызвать функцию 'BAPI_TRANSACTION_COMMIT'
экспорт
ждать = 'X'.
t_data-rtype = 'S'.
t_data-rtmsg = «Успех».
t_data-anln1 = | {lv_assetmaino alpha = out} |.
endif.
если ls_return не является начальным.
идентификатор сообщения ls_return-id тип ls_return-type номер ls_return-number
с ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4 в lv_message.
endif.
еще.
вызовите функцию 'BAPI_TRANSACTION_ROLLBACK'.
если ls_return не является начальным.
идентификатор сообщения ls_return-id тип ls_return-type номер ls_return-number
с ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4 в lv_message.
endif.
t_data-rtype = 'E'.
t_data-rtmsg = lv_message.
endif.
изменить t_data.
конец петли.
конечная функция.