How to modify DataBase Table with an internal Table
Hi, Friends.
I am coping Data from a Database table to an internal table after modifying data in the internal table I want to modify the db table according to the modification in the internal table. can some one help me out in this way, i am doing this modification in Table Control in Screen programing.
My Code is as follow.
MODULE zfsl_stinf_tc_init OUTPUT.
IF tc_copy IS INITIAL.
SELECT * INTO CORRESPONDING FIELDS OF TABLE it_zfsl_stinf FROM zfsl_stinf.
tc_copy = 'X'.
REFRESH CONTROL 'TC_FOR_ZFSL_STINF' FROM SCREEN '0001'.
ENDIF.
ENDMODULE. " zfsl_stinf_init OUTPUT
*& Module zfsl_stinf_tc_move OUTPUT
text
MODULE zfsl_stinf_tc_move OUTPUT.
MOVE-CORRESPONDING wa_it_zfsl_stinf TO zfsl_stinf.
ENDMODULE. " zfsl_stinf_tc_move OUTPUT
*& Module STATUS_0001 OUTPUT
text
MODULE status_0001 OUTPUT.
SET PF-STATUS 'ZFSL_SCREEN_1ONLY'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0001 OUTPUT
*& Module zfsl_stinf_tc_modify INPUT
text
MODULE zfsl_stinf_tc_modify INPUT.
MOVE-CORRESPONDING zfsl_stinf TO wa_it_zfsl_stinf.
MODIFY it_zfsl_stinf FROM wa_it_zfsl_stinf INDEX tc_for_zfsl_stinf-current_line.
_*"" here i have the modified internal table " it_zfsl_stinf "*_
ENDMODULE. " zfsl_stinf_tc_modify INPUT
Kind regards,
Faisal
Hi
Here you are modifying your dbtable in module pool programming
so better to use work area to modify the database table
example:
data: itab type table of zfsl_stinf .
data: wa_itab type itab.
select single * from zfsl_stinf INTO itab WHERE <condition>
(pass your values to wa_itab.)
modify zfsl_stinf from values of wa_itab.
Regards
Srinivasu
Similar Messages
-
How to do parallel processing with dynamic internal table
Hi All,
I need to implement parallel processing that involves dynamically created internal tables. I tried doing so using RFC function modules (using starting new task and other such methods) but didn't get success this requires RFC enabled function modules and at the same time RFC enabled function modules do not allow generic data type (STANDARD TABLE) which is needed for passing dynamic internal tables. My exact requirement is as follows:
1. I've large chunk of data in two internal tables, one of them is formed dynamically and hence it's structure is not known at the time of coding.
2. This data has to be processed together to generate another internal table, whose structure is pre-defined. But this data processing is taking very long time as the number of records are close to a million.
3. I need to divide the dynamic internal table into (say) 1000 records each and pass to a function module and submit it to run in another task. Many such tasks will be executed in parallel.
4. The function module running in parallel can insert the processed data into a database table and the main program can access it from there.
Unfortunately, due to the limitation of not allowing generic data types in RFC, I'm unable to do this. Does anyone has any idea how to implement parallel processing using dynamic internal tables in these type of conditions.
Any help will be highly appreciated.
Thanks and regards,
Ashintry the below code...
DATA: w_subrc TYPE sy-subrc.
DATA: w_infty(5) TYPE c.
data: w_string type string.
FIELD-SYMBOLS: <f1> TYPE table.
FIELD-SYMBOLS: <f1_wa> TYPE ANY.
DATA: ref_tab TYPE REF TO data.
CONCATENATE 'P' infty INTO w_infty.
CREATE DATA ref_tab TYPE STANDARD TABLE OF (w_infty).
ASSIGN ref_tab->* TO <f1>.
* Create dynamic work area
CREATE DATA ref_tab TYPE (w_infty).
ASSIGN ref_tab->* TO <f1_wa>.
IF begda IS INITIAL.
begda = '18000101'.
ENDIF.
IF endda IS INITIAL.
endda = '99991231'.
ENDIF.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
pernr = pernr
infty = infty
begda = '18000101'
endda = '99991231'
IMPORTING
subrc = w_subrc
TABLES
infty_tab = <f1>
EXCEPTIONS
infty_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
subrc = w_subrc.
ELSE.
ENDIF. -
How to decompose a string with ';' into Internal table
Hello all,
I need your help for find a Function module or Abap code.
I have a file with the separator is the ';'
Example of the contains of my file :
521010;16;46048,00;;*Soucet*Odmena za
524012;41;103807,00;;Zdrav.p.organizace
524012;42;;18332,00;Zdrav.p.organizace
I want a module function which can separate all the String separate by a ';' into a internal table :
for example my internal table have 5 column :
Num......|.....CC.....|............Credit....|...........Debit........|.....Label
521010....|.....16.....|......46048,00.....|...........................|.....Soucet**Odmena za
524012....|.....41.....|......103807,00...|...........................|.....Zdrav.p.organizace
524012....|.....42.....|..........................|........18332,00....|.....Zdrav.p.organizace
For read the date of my file is not a problem with ABAP Code :
DO.
CLEAR : ws_facm.
break epetrini.
READ DATASET myFile INTO test.
IF sy-subrc EQ 0.
IF ws_facm-codenreg = 'D'.
APPEND ws_facm TO wt_facm.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
Thank you for your helps.
Best regards Emilien
Edited by: Emilien P. on Mar 31, 2010 4:30 PM
Edited by: Emilien P. on Mar 31, 2010 4:34 PM
Edited by: Emilien P. on Mar 31, 2010 4:35 PM
Edited by: Emilien P. on Mar 31, 2010 4:36 PMHi,
Try whith this:
DATA: str1 TYPE string,
str2 TYPE string,
str3 TYPE string,
itab TYPE TABLE OF string,
text TYPE string.
text = `What a drag it is getting old`.
SPLIT text AT space INTO: str1 str2 str3,
TABLE itab.
Let me know if it works.
Regards,
Moh. -
Internal table with an internal table
Hi,
I have following definition:
TYPES: BEGIN OF ty_pos,
numbertype(29) TYPE c,
number(29) TYPE c,
END OF ty_pos.
DATA: gt_pos TYPE STANDARD TABLE OF ty_pos,
gs_pos LIKE LINE OF gt_pos.
TYPES: BEGIN OF ty_struc,
city(29) TYPE c,
country(29) TYPE c,
name(29) TYPE c,
pos LIKE gt_pos,
END OF ty_struc.
DATA: gt_tab TYPE STANDARD TABLE OF ty_struc,
gs_tab LIKE LINE OF gt_tab.
The problem is that the system don't know the fields when I say
gs_tab-pos-number = 'test'.
How should I write the syntax therefore?Hi,
Check the code
TYPES : BEGIN OF t_gr,
wrbtr TYPE ekbe-wrbtr,
menge TYPE ekbe-menge,
bwart TYPE ekbe-bwart,
END OF t_gr.
DATA : i_gr TYPE TABLE OF t_gr.
TYPES : BEGIN OF t_ekbe,
ebeln TYPE ekbe-ebeln,
ebelp TYPE ekbe-ebelp,
*llggr LIKE i_gr,*
END OF t_ekbe.
DATA : i_ekbe TYPE TABLE OF t_ekbe.
SELECT ebeln
ebelp
wrbtr
FROM ekbe
INTO TABLE i_ekbe1
FOR ALL ENTRIES IN i_data1
WHERE ebeln = i_data1-ebeln AND
ebelp = i_data1-ebelp AND
bewtp = c_e AND
( bwart = c_101 OR
bwart = c_102 OR
bwart = c_103 OR
bwart = c_104 ).
loop at i_ekbe1 into wa_ekbe1.
wa_ekbe = wa_ekbe1.
wa_gr-wrbtr = wa_ekbe-wrbtr
append wa_gr to i_gr.
on change of wa_ekbe1-ebeln.
INSERT LINES OF i_gr INTO wa_ekbe-llggr INDEX 1.
APPEND wa_ekbe TO i_ekbe.
endon.
edloop.
the above code the ekbe table is having one move itab l_gr
l_gr is updated in each loop and and each change the i_ekbe is updated with one set of l_gr data as internal table line for i_ekbe.
Here u need to refer each table seperately.
parent table(EKKO) line has the child tables(EKPO).
regards,
Nandha -
How to write a perform with dynamic internal table
Hi to all experts,
i have to read infotype 2001 2003 2002 with same pernr, begin date, end date im calling hr_read_infotype three times
can i write a single perform and call it three how to pass different tables (2001, 2002, 2003).try the below code...
DATA: w_subrc TYPE sy-subrc.
DATA: w_infty(5) TYPE c.
data: w_string type string.
FIELD-SYMBOLS: <f1> TYPE table.
FIELD-SYMBOLS: <f1_wa> TYPE ANY.
DATA: ref_tab TYPE REF TO data.
CONCATENATE 'P' infty INTO w_infty.
CREATE DATA ref_tab TYPE STANDARD TABLE OF (w_infty).
ASSIGN ref_tab->* TO <f1>.
* Create dynamic work area
CREATE DATA ref_tab TYPE (w_infty).
ASSIGN ref_tab->* TO <f1_wa>.
IF begda IS INITIAL.
begda = '18000101'.
ENDIF.
IF endda IS INITIAL.
endda = '99991231'.
ENDIF.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
pernr = pernr
infty = infty
begda = '18000101'
endda = '99991231'
IMPORTING
subrc = w_subrc
TABLES
infty_tab = <f1>
EXCEPTIONS
infty_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
subrc = w_subrc.
ELSE.
ENDIF. -
Using where condition with dynamic internal table
Hi Friends.
How to use where condition with dynamic internal table ?
Regards,
Amit RautHai Amit
REPORT ZDYNAMIC_SELECT .
TABLES: VBAK.
DATA: CONDITION TYPE STRING.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
END OF ITAB.
SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN.
CONCATENATE 'VBELN' 'IN' 'S_VBELN.'
INTO CONDITION SEPARATED BY SPACE.
SELECT VBELN POSNR FROM VBAP INTO TABLE ITAB
WHERE (CONDITION).
LOOP AT ITAB.
WRITE 'hello'.
ENDLOOP.
Thanks & Regards
Sreenivasulu P -
2 different tables in the main window with same internal table data
Hi All,
can we have 2 diffterent tables with same internal table data into its work area in the main window.Is it possible or we will get any run time error.?
is it like having 2 nested loop with same internal table ?
ex : loop at itab1 into wa_itab.
loop at itab1 into wa_itab.
endloop.
endloop.
can we use like this?Hi,
there will not be any error ...but what is the use of it...
do you need to have a controlled way of display ...of the data...
If so then you create another workarea in the global definitions of the same type and then use it...
Regards,
Ram -
How can i pass calculated value to internal table
Hi
i have to pass calculated value into internal table
below field are coming from database view and i' m passing view data into iznew1
fields of iznew1
LIFNR LIKE EKKO-LIFNR,
EBELN LIKE EKKO-EBELN,
VGABE LIKE EKBE-VGABE,
EBELP LIKE EKBE-EBELP,
BELNR LIKE EKBE-BELNR,
MATNR LIKE EKPO-MATNR,
TXZ01 LIKE EKPO-TXZ01,
PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,
KOSTL LIKE EKKN-KOSTL,
NAME1 LIKE LFA1-NAME1,
NAME2 LIKE LFA1-NAME2,
WERKS LIKE EKPO-WERKS,
NETWR LIKE EKPO-NETWR,
KNUMV LIKE EKKO-KNUMV,
GJAHR LIKE EKBE-GJAHR,
and now i want to pass
one field ED1 which i has calculated separatly and i want to pass this value into iznew1
but error is coming that iznew1 is a table with out header line has no component like ED1.
so how can i pass calculated value to internal table iznew1,When you declare your internal table , make an addtion occurs 0
eg . data : begin of iznew occurs 0 ,
fields ...
add the field here ed1.
end of iznew.
now when you are calculating the value of ed1,
you can pass the corresponding value of ed1 and modify table iznew.
eg
loop at iznew.
iznew-ed1 = ed1.
modify iznew.
endloop. -
Updating database table from an internal table
Hi All,
I am updating a database table from an internal table.
I am changing the non-key fields in that table.
when I check sy-subrc = 4.
Record already exists, because I am changing non-key fields of the
database table.
Is there any addition like to accept the duplicate keys with update.
Alternatively, I have used Modify, It is adding new record,
Again, I have search the old record and use Delete on the database table.
Thanks & Regards,
Kalyan Chandramouli
SAP ABAP ConsultantHi,
You are right, the field which I am trying to change is a part of primary key.
Because, sy-subrc = 4. says,
No line with specified primary key exits in the database table.
I have a Z-tabel, with Kunnr Vkorg Matnr Bzirk Bztxt Split_percentage
In this table primary key consists of KunnrVkorgMatnr+Bzirk.
I am able to change the Split_percentage using UPDATE.
Now, my client want to change Bzirk, Bztxt also in the table.
How can I Go.
Thanks & Regards,
Kalyan Chandramouli
SAP ABAP Consultant -
ABAP to XML with several internal tables
hi,
i have to make a XML file with this structure :
<Order>
<OrderHeader>
<i>...[fields of header]...</i>
</OrderHeader>
<OrderItem>
<i>...[fields of item 10]...</i>
</OrderItem>
<OrderItem>
<i>...[fields of item n]...</i>
</OrderItem>
</Order>
and that for several orders...
I don't know anything about XML, XLST and since 1 day just start to read doc, tutorial.. and i can't say i'm understanding everythings..
so, in a first step, i have tried to export several Order headers :
I have done a XSLT (thanks to another topic/replies in the forum) and call it with CALL TRANSFORMATION and it works good...
now,and here i need a little help, i would like to know :
1-is it possible to work with 2 internal tables and in this case, how to make XLST looping all item for each header?
2-or should i use only one internal table with deep structure?
Regards,
Christophe
The XSLT
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sapxsl="http://www.sap.com/sapxsl" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<Order>
<xsl:for-each select="//item">
<OrderHeader>
<OrderNo>
<xsl:value-of select="AUFNR"/>
</NoOT>
</OrderHeader>
</xsl:for-each>
</Order>
</xsl:template>
</xsl:transform>Hi,
Here is the sample code.
* Databases
TABLES:
makt, "Mat description
marc, "Material / plant
t001w, "plant name
bhdgd. "Batch heading
* Internal tables
DATA:
BEGIN OF gt_marc OCCURS 0,
werks LIKE marc-werks,
matnr LIKE marc-matnr,
END OF gt_marc,
* Table to be downloaded as xml. Each line stores start and end tags
* and the value
BEGIN OF gt_xml OCCURS 0,
line(120),
END OF gt_xml,
g_maktx(120).
* User-input
SELECT-OPTIONS:
s_werks FOR marc-werks,
s_matnr FOR marc-matnr.
START-OF-SELECTION.
* Extract all required data
PERFORM main_processing.
END-OF-SELECTION.
SORT gt_marc BY werks matnr.
LOOP AT gt_marc.
AT FIRST. "First tag must be root
CLEAR gt_xml.
gt_xml-line = '<LOCATIONS>'.
APPEND gt_xml.
CLEAR gt_xml.
ENDAT.
AT NEW werks. "At new plant
PERFORM read_plant.
FORMAT COLOR 4 ON.
SKIP 1.
WRITE :/ gt_marc-werks, t001w-name1.
FORMAT COLOR 4 OFF.
CLEAR gt_xml.
gt_xml-line = ' <PLANT>'.
APPEND gt_xml.
CLEAR gt_xml.
CONCATENATE ' <NUMBER>' gt_marc-werks '</NUMBER>'
INTO gt_xml-line.
APPEND gt_xml.
CLEAR gt_xml.
CONCATENATE ' <NAME>' t001w-name1 '</NAME>' INTO gt_xml-line.
APPEND gt_xml.
CLEAR gt_xml.
gt_xml-line = ' </PLANT>'.
APPEND gt_xml.
CLEAR gt_xml.
ENDAT.
PERFORM read_description.
CLEAR gt_xml.
gt_xml-line = ' <MATERIAL>'.
APPEND gt_xml.
CLEAR gt_xml.
CONCATENATE ' <NAME>' g_maktx '</NAME>'
INTO gt_xml-line.
APPEND gt_xml.
CLEAR gt_xml.
CONCATENATE ' <NUMBER>' gt_marc-matnr '</NUMBER>'
INTO gt_xml-line.
APPEND gt_xml.
CLEAR gt_xml.
gt_xml-line = ' </MATERIAL>'.
APPEND gt_xml.
CLEAR gt_xml.
* display data
FORMAT COLOR 2 ON.
WRITE :/ gt_marc-matnr, makt-maktx.
FORMAT COLOR 2 OFF.
ENDLOOP.
* The last tag must be the root closing tag --*
gt_xml-line = '</LOCATIONS>'.
APPEND gt_xml.
CLEAR gt_xml.
CALL FUNCTION 'DOWNLOAD'
EXPORTING
filename = 'C:PLANT1.XML'
filetype = 'ASC'
TABLES
data_tab = gt_xml.
TOP-OF-PAGE.
MOVE sy-title TO bhdgd-line1.
MOVE sy-repid TO bhdgd-repid.
MOVE sy-uname TO bhdgd-uname.
MOVE sy-datum TO bhdgd-datum.
MOVE '0' TO bhdgd-inifl.
MOVE '132' TO bhdgd-lines.
FORMAT INTENSIFIED ON COLOR COL_HEADING.
PERFORM batch-heading(rsbtchh0). "report header
* Form READ_PLANT
FORM read_plant.
* Get plant name
CLEAR t001w.
SELECT SINGLE name1
INTO t001w-name1
FROM t001w
WHERE werks EQ gt_marc-werks.
ENDFORM. " READ_PLANT
* Form MAIN_PROCESSING
FORM main_processing.
* Material and plant basic data
SELECT werks matnr
INTO TABLE gt_marc
FROM marc
WHERE werks IN s_werks
AND matnr IN s_matnr.
ENDFORM. " MAIN_PROCESSING
* Form READ_DESCRIPTION
FORM read_description.
* Material name
CLEAR g_maktx.
SELECT SINGLE maktx
INTO g_maktx
FROM makt
WHERE matnr EQ gt_marc-matnr
AND spras EQ 'E'.
* Replace special character
DO.
REPLACE '&' WITH '*ù%;' INTO g_maktx.
IF NOT sy-subrc IS INITIAL. EXIT.ENDIF.
ENDDO.
DO.
REPLACE '*ù%;' WITH '&' INTO g_maktx.
IF NOT sy-subrc IS INITIAL. EXIT.ENDIF.
ENDDO.
DO.
REPLACE '/' WITH '/' INTO g_maktx.
IF NOT sy-subrc IS INITIAL. EXIT.ENDIF.
ENDDO.
ENDFORM. " READ_DESCRIPTION
Hope this helps.If so,kindly reward points. -
Im trying to update db table in user exit, with the internal table
Im trying to update db table in user exit, with the internal table
my scenario:
loop at itekpo.
updating itekpo -
> at the end of user exit the db table ekpo have to be updated
endloop.
Im updating internal table, using
MODIFY itekpo TRANSPORTING INCO1 INCO2 WHERE ebeln = itekpo-ebeln
where itekpo is internal table, but it is not updating the db table 'ekpo'.
i also tried updating ekpo directly !
Thanks in advanceHi,
you can search in the forum itself,
Try this link for instance
https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=tocreateaBADI&adv=false&sortby=cm_rnd_rankvalue
You can find a code for finding BADI as a report with the following Transaction
finding badis
How to find BADIs
Reward if helpful
Regards
Byju -
How to change co-ordinates of an internal table in page 1 & 2 using offline adobe forms?
Hello All,
How to change co-ordinates of an internal table(main window data) from page 2 onwards in offline adobe forms. For e.g., I need to print my internal table around 3-4 lines along with header&footer(only 1st page)in page 1. From 2nd page onwards Internal table should print header and use remaining page til end.
Thanks in advance for your help.
Thank you,
Janakiram.Issue resolved...need to use content area option to achieve the same.
Thanks,
Janakiram. -
How to do a SELECT from different tables into an internal table?
How to do a SELECT from different tables into an internal table?
I want to select data from MARA, MARC and ZPERSON and populate my ITAB_FINAL
REPORT zinternal_table.
TABLES:
mara,
marc,
zperson.
TYPES:
BEGIN OF str_table1,
v_name LIKE zperson-zname,
v_matnr LIKE marc-matnr,
v_emarc LIKE marc-emarc,
v_werks_d LIKE marc-werks_d,
v_dstat LIKE marc-dstat,
END OF str_table,
i_table1 TYPE STANDARD TABLE OF str_table1.
DATA:
BEGIN OF str_table2,
v_mandt LIKE mara-mandt,
v_ernam LIKE mara-ernam,
v_laeda LIKE mara-laeda,
END OF str_table2,
itab_final LIKE STANDARD TABLE OF str_table2.first find the link between mara , marc and zperson , if u have link to 3 tables then u can jus write a join and populate the table u want ( thats final table with all the fields).
u defenitely have alink between mara and marc so join them and retrieve all data into one internal table.
then for all the entries in that internal table retrieve data from zperson into another internal table.
then loop at one internal table
read another internal table where key equals in both the tables.
finally assign fileds if sy-subrc = 0.
gs_finaltable-matnr = gs_table-matnr
etc...
and finally append gs_finaltable to gt_finaltable.
there u go ur final table has all the data u want.
regards
Edited by: BrightSide on Apr 2, 2009 3:49 PM -
How to make use of a global internal table in SAP BW during transfer rules
HI friends,
I am ABAP consultant working on some APO info cubes. I have an issue during the upload of planning area data into APO info cube.
Please help.
I am using a transfer routine to find the TECHWEEK from a data base table ZGC_CALWEEK based on the on the calender month and calender week.
Code I am writing is like below.
* FORM COMPUTE_/BIC/ZCALWEEK
* Compute value of InfoObject ZCALWEEK
* in communication structure /BIC/CSZT6DPPA
* Technical properties:
* field name = /BIC/ZCALWEEK
* data element = /BIC/OIZCALWEEK
* data type = NUMC
* length = 000006
* decimals = 000000
* ABAP type = N
* ABAP length = 000006
* reference field =
* Parameters:
* --> RECORD_NO Record number
* --> TRAN_STRUCTURE Transfer structure
* <-- RESULT Return value of InfoObject
* <-> G_T_ERRORLOG Error log
* <-- RETURNCODE Return code (to skip one record)
* <-- ABORT Abort code (to skip whole data package)
FORM COMPUTE_/BIC/ZCALWEEK
USING RECORD_NO LIKE SY-TABIX
TRAN_STRUCTURE TYPE TRANSFER_STRUCTURE
G_S_MINFO TYPE RSSM_S_MINFO
CHANGING RESULT TYPE /BIC/OIZCALWEEK
G_T_ERRORLOG TYPE rssm_t_errorlog_int
RETURNCODE LIKE SY-SUBRC
ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel datapackage
*$*$ begin of routine - insert your code only below this line *-*
* DATA: l_s_errorlog TYPE rssm_s_errorlog_int.
DATA: LV_WEEK TYPE ZGC_CALWEEK-APOWEEK,
LV_MONTH TYPE ZGC_CALWEEK-APOMONTH,
LV_TECH_WEEK TYPE ZGC_CALWEEK-TECHWEEK.
LV_WEEK = TRAN_STRUCTURE-CALWEEK.
LV_MONTH = TRAN_STRUCTURE-CALMONTH.
SELECT SINGLE TECHWEEK INTO LV_TECH_WEEK
FROM ZGC_CALWEEK CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND APOWEEK = LV_WEEK
AND APOMONTH = LV_MONTH.
IF SY-SUBRC IS INITIAL.
RESULT = LV_TECH_WEEK.
ELSE.
RETURNCODE = 1.
ENDIF.
*$*$ end of routine - insert your code only before this line *-*
ENDFORM.
There are more than 50-80 million records that wil be transferred from planning area to info cube. The select statment is giving pathetic performance as this has to run 50-80 million times.
After adding the select statment to find the TECHWEEK it is taking 4 times the time that used to take before writing the select statment.
Is there a way that I can first fetch the data from ZGC_CALWEEK to one internal table and that internal table can be used using read statment during the transfer routine instead of writing select statement here.
Please help in this case?Hi Ashutosh,
Thanks for the reply,
The structure of the ZGC_CALWEEK is as below. I have already created a secondary index on the table for this table for the fields APO WEEK and APO MONTH. This didn't help much on the performance.
I am also planning to keep the ZGC_CALWEEK database table to be fully buffered and this may definitely improve the performance but I need to reduce the data base hits as less as possible.
MANDT MANDT CLNT 3 0 Client
TECHWEEK ZTECHWEEK NUMC 6 0 Technical Week
FROMDATE_TECH DATUM DATS 8 0 Date
TODATE_TECH DATUM DATS 8 0 Date
APOWEEK /BI0/OICALWEEK NUMC 6 0 Calendar year / week
FROMDATE_APO DATUM DATS 8 0 Date
TODATE_APO DATUM DATS 8 0 Date
APOMONTH /BI0/OICALMONTH NUMC 6 0 Calendar year/month
The table ZGC_CALWEEK is in APO system, where the transfer rules are being executed.
As you mentioned START ROUTINE, In the start routine Can I create an internal table let's say GT_CALWEEK with structure ZGC_CALWEEK and pull all the records (I have a max of 2000 records in this table) from ZGC_CALWEEK to GT_CALWEEK and Can I used the same internal table GT_CALWEEK in the transfer routine to read the TECHWEEK from internal table.
Thank you very much again for you reply. Any help regarding this would be greatly appreciated.
Best regards,
Siva -
How to submit a report ,Passing the internal tables from parent report
How to submit a report ,Passing the internal tables from the parent report ?
The SUBMIT statement executes a report from within a report. i.e. you could have a drill-down which
calls another report. Can only execute reports of type '1'.
*Code used to execute a report
SUBMIT Zreport.
*Code used to populate 'select-options' & execute report
DATA: seltab type table of rsparams,
seltab_wa like line of seltab.
seltab_wa-selname = 'PNPPERNR'.
seltab_wa-sign = 'I'.
seltab_wa-option = 'EQ'.
load each personnel number accessed from the structure into
parameters to be used in the report
loop at pnppernr.
seltab_wa-low = pnppernr-low.
append seltab_wa to seltab.
endloop.
SUBMIT zreport with selection-table seltab
via selection-screen.
*Code used to populate 'parameters' & execute report
SUBMIT zreport with p_param1 = 'value'
with p_param2 = 'value'.
Other additions for SUBMIT
*Submit report and return to current program afterwards
SUBMIT zreport AND RETURN.
*Submit report via its own selection screen
SUBMIT zreport VIA SELECTION-SCREEN.
*Submit report using selection screen variant
SUBMIT zreport USING SELECTION-SET 'VARIANT1'.
*Submit report but export resultant list to memory, rather than
*it being displayed on screen
SUBMIT zreport EXPORTING LIST TO MEMORY.
Once report has finished and control has returned to calling
program, use function modules LIST_FROM_MEMORY, WRITE_LIST and
DISPLAY_LIST to retrieve and display report.
*Example Code (Retrieving list from memory)
DATA BEGIN OF itab_list OCCURS 0.
INCLUDE STRUCTURE abaplist.
DATA END OF itab_list.
DATA: BEGIN OF vlist OCCURS 0,
filler1(01) TYPE c,
field1(06) TYPE c,
filler(08) TYPE c,
field2(10) TYPE c,
filler3(01) TYPE c,
field3(10) TYPE c,
filler4(01) TYPE c,
field4(3) TYPE c,
filler5(02) TYPE c,
field5(15) TYPE c,
filler6(02) TYPE c,
field6(30) TYPE c,
filler7(43) TYPE c,
field7(10) TYPE c,
END OF vlist.
SUBMIT zreport EXPORTING LIST TO MEMORY.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = itab_list
EXCEPTIONS
not_found = 4
OTHERS = 8.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
list_index = -1
TABLES
listasci = vlist
listobject = itab_list
EXCEPTIONS
empty_list = 1
list_index_invalid = 2
OTHERS = 3.
IF sy-subrc NE '0'.
WRITE:/ 'LIST_TO_ASCI error !! ', sy-subrc.
ENDIF.
Submit report as job
*Submit report as job(i.e. in background)
data: jobname like tbtcjob-jobname value
' TRANSFER TRANSLATION'.
data: jobcount like tbtcjob-jobcount,
host like msxxlist-host.
data: begin of starttime.
include structure tbtcstrt.
data: end of starttime.
data: starttimeimmediate like btch0000-char1.
Job open
call function 'JOB_OPEN'
exporting
delanfrep = ' '
jobgroup = ' '
jobname = jobname
sdlstrtdt = sy-datum
sdlstrttm = sy-uzeit
importing
jobcount = jobcount
exceptions
cant_create_job = 01
invalid_job_data = 02
jobname_missing = 03.
if sy-subrc ne 0.
"error processing
endif.
Insert process into job
SUBMIT zreport and return
with p_param1 = 'value'
with p_param2 = 'value'
user sy-uname
via job jobname
number jobcount.
if sy-subrc > 0.
"error processing
endif.
Close job
starttime-sdlstrtdt = sy-datum + 1.
starttime-sdlstrttm = '220000'.
call function 'JOB_CLOSE'
exporting
event_id = starttime-eventid
event_param = starttime-eventparm
event_periodic = starttime-periodic
jobcount = jobcount
jobname = jobname
laststrtdt = starttime-laststrtdt
laststrttm = starttime-laststrttm
prddays = 1
prdhours = 0
prdmins = 0
prdmonths = 0
prdweeks = 0
sdlstrtdt = starttime-sdlstrtdt
sdlstrttm = starttime-sdlstrttm
strtimmed = starttimeimmediate
targetsystem = host
exceptions
cant_start_immediate = 01
invalid_startdate = 02
jobname_missing = 03
job_close_failed = 04
job_nosteps = 05
job_notex = 06
lock_failed = 07
others = 99.
if sy-subrc eq 0.
"error processing
endif.
Maybe you are looking for
-
MOD_OC4J_0080 and other errors HTTP Server error log
Our portal pages with portlets on it started giving error 503 messages (just some portlets) to clients. I have checked error log and found out that it is full of this errors MOD_OC4J_0080: After calling Apache's ap_bwrite(), got an return value: -1 a
-
[SOLVED] installation on T420s
I've been using Arch Linux happily for a couple of years on my Thinkpad T42. Now I got a T420s and I after completing the standar install procedure I have no eth0 and hence I can't install anything that is not on the installation cd. lspci|grep -i et
-
PS CS5 Unexpectedly Quitting!?
For the first time this morning while working on a website UI design, PS unexpectedly quit? I have no idea why it did it twice after rebooting and checking memory usage. My machine is as fast as I need it with 60-70% of my RAM allocated to PS. Her
-
Creating a third line w/ one Lower 3rd
Can one create a third or fourth line, when only using one Lower 3rd in Final Cut Pro? Thanks.
-
Unlocked, Registered and Working (Adobe Photoshop Album Starter Edition v3.0)
Following several threads in this user-to-user forum, I lodged a bug report with Adobe and to my amazement, was promptly helped out of the sticky situation of not being able to connect to the internet/register Adobe Photoshop Album Starter Edition v3