Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

How pass period in this function module FMKU_0050_CREATE_WITH_COMMIT

Former Member
0 Likes
1,244

Hello All,

I am using this function Module 'FMKU_0050_CREATE_WITH_COMMIT ' for budget update for all period but

I  want to update periodically through this function module, pass this period but not able update period wise.

Can you suggest me how pass the period in this function.

Code :

LOOP AT IT_FINAL INTO WA_FINAL.

   v_tabix = sy-tabix.
read table it_bud into wa_bud with  key COMMITITEM =  WA_FINAL-racct.

if sy-subrc = 0.

WA_ITEMDATA-FUNDS_CTR = wa_bud-FUNDCENTRE.
endif.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
   EXPORTING
     INPUT         = WA_FINAL-RACCT
  IMPORTING
    OUTPUT        = WA_FINAL-RACCT
           .

WA_ITEMDATA-CMMT_ITEM = WA_FINAL-RACCT.
WA_ITEMDATA-MEASURE = MEASURE.          "  FUNDED PROGRAMME
WA_ITEMDATA-TRANS_CURR = 'INR'.
WA_ITEMDATA-TOTAL_AMOUNT = WA_FINAL-NETSALE.
WA_ITEMDATA-ITEM_NUM = v_tabix.
WA_ITEMDATA-FISC_YEAR = year.
WA_ITEMDATA-BUDCAT = '9F'.
WA_ITEMDATA-BUDTYPE = 'TEST'.
WA_ITEMDATA-FUND = 'EXP'.
WA_ITEMDATA-DISTKEY = '1'.
WA_ITEMDATA-VALTYPE = 'B1'.
APPEND WA_ITEMDATA TO IT_ITEMDATA.

ENDLOOP.

describe table it_itemdata lines lin.
*ENDIF.

"FETCHING ALL THE DATA INTO HEADER-DATA
WA_HEADDATA-FM_AREA = 'CPIL'.
WA_HEADDATA-VERSION = '000'.
WA_HEADDATA-DOCDATE = sy-datum.
WA_HEADDATA-DOCTYPE = '0001'.
WA_HEADDATA-DOCSTATE = '1'.
WA_HEADDATA-PROCESS = 'ENTR'.
APPEND WA_HEADDATA TO IT_HEADDATA.

*data : BUDGETING_PERIOD  TYPE BUKU_PERIOD.
BUDGETING_PERIOD = period.
" fetthing period data
wa_PERIOD_DATA-ITEM_NUM = lin + 1 .
wa_PERIOD_DATA-BUDGETING_PERIOD = BUDGETING_PERIOD.
append wa_PERIOD_DATA to it_PERIOD_DATA.

"FUNCTION MODULE FOR PASS ALL THE VALUE THROUGH BAPI AND COMMIT WORK
CALL FUNCTION 'FMKU_0050_CREATE_WITH_COMMIT'
   EXPORTING
    LANGUAGE                 = 'E'
     header_data              = WA_HEADDATA
    TESTRUN                  = testrun

  IMPORTING
    FMAREA                   = FMAREA
    DOCUMENTYEAR             = DOCUMENTYEAR
    DOCUMENTNUMBER           = DOCUMENTNUMBER
   tables
     item_data                = IT_ITEMDATA[]
*   SENDER_ITEM_DATA         =
   PERIOD_DATA              = it_PERIOD_DATA[]
*   SENDER_PERIOD_DATA       =
*   LONG_TEXT                =
*   EXTENSION_IN             =
     return                   = IT_RETURN[]
           .
"TO DISPLAY MESSAGES IN THE OUTPUT SCREEN
LOOP AT IT_RETURN INTO WA_RETURN.
   WRITE:/ WA_RETURN-TYPE,
           WA_RETURN-ID,
           WA_RETURN-MESSAGE.
ENDLOOP.

Regards

Raju

3 REPLIES 3
Read only

kesavadas_thekkillath
Active Contributor
0 Likes
1,001

First of all remove the function from loop.

Use function BAPI_0050_CREATE

Populate the internal tables inside the loop and call the bapi outside the loop.

In your case the value passed to wa_PERIOD_DATA-ITEM_NUM must be same as WA_ITEMDATA-ITEM_NUM = v_tabix.

Read only

0 Likes
1,001

Hi,

Thanks for your reply.

I use this function Module Still not able to pass Period.

Please send me sample code for updating periodically.

Read only

0 Likes
1,001

Hi mahapatra,

   This function is ok,Under is part of source code.

*****header info

       wa_header-fm_area = ls_data-fm_area.

*****转换版本格式

       call function 'CONVERSION_EXIT_ALPHA_INPUT'

         exporting

           input  = ls_data-version

         importing

           output = ls_data-version.

       wa_header-version = ls_data-version.

       wa_header-docdate = sy-datum.

       wa_header-doctype = 'SF00'.

       wa_header-docstate = '1'.

       wa_header-process = 'ENTR'.

*****item & period info

       l_num = l_num + 1.

       ls_item-item_num = l_num.

       condense ls_item-item_num.

       ls_item-fisc_year = ls_data-fisc_year.

       ls_item-budcat = '9F'.

       ls_item-budtype = 'BI'.

       ls_item-fund = ls_data-fund.

       ls_item-funds_ctr = ls_data-funds_ctr.

       ls_item-cmmt_item = ls_data-cmmt_item.

       ls_item-trans_curr = 'CNY'.

       ls_item-trans_curr_iso = 'CNY'.

       if ls_data-budget_period = 0.    "if budget_period is 0,need input total amount

         ls_item-total_amount = ls_data-total_amount.

         ls_item-distkey = '1'.

       endif.

       ls_item-valtype = 'B1'"预算 未确认

*      ls_item-budget_period = ls_data-budget_period.

       append ls_item to lt_item.

       clear:ls_item.

       if ls_data-budget_period ne 0.

         ls_period-item_num = l_num.

         condense ls_period-item_num.

         ls_period-budgeting_period = ls_data-budget_period.

         ls_period-period_amount = ls_data-total_amount.

         append ls_period to lt_period.

         clear:ls_period.

       endif.