‎2008 Mar 18 2:16 PM
Hi
I am trying to post data into Funds Management Budgeting from BIW. The report is showing that no errors occurred but no data is being posted into funds management.
The doc number is being created, and the header is created correctly but line items are not posted.
also manually testing the Bapi, i am getting the same results
&----
*& Report Z_POST_CO_DATA3
*&
&----
*&
*&
&----
REPORT z_post_co_data2.
PARAMETERS fiscyear(4).
PARAMETERS pfund LIKE rgsbm-shortname.
PARAMETERS fndctr(10).
PARAMETERS farea(15).
TYPE-POOLS : rs,rsdrc.
TYPE-POOLS: rs, rsdrc.
TYPES: BEGIN OF gt_s_data,
0fiscper3(3) TYPE n,
0fund type BP_GEBER,
0funds_ctr type FISTL,
0cmmt_item type FM_FIPEX,
0func_area type FKBER,
0version type BUKU_VERSION,
0fm_amount1 type p decimals 2,
0fm_amount2 type p decimals 2,
0amount type p decimals 2,
0fiscyear(4) type n,
END OF gt_s_data.
DATA: g_s_sfc TYPE rsdri_s_sfc,
g_th_sfc TYPE rsdri_th_sfc,
g_s_range TYPE rsdri_s_range,
g_th_range TYPE rsdri_t_range,
g_s_sfk TYPE rsdri_s_sfk,
g_th_sfk TYPE rsdri_th_sfk,
g_t_sfc TYPE rsdri_t_sfc,
g_t_sfk TYPE rsdri_t_sfk,
g_t_rfcdata TYPE rsdri_t_rfcdata,
e_t_field TYPE rsdp0_t_field,
g_t_data TYPE STANDARD TABLE OF gt_s_data,
g_s_data TYPE gt_s_data.
DATA: g_end_of_data TYPE rs_bool,
g_first_call TYPE rs_bool.
DATA wa TYPE gt_s_data.
DATA : header_data LIKE bapi_0050_header.
DATA : item_data LIKE bapi_0050_item OCCURS 0 WITH HEADER LINE.
DATA : period_data LIKE bapi_0050_period OCCURS 0 WITH HEADER LINE.
DATA : g_t_data2 TYPE STANDARD TABLE OF gt_s_data WITH HEADER LINE.
DATA : return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA : count TYPE i VALUE 1.
DATA : is_return_comm LIKE bapiret2.
g_end_of_data = rs_c_false.
g_first_call = rs_c_true.
PERFORM insert_characteristics.
*
*
o Insert Key Figures
PERFORM insert_keyfigures.
*
*
o Read the infocube
PERFORM read_infocube_records.
*
PERFORM sort_data.
populate header
PERFORM populate_header.
*pupulate items
PERFORM populate_items.
PERFORM post_data.
SKIP.
LOOP AT return.
WRITE 😕 return-type,
2 return-id,
22 return-number,
25 return-message.
ENDLOOP.
&----
*& Form insert_characteristics
&----
text
-
FORM insert_characteristics .
CLEAR g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0FISCPER3'.
g_s_sfc-chaalias = '0FISCPER3'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0FUND'.
g_s_sfc-chaalias = '0FUND'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0FUNDS_CTR'.
g_s_sfc-chaalias = '0FUNDS_CTR'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0CMMT_ITEM'.
g_s_sfc-chaalias = '0CMMT_ITEM'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0VERSION'.
g_s_sfc-chaalias = '0VERSION'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
CLEAR g_s_sfc.
g_s_sfc-chanm = '0FUNC_AREA'.
g_s_sfc-chaalias = '0FUNC_AREA'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
0FISCALYEAR
CLEAR g_s_sfc.
g_s_sfc-chanm = '0FISCYEAR'.
g_s_sfc-chaalias = '0FISCYEAR'.
g_s_sfc-orderby = 0.
INSERT g_s_sfc INTO TABLE g_th_sfc.
ENDFORM. " insert_characteristics
*
*&----
**& Form insert_keyfigures
*&----
*
o text
*----
*
o --> p1 text
o <-- p2 text
*----
FORM insert_keyfigures .
CLEAR g_th_sfk.
CLEAR g_s_sfk.
g_s_sfk-kyfnm = '0FM_AMOUNT1'.
g_s_sfk-kyfalias = '0FM_AMOUNT1'.
g_s_sfk-aggr = 'SUM'.
INSERT g_s_sfk INTO TABLE g_th_sfk.
CLEAR g_th_sfk.
g_s_sfk-kyfnm = '0FM_AMOUNT2'.
g_s_sfk-kyfalias = '0FM_AMOUNT2'.
g_s_sfk-aggr = 'SUM'.
INSERT g_s_sfk INTO TABLE g_th_sfk.
CLEAR g_s_sfk.
g_s_sfk-kyfnm = '0AMOUNT'.
g_s_sfk-kyfalias = '0AMOUNT'.
g_s_sfk-aggr = 'SUM'.
INSERT g_s_sfk INTO TABLE g_th_sfk.
ENDFORM. " insert_keyfigures
&----
*& Form read_infocube_records
&----
text
-
FORM read_infocube_records.
CALL FUNCTION 'RSDRI_INFOPROV_READ'
EXPORTING
i_infoprov = 'ZGRZ_PBU2'
i_th_sfc = g_th_sfc
i_th_sfk = g_th_sfk
i_t_range = g_th_range
I_TH_TABLESEL =
I_T_RTIME =
i_reference_date = sy-datum
i_rollup_only = ' '
I_T_REQUID =
I_SAVE_IN_TABLE = ' '
I_TABLENAME =
I_SAVE_IN_FILE = ' '
I_FILENAME =
i_packagesize = ' '
i_maxrows = 0
i_authority_check = rsdrc_c_authchk-read
i_currency_conversion = ' '
i_use_db_aggregation = ' '
i_use_aggregates = ' '
i_read_ods_delta = ' '
I_CALLER = RSDRS_C_CALLER-RSDRI
I_DEBUG = RS_C_FALSE
I_CLEAR = RS_C_FALSE
IMPORTING
e_t_data = g_t_data
e_end_of_data = g_end_of_data
E_AGGREGATE =
E_SPLIT_OCCURRED =
E_T_MSG =
CHANGING
c_first_call = g_first_call
EXCEPTIONS
illegal_input = 1
illegal_input_sfc = 2
illegal_input_sfk = 3
illegal_input_range = 4
illegal_input_tablesel = 5
no_authorization = 6
illegal_download = 7
illegal_tablename = 8
trans_no_write_mode = 9
inherited_error = 10
x_message = 11
OTHERS = 12.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WRITE : sy-subrc.
ENDIF.
ENDFORM. "read_infocube_records
FORM populate_header .
CLEAR header_data.
header_data-fm_area = 'GRZ'.
header_data-version = '000'.
header_data-docdate = sy-datum.
header_data-pstng_date = sy-datum.
header_data-doctype = 'GRZR'.
header_data-docstate = '10'.
header_data-process = 'ENTR'.
header_data-external_number =
ENDFORM. " populate_header
&----
*& Form POPULATE_ITEMS
&----
text
-
FORM populate_items .
LOOP AT g_t_data2 INTO wa.
item_data-item_num = count.
item_data-fisc_year = wa-0fiscyear.
item_data-budcat = '9G'.
item_data-budtype = 'GZR1'.
item_data-fund = wa-0fund.
item_data-funds_ctr = wa-0funds_ctr.
item_data-cmmt_item = wa-0cmmt_item.
item_data-func_area = wa-0func_area.
*item_data-MEASURE =
*item_data-GRANT_NBR =
item_data-trans_curr = 'ZMK'.
*item_data-TRANS_CURR_ISO =
item_data-total_amount = wa-0fm_amount2.
item_data-distkey = '1'.
*item_data-ITEM_TEXT =
item_data-valtype = 'R1'.
*item_data-CASH_YEAR =
*************************************************************
period_data-ITEM_NUM = count.
period_data-budgeting_period = wa-0fiscper3.
period_data-period_amount = wa-0fm_amount2.
APPEND period_data.
APPEND item_data.
ADD 1 TO count.
ENDLOOP.
ENDFORM. " POPULATE_ITEMS
&----
*& Form SORT_DATA
&----
text
-
--> p1 text
<-- p2 text
-
FORM sort_data .
LOOP AT g_t_data INTO wa.
IF wa-0fiscper3 NE '000' AND wa-0version NE '000' AND wa-0fm_amount2 GE 0 AND wa-0fund IS NOT INITIAL AND wa-0fiscyear EQ fiscyear and wa-0fund = pfund.
IF wa-0fiscper3 NE '000' AND wa-0version NE '000' AND wa-0fm_amount2 GE 0
AND wa-0fund IS NOT INITIAL AND wa-0fiscyear EQ fiscyear AND wa-0fund = pfund AND wa-0funds_ctr = fndctr AND wa-0func_area = farea .
MOVE-CORRESPONDING wa TO g_t_data2.
APPEND g_t_data2.
ENDIF.
ENDLOOP.
ENDFORM. " SORT_DATA
&----
*& Form POST_DATA
&----
text
-
--> p1 text
<-- p2 text
-
FORM post_data .
BREAK-POINT.
CALL FUNCTION 'BAPI_0050_CREATE'
EXPORTING
LANGUAGE = ' '
header_data = header_data
HEADER_DATA_ADD =
testrun = ' '
IMPORTING
FMAREA =
DOCUMENTYEAR =
DOCUMENTNUMBER =
TABLES
item_data = item_data
SENDER_ITEM_DATA =
PERIOD_DATA = period_data
SENDER_PERIOD_DATA =
LONG_TEXT =
EXTENSION_IN =
return = return
.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = '5'
IMPORTING
return = is_return_comm.
WRITE : / 'Bapi Successful'.
ELSE.
WRITE : / 'Bapi Not Successful', sy-subrc.
ENDIF.
ENDFORM. " POST_DATA
Edited by: Alvaro Tejada Galindo on Mar 18, 2008 6:11 PM
‎2008 Mar 18 10:13 PM
try to uncomment these
item_data-total_amount = wa-0fm_amount2.
item_data-distkey = '1'.