点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好!
我有一个要求,我需要从2LIS_02_SCL中加载ADSO数据,并从TCURR表中加载货币汇率。 我的挑战是将2_LIS的过帐日期与TCURR的货币日期相结合(以获取汇率),因为我可以在非工作日使用MIRO/MIGO,而TCURR表仅具有工作日的汇率(就我而言)
然后,我开始开发自己的例程,但不幸的是,我对ABAP的了解不足以创造更好的性能。
在我的启动例程中,我编写了以下代码,并且工作正常:
$ * $全局开始-仅在此行下方插入声明*-*
..."在此处插入代码
类型:
BEGIN OF TY_TCURR,
< br> *字段:KURST汇率类型
KURST TYPE C长度4,
*字段:FCURR来自货币
FCURR TYPE FCURR_CURR,
*字段:TCURR到货币
TCURR TYPE TCURR_CURR,
*字段:汇率生效的GDATU日期
GDATU类型GDATU_INV,
*字段:UKURS汇率
UKURS类型UKURS_CURR,
*字段:ZDATE转换日期
ZDATE TYPE C长度8,
TY_TCURR的结尾。
数据:TI_TCURR TY_TCURR的类型表,
WA_TCURR TYPE TY_TCURR的表。
* $ * $全局结尾-插入 您的声明仅在此行之前*-*
****************************************
* $ * $例程的开头-仅在此行下方插入代码*-*
..."在此处插入代码
*-用结构" MONITOR_REC"的值填充表" MONITOR"
*-创建监视器条目
..."取消更新过程
*引发异常类型CX_RSROUT_ABORT。
如果SOURCE_PACKAGE []不初始化。
SELECT
KURST
FCURR
TCURR
GDATU
UKURS
从TCURR
到表ti_TCURR
中,用于源_包
FCURR = SOURCE_PACKAGE-ORDER_CURR AND
TCURR = SOURCE_PACKAGE-LOC_CURRCY。
FIELD-SYMBOLS
数据:vl_data类型char10。
>在ti_TCURR处分配
放入
。
endloop。
如果sy-subrc是INITIAL。< br> KURST FCURR T的SORT ti_TCURR CURR ZDATE。
ENDIF。
ENDIF。
* $ * $例程结尾-仅在此行之前插入代码*-*
但是我认为我的性能问题在一个野外例程中:
数据:VL_DATA_AUX类型SY-DATUM。
VL_DATA_AUX = SOURCE_FIELDS-PSTNG_DATE。
在哪里
KURST ='M'AND
FCURR = SOURCE_FIELDS-ORDER_CURR AND
TCURR = SOURCE_FIELDS-LOC_CURRCY。
如果IF
继续。
ELSE。
结果=
退出。
ENDIF。
ENDLOOP。
我在做什么错? 我该如何改善这个常规? 处理DTP需要很长时间。
提前谢谢!
@ Alex Moreira
启动例程: 将ti_TCURR声明为SORTED TABLE,避免显式排序。
字段例程: 尝试如下
您要维护BW本身的货币汇率还是从ERP加载货币汇率? 恕我直言,您可以创建一个ADSO来保存汇率,在该汇率中,您可以将上一个汇率从工作日转换为周末,也可以根据需要更改任何逻辑。 然后在主转换的转换中创建从数据存储对象读取的规则类型。
@ Alex Moreira
在OPTIONAL之后留一个空格,然后关闭方括号。
一周热门 更多>