Problem while copying function modules..
Hi,
I am trying to copy a function module called MRM_ENTRY_ERS to Z function module.
Now the problem is there are 6 performs inside the function module and again in those 6 performs there
are around 10s of performs.
So its really hectic to create includes for form-endform for all of those performs.
Is there a way that when I copy all those form-endform without creating includes for every perform ?
I mean is there some easier way to do it ?
Thanks.
Rajesh.
Hi,
I think copy the total Function group MRMN of this FM (MRM_ENTRY_ERS) into new function group like ZMRMN.
Please go to SE80, select function group, enter MRMN, press enter. Select the Function group MRMN, press the right butoon, click copy option, now you enter the new function group like ZMRMN,click copy, then after you select the copy function module(only if you need to Z fm), given the Z FM name and then press copy button, then it copies the function module successfully
subbarao
Similar Messages
-
Problem while creating Function module
Hi All,
I created a TABLE and am using this table in a FUNCTION MODULE as a reference for declaring an internal table in TABLES tab in the function module .
But when i click on the table name its giving an error "TABLES parameters are obsolete! "
Can any one figure out the reasons .....and help me out!!!
Deepika KHi Deepika,
Tables option is said to be Obsolete because these days we use internal tables without header line...
Tables Option in FM considers internally that the table name you mentioned is with a header line and the structure of the internal table will be acting as work area.
It is still included in new version because for Upward compatibility...
As we still use the predefine function modules so they should be even compatible with newer versions so its still there..
But for normal practice it can be used but preferably not to use.. rather you use EXPORT parameter and include internal table like field...
Create a structure first and then a Table type which include the previously defined structure in SE11 and the assign the Table type to the field in EXPORT parameter with TYPE..
Hope this would help u.
Regards
Narin Nandivada. -
Problem while using function module TRIP_EDIT_TEXT_IN_POPUP
Hii,
I am using a fm TRIP_EDIT_TEXT_IN_POPUP to display text editor where the user can write some comments.
This is my code
DATA: TEXTTAB TYPE TABLE OF TDLINE.
DATA: MOREI TYPE MOREI,
EDITOR_TYPE TYPE EDITOR_TYPE.
CALL FUNCTION 'TRIP_EDIT_TEXT_IN_POPUP'
EXPORTING
I_MOREI = MOREI
I_EDITOR_TYPE = EDITOR_TYPE
I_TITLE = 'Title'
I_MODUS = 'C'
TABLES
T_TAB_EDITOR = TEXTTAB
EXCEPTIONS
DEFAULT_TEXT_NOT_FOUND = 1
OTHERS = 2.
The problem is when I am passing a already filled table TEXTTAB (To display data when the screen comes up) It is not working. It is showing the blank editor even if the texttab table is filled.
Does anyone know how to display data using this FM ?you have to pass
I_EDITOR_TYPE
I_EDITOR_KEY
two values in exporting parameter and same value you have to populate in the table parameter.
T_TAB_EDITOR.
i.e.
T_TAB_EDITOR-EDITOR_TYPE should be equal to I_EDITOR_TYPE in exporting parameter and
T_TAB_EDITOR-EDITOR_KEY should be equal to I_EDITOR__KEY in exporting parameter.
Regards
Shiba Prasad Dutta -
Problem while creating Functional module
Hi Experts.
I was trying to create one FM for currency conversion purpose.The code as follows.
FUNCTION Z_TEST_CUR_RATE.
""Local Interface:
*" IMPORTING
*" VALUE(TYPE_OF_RATE) LIKE TCURR-KURST
*" VALUE(DATE) LIKE SY-DATUM
*" VALUE(FOREIGN_CURRENCY) LIKE TCURR-FCURR
*" VALUE(LOCAL_CURRENCY) LIKE TCURR-TCURR
*" EXPORTING
*" VALUE(RATE) TYPE TCURR-UKURS
*" VALUE(TEST) TYPE C
data: rate1 like TCURR-UKURS.
Select SINGLE UKURS from TCURR into RATE1
where KURST = 'TYPE_OF_RATE' and
FCURR = 'FOREIGN_CURRENCY' and
TCURR = 'LOCAL_CURRENCY' and
GDATU = DATE.
if sy-subrc = 0.
rate = rate1.
else.
rate = 1.
ENDFUNCTION.
When ever I try to run this program I am getting the output as rate = 1.I mean to say that the select statement is not at all executed....Can any expects help me out.....
Thanks In advance
Regards,
BalaHi
Try without using the variable RATE1,,and remove the quotes
Select SINGLE UKURS from TCURR into (TCURR-UKURS)
where KURST = TYPE_OF_RATE'and
FCURR = FOREIGN_CURRENCY and
TCURR = LOCAL_CURRENCY and
GDATU = DATE.
regards
Mahesh -
Problem facing in Function module.
Hi friends,
Happy New year to all.
I am facing the problem while crating Function module.
As my requirement:
I need to call this Function module in SAP-BW application area. I am creating this in BW side(SE37).
The intenal table which i am passing to the function module will vary. The structure is not constant.
Data is flowing from one table(source table) to another table(Destination table) . In BW if we want to refer the data in source table in START ROUTINE while loading, we use SOURCE_PACKAGE internal table.
1) I am passing Source_package internal table as ITAB_SOURCE_PACKAGE. (this source_package strucute also not canstant, it will vary)
2) passing second internal table as ITAB1, this structure also vary. I will declare this structure before calling the function module.
In Function module Table tab i given as
PARAMETER TYPE Associated Type
ITAB1 LIKE ANY
ITAB_SOURCE_PACK LIKE ANY
In Import tab:
SOURCEINFOOBJECT pass value
In source code i written as
DATA: WA_SOURCE_PACK like line of ITAB_SOURCE_PACK.
DATA: WA_ITAB1 like line of ITAB1.
LOOP AT ITAB_SOURCE_PACK INTO WA_SOURCE_PACK.
READ TABLE ITAB1 WITH KEY SOURCEINFOOBJECT = WA_SOURCE_PACK-SOURCEINFOOBJECT
INTO WA_ITAB1.
IF SY-SUBRC NE 0.
WA_ITAB1-SOURCEINFOOBJECT = WA_SOURCE_PACK-SOURCEINFOOBJECT.
INSERT WA_ITAB1 INTO TABLE ITAB1.
ENDIF.
ENDLOOP.
(Note: this is piece of code)
While checking i am getting as error
Field "ANY" is unknown. It is neither in one of the specified tablesnor defined by a "DATA" statement. "DATA" statement. "DATA" statement.
For this what i need to do.
As i am not very good in ABAP, pls help me.
Thanks & Regard
MRKHi,
u have to do like this..decalre itab1 and ITAB_SOURCE_PACK in the tables parameter...
so change like this
In Function module Table tab do like this
PARAMETER TYPE Associated Type
ITAB1
ITAB_SOURCE_PACK
In Import tab:
SOURCEINFOOBJECT pass value
In source code i written as
DATA: WA_SOURCE_PACK type ITAB_SOURCE_PACK.
DATA: WA_ITAB1 type ITAB1.
LOOP AT ITAB_SOURCE_PACK INTO WA_SOURCE_PACK.
READ TABLE ITAB1 WITH KEY SOURCEINFOOBJECT = WA_SOURCE_PACK-SOURCEINFOOBJECT
INTO WA_ITAB1.
IF SY-SUBRC NE 0.
WA_ITAB1-SOURCEINFOOBJECT = WA_SOURCE_PACK-SOURCEINFOOBJECT.
INSERT WA_ITAB1 INTO TABLE ITAB1.
ENDIF.
ENDLOOP.
Regards,
Nagaraj -
Problem in using function module parameters in abap program
i want to use the coding present in on one of the function module 'AS_API_INFOSTRUC_FIND' i got the problem using the function module parameters in my abap program.
these are the parameters inside fm
""Lokale Schnittstelle:
*" IMPORTING
*" VALUE(I_FIELDCAT) TYPE AIND_FCAT
*" VALUE(I_FIELDS) TYPE TABLE OPTIONAL
*" VALUE(I_OBLIGATORY_FIELDS) TYPE TABLE OPTIONAL
*" EXPORTING
*" VALUE(E_INFOSTRUC) TYPE AIND_DESC
*" REFERENCE(E_ALL_FIELDS) TYPE TABLE
*" REFERENCE(E_MATCHING_FIELDS) TYPE TABLE
*" EXCEPTIONS
*" NO_INFOSTRUC_FOUND
i want to declare E_ALL_FIELDS parameter in my abap program,
i have declared as
data: E_ALL_FIELDS TYPE TABLE.
but the system throws error that
'type of field 'TABLE' is generic .no table line has been specified'.
i want to use it in my abap program how can i declare in my abap program .You have to declare the table using any specific type.
The type table in the FM is generic so you can pass any type you need.
For instance:
TYPES: BEGIN OF ty_fields,
fieldname LIKE dfies-fieldname,
END OF ty_fields,
TYPES: TY_T_GLU1 LIKE GLU1 OCCURS 0,
ty_t_fields type ty_fields occurs 0.
DATA: lt_info_struct_fields TYPE ty_t_fields WITH HEADER LINE,
lt_matching_fields TYPE ty_t_fields WITH HEADER LINE.
CALL FUNCTION 'AS_API_INFOSTRUC_FIND'
EXPORTING
i_fieldcat = ft_fieldcat-fieldcat
i_fields = ft_fields_filled[]
IMPORTING
e_infostruc = lv_info_struct_name
e_all_fields = lt_info_struct_fields[]
e_matching_fields = lt_matching_fields[]
EXCEPTIONS
no_infostruc_found = 1. -
Type error while calling function module with in FOX formula
Hi,
I am getting following error while calling function module from FOX Formula:
"Types of parameter DAY_IN () and variable J_CALDAY(D) are inconsistent"
Following is the code:
DATA I_CALDAY TYPE 0CALDAY.
DATA N_CALDAY TYPE 0CALDAY.
DATA KYF TYPE KEYFIGURE_NAME.
FOREACH I_CALDAY, KYF.
CALL FUNCTION SLS_MISC_GET_LAST_DAY_OF_MONTH
EXPORTING
DAY_IN = I_CALDAY
IMPORTING
LAST_DAY_OF_MONTH = N_CALDAY.
{KYF, N_CALDAY} = {KYF, L_CALDAY}.
ENDFOR.
Import parameter DAY_IN is of type sy-datum (that inturn is data element SYDATUM of data type DATS - same as 0CALDAY). Not sure why error is being thrown. Any idea? Thanks.
Edited by: SAP_BOY on Dec 4, 2009 5:26 PMHi,
I think It will not identify ,though you have (data element SYDATUM of data type DATS - same as 0CALDAY).Check it out by assigning it through a variable of type D.
Data I_CALDAY TYPE D.
Hope it may work out.
Regards,
Indu -
Hi all,
I am getting an error I can't solve until now.. Who can help?
The Default Trace in the EP 7.0/NWA gives the following information:
Severity: Error
Message: Problem in executing function module:[date]:com.sap.mw.jco.JCO$AbapException: (126) ERROR_IN_PDO: ERROR_IN_PDO
Category: /uwl/service
Location: com.sap.netweaver.bc.uwl.core.connect.abap.FunctionModuleActionHandler
Application: sap.com/tcwddispwda
The UWL connection tests are correct! So, who can help!
There is nothing to find in sap notes or sdn forum
Best regards,
G. LeursHi john,
I am also facing hte same issue.
when the user is trying to approve the Compleated shopping cart from the button availble in the UWL preview , I am getting the below error.
Exception type:com.sap.netweaver.bc.uwl.connect.ConnectorException Message:Wed Aug 25 12:16:52 CEST 2010 (Connector) :com.sap.netweaver.bc.uwl.connect.ConnectorException:Wed Aug 25 12:16:52 CEST 2010 (Connector) :com.sap.mw.jco.JCO$AbapException:ERROR_IN_PDO
we are not passing any ABAP role from teh SRM system.
it would be great if you can share your views regarding this.
Raji -
Performance problem with OLE_FLUSH_CALL function module
Hello Everyone,
I am facing problem with OLE_FLUSH_CALL function module (execution is taking long time which is going to be dump error).
Could you please help me in knowing solution for this problem?
Thanking you in advance.
SrinivasHi Srinivas,
the OLE_FLUSH_CALL does an RFC from ABAP backend to frontend UI. So high execution time could result from high network time, for example latency between UI and backend server.
How many UI interaction steps did you measure for the trace above? Ideally, there should only be one OLE_FLUSH_CALL per user interaction step. If its more, the application is not written in an optimized way.
Best Regards, Randolf -
Problem with the function module SO_DOCUMENT_SEND_API1
Hi Friends,
I am facing the problem wiht the function module SO_DOCUMENT_SEND_API1,
My actull requirement is : - i need to send the sap data to my externa mail id (Like as XYZ@) with out the any attachment , So i have implemented the code with the function module SO_DOCUMENT_SEND_API1.
The mail has successfully sent the sap inbox (SOST) but the mail are not reached to the external mail ID'S( XYZ@GMAIL)
i Have maintained my code lines same as below.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = wa_doc_data
put_in_outbox = ca_x
commit_work = ca_x
TABLES
packing_list = tb_packing_list
contents_txt = tb_mailbody
receivers = tb_receiver.
Can you please tell me soultion ,
Thanks
charan.Hi charan,
If u r able to see the mail in sost, then i think ur code has worked fine. if the mail is not going to outside domains from sost u need to do some configurations for that, u can find lots of configuration docs regarding mail setup in sap.
once try to pass below parameter also.
t_receivers1-rec_type = 'U'.
For configuring mail setup u need to sit with ur basis guy.
Moderator message: please do not use SMS speak.
Edited by: Thomas Zloch on Nov 23, 2010 5:51 PM -
Copying function module (FM) with funtions
Hi all,
I'm trying to copy one function module (FM) called Z1 to another called Z2. Z1 contains lot of functions stored within its includes. After copy functions are referenced to original's includes of Z1. I need them to be copied as well to new includes. Would I try to copy it to diffrent function group or to copy whole group under new name?
Thanks
MartinHello Martin,
I must agree with Ramesh. Copying Function Modules can be a very messy job. In my experience, in case of complicated function modules, it's better to copy the function group and then delete the stuff that's not required.
Regards,
Anand Mandalika. -
Problem with BAPI_SALESORDER_CHANGE function module
I know lot of posts have been done about problems with this function module. However I was not able to find the answer to my problem. Hence posting a new thread
I have the following code which changes the reason rejection (if required to 'ZF') and also updates the sales order quantity.
The code works absolutely fine as long as the PGI date of the order item is either today or in the future. However if the PGI date of the order item is in the past. I get an error in the t_return table with error type 'E' saying 'PGI date is in the past hence could not update the item'.
If I try to update the same order quantity in VA02 for the item with PGI date in the past it does so without any problem.
Can someone please suggest what the problem might be. Or if there is some other way I can update the quantity. (I dont want to use BDC)
FORM change_sales_order_item USING value(r_rtb_posnrs) TYPE zpsd_ztsdrtb_ro_track
CHANGING r_return TYPE type_t_bapiret2.
DATA: v_order_header_in TYPE bapisdh1,
v_order_header_inx TYPE bapisdh1x,
t_schedule_lines TYPE bapischdl OCCURS 0 WITH HEADER LINE,
t_schedule_linesx TYPE bapischdlx OCCURS 0 WITH HEADER LINE,
v_temp_rtb_vbeln TYPE vbeln,
v_temp_rtb_posnr TYPE posnr,
wa_old_rtb_posnrs TYPE ztsdrtb_ro_track,
t_item_in TYPE bapisditm OCCURS 0 WITH HEADER LINE,
t_item_inx TYPE bapisditmx OCCURS 0 WITH HEADER LINE,
v_rtb_old_vbeln TYPE zrtbvbeln,
v_rtb_old_posnr TYPE zrtbposnr,
v_ro_old_vbeln TYPE zrovbeln,
v_ro_old_posnr TYPE zroposnr,
v_rtb_count TYPE i,
v_next_row_index TYPE i,
v_update_order_flg TYPE char1, "Update the sales order flag
v_rtb_record_counter TYPE i,
v_original_vbeln TYPE vbeln,
t_bapiret TYPE STANDARD TABLE OF bapiret2.
FIELD-SYMBOLS: <wa_r_rtb_posnrs> TYPE ztsdrtb_ro_track,
<wa_r_rtb_posnr_next> TYPE ztsdrtb_ro_track.
CONSTANTS: c_updateflag TYPE bapisditmx-updateflag VALUE 'U'.
v_order_header_inx-updateflag = 'U'.
Get rid of the duplicate records for the same RTB order. Just use
the last record quantity in the internal table
LOOP AT r_rtb_posnrs ASSIGNING <wa_r_rtb_posnrs>.
v_rtb_record_counter = v_rtb_record_counter + 1.
<wa_r_rtb_posnrs>-seqnr = v_rtb_record_counter.
ENDLOOP.
SORT r_rtb_posnrs DESCENDING BY zrtbvbeln zrtbposnr seqnr zrtbconsumedflg.
DELETE ADJACENT DUPLICATES FROM r_rtb_posnrs COMPARING zrtbvbeln zrtbposnr.
DESCRIBE TABLE r_rtb_posnrs LINES v_rtb_count.
v_rtb_record_counter = 0.
v_update_order_flg = space.
LOOP AT r_rtb_posnrs ASSIGNING <wa_r_rtb_posnrs>.
v_rtb_record_counter = v_rtb_record_counter + 1.
v_update_order_flg = space.
Popluate the item quantity update flags for schedule lines
t_schedule_linesx-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_schedule_linesx-sched_line = '0001'.
t_schedule_linesx-updateflag = c_updateflag.
t_schedule_linesx-req_qty = 'X'.
APPEND t_schedule_linesx.
CLEAR t_schedule_linesx.
*Item (Order QQuantity Field to be changed "KWMENG")
t_schedule_lines-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_schedule_lines-sched_line = '0001'.
t_schedule_lines-req_qty = <wa_r_rtb_posnrs>-zrtbchgqty.
APPEND t_schedule_lines.
CLEAR t_schedule_lines.
If fully consumed then set the rejection flag
IF <wa_r_rtb_posnrs>-zrtbconsumedflg = 'X'.
t_item_inx-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_item_inx-updateflag = 'X'.
t_item_inx-reason_rej = 'X'.
APPEND t_item_inx.
CLEAR t_item_inx.
t_item_in-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_item_in-reason_rej = 'ZF'.
APPEND t_item_in.
CLEAR t_item_in.
ELSE.
t_item_inx-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_item_inx-updateflag = 'X'.
t_item_inx-reason_rej = 'X'.
APPEND t_item_inx.
CLEAR t_item_inx.
t_item_in-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_item_in-reason_rej = ' '.
APPEND t_item_in.
CLEAR t_item_in.
ENDIF.
If you have reached the last line of the RTB intern table update the sales order
*Index pointing to the next row
v_next_row_index = v_rtb_record_counter + 1.
IF v_rtb_record_counter = v_rtb_count.
v_update_order_flg = 'X'.
ELSEIF v_rtb_record_counter < v_rtb_count.
Get the next row data
READ TABLE r_rtb_posnrs INDEX v_next_row_index ASSIGNING <wa_r_rtb_posnr_next>.
IF sy-subrc = 0.
IF <wa_r_rtb_posnrs>-zrtbvbeln <> <wa_r_rtb_posnr_next>-zrtbvbeln.
v_update_order_flg = 'X'.
ENDIF.
ENDIF.
ELSE.
v_update_order_flg = space.
ENDIF.
update the rtb orders with quantities and the rejection flag (if required)
IF v_update_order_flg = 'X'.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE' STARTING NEW TASK 'SOUPDATE'
PERFORMING callbk_bapi_salesorder_change ON END OF TASK
EXPORTING
salesdocument = <wa_r_rtb_posnrs>-zrtbvbeln
order_header_in = v_order_header_in
order_header_inx = v_order_header_inx
TABLES
return = t_return
schedule_lines = t_schedule_lines
schedule_linesx = t_schedule_linesx
order_item_in = t_item_in
order_item_inx = t_item_inx.
WAIT UNTIL t_return[] IS NOT INITIAL.
READ TABLE t_return INTO wa_return WITH KEY type = 'E'.
IF sy-subrc <> 0.
ELSE.
r_return[] = t_return[].
MESSAGE ID 'ZSD' TYPE 'E' NUMBER 613.
RAISE errorinorderupdate.
ENDIF.
REFRESH t_schedule_linesx.
REFRESH t_schedule_lines.
REFRESH t_item_in.
REFRESH t_item_inx.
REFRESH t_return.
ENDIF.
ENDLOOP.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
IMPORTING
return = t_bapiret.
ENDFORM. "Change_Sales_Ordersee the following example and try to do this:
i_hdrx-updateflag = 'U'.
*" Fill required SCHEDULE_LINES data.
i_sched-itm_number = p_posnr.
i_sched-sched_line = p_etenr.
i_sched-req_qty = p_reqqty.
i_schedx-updateflag = 'U'.
i_schedx-itm_number = p_posnr.
i_schedx-sched_line = p_etenr.
i_schedx-req_qty = 'X'.
APPEND i_sched.
APPEND i_schedx.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = p_vbeln
order_header_in = i_hdr
order_header_inx = i_hdrx
TABLES
return = i_ret
schedule_lines = i_sched
schedule_linesx = i_schedx. -
What is the best way, while creating Function Module based extractor
Hi Friends,
I am Sreekanth.
I have created a Functio Module based Extractor,
To fetch data from COPA tables.
In this extracton 3 tables are getting involved.
1) CE3OP01 2) CE4OP01 and 3) CE1OP01.
Logic required is as follow:
1) get data from CE3OP01 and for all entries of this data set,
get data from CE4OP01 and CE1OP01 and finally send the data set to BW after few manupulations.
I have implemented the whole logic and its working fine in DEVELOPMENT box where data volume is less.
But the same code is timing out in Quality Box, due to huge volues of data.
Below I am copying the code that i am using . Any body can suggest me how to proceed further so that my code works with huge volumes of data.
Now I am getting the time out error while selection data from CE3IOP01 table itself.
FUNCTION /ds1/c_bw_zds_copa_recon.
""Local interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE /DS1/FI_COPA_RECN OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
PROGRAM INFORMATION *
RIEF ID.......: N/A *
PROGRAM.......: /DS1/C_BW_ZDS_COPA_RECON
PROGRAM FUNCTION: This Function Module Extracts Cost Center, Company *
Code, and all Amount fields form CE3OP01 table and sectaktbo "
* Current profitability segment (CO-PA) *
paobjnr " Profitability Segment Number (CO-PA) *
pasubnr " Profitability segment changes (CO-PA) *
bukrs " Company Code
kndnr " Customer from CE4Op01 table. *
Segrigate one record from CE3Op01 into 93 based on Value fields. *
PROGRAM TYPE..Function Module *
DEV. CLASS..../DS1/MI_01 *
LOGICAL DB.... N/A *
Conventions used in the Program *
* global variables --> g_* *
* local variables --> l_* *
* constants --> c_* *
* internal tables --> t_* *
* structures --> x_* *
* parameters --> p_* *
* select-options --> s_* *
* ranges --> r_* *
* workarea --> w_* *
* field symbol --> fs_* *
Declaration for Interface: Selection criteria
STATICS: s_s_if TYPE srsc_s_if_simple,
Maximum number of lines for DB table
ls_s_if TYPE srsc_s_if_simple, "Static Structure
counter
ls_counter_datapakid LIKE sy-tabix,"Static Counter
cursor
ls_cursor TYPE cursor,"Static Cursor.
ls_cursor1 TYPE cursor."Static Cursor.
*CONSTANTS
CONSTANTS: lc_datasource TYPE char14 VALUE 'ZDS_COPA_RECON',
" Data Source Name
lc_msgtype TYPE char1 VALUE 'E', "message type
lc_msgcls TYPE char2 VALUE 'R3', "message class
lc_msgnum TYPE char3 VALUE '009',"Message Number.
lc_001 TYPE char3 VALUE '001',
lc_b0 TYPE char2 VALUE 'B0',
lc_10 TYPE char2 VALUE '10',
lc_01 TYPE char2 VALUE '01',
lc_02 TYPE char2 VALUE '02',
lc_1 TYPE sy-tabix VALUE 1.
*Data Declaration.
DATA: lt_ce3op01 TYPE STANDARD TABLE OF x_ce3op01,
" Internal table for ce3op01
lt_ce3op02 TYPE STANDARD TABLE OF x_ce3op01,
lt_ce4op01 TYPE STANDARD TABLE OF x_ce4op01,
" Internal table for ce4op01
lw_ce3op01 TYPE x_ce3op01,
" Work area for ce3op01
lw_ce3op02 TYPE x_ce3op01, "MOD-002
lw_ce4op01 TYPE x_ce4op01,
" Work area for ce4op01
lw_e_t_data TYPE /ds1/fi_copa_recn,
" Work area for /ds1/fi_copa_recn.
*CE1op01
lt_ce1op01 TYPE STANDARD TABLE OF x_ce1op01,"Internaltable
lw_ce1op01 TYPE x_ce1op01,"Work area for CE1op01.
**CE1op01
lt_fldlist TYPE STANDARD TABLE OF lx_fldlist, "fields list
lw_fldlist TYPE lx_fldlist," FIELDS list work area
lt_flnmval TYPE STANDARD TABLE OF lx_flnmval,"table for splitting
lw_flnmval TYPE lx_flnmval,"work area for spilitting
l_index TYPE i VALUE 1, "to keep track of index.
l_len TYPE i,
l_s_no_recs TYPE sy-tabix VALUE 99,
l_s_loop_from TYPE sy-tabix, "from "MOD-002
l_s_loop_to TYPE sy-tabix, "to"MOD-002
l_norecs TYPE sy-tabix, "MOD-002
l_count TYPE sy-tabix. "MOD-002
*Field Symbols.
FIELD-SYMBOLS:
<fs_flnmval> TYPE lx_flnmval."Field symbol for fild values
Selection Ranges
RANGES: lr_bukrs FOR ce4op01-bukrs, " Range for company code
lr_versi FOR ce3op01-versi," Range for version
lr_paledger FOR ce3op01-paledger,"Range for paledger
lr_vrgar FOR ce3op01-vrgar,"Range for vrgar
lr_gjahr FOR ce3op01-gjahr,"Range for Fiscal year
lr_perbl FOR ce3op01-perbl."Range for perbl
Initialization mode (first call by SAPI) or data transfer mode
IF i_initflag = sbiwa_c_flag_on.
Initialization: check input parameters
buffer input parameters
prepare data selection
Check DataSource validity
IF ls_counter_datapakid = 0.
CASE i_dsource.
WHEN lc_datasource.
WHEN OTHERS.
IF 1 = 2. MESSAGE e009(r3). ENDIF. "#EC *
this is a typical log call. Please write every error message like this
log_write lc_msgtype "'E' "message type
lc_msgcls "'R3' "message class
lc_msgnum "'009' "message number
i_dsource "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDCASE.
APPEND LINES OF i_t_select TO s_s_if-t_select.
APPEND LINES OF i_t_fields TO s_s_if-t_fields.
Fill parameter buffer for data extraction calls
ls_s_if-requnr = i_requnr.
ls_s_if-dsource = i_dsource.
ls_s_if-maxsize = i_maxsize.
ls_s_if-initflag = i_initflag.
Company Code
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_bukrs.
MOVE: i_t_select-sign TO lr_bukrs-sign,
i_t_select-option TO lr_bukrs-option,
i_t_select-low TO lr_bukrs-low,
i_t_select-high TO lr_bukrs-high.
APPEND lr_bukrs.
ENDLOOP.
*Version (0)
*SRSC_S_IF_SIMPLE-T_SELECT
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_versi.
LOOP AT i_t_select INTO s_s_if-t_select WHERE fieldnm = c_versi.
MOVE: i_t_select-sign TO lr_versi-sign,
i_t_select-option TO lr_versi-option,
i_t_select-low TO lr_versi-low,
i_t_select-high TO lr_versi-high.
APPEND lr_versi.
ENDLOOP.
*Currency Type (company code only)
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_paledger.
MOVE: i_t_select-sign TO lr_paledger-sign,
i_t_select-option TO lr_paledger-option.
IF i_t_select-low = lc_b0.
MOVE lc_01 TO lr_paledger-low.
ELSEIF i_t_select-low = lc_10.
MOVE lc_02 TO lr_paledger-low.
ENDIF.
APPEND lr_paledger.
ENDLOOP.
*Record Type
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_vrgar.
MOVE: i_t_select-sign TO lr_vrgar-sign,
i_t_select-option TO lr_vrgar-option,
i_t_select-low TO lr_vrgar-low,
i_t_select-high TO lr_vrgar-high.
APPEND lr_vrgar.
ENDLOOP.
*Fiscal Year
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_gjahr.
MOVE: i_t_select-sign TO lr_gjahr-sign,
i_t_select-option TO lr_gjahr-option,
i_t_select-low TO lr_gjahr-low,
i_t_select-high TO lr_gjahr-high.
APPEND lr_gjahr.
ENDLOOP.
*Period Block/Year
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_perbl.
MOVE: i_t_select-sign TO lr_perbl-sign,
i_t_select-option TO lr_perbl-option,
i_t_select-low TO lr_perbl-low,
i_t_select-high TO lr_perbl-high.
APPEND lr_perbl.
ENDLOOP.
*Value Field Name.
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_fldnm.
MOVE:
i_t_select-sign TO gr_zfldnm-sign,
i_t_select-option TO gr_zfldnm-option,
i_t_select-low TO gr_zfldnm-low,
i_t_select-high TO gr_zfldnm-high.
APPEND gr_zfldnm.
ENDLOOP.
First data package -> OPEN CURSOR
IF ls_counter_datapakid = 0.
*Create 93 Field names in an internal table.
MOVE 'VV010' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV011' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV012' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV013' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV014' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV015' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV016' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV020' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV021' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV030' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV031' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV032' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV033' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV034' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV035' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV200' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV201' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV202' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV203' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV036' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV037' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV038' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV039' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV040' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV041' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV042' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV043' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV204' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV205' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV211' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV212' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV213' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV222' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV223' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV230' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV232' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV233' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV500' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV501' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV502' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV503' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV504' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV505' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV506' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV507' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV508' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV509' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV510' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV511' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV512' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV513' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV514' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV515' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV516' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV517' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV518' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV519' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV520' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV236' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV206' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV051' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV052' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV053' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV054' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV055' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV056' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV057' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV058' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV059' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV060' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV241' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV242' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV243' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV244' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV245' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV246' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV247' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV248' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV249' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV250' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV521' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV522' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV523' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV524' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV525' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV526' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV527' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV528' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV529' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV530' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV227' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV226' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV224' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
OPEN CURSOR WITH HOLD ls_cursor FOR
SELECT
paobjnr " Profitability Segment Number (CO-PA)
paledger " Currency type for an operating concern
vrgar " Record Type
versi " Plan version (CO-PA)
gjahr " Fiscal Year
perbl " Fiscal year/period block
pasubnr
vv010001 " List Price
vv011001 " Formula Price
vv012001 " Customer Price
vv013001 " Manual Price
vv014001 " Retail Pump Price
vv015001 " Markup
vv016001 " Net Proceeds Other
vv020001 " Excise Duty Offset
vv021001 " Duties & Government
vv030001 " Sales Discounts
vv031001 " Sales Surcharges
vv032001 " Sales Rebates
vv033001 " Agents Comm Paid
vv034001 " RBA CR Royalties
vv035001 " Other Revenues
vv200001 " Transfer PriceSupply
vv201001 " Prim Tran Tariff Sup
vv202001 " S&Handling TariffDis
vv203001 " Sec Trans Tariff Dis
vv036001 " Proceeds from Servic
vv037001 " Exchanges
vv038001 " Throughput fees
vv039001 " Output Tax Offset
vv040001 " CR comm & Oth Oil Pr
vv041001 " Supplier fees
vv042001 " RBA Fairshare Adjust
vv043001 " Contr Comm Paid IG
vv204001 " Sec Tran Tariff Supp
vv205001 " Comp Stock Obligatio
vv211001 " Prim Tran Tar Transf
vv212001 " S&Handling Tar Trans
vv213001 " Sec Trans TariffTran
vv222001 " DIS:S&Handl Tar OvUn
vv223001 " DIS:Sec Tr TarifOvUn
vv230001 " Transfer Price LSC
vv232001 " S&Handling Tar LSC
vv233001 " Sec Trans Tariff LSC
vv500001 " 3rd Party Purchases
vv501001 " Transf from Oth Sect
vv502001 " Purchases IG
vv503001 " Inter-Seg Transf Pur
vv504001 " Import Freight
vv505001 " Stock Variations
vv506001 " Other Product Cost
vv507001 " Pipeline Operat Exp
vv508001 " Primary Transp Expen
vv509001 " Manufacturing Expens
vv510001 " Supply /Process Exp
vv511001 " MK Processing Plants
vv512001 " S&Handling Expenses
vv513001 " Sec Transp Expenses
vv514001 " Point of Sale Expens
vv515001 " Contr Comm Rec IG
vv516001 " Assoc Inc Dividend
vv517001 " Marketing & Sell Exp
vv518001 " Other Rev from Dist
vv519001 " Other Rev Transferrd
vv520001 " Stock Write-Off
vv236001 " Oth cost Tar LSC SMP
vv206001 " Prim Trp tariff Dist
vv051001 " CR Net Turnover
vv052001 " Dummy Price 2
vv053001 " Dummy Price 3
vv054001 " Dummy Price 4
vv055001 " Dummy Price 5
vv056001 " Dummy Price 6
vv057001 " Dummy Price 7
vv058001 " Dummy Price 8
vv059001 " Dummy Price 9
vv060001 " Dummy Price10
vv241001 " DummyTariff 1
vv242001 " DummyTariff 2
vv243001 " DummyTariff 3
vv244001 " DummyTariff 4
vv245001 " DummyTariff 5
vv246001 " DummyTariff 6
vv247001 " DummyTariff 7
vv248001 " DummyTariff 8
vv249001 " DummyTariff 9
vv250001 " DummyTariff10
vv521001 " SD&A Rebates
vv522001 " Dummy Cost 2
vv523001 " Dummy Cost 3
vv524001 " Dummy Cost 4
vv525001 " Dummy Cost 5
vv526001 " Dummy Cost 6
vv527001 " Dummy Cost 7
vv528001 " Dummy Cost 8
vv529001 " Dummy Cost 9
vv530001 " Dummy Cost 10
vv227001 " Sec Tr TarifOvUn LSC
vv226001 " S&Handl Tar OvUn LSC
vv224001 " Pr Tra TariffOvU DIS
FROM ce3op01
WHERE paledger = lc_02 AND
vrgar IN lr_vrgar AND
versi IN lr_versi AND
perbl IN lr_perbl AND
gjahr IN lr_gjahr.
ENDIF.
For all other cursors.
FETCH NEXT CURSOR ls_cursor
APPENDING TABLE lt_ce3op02
PACKAGE SIZE ls_s_if-maxsize.
IF sy-subrc <> 0.
EXIT.
ENDIF.
SORT lt_ce3op02 BY paobjnr pasubnr paledger vrgar versi gjahr
perbl.
DELETE ADJACENT DUPLICATES FROM lt_ce3op02 COMPARING paobjnr.
*Begin of MODE-002
DESCRIBE TABLE lt_ce3op02 LINES l_norecs.
l_s_loop_from = lc_1.
DO.
l_s_loop_to = l_s_loop_from + l_s_no_recs.
LOOP AT lt_ce3op02 INTO lw_ce3op02
FROM l_s_loop_from TO l_s_loop_to .
APPEND lw_ce3op02 TO lt_ce3op01.
ENDLOOP.
SORT lt_ce3op01 BY paobjnr.
*End of MOS-002
SELECT
aktbo " Current profitability segment (CO-PA)
paobjnr " Profitability Segment Number (CO-PA)
pasubnr " Profitability segment changes (CO-PA)
kndnr " Customer
artnr
bukrs " Company Code
prctr
kokrs
FROM ce4op01
INTO TABLE lt_ce4op01
FOR ALL ENTRIES IN lt_ce3op01
WHERE paobjnr = lt_ce3op01-paobjnr AND
pasubnr = lt_ce3op01-pasubnr AND
bukrs IN lr_bukrs.
*CE1op01
SELECT
paledger
vrgar
versi
perio
paobjnr
pasubnr
belnr
posnr
rbeln
rposn
FROM ce1op01
INTO TABLE lt_ce1op01
FOR ALL ENTRIES IN lt_ce3op01
WHERE paledger = lt_ce3op01-paledger AND
vrgar = lt_ce3op01-vrgar AND
versi = lt_ce3op01-versi AND
perio = lt_ce3op01-perbl AND
paobjnr = lt_ce3op01-paobjnr AND
pasubnr = lt_ce3op01-pasubnr.
**CE1op01
LOOP AT lt_ce3op01 INTO lw_ce3op01.
MOVE:
lw_ce3op01-paobjnr TO lw_flnmval-paobjnr,
lw_ce3op01-paledger TO lw_flnmval-paledger,
lw_ce3op01-vrgar TO lw_flnmval-vrgar,
lw_ce3op01-versi TO lw_flnmval-versi,
lw_ce3op01-gjahr TO lw_flnmval-gjahr,
lw_ce3op01-perbl TO lw_flnmval-perbl.
*appending all 93 fields as records
MOVE lw_ce3op01-vv010001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv011001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv012001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv013001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv014001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv015001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv016001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv020001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv021001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv030001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv031001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv032001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv033001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv034001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv035001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv200001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv201001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv202001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv203001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv036001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv037001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv038001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv039001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv040001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv041001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv042001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv043001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv204001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv205001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv211001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv212001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv213001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv222001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv223001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv230001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv232001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv233001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv500001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv501001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv502001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv503001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv504001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv505001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv506001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv507001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv508001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv509001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv510001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv511001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv512001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv513001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv514001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv515001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv516001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv517001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv518001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv519001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv520001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv236001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv206001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv051001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv052001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv053001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv054001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv055001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv056001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv057001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv058001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv059001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv060001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv241001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv242001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv243001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv244001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv245001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv246001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv247001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv248001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv249001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv250001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv521001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv522001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv523001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv524001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv525001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv526001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv527001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv528001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv529001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv530001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv227001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv226001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv224001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
*Segrigating all one record into 102 records is complete
ENDLOOP.
LOOP AT lt_flnmval ASSIGNING <fs_flnmval>.
IF l_index > 93.
l_index = 1.
ENDIF.
READ TABLE lt_fldlist INTO lw_fldlist INDEX l_index.
IF sy-subrc = 0.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lw_fldlist-fldnam
IMPORTING
output = <fs_flnmval>-fldnam.
ENDIF.
l_index = l_index + 1.
ENDLOOP.
SORT lt_ce4op01 BY paobjnr.
SORT lt_ce1op01 BY paobjnr paledger vrgar versi.
SORT gr_zfldnm BY low.
DELETE lt_flnmval WHERE fldnam NOT IN gr_zfldnm.
LOOP AT lt_flnmval INTO lw_flnmval.
READ TABLE lt_ce4op01 INTO lw_ce4op01 WITH KEY
paobjnr = lw_flnmval-paobjnr BINARY SEARCH.
IF sy-subrc = 0.
MOVE : lw_flnmval-paledger TO lw_e_t_data-paledger,
lw_flnmval-vrgar TO lw_e_t_data-vrgar,
lw_flnmval-versi TO lw_e_t_data-versi ,
lw_flnmval-gjahr TO lw_e_t_data-gjahr,
lw_flnmval-perbl TO lw_e_t_data-perbl,
lw_ce4op01-bukrs TO lw_e_t_data-bukrs,
lw_ce4op01-kndnr TO lw_e_t_data-kndnr,
lw_ce4op01-artnr TO lw_e_t_data-artnr,
lw_ce4op01-prctr TO lw_e_t_data-prctr,
lw_ce4op01-kokrs TO lw_e_t_data-kokrs,
lw_flnmval-fldnam TO lw_e_t_data-zfldnm,
lw_flnmval-zamunt TO lw_e_t_data-zamount.
CE1op01
READ TABLE lt_ce1op01 INTO lw_ce1op01 WITH KEY
paobjnr = lw_flnmval-paobjnr
paledger = lw_flnmval-paledger
vrgar = lw_flnmval-vrgar
versi = lw_flnmval-versi BINARY SEARCH.
IF sy-subrc = 0.
MOVE: lw_ce1op01-rbeln TO lw_e_t_data-rbeln,
lw_ce1op01-rposn TO lw_e_t_data-rposn.
ENDIF.
CE1op01
APPEND lw_e_t_data TO gt_out_data.
ENDIF.
ENDLOOP.
*Begin of MOD-002
FREE lt_flnmval.
REFRESH :lt_ce3op01,lt_ce4op01,lt_ce1op01.
e_t_data[] = gt_out_data[].
DELETE e_t_data WHERE zfldnm NOT IN gr_zfldnm.
l_s_loop_from = l_s_loop_to + lc_1.
l_count = l_count + 20.
IF l_count GE l_norecs.
EXIT.
ENDIF.
ENDDO.
*End of MOD-002
ls_counter_datapakid = ls_counter_datapakid + 1.
ENDIF. "IF S_COUNTER_DATAPAKID = 0
ELSE.
IF i_maxsize IS INITIAL.
RAISE error_passed_to_mess_handler.
ENDIF.
IF g_start IS INITIAL.
g_start = 1.
ELSE.
g_start = g_end + 1.
ENDIF.
g_end = g_start + i_maxsize - 1.
Population of E_T_DATA based on Data records size
APPEND LINES OF gt_out_data FROM g_start TO g_end TO e_t_data.
DELETE e_t_data WHERE zfldnm NOT IN gr_zfldnm.
IF e_t_data[] IS INITIAL.
RAISE no_more_data.
ENDIF.
ls_counter_datapakid = ls_counter_datapakid + 1.
ENDIF.
ENDFUNCTION.
Thanks & regards,
Sreekanth
+91 9740091981Hello Sreekanth,
See this blog [Generic Extraction via Function Module|/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module]
Also see this
[Line Item Level Data Extraction for Financial Accounting and Controlling|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a7f2f294-0501-0010-11bb-80e0d67c3e4a]
Thanks
Chandran -
Error while activating function module
Hi,
I copied a standard SAP function module L_TO_CREATE_DN.
When i activated the function group it throws an error saying that " Field "I_COMMIT_WORK" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement".
All the global data has been copied properly in the TOP include but still while activating the function group we are getting the above said error.
If anyone has encountered same kind of issue.......Please guide.
Thanks and regards,
RameshI was also facing the same issue, when I tried copying just 1 or 2 FM's from that FG L03B.
Finally, I copied the whole function group, including all FM's into Z FG, and FM's, and it got activated w/o any hitches. Looks like there is lot of dependency between the includes and FM's code.
Regards
Deepthi -
Problem in creating Function Module
Hi,
while creating a function (Z_SPELL_AMOUNT_INDIA) one error is coming . the error <b>'SPELL not declared</b> ' is coming. already the Function module is running correctly in different client(another client's place) i am just download the Function module from the existing implementation site and upload the function module in new client's place. both the Projects are mySAP ECC 5.0.
Here first i have created a function group and under the Function group itself i am uploading the FM.
How can i declare the SPELL?
is there any rules to be follow while creating the Function Group?
Thanks,
Neptune.MBefore you copy the function module check the following
1. Check the TOP include copied properly or not
2. Check any form routine (if existing) copied or not
3. In the Import, Export & tables if you are pointing to any DDIC structures, check whether they are copied or not.
While activating the function module CHOOSE ALL THE INCLUDES AND FUNCTION GROUP AT A TIME, AND THEN ACTIVATE ALL.
I hope this helps you.
- Raj
Maybe you are looking for
-
Hello, I'm looking at how to downgrade my OS from windows 8 (pre-packaged from PCCASEGEAR) to windows 7, I have re-initialized my 2x 64gb SSD's RAID 0 setup when I go to install windows it complains that the BIOS doesn't allow booting from the drive.
-
997 Acknowledgement Timeout Settinsg - X12 EDI
Hi, In Covast, there is an option setup for timeout period on functional and technical acknowledgements. Can we setup same on BizTalk Server 2013? How would system know that the particular interchange did not receive the 997s in predefined time? For
-
Does anyone know if there is a text box generator for InDesign
Is there a text box generator in InDesign that will allow you to create a text box with XXX amount of words in it? I work for a newspaper pagination desk and we always get asked to keep a hole for a story that may have 500 words in it. If there is su
-
Simple REGEx Group Question...
Hi, Can someone please explain something with RegEx's to me concerning groups? In the following code: Pattern p = Pattern.compile("([A-Z][a-z]+) ([a-z]+) .*"); Matcher m = p.matcher("Aus bus L. 1771"); if (m.matches()) { System.out.println("Grou
-
Where did the tutorial to migrate SQL Server go?
Hi, There was a great tutorial on how to do this on: http://st-curriculum.oracle.com/obe/db/hol08/sqldev_migration/mssqlserver/migrate_microsoft_sqlserver_otn.htm Where did it go? I cannot get to this link anymore. Thanks, Scott