以前年度资产价值导入以及汇率自动计算解决方案

本文主要是介绍以前年度资产价值导入以及汇率自动计算解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 1 Introduction
      • 2 Code
      • 3 Summary

1 Introduction

In the example we will finish ABLDT function and modify asset value .

2 Code

DATA: key                   TYPE bapi1022_key,generaldata           TYPE bapi1022_feglg001,generaldatax          TYPE bapi1022_feglg001x,postinginformation    TYPE bapi1022_feglg002,postinginformationx   TYPE bapi1022_feglg002x,allocations           TYPE bapi1022_feglg004,allocationsx          TYPE bapi1022_feglg004x,timedependentdata     TYPE bapi1022_feglg003,timedependentdatax    TYPE bapi1022_feglg003x,origin                TYPE bapi1022_feglg009,originx               TYPE bapi1022_feglg009x,transactions          TYPE STANDARD TABLE OF bapi1022_trtype     WITH HEADER LINE,depreciationareas     TYPE STANDARD TABLE OF bapi1022_dep_areas  WITH HEADER LINE,depreciationareasx    TYPE STANDARD TABLE OF bapi1022_dep_areasx WITH HEADER LINE,postedvalues          TYPE STANDARD TABLE OF bapi1022_postval    WITH HEADER LINE,cumulatedvalues       TYPE STANDARD TABLE OF bapi1022_cumval     WITH HEADER LINE,return                TYPE STANDARD TABLE OF bapiret2           WITH HEADER LINE,extensionin           TYPE STANDARD TABLE OF bapiparex WITH HEADER LINE,lt_investment_support TYPE STANDARD TABLE OF bapi1022_inv_support WITH HEADER LINE.DATA:companycode LIKE  bapi1022_1-comp_code,asset       LIKE  bapi1022_1-assetmaino,subnumber   LIKE  bapi1022_1-assetsubno.CLEAR:gv_num,gv_count.gv_num = lines( i_data )."上传条目数LOOP AT i_data INTO wa_data.IF wa_data-name06 IS INITIAL.wa_data-message = TEXT-009.wa_data-type = 'E'.APPEND wa_data TO it_data.CONTINUE.ENDIF.key-companycode = wa_data-name02.                  "公司代码key-asset       = wa_data-name34.   "资产key-subnumber   = '0'.           "次级编号generaldata-assetclass  = wa_data-name01.          "资产分类generaldatax-assetclass = 'X'.generaldata-quantity  = wa_data-name08.            "数量generaldatax-quantity = 'X'.generaldata-base_uom    = wa_data-name09.          "基本计量单位generaldatax-base_uom    = 'X'.generaldata-descript   = wa_data-name03.           "资产描述generaldatax-descript  = 'X'.generaldata-descript2  = wa_data-name04.           "附加资产描述generaldatax-descript2 = 'X'.generaldata-main_descript  = wa_data-name05.           "设备编码generaldatax-main_descript = 'X'.generaldata-invent_no  = wa_data-name32.           "存货号  EAS资产号generaldatax-invent_no = 'X'.postinginformation-cap_date  = wa_data-name10.postinginformationx-cap_date = 'X'.                "资产资本化日期timedependentdata-costcenter = wa_data-name11.     "成本中心timedependentdatax-costcenter = 'X'.timedependentdata-plant = wa_data-name35.     "工厂timedependentdatax-plant = 'X'.timedependentdata-bus_area = wa_data-name12.     "业务范围timedependentdatax-bus_area = 'X'.origin-vendor_no = wa_data-name17.        "供应商originx-vendor_no = 'X'.                  "供应商origin-manufacturer = wa_data-name33.        "制造商   原始资产号originx-manufacturer = 'X'.                  "制造商   原始资产号origin-type_name = wa_data-name28.  "类型名   原始购入日期originx-type_name = 'X'.allocations-evalgroup1 = wa_data-name16.           "评审小组1使用状态allocationsx-evalgroup1 = 'X'.allocations-evalgroup2 = wa_data-name06.           "评审小组2-资产来源 20200301 add by skyyanallocationsx-evalgroup2 = 'X'."  add it by  sie_jinggl start 20240123IF wa_data-name36   IS NOT INITIAL .CLEAR:depreciationareas ,depreciationareasx , cumulatedvalues,transactions,postedvalues.CLEAR depreciationareas[].CLEAR depreciationareasx[].depreciationareas-area = '01'.depreciationareas-dep_key = wa_data-name19.        "折旧码depreciationareas-ulife_yrs = wa_data-name20.      "计划年使用期depreciationareas-ulife_prds = wa_data-name21.     "计划使用期间depreciationareas-odep_start_date  = wa_data-name38.     "折旧计算开始日期APPEND depreciationareas.depreciationareasx-area = '01'.depreciationareasx-dep_key = 'X'.                  "折旧码depreciationareasx-ulife_yrs = 'X'.                "计划年使用期depreciationareasx-ulife_prds = 'X'.               "计划使用期间depreciationareasx-exp_ulife_yrs = 'X'.            "原始使用年depreciationareasx-exp_ulife_prds = 'X'.           "原始使用期间depreciationareasx-odep_start_date = 'X'.           " "APPEND depreciationareasx.CLEAR: cumulatedvalues[].IF wa_data-name10+0(4) < sy-datum+0(4).cumulatedvalues-fisc_year     = sy-datum+0(4)."'2020'.            "年度cumulatedvalues-area     = '01'.                   "范围cumulatedvalues-acq_value = wa_data-name37.        "购置价值cumulatedvalues-ord_dep = 0 - wa_data-name26.          "累积普通折旧APPEND cumulatedvalues.ELSE.CLEAR transactions[].IF wa_data-name38 IS NOT INITIAL.transactions-valuedate = wa_data-name38.transactions-current_no = '00001'.transactions-fisc_year  =  sy-datum+0(4)."'2020'.                  "会计年transactions-assettrtyp = '100'.          "事物类型transactions-area       = '01'."wa_data-name33'.          "折旧范围transactions-amount     = wa_data-name37.          "记账金额APPEND transactions.ENDIF.ENDIF.IF  wa_data-name27   <>  0.CLEAR postedvalues[].postedvalues-fisc_year     = sy-datum+0(4)."'2020'.               "年度postedvalues-area     = '01'.                      "范围postedvalues-ord_dep = 0 - wa_data-name27.             "一般折旧APPEND postedvalues.ENDIF.
*ENDIF." add  it by sie_jinggl start"  The function is  depreciation Range2 .IF wa_data-name39   IS NOT INITIAL .CLEAR:depreciationareas ,depreciationareasx , cumulatedvalues,transactions,postedvalues.depreciationareas-area = '20'.depreciationareas-dep_key = wa_data-name40.        "折旧码depreciationareas-ulife_yrs = wa_data-name41.      "计划年使用期depreciationareas-ulife_prds = wa_data-name42.     "计划使用期间depreciationareas-odep_start_date  = wa_data-name43.     "折旧计算开始日期APPEND depreciationareas.depreciationareasx-area = '20'.depreciationareasx-dep_key = 'X'.                  "折旧码depreciationareasx-ulife_yrs = 'X'.                "计划年使用期depreciationareasx-ulife_prds = 'X'.               "计划使用期间depreciationareasx-exp_ulife_yrs = 'X'.            "原始使用年depreciationareasx-exp_ulife_prds = 'X'.           "原始使用期间depreciationareasx-odep_start_date = 'X'.           "折旧计算开始日"APPEND depreciationareasx.IF wa_data-name10+0(4) < sy-datum+0(4).cumulatedvalues-fisc_year     = sy-datum+0(4)."'2020'.            "年度cumulatedvalues-area     = '20'.                   "范围cumulatedvalues-acq_value = wa_data-name44.        "购置价值cumulatedvalues-ord_dep =  0 - wa_data-name45.          "累积普通折旧*        cumulatedvalues-currency = 'USDT'.
*        cumulatedvalues-currency_iso  = 'USDT' .APPEND cumulatedvalues.ELSE.IF wa_data-name38 IS NOT INITIAL.transactions-valuedate = wa_data-name38.transactions-current_no = '00001'.transactions-fisc_year  =  sy-datum+0(4)."'2020'.                  "会计年transactions-assettrtyp = '100'.          "事物类型transactions-area       = '20'."wa_data-name33'.          "折旧范围transactions-amount     = wa_data-name44.          "记账金额APPEND transactions.ENDIF.ENDIF.
*      CLEAR postedvalues[].IF  wa_data-name46   <>  0.postedvalues-fisc_year     = sy-datum+0(4)."'2020'.               "年度postedvalues-area     = '20'.                      "范围postedvalues-ord_dep =  0 - wa_data-name46.             "一般折旧
*
*         postedvalues-currency = 'USDT'.
*         postedvalues-currency_iso = 'USDT'.
*        cumulatedvalues-currency_iso  = 'TRY' .APPEND postedvalues.ENDIF.ENDIF."  The function is  depreciation Range3 .IF wa_data-name47  IS NOT INITIAL .CLEAR:depreciationareas ,depreciationareasx , cumulatedvalues,transactions,postedvalues.depreciationareas-area = '06'.depreciationareas-dep_key = wa_data-name48.        "折旧码depreciationareas-ulife_yrs = wa_data-name49.      "计划年使用期depreciationareas-ulife_prds = wa_data-name50.     "计划使用期间depreciationareas-odep_start_date  = wa_data-name51.     "折旧计算开始日期APPEND depreciationareas.depreciationareasx-area = '06'.depreciationareasx-dep_key = 'X'.                  "折旧码depreciationareasx-ulife_yrs = 'X'.                "计划年使用期depreciationareasx-ulife_prds = 'X'.               "计划使用期间depreciationareasx-exp_ulife_yrs = 'X'.            "原始使用年depreciationareasx-exp_ulife_prds = 'X'.           "原始使用期间depreciationareasx-odep_start_date = 'X'.           "折旧计算开始日APPEND depreciationareasx.IF wa_data-name10+0(4) < sy-datum+0(4).cumulatedvalues-fisc_year     = sy-datum+0(4)."'2020'.            "年度cumulatedvalues-area     = '06'.                   "范围cumulatedvalues-acq_value = wa_data-name52.        "购置价值cumulatedvalues-ord_dep =  0 - wa_data-name53.          "累积普通折旧APPEND cumulatedvalues.ELSE.IF wa_data-name38 IS NOT INITIAL.transactions-valuedate = wa_data-name38.transactions-current_no = '00001'.transactions-fisc_year  =  sy-datum+0(4)."'2020'.                  "会计年transactions-assettrtyp = '100'.          "事物类型transactions-area       = '06'."wa_data-name33'.          "折旧范围transactions-amount     = wa_data-name52.          "记账金额APPEND transactions.ENDIF.*ENDIF.*      CLEAR postedvalues[].IF wa_data-name54  <> 0 .postedvalues-fisc_year     = sy-datum+0(4)."'2020'.               "年度postedvalues-area     = '06'.                      "范围postedvalues-ord_dep =  0 - wa_data-name54.             "一般折旧APPEND postedvalues.ENDIF.ENDIF."  The function is  depreciation Range4 .IF wa_data-name55  IS NOT INITIAL .CLEAR:depreciationareas ,depreciationareasx , cumulatedvalues,transactions,postedvalues.depreciationareas-area = '30'.depreciationareas-dep_key = wa_data-name56.        "折旧码depreciationareas-ulife_yrs = wa_data-name57.      "计划年使用期depreciationareas-ulife_prds = wa_data-name58.     "计划使用期间depreciationareas-odep_start_date  = wa_data-name59.     "折旧计算开始日期APPEND depreciationareas.depreciationareasx-area = '30'.depreciationareasx-dep_key = 'X'.                  "折旧码depreciationareasx-ulife_yrs = 'X'.                "计划年使用期depreciationareasx-ulife_prds = 'X'.               "计划使用期间depreciationareasx-exp_ulife_yrs = 'X'.            "原始使用年depreciationareasx-exp_ulife_prds = 'X'.           "原始使用期间depreciationareasx-odep_start_date = 'X'.           "折旧计算开始日APPEND depreciationareasx.IF wa_data-name10+0(4) < sy-datum+0(4).cumulatedvalues-fisc_year     = sy-datum+0(4)."'2020'.            "年度cumulatedvalues-area     = '30'.                   "范围cumulatedvalues-acq_value = wa_data-name60.        "购置价值cumulatedvalues-ord_dep =  0 - wa_data-name61.          "累积普通折旧
*        cumulatedvalues-currency = 'USDT'.
*        cumulatedvalues-currency_iso  = 'USDT' .APPEND cumulatedvalues.ELSE.IF wa_data-name38 IS NOT INITIAL.transactions-valuedate = wa_data-name38.transactions-current_no = '00001'.transactions-fisc_year  =  sy-datum+0(4)."'2020'.                  "会计年transactions-assettrtyp = '100'.          "事物类型transactions-area       = '01'."wa_data-name33'.          "折旧范围transactions-amount     = wa_data-name60.          "记账金额APPEND transactions.ENDIF.ENDIF.*      CLEAR postedvalues[].IF wa_data-name62 <> 0 .postedvalues-fisc_year     = sy-datum+0(4)."'2020'.               "年度postedvalues-area     = '30'.                      "范围postedvalues-ord_dep =  0 - wa_data-name62.             "一般折旧
*        postedvalues-currency = 'USDT'.
*        postedvalues-currency_iso = 'USDT'.APPEND postedvalues.ENDIF.ENDIF." add it by sie_jinggl  end 20240123gv_count = gv_count + 1.gv_prog = '正在处理数据...' && gv_count && '/' && gv_num.PERFORM frm_show_progress USING gv_prog.CALL FUNCTION 'BAPI_FIXEDASSET_OVRTAKE_CREATE'EXPORTINGkey                 = keygeneraldata         = generaldatageneraldatax        = generaldatax
*       INVENTORY           =
*       INVENTORYX          =postinginformation  = postinginformationpostinginformationx = postinginformationxtimedependentdata   = timedependentdatatimedependentdatax  = timedependentdataxallocations         = allocationsallocationsx        = allocationsxorigin              = originoriginx             = originxIMPORTINGcompanycode         = companycodeasset               = assetsubnumber           = subnumberTABLESdepreciationareas   = depreciationareasdepreciationareasx  = depreciationareasxcumulatedvalues     = cumulatedvaluespostedvalues        = postedvaluestransactions        = transactionsreturn              = return.APPEND return.LOOP AT return  WHERE type = 'E' OR type = 'A'.ENDLOOP.IF sy-subrc NE 0.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.wa_data-message = '成功'.CONCATENATE asset wa_data-message INTO wa_data-message.wa_data-type = 'S'.APPEND wa_data TO it_data.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.wa_data-message = return-message.wa_data-type = 'E'.APPEND wa_data TO it_data.ENDIF.CLEAR return[].ENDLOOP.

3 Summary

Curr1 is local currency .
Curr2 is group currency.
在这里插入图片描述
If the system tell us htat we don’t changed it . We will cancel the field for deleting .

在这里插入图片描述
When the SAP system gets data by exchange rate and we hope we get value from input the following solution is here .
在这里插入图片描述
When I debug it and I find the control point is here (The system get data by exchange rate ).
在这里插入图片描述
在这里插入图片描述
When the field ‘wrtaft’ is not equal ‘00’ and we don’t get value by exchange rate .
在这里插入图片描述

这篇关于以前年度资产价值导入以及汇率自动计算解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822085

相关文章

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地