How to reduce output line of exception.printStackTrace()
hi,
i just want to print on console where exception eactly occured this is enough..but when i call e.printStackTrace() it give a long list of stack trace...
most probably just few 3 or 4 line is enough when i ask e.printStackTracehow to do this in java.. what are method i have to override in Throwable class.. plz
The Exception class provides all this information, you don't necessarily have to invoke printStackTrace(). Read up on the API for Exception and you'll find several useful methods that you could call to retrieve just the information you like.
On a side note, you'll be surprised how often some of that extraneous information will be helpful when trying to debug your code.
Similar Messages
-
Hi guys,
I have a 2 yr old extreme base station. And I am using the most upadated aiport utility. I can't find the option to reduce the output power. Am i missing something? Or has apple decided to take that option away...
Thansk for your help.Unfortunately, Apple dropped a number of options and features when they "upgraded" AirPort Utility in the Lion operating system.
If you are still using OS X 10.7.4, fortunately you can download and install AirPort Utility 5.6 for Mac OS X Lion and use this version of the utility to get those features back.
Keep both AirPort Utility 6.1 and 5.6 on your Mac and use the one that you want. -
How to insert blank lines in the ALV output.
Hi Friends,
Could any body help me out How to insert blank lines in the ALV output.?? Any Code pls...
Thank you,
Vikram.Chi vikram
do like this
In the fieldcatalog table all the fields should be in editable mode
ie lw_fcat-edit = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = lv_layout
it_fieldcat = lt_fcat[]
i_save = 'A'
is_variant = lv_variant
TABLES
t_outtab = lt_license[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " display_data
*& Form user_command
FORM user_command USING r_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN 'ADD'. "
data: lv_ind type i.
data: lv_line type i.
describe table lt_license lines lv_line.
loop at lt_license into lw_license.
lv_ind = sy-tabix.
if lv_ind = lv_line.
append initial line to lt_license.
endif.
endloop.
ENDCASE.
ENDFORM. "user_command
reward points if useful
Rohan -
How to give delay in switch on digital output lines
Hello All,
I am working on PCI-6514 Digital IO card, I am writing a sequence to my application using DAQmax for Digital input and output lines
I want to switch on one output line0 and after a delay 5sec switch on line1 output and after a delay of 3sec switch on line2 output and sense input line 0 and line 1 .
How can we know the status of output ie output is on or off.
Since i am using the IO card for first time suggest me in this.Hi
I am going to assume that you are using LabVIEW 7.1 for this application. If you are trying to acquire data from an external device after outputting data to that device, the DAQmx tristate property node will give you this functionality.
You will then need a DAQmx write.vi to output your digital data followed by a DAQmx channel property node. Select Digital Output>>Tristate on the property node and wire a true constant into it. After the property node, you can use a DAQmx read.vi to read the data coming into the digital lines. By using the tristate property node, you can avoid stopping the digital output task and starting an entirely new task. I am attaching an example program that will demonstrate this.
Regards,
Hal L.
Attachments:
digital input and output.vi 39 KB -
How to reduce the query fetch from TKPROF output?
Hi,
Below is my query contains the TKPROF output.Here fetch is too high. How to reduce the fetch from here. And please check the explain plan is good or not?
SELECT czci.config_hdr_id,
czci.config_rev_nbr,
asoqla.quantity,
(SELECT
node_desc.LOCALIZED_STR
FROM CZ_LOCALIZED_TEXTS node_desc,
CZ_PS_NODES ps_nodes,
CZ_CONFIG_ITEMS czci1
WHERE czci1.config_hdr_id = asoqld.config_header_id
AND czci1.config_rev_nbr = asoqld.config_revision_num
AND node_desc.INTL_TEXT_ID = ps_nodes.INTL_TEXT_ID
AND NVL(node_desc.LANGUAGE,userenv('LANG')) = userenv('LANG')
AND czci1.PS_NODE_ID = ps_nodes.PERSISTENT_NODE_ID
AND ps_nodes.DEVL_PROJECT_ID = (SELECT MAX(DEVL_PROJECT_ID) FROM CZ_DEVL_PROJECTS WHERE NAME LIKE 'Control Model')
AND czci1.PARENT_CONFIG_ITEM_ID IN (SELECT sub_sub.CONFIG_ITEM_ID FROM CZ_CONFIG_ITEMS sub_sub
WHERE sub_sub.CONFIG_HDR_ID = asoqld.config_header_id
AND sub_sub.CONFIG_REV_NBR = asoqld.config_revision_num
AND sub_sub.PS_NODE_NAME = 'fittings')) fitting_material,
(SELECT
node_desc.LOCALIZED_STR
FROM CZ_LOCALIZED_TEXTS node_desc,
CZ_PS_NODES ps_nodes,
CZ_CONFIG_ITEMS czci
WHERE czci.config_hdr_id = asoqld.config_header_id
AND czci.config_rev_nbr = asoqld.config_revision_num
AND node_desc.INTL_TEXT_ID = ps_nodes.INTL_TEXT_ID
AND NVL(node_desc.LANGUAGE,userenv('LANG')) = userenv('LANG')
AND czci.PS_NODE_ID = ps_nodes.PERSISTENT_NODE_ID
AND ps_nodes.DEVL_PROJECT_ID = (SELECT MAX(DEVL_PROJECT_ID) FROM CZ_DEVL_PROJECTS WHERE NAME LIKE 'Control Model')
AND czci.PARENT_CONFIG_ITEM_ID IN (SELECT sub_sub.CONFIG_ITEM_ID FROM CZ_CONFIG_ITEMS sub_sub
WHERE sub_sub.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
AND sub_sub.CONFIG_REV_NBR = czci.CONFIG_REV_NBR
AND sub_sub.PS_NODE_NAME = 'tubing')) tubing_material
FROM aso_quote_lines_all asoqla,
aso_quote_line_details asoqld,
cz_config_items czci
WHERE asoqla.quote_header_id = 55774
AND asoqla.item_type_code = 'MDL'
--AND asoqla.org_id = 2763
AND asoqla.quote_line_id = asoqld.quote_line_id
AND asoqld.config_header_id = czci.config_hdr_id
AND asoqld.config_revision_num = czci.config_rev_nbr
AND czci.ps_node_name = 'CONTROL MASTER ASLY'
call count cpu elapsed disk query current rows
Parse 1 0.04 0.03 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 3 0.09 0.08 0 5100 0 19
total 5 0.13 0.12 0 5100 0 19
Misses in library cache during parse: 1
Optimizer goal: ALL_ROWS
Parsing user id: 173 (APPS)
Rows Row Source Operation
3 TABLE ACCESS BY INDEX ROWID CZ_LOCALIZED_TEXTS (cr=2161 pr=0 pw=0 time=32425 us)
40 NESTED LOOPS (cr=2158 pr=0 pw=0 time=32276 us)
3 NESTED LOOPS (cr=2147 pr=0 pw=0 time=32156 us)
3 NESTED LOOPS (cr=925 pr=0 pw=0 time=15885 us)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=665 pr=0 pw=0 time=13456 us)
5490 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=96 pr=0 pw=0 time=1237 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=260 pr=0 pw=0 time=2401 us)
1094 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=19 pr=0 pw=0 time=250 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_PS_NODES (cr=1222 pr=0 pw=0 time=16249 us)
3 INDEX RANGE SCAN CZ_PS_NODES_N12 (cr=1219 pr=0 pw=0 time=16211 us)(object id 750095)
1 SORT AGGREGATE (cr=1211 pr=0 pw=0 time=16125 us)
209 TABLE ACCESS FULL CZ_DEVL_PROJECTS (cr=1211 pr=0 pw=0 time=15883 us)
18 INDEX RANGE SCAN CZ_LOCALIZED_TEXTS_N1 (cr=11 pr=0 pw=0 time=68 us)(object id 31504)
3 TABLE ACCESS BY INDEX ROWID CZ_LOCALIZED_TEXTS (cr=2161 pr=0 pw=0 time=31499 us)
40 NESTED LOOPS (cr=2158 pr=0 pw=0 time=31351 us)
3 NESTED LOOPS (cr=2147 pr=0 pw=0 time=31215 us)
3 NESTED LOOPS (cr=925 pr=0 pw=0 time=15271 us)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=665 pr=0 pw=0 time=12441 us)
5490 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=96 pr=0 pw=0 time=1230 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=260 pr=0 pw=0 time=2795 us)
1094 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=19 pr=0 pw=0 time=264 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_PS_NODES (cr=1222 pr=0 pw=0 time=15920 us)
3 INDEX RANGE SCAN CZ_PS_NODES_N12 (cr=1219 pr=0 pw=0 time=15863 us)(object id 750095)
1 SORT AGGREGATE (cr=1211 pr=0 pw=0 time=15753 us)
209 TABLE ACCESS FULL CZ_DEVL_PROJECTS (cr=1211 pr=0 pw=0 time=15452 us)
18 INDEX RANGE SCAN CZ_LOCALIZED_TEXTS_N1 (cr=11 pr=0 pw=0 time=79 us)(object id 31504)
19 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=778 pr=0 pw=0 time=20571 us)
5816 NESTED LOOPS (cr=202 pr=0 pw=0 time=8497 us)
21 NESTED LOOPS (cr=96 pr=0 pw=0 time=2037 us)
23 TABLE ACCESS BY INDEX ROWID ASO_QUOTE_LINES_ALL (cr=47 pr=0 pw=0 time=1427 us)
1058 INDEX RANGE SCAN ASO_QUOTE_LINES_ALL_N1 (cr=9 pr=0 pw=0 time=51 us)(object id 81688)
21 TABLE ACCESS BY INDEX ROWID ASO_QUOTE_LINE_DETAILS (cr=49 pr=0 pw=0 time=596 us)
21 INDEX RANGE SCAN ASO_QUOTE_LINE_DETAILS_N1 (cr=28 pr=0 pw=0 time=323 us)(object id 81706)
5794 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=106 pr=0 pw=0 time=1424 us)(object id 3049621)Hi
After affed the exist operator i got below output. But it is more than that the previous one.
SELECT czci.config_hdr_id, czci.config_rev_nbr, asoqla.quantity,
(SELECT node_desc.localized_str
FROM cz_localized_texts node_desc,
cz_ps_nodes ps_nodes,
cz_config_items czci1
WHERE czci1.config_hdr_id = asoqld.config_header_id
AND czci1.config_rev_nbr = asoqld.config_revision_num
AND node_desc.intl_text_id = ps_nodes.intl_text_id
AND NVL (node_desc.LANGUAGE, USERENV ('LANG')) = USERENV ('LANG')
AND czci1.ps_node_id = ps_nodes.persistent_node_id
AND ps_nodes.devl_project_id = (SELECT MAX (devl_project_id)
FROM cz_devl_projects
WHERE NAME = 'Control Model')
AND EXISTS (
SELECT NULL
FROM cz_config_items sub_sub
WHERE sub_sub.config_hdr_id = asoqld.config_header_id
AND sub_sub.config_rev_nbr = asoqld.config_revision_num
AND sub_sub.ps_node_name = 'fittings'
AND czci1.parent_config_item_id = sub_sub.config_item_id))
fitting_material,
(SELECT node_desc.localized_str
FROM cz_localized_texts node_desc,
cz_ps_nodes ps_nodes,
cz_config_items czci1
WHERE czci1.config_hdr_id = asoqld.config_header_id
AND czci1.config_rev_nbr = asoqld.config_revision_num
AND node_desc.intl_text_id = ps_nodes.intl_text_id
AND node_desc.LANGUAGE = USERENV ('LANG')
AND czci1.ps_node_id = ps_nodes.persistent_node_id
AND ps_nodes.devl_project_id = (SELECT MAX (devl_project_id)
FROM cz_devl_projects
WHERE NAME = 'Control Model')
AND EXISTS (
SELECT NULL
FROM cz_config_items sub_sub
WHERE sub_sub.config_hdr_id = czci.config_hdr_id
AND sub_sub.config_rev_nbr = czci.config_rev_nbr
AND sub_sub.ps_node_name = 'tubing'
AND czci1.parent_config_item_id = sub_sub.config_item_id))
tubing_material
FROM aso_quote_lines_all asoqla,
aso_quote_line_details asoqld,
cz_config_items czci
WHERE asoqla.quote_header_id = 55774
AND asoqla.item_type_code = 'MDL'
--AND asoqla.org_id = 2763
AND asoqla.quote_line_id = asoqld.quote_line_id
AND asoqld.config_header_id = czci.config_hdr_id
AND asoqld.config_revision_num = czci.config_rev_nbr
AND czci.ps_node_name = 'CONTROL MASTER ASLY'
call count cpu elapsed disk query current rows
Parse 1 0.02 0.03 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 3 0.16 0.14 0 16526 0 19
total 5 0.18 0.17 0 16526 0 19
Misses in library cache during parse: 1
Optimizer goal: ALL_ROWS
Parsing user id: 173 (APPS)
Rows Row Source Operation
3 TABLE ACCESS BY INDEX ROWID CZ_LOCALIZED_TEXTS (cr=7874 pr=0 pw=0 time=51192 us)
40 NESTED LOOPS (cr=7871 pr=0 pw=0 time=50953 us)
3 NESTED LOOPS (cr=7860 pr=0 pw=0 time=50729 us)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=6638 pr=0 pw=0 time=33183 us)
3 INDEX RANGE SCAN CZ_CONFIG_ITEMS_N1 (cr=6635 pr=0 pw=0 time=33060 us)(object id 31734)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=6536 pr=0 pw=0 time=22873 us)
1292 INDEX UNIQUE SCAN CZ_CONFIG_ITEMS_PK (cr=5244 pr=0 pw=0 time=15326 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_PS_NODES (cr=1222 pr=0 pw=0 time=17483 us)
3 INDEX RANGE SCAN CZ_PS_NODES_N12 (cr=1219 pr=0 pw=0 time=17411 us)(object id 750095)
1 SORT AGGREGATE (cr=1211 pr=0 pw=0 time=17266 us)
209 TABLE ACCESS FULL CZ_DEVL_PROJECTS (cr=1211 pr=0 pw=0 time=16844 us)
18 INDEX RANGE SCAN CZ_LOCALIZED_TEXTS_N1 (cr=11 pr=0 pw=0 time=122 us)(object id 31504)
3 NESTED LOOPS (cr=7874 pr=0 pw=0 time=48203 us)
3 NESTED LOOPS (cr=7860 pr=0 pw=0 time=47973 us)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=6638 pr=0 pw=0 time=30352 us)
3 INDEX RANGE SCAN CZ_CONFIG_ITEMS_N1 (cr=6635 pr=0 pw=0 time=30218 us)(object id 31734)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=6536 pr=0 pw=0 time=20960 us)
1292 INDEX UNIQUE SCAN CZ_CONFIG_ITEMS_PK (cr=5244 pr=0 pw=0 time=14224 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_PS_NODES (cr=1222 pr=0 pw=0 time=17570 us)
3 INDEX RANGE SCAN CZ_PS_NODES_N12 (cr=1219 pr=0 pw=0 time=17510 us)(object id 750095)
1 SORT AGGREGATE (cr=1211 pr=0 pw=0 time=17395 us)
209 TABLE ACCESS FULL CZ_DEVL_PROJECTS (cr=1211 pr=0 pw=0 time=16937 us)
3 TABLE ACCESS BY INDEX ROWID CZ_LOCALIZED_TEXTS (cr=14 pr=0 pw=0 time=165 us)
3 INDEX UNIQUE SCAN CZ_LOCALIZED_TEXTS_PK (cr=11 pr=0 pw=0 time=132 us)(object id 3050530)
19 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=778 pr=0 pw=0 time=41677 us)
5816 NESTED LOOPS (cr=202 pr=0 pw=0 time=16173 us)
21 NESTED LOOPS (cr=96 pr=0 pw=0 time=3617 us)
23 TABLE ACCESS BY INDEX ROWID ASO_QUOTE_LINES_ALL (cr=47 pr=0 pw=0 time=2528 us)
1058 INDEX RANGE SCAN ASO_QUOTE_LINES_ALL_N1 (cr=9 pr=0 pw=0 time=83 us)(object id 81688)
21 TABLE ACCESS BY INDEX ROWID ASO_QUOTE_LINE_DETAILS (cr=49 pr=0 pw=0 time=1053 us)
21 INDEX RANGE SCAN ASO_QUOTE_LINE_DETAILS_N1 (cr=28 pr=0 pw=0 time=598 us)(object id 81706)
5794 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=106 pr=0 pw=0 time=8245 us)(object id 3049621) -
How to create blank line in alv output
Hi all,
Iam getting alv output with currency values like below
text1 20.0 10.0 30.0
text2 25.0 11.0 30.0
text3 27.0 19.0 30.0
text1 24.0 18.0 30.0
text2 27.0 16.0 30.0
text3 29.0 15.0 30.0
text1 23.0 17.0 30.0
text2 22.0 13.0 30.0
text3 21.0 14.0 30.0
and so on...
My requirement is to create blank line after text3. Since its currency field even i claer work area iam able to get 0.0.
If i use no-zero in field catalog i will be able to get blank values for all 0.0, but thats not required.
Can u help me out how to crate blank line after one set of values(text1, text2, text3) in alv display
ThanksHi,
If i use no-zero, then all 0.0 will be replaced by blank, but that is not required.
I want only blank line to be displayed after set of line items.
Skip doesn't help in alv. Secondly if i append blank work area i will be getting 0.0 as it is a currency field. -
How to reduce the length of lines in Smartform windows
Hi,
In smartform Mainwindow or any window, how to draw the vertical lines and horizontal lines and how to reduce the lengths...very urgent please explain.
Thanks and Regards,
suryaHi Surya,
You should use templates for this purpose.
and if you are in table then you can not use templates. Here you should go for the line type.
and in either case there will be pattern tab in the right side bottom.
if double click on the teplate it will get display.
click on the select pattern and select the required format and give the line width
ex 15 TW
I think this will help you -
How to remove new line character from query output?
Hi,
How to remove new line character from query output?
have tried select replace(column_name, CHR(10), ' ') from table_name.
Edited by: GreenHorn on Sep 11, 2008 12:53 AMPlease consider, that windows uses a sequence of chr13||chr(10) Unix uses only one character chr(10).
The new line character(s) may be OS-dependent.
You could consider both with:
replace(replace(column_name, CHR(13)||CHR(10), ' '),CHR(10),' ')
Hartmut
Edited by: hartmutm on 11.09.2008 01:32 -
We keep many logs in a simple list format. One of the columns requires a description using the "multiple lines of text" default column. Sometimes the person making the entry needs to complete about 20-30 lines of text. Users are requesting we reduce
the amount of space advanced between lines to save space and be more concise. Is there a way to reduce the line spacing for the column entries to single spacing without code?
Maree N PercivalWe determined that the site column settings were incorrect for allowing single spacing, we changed the site column setting from "Enhanced rich text (Rich text with pictures, tables, and hyperlinks)" to "Rich text (Bold, italics, text alignment, hyperlinks)"
and it is now keeping the text in single spaced lines.
<label for="onetidRichText">Specify the type of text to allow:</label>
<input id="onetidRichTextPlain" name="RichText" title="Plain text" type="radio" value="PLAIN" />
<label for="onetidRichTextPlain">Plain text </label>
<input id="onetidRichTextCompatible" name="RichText" title="Rich text (Bold, italics, text alignment, hyperlinks)" type="radio" value="COMPATIBLE" />
<label for="onetidRichTextCompatible">Rich text (Bold, italics, text alignment, hyperlinks)</label>
<input id="onetidRichTextFullHtml" name="RichText" title="Enhanced rich text (Rich text with pictures, tables, and hyperlinks)" type="radio" value="FullHtml" />
<label for="onetidRichTextFullHtml">Enhanced rich text (Rich text with pictures, tables, and hyperlinks)</label>
Maree N Percival -
How can i output a square wave from one of the digital lines of NI 9401
hello,
i m very much new to the LABVIEW environment and NI. please help me guys. i am using cDAQ 9172 and NI 9401 which i believe is a digital I/O device. i want a square wave of amplitude 4 to come out of it so that i can use that to control the speed of a DC motor by pulse width modulation technique by varying the duty cycle. how do i output a continuos square wave?
Thank tou for reading.
hoping for a reply at the earliest
Regards
ashutoshThe DIO ports on a MIO will not satisfy your needs (unless you move to LV RT).
They do not support buffered outputs.
Your update rate (how often you can set the port and clear it) is going to be limited by how fast (a-hem slow) windows will let you iterate,
and,
be non-determinstic.
You could use,
1) LV RT with the existing board, or
2) FieldPoint PWM module, or
3) Arbitrary waveform generators, or
4) HS DIO board, or
5) use the analog output of your baord where you que-up a 0 -5V waveform of the proper shape (i.e. make sure that the duty cylce fraction of the update values are high, the rest low).
This is just to get a PWM signal out.
Now there is another issue. Determinism. How often do you plan on reading your inputs and making a change to you
r PWM? If you plan on doing more often that 10/second, write your code to handle windows going out to la-la land when you expect it to be working.
Can you tell I like LV-RT.
I hope my ramblings have helped.
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
How to reduce performance time.
Hi,
Any body guide me how to reduce performance time for this report.
Its taking to much time for execution.
*& Report ZEOU_CST_CLAIM_REP *
REPORT zeou_cst_claim_rep.
*& Program Name : ZEOU_CST_CLAIM_REP *
*& Title : CST Claim Report *
*& Module Name : EOU *
*& Author : Chandra Vangoor *
*& Create Date : 05.05.2006 *
*& Logical DB : None *
*& Program Type : On-Line. *
*& SAP Release : 4.7 *
*& Description : *
*& Log Date Author Reason of change
TABLES
TABLES : a363,
mara,
marc,
makt,
ekko,
ekpo,
mkpf,
mseg,
konp,
konh.
SELECTION-SCREEN
SELECTION-SCREEN : BEGIN OF BLOCK cst WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_matnr FOR mara-matnr, "Material Number
s_lifnr FOR ekko-lifnr, "Account Number of the Vendor
s_bedat FOR ekko-bedat, "Purchasing Document Date
s_kschl FOR konh-kschl OBLIGATORY NO INTERVALS, "Condition type
s_bwart FOR mseg-bwart OBLIGATORY NO INTERVALS. "Movement Type (Inventory Management)
PARAMETERS : p_werks LIKE marc-werks OBLIGATORY. "Plant
SELECTION-SCREEN : END OF BLOCK cst.
INCLUDES
INCLUDE zalv_data.
DATA - INTERNAL TABLES AND FIELD LISTS
DATA : BEGIN OF a363_itab OCCURS 0,
matnr LIKE a363-matnr, "Material Number
lifnr LIKE a363-lifnr, "Account Number of the Vendor
werks LIKE a363-werks, "Plant
kschl LIKE a363-kschl, "Condition type
knumh LIKE a363-knumh, "Condition record number
kbetr LIKE konp-kbetr, "Rate (condition amount or percentage) where no scale exists
END OF a363_itab.
DATA : BEGIN OF konp_itab OCCURS 0,
knumh LIKE a363-knumh, "Condition record number
kbetr LIKE konp-kbetr, "Rate (condition amount or percentage) where no scale exists
lifnr LIKE a363-lifnr, "Account Number of the Vendor
END OF konp_itab.
DATA : BEGIN OF ekko_itab OCCURS 0,
ebeln LIKE ekko-ebeln, "Purchasing Document Number
lifnr LIKE ekko-lifnr, "Account Number of the Vendor
bedat LIKE ekko-bedat, "Purchasing Document Date
END OF ekko_itab.
DATA : BEGIN OF ekpo_itab OCCURS 0,
ebeln LIKE ekpo-ebeln, "Purchasing Document Number
ebelp LIKE ekpo-ebelp, "Item Number of Purchasing Document
matnr LIKE ekpo-matnr, "Material Number
werks LIKE ekpo-werks, "Plant
menge LIKE ekpo-menge, "Purchase order quantity
END OF ekpo_itab.
DATA : BEGIN OF v_po_det OCCURS 0, "VENDOR + PLANT + PO DEATILS
lifnr LIKE ekko-lifnr, "Account Number of the Vendor
ebeln LIKE ekko-ebeln, "Purchasing Document Number
ebelp LIKE ekpo-ebelp, "Item Number of Purchasing Document
bedat LIKE ekko-bedat, "Purchasing Document Date
matnr LIKE ekpo-matnr, "Material Number
werks LIKE ekpo-werks, "Plant
menge LIKE ekpo-menge, "Purchase order quantity
kbetr LIKE konp-kbetr, "Rate (condition amount or percentage) where no scale exists
END OF v_po_det.
DATA : BEGIN OF mseg_itab OCCURS 0,
mblnr LIKE mseg-mblnr, "Number of Material Document
ebeln LIKE mseg-ebeln, "Purchasing Document Number
ebelp LIKE mseg-ebelp, "Item Number of Purchasing Document
matnr LIKE mseg-matnr, "Material Number
lifnr LIKE mseg-lifnr, "Account Number of the Vendor
werks LIKE mseg-werks, "Plant
menge LIKE mseg-menge, "Quantity
dmbtr LIKE mseg-dmbtr, "Amount in local currency
bwart LIKE mseg-bwart, "Movement Type (Inventory Management)
END OF mseg_itab.
DATA : BEGIN OF mkpf_itab OCCURS 0,
mblnr LIKE mkpf-mblnr, "Number of Material Document
bldat LIKE mkpf-bldat, "Document Date in Document
END OF mkpf_itab.
DATA : BEGIN OF zeou_pcrdtl_itab OCCURS 0,
matnr LIKE zeou_pcrdtl-matnr, "Material Number
lifnr LIKE zeou_pcrdtl-lifnr, "Account Number of the Vendor
mblnr LIKE zeou_pcrdtl-mblnr, "Number of Material Document
whssn LIKE zeou_pcrdtl-whssn, "Warehouse Records Entry Serial No.
whsdt LIKE zeou_pcrdtl-whsdt, "Warehouse Records Entry date
END OF zeou_pcrdtl_itab.
DATA : BEGIN OF gr_wh_info OCCURS 0, "INFO OF GR & WH BASED ON MVMT TYPE & PO
mblnr LIKE mseg-mblnr, "Number of Material Document
bldat LIKE mkpf-bldat, "Document Date in Document
ebeln LIKE mseg-ebeln, "Purchasing Document Number
ebelp LIKE ekpo-ebelp, "Item Number of Purchasing Document
matnr LIKE mseg-matnr, "Material Number
lifnr LIKE mseg-lifnr, "Account Number of the Vendor
werks LIKE mseg-werks, "Plant
menge LIKE mseg-menge, "Quantity
dmbtr LIKE mseg-dmbtr, "Amount in local currency
bwart LIKE mseg-bwart, "Movement Type (Inventory Management)
whssn LIKE zeou_pcrdtl-whssn, "Warehouse Records Entry Serial No.
whsdt LIKE zeou_pcrdtl-whsdt, "Warehouse Records Entry date
END OF gr_wh_info.
DATA : BEGIN OF bseg_itab OCCURS 0,
ebeln LIKE bseg-ebeln, "Purchasing Document Number
ebelp LIKE bseg-ebelp, "Item Number of Purchasing Document
matnr LIKE bseg-matnr, "Material Number
lifnr LIKE bseg-lifnr, "Account Number of the Vendor
werks LIKE bseg-werks, "Plant
buzid LIKE bseg-buzid, "Identification of the Line Item
bschl LIKE bseg-bschl, "Posting Key
wrbtr LIKE bseg-wrbtr, "Amount in document currency
bukrs LIKE bseg-bukrs, "Company Code
belnr LIKE bseg-belnr, "Accounting Document Number
gjahr LIKE bseg-gjahr, "Fiscal Year
END OF bseg_itab.
DATA : BEGIN OF bkpf_itab OCCURS 0,
bukrs LIKE bkpf-bukrs, "Company Code
belnr LIKE bkpf-belnr, "Accounting Document Number
gjahr LIKE bkpf-gjahr, "Fiscal Year
xblnr LIKE bkpf-xblnr, "Reference Document Number
bldat LIKE bkpf-bldat, "Document Date in Document
END OF bkpf_itab.
DATA : BEGIN OF vend_inv OCCURS 0, "VENDOR INVOICE DETAILS
ebeln LIKE bseg-ebeln, "Purchasing Document Number
ebelp LIKE bseg-ebelp, "Item Number of Purchasing Document
matnr LIKE bseg-matnr, "Material Number
lifnr LIKE bseg-lifnr, "Account Number of the Vendor
werks LIKE bseg-werks, "Plant
buzid LIKE bseg-buzid, "Identification of the Line Item
bschl LIKE bseg-bschl, "Posting Key
wrbtr LIKE bseg-wrbtr, "Amount in document currency
bukrs LIKE bseg-bukrs, "Company Code
belnr LIKE bseg-belnr, "Accounting Document Number
gjahr LIKE bseg-gjahr, "Fiscal Year
xblnr LIKE bkpf-xblnr, "Reference Document Number
bldat LIKE bkpf-bldat, "Document Date in Document
END OF vend_inv.
DATA : BEGIN OF chckinit OCCURS 0, "CHEQUE INIT INFO
ebeln LIKE bseg-ebeln, "Purchasing Document Number
ebelp LIKE bseg-ebelp, "Item Number of Purchasing Document
matnr LIKE bseg-matnr, "Material Number
lifnr LIKE bseg-lifnr, "Account Number of the Vendor
werks LIKE bseg-werks, "Plant
buzid LIKE bseg-buzid, "Identification of the Line Item
bschl LIKE bseg-bschl, "Posting Key
bukrs LIKE bkpf-bukrs, "Company Code
belnr LIKE bkpf-belnr, "Accounting Document Number
gjahr LIKE bkpf-gjahr, "Fiscal Year
koart LIKE bseg-koart, "Account type
augbl LIKE bseg-augbl, "Document Number of the Clearing Document
END OF chckinit.
DATA : BEGIN OF chckpayer OCCURS 0, "CHEQUE BANK DETAILS
vblnr LIKE payr-vblnr, "Document Number of the Payment Document
zbukr LIKE payr-zbukr, "Paying company code
gjahr LIKE payr-gjahr, "Fiscal Year
chect LIKE payr-chect, "Check Number
zaldt LIKE payr-zaldt, "Probable Payment Date (Cash Discount 1 Due)
hbkid LIKE payr-hbkid, "Short key for a house bank
END OF chckpayer.
DATA : chckpayer_u LIKE chckpayer OCCURS 0 WITH HEADER LINE. "UNIQUE CHEQUE DETAILS
DATA : BEGIN OF chckfinal OCCURS 0, "CHEQUE FINAL INFO
ebeln LIKE bseg-ebeln, "Purchasing Document Number
ebelp LIKE bseg-ebelp, "Item Number of Purchasing Document
matnr LIKE bseg-matnr, "Material Number
lifnr LIKE bseg-lifnr, "Account Number of the Vendor
werks LIKE bseg-werks, "Plant
buzid LIKE bseg-buzid, "Identification of the Line Item
bschl LIKE bseg-bschl, "Posting Key
bukrs LIKE bkpf-bukrs, "Company Code
belnr LIKE bkpf-belnr, "Accounting Document Number
gjahr LIKE bkpf-gjahr, "Fiscal Year
koart LIKE bseg-koart, "Account type
augbl LIKE bseg-augbl, "Document Number of the Clearing Document
vblnr LIKE payr-vblnr, "Document Number of the Payment Document
zbukr LIKE payr-zbukr, "Paying company code
chect LIKE payr-chect, "Check Number
zaldt LIKE payr-zaldt, "Probable Payment Date (Cash Discount 1 Due)
hbkid LIKE payr-hbkid, "Short key for a house bank
END OF chckfinal.
DATA : BEGIN OF mat_desc OCCURS 0,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
END OF mat_desc.
DATA : BEGIN OF vend_det OCCURS 0,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
j_1icstno LIKE j_1imovend-j_1icstno,
END OF vend_det.
DATA : BEGIN OF cst_rep OCCURS 0, "FINAL CST REPORT
lifnr LIKE a363-lifnr, "Account Number of the Vendor
name1 LIKE lfa1-name1, "Vendor Name
j_1icstno LIKE j_1imovend-j_1icstno, " Vendor CST No.
werks LIKE a363-werks, "Plant
kschl LIKE a363-kschl, "Condition type
ebeln LIKE ekko-ebeln, "Purchasing Document Number
ebelp LIKE ekpo-ebelp, "Item Number of Purchasing Document
bedat LIKE ekko-bedat, "Purchasing Document Date
matnr LIKE ekpo-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description.
kbetr LIKE konp-kbetr, "Rate (condition amount or percentage) where no scale exists
mblnr LIKE mseg-mblnr, "Number of Material Document
bldat LIKE mkpf-bldat, "Document Date in Document
menge LIKE mseg-menge, "Quantity
dmbtr LIKE mseg-dmbtr, "Amount in local currency
cst_dmbtr LIKE mseg-dmbtr, "CST Amount in local currency
bwart LIKE mseg-bwart, "Movement Type (Inventory Management)
whssn LIKE zeou_pcrdtl-whssn, "Warehouse Records Entry Serial No.
whsdt LIKE zeou_pcrdtl-whsdt, "Warehouse Records Entry date
buzid LIKE bseg-buzid, "Identification of the Line Item
bschl LIKE bseg-bschl, "Posting Key
wrbtr LIKE bseg-wrbtr, "Amount in document currency
cst_wrbtr LIKE bseg-wrbtr, "CST Amount in document currency
belnr LIKE bseg-belnr, "Accounting Document Number
gjahr LIKE bseg-gjahr, "Fiscal Year
xblnr LIKE bkpf-xblnr, "Reference Document Number
koart LIKE bseg-koart, "Account type
augbl LIKE bseg-augbl, "Document Number of the Clearing Document
vblnr LIKE payr-vblnr, "Document Number of the Payment Document
zbukr LIKE payr-zbukr, "Paying company code
chect LIKE payr-chect, "Check Number
zaldt LIKE payr-zaldt, "Probable Payment Date (Cash Discount 1 Due)
hbkid LIKE payr-hbkid, "Short key for a house bank
END OF cst_rep.
DATA : BEGIN OF gt_output OCCURS 0, "ALV OUTPUT
slno LIKE sy-tabix, "Serial Number
lifnr LIKE a363-lifnr, "Account Number of the Vendor
name1 LIKE lfa1-name1, "Vendor Name
j_1icstno LIKE j_1imovend-j_1icstno, " Vendor CST No.
werks LIKE a363-werks, "Plant
kschl LIKE a363-kschl, "Condition type
ebeln LIKE ekko-ebeln, "Purchasing Document Number
ebelp LIKE ekpo-ebelp, "Item Number of Purchasing Document
bedat LIKE ekko-bedat, "Purchasing Document Date
matnr LIKE ekpo-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description
mblnr LIKE mseg-mblnr, "Number of Material Document
bldat LIKE mkpf-bldat, "Document Date in Document
menge LIKE mseg-menge, "Quantity
dmbtr LIKE mseg-dmbtr, "Amount in local currency
cst_dmbtr LIKE mseg-dmbtr, "CST Amount in local currency
bwart LIKE mseg-bwart, "Movement Type (Inventory Management)
whssn LIKE zeou_pcrdtl-whssn, "Warehouse Records Entry Serial No.
whsdt LIKE zeou_pcrdtl-whsdt, "Warehouse Records Entry date
buzid LIKE bseg-buzid, "Identification of the Line Item
bschl LIKE bseg-bschl, "Posting Key
wrbtr LIKE bseg-wrbtr, "Amount in document currency
cst_wrbtr LIKE bseg-wrbtr, "CST Amount in document currency
belnr LIKE bseg-belnr, "Accounting Document Number
gjahr LIKE bseg-gjahr, "Fiscal Year
xblnr LIKE bkpf-xblnr, "Reference Document Number
koart LIKE bseg-koart, "Account type
augbl LIKE bseg-augbl, "Document Number of the Clearing Document
vblnr LIKE payr-vblnr, "Document Number of the Payment Document
zbukr LIKE payr-zbukr, "Paying company code
chect LIKE payr-chect, "Check Number
zaldt LIKE payr-zaldt, "Probable Payment Date (Cash Discount 1 Due)
hbkid LIKE payr-hbkid, "Short key for a house bank
usr_txt1(20) TYPE c,
usr_txt2(20) TYPE c,
END OF gt_output.
*Working Variables
DATA : cst_gr LIKE mseg-dmbtr,
cst_inv LIKE bseg-wrbtr,
usr_txt1(20) TYPE c,
usr_txt2(20) TYPE c.
START-OF-SELECTION.
*Retreiving Data from a363 table for the given input
SELECT matnr
lifnr
werks
kschl
knumh
FROM a363
INTO TABLE a363_itab
WHERE matnr IN s_matnr AND lifnr IN s_lifnr AND werks EQ p_werks AND kschl IN s_kschl.
*rakesh ***************************
SELECT *
FROM konp
INTO CORRESPONDING FIELDS OF TABLE konp_itab
FOR ALL ENTRIES IN a363_itab
WHERE knumh EQ a363_itab-knumh.
IF a363_itab[] IS NOT INITIAL.
SELECT knumh
kbetr
lifnr
FROM konp INTO TABLE konp_itab
FOR ALL ENTRIES IN a363_itab
WHERE knumh EQ a363_itab-knumh.
ENDIF.
LOOP AT a363_itab.
READ TABLE konp_itab WITH KEY knumh = a363_itab-knumh.
IF sy-subrc EQ 0.
MOVE : konp_itab-kbetr TO a363_itab-kbetr.
MODIFY a363_itab.
ENDIF.
CLEAR : a363_itab, konp_itab.
ENDLOOP.
rakesh****************************
SELECT *
FROM makt
INTO CORRESPONDING FIELDS OF TABLE mat_desc
FOR ALL ENTRIES IN a363_itab
WHERE matnr EQ a363_itab-matnr.
SELECT matnr
maktx
FROM makt INTO TABLE mat_desc
FOR ALL ENTRIES IN a363_itab
WHERE matnr EQ a363_itab-matnr.
SELECT a~lifnr
a~name1
b~j_1icstno
INTO TABLE vend_det
FROM lfa1 AS a JOIN j_1imovend AS b
ON alifnr EQ blifnr
FOR ALL ENTRIES IN a363_itab
WHERE a~lifnr EQ a363_itab-lifnr.
Retreiving Data from EKKO & EKPO table for the given input
And Populating the V_PO_DETAILS itab
SELECT *
FROM ekko
INTO CORRESPONDING FIELDS OF TABLE ekko_itab
FOR ALL ENTRIES IN a363_itab
WHERE lifnr EQ a363_itab-lifnr AND bedat IN s_bedat.
IF a363_itab[] IS NOT INITIAL.
SELECT ebeln
lifnr
bedat
FROM ekko INTO TABLE ekko_itab
FOR ALL ENTRIES IN a363_itab
WHERE lifnr EQ a363_itab-lifnr AND bedat IN s_bedat.
ENDIF.
SELECT *
FROM ekpo
INTO CORRESPONDING FIELDS OF TABLE ekpo_itab
FOR ALL ENTRIES IN a363_itab
WHERE matnr EQ a363_itab-matnr AND werks EQ a363_itab-werks AND mwskz NE 'V0'.
IF a363_itab[] IS NOT INITIAL.
SELECT ebeln
ebelp
matnr
werks
menge
FROM ekpo INTO TABLE ekpo_itab
FOR ALL ENTRIES IN a363_itab
WHERE matnr EQ a363_itab-matnr AND werks EQ a363_itab-werks AND mwskz NE 'V0'.
ENDIF.
LOOP AT ekpo_itab.
MOVE : ekpo_itab-ebelp TO v_po_det-ebelp,
ekpo_itab-matnr TO v_po_det-matnr,
ekpo_itab-werks TO v_po_det-werks,
ekpo_itab-menge TO v_po_det-menge.
READ TABLE ekko_itab WITH KEY ebeln = ekpo_itab-ebeln.
IF sy-subrc EQ 0.
MOVE : ekko_itab-lifnr TO v_po_det-lifnr,
ekko_itab-ebeln TO v_po_det-ebeln,
ekko_itab-bedat TO v_po_det-bedat.
APPEND : v_po_det.
ENDIF.
CLEAR : ekko_itab, ekpo_itab, v_po_det.
ENDLOOP.
LOOP AT v_po_det.
READ TABLE a363_itab WITH KEY matnr = v_po_det-matnr lifnr = v_po_det-lifnr werks = v_po_det-werks.
IF sy-subrc EQ 0.
MOVE : a363_itab-kbetr TO v_po_det-kbetr.
MODIFY v_po_det.
ENDIF.
CLEAR : a363_itab, v_po_det.
ENDLOOP.
Retreiving Data from MKPF & MSEG & ZEOU_PCRDTL table for the given input
And Populating the GR_WH_info itab
SELECT *
FROM mseg
INTO CORRESPONDING FIELDS OF TABLE mseg_itab
FOR ALL ENTRIES IN v_po_det
WHERE ebeln EQ v_po_det-ebeln AND matnr EQ v_po_det-matnr AND bwart IN s_bwart.
IF v_po_det[] IS NOT INITIAL.
SELECT mblnr
ebeln
ebelp
matnr
lifnr
werks
menge
dmbtr
bwart
FROM mseg INTO TABLE mseg_itab
FOR ALL ENTRIES IN v_po_det
WHERE ebeln EQ v_po_det-ebeln AND matnr EQ v_po_det-matnr AND bwart IN s_bwart.
ENDIF.
IF mseg_itab[] IS NOT INITIAL.
SELECT *
FROM mkpf
INTO CORRESPONDING FIELDS OF TABLE mkpf_itab
FOR ALL ENTRIES IN mseg_itab
WHERE mblnr EQ mseg_itab-mblnr.
SELECT mblnr
bldat
FROM mkpf INTO TABLE mkpf_itab
FOR ALL ENTRIES IN mseg_itab
WHERE mblnr EQ mseg_itab-mblnr.
SELECT *
FROM zeou_pcrdtl
INTO CORRESPONDING FIELDS OF TABLE zeou_pcrdtl_itab
FOR ALL ENTRIES IN mseg_itab
WHERE mblnr EQ mseg_itab-mblnr AND matnr EQ mseg_itab-matnr.
SELECT matnr
lifnr
mblnr
whssn
whsdt
FROM zeou_pcrdtl INTO TABLE zeou_pcrdtl_itab
FOR ALL ENTRIES IN mseg_itab
WHERE mblnr EQ mseg_itab-mblnr AND matnr EQ mseg_itab-matnr.
ENDIF.
LOOP AT mseg_itab.
MOVE : mseg_itab-mblnr TO gr_wh_info-mblnr,
mseg_itab-ebeln TO gr_wh_info-ebeln,
mseg_itab-ebelp TO gr_wh_info-ebelp,
mseg_itab-matnr TO gr_wh_info-matnr,
mseg_itab-lifnr TO gr_wh_info-lifnr,
mseg_itab-werks TO gr_wh_info-werks,
mseg_itab-menge TO gr_wh_info-menge,
mseg_itab-dmbtr TO gr_wh_info-dmbtr,
mseg_itab-bwart TO gr_wh_info-bwart.
READ TABLE mkpf_itab WITH KEY mblnr = mseg_itab-mblnr.
IF sy-subrc EQ 0.
MOVE : mkpf_itab-bldat TO gr_wh_info-bldat.
ENDIF.
READ TABLE zeou_pcrdtl_itab WITH KEY mblnr = mseg_itab-mblnr.
IF sy-subrc EQ 0.
MOVE : zeou_pcrdtl_itab-whssn TO gr_wh_info-whssn,
zeou_pcrdtl_itab-whsdt TO gr_wh_info-whsdt.
ENDIF.
APPEND : gr_wh_info.
CLEAR : mseg_itab, mkpf_itab, gr_wh_info.
ENDLOOP.
Retreiving Data from BSEG & BKPF table
And Populating the Vendor Invoice Details
IF v_po_det[] IS NOT INITIAL.
SELECT *
FROM bseg
INTO CORRESPONDING FIELDS OF TABLE bseg_itab
FOR ALL ENTRIES IN v_po_det
WHERE ebeln EQ v_po_det-ebeln AND matnr EQ v_po_det-matnr AND buzid EQ 'W' AND bschl EQ '96'.
SELECT ebeln
ebelp
matnr
lifnr
werks
buzid
bschl
wrbtr
bukrs
belnr
gjahr
FROM bseg INTO TABLE bseg_itab
FOR ALL ENTRIES IN v_po_det
WHERE ebeln EQ v_po_det-ebeln AND matnr EQ v_po_det-matnr AND buzid EQ 'W' AND bschl EQ '96'.
ENDIF.
IF bseg_itab[] IS NOT INITIAL.
SELECT *
FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE bkpf_itab
FOR ALL ENTRIES IN bseg_itab
WHERE bukrs EQ bseg_itab-bukrs AND belnr EQ bseg_itab-belnr AND gjahr EQ bseg_itab-gjahr.
SELECT bukrs
belnr
gjahr
xblnr
bldat
FROM bkpf INTO TABLE bkpf_itab
FOR ALL ENTRIES IN bseg_itab
WHERE bukrs EQ bseg_itab-bukrs AND belnr EQ bseg_itab-belnr AND gjahr EQ bseg_itab-gjahr.
ENDIF.
LOOP AT bseg_itab.
MOVE : bseg_itab-ebeln TO vend_inv-ebeln,
bseg_itab-ebelp TO vend_inv-ebelp,
bseg_itab-matnr TO vend_inv-matnr,
bseg_itab-lifnr TO vend_inv-lifnr,
bseg_itab-werks TO vend_inv-werks,
bseg_itab-buzid TO vend_inv-buzid,
bseg_itab-bschl TO vend_inv-bschl,
bseg_itab-wrbtr TO vend_inv-wrbtr,
bseg_itab-bukrs TO vend_inv-bukrs,
bseg_itab-belnr TO vend_inv-belnr,
bseg_itab-gjahr TO vend_inv-gjahr.
READ TABLE bkpf_itab WITH KEY bukrs = bseg_itab-bukrs belnr = bseg_itab-belnr gjahr = bseg_itab-gjahr.
IF sy-subrc EQ 0.
MOVE : bkpf_itab-xblnr TO vend_inv-xblnr,
bkpf_itab-bldat TO vend_inv-bldat.
APPEND : vend_inv.
ENDIF.
CLEAR : vend_inv, bseg_itab, bkpf_itab.
ENDLOOP.
Retreiving Data from BSEG & BKPF table
And Populating the Cheque Info Details
IF v_po_det[] IS NOT INITIAL.
SELECT *
FROM bseg
INTO CORRESPONDING FIELDS OF TABLE chckinit
FOR ALL ENTRIES IN v_po_det
WHERE ebeln EQ v_po_det-ebeln AND matnr EQ v_po_det-matnr AND buzid EQ 'W' AND bschl EQ '86' AND koart EQ 'K'.
SELECT ebeln
ebelp
matnr
lifnr
werks
buzid
bschl
bukrs
belnr
gjahr
koart
augbl
FROM bseg INTO TABLE chckinit
FOR ALL ENTRIES IN v_po_det
WHERE ebeln EQ v_po_det-ebeln AND matnr EQ v_po_det-matnr AND buzid EQ 'W' AND bschl EQ '86' AND koart EQ 'K'.
ENDIF.
IF chckinit[] IS NOT INITIAL.
SELECT *
FROM payr
INTO CORRESPONDING FIELDS OF TABLE chckpayer
FOR ALL ENTRIES IN chckinit
WHERE vblnr EQ chckinit-augbl.
SELECT vblnr
zbukr
gjahr
chect
zaldt
hbkid
FROM payr INTO TABLE chckpayer
FOR ALL ENTRIES IN chckinit
WHERE vblnr EQ chckinit-augbl.
ENDIF.
SORT chckpayer BY vblnr DESCENDING.
LOOP AT chckpayer.
ON CHANGE OF chckpayer-vblnr.
MOVE : chckpayer TO chckpayer_u.
APPEND : chckpayer_u.
CLEAR : chckpayer_u, chckpayer.
ENDON.
ENDLOOP.
LOOP AT chckinit.
MOVE : chckinit-ebeln TO chckfinal-ebeln,
chckinit-ebelp TO chckfinal-ebelp,
chckinit-matnr TO chckfinal-matnr,
chckinit-lifnr TO chckfinal-lifnr,
chckinit-werks TO chckfinal-werks,
chckinit-buzid TO chckfinal-buzid,
chckinit-bschl TO chckfinal-bschl,
chckinit-bukrs TO chckfinal-bukrs,
chckinit-gjahr TO chckfinal-gjahr,
chckinit-koart TO chckfinal-koart,
chckinit-augbl TO chckfinal-augbl.
READ TABLE chckpayer_u WITH KEY vblnr = chckinit-augbl gjahr = chckinit-gjahr.
IF sy-subrc EQ 0.
MOVE : chckpayer_u-vblnr TO chckfinal-vblnr,
chckpayer_u-zbukr TO chckfinal-zbukr,
chckpayer_u-chect TO chckfinal-chect,
chckpayer_u-zaldt TO chckfinal-zaldt,
chckpayer_u-hbkid TO chckfinal-hbkid.
APPEND : chckfinal.
ENDIF.
CLEAR : chckfinal, chckpayer_u, chckinit.
ENDLOOP.
Populating the final CST TABLE
LOOP AT v_po_det.
MOVE : v_po_det-lifnr TO cst_rep-lifnr,
v_po_det-werks TO cst_rep-werks,
v_po_det-ebeln TO cst_rep-ebeln,
v_po_det-ebelp TO cst_rep-ebelp,
v_po_det-bedat TO cst_rep-bedat,
v_po_det-matnr TO cst_rep-matnr,
v_po_det-kbetr TO cst_rep-kbetr.
READ TABLE gr_wh_info WITH KEY ebeln = v_po_det-ebeln ebelp = v_po_det-ebelp."matnr = v_po_det-matnr.
IF sy-subrc EQ 0.
MOVE : gr_wh_info-mblnr TO cst_rep-mblnr,
gr_wh_info-bldat TO cst_rep-bldat,
gr_wh_info-menge TO cst_rep-menge,
gr_wh_info-dmbtr TO cst_rep-dmbtr,
gr_wh_info-bwart TO cst_rep-bwart,
gr_wh_info-whssn TO cst_rep-whssn,
gr_wh_info-whsdt TO cst_rep-whsdt.
ENDIF.
READ TABLE vend_inv WITH KEY ebeln = v_po_det-ebeln ebelp = v_po_det-ebelp."matnr = v_po_det-matnr.
IF sy-subrc EQ 0.
MOVE : vend_inv-buzid TO cst_rep-buzid,
vend_inv-bschl TO cst_rep-bschl,
vend_inv-wrbtr TO cst_rep-wrbtr,
vend_inv-belnr TO cst_rep-belnr,
vend_inv-gjahr TO cst_rep-gjahr,
vend_inv-xblnr TO cst_rep-xblnr.
ENDIF.
READ TABLE chckfinal WITH KEY ebeln = v_po_det-ebeln ebelp = v_po_det-ebelp."matnr = v_po_det-matnr.
IF sy-subrc EQ 0.
MOVE : chckfinal-augbl TO cst_rep-augbl,
chckfinal-vblnr TO cst_rep-vblnr,
chckfinal-zbukr TO cst_rep-zbukr,
chckfinal-chect TO cst_rep-chect,
chckfinal-zaldt TO cst_rep-zaldt,
chckfinal-hbkid TO cst_rep-hbkid.
ENDIF.
READ TABLE mat_desc WITH KEY matnr = v_po_det-matnr.
IF sy-subrc EQ 0.
MOVE : mat_desc-maktx TO cst_rep-maktx.
ENDIF.
READ TABLE vend_det WITH KEY lifnr = v_po_det-lifnr.
IF sy-subrc EQ 0.
MOVE : vend_det-name1 TO cst_rep-name1,
vend_det-j_1icstno TO cst_rep-j_1icstno.
ENDIF.
APPEND : cst_rep.
CLEAR : cst_rep, v_po_det, gr_wh_info, vend_inv, chckfinal.
ENDLOOP.
Populating GT_output
LOOP AT cst_rep.
cst_gr = cst_rep-dmbtr * ( cst_rep-kbetr / 1000 ).
cst_inv = cst_rep-wrbtr * ( cst_rep-kbetr / 1000 ).
MOVE : cst_gr TO cst_rep-cst_dmbtr,
cst_inv TO cst_rep-cst_wrbtr.
MODIFY : cst_rep.
CLEAR : cst_rep, cst_gr, cst_inv.
ENDLOOP.
LOOP AT cst_rep.
MOVE : sy-tabix TO gt_output-slno,
cst_rep-lifnr TO gt_output-lifnr,
cst_rep-name1 TO gt_output-name1,
cst_rep-j_1icstno TO gt_output-j_1icstno,
cst_rep-werks TO gt_output-werks,
cst_rep-matnr TO gt_output-matnr,
cst_rep-maktx TO gt_output-maktx,
cst_rep-ebeln TO gt_output-ebeln,
cst_rep-ebelp TO gt_output-ebelp,
cst_rep-bedat TO gt_output-bedat,
cst_rep-mblnr TO gt_output-mblnr,
cst_rep-bldat TO gt_output-bldat,
cst_rep-menge TO gt_output-menge,
cst_rep-dmbtr TO gt_output-dmbtr,
cst_rep-cst_dmbtr TO gt_output-cst_dmbtr,
cst_rep-bwart TO gt_output-bwart,
cst_rep-whssn TO gt_output-whssn,
cst_rep-whsdt TO gt_output-whsdt,
cst_rep-buzid TO gt_output-buzid,
cst_rep-bschl TO gt_output-bschl,
cst_rep-wrbtr TO gt_output-wrbtr,
cst_rep-cst_wrbtr TO gt_output-cst_wrbtr,
cst_rep-belnr TO gt_output-belnr,
cst_rep-gjahr TO gt_output-gjahr,
cst_rep-xblnr TO gt_output-xblnr,
cst_rep-augbl TO gt_output-augbl,
cst_rep-vblnr TO gt_output-vblnr,
cst_rep-zbukr TO gt_output-zbukr,
cst_rep-chect TO gt_output-chect,
cst_rep-zaldt TO gt_output-zaldt,
cst_rep-hbkid TO gt_output-hbkid.
APPEND gt_output.
CLEAR : cst_rep, gt_output, sy-tabix.
ENDLOOP.
END-OF-SELECTION.
*-ALV Routine
PERFORM alv_forms.
*& Form alv_forms
FORM alv_forms.
PERFORM alv_routines.
gx_variant = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
vari = gx_variant-variant.
ENDIF.
PERFORM comment_build USING gt_list_top_of_page[].
PERFORM fieldcat_init USING gt_fieldcat[].
PERFORM layout_build USING gs_layout.
PERFORM print_build USING gs_print.
PERFORM alv_output.
ENDFORM. " alv_forms
*& Form alv_routines
FORM alv_routines.
PERFORM eventtab_build USING gt_events[].
PERFORM e06_t_sort_build USING gt_sort[].
PERFORM sp_group_build USING gt_sp_group[].
g_save = 'A'.
PERFORM variant_init.
ENDFORM. " alv_routines
*& Form eventtab_build
----Hi Anu,
These two statements taking to much time for execution what I can do for reducing execution time.
Regards,
Rakesh
SELECT ebeln
ebelp
matnr
lifnr
werks
buzid
bschl
wrbtr
bukrs
belnr
gjahr
FROM bseg INTO TABLE bseg_itab
FOR ALL ENTRIES IN v_po_det
WHERE ebeln EQ v_po_det-ebeln AND matnr EQ v_po_det-matnr AND buzid EQ 'W' AND bschl EQ '96'.
ENDIF.
SELECT ebeln
ebelp
matnr
lifnr
werks
buzid
bschl
bukrs
belnr
gjahr
koart
augbl
FROM bseg INTO TABLE chckinit
FOR ALL ENTRIES IN v_po_det
WHERE ebeln EQ v_po_det-ebeln AND matnr EQ v_po_det-matnr AND buzid EQ 'W' AND bschl EQ '86' AND koart EQ 'K'.
ENDIF. -
How to remove empty lines from xml files after removing nodes from document
<pre>
Hi
<b>i have xml document, which is shown below
after removing some nodes from the document ,i am getting empty lines in place of removed nodes,how to resolve this and get the proper xml document without any errors</b>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE Message SYSTEM "TRD01.dtd">
<Message>
<Header>
<CounterPartyType>CLIENT</CounterPartyType>
<CreationTime>20134455</CreationTime>
<ErrorCode>363 </ErrorCode>
<ErrorEnterPriseId>N</ErrorEnterPriseId>
<ErrorStatus>1</ErrorStatus>
<ErrorSystemId>STL</ErrorSystemId>
<ErrorTimes>31</ErrorTimes>
<MessageType>T</MessageType>
<RecipientEnterpriseId>N</RecipientEnterpriseId>
<RecipentSystemId>EXM</RecipentSystemId>
<Remarks>REMARSK</Remarks>
<SenderEnterpriseId>N</SenderEnterpriseId>
<SenderSystemId>TR</SenderSystemId>
</Header>
</Message>
<ErrorCode>363 </ErrorCode>
<ErrorEnterPriseId>NIHK</ErrorEnterPriseId>
<ErrorStatus>1</ErrorStatus>
<ErrorSystemId>STL</ErrorSystemId>
<ErrorTimes>31</ErrorTimes>
XPathExpression expression5 = xpath.compile(xmlpath5);
Object result5 = expression5.evaluate(doc, XPathConstants.NODE);
Node node5 = (Node) result5;
node5.getParentNode().removeChild(node5);
XPathExpression expression6 = xpath.compile(xmlpath6);
Object result6 = expression6.evaluate(doc, XPathConstants.NODE);
Node node6=(Node) result6;
node6.getParentNode().removeChild(node6);
XPathExpression expression7 = xpath.compile(xmlpath7);
Object result7 = expression7.evaluate(doc, XPathConstants.NODE);
Node node7=(Node) result7;
node7.getParentNode().removeChild(node7);
doc.normalize();
doc.normalizeDocument();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.INDENT, "yes");
t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
t.setOutputProperty(OutputKeys.METHOD,"xml");
t.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
the xml output i am getting is
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Message>
<Header>
<CounterPartyType>CLIENT</CounterPartyType>
<CreationTime>20134455</CreationTime>
<MessageType>TRD01</MessageType>
<RecipientEnterpriseId>N</RecipientEnterpriseId>
<RecipentSystemId>STL</RecipentSystemId>
<Remarks>REMARSK</Remarks>
<SenderEnterpriseId>N</SenderEnterpriseId>
<SenderSystemId>T</SenderSystemId>
</Header>
</Message>
<b>could you please let me know how to avoid empty lines in the xml doucment output</b>
this is the method i am using to get the result
public void ValidateRecord(String xml){
try{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
//parse file into DOM
/*DOMParser parser = new DOMParser();
parser.setErrorStream(System.err);
parser.setValidationMode(DTD_validation);
parser.showWarnings(true);*/
System.out.println ("HI THIS xml is validation "+xml);
Resolver res = new Resolver();
db.setEntityResolver(res);
Document doc = db.parse(new InputSource(new StringReader(xml)));
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
// XPathExpression expression = xpath.compile("//A/B[C/E/text()=13]");
String xmlpath="/Message/Header/CounterPartyType/text()";
String xmlpath1="/Message/Header/RecipentSystemId/text()";
String xmlpath2="/Message/Header/ErrorSystemId/text()";
XPathExpression expression = xpath.compile(xmlpath);
XPathExpression expression1 = xpath.compile(xmlpath2);
Object result = expression.evaluate(doc, XPathConstants.NODE);
Object result1 = expression1.evaluate(doc, XPathConstants.NODE);
Node node = (Node) result;
Node node1 = (Node) result1;
System.out.println("the values of the string is " +node.getNodeValue());
System.out.println("the values of the string is " +node1.getNodeValue());
// for (int i = 0; i < nodes.getLength(); i++) {
//System.out.println(nodes.item(i).getNodeValue());
// CAHNGING THE RECEIPENT NODE
XPathExpression expression2 = xpath.compile(xmlpath1);
Object result2 = expression2.evaluate(doc, XPathConstants.NODE);
Node node2 = (Node) result2;
System.out.println(node2);
node2.setNodeValue(node1.getNodeValue());
System.out.println(node2);
//removing the nodes from document
String xmlpath3="/Message/Header/ErrorCode";
String xmlpath4="/Message/Header/ErrorEnterPriseId";
String xmlpath5="/Message/Header/ErrorStatus";
String xmlpath6="/Message/Header/ErrorSystemId";
String xmlpath7="/Message/Header/ErrorTimes";
XPathExpression expression3 = xpath.compile(xmlpath3);
Object result3 = expression3.evaluate(doc, XPathConstants.NODE);
Node node3 = (Node) result3;
node3.getParentNode().removeChild(node3);
XPathExpression expression4 = xpath.compile(xmlpath4);
Object result4 = expression4.evaluate(doc, XPathConstants.NODE);
Node node4 = (Node) result4;
System.out.println("node value");
System.out.println(node4.getParentNode().getNodeName());
node4.getParentNode().removeChild(node4);
XPathExpression expression5 = xpath.compile(xmlpath5);
Object result5 = expression5.evaluate(doc, XPathConstants.NODE);
Node node5 = (Node) result5;
node5.getParentNode().removeChild(node5);
XPathExpression expression6 = xpath.compile(xmlpath6);
Object result6 = expression6.evaluate(doc, XPathConstants.NODE);
Node node6=(Node) result6;
node6.getParentNode().removeChild(node6);
XPathExpression expression7 = xpath.compile(xmlpath7);
Object result7 = expression7.evaluate(doc, XPathConstants.NODE);
Node node7=(Node) result7;
node7.getParentNode().removeChild(node7);
// Node b13Node = (Node) expression.evaluate(doc, XPathConstants.NODE);
//b13Node.getParentNode().removeChild(b13Node);
doc.normalize();
doc.normalizeDocument();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.INDENT, "yes");
t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
t.setOutputProperty(OutputKeys.METHOD,"xml");
t.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
t.transform(new DOMSource(doc), new StreamResult(System.out));
catch (Exception e) {
e.printStackTrace();
System.out.println(e.getMessage());
</pre>
Edited by: user12185243 on Apr 6, 2013 6:38 AM
Edited by: user12185243 on Apr 6, 2013 6:41 AM
Edited by: user12185243 on Apr 6, 2013 6:43 AM
Edited by: user12185243 on Apr 6, 2013 6:45 AM
Edited by: user12185243 on Apr 6, 2013 9:00 AMeither this way we can do this
1)
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
<b> factory.setIgnoringElementContentWhitespace(true); </b>
DocumentBuilder db = factory.newDocumentBuilder();
or
2)
java.io.StringWriter sw = new java.io.StringWriter();
StreamResult sr = new StreamResult(sw);
t.transform(new DOMSource(doc), sr);
String xml1 = sw.toString().trim();
<b> xml1=xml1.replaceAll("\\s",""); </b>
System.out.println(xml1.trim()); -
Urgent ...how to send output of sap through mail
Could you please guide me how to send output of SAP Script through mail in PDF format.
Thanks in Advance....
Regards,
Kumar.*& Report ZSPOOLTOPDF *
*& Converts spool request into PDF document and emails it to *
*& recipicant. *
*& Execution *
*& This program must be run as a background job in-order for the write *
*& commands to create a Spool request rather than be displayed on *
*& screen *
REPORT zspooltopdf.
PARAMETER: p_email1 LIKE somlreci1-receiver,
p_sender LIKE somlreci1-receiver,
p_delspl AS CHECKBOX.
*DATA DECLARATION
DATA: gd_recsize TYPE i.
Spool IDs
TYPES: BEGIN OF t_tbtcp.
INCLUDE STRUCTURE tbtcp.
TYPES: END OF t_tbtcp.
DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
wa_tbtcp TYPE t_tbtcp.
Job Runtime Parameters
DATA: gd_eventid LIKE tbtcm-eventid,
gd_eventparm LIKE tbtcm-eventparm,
gd_external_program_active LIKE tbtcm-xpgactive,
gd_jobcount LIKE tbtcm-jobcount,
gd_jobname LIKE tbtcm-jobname,
gd_stepcount LIKE tbtcm-stepcount,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc.
DATA: w_recsize TYPE i.
DATA: gd_subject LIKE sodocchgi1-obj_descr,
it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
gd_sender_type LIKE soextreci1-adr_typ,
gd_attachment_desc TYPE so_obj_nam,
gd_attachment_name TYPE so_obj_des.
Spool to PDF conversions
DATA: gd_spool_nr LIKE tsp01-rqident,
gd_destination LIKE rlgrap-filename,
gd_bytecount LIKE tst01-dsize,
gd_buffer TYPE string.
Binary store for PDF
DATA: BEGIN OF it_pdf_output OCCURS 0.
INCLUDE STRUCTURE tline.
DATA: END OF it_pdf_output.
CONSTANTS: c_dev LIKE sy-sysid VALUE 'DEV',
c_no(1) TYPE c VALUE ' ',
c_device(4) TYPE c VALUE 'LOCL'.
*START-OF-SELECTION.
START-OF-SELECTION.
Write statement to represent report output. Spool request is created
if write statement is executed in background. This could also be an
ALV grid which would be converted to PDF without any extra effort
WRITE 'Hello World'.
new-page.
commit work.
new-page print off.
IF sy-batch EQ 'X'.
PERFORM get_job_details.
PERFORM obtain_spool_id.
Alternative way could be to submit another program and store spool
id into memory, will be stored in sy-spono.
*submit ZSPOOLTOPDF2
to sap-spool
spool parameters %_print
archive parameters %_print
without spool dynpro
and return.
Get spool id from program called above
IMPORT w_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
PERFORM convert_spool_to_pdf.
PERFORM process_email.
if p_delspl EQ 'X'.
PERFORM delete_spool.
endif.
IF sy-sysid = c_dev.
wait up to 5 seconds.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDIF.
ELSE.
SKIP.
WRITE:/ 'Program must be executed in background in-order for spool',
'request to be created.'.
ENDIF.
FORM obtain_spool_id *
FORM obtain_spool_id.
CHECK NOT ( gd_jobname IS INITIAL ).
CHECK NOT ( gd_jobcount IS INITIAL ).
SELECT * FROM tbtcp
INTO TABLE it_tbtcp
WHERE jobname = gd_jobname
AND jobcount = gd_jobcount
AND stepcount = gd_stepcount
AND listident <> '0000000000'
ORDER BY jobname
jobcount
stepcount.
READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
IF sy-subrc = 0.
message s004(zdd) with gd_spool_nr.
gd_spool_nr = wa_tbtcp-listident.
MESSAGE s004(zdd) WITH gd_spool_nr.
ELSE.
MESSAGE s005(zdd).
ENDIF.
ENDFORM.
FORM get_job_details *
FORM get_job_details.
Get current job details
CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
IMPORTING
eventid = gd_eventid
eventparm = gd_eventparm
external_program_active = gd_external_program_active
jobcount = gd_jobcount
jobname = gd_jobname
stepcount = gd_stepcount
EXCEPTIONS
no_runtime_info = 1
OTHERS = 2.
ENDFORM.
FORM convert_spool_to_pdf *
FORM convert_spool_to_pdf.
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
src_spoolid = gd_spool_nr
no_dialog = c_no
dst_device = c_device
IMPORTING
pdf_bytecount = gd_bytecount
TABLES
pdf = it_pdf_output
EXCEPTIONS
err_no_abap_spooljob = 1
err_no_spooljob = 2
err_no_permission = 3
err_conv_not_possible = 4
err_bad_destdevice = 5
user_cancelled = 6
err_spoolerror = 7
err_temseerror = 8
err_btcjob_open_failed = 9
err_btcjob_submit_failed = 10
err_btcjob_close_failed = 11
OTHERS = 12.
CHECK sy-subrc = 0.
Transfer the 132-long strings to 255-long strings
LOOP AT it_pdf_output.
TRANSLATE it_pdf_output USING ' ~'.
CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
ENDLOOP.
TRANSLATE gd_buffer USING '~ '.
DO.
it_mess_att = gd_buffer.
APPEND it_mess_att.
SHIFT gd_buffer LEFT BY 255 PLACES.
IF gd_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
ENDFORM.
FORM process_email *
FORM process_email.
DESCRIBE TABLE it_mess_att LINES gd_recsize.
CHECK gd_recsize > 0.
PERFORM send_email USING p_email1.
perform send_email using p_email2.
ENDFORM.
FORM send_email *
--> p_email *
FORM send_email USING p_email.
CHECK NOT ( p_email IS INITIAL ).
REFRESH it_mess_bod.
Default subject matter
gd_subject = 'Subject'.
gd_attachment_desc = 'Attachname'.
CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
it_mess_bod = 'Message Body text, line 1'.
APPEND it_mess_bod.
it_mess_bod = 'Message Body text, line 2...'.
APPEND it_mess_bod.
If no sender specified - default blank
IF p_sender EQ space.
gd_sender_type = space.
ELSE.
gd_sender_type = 'INT'.
ENDIF.
Send file by email as .xls speadsheet
PERFORM send_file_as_email_attachment
tables it_mess_bod
it_mess_att
using p_email
'Example .xls documnet attachment'
'PDF'
gd_attachment_name
gd_attachment_desc
p_sender
gd_sender_type
changing gd_error
gd_reciever.
ENDFORM.
FORM delete_spool *
FORM delete_spool.
DATA: ld_spool_nr TYPE tsp01_sp0r-rqid_char.
ld_spool_nr = gd_spool_nr.
CHECK p_delspl <> c_no.
CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
EXPORTING
spoolid = ld_spool_nr.
ENDFORM.
*& Form SEND_FILE_AS_EMAIL_ATTACHMENT
Send email
FORM send_file_as_email_attachment tables it_message
it_attach
using p_email
p_mtitle
p_format
p_filename
p_attdescription
p_sender_address
p_sender_addres_type
changing p_error
p_reciever.
DATA: ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver,
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_nam ,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
data: t_packing_list like sopcklsti1 occurs 0 with header line,
t_contents like solisti1 occurs 0 with header line,
t_receivers like somlreci1 occurs 0 with header line,
t_attachment like solisti1 occurs 0 with header line,
t_object_header like solisti1 occurs 0 with header line,
w_cnt type i,
w_sent_all(1) type c,
w_doc_data like sodocchgi1.
ld_email = p_email.
ld_mtitle = p_mtitle.
ld_format = p_format.
ld_attdescription = p_attdescription.
ld_attfilename = p_filename.
ld_sender_address = p_sender_address.
ld_sender_address_type = p_sender_addres_type.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
t_attachment[] = it_attach[].
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-receiver = ld_email.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
receivers = t_receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
Populate zerror return code
ld_error = sy-subrc.
Populate zreceiver return code
LOOP AT t_receivers.
ld_receiver = t_receivers-retrn_code.
ENDLOOP.
ENDFORM.
regards,
venkat -
How to download output data into Excel with all Column Headings
Hi Experts,
Please tell me How to download output data of ALV Grid into Excel file with all Column Headings and I want to do this using coding,
please send me if any solution is available.
Thanks & Regards,
YogeshVERSION CONTROL (Most recent on top): *
DATE(mm.dd.yyyy) AUTHOR *
06.25.2007 Pattan Naveen *
Hi yogesh,,
Go through this in this u find ur solution.
report ZTEst_programe no standard page heading
line-size 100
line-count 50(5)
message-id zz.
*--alv type declaration
type-pools: slis.
*--Tables:
tables: anla,
anlz,
anlh,
anlb,
anlc.
data: v_pos type i.
data: v_ndjar type i.
data: v_ndper type i,
v_ndperndabp type i,
v_ndjarndabp1 type i,
v_ndjarndabp type i,
value type i,
date(10) type c value '2006.12.04'.
data: c_0000(4) type c value '0000'.
data: begin of it_final occurs 0,
anlkl(8),
bukrs(4),
anln1 like anla-anln1,
anln2 like anla-anln2,
txt50 like anla-txt50,
txa50 like anla-txa50,
anlhtxt like anlh-anlhtxt,
sernr like anla-sernr,
invnr like anla-invnr,
menge like anla-menge,
meins like anla-meins,
inken like anla-inken,
ivdat like anla-ivdat,
aktiv like anla-aktiv,
gsber like anlz-gsber,
kostl like anlz-kostl,
kostlv like anlz-kostlv,
werks like anlz-werks,
stort like anlz-stort,
raumn like anlz-raumn,
txjcd like anlz-txjcd,
ord41 like anla-ord41,
ord44 like anla-ord44,
gdlgrp like anla-gdlgrp,
anlue like anla-anlue,
lifnr like anla-lifnr,
typbz like anla-typbz,
aibn1 like anla-aibn1,
aibn2 like anla-aibn2,
aibdt like anla-aibdt,
posnr like anla-posnr,
vmgli like anla-vmgli,
invzu like anla-invzu,
ernam like anla-ernam,
erdat like anla-erdat,
afabe like anlb-afabe,
afasl like anlb-afasl,
ndjar like anlb-ndjar,
ndper like anlb-ndper,
afabg like anlb-afabg,
ndabj like anlc-ndabj,
ndabp like anlc-ndabp,
andsj like anlc-andsj,
andsp like anlc-andsp,
safbg like anlb-safbg,
umjar like anlb-umjar,
inbda like anlb-inbda,
kansw like anlc-kansw,
knafa like anlc-knafa,
kaafa like anlc-kaafa,
deakt like anla-deakt,
kanza like anlc-kanza,
kaufw like anlc-kaufw,
kinvz like anlc-kinvz,
ksafa like anlc-ksafa,
kmafa like anlc-kmafa,
end of it_final.
data: begin of it_final_as91 occurs 0,
anlkl(8),
bukrs(4),
anln1 like anla-anln1,
anln2 like anla-anln2,
txt50 like anla-txt50,
txa50 like anla-txa50,
anlhtxt like anlh-anlhtxt,
sernr like anla-sernr,
invnr like anla-invnr,
menge like anla-menge,
meins like anla-meins,
inken like anla-inken,
ivdat like anla-ivdat,
aktiv like anla-aktiv,
gsber like anlz-gsber,
kostl like anlz-kostl,
kostlv like anlz-kostlv,
werks like anlz-werks,
stort like anlz-stort,
raumn like anlz-raumn,
txjcd like anlz-txjcd,
ord41 like anla-ord41,
ord44 like anla-ord44,
gdlgrp like anla-gdlgrp,
anlue like anla-anlue,
lifnr(10),
typbz(15),
aibn1 like anla-aibn1,
aibn2 like anla-aibn2,
aibdt like anla-aibdt,
posnr like anla-posnr,
vmgli like anla-vmgli,
invzu like anla-invzu,
ernam like anla-ernam,
erdat like anla-erdat,
end of it_final_as91.
data: it_download_as91 like it_final_as91 occurs 0
with header line."#EC NEEDED
data: begin of it_final_as92 occurs 0,
anlkl(8),
bukrs(4),
anln1 like anla-anln1,
anln2 like anla-anln2,
deakt like anla-deakt,
ernam like anla-ernam,
erdat like anla-erdat,
afabe like anlb-afabe,
afasl like anlb-afasl,
ndjar like anlb-ndjar,
ndper like anlb-ndper,
afabg like date,
ndabj(3) type c,
ndabp(3) type c,
kansw like anlc-kansw,
knafa like anlc-knafa,
kaafa like anlc-kaafa,
kanza like anlc-kanza,
kaufw like anlc-kaufw,
kinvz like anlc-kinvz,
ksafa like anlc-ksafa,
kmafa like anlc-kmafa,
end of it_final_as92.
data: it_download_as92 like it_final_as92 occurs 0
with header line."#EC NEEDED
data: begin of it_values occurs 0,
anlkl(8),
bukrs(4),
anln1 like anla-anln1,
anln2 like anla-anln2,
deakt like anla-deakt,
afabe like anlb-afabe,
afasl like anlb-afasl,
ndjar like anlb-ndjar,
ndper like anlb-ndper,
afabg like date,
ndabj(3) type c,
ndabp(3) type c,
afabe_02 like anlb-afabe,
afasl_02 like anlb-afasl,
ndjar_02 like anlb-ndjar,
ndper_02 like anlb-ndper,
afabg_02 like date,
ndabj_02 like anlc-ndabj,
ndabp_02 like anlc-ndabp,
kansw01 like anlc-kansw,
knafa01 like anlc-knafa,
kaafa01 like anlc-kaafa,
kansw02 like anlc-kansw,
knafa02 like anlc-knafa,
kaafa02 like anlc-kaafa,
kansw03 like anlc-kansw,
knafa03 like anlc-knafa,
kaafa03 like anlc-kaafa,
kansw04 like anlc-kansw,
knafa04 like anlc-knafa,
kaafa04 like anlc-kaafa,
kansw05 like anlc-kansw,
knafa05 like anlc-knafa,
kaafa05 like anlc-kaafa,
kansw06 like anlc-kansw,
knafa06 like anlc-knafa,
kaafa06 like anlc-kaafa,
kansw07 like anlc-kansw,
knafa07 like anlc-knafa,
kaafa07 like anlc-kaafa,
kansw08 like anlc-kansw,
knafa08 like anlc-knafa,
kaafa08 like anlc-kaafa,
kansw09 like anlc-kansw,
knafa09 like anlc-knafa,
kaafa09 like anlc-kaafa,
kanza01 like anlc-kanza,
kaufw01 like anlc-kaufw,
kinvz01 like anlc-kinvz,
ksafa01 like anlc-ksafa,
kmafa01 like anlc-kmafa,
end of it_values.
data: it_values_xls like it_values occurs 0
with header line."#EC NEEDED
data: begin of it_itab1 occurs 0,
bukrs like anla-bukrs,
anlkl like anla-anlkl,
anln1 like anla-anln1,
anln2 like anla-anln2,
txt50 like anla-txt50,
txa50 like anla-txa50,
invnr like anla-invnr,
ktogr like anla-ktogr,
sernr like anla-sernr,
menge like anla-menge,
meins like anla-meins,
ivdat like anla-ivdat,
inken like anla-inken,
aktiv like anla-aktiv,
deakt like anla-deakt,
zugdt like anla-zugdt,
zujhr like anla-zujhr,
zuper like anla-zuper,
gdlgrp like anla-gdlgrp,
anlue like anla-anlue,
xafabch like anla-xafabch,
aibn1 like anla-aibn1,
aibn2 like anla-aibn2,
aibdt like anla-aibdt,
posnr like anla-posnr,
ord41 like anla-ord41,
ord44 like anla-ord44,
vmgli like anla-vmgli,
invzu like anla-invzu,
typbz like anla-typbz,
lifnr like anla-lifnr,
ernam like anla-ernam,
erdat like anla-erdat,
end of it_itab1.
data: begin of it_itab2 occurs 0,
bukrs like anlz-bukrs,
anln1 like anlz-anln1,
anln2 like anla-anln2,
bdatu like anlz-bdatu,
werks like anlz-werks,
gsber like anlz-gsber,
kostl like anlz-kostl,
kostlv like anlz-kostlv,
stort like anlz-stort,
raumn like anlz-raumn,
txjcd like anlz-txjcd,
ipsnr like anlz-ipsnr,
end of it_itab2.
data: begin of it_itab3 occurs 0,
bukrs like anlh-bukrs,
anln1 like anlh-anln1,
anlhtxt like anlh-anlhtxt,
end of it_itab3.
data: begin of it_itab4 occurs 0,
bukrs like anlb-bukrs,
anln1 like anlb-anln1,
anln2 like anla-anln2,
afabe like anlb-afabe,
bdatu like anlb-bdatu,
afasl like anlb-afasl,
ndjar like anlb-ndjar,
ndper like anlb-ndper,
afabg like anlb-afabg,
ndurj like anlb-ndurj,
ndurp like anlb-ndurp,
umjar like anlb-umjar,
safbg like anlb-safbg,
zinbg like anlb-zinbg,
inbda like anlb-inbda,
end of it_itab4.
data: begin of it_itab5 occurs 0,
bukrs like anlc-bukrs,
anln1 like anlc-anln1,
anln2 like anla-anln2,
gjahr like anlc-gjahr,
afabe like anlc-afabe,
zujhr like anlc-zujhr,
zucod like anlc-zucod,
ndabj like anlc-ndabj,
ndabp like anlc-ndabp,
kansw like anlc-kansw,
knafa like anlc-knafa,
kaafa like anlc-kaafa,
ksafa like anlc-ksafa,
andsj like anlc-andsj,
andsp like anlc-andsp,
kanza like anlc-kanza,
kaufw like anlc-kaufw,
kinvz like anlc-kinvz,
kmafa like anlc-kmafa,
end of it_itab5.
ALV DECLARATIONS
*--declarations for Xls sheet header field names
data: begin of it_head occurs 0,
column(70).
data: end of it_head.
data: begin of it_head1 occurs 0,
column(70).
data: end of it_head1.
*--type declarations for field catalog for basic report
data: it_fldcat_head type slis_t_fieldcat_alv,
wa_fldcat_head type slis_fieldcat_alv."#EC NEEDED
data : w_field type slis_fieldcat_alv."#EC NEEDED
data: it_fldcat_head1 type slis_t_fieldcat_alv,
wa_fldcat_head1 type slis_fieldcat_alv."#EC NEEDED
*--type declarations for layout design
data: wa_layout type slis_layout_alv.
*--type declarations for list header on grid
*data: top_of_page type slis_t_listheader.
*--declaration of variables
data : w_repid like sy-repid.
**selection-screen
select-options: s_bukrs for anla-bukrs,
s_anln1 for anla-anln1.
select-options: s_deakt for anla-deakt,
s_gjahr for anlc-gjahr obligatory,
s_anlkl for anla-anlkl,
s_date for anla-aktiv.
*selection-screen
selection-screen begin of block blk1 with frame title text-022.
selection-screen begin of line.
parameters : r1 radiobutton group g1 default 'X'.
selection-screen comment 20(50) text-020.
selection-screen end of line.
selection-screen begin of line.
parameters : r2 radiobutton group g1.
selection-screen comment 20(50) text-021.
selection-screen end of line.
selection-screen end of block blk1.
selection-screen begin of block blk2 with frame title text-023.
select-options: s_ernam for anla-ernam,
s_erdat for anla-erdat .
selection-screen end of block blk2.
*--INITIALIZATION
initialization.
w_repid = sy-repid.
at selection-screen.
if r1 = 'X'.
perform selection_screen_validation.
endif.
if r2 = 'X'.
perform selection_screen_validation.
endif.
*--START-OF-SELCTION
start-of-selection.
if r1 = 'X'.
perform populate-data.
perform fill_finaldata.
perform comment_build using top_of_page.
perform xls_output.
perform download.
endif.
if r2 = 'X'.
perform populate-data.
perform fill_finaldata.
perform fill_as92data.
perform putdata_horizontal.
perform xls_output_as92.
perform download_as92.
endif.
*--END-OF-SELCTION
end-of-selection.
if r1 = 'X'.
perform build_layout.
perform build_fieldcatalog.
perform top_of_page.
perform list-display.
endif.
if r2 = 'X'.
perform build_layout.
perform build_fieldcatalog1.
perform list-display1.
endif.
*& Form SELECTION_SCREEN_VALIDATION
text
--> p1 text
<-- p2 text
form selection_screen_validation.
*--validating originating company code
data: l_bukrs like anla-bukrs."#EC NEEDED
if not s_bukrs[] is initial.
select single bukrs from anla
into l_bukrs
where bukrs in s_bukrs.
if sy-subrc <> 0.
message e000 with text-001 .
endif.
endif.
*--validating originating main asset no.
data: l_anln1 like anla-anln1."#EC NEEDED
if not s_anln1[] is initial.
select single anln1 from anla
into l_anln1
where anln1 in s_anln1.
if sy-subrc <> 0.
message e000 with text-002 .
endif.
endif.
*--validating originating Deactivation date
data: l_deakt like anla-deakt."#EC NEEDED
if not s_deakt[] is initial.
select single deakt from anla
into l_deakt
where deakt in s_deakt.
if sy-subrc <> 0.
message e000 with text-004 .
endif.
endif.
*--validating originating asset class.
data: l_anlkl like anla-anlkl."#EC NEEDED
if not s_anlkl[] is initial.
select single anlkl from anla
into l_anlkl
where anlkl in s_anlkl.
if sy-subrc <> 0.
message e000 with text-006 .
endif.
endif.
*--validating originating Date
data: l_date like anla-aktiv."#EC NEEDED
if not s_date[] is initial.
select single aktiv from anla
into l_date
where aktiv in s_date.
if sy-subrc <> 0.
message e000 with text-007 .
endif.
endif.
*--validating originating Fiscal year which first acquisition was posted
data: l_gjahr like anlc-gjahr."#EC NEEDED
if not s_gjahr[] is initial.
select single gjahr from anlc
into l_gjahr
where gjahr in s_gjahr.
if sy-subrc <> 0.
message e000 with text-008.
endif.
endif.
data: l_ernam like anla-ernam."#EC NEEDED
if not s_ernam[] is initial.
select single ernam from anla
into l_ernam
where ernam in s_ernam.
if sy-subrc <> 0.
message e000 with text-009.
endif.
endif.
data: l_erdat like anla-erdat."#EC NEEDED
if not s_erdat[] is initial.
select single erdat from anla
into l_erdat
where erdat in s_erdat.
if sy-subrc <> 0.
message e000 with text-010.
endif.
endif.
endform. " SELECTION_SCREEN_VALIDATION
*& Form POPULATE-DATA
text
--> p1 text
<-- p2 text
form populate-data.
select bukrs
anlkl
anln1
anln2
txt50
txa50
invnr
ktogr
sernr
menge
meins
ivdat
inken
aktiv
deakt
zugdt
zujhr
zuper
gdlgrp
anlue
xafabch
aibn1
aibn2
aibdt
posnr
ord41
ord44
vmgli
invzu
typbz
lifnr
ernam
erdat
from anla
into table it_itab1
where anlkl in s_anlkl and
anln1 in s_anln1 and
deakt in s_deakt and
bukrs in s_bukrs and
aktiv in s_date.
if sy-subrc ne 0.
message e000 with 'Data does not exist'(094).
endif.
if not it_itab1[] is initial.
select bukrs
anln1
anln2
bdatu
werks
gsber
kostl
kostlv
stort
raumn
txjcd
ipsnr
from anlz
into table it_itab2
for all entries in it_itab1
where bukrs = it_itab1-bukrs and
anln1 = it_itab1-anln1 and
anln2 = it_itab1-anln2.
anln2 = '0000'.
if sy-subrc ne 0.
message e000 with 'Data does not exist'(094).
endif.
endif.
if not it_itab2[] is initial.
select bukrs
anln1
anlhtxt
from anlh
into table it_itab3
for all entries in it_itab2
where bukrs = it_itab2-bukrs and
anln1 = it_itab2-anln1.
if sy-subrc ne 0.
message e000 with 'Data does not exist'(094).
endif.
endif.
if not it_itab1[] is initial.
select bukrs
anln1
anln2
afabe
bdatu
afasl
ndjar
ndper
afabg
ndurj
ndurp
umjar
safbg
zinbg
inbda
from anlb
into table it_itab4
for all entries in it_itab1
where bukrs = it_itab1-bukrs and
anln1 = it_itab1-anln1 and
anln2 = it_itab1-anln2.
anln2 = '0000'.
if sy-subrc ne 0.
message e000 with 'Data does not exist'(094).
endif.
endif.
sort it_itab4 by bukrs anln1 anln2 afabe.
if not it_itab4[] is initial.
select bukrs
anln1
anln2
gjahr
afabe
zujhr
zucod
ndabj
ndabp
kansw
knafa
kaafa
ksafa
andsj
andsp
kanza
kaufw
kinvz
kmafa
from anlc
into table it_itab5
for all entries in it_itab4
where bukrs = it_itab4-bukrs and
anln1 = it_itab4-anln1 and
anln2 = it_itab4-anln2 and
anln2 = '0000' and
gjahr in s_gjahr.
if sy-subrc ne 0.
message e000 with 'Data does not exist'(094).
endif.
endif.
sort it_itab5 by bukrs anln1 anln2 ndabj ndabp.
endform. " POPULATE-DATA
*& Form FILL_FINALDATA
text
--> p1 text
<-- p2 text
form fill_finaldata.
loop at it_itab5.
loop at it_itab4 where bukrs = it_itab5-bukrs and
anln1 = it_itab5-anln1 and
anln2 = it_itab5-anln2 and
afabe = it_itab5-afabe.
it_final-afabe = it_itab4-afabe.
it_final-afasl = it_itab4-afasl.
it_final-ndjar = it_itab4-ndjar.
it_final-ndper = it_itab4-ndper.
it_final-afabg = it_itab4-afabg.
it_final-umjar = it_itab4-umjar.
it_final-safbg = it_itab4-safbg.
it_final-inbda = it_itab4-inbda.
it_final-ndabj = it_itab5-ndabj.
it_final-ndabp = it_itab5-ndabp.
it_final-kansw = it_itab5-kansw.
it_final-knafa = it_itab5-knafa.
it_final-kaafa = it_itab5-kaafa.
it_final-andsj = it_itab5-andsj.
it_final-andsp = it_itab5-andsp.
it_final-kanza = it_itab5-kanza.
it_final-kaufw = it_itab5-kaufw.
it_final-kinvz = it_itab5-kinvz.
it_final-ksafa = it_itab5-ksafa.
it_final-kmafa = it_itab5-kmafa.
read table it_itab1 with key bukrs = it_itab5-bukrs
anln1 = it_itab5-anln1
anln2 = it_itab5-anln2.
if sy-subrc = 0.
it_final-anlkl = it_itab1-anlkl.
it_final-anln1 = it_itab1-anln1.
it_final-anln2 = it_itab1-anln2.
it_final-bukrs = it_itab1-bukrs.
it_final-txt50 = it_itab1-txt50.
it_final-txa50 = it_itab1-txa50.
it_final-invnr = it_itab1-invnr.
it_final-sernr = it_itab1-sernr.
it_final-menge = it_itab1-menge.
it_final-meins = it_itab1-meins.
it_final-ivdat = it_itab1-ivdat.
it_final-inken = it_itab1-inken.
it_final-aktiv = it_itab1-aktiv.
it_final-deakt = it_itab1-deakt.
it_final-gdlgrp = it_itab1-gdlgrp.
it_final-anlue = it_itab1-anlue.
it_final-aibn1 = it_itab1-aibn1.
it_final-aibn2 = it_itab1-aibn2.
it_final-aibdt = it_itab1-aibdt.
it_final-ord41 = it_itab1-ord41.
it_final-ord44 = it_itab1-ord44.
it_final-vmgli = it_itab1-vmgli.
it_final-typbz = it_itab1-typbz.
it_final-lifnr = it_itab1-lifnr.
it_final-posnr = it_itab1-posnr.
it_final-invzu = it_itab1-invzu.
endif.
read table it_itab2 with key bukrs = it_itab5-bukrs
anln1 = it_itab5-anln1
anln2 = it_itab5-anln2.
if sy-subrc = 0.
it_final-werks = it_itab2-werks.
it_final-gsber = it_itab2-gsber.
it_final-kostl = it_itab2-kostl.
it_final-kostlv = it_itab2-kostlv.
it_final-stort = it_itab2-stort.
it_final-raumn = it_itab2-raumn.
it_final-txjcd = it_itab2-txjcd.
endif.
read table it_itab3 with key bukrs = it_itab5-bukrs
anln1 = it_itab5-anln1.
if sy-subrc = 0.
it_final-anlhtxt = it_itab3-anlhtxt.
endif.
append it_final.
clear it_final.
endloop.
endloop.
loop at it_final.
move-corresponding it_final to it_final_as91.
append it_final_as91.
clear it_final_as91.
endloop.
delete adjacent duplicates from it_final_as91 comparing anlkl bukrs
anln1 anln2.
it_download_as91[] = it_final_as91[].
endform. " FILL_FINALDATA
*& Form BUILD_LAYOUT
text
--> p1 text
<-- p2 text
form build_layout.
wa_layout-zebra = 'X'.
endform. " BUILD_LAYOUT
*& Form BUILD_FIELDCATALOG
text
--> p1 text
<-- p2 text
form build_fieldcatalog.
if it_fldcat_head is initial.
v_pos = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'ANLKL'.
wa_fldcat_head-seltext_l = 'Asset Class'(093).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'BUKRS'.
wa_fldcat_head-seltext_l = 'Company'(092).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'ANLN1'.
wa_fldcat_head-seltext_l = 'Asset No'(091).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'ANLN2'.
wa_fldcat_head-seltext_l = 'Asset Sub No'(090).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'TXT50'.
wa_fldcat_head-seltext_l = 'Asset Des.'(089).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'TXA50'.
wa_fldcat_head-seltext_l = 'Asset Des.'(088).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'ANLHTXT'.
wa_fldcat_head-seltext_l = 'Asset main no txt'(087).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'SERNR'.
wa_fldcat_head-seltext_l = 's.no/Expl no.'(086).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'INVNR'.
wa_fldcat_head-seltext_l = 'Inv No'(085).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'MENGE'.
wa_fldcat_head-seltext_l = 'Qtty'(084).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'MEINS'.
wa_fldcat_head-seltext_l = 'Units'(083).
append wa_fldcat_head to it_fldcat_head.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'INKEN'.
wa_fldcat_head-seltext_l = 'Inv indi.'(082).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'IVDAT'.
wa_fldcat_head-seltext_l = 'Last inv date'(081).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'AKTIV'.
wa_fldcat_head-seltext_l = 'Asset Capital date'(080).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'GSBER'.
wa_fldcat_head-seltext_l = 'Busin. Area'(079).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'KOSTL'.
wa_fldcat_head-seltext_l = 'cost centre'(078).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'KOSTLV'.
wa_fldcat_head-seltext_l = 'CC respon.for asset'(077).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'WERKS'.
wa_fldcat_head-seltext_l = 'Plant'(076).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'STORT'.
wa_fldcat_head-seltext_l = 'Asset location'(075).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'RAUMN'.
wa_fldcat_head-seltext_l = 'Room'(074).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'TXJCD'.
wa_fldcat_head-seltext_l = 'Tax. Jur.'(073).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'ORD41'.
wa_fldcat_head-seltext_l = 'Evaluation Grp 1'(072).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'ORD44'.
wa_fldcat_head-seltext_l = 'Evaluation Grp 4'(071).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'GDLGRP'.
wa_fldcat_head-seltext_l = 'Evalu. group 5'(070).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'ANLUE'.
wa_fldcat_head-seltext_l = 'Asset Super No'(069).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'LIFNR'.
wa_fldcat_head-seltext_l = 'Vendor Acct. No.'(068).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'TYPBZ'.
wa_fldcat_head-seltext_l = 'Reference no'(067).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'AIBN1'.
wa_fldcat_head-seltext_l = 'Original Asset Trans.'(066).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'AIBN2'.
wa_fldcat_head-seltext_l = 'Original Asset Trans.'(065).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'AIBDT'.
wa_fldcat_head-seltext_l = 'Trans. Asset'(064).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'POSNR'.
wa_fldcat_head-seltext_l = 'WBS Elt. Invt. Proj.'(063).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'VMGLI'.
wa_fldcat_head-seltext_l = 'Property clas.key'(062).
append wa_fldcat_head to it_fldcat_head.
V_POS = 0.
v_pos = v_pos + 1.
w_field-col_pos = v_pos.
wa_fldcat_head-tabname = 'it_FINAL_AS91'.
wa_fldcat_head-fieldname = 'INVZU'.
wa_fldcat_head-seltext_l = 'suppl.inv spec.'(061).
append wa_fldcat_head to it_fldcat_head.
endif.
endform. " BUILD_FIELDCATALOG
*& Form COMMENT_BUILD
text
-->P_TOP_OF_PAGE text
*form comment_build using top_of_page type slis_t_listheader.
data: ls_line type slis_listheader.
****Header
clear : ls_line.
ls_line-typ = 'H'.
LS_LINE-KEY: not used for this type
ls_line-info = 'ASSET MASTER DATA LIST'.
append ls_line to top_of_page.
****Selection
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = 'Key 1'.
ls_line-info = 'Asset Records'.
append ls_line to top_of_page.
****Action
clear ls_line.
ls_line-typ = 'A'.
LS_LINE-KEY: not used for this type
ls_line-info = 'for AS91'.
append ls_line to top_of_page.
*endform. "comment_build
FORM top_of_page *
*form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
i_logo = 'ENJOYSAP_LOGO'
it_list_commentary = top_of_page.
*endform. "top_of_page
*& Form LIST-DISPLAY
text
--> p1 text
<-- p2 text
form list-display.
wa_layout-colwidth_optimize = 'X'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = w_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
is_layout = wa_layout
it_fieldcat = it_fldcat_head
i_background_id = 'ALV_BACKGROUND'
tables
t_outtab = it_final_as91
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
write:/'No Top of Page'(098).
endif.
endform. " LIST-DISPLAY
*& Form DOWNLOAD
text
--> p1 text
<-- p2 text
form download.
perform setup_header.
call function 'DOWNLOAD'
exporting
filetype = 'DAT'
tables
data_tab = it_download_as91
fieldnames = it_head
exceptions
invalid_filesize = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
customer_error = 7
others = 8.
if sy-subrc <> 0.
write:/'Error in file Type'(097).
endif.
endform. " DOWNLOAD
*& Form setup_header
text -
How to print new line in jsp page
hi
how to print new line in jsp page
thanks\n - new line character is in java specific not HTML
specific.Well, if the correct line separator sequence (by far not always \n) would be used, it does add a new line to the HTML output. Too bad that you don't want to see HTML but formatted text. The BR tag is a formatting element for the displayed text, not a line break in HTML. ;)
Maybe you are looking for
-
Lost contacts after upgrading to IOS 8.1.2
Just upgraded to latest IOS on my iphone 4s. To my dismay all my contacts are gone! I am desperate to get them back. My phone was backed up to the cloud, I assume they are retrievable there, however I can't get into my account as it says" your accoun
-
How do I move pictures from Facebook to iPhoto?
How do I move pictures from Facebook to iPhoto that my friends have tagged me in? Please help I hope it is possible!!
-
ICloud not syncing all purchased songs
I currently have three devices associated with my Apple ID: a Windows Vista desktop, a Windows 7 laptop, and an iPod 2 with iOS 5 on it. On each of these, iTunes is the most recent version. In each, I'm able to sync MOST of my purchased music from th
-
Mavericks 13A603 does not boot on Haswell based mBP
I have a TB SATA adapter with an SSD loaded with OSX Mavericks 13A603 (13A2093 ships with the new mBP). When I attempt to boot off of that drive, I get the forbidden symbol. That SSD has an image of Mavericks (13A603) that I would like to load on to
-
Since the issue with mirroring on older mack surrounds the hardware h.264 encoding, has anyone thought to tell Apple to support external hardware accelerators, such as the elgato turbo.264 HD? Daniel