数据回缩-时间维度

2020-08-14 16:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我们建立了一个流程来将数...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我们建立了一个流程来将数据从"收入"模型撤回至BW。 现在,我们在AL11中更新文件时发现了一个问题,该文件为某些条目发布了错误的值。 我当前周期的跨国数据加载了2020财年,即2020年4月至2021年3月。 并且时间维度MD正确保持为2020001至2020012。

但是,当我们检查AL11文件时,2021.JAN,2021.FEB,2021.MAR的条目分别为2021010、2021011和2021012,这实际上是不正确的。 我们尝试调试BADI,输入数据为2021010,依此类推。

对于其他型号,我们也有撤回流程,因此TIME没有任何问题。 我们试图在质量系统中复制该业务情景,并发布了2020财年的数据并进行撤消,令人惊讶的是,AL11文件包含正确的数据(2020010、2020011和2020012)。

有人可以建议出什么问题吗?

我们使用的是BPC 10.1和SP16。

谢谢

3条回答
奄奄一息的小鱼
2020-08-14 17:07

嗨,瓦迪姆,

下面是我的代码。

方法if_ujd_retract〜retract。
类型:ty_input的开始,
fp_account(30)类型c,
fp_category(30)类型c,
fp_customer(30)c类型,
fp_datasrc(30)类型c,
fp_entity(30)类型c,
fp_orderstatus(30)类型c,
fp_profit_ctr(30)类型c,
fp_rptcurrency(30)类型c,
fp_time(30)类型c,
带符号数据(30)类型c,ty_input的结尾。
数据:lt_input_data类型ty_input的标准表,
ls_input_data类型ty_input的类型。
类型:开始ty_output的类型,< br> chrt_accts(30)类型c,
gl_account(30)类型c,
zversion(30)类型c,
zvers_yr(30)类型c,
fiscper(30)类型c,< br> vtype(30)TYPE C,
curtype(30)TYPE C,货币(30)TYPE C,
fiscvarnt(30)TYPE C,
COMP_CODE(30)TYPE C,
distr_chan (30)类型c,
除法(30)类型c,
salesorg(30)类型c,
zcust_sal(30)类型c,
co_area(30)类型c,
profit_ctr (30)TYPE C,
订单状态(30)TYPE C,
键图(30)TYPE C,ty_output的结尾。
DATA:ls_output_data TYPE ty_output。
DATA :lv_tmp(30)类型c。
数据:lv_directory类型dirname_al11,
lv_target_path类型c长度255.
数据:lr_conversion类型REF到cl_abap_conv_uc_number,
lv_codepage类型cpnormcp,
)TYPE c,
lv_output_string TYPE字符串,
lv_output_stream TYPE xstring,
lv_stream_length TYPE i,
lv_paypct TYPE uj_signeddata,
lv_month TYPE char3,
lv_2_decimal TYPE p DECIMALS 2.
>字段符号:任何表类型,
任何类型,
任何类型。
常量:lc_directory类型dirname_al11值'/BPC_REVENUE_RETRACTION',
lc_delim1类型c VALUE',',
lc_delim2 TYPE c VALUE','。
CALL'C_SAPGPARAM'ID'NAME'FIELD'DIR_HOME'ID'VALUE'FIELD lv_directory。
"构造目标文件名(包括路径) )CONCATENATE lv_directory
lc_directory'.csv'INTO lv_target_path。
ASSIGN ir_data-> * TO
如果sy-subrc NE 0.RETURN.ENDIF。
LOOP AT ASSIGNING
检查sy-tabix NE 1.CLEAR lv_paypct.ASSIGN TO 铸造类型字符串。
IF sy-subrc EQ 0.CLEAR ls_input_data.SPLIT AT lc_delim1INTO ls_input_data-fp_account
ls_input_data-fp_p_category
> ls_input_data-fp_datasrc
ls_input_data-fp_entity
ls_input_data-fp_profit_ctr
ls_input_data-fp_rptcurrency
ls_input_data_data_input_data_fs_input_数据_数据_fp_time_en。 。
ENDIF.ENDLOOP。
检查lt_input_data是否不正确。
"获取系统代码页呼叫功能'SYSTEM_CODEPAGE'IMPORTING
代码页= lv_codepage。
创建对象lr_conversionEXPORTING
im_source_ScodeS页面= lv_EPS > converter_creation_failed = 1OTHERS =2。
如果sy-subrc NE 0.RETURN.ENDIF。
清除ls_output_data。
ls_output_data-chrt_accts ='0CHRT_ACCTS'。" 1
ls_output_data-gl_account ='0GL_ACCOUNT' 。" 2
ls_output_data-zversion ='ZVERSION'。" 3
l s_output_data-zvers_yr ='ZVERS_YR'。" 4
ls_output_data-fiscper ='FISCPER'。 " 5
ls_output_data-vtype ='0VTYPE'。" 6
ls_output_data-curtype ='0CURTYPE'。 " 7
ls_output_data-currency ='0CURRENCY'。" 8
ls_output_data-fiscvarnt ='0FISCVARNT'。 " 9
ls_output_data-COMP_CODE ='0COMP_CODE'。" 11
ls_output_data-distr_chan ='0DISTR_CHAN'。" 12
ls_output_data-division ='0DIVISION'。" 13
ls_output_data-salesorg ='0SALESORG '。" 14
ls_output_data-zcust_sal ='0CUST_SALES'。" 15
ls_output_data-co_area ='0CO_AREA'。" 16
ls_output_data-profit_ctr ='0PROFIT_CTR'。" 17
ls_output_data-orderstatus 'ORDERSTATUS'。" 18
ls_output_data-keyfigure ='KEYFIGURE'。" 19

CONCATENATE
ls_output_data-chrt_accts
ls_output_data-gl_account
ls_output_data-zversion
ls_yr_output_data-zvers
ls_output_data-fiscper
ls_output_data-vtype
ls_output_data-curtype
ls_output_data-currency
ls_output_data-fiscvarnt
ls_output_data-COMP_CODE
ls_output_data-distr_chan
> ls_output_data-salesorg
ls_output_data-zcust_sal
ls_output_data-co_area
ls_output_data-profit_ctr
ls_output_data-orderstatus
ls_output_data-keyfigureINTO lv_output_data SEPARATED lc_delim2。
CONCATENATE lv_output_data
cl_abap_char_utilities => cr_lfINTO lv_output_data。
CONCATENATE lv_output_string
lv_output_dataINTO lv_output_string。


LOOP AT lt_input_data INTO。 br> lv_output_data,
lv_tmp,
lv_2_decimal。
ls_output_data-chrt_accts = ls_input_data-fp_account(4)。
ls_output_data-gl_account = ls_input_data-fp_acs_version = 4-<-l fp_category(3)。
ls_output_data-zvers_yr = ls_input_data-fp_category + 4。
ls_output_data-fiscper = ls_input_data-fp_time。


ls_output_data-vtype ='20'。
IF ls_input ='LC'.CASE ls_input_data-fp_entity。何时'FAL'。
ls_output_data-currency ='AUD'。何时'FNZ'。
ls_output_data-currency ='NZD'。何时'FPG'。
ls_output_data-currency ='PGK'。结束案例。
ls_output_data-curtype ='10'.ELSEIF ls_input_data-fp_rptcurrency ='AUD'。
ls_output_data-currency ='AUD'。
ls_output_data-curtype ='30'.ENDIF。
ls_output_data-fiscvarnt ='V3'。
ls_output_data-COMP_CODE = ls_input_data-fp_entity。
ls_output_data-distr_chan = ls_input_data-fp_customer(2)。
ls_output_data-di ls_input_data-fp_customer + 2(2)。
ls_output_data-salesorg = ls_input_data-fp_customer + 4(4)。
ls_output_data-zcust_sal = ls_input_data-fp_customer + 8。
ls_output_data_f-p_customer + 4 )。
ls_output_data-profit_ctr = ls_input_data-fp_profit_ctr + 4。
ls_output_data-orderstatus = ls_input_data-fp_orderstatus。

lv_2_decimal = ls_input_data-fig_data。 键图NO-GAPS。
CONCATENATE
ls_output_data-chrt_accts
ls_output_data-gl_account
ls_output_data-zversion
ls_output_data-zvers_yr
ls_output_data-fiscper
ls_output_data-v-type curtype
ls_output_data-currency
ls_output_data-fiscvarnt
ls_output_data-COMP_CODE
ls_output_data-distr_ chan
ls_output_data-division
ls_output_data-salesorg
ls_output_data-zcust_sal
ls_output_data-co_area
ls_output_data-profit_ctr
ls_output_data-orderstatus
ls_ure_output_data-EPA -D lc_ure_output_data数据密钥 > CONCATENATE lv_output_data
cl_abap_char_utilities => cr_lfINTO lv_output_data。
CONCATENATE lv_output_string
lv_output_dataINTO lv_output_string.ENDLOOP。
"转换字符数据格式调用方法lr_conversion-> PORT ex_stream_len = lv_stream_lengthEXCEPTIONS
conversion_error = 1OTHERS =2。
IF sy-subrc EQ0。
"将数据写入目标路径(应用程序服务器)OPEN DATASET lv_target_path以二进制模式输出。
IF sy-subrc EQ 0.传输lv_output_stream到lv_target_path.ENDIF。
CLOSE DATASET lv_target_path。
ELSE。
RETURN。
ENDIF。**"引发必需的事件*调用函数'BP_EVENT_RAISE '* EXPORTING * eventid ='ZBPC_HCM_FTE'* EXCEPTIONS * bad_eventid = 1 * eventid_does_not_exist = 2 * eventid_missing = 3 * raise_failed = 4 * OTHERS =5。
如果sy-subrc NE 0.RETURN.ENDIF。

ENDMETHOD。

模型数据

缩回后

尺寸

谢谢

一周热门 更多>