Observação
1. O intervalo de depreciação será apresentado por si só, basta pressionar x para o campo a ser alterado
código de demonstração
função zfm_erp_012.
* "------------------------------------------------ ----------------------
* "*" Interface local:
* "TABELAS
* "T_DATA ESTRUTURA ZFM_ERP_012_DATA
* "------------------------------------------------ ----------------------
dados:
ls_key type bapi1022_key,
ls_general_data type bapi1022_feglg001,
ls_general_data_x type bapi1022_feglg001x,
ls_postinginformation type bapi1022_feglg002,
ls_postinginformationx type bapi1022_feglg002x,
ls_time_dependent_data type bapi1022_feglg003,
ls_time_dependent_data_x type bapi1022_feglg003x,
ls_allocations type bapi1022_feglg004,
ls_allocationsx type bapi1022_feglg004x,
ls_investacctassignmnt tipo bapi1022_feglg010,
ls_investacctassignmntx tipo bapi1022_feglg010x,
ls_origin type bapi1022_feglg009, "源
ls_originx digite bapi1022_feglg009x.
*** Faixa de depreciação
dados:
lt_depreciationareas como a tabela de bapi1022_dep_areas,
ls_epreciationareas como a linha de lt_depreciationareas,
lt_depreciationareasx como a tabela de bapi1022_dep_areasx,
ls_depreciationareasx como a linha de lt_depreciationareasx.
"Resultado
dados:
ls_return type bapiret2,
string do tipo lv_message,
lv_assetmaino digite bapi1022_1-assetmaino.
faça 2 vezes.
se sy-index = 1.
dados (testrun) = 'X'.
outro.
testrun = ''.
leia a tabela t_data com a chave rtype = 'E'.
se sy-subrc = 0.
Retorna.
fim se.
fim se.
enddo.
loop em t_data onde 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} |.
* Campo de palavra-chave a ser criado
ls_key-companycode = t_data-bukrs. "Código da empresa
* Grupo de Campo Lógico 001-Dados Gerais
ls_general_data-assetclass = t_data-anlkl. "Classe de ativo
ls_general_data_x-assetclass = 'X'. "Informações atualizadas dos campos de dados do usuário relacionados
ls_general_data-descript = t_data-txt50. "Descrição necessária
ls_general_data_x-descript = 'X'.
ls_general_data-descript2 = t_data-txa50. "Descrição opcional do ativo adicional - preencha o número de fábrica
ls_general_data_x-descript2 = 'X'.
ls_general_data-serial_no = t_data-sernr. "Número de série
ls_general_data_x-serial_no = 'X'.
ls_general_data-invent_no = t_data-invnr. "Nº do inventário
ls_general_data_x-invent_no = 'X'.
ls_general_data-quantity = t_data-menge. "数量
ls_general_data_x-quantidade = 'X'.
ls_general_data-base_uom = t_data-meins. "Unidade básica de medida
ls_general_data_x-base_uom = 'X'.
* Grupo de campo lógico 002 - Informações contábeis
ls_postinginformation-cap_date = t_data-aktiv. "Data de capitalização
ls_postinginformationx-cap_date = 'X'.
* Dados relacionados ao tempo do grupo de campo lógico 003
* ls_time_dependent_data-bus_area = t_data-gsber. "Área de negócios
* ls_time_dependent_data_x-bus_area = 'X'.
ls_time_dependent_data-costcenter = t_data-kostl. "Centro de custo necessário
ls_time_dependent_data_x-costcenter = 'X'.
* Grupo de Campo Lógico 004-Atribuição
ls_allocations-inv_reason = t_data-izwek. "razão para investimento
ls_allocationsx-inv_reason = 'X'.
ls_allocations-evalgroup1 = t_data-ord41. "Status de uso
ls_allocationsx-evalgroup1 = 'X'.
ls_allocations-evalgroup2 = t_data-ord42. "Uso econômico
ls_allocationsx-evalgroup2 = 'X'.
* Grupo de campos lógicos 010-Atribuição de contas de investimento
ls_investacctassignmnt-invest_ord = t_data-eaufn. "Ordem de investimento
ls_investacctassignmntx-invest_ord = 'X'.
* Faixa de depreciação
ls_epreciationareas-area = '01'. "Área de depreciação real
ls_epreciationareas-odep_start_date = t_data-afabg. "Data de início do cálculo da depreciação
anexe ls_epreciationareas a lt_depreciationareas.
ls_depreciationareasx-area = '01'.
ls_depreciationareasx-odep_start_date = 'X'.
anexe ls_depreciationareasx a lt_depreciationareasx.
ls_epreciationareas-area = '02'. "Área de depreciação real
ls_epreciationareas-odep_start_date = t_data-afabg. "Data de início do cálculo da depreciação
anexe ls_epreciationareas a lt_depreciationareas.
ls_depreciationareasx-area = '02'.
ls_depreciationareasx-odep_start_date = 'X'.
anexe ls_depreciationareasx a lt_depreciationareasx.
ls_epreciationareas-area = '03'. "Área de depreciação real
ls_epreciationareas-odep_start_date = t_data-afabg. "Data de início do cálculo da depreciação
anexe ls_epreciationareas a lt_depreciationareas.
ls_depreciationareasx-area = '03'.
ls_depreciationareasx-odep_start_date = 'X'.
anexe ls_depreciationareasx a lt_depreciationareasx.
ls_epreciationareas-area = '04'. "Área de depreciação real
ls_epreciationareas-odep_start_date = t_data-afabg. "Data de início do cálculo da depreciação
anexe ls_epreciationareas a lt_depreciationareas.
ls_depreciationareasx-area = '04'.
ls_depreciationareasx-odep_start_date = 'X'.
anexe ls_depreciationareasx a lt_depreciationareasx.
*fonte
ls_origin-vendor = t_data-lifnr. "Nome do fornecedor
ls_originx-vendor = 'X'.
ls_origin-manufacturer = t_data-herst. "Fabricante do ativo
ls_originx-manufacturer = 'X'.
chamar a função 'BAPI_FIXEDASSET_CREATE1'
exportador
testrun = testrun
key = ls_key
origin = ls_origin
originx = ls_originx
generaldata = ls_general_data
generaldatax = ls_general_data_x
postsinformation = ls_postinginformation
postsinformationx = ls_postinginformationx
alocações = ls_allocations
alocationsx = ls_allocationsx
investacctassignmnt = ls_investacctassignmnt
investacctassignmntx = ls_investacctassignmntx
timedependentdata = ls_time_dependent_data
timedependentdatax = ls_time_dependent_data_x
importando
asset = lv_assetmaino
return = ls_return
mesas
áreas de depreciação = lt_áreas de depreciação
área de depreciaçãox = lt_depreciaçãoareasx.
se ls_return-type = 'S'.
se testrun for inicial.
chamar a função 'BAPI_TRANSACTION_COMMIT'
exportador
esperar = 'X'.
t_data-rtype = 'S'.
t_data-rtmsg = 'Sucesso'.
t_data-anln1 = | {lv_assetmaino alpha = out} |.
fim se.
se ls_return não for inicial.
id da mensagem ls_return-id type ls_return-type number ls_return-number
com ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4 em lv_message.
fim se.
outro.
chamar a função 'BAPI_TRANSACTION_ROLLBACK'.
se ls_return não for inicial.
id da mensagem ls_return-id type ls_return-type number ls_return-number
com ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4 em lv_message.
fim se.
t_data-rtype = 'E'.
t_data-rtmsg = lv_message.
fim se.
modificar t_data.
endloop.
função final.