· 8 years ago · Jul 20, 2018, 11:10 AM
1*&----------------------------------------------------------------------
2*& Report ZBCREP_UTIL_TRANSPORT_REPORT
3*&----------------------------------------------------------------------
4*& Conceptual Design : Ali Crawshaw Developer : Rajesh.M
5*& Creation Date : 01.11.2012
6*&----------------------------------------------------------------------
7*& Version : $03
8*&----------------------------------------------------------------------
9*& DESCRIPTION:
10*&----------------------------------------------------------------------
11*& INSTALLATION NOTES:
12*&----------------------------------------------------------------------
13*& If this program ever needs to be downloaded and uploaded onto other
14*& systems, all that needs to be done is:
15*& - Create a new program which adheres to your naming standards on the
16*& relevant Development System, as the report should always be run on*
17*& the Development System from which the transports are created and *
18*& released. *
19*& - Give the program a temporary program DESCRIPTION *
20*& (e.g. "INTERIM TITLE") *
21*& - Upload the SOURCE code of the program *
22*& - Copy GUI Status SAPLKKBL -> STANDARD_FULLSCREEN *
23*& to GUI Status <this program name> -> ZSTATUS_CTS *
24*& - Change the GUI Status "ZSTATUS_CTS" to add the following new *
25*& buttons: *
26*& - OBJ_LIST ICON_REPORT_TEMPLATE Object List *
27*& - DOWN ICON_EXPORT Download *
28*& - Then simply activate. *
29*& - All text elements will be created automatically the first time the*
30*& program is executed. This is done by checking that the program *
31*& DESCRIPTION does not have the FINAL program description: *
32*& "Transport Utility Report" *
33*& - When downloading the data in excel, PLease add the required *
34*& entries to handle the colors in excel file in the *
35*& table "COLORSEXC" Ex:- USERNAME KEYCOLOR = 16 COLOR = 2 *
36*&---------------------------------------------------------------------*
37*& System-Clients - Landcscape Setup
38
39*&---------------------------------------------------------------------*
40*& Upon initially loading this program onto a (Development) system
41*& it is necessary to setup the system "landscape" which will be
42*& defaulted on the selection-screen when the program is executed.
43*
44* The program allows up to 7 systems/clients to be specified, with
45* the (current) development system being system 1 and the Production
46* system being entered as the last system. The production system
47* does not have to be in System/Client 7, as it can simply be the
48* highest system client number based on the number of systems present
49* in your landscape.
50*
51* Take the sample landscape below (SysId (3) followed by the Client (3)):
52*
53* 1 2 3 4 5 6
54* DE1_100 -> TE1_110 -> UE1_110 -> ME1_110 -> AE1_110 -> PE1_600
55*
56* This could be setup as below on the selection-screen:
57* SysID1: DE1 SysClt1: 100
58* SysID2: TE1 SysClt1: 110
59* SysID3: UE1 SysClt1: 110
60* SysID4: ME1 SysClt1: 110
61* SysID5: AE1 SysClt1: 110
62* SysID6: PE1 SysClt1: 600
63* SysID7: <blank> SysClt1: <blank>
64*
65* As seen with SysID7 above, it is not necessary for EVERY SysID to
66* be filled.
67*&---------------------------------------------------------------------*
68* System-Client - Options
69*----------------------------------------------------------------------*
70* A number of options exist with the System Client section to offer
71* control of the transports selected, and how the information for each
72* transport is selected/sorted etc.
73*
74* SORT BY This allows the (released) transports to be sorted by the
75* Import Date/Time of a particular system.
76* e.g. the TEST system (SysID2)
77* Imp >= Date Only show transports which have been imported to this
78* system client ON or AFTER the specified date
79* Radiobutton:
80* "Via Logs" Should the program at the transport logs for this system
81* client, to detemine if
82* - it has been imported
83* - and also to see the return code following the import
84* "via RFC" Else, simply make an RFC connection to the system client
85* (via the RFC destination specified on this line) and read
86* table E070 on that system to see if the transport simply
87* exists on that system.
88* Note:
89* - if this option is selected it is not possible to
90* determine the return code of this transport.
91* - Bear in mind that when SOURCE system/clients are copied back
92* to TARGET system/clients, all transports which were
93* present on the SOURCE system will exist in table
94* E070 on the TARGET system/client, but they may not
95* necessarily available in the TRANSPORT LOG for
96* the TARGET system/client. Therefore, this option
97* will often have to be used on systems which you know
98* have been refreshed from another system at some point
99* in the past.
100* RFC Dest.. The RFC destination which is to be used (if via RFC)
101* was selected for this system/client, to look for the
102* transports.
103* - The RFC connection is recommended to be defined as
104* a SERVICE user (who has S_RFC... authorisation) on
105* the relevant system/client.
106*----------------------------------------------------------------------*
107* Transport OBJECTS and TABLE KEYS
108*----------------------------------------------------------------------*
109* READ/RESTRICT Transport OBJECT details
110* - if this is option is ticked, the program will not only read the
111* transport headers from table E070 (which is always done), but it
112* will also read the transport OBJECTS from table E071 as well.
113* e.g. R3TR PROG Zxxxxx
114* - It will also display some additional select-options to allow the
115* user to search/restrict the program to look for certain object
116* types or names
117* - But it will also add the button "Object List" button at the top
118* of the transport overview list - which will then allow the user
119* to branch to a list of the objects for either the transports
120* selected in the initial ALV, or the objects of ALL transports if
121* no transprts are selected.
122* - If this option is OFF, the "Object List" will not be shown in the
123* ALV. However, as table E071 is not being read, the performance
124* of the program will be slightly faster.
125*
126* READ/RESTRICT Transport TABLE KEYS
127* - As an extension of the transport OBJECT funciton, if this option
128* is also ticked, the program will also look for the table KEYS which
129* are found in the transport, and it is also possible to search
130* for transports with a particular table key
131* e.g. look for any transport which contained a change
132* to Object: R3TR CDAT TVKO and table KEY "*1000*"
133*----------------------------------------------------------------------*
134* Additional Report Options
135*----------------------------------------------------------------------*
136* OMIT TRANSPORTS WHICH HAVE BEEN IMPORTED INTO LAST (EG PROD..) SYSTEM
137* - If this otion is ticked, all transports which ARE present in the
138* last system-client (which is maintained in the System Landscape
139* section of the selection-screen) will NOT be shown in the transport
140* list.
141*
142* SHOW IMPORT STATUS TRAFFIC LIGHTS FOR SYSTEMS WHERE LOGS ARE AVAILABLE
143* - If this is option is ticked, all system clients which were set as
144* "Via Logs" will be shown in the transport overview with a TRAFFIC
145* LIGHT which corresponds to the import status of the transport.
146* However, system-clients which are flagged "Via RFC" will simply be
147* be shown with a green TICK (if Imported), or be blank if the transport
148* has NOT been imported
149* - IF the option is OFF, all system-clients will be shown with a green
150* TICK, or be blank, regardless of whether "via RFC" or "Via Logs"
151* was selected for the System client
152*
153* OMIT OBSOLETE TPTS (NEVER TO BE MOVED FURTHER THRU LANDSCAPE)
154* - Although it is not an ideal situation, it sometimes occurs that
155* some transports which have been moved "half-way" through the landscape
156* can NEVER be moved further through the landscape.
157* - If you have any such transports, update subroutine
158* "F_ADD_DELETED_TRANSPORTS" with the list of transport numbers to be
159* "omitted", and ensure that this option is ticked.
160* This is ismply to ensure that these "obsolete" transports are not
161* always appearing in the report
162*
163* SHOW ADDITIONAL TPT DESC SUBSTRING COLUMNS
164* - If your project follows a particular naming standard for the
165* transport descriptions, then by clicking this option it expands
166* some additional fields to allow certain parts (substrings) of the
167* transport description in specific columns of the report.
168* Additionally, if you always put some text at the END of the
169* description (e.g. an ISSUE number D12345), but this text is not
170* always starting at the same position, this "Last X chars" option
171* will allow you to specify the relevant number of ENDing characters
172* to be displayed in a separate ALV column.
173*----------------------------------------------------------------------*
174* CHOOSE DOWNLOAD OPTIONS
175*----------------------------------------------------------------------*
176* The contents of the initial transport overview ALV list can be
177* downloaded in either .XLS or .XML format.
178* .XLS is the recommended format, as the .XML download is still in
179* Prototyping
180*----------------------------------------------------------------------*
181*&---------------------------------------------------------------------*
182*& Revision Log: *
183*&---------------------------------------------------------------------*
184*& MODIF-ID Change On Changed By Description of change *
185* MOD01+ 19 Nov 2014 Rajesh M Import Logs without Client*
186* MOD02+ 20 Nov 2014 Rajesh M Import From - To Dates *
187* MOD03+ 21 Nov 2014 Rajesh M RFC Dest fields Hidden *
188*&---------------------------------------------------------------------*
189
190REPORT zbcrep_util_transport_report.
191
192*Declaration of type pools
193TYPE-POOLS: slis,
194 ctslg.
195* abap.
196
197*Type declaration of final internal table
198TYPES: BEGIN OF ty_outtab,
199 sel TYPE char1, "SELECTION
200 trkorr TYPE trkorr, "Request/Task
201 as4text TYPE as4text, "Short Description of Repository Objects
202 name_text TYPE ad_namtext, "Full Name of Person
203 as4user TYPE tr_as4user, "Owner of a Request or Task
204 trstatus TYPE edistatusicon, "Status of request/task
205 trfunction TYPE edistatusicon, "Request type
206 entrpise_str TYPE edistatusicon, "Enterprise Structure
207 sy_id2_icon TYPE edistatusicon, "Sys ID2 Icon
208 sy_id3_icon TYPE edistatusicon, "Sys ID3 Icon
209 sy_id4_icon TYPE edistatusicon, "Sys ID4 Icon
210 sy_id5_icon TYPE edistatusicon, "Sys ID5 Icon
211 sy_id6_icon TYPE edistatusicon, "Sys ID6 Icon
212 sy_id7_icon TYPE edistatusicon, "Sys ID7 Icon
213 tptdes_sted TYPE as4text, "Substring 1 X->Y
214 tptdes_ste2 TYPE as4text, "Substring 2 X->Y
215 tptdes_last TYPE as4text, "Substring 3 Last Chars
216 sy_id1_date TYPE sy-datum, "DE1 Creation date
217 sy_id2_date TYPE sy-datum, "TE1 IMPORT date
218 sy_id3_date TYPE sy-datum, "AE1 Import date
219 sy_id4_date TYPE sy-datum, "PE1 Import date
220 sy_id5_date TYPE sy-datum, "XE1 Import date
221 sy_id6_date TYPE sy-datum, "YE1 Import date
222 sy_id7_date TYPE sy-datum, "ZE1 Import date
223 sy_id1_time TYPE sy-uzeit, "DE1 Creation date
224 sy_id2_time TYPE sy-uzeit, "TE1 IMPORT date
225 sy_id3_time TYPE sy-uzeit, "AE1 Import date
226 sy_id4_time TYPE sy-uzeit, "PE1 Import date
227 sy_id5_time TYPE sy-uzeit, "XE1 Import date
228 sy_id6_time TYPE sy-uzeit, "YE1 Import date
229 sy_id7_time TYPE sy-uzeit, "ZE1 Import date
230 sy_id2_seqn TYPE sy-tabix, "Sys ID2 Sequence
231 sy_id3_seqn TYPE sy-tabix, "Sys ID3 Sequence
232 sy_id4_seqn TYPE sy-tabix, "Sys ID4 Sequence
233 sy_id5_seqn TYPE sy-tabix, "Sys ID5 Sequence
234 sy_id6_seqn TYPE sy-tabix, "Sys ID6 Sequence
235 sy_id7_seqn TYPE sy-tabix, "Sys ID7 Sequence
236 proj_id TYPE tr_extpid, " Project ID
237 proj_cts TYPE trkorr_p, " Project in Change and Transport System
238 proj_desc TYPE as4text, " Short Description of Repository Objects
239 END OF ty_outtab,
240 BEGIN OF ty_download,
241 trkorr TYPE trkorr, "Request/Task
242 as4text TYPE as4text, "Short Description of Repository Objects
243 name_text TYPE ad_namtext, "Full Name of Person
244 as4user TYPE tr_as4user, "Owner of a Request or Task
245 trstatus TYPE edistatusicon, "Status of request/task
246 trfunction TYPE edistatusicon, " Request type
247 entrpise_str TYPE edistatusicon, "Enterprise Structure
248 sy_id2_icon TYPE edistatusicon, " TE1 release successful
249 sy_id3_icon TYPE edistatusicon, " AE1 successful
250 sy_id4_icon TYPE edistatusicon, " PE1 successful
251 sy_id5_icon TYPE edistatusicon, " X successful
252 sy_id6_icon TYPE edistatusicon, " Y successful
253 sy_id7_icon TYPE edistatusicon, " Z successful
254 tptdes_sted TYPE as4text, " Substring 1 X->Y
255 tptdes_ste2 TYPE as4text, " Substring 2 X->Y
256 tptdes_last TYPE as4text, " Substring 3 Last Chars
257 sy_id1_date TYPE sy-datum, "DE1 Creation date
258 sy_id2_date TYPE sy-datum, "TE1 IMPORT date
259 sy_id3_date TYPE sy-datum, "AE1 Import date
260 sy_id4_date TYPE sy-datum, "PE1 Import date
261 sy_id5_date TYPE sy-datum, "XE1 Import date
262 sy_id6_date TYPE sy-datum, "YE1 Import date
263 sy_id7_date TYPE sy-datum, "ZE1 Import date
264 sy_id1_time TYPE sy-uzeit, "DE1 Creation date
265 sy_id2_time TYPE sy-uzeit, "TE1 IMPORT date
266 sy_id3_time TYPE sy-uzeit, "AE1 Import date
267 sy_id4_time TYPE sy-uzeit, "PE1 Import date
268 sy_id5_time TYPE sy-uzeit, "XE1 Import date
269 sy_id6_time TYPE sy-uzeit, "YE1 Import date
270 sy_id7_time TYPE sy-uzeit, "ZE1 Import date
271 sy_id2_seqn TYPE sy-tabix, "Sys ID2 Sequence
272 sy_id3_seqn TYPE sy-tabix, "Sys ID3 Sequence
273 sy_id4_seqn TYPE sy-tabix, "Sys ID4 Sequence
274 sy_id5_seqn TYPE sy-tabix, "Sys ID5 Sequence
275 sy_id6_seqn TYPE sy-tabix, "Sys ID6 Sequence
276 sy_id7_seqn TYPE sy-tabix, "Sys ID7 Sequence
277 proj_id TYPE tr_extpid, " Project ID
278 proj_cts TYPE trkorr_p, " Project in Change and Transport System
279 proj_desc TYPE as4text, " Short Description of Repository Objects
280 END OF ty_download,
281*Type declaration of userdata
282 BEGIN OF ty_usrtab,
283 bname TYPE xubname, "XUBNAME
284 name_text TYPE ad_namtext, "Full Name of Person
285 END OF ty_usrtab,
286*Type declaration of E071
287 BEGIN OF ty_e071,
288 trkorr TYPE trkorr, "Request/Task
289 pgmid TYPE pgmid, "Program ID in Requests and Tasks
290 object TYPE trobjtype, "Object Type
291 obj_name TYPE trobj_name, "Object Name in Object List
292 tabkey TYPE trobj_name, "Object Name in Object List
293 obj_desc TYPE pifobjtext, " Short Description for Package Interface Element
294 text TYPE ddtext, "Explanatory short text
295 END OF ty_e071,
296 BEGIN OF ty_e070_rfc.
297 INCLUDE STRUCTURE e070. " Change & Transport System: Header of Requests/Tasks
298
299TYPES: rfcdest TYPE tc70-ssfdest, " Logical Destination (Specified in Function Call)
300 END OF ty_e070_rfc,
301*Table type declaration
302 ty_t_outtab TYPE STANDARD TABLE OF ty_outtab,
303 ty_t_download TYPE STANDARD TABLE OF ty_download,
304 ty_t_e070 TYPE STANDARD TABLE OF e070, " Change & Transport System: Header of Requests/Tasks
305 ty_t_e070a TYPE STANDARD TABLE OF e070a, " Change & Transport System: Attributes of a Request
306 ty_t_e071 TYPE STANDARD TABLE OF ty_e071,
307 ty_t_e07t TYPE STANDARD TABLE OF e07t, " Change & Transport System: Short Texts for Requests/Tasks
308 ty_t_ko100 TYPE STANDARD TABLE OF ko100, " CTS: Object Types with Description
309 ty_t_usrtab TYPE STANDARD TABLE OF ty_usrtab.
310
311*global variable declaration
312DATA: g_trkorr TYPE trkorr, "Request/Task
313 g_status TYPE trstatus,
314 g_date TYPE as4date, "Date of Last Change
315 g_user TYPE tr_as4user, "Owner of a Request or Task
316 g_project TYPE ctsproject-trkorr, "Project
317 g_pgmid TYPE pgmid, "Program ID in Requests and Tasks
318 g_object TYPE trobjtype, "Object Type
319 g_obj_name TYPE trobj_name, "Object Name in Object List
320 g_trfunction TYPE trfunction, "Type of request/task
321 g_trstatus TYPE trstatus, "Status of request/task
322 g_colpos TYPE i, "Column position
323 g_reimp_count TYPE i, " Reimp_flag of type Character
324 g_repid TYPE sy-repid, "Programme name
325 g_tabnam TYPE tabname, " Table Name
326 g_alv_variant TYPE disvariant. "ALV Variant
327
328*Internal table and work area declaration
329DATA: i_e070 TYPE ty_t_e070, "Internal table for E070
330 i_e071 TYPE ty_t_e071, "Internal table for E071
331 i_e07t TYPE ty_t_e07t, "Internal table for E07t
332 i_ko100 TYPE ty_t_ko100, "Internal table for KO100
333 i_outtab TYPE ty_t_outtab, "Internal table for final output
334 i_download TYPE ty_t_download, "Internal table for final Download
335 i_fieldcat TYPE slis_t_fieldcat_alv, "Internal table for Field catlog
336 i_fieldcat_obj TYPE slis_t_fieldcat_alv, "Internal table for Field catlog
337 i_events TYPE slis_t_event,
338 wa_layout TYPE slis_layout_alv. "Work area for Layout
339
340*DATA: i_details TYPE abap_compdescr_tab.
341
342RANGES: r_trkorr FOR e070-trkorr, "Status of request/task
343 r_tr_del FOR g_trkorr,
344 r_func FOR tstrfcofil-function, "Function of the request/task
345 s_trfunc FOR g_trfunction,
346 s_trsts FOR g_trstatus,
347 r_rfcdes FOR tc70-ssfdest. " Logical Destination (Specified in Function Call)
348
349*DATA: r_trkorr TYPE RANGE OF e070-trkorr.
350DATA: i_rfc_e070 TYPE TABLE OF e070, " Change & Transport System: Header of Requests/Tasks
351 i_cts_proj TYPE STANDARD TABLE OF ctsproject, " Assignment of a CTS Project to an External Project
352 i_rfc_final TYPE STANDARD TABLE OF ty_e070_rfc,
353 w_tfdir TYPE tfdir. " Function Module
354
355*Constant declaration
356CONSTANTS: c_yellow_light TYPE char30 VALUE 'ICON_YELLOW_LIGHT', "Yellow light
357 c_green_light TYPE char30 VALUE 'ICON_GREEN_LIGHT', "Green light
358 c_red_light TYPE char30 VALUE 'ICON_RED_LIGHT', "Red light
359 c_check TYPE flag VALUE 'X', "Flag
360 c_line TYPE char10 VALUE 'LINE_COLOR', "Line colour
361 c_user_command TYPE char30 VALUE 'F_USER_COMMAND', "Use command
362
363* -------------------------------------- *
364* START of System-Client-RFCDEST Details
365* -------------------------------------- *
366
367* Instruction: Please set ABAP_TRUE to any one of the SORT_BY fields as
368* they all belong to one group - Set any one og the below
369* {c_sort_by_id2 --> c_sort_by_id7} to ABAP_TRUE
370* The rest all would be ABAP_FALSE.
371* AND
372* For Each System ID Via LOGS and Via RFC belong to One group
373* So only one of the field can be set to ABAP_TRUE and the other
374* is ABAP_FALSE (only one of them should be set - c_via_log_xx, c_via_rfc_xx )
375
376* System 2 Details
377 c_sy_id2 TYPE sysysid VALUE 'TE1', "Test system
378 c_sy_cl_id2 TYPE symandt VALUE '200', "Client system id 2
379 c_rfc_id2 TYPE rfcdest VALUE '', "Logical Destination (Specified in Function Call)
380* c_sort_by_id2 TYPE c VALUE abap_false,
381* c_via_log_id2 TYPE c VALUE abap_true,
382* c_via_rfc_id2 TYPE c VALUE abap_false,
383
384* System 3 Details
385 c_sy_id3 TYPE sysysid VALUE 'UE1', "Pre Production system
386 c_sy_cl_id3 TYPE symandt VALUE '200', "Client system id 3
387 c_rfc_id3 TYPE rfcdest VALUE '', "Logical Destination (Specified in Function Call)
388* c_sort_by_id3 TYPE c VALUE abap_true,
389* c_via_log_id3 TYPE c VALUE abap_true,
390* c_via_rfc_id3 TYPE c VALUE abap_false,
391
392* System 4 Details
393* c_sy_id4 TYPE sysysid VALUE 'ME1', "Production System
394 c_sy_id4 TYPE sysysid VALUE 'KE1', "Production System
395* c_sy_cl_id4 TYPE symandt VALUE '600', "Client system id 4
396 c_sy_cl_id4 TYPE symandt VALUE '600', "Client system id 4
397 c_rfc_id4 TYPE rfcdest VALUE '', "Logical Destination (Specified in Function Call)
398* c_sort_by_id4 TYPE c VALUE abap_false,
399* c_via_log_id4 TYPE c VALUE abap_true,
400* c_via_rfc_id4 TYPE c VALUE abap_false,
401
402* System 5 Details
403 c_sy_id5 TYPE sysysid VALUE 'AE1', "Test system
404 c_sy_cl_id5 TYPE symandt VALUE '600', "Client system id 5
405 c_rfc_id5 TYPE rfcdest VALUE '', "Logical Destination (Specified in Function Call)
406* c_sort_by_id5 TYPE c VALUE abap_false,
407* c_via_log_id5 TYPE c VALUE abap_true,
408* c_via_rfc_id5 TYPE c VALUE abap_false,
409
410* System 6 Details
411 c_sy_id6 TYPE sysysid VALUE 'PE1', "Pre Production system
412 c_sy_cl_id6 TYPE symandt VALUE '600', "Client system id 6
413 c_rfc_id6 TYPE rfcdest VALUE '', "Logical Destination (Specified in Function Call)
414* c_sort_by_id6 TYPE c VALUE abap_false,
415* c_via_log_id6 TYPE c VALUE abap_true,
416* c_via_rfc_id6 TYPE c VALUE abap_false,
417
418* System 7 Details
419 c_sy_id7 TYPE sysysid VALUE ' ', "Production System
420 c_sy_cl_id7 TYPE symandt VALUE ' ', "Client system id 7
421 c_rfc_id7 TYPE rfcdest VALUE '', "Logical Destination (Specified in Function Call)
422* c_sort_by_id7 TYPE c VALUE abap_false,
423* c_via_log_id7 TYPE c VALUE abap_true,
424* c_via_rfc_id7 TYPE c VALUE abap_false,
425
426
427* -------------------------------------- *
428* End of System-Client-RFCDEST Details
429* -------------------------------------- *
430
431 c_scrn_gr1 TYPE char3 VALUE 'MI1', "Constant for screen group1
432 c_scrn_gr2 TYPE char3 VALUE 'MI2', "Constant for screen group2
433 c_scrn_gr3 TYPE char3 VALUE 'MI3', "Constant for screen group3
434 c_object_rele TYPE trobjtype VALUE 'RELE', "Object Type
435 c_alv_emph_dark_blue TYPE char4 VALUE 'C110', "Colors
436 c_alv_emph_light_blue TYPE char4 VALUE 'C100', "Colors
437
438* END DATE
439 c_end_date TYPE sydatum VALUE '99991231'. " System Date
440
441*Constants for text symbols and sel texts
442CONSTANTS: c_p_alvvar TYPE sy-title VALUE 'Display Variant' , "#EC NOTEXT
443 c_s_date TYPE sy-title VALUE 'Date' , "#EC NOTEXT
444 c_s_desc TYPE sy-title VALUE 'Transport Description' , "#EC NOTEXT
445 c_s_proj TYPE sy-title VALUE 'Project' , "#EC NOTEXT
446 c_s_objnem TYPE sy-title VALUE 'Object Name' , "#EC NOTEXT
447 c_s_objtyp TYPE sy-title VALUE 'Object Type' , "#EC NOTEXT
448 c_s_pgmid TYPE sy-title VALUE 'Program ID' , "#EC NOTEXT
449 c_s_tabnam TYPE sy-title VALUE 'Table Key' , "#EC NOTEXT
450 c_s_trkorr TYPE sy-title VALUE 'Request' , "#EC NOTEXT
451 c_s_user TYPE sy-title VALUE 'User Name' , "#EC NOTEXT
452 c_t_001 TYPE sy-title VALUE 'Transport Request Detail' , "#EC NOTEXT
453 c_t_002 TYPE sy-title VALUE 'Please enter valid Transport request' , "#EC NOTEXT
454 c_t_003 TYPE sy-title VALUE 'Transport Selection' , "#EC NOTEXT
455 c_t_004 TYPE sy-title VALUE 'Transport Additional Selection Criteria' , "#EC NOTEXT
456 c_t_005 TYPE sy-title VALUE 'Table key selection' , "#EC NOTEXT
457 c_t_006 TYPE sy-title VALUE 'Transport' , "#EC NOTEXT
458 c_t_007 TYPE sy-title VALUE 'Description' , "#EC NOTEXT
459 c_t_008 TYPE sy-title VALUE 'Owner' , "#EC NOTEXT
460 c_t_009 TYPE sy-title VALUE 'Owner ID' , "#EC NOTEXT
461 c_t_010 TYPE sy-title VALUE 'Status' , "#EC NOTEXT
462 c_t_011 TYPE sy-title VALUE 'Tpt. Type' , "#EC NOTEXT
463 c_t_012 TYPE sy-title VALUE 'TE1-200 (RC)' , "#EC NOTEXT
464 c_t_013 TYPE sy-title VALUE 'AE1-200 (RC)' , "#EC NOTEXT
465 c_t_014 TYPE sy-title VALUE 'PE1-600 (RC)' , "#EC NOTEXT
466 c_t_015 TYPE sy-title VALUE 'XE1-200 (RC)' , "#EC NOTEXT
467 c_t_016 TYPE sy-title VALUE 'YE1-200 (RC)' , "#EC NOTEXT
468 c_t_017 TYPE sy-title VALUE 'ZE1-200 (RC)' , "#EC NOTEXT
469 c_t_018 TYPE sy-title VALUE 'DE1-100 (Cr Date)' , "#EC NOTEXT
470 c_t_019 TYPE sy-title VALUE 'TE1-200 (Imp Date)' , "#EC NOTEXT
471 c_t_020 TYPE sy-title VALUE 'AE1-200 (Imp Date)' , "#EC NOTEXT
472 c_t_021 TYPE sy-title VALUE 'PE1-600 (Imp Date)' , "#EC NOTEXT
473 c_t_022 TYPE sy-title VALUE 'XE1-200 (Imp Date)' , "#EC NOTEXT
474 c_t_023 TYPE sy-title VALUE 'YE1-200 (Imp Date)' , "#EC NOTEXT
475 c_t_024 TYPE sy-title VALUE 'ZE1-200 (Imp Date)' , "#EC NOTEXT
476 c_t_025 TYPE sy-title VALUE 'Program ID' , "#EC NOTEXT
477 c_t_026 TYPE sy-title VALUE 'Object Type' , "#EC NOTEXT
478 c_t_027 TYPE sy-title VALUE 'Object Name' , "#EC NOTEXT
479 c_t_028 TYPE sy-title VALUE 'Object Text' , "#EC NOTEXT
480 c_t_029 TYPE sy-title VALUE 'Table Key' , "#EC NOTEXT
481 c_t_030 TYPE sy-title VALUE 'DE1-100 (Cr Time)' , "#EC NOTEXT
482 c_t_031 TYPE sy-title VALUE 'TE1-200 (Imp Time)' , "#EC NOTEXT
483 c_t_032 TYPE sy-title VALUE 'AE1-200 (Imp Time)' , "#EC NOTEXT
484 c_t_033 TYPE sy-title VALUE 'PE1-600 (Imp Time)' , "#EC NOTEXT
485 c_t_034 TYPE sy-title VALUE 'XE1-200 (Imp Time)' , "#EC NOTEXT
486 c_t_035 TYPE sy-title VALUE 'YE1-200 (Imp Time)' , "#EC NOTEXT
487 c_t_036 TYPE sy-title VALUE 'ZE1-200 (Imp Time)' , "#EC NOTEXT
488 c_t_037 TYPE sy-title VALUE 'System-Client Detail' , "#EC NOTEXT
489 c_t_038 TYPE sy-title VALUE 'Dev Sys' , "#EC NOTEXT
490 c_t_039 TYPE sy-title VALUE 'Sys 2' , "#EC NOTEXT
491 c_t_040 TYPE sy-title VALUE 'Sys 3' , "#EC NOTEXT
492 c_t_041 TYPE sy-title VALUE 'Sys 4' , "#EC NOTEXT
493 c_t_042 TYPE sy-title VALUE 'Sys 5' , "#EC NOTEXT
494 c_t_043 TYPE sy-title VALUE 'Sys 6' , "#EC NOTEXT
495 c_t_044 TYPE sy-title VALUE 'Sys 7' , "#EC NOTEXT
496 c_t_045 TYPE sy-title VALUE 'No matching transports found' , "#EC NOTEXT
497 c_t_046 TYPE sy-title VALUE 'No releveant Transports found for the selection.' , "#EC NOTEXT
498 c_t_047 TYPE sy-title VALUE 'Clt Sort By--> Imp. >= Date|Imp. <= Date Via Logs Via RFC RFC Dest..' , "#EC NOTEXT
499 c_t_048 TYPE sy-title VALUE 'SubString1', "#EC NOTEXT
500 c_t_049 TYPE sy-title VALUE 'Tpt Desc Last X chars', "#EC NOTEXT
501 c_t_050 TYPE sy-title VALUE 'SubString2', "#EC NOTEXT
502 c_t_051 TYPE sy-title VALUE 'Choose Download File Format', "#EC NOTEXT
503 c_t_052 TYPE sy-title VALUE 'Object Description', "#EC NOTEXT
504 c_t_053 TYPE sy-title VALUE 'EntStr', "#EC NOTEXT
505 c_t_054 TYPE sy-title VALUE 'Project ID', "#EC NOTEXT
506 c_t_055 TYPE sy-title VALUE 'CTS Project', "#EC NOTEXT
507 c_t_056 TYPE sy-title VALUE 'Proj.Description', "#EC NOTEXT
508 c_t_057 TYPE sy-title VALUE 'Calculate Transport Import Sequence for systems', "#EC NOTEXT
509 c_t_058 TYPE sy-title VALUE 'Check for Re-imports', "#EC NOTEXT
510 c_t_059 TYPE sy-title VALUE 'Show Additional Options', "#EC NOTEXT
511 c_t_060 TYPE sy-title VALUE 'Display', "#EC NOTEXT
512 c_t_c01 TYPE sy-title VALUE 'Customizing Requests' , "#EC NOTEXT
513 c_t_c02 TYPE sy-title VALUE 'Workbench Requests' , "#EC NOTEXT
514 c_t_c03 TYPE sy-title VALUE 'Transport of Copies' , "#EC NOTEXT
515 c_t_c04 TYPE sy-title VALUE 'Relocations' , "#EC NOTEXT
516 c_t_c05 TYPE sy-title VALUE 'Modifiable' , "#EC NOTEXT
517 c_t_c06 TYPE sy-title VALUE 'Released' , "#EC NOTEXT
518 c_t_c07 TYPE sy-title VALUE 'Read/restrict transport OBJECT details' , "#EC NOTEXT
519 c_t_c08 TYPE sy-title VALUE 'Omit transports which have been imported into LAST (eg Prod..) system' , "#EC NOTEXT
520 c_t_c09 TYPE sy-title VALUE 'Read/restrict transport TABLE KEYS' , "#EC NOTEXT
521 c_t_c10 TYPE sy-title VALUE '.XLS Excel file', "#EC NOTEXT
522 c_t_c11 TYPE sy-title VALUE '.XML File (Excel compatible)', "#EC NOTEXT
523 c_t_c12 TYPE sy-title VALUE 'Show import status traffic lights for systems where Logs are available', "#EC NOTEXT
524 c_t_c13 TYPE sy-title VALUE 'Show Enterprise structure objects only', "#EC NOTEXT
525 c_t_f01 TYPE sy-title VALUE 'Tpt Desc Substring1 START Char No.' , "#EC NOTEXT
526 c_t_f02 TYPE sy-title VALUE 'END Char No.' , "#EC NOTEXT
527 c_t_f03 TYPE sy-title VALUE 'Show last X chars of Desc.' , "#EC NOTEXT
528 c_t_f04 TYPE sy-title VALUE 'Tpt Desc Substring2 START Char No.' , "#EC NOTEXT
529 c_t_o01 TYPE sy-title VALUE 'Omit OBSOLETE tpts (never to be moved further thru landscape)' , "#EC NOTEXT
530 c_t_t01 TYPE sy-title VALUE 'Request Type' , "#EC NOTEXT
531 c_t_t02 TYPE sy-title VALUE 'Request Status' , "#EC NOTEXT
532 c_t_t03 TYPE sy-title VALUE 'Transport description Selection' , "#EC NOTEXT
533 c_t_s03 TYPE sy-title VALUE 'Show additional Tpt Desc substring columns', "#EC NOTEXT
534 c_t_b01 TYPE sy-title VALUE 'Transport OBJECTS and TABLE KEYS', "#EC NOTEXT
535 c_t_b02 TYPE sy-title VALUE 'Additional Report Options', "#EC NOTEXT
536 c_rep_title TYPE sy-title VALUE 'Transport Utility Report', "#EC NOTEXT
537 c_sel_scr TYPE textpool-id VALUE 'S', "#EC NOTEXT
538 c_report TYPE textpool-id VALUE 'R', "#EC NOTEXT
539 c_num_text TYPE textpool-id VALUE 'I'. "#EC NOTEXT
540
541*Data for uploading text elements
542* Table to hold the program text pool
543DATA: BEGIN OF t_textpool OCCURS 0.
544 INCLUDE STRUCTURE textpool. " ABAP Text Pool Definition
545DATA: END OF t_textpool.
546
547RANGES: r_objnm FOR g_obj_name.
548*----------------------------------------------------------------------*
549* SELECTION SCREEN - *
550*----------------------------------------------------------------------*
551SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
552SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-003.
553SELECT-OPTIONS: s_trkorr FOR g_trkorr, "Request/Task
554 s_status FOR g_status, "Status
555 s_date FOR g_date, "Date of Last Change
556 s_user FOR g_user, "Owner of a Request or Task
557 s_proj FOR g_project.
558PARAMETERS: p_desc TYPE e07t-as4text LOWER CASE. " Short Description of Repository Objects
559SELECTION-SCREEN SKIP 1.
560SELECTION-SCREEN BEGIN OF BLOCK bt WITH FRAME TITLE text-t01.
561
562SELECTION-SCREEN BEGIN OF LINE.
563
564SELECTION-SCREEN POSITION 1.
565PARAMETERS: cb_cust AS CHECKBOX DEFAULT 'X'. "Customizing Requests
566SELECTION-SCREEN COMMENT 4(20) text-c01 FOR FIELD cb_cust.
567
568SELECTION-SCREEN POSITION 24.
569PARAMETERS: cb_work AS CHECKBOX DEFAULT 'X'. "Workbench Requests
570SELECTION-SCREEN COMMENT 25(18) text-c02 FOR FIELD cb_work.
571
572SELECTION-SCREEN POSITION 47.
573PARAMETERS: cb_copy AS CHECKBOX.
574SELECTION-SCREEN COMMENT 51(19) text-c03 FOR FIELD cb_copy.
575
576*SELECTION-SCREEN POSITION 70.
577*PARAMETERS: cb_relo AS CHECKBOX.
578*SELECTION-SCREEN COMMENT 71(11) text-c04 FOR FIELD cb_relo.
579
580SELECTION-SCREEN END OF LINE.
581
582SELECTION-SCREEN END OF BLOCK bt.
583
584*SELECTION-SCREEN BEGIN OF BLOCK bs WITH FRAME TITLE text-t02.
585*SELECTION-SCREEN BEGIN OF LINE.
586*
587*SELECTION-SCREEN POSITION 1.
588*PARAMETERS: cb_mod AS CHECKBOX DEFAULT 'X'. "MOdifiable
589*SELECTION-SCREEN COMMENT 4(20) text-c05 FOR FIELD cb_mod.
590*
591*SELECTION-SCREEN POSITION 24.
592*PARAMETERS: cb_rel AS CHECKBOX DEFAULT 'X'. "Released
593*SELECTION-SCREEN COMMENT 25(18) text-c06 FOR FIELD cb_rel.
594*
595*SELECTION-SCREEN END OF LINE.
596*SELECTION-SCREEN END OF BLOCK bs.
597SELECTION-SCREEN END OF BLOCK b2.
598
599SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-004.
600SELECTION-SCREEN BEGIN OF BLOCK bx WITH FRAME TITLE text-b01.
601SELECTION-SCREEN BEGIN OF LINE.
602SELECTION-SCREEN POSITION 1.
603PARAMETERS: cb_e071 AS CHECKBOX USER-COMMAND comm1. "Object
604SELECTION-SCREEN COMMENT (40) text-c07 FOR FIELD cb_e071.
605SELECTION-SCREEN POSITION 50.
606PARAMETERS: cb_etab AS CHECKBOX USER-COMMAND comm2. "Table Keys
607SELECTION-SCREEN COMMENT 51(40) text-c09 FOR FIELD cb_etab.
608SELECTION-SCREEN END OF LINE.
609SELECTION-SCREEN BEGIN OF LINE.
610
611SELECTION-SCREEN END OF LINE.
612SELECT-OPTIONS: s_pgmid FOR g_pgmid MODIF ID mi1 NO INTERVALS , "Program ID in Requests and Tasks
613 s_objtyp FOR g_object MODIF ID mi1, "Object Type
614 s_objnem FOR g_obj_name MODIF ID mi1, "Object Name in Object List
615 s_tabnam FOR g_tabnam MODIF ID mi3. "Tab Key
616SELECTION-SCREEN BEGIN OF LINE.
617SELECTION-SCREEN POSITION 1.
618PARAMETERS: cb_entst AS CHECKBOX USER-COMMAND comm5 MODIF ID mi1.
619SELECTION-SCREEN COMMENT (40) text-c13 FOR FIELD cb_entst.
620SELECTION-SCREEN END OF LINE.
621
622SELECTION-SCREEN END OF BLOCK bx.
623
624SELECTION-SCREEN END OF BLOCK b3.
625
626
627
628SELECTION-SCREEN BEGIN OF BLOCK sb WITH FRAME TITLE text-b02.
629
630SELECTION-SCREEN BEGIN OF LINE.
631SELECTION-SCREEN POSITION 1.
632PARAMETERS: cb_show TYPE xfeld USER-COMMAND com13 DEFAULT 'X'. " Show the Additional Options
633SELECTION-SCREEN COMMENT (75) text-c16 FOR FIELD cb_show.
634SELECTION-SCREEN END OF LINE.
635
636SELECTION-SCREEN BEGIN OF LINE.
637*SELECTION-SCREEN POSITION 1.
638PARAMETERS: cb_trseq TYPE xfeld USER-COMMAND com11 DEFAULT 'X' MODIF ID hid. " Transport Sequence
639SELECTION-SCREEN COMMENT (75) text-c14 FOR FIELD cb_trseq MODIF ID hid.
640SELECTION-SCREEN END OF LINE.
641
642SELECTION-SCREEN BEGIN OF LINE.
643*SELECTION-SCREEN POSITION 1.
644PARAMETERS: cb_treim TYPE xfeld USER-COMMAND com12 DEFAULT 'X' MODIF ID hid. " Transport Re-Import
645SELECTION-SCREEN COMMENT (75) text-c15 FOR FIELD cb_treim MODIF ID hid.
646SELECTION-SCREEN END OF LINE.
647
648SELECTION-SCREEN BEGIN OF LINE.
649*SELECTION-SCREEN POSITION 1.
650PARAMETERS: cb_prod TYPE xfeld USER-COMMAND comm2 MODIF ID hid. " Omit Production/Last Transports
651SELECTION-SCREEN COMMENT (75) text-c08 FOR FIELD cb_prod MODIF ID hid.
652SELECTION-SCREEN END OF LINE.
653
654SELECTION-SCREEN BEGIN OF LINE.
655*SELECTION-SCREEN POSITION 1.
656PARAMETERS: cb_ligt TYPE xfeld DEFAULT 'X' MODIF ID hid. " Show Import traffic lights
657SELECTION-SCREEN COMMENT (75) text-c12 FOR FIELD cb_ligt MODIF ID hid.
658SELECTION-SCREEN END OF LINE.
659
660SELECTION-SCREEN BEGIN OF LINE.
661*SELECTION-SCREEN POSITION 1.
662PARAMETERS: cb_omit TYPE xfeld DEFAULT 'X' MODIF ID hid NO-DISPLAY. " Omit Obselete Transports " MOD03+
663*SELECTION-SCREEN COMMENT (75) text-o01 FOR FIELD cb_omit MODIF ID hid. " MOD03-
664SELECTION-SCREEN END OF LINE.
665
666SELECTION-SCREEN BEGIN OF LINE.
667*SELECTION-SCREEN POSITION 1.
668PARAMETERS: cb_sstr TYPE xfeld USER-COMMAND sst MODIF ID hid. " Transport Desc Substrings
669SELECTION-SCREEN COMMENT (75) text-s01 FOR FIELD cb_sstr MODIF ID hid.
670SELECTION-SCREEN END OF LINE.
671
672SELECTION-SCREEN BEGIN OF LINE.
673SELECTION-SCREEN COMMENT (36) subsf FOR FIELD p_from MODIF ID sst .
674PARAMETERS: p_from TYPE monat DEFAULT '8' MODIF ID sst . " Value Date Month
675SELECTION-SCREEN COMMENT 44(12) subse FOR FIELD p_end MODIF ID sst .
676PARAMETERS: p_end TYPE monat DEFAULT '17' MODIF ID sst . " Value Date Month
677SELECTION-SCREEN END OF LINE.
678SELECTION-SCREEN BEGIN OF LINE.
679SELECTION-SCREEN COMMENT (36) subsf1 FOR FIELD p_from1 MODIF ID sst .
680PARAMETERS: p_from1 TYPE monat DEFAULT '4' MODIF ID sst . " Value Date Month
681SELECTION-SCREEN COMMENT 44(12) subse1 FOR FIELD p_end1 MODIF ID sst .
682PARAMETERS: p_end1 TYPE monat DEFAULT '6' MODIF ID sst . " Value Date Month
683SELECTION-SCREEN END OF LINE.
684SELECTION-SCREEN BEGIN OF LINE.
685SELECTION-SCREEN COMMENT (36) subsl FOR FIELD p_last MODIF ID sst .
686PARAMETERS: p_last TYPE monat DEFAULT '5' MODIF ID sst . " Value Date Month
687SELECTION-SCREEN END OF LINE.
688SELECTION-SCREEN END OF BLOCK sb.
689
690*---- Start of System-Client Options ----------------------------------*
691
692SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-037.
693
694SELECTION-SCREEN BEGIN OF LINE.
695SELECTION-SCREEN COMMENT 20(75) text-047 MODIF ID hid.
696SELECTION-SCREEN END OF LINE.
697
698SELECTION-SCREEN BEGIN OF LINE.
699SELECTION-SCREEN COMMENT 1(8) syid1 FOR FIELD p_sy_id1 MODIF ID hid.
700PARAMETERS: p_sy_id1 TYPE sysysid MODIF ID mi2 DEFAULT sy-sysid, " Name of SAP System
701 p_sy_cl1 TYPE symandt MODIF ID mi2 DEFAULT sy-mandt. " Client ID
702SELECTION-SCREEN END OF LINE.
703
704SELECTION-SCREEN BEGIN OF LINE.
705SELECTION-SCREEN COMMENT 1(8) syid2 FOR FIELD p_sy_id2 MODIF ID hid.
706PARAMETERS: p_sy_id2 TYPE sysysid DEFAULT c_sy_id2 MODIF ID hid, "System 2
707 p_sy_cl2 TYPE symandt DEFAULT c_sy_cl_id2 MODIF ID hid. "Client
708SELECTION-SCREEN COMMENT 26(2) comm2 FOR FIELD rb_v2 MODIF ID hid.
709PARAMETERS: rb_v2 RADIOBUTTON GROUP rgp1 USER-COMMAND cmd MODIF ID hid. "Sort by Dates
710SELECTION-SCREEN COMMENT 32(1) domm2 FOR FIELD p_idate2 MODIF ID hid.
711PARAMETERS: p_idate2 TYPE sydatum MODIF ID zz. "Imp Date > Given
712PARAMETERS: p_tdate2 TYPE sydatum MODIF ID zz DEFAULT c_end_date. "Imp Date < Given " MOD02+
713
714
715SELECTION-SCREEN COMMENT 61(1) lomm2 FOR FIELD rb_l2 MODIF ID hid.
716PARAMETERS: rb_l2 RADIOBUTTON GROUP rgp2 USER-COMMAND cm2 DEFAULT 'X' MODIF ID hid. "Via Logs
717
718SELECTION-SCREEN COMMENT 68(2) romm2 FOR FIELD rb_r2 MODIF ID hid.
719PARAMETERS: rb_r2 RADIOBUTTON GROUP rgp2 MODIF ID hid. "Via RFC
720SELECTION-SCREEN COMMENT 72(1) rfc2 FOR FIELD p_rfcd2 MODIF ID hid.
721PARAMETERS: p_rfcd2 TYPE tc70-ssfdest MODIF ID zr. "RFC Destination
722
723SELECTION-SCREEN END OF LINE.
724
725SELECTION-SCREEN BEGIN OF LINE.
726
727SELECTION-SCREEN COMMENT 1(8) syid3 FOR FIELD p_sy_id3 MODIF ID hid.
728PARAMETERS: p_sy_id3 TYPE sysysid DEFAULT c_sy_id3 MODIF ID hid, " Name of SAP System
729 p_sy_cl3 TYPE symandt DEFAULT c_sy_cl_id3 MODIF ID hid. " Client ID
730SELECTION-SCREEN COMMENT 26(2) comm3 FOR FIELD rb_v3 MODIF ID hid.
731PARAMETERS: rb_v3 RADIOBUTTON GROUP rgp1 DEFAULT 'X' MODIF ID hid.
732SELECTION-SCREEN COMMENT 32(1) domm3 FOR FIELD p_idate3 MODIF ID hid.
733PARAMETERS: p_idate3 TYPE sydatum MODIF ID zz. " System Date
734PARAMETERS: p_tdate3 TYPE sydatum MODIF ID zz DEFAULT c_end_date. "Imp Date < Given " MOD02+
735
736SELECTION-SCREEN COMMENT 61(1) lomm3 FOR FIELD rb_l3 MODIF ID hid.
737PARAMETERS: rb_l3 RADIOBUTTON GROUP rgp3 USER-COMMAND cm3 DEFAULT 'X' MODIF ID hid.
738
739SELECTION-SCREEN COMMENT 68(2) romm3 FOR FIELD rb_r3 MODIF ID hid.
740PARAMETERS: rb_r3 RADIOBUTTON GROUP rgp3 MODIF ID hid.
741SELECTION-SCREEN COMMENT 72(1) rfc3 FOR FIELD p_rfcd3 MODIF ID hid.
742PARAMETERS: p_rfcd3 TYPE tc70-ssfdest MODIF ID zr DEFAULT c_rfc_id3. " Logical Destination (Specified in Function Call)
743
744SELECTION-SCREEN END OF LINE.
745
746SELECTION-SCREEN BEGIN OF LINE.
747SELECTION-SCREEN COMMENT 1(8) syid4 FOR FIELD p_sy_id4 MODIF ID hid.
748PARAMETERS: p_sy_id4 TYPE sysysid DEFAULT c_sy_id4 MODIF ID hid, " Name of SAP System
749 p_sy_cl4 TYPE symandt DEFAULT c_sy_cl_id4 MODIF ID hid. " Client ID
750SELECTION-SCREEN COMMENT 26(2) comm4 FOR FIELD rb_v4 MODIF ID hid.
751PARAMETERS: rb_v4 RADIOBUTTON GROUP rgp1 MODIF ID hid.
752SELECTION-SCREEN COMMENT 32(1) domm4 FOR FIELD p_idate4 MODIF ID hid.
753PARAMETERS: p_idate4 TYPE sydatum MODIF ID zz. " System Date
754PARAMETERS: p_tdate4 TYPE sydatum MODIF ID zz DEFAULT c_end_date. "Imp Date < Given " MOD02+
755
756SELECTION-SCREEN COMMENT 61(1) lomm4 FOR FIELD rb_l4 MODIF ID hid.
757PARAMETERS: rb_l4 RADIOBUTTON GROUP rgp4 USER-COMMAND cm4 DEFAULT 'X' MODIF ID hid.
758
759SELECTION-SCREEN COMMENT 68(2) romm4 FOR FIELD rb_r4 MODIF ID hid.
760PARAMETERS: rb_r4 RADIOBUTTON GROUP rgp4 MODIF ID hid.
761SELECTION-SCREEN COMMENT 72(1) rfc4 FOR FIELD p_rfcd4 MODIF ID hid.
762PARAMETERS: p_rfcd4 TYPE tc70-ssfdest MODIF ID zr DEFAULT c_rfc_id4. " Logical Destination (Specified in Function Call)
763SELECTION-SCREEN END OF LINE.
764
765SELECTION-SCREEN BEGIN OF LINE.
766SELECTION-SCREEN COMMENT 1(8) syid5 FOR FIELD p_sy_id5 MODIF ID hid.
767PARAMETERS: p_sy_id5 TYPE sysysid DEFAULT c_sy_id5 MODIF ID hid, " Name of SAP System
768 p_sy_cl5 TYPE symandt DEFAULT c_sy_cl_id5 MODIF ID hid. " Client ID
769SELECTION-SCREEN COMMENT 26(2) comm5 FOR FIELD rb_v5 MODIF ID hid.
770PARAMETERS: rb_v5 RADIOBUTTON GROUP rgp1 MODIF ID hid.
771SELECTION-SCREEN COMMENT 32(1) domm5 FOR FIELD p_idate5 MODIF ID hid.
772PARAMETERS: p_idate5 TYPE sydatum MODIF ID zz. " System Date
773PARAMETERS: p_tdate5 TYPE sydatum MODIF ID zz DEFAULT c_end_date. "Imp Date < Given " MOD02+
774
775SELECTION-SCREEN COMMENT 61(1) lomm5 FOR FIELD rb_l5 MODIF ID hid.
776PARAMETERS: rb_l5 RADIOBUTTON GROUP rgp5 USER-COMMAND cm5 DEFAULT 'X' MODIF ID hid.
777
778SELECTION-SCREEN COMMENT 68(2) romm5 FOR FIELD rb_r5 MODIF ID hid.
779PARAMETERS: rb_r5 RADIOBUTTON GROUP rgp5 MODIF ID hid.
780SELECTION-SCREEN COMMENT 72(1) rfc5 FOR FIELD p_rfcd5 MODIF ID hid.
781PARAMETERS: p_rfcd5 TYPE tc70-ssfdest MODIF ID zr. " Logical Destination (Specified in Function Call)
782SELECTION-SCREEN END OF LINE.
783
784SELECTION-SCREEN BEGIN OF LINE.
785SELECTION-SCREEN COMMENT 1(8) syid6 FOR FIELD p_sy_id6 MODIF ID hid.
786PARAMETERS: p_sy_id6 TYPE sysysid DEFAULT c_sy_id6 MODIF ID hid, " Name of SAP System
787 p_sy_cl6 TYPE symandt DEFAULT c_sy_cl_id6 MODIF ID hid. " Client ID
788SELECTION-SCREEN COMMENT 26(2) comm6 FOR FIELD rb_v6 MODIF ID hid.
789PARAMETERS: rb_v6 RADIOBUTTON GROUP rgp1 MODIF ID hid.
790SELECTION-SCREEN COMMENT 32(1) domm6 FOR FIELD p_idate6 MODIF ID hid.
791PARAMETERS: p_idate6 TYPE sydatum MODIF ID zz. " System Date
792PARAMETERS: p_tdate6 TYPE sydatum MODIF ID zz DEFAULT c_end_date. "Imp Date < Given " MOD02+
793
794SELECTION-SCREEN COMMENT 61(1) lomm6 FOR FIELD rb_l6 MODIF ID hid.
795PARAMETERS: rb_l6 RADIOBUTTON GROUP rgp6 USER-COMMAND cm6 DEFAULT 'X' MODIF ID hid.
796
797SELECTION-SCREEN COMMENT 68(2) romm6 FOR FIELD rb_r6 MODIF ID hid.
798PARAMETERS: rb_r6 RADIOBUTTON GROUP rgp6 MODIF ID hid.
799SELECTION-SCREEN COMMENT 72(1) rfc6 FOR FIELD p_rfcd6 MODIF ID hid.
800PARAMETERS: p_rfcd6 TYPE tc70-ssfdest MODIF ID zr. " DEFAULT 'SE2CLNT200'.
801SELECTION-SCREEN END OF LINE.
802
803SELECTION-SCREEN BEGIN OF LINE.
804SELECTION-SCREEN COMMENT 1(8) syid7 FOR FIELD p_sy_id7 MODIF ID hid.
805PARAMETERS: p_sy_id7 TYPE sysysid DEFAULT c_sy_id7 MODIF ID hid, " Name of SAP System
806 p_sy_cl7 TYPE symandt DEFAULT c_sy_cl_id7 MODIF ID hid. " Client ID
807SELECTION-SCREEN COMMENT 26(2) comm7 FOR FIELD rb_v7 MODIF ID hid.
808PARAMETERS: rb_v7 RADIOBUTTON GROUP rgp1 MODIF ID hid.
809SELECTION-SCREEN COMMENT 32(1) domm7 FOR FIELD p_idate7 MODIF ID hid.
810PARAMETERS: p_idate7 TYPE sydatum MODIF ID zz. " System Date
811PARAMETERS: p_tdate7 TYPE sydatum MODIF ID zz DEFAULT c_end_date. "Imp Date < Given " MOD02+
812
813SELECTION-SCREEN COMMENT 61(1) lomm7 FOR FIELD rb_l7 MODIF ID hid.
814PARAMETERS: rb_l7 RADIOBUTTON GROUP rgp7 USER-COMMAND cm7 DEFAULT 'X' MODIF ID hid.
815
816SELECTION-SCREEN COMMENT 68(2) romm7 FOR FIELD rb_r7 MODIF ID hid.
817PARAMETERS: rb_r7 RADIOBUTTON GROUP rgp7 MODIF ID hid.
818SELECTION-SCREEN COMMENT 72(1) rfc7 FOR FIELD p_rfcd7 MODIF ID hid.
819PARAMETERS: p_rfcd7 TYPE tc70-ssfdest MODIF ID zr . " Logical Destination (Specified in Function Call)
820
821SELECTION-SCREEN END OF LINE.
822SELECTION-SCREEN END OF BLOCK b4.
823
824*---- End of System-Client Options ------------------------------------*
825
826SELECTION-SCREEN BEGIN OF BLOCK b5 WITH FRAME TITLE text-051.
827SELECTION-SCREEN BEGIN OF LINE.
828PARAMETERS: rb_xls RADIOBUTTON GROUP dwn1 USER-COMMAND dn1 DEFAULT 'X' MODIF ID hid. "Download Excel
829SELECTION-SCREEN COMMENT (40) text-c10 FOR FIELD rb_xls MODIF ID hid.
830PARAMETERS: rb_xml RADIOBUTTON GROUP dwn1 MODIF ID hid. "Download XML
831SELECTION-SCREEN COMMENT (40) text-c11 FOR FIELD rb_xml MODIF ID hid.
832SELECTION-SCREEN END OF LINE.
833SELECTION-SCREEN END OF BLOCK b5.
834
835SELECTION-SCREEN BEGIN OF BLOCK bv WITH FRAME TITLE text-057.
836PARAMETERS: p_alvvar TYPE disvariant-variant. " Layout
837SELECTION-SCREEN END OF BLOCK bv.
838
839SELECTION-SCREEN END OF BLOCK b1.
840
841*----------------------------------------------------------------------*
842* Initialization *
843*----------------------------------------------------------------------*
844INITIALIZATION.
845
846* Refresh the global internal table and work area
847 PERFORM f_refresh.
848
849* Initialyze the Usname and date
850 PERFORM f_initialize.
851
852* Skip some function from transport log
853 PERFORM f_fill_skip_transport_funcs.
854
855*----------------------------------------------------------------------*
856* At Selection Screen Output *
857*----------------------------------------------------------------------*
858AT SELECTION-SCREEN OUTPUT.
859
860 PERFORM f_modify_selection_screen.
861
862*----------------------------------------------------------------------*
863* At Selection Screen ON VALUE-REQUEST *
864*----------------------------------------------------------------------*
865AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_alvvar.
866
867 PERFORM f_get_f4_alv_variant CHANGING p_alvvar.
868
869*----------------------------------------------------------------------*
870* At Selection Screen ON VALUE-REQUEST *
871*----------------------------------------------------------------------*
872AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_pgmid-low.
873
874 PERFORM f_f4_for_progid CHANGING s_pgmid-low.
875
876*----------------------------------------------------------------------*
877* At Selection Screen *
878*----------------------------------------------------------------------*
879AT SELECTION-SCREEN ON s_trkorr.
880* Validate Transport Request
881 PERFORM f_validate_request.
882
883AT SELECTION-SCREEN ON p_alvvar.
884* Set ALV Variant
885 PERFORM f_set_alv_variant.
886
887*----------------------------------------------------------------------*
888* START-OF-SELECTION *
889*----------------------------------------------------------------------*
890START-OF-SELECTION.
891* Fill s_trfunc and s_trsts with the values based on check box selection
892 PERFORM f_fill_request_type_d_status. "$001++
893
894* Get the CTS Transport details from the E07... tables
895 PERFORM f_get_request_detail CHANGING i_e070
896 i_e071
897 i_e07t
898 i_outtab.
899
900*----------------------------------------------------------------------*
901* END-OF-SELECTION *
902*----------------------------------------------------------------------*
903END-OF-SELECTION.
904
905 IF i_outtab IS NOT INITIAL.
906 PERFORM f_display_main_report. " Display the main report
907 ELSE. " ELSE -> IF i_outtab IS NOT INITIAL
908* MESSAGE i000 WITH text-046.
909 MESSAGE text-046 TYPE 'I'.
910 LEAVE LIST-PROCESSING.
911 ENDIF. " IF i_outtab IS NOT INITIAL
912
913*&---------------------------------------------------------------------*
914*& Form F_INITIALIZE
915*&---------------------------------------------------------------------*
916* Initialize the selection screen field
917*----------------------------------------------------------------------*
918FORM f_initialize .
919
920* Initialize the request number with DE1K9*
921* CLEAR s_trkorr. "MOD001+
922* s_trkorr-sign = 'I'.
923** s_trkorr-option = 'EQ'. "MOD001-
924* s_trkorr-option = 'CP'. "MOD001+
925* CONCATENATE sy-sysid 'K9*' INTO s_trkorr-low.
926* APPEND s_trkorr.
927*
928** Default the current user name
929* CLEAR s_user. "MOD001+
930* s_user-sign = 'I'.
931* s_user-option = 'EQ'.
932* s_user-low = sy-uname.
933* APPEND s_user.
934* CLEAR s_user.
935*
936** Default the Transport creation date
937* CLEAR s_date. "MOD001+
938* s_date-sign = 'I'.
939* s_date-option = 'BT'.
940** s_date-low = sy-datum. "MOD001-
941* s_date-low = sy-datum - 60. "MOD001+
942* s_date-high = sy-datum.
943* APPEND s_date.
944
945* Get default variant for ALV
946 g_alv_variant-report = sy-repid.
947
948* Prepare the text elements & Selection Texts
949 PERFORM f_build_selscr_txt_symbol.
950
951ENDFORM. " F_INITIALIZE
952*&---------------------------------------------------------------------*
953*& Form F_VALIDATE_REQUEST
954*&---------------------------------------------------------------------*
955* Validate the transport request number
956*----------------------------------------------------------------------*
957FORM f_validate_request .
958
959 DATA : l_trkorr TYPE trkorr. " Request/Task
960
961 SELECT SINGLE trkorr " Request/Task
962 FROM e070 " Change & Transport System: Header of Requests/Tasks
963 INTO l_trkorr
964 WHERE trkorr IN s_trkorr.
965 IF sy-subrc IS NOT INITIAL.
966 MESSAGE text-002 TYPE 'E'.
967 ENDIF. " IF sy-subrc IS NOT INITIAL
968
969ENDFORM. " F_VALIDATE_REQUEST
970*&---------------------------------------------------------------------*
971*& Form F_GET_REQUEST_DETAIL
972*&---------------------------------------------------------------------*
973* Get the request detail
974*----------------------------------------------------------------------*
975FORM f_get_request_detail CHANGING fp_i_e070 TYPE ty_t_e070
976 fp_i_e071 TYPE ty_t_e071
977 fp_i_e07t TYPE ty_t_e07t
978 fp_i_outtab TYPE ty_t_outtab.
979* Declaration of local internal table
980 DATA: li_temp_e070 TYPE ty_t_e070, "Local Internal table for E070
981 li_usrtab TYPE ty_t_usrtab, "Local internal table for user detail
982 li_e071k TYPE ty_t_e071, "Local inetrnal table for E071K
983 li_tmp_e071 TYPE ty_t_e071,
984 lv_index TYPE sy-index, " ABAP System Field: Loop Index
985 lw_e070 TYPE e070, " Change & Transport System: Header of Requests/Tasks
986 lw_e071 TYPE ty_e071,
987 lw_e071k TYPE ty_e071,
988 lwa_outtab TYPE ty_outtab,
989 lw_e07t TYPE e07t, " Change & Transport System: Short Texts for Requests/Tasks
990 lv_reqtxt TYPE as4text, " Short Description of Repository Objects
991 fm_name TYPE rs38l_fnam, " Name of Function Module
992 lv_element TYPE elemgenkey, " Generic Key for Development Elements
993 lv_object TYPE trobjtype, " Object Type
994 lv_ref TYPE trvalue, " Attribute value
995 li_e070a TYPE STANDARD TABLE OF e070a. " Change & Transport System: Attributes of a Request
996
997 TYPES: ty_ref TYPE RANGE OF trvalue. " Attribute value
998 DATA: r_ref TYPE ty_ref, " Attribute value
999 w_ref TYPE LINE OF ty_ref. " Attribute value
1000
1001 FIELD-SYMBOLS: <lfs_e071> TYPE ty_e071.
1002 FIELD-SYMBOLS: <l_fs_ko100> TYPE ko100, " CTS: Object Types with Description
1003 <lfs_download> TYPE ty_download.
1004
1005 CLEAR: lv_index, lw_e070, lw_e071, lw_e071k, lwa_outtab,
1006 lw_e07t, lv_reqtxt, fm_name, lv_element, lv_object.
1007 REFRESH: li_temp_e070, li_usrtab, li_e071k, li_tmp_e071.
1008
1009* Fetch TRANSPORT HEADER data from E070 based on the selection screen detail
1010
1011 IF NOT s_proj[] IS INITIAL.
1012** lv_ref = p_proj.
1013* r_ref[] = s_proj[].
1014 LOOP AT s_proj.
1015 w_ref-sign = s_proj-sign.
1016 w_ref-option = s_proj-option.
1017 w_ref-low = s_proj-low.
1018 w_ref-high = s_proj-high.
1019 APPEND w_ref TO r_ref.
1020 CLEAR w_ref.
1021 ENDLOOP. " LOOP AT s_proj
1022
1023 SELECT * FROM e070a " Change & Transport System: Attributes of a Request
1024 INTO TABLE li_e070a
1025 WHERE trkorr IN s_trkorr
1026 AND attribute = 'SAP_CTS_PROJECT'
1027* AND reference = lv_ref.
1028 AND reference IN r_ref[].
1029 ENDIF. " IF NOT s_proj[] IS INITIAL
1030 IF li_e070a IS INITIAL.
1031 SELECT * FROM e070 " Change & Transport System: Header of Requests/Tasks
1032 INTO TABLE fp_i_e070
1033 WHERE trkorr IN s_trkorr
1034 AND trfunction IN s_trfunc
1035* AND trstatus IN s_trsts
1036 AND trstatus IN s_status
1037 AND as4user IN s_user
1038 AND as4date IN s_date.
1039
1040 IF sy-subrc EQ 0.
1041 SELECT * FROM e070a " Change & Transport System: Attributes of a Request
1042 INTO TABLE li_e070a
1043 FOR ALL ENTRIES IN fp_i_e070
1044 WHERE trkorr = fp_i_e070-trkorr
1045 AND attribute = 'SAP_CTS_PROJECT'.
1046 ENDIF. " IF sy-subrc EQ 0
1047 ELSE. " ELSE -> IF li_e070a IS INITIAL
1048 SELECT * FROM e070 " Change & Transport System: Header of Requests/Tasks
1049 INTO TABLE fp_i_e070
1050 FOR ALL ENTRIES IN li_e070a
1051 WHERE trkorr = li_e070a-trkorr
1052 AND trfunction IN s_trfunc
1053* AND trstatus IN s_trsts
1054 AND trstatus IN s_status
1055 AND as4user IN s_user
1056 AND as4date IN s_date.
1057 ENDIF. " IF li_e070a IS INITIAL
1058
1059 IF fp_i_e070 IS NOT INITIAL.
1060
1061 DELETE fp_i_e070 WHERE NOT strkorr = space.
1062* Delete the transports below from the list if the checkbox is checked
1063 IF cb_omit EQ 'X'.
1064* IN Every system we may need to not Omit some of not required transports
1065* Here we are hardcoding those Transports to be deleted
1066 PERFORM f_delete_transports TABLES fp_i_e070.
1067 ENDIF. " IF cb_omit EQ 'X'
1068 SORT fp_i_e070 BY trkorr.
1069
1070* Get request owner names; User Details
1071 REFRESH: li_temp_e070.
1072 li_temp_e070[] = fp_i_e070[].
1073 SORT li_temp_e070 BY as4user.
1074 DELETE ADJACENT DUPLICATES FROM li_temp_e070 COMPARING as4user.
1075
1076 IF NOT li_temp_e070[] IS INITIAL.
1077 SELECT a~bname "User Name in User Master Record
1078 b~name_text "Full Name
1079 INTO TABLE li_usrtab
1080 FROM usr21 AS a
1081 INNER JOIN adrp AS b
1082 ON b~persnumber = a~persnumber
1083 FOR ALL ENTRIES IN li_temp_e070
1084 WHERE a~bname = li_temp_e070-as4user.
1085 IF sy-subrc IS INITIAL.
1086 SORT li_usrtab BY bname.
1087 ENDIF. " IF sy-subrc IS INITIAL
1088 REFRESH:li_temp_e070.
1089 ENDIF. " IF NOT li_temp_e070[] IS INITIAL
1090
1091* Fetch data from Short Texts for Requests/Tasks
1092* based upon the request selected from E070
1093 SELECT * FROM e07t " Change & Transport System: Short Texts for Requests/Tasks
1094 INTO TABLE fp_i_e07t
1095 FOR ALL ENTRIES IN fp_i_e070
1096 WHERE trkorr = fp_i_e070-trkorr
1097 AND langu = sy-langu.
1098* AND as4text IN s_desc. "$001++
1099
1100* Handle the WildCards for Description of Transports, as is Case Insensitive
1101 IF sy-subrc IS INITIAL.
1102 SORT fp_i_e07t BY trkorr langu.
1103 LOOP AT fp_i_e07t INTO lw_e07t.
1104 IF p_desc IS NOT INITIAL.
1105 lv_reqtxt = lw_e07t-as4text.
1106 TRANSLATE p_desc TO LOWER CASE. "#EC TRANSLANG
1107 TRANSLATE lv_reqtxt TO LOWER CASE. "#EC TRANSLANG
1108 IF lv_reqtxt CP p_desc. "Check the Pattern
1109 r_trkorr-sign = 'I'.
1110 r_trkorr-option = 'EQ'.
1111 r_trkorr-low = lw_e07t-trkorr.
1112 APPEND r_trkorr.
1113 ENDIF. " IF lv_reqtxt CP p_desc
1114 ELSE. " ELSE -> IF p_desc IS NOT INITIAL
1115 r_trkorr-sign = 'I'.
1116 r_trkorr-option = 'EQ'.
1117 r_trkorr-low = lw_e07t-trkorr.
1118 APPEND r_trkorr.
1119 ENDIF. " IF p_desc IS NOT INITIAL
1120 CLEAR: r_trkorr, lv_reqtxt.
1121 ENDLOOP. " LOOP AT fp_i_e07t INTO lw_e07t
1122* If the Decription is filled and then delete all the transports
1123* Where the descriptions are not found for
1124 IF NOT p_desc IS INITIAL.
1125 DELETE fp_i_e070 WHERE trkorr NOT IN r_trkorr[].
1126 IF r_trkorr[] IS INITIAL.
1127 REFRESH fp_i_e070.
1128 ENDIF. " IF r_trkorr[] IS INITIAL
1129 ENDIF. " IF NOT p_desc IS INITIAL
1130 ENDIF. " IF sy-subrc IS INITIAL
1131
1132* If the Object Details or Table Keys Check box is checked
1133 IF cb_e071 EQ 'X' OR cb_etab EQ 'X'.
1134* Retriving Corresponding Transports from task
1135 REFRESH: li_temp_e070.
1136 li_temp_e070[] = fp_i_e070[].
1137 SORT li_temp_e070 BY strkorr.
1138 DELETE li_temp_e070 WHERE strkorr IS INITIAL.
1139 IF NOT li_temp_e070[] IS INITIAL.
1140*
1141 SELECT * FROM e070 " Change & Transport System: Header of Requests/Tasks
1142 APPENDING TABLE fp_i_e070
1143 FOR ALL ENTRIES IN li_temp_e070
1144 WHERE trkorr = li_temp_e070-strkorr.
1145 IF sy-subrc = 0.
1146 SORT fp_i_e070 BY trkorr.
1147 DELETE ADJACENT DUPLICATES FROM fp_i_e070 COMPARING trkorr.
1148 ENDIF. " IF sy-subrc = 0
1149 ENDIF. " IF NOT li_temp_e070[] IS INITIAL
1150
1151* If not released Recovery of all tasks
1152 REFRESH: li_temp_e070.
1153 li_temp_e070[] = fp_i_e070[].
1154 SORT li_temp_e070 BY strkorr.
1155 DELETE li_temp_e070 WHERE NOT strkorr IS INITIAL.
1156 IF NOT li_temp_e070[] IS INITIAL.
1157*
1158 SELECT * FROM e070 " Change & Transport System: Header of Requests/Tasks
1159 APPENDING TABLE fp_i_e070
1160 FOR ALL ENTRIES IN li_temp_e070
1161 WHERE strkorr = li_temp_e070-trkorr.
1162 IF sy-subrc = 0.
1163 SORT fp_i_e070 BY trkorr.
1164 DELETE ADJACENT DUPLICATES FROM fp_i_e070 COMPARING trkorr.
1165 ENDIF. " IF sy-subrc = 0
1166 ENDIF. " IF NOT li_temp_e070[] IS INITIAL
1167* Build Enterprise Structure data
1168 PERFORM f_build_enterprise_struc_data.
1169 IF cb_entst IS NOT INITIAL.
1170 REFRESH: s_objnem[].
1171 s_objnem[] = r_objnm[].
1172 ENDIF. " IF cb_entst IS NOT INITIAL
1173* Fetch TRANSPORT OBJECT data from Change & Transport System: Object Entries
1174* of Requests/Tasks based upon the request selected from E070
1175 SELECT trkorr "Request/Task
1176 pgmid "Program ID in Requests and Tasks
1177 object "Object Type
1178 obj_name "Object Name in Object List
1179 FROM e071 " Change & Transport System: Object Entries of Requests/Tasks
1180 APPENDING TABLE fp_i_e071
1181 FOR ALL ENTRIES IN fp_i_e070
1182 WHERE trkorr EQ fp_i_e070-trkorr
1183 AND pgmid IN s_pgmid
1184 AND object IN s_objtyp
1185 AND obj_name IN s_objnem
1186 AND objfunc <> 'D'.
1187
1188 IF sy-subrc IS INITIAL.
1189 SORT fp_i_e071 BY trkorr.
1190
1191 li_tmp_e071 = fp_i_e071.
1192 SORT li_tmp_e071 BY trkorr pgmid object.
1193 DELETE ADJACENT DUPLICATES FROM li_tmp_e071 COMPARING trkorr pgmid object.
1194
1195* Fetch TRANSPORT TABLE KEY data from Change & Transport System: Key Entries
1196* of Requests/Tasks based upon the request selected from E070
1197 SELECT trkorr "Request/Task
1198 pgmid "Program ID in Requests and Tasks
1199 object "Object Type
1200 objname "Object Name in Object List
1201 tabkey "Object Name in Object List
1202 FROM e071k " Change & Transport System: Key Entries of Requests/Tasks
1203 INTO TABLE li_e071k
1204 FOR ALL ENTRIES IN li_tmp_e071
1205 WHERE trkorr = li_tmp_e071-trkorr
1206 AND pgmid = li_tmp_e071-pgmid
1207 AND object = li_tmp_e071-object
1208* AND objname IN s_objnem
1209 AND tabkey IN s_tabnam.
1210
1211 IF sy-subrc IS INITIAL.
1212 SORT li_e071k BY trkorr.
1213* Combined the object list of E071 and e071k
1214 APPEND LINES OF li_e071k TO fp_i_e071.
1215* Delete the entry from objectlist where object is 'RELE'.
1216 DELETE fp_i_e071 WHERE object EQ c_object_rele.
1217 SORT fp_i_e071 BY trkorr pgmid object obj_name tabkey.
1218 DELETE ADJACENT DUPLICATES FROM fp_i_e071 COMPARING ALL FIELDS.
1219 IF NOT s_objnem[] IS INITIAL.
1220 DELETE fp_i_e071 WHERE obj_name NOT IN s_objnem.
1221 ENDIF. " IF NOT s_objnem[] IS INITIAL
1222 ENDIF. " IF sy-subrc IS INITIAL
1223
1224 ENDIF. " IF sy-subrc IS INITIAL
1225
1226 CLEAR: lw_e070.
1227
1228* Get the text of objects
1229 PERFORM f_get_object_texts CHANGING i_ko100.
1230
1231 LOOP AT fp_i_e071 ASSIGNING <lfs_e071>.
1232 lv_index = sy-tabix.
1233* Filter the E071 data based on inputs of Table Keys input from Selection
1234 IF NOT s_tabnam[] IS INITIAL.
1235 READ TABLE li_e071k INTO lw_e071k WITH KEY trkorr = <lfs_e071>-trkorr
1236 tabkey = <lfs_e071>-tabkey.
1237 IF sy-subrc NE 0.
1238 DELETE fp_i_e071 INDEX lv_index.
1239 CONTINUE.
1240 ENDIF. " IF sy-subrc NE 0
1241 ENDIF. " IF NOT s_tabnam[] IS INITIAL
1242
1243 READ TABLE fp_i_e070 INTO lw_e070 WITH KEY trkorr = <lfs_e071>-trkorr.
1244 IF sy-subrc EQ 0 AND lw_e070-strkorr IS NOT INITIAL.
1245 <lfs_e071>-trkorr = lw_e070-strkorr.
1246 ENDIF. " IF sy-subrc EQ 0 AND lw_e070-strkorr IS NOT INITIAL
1247* Get the Object Texts
1248 READ TABLE i_ko100 ASSIGNING <l_fs_ko100> WITH KEY pgmid = <lfs_e071>-pgmid
1249 object = <lfs_e071>-object
1250 BINARY SEARCH.
1251 IF sy-subrc IS INITIAL.
1252 <lfs_e071>-text = <l_fs_ko100>-text.
1253 ENDIF. " IF sy-subrc IS INITIAL
1254* Get the Object Descriptions (Table, Programs, Function..... Names)
1255 lv_object = <lfs_e071>-object.
1256 IF lv_object EQ 'TABU' OR
1257 lv_object EQ 'TDAT' OR
1258 lv_object EQ 'VDAT' OR
1259 lv_object EQ 'TABD'.
1260 lv_object = 'TABL'.
1261 ENDIF. " IF lv_object EQ 'TABU' OR
1262* Build Dynamic Function names
1263 CONCATENATE 'PAK_GET_SHORTTEXT_' lv_object INTO fm_name.
1264
1265 SELECT SINGLE * FROM tfdir INTO w_tfdir WHERE funcname EQ fm_name.
1266 IF sy-subrc EQ 0.
1267
1268 lv_element = <lfs_e071>-obj_name.
1269 CALL FUNCTION fm_name
1270 EXPORTING
1271 i_elem_key = lv_element
1272 i_language = sy-langu
1273 IMPORTING
1274 e_short_text = <lfs_e071>-obj_desc
1275 EXCEPTIONS
1276 OTHERS = 1.
1277
1278 ENDIF. " IF sy-subrc EQ 0
1279
1280 CLEAR: lw_e071, lw_e071k, lw_e070, lv_element, w_tfdir, lv_object.
1281 ENDLOOP. " LOOP AT fp_i_e071 ASSIGNING <lfs_e071>
1282
1283 LOOP AT fp_i_e070 INTO lw_e070.
1284 lv_index = sy-tabix.
1285* Filter the E070 data based on inputs of Object Details input from Selection
1286 IF NOT s_pgmid[] IS INITIAL OR NOT s_objtyp[] IS INITIAL OR NOT s_objnem[] IS INITIAL.
1287 IF lw_e070-trstatus = 'R'. "Released
1288 READ TABLE fp_i_e071 INTO lw_e071 WITH KEY trkorr = lw_e070-trkorr.
1289 ELSEIF lw_e070-trstatus = 'D' AND lw_e070-strkorr IS NOT INITIAL. "Modifiable
1290 READ TABLE fp_i_e071 INTO lw_e071 WITH KEY trkorr = lw_e070-strkorr.
1291 ELSE. " ELSE -> IF lw_e070-trstatus = 'R'
1292 READ TABLE fp_i_e071 INTO lw_e071 WITH KEY trkorr = lw_e070-trkorr.
1293 ENDIF. " IF lw_e070-trstatus = 'R'
1294 IF sy-subrc NE 0.
1295 DELETE fp_i_e070 INDEX lv_index.
1296 CONTINUE.
1297 ENDIF. " IF sy-subrc NE 0
1298 ENDIF. " IF NOT s_pgmid[] IS INITIAL OR NOT s_objtyp[] IS INITIAL OR NOT s_objnem[] IS INITIAL
1299* Filter the E070 data based on inputs of Table Keys input from Selection
1300 IF NOT s_tabnam[] IS INITIAL.
1301 IF lw_e070-trstatus = 'R'. "Released
1302 READ TABLE li_e071k INTO lw_e071k WITH KEY trkorr = lw_e070-trkorr BINARY SEARCH.
1303 ELSEIF lw_e070-trstatus = 'D'. "Modifiable
1304 READ TABLE fp_i_e071 INTO lw_e071 WITH KEY trkorr = lw_e070-strkorr.
1305 ELSE. " ELSE -> IF lw_e070-trstatus = 'R'
1306 READ TABLE fp_i_e071 INTO lw_e071 WITH KEY trkorr = lw_e070-trkorr.
1307 ENDIF. " IF lw_e070-trstatus = 'R'
1308 IF sy-subrc NE 0.
1309 DELETE fp_i_e070 INDEX lv_index.
1310 CONTINUE.
1311 ENDIF. " IF sy-subrc NE 0
1312 ENDIF. " IF NOT s_tabnam[] IS INITIAL
1313 CLEAR: lw_e070, lw_e071, lw_e071k, lwa_outtab.
1314 ENDLOOP. " LOOP AT fp_i_e070 INTO lw_e070
1315
1316 LOOP AT fp_i_e070 INTO lw_e070.
1317 lv_index = sy-tabix.
1318 READ TABLE fp_i_e071 ASSIGNING <lfs_e071> WITH KEY trkorr = lw_e070-trkorr.
1319 IF sy-subrc NE 0.
1320 DELETE fp_i_e070 INDEX lv_index.
1321 CONTINUE.
1322 ENDIF. " IF sy-subrc NE 0
1323 ENDLOOP. " LOOP AT fp_i_e070 INTO lw_e070
1324
1325* Unassign the Field Symbols
1326 IF <lfs_e071> IS ASSIGNED.
1327 UNASSIGN <lfs_e071>.
1328 ENDIF. " IF <lfs_e071> IS ASSIGNED
1329 IF <l_fs_ko100> IS ASSIGNED.
1330 UNASSIGN <l_fs_ko100>.
1331 ENDIF. " IF <l_fs_ko100> IS ASSIGNED
1332
1333 ENDIF. " IF cb_e071 EQ 'X' OR cb_etab EQ 'X'
1334
1335* Populate the final internal table for report output
1336 PERFORM f_pop_final_tab USING fp_i_e070
1337 fp_i_e07t
1338 fp_i_e071
1339 li_usrtab
1340 li_e070a
1341 CHANGING fp_i_outtab.
1342 REFRESH: r_trkorr.
1343 CLEAR: r_trkorr.
1344
1345* Omit Production/Final System Filled transports if the checkbox is checked
1346 IF cb_prod EQ 'X'.
1347 IF p_sy_id7 IS NOT INITIAL.
1348 DELETE fp_i_outtab WHERE sy_id7_icon IS NOT INITIAL.
1349 ELSEIF p_sy_id6 IS NOT INITIAL.
1350 DELETE fp_i_outtab WHERE sy_id6_icon IS NOT INITIAL.
1351 ELSEIF p_sy_id5 IS NOT INITIAL.
1352 DELETE fp_i_outtab WHERE sy_id5_icon IS NOT INITIAL.
1353 ELSEIF p_sy_id4 IS NOT INITIAL.
1354 DELETE fp_i_outtab WHERE sy_id4_icon IS NOT INITIAL.
1355 ELSEIF p_sy_id3 IS NOT INITIAL.
1356 DELETE fp_i_outtab WHERE sy_id3_icon IS NOT INITIAL.
1357 ELSEIF p_sy_id2 IS NOT INITIAL.
1358 DELETE fp_i_outtab WHERE sy_id2_icon IS NOT INITIAL.
1359 ENDIF. " IF p_sy_id7 IS NOT INITIAL
1360 ENDIF. " IF cb_prod EQ 'X'
1361
1362* Get all the transport detail which has been selected in the report output
1363 LOOP AT fp_i_outtab INTO lwa_outtab.
1364 r_trkorr-sign = 'I'.
1365 r_trkorr-option = 'EQ'.
1366 r_trkorr-low = lwa_outtab-trkorr. "" Selection for import"
1367 APPEND r_trkorr.
1368 CLEAR: r_trkorr.
1369* Prepare the Download Final Table
1370 APPEND INITIAL LINE TO i_download ASSIGNING <lfs_download>.
1371 MOVE-CORRESPONDING lwa_outtab TO <lfs_download>.
1372
1373* Replace the Icon Values with Meaningful Names
1374 REPLACE ALL OCCURRENCES OF '@' IN <lfs_download>-trstatus WITH ''.
1375 REPLACE ALL OCCURRENCES OF '@' IN <lfs_download>-trfunction WITH ''.
1376 REPLACE ALL OCCURRENCES OF '@' IN <lfs_download>-sy_id2_icon WITH ''.
1377 REPLACE ALL OCCURRENCES OF '@' IN <lfs_download>-sy_id3_icon WITH ''.
1378 REPLACE ALL OCCURRENCES OF '@' IN <lfs_download>-sy_id4_icon WITH ''.
1379 REPLACE ALL OCCURRENCES OF '@' IN <lfs_download>-sy_id5_icon WITH ''.
1380 REPLACE ALL OCCURRENCES OF '@' IN <lfs_download>-sy_id6_icon WITH ''.
1381 REPLACE ALL OCCURRENCES OF '@' IN <lfs_download>-sy_id7_icon WITH ''.
1382
1383 <lfs_download>-trstatus = <lfs_download>-trstatus+4.
1384 <lfs_download>-trfunction = <lfs_download>-trfunction+4.
1385 <lfs_download>-sy_id2_icon = <lfs_download>-sy_id2_icon+4.
1386 <lfs_download>-sy_id3_icon = <lfs_download>-sy_id3_icon+4.
1387 <lfs_download>-sy_id4_icon = <lfs_download>-sy_id4_icon+4.
1388 <lfs_download>-sy_id5_icon = <lfs_download>-sy_id5_icon+4.
1389 <lfs_download>-sy_id6_icon = <lfs_download>-sy_id6_icon+4.
1390 <lfs_download>-sy_id7_icon = <lfs_download>-sy_id7_icon+4.
1391 CLEAR: lwa_outtab.
1392 ENDLOOP. " LOOP AT fp_i_outtab INTO lwa_outtab
1393* Delete the E070 Transports from the Filtered List
1394 IF NOT r_trkorr[] IS INITIAL.
1395 DELETE fp_i_e070 WHERE trkorr NOT IN r_trkorr.
1396 REFRESH: r_trkorr.
1397 CLEAR: r_trkorr.
1398 ENDIF. " IF NOT r_trkorr[] IS INITIAL
1399
1400 ENDIF. " IF fp_i_e070 IS NOT INITIAL
1401
1402* If No Data Found then populate the Message 'No Data Found'
1403 IF fp_i_e070 IS INITIAL.
1404 MESSAGE text-045 TYPE 'I'.
1405 LEAVE LIST-PROCESSING.
1406 ENDIF. " IF fp_i_e070 IS INITIAL
1407
1408ENDFORM. " F_GET_REQUEST_DETAIL
1409*&---------------------------------------------------------------------*
1410*& Form F_GET_OBJECT_TEXTS
1411*&---------------------------------------------------------------------*
1412* text
1413*----------------------------------------------------------------------*
1414* <--Get Object List Texts
1415*----------------------------------------------------------------------*
1416FORM f_get_object_texts CHANGING fp_i_ko100 TYPE ty_t_ko100.
1417
1418 CALL FUNCTION 'TR_OBJECT_TABLE'
1419 TABLES
1420 wt_object_text = fp_i_ko100
1421 EXCEPTIONS
1422 OTHERS = 1.
1423
1424 IF sy-subrc IS INITIAL.
1425 SORT fp_i_ko100 BY pgmid object.
1426 ENDIF. " IF sy-subrc IS INITIAL
1427
1428ENDFORM. " F_GET_OBJECT_TEXTS
1429*&---------------------------------------------------------------------*
1430*& Form F_POP_FINAL_TAB
1431*&---------------------------------------------------------------------*
1432* Populate final internal table
1433*----------------------------------------------------------------------*
1434FORM f_pop_final_tab USING fp_i_e070 TYPE ty_t_e070
1435 fp_i_e07t TYPE ty_t_e07t
1436 fp_i_e071 TYPE ty_t_e071
1437 fp_li_usrtab TYPE ty_t_usrtab
1438 fp_li_e070a TYPE ty_t_e070a
1439 CHANGING fp_i_outtab TYPE ty_t_outtab.
1440
1441 DATA: lv_status_icon TYPE char30, " Status_icon of type CHAR30
1442 lv_reqtyp_icon TYPE char30, " Reqtyp_icon of type CHAR30
1443 lv_desc_length TYPE i, "String Length of Description.
1444 lv_length_disp TYPE i, " Length_disp of type Integers
1445 lv_start TYPE i, " Start of type Integers
1446 lv_end TYPE i, " End of type Integers
1447 lv_last TYPE i, " Last of type Integers
1448 lv_info TYPE char30, " Info of type CHAR30
1449 lv_icon_flag TYPE c, " Icon_flag of type Character
1450 lw_e071 TYPE ty_e071,
1451 lw_e070a TYPE e070a, " Change & Transport System: Attributes of a Request
1452 lw_cts_proj TYPE ctsproject. " Assignment of a CTS Project to an External Project
1453
1454 REFRESH: i_cts_proj.
1455 CLEAR: lv_status_icon, lv_reqtyp_icon, lv_desc_length, lv_length_disp,
1456 lv_start, lv_end, lv_last, lv_info, lv_icon_flag.
1457* Local field symbol declaration
1458 FIELD-SYMBOLS: <lfs_e070> TYPE e070, "Field symbol for E070
1459 <lfs_e07t> TYPE e07t, "Field symbol for E07T
1460 <lfs_usrtab> TYPE ty_usrtab. "Field symbol for USRTAB
1461
1462* Local variable and workarea declaration
1463 DATA: lwa_outtab TYPE ty_outtab. "Workare for final internal table
1464
1465* Get the data through the RFC if the system is not part of landscape
1466 IF rb_r2 EQ 'X' OR rb_r3 EQ 'X' OR rb_r4 EQ 'X' OR
1467 rb_r5 EQ 'X' OR rb_r6 EQ 'X' OR rb_r7 EQ 'X'.
1468 PERFORM f_get_rfcdest_related_data.
1469 ENDIF. " IF rb_r2 EQ 'X' OR rb_r3 EQ 'X' OR rb_r4 EQ 'X' OR
1470
1471 SELECT * FROM ctsproject INTO TABLE i_cts_proj.
1472
1473 LOOP AT fp_i_e070 ASSIGNING <lfs_e070>.
1474 CLEAR: lw_e071, lw_cts_proj, lw_e070a.
1475 lwa_outtab-trkorr = <lfs_e070>-trkorr. "Transport request number
1476 lwa_outtab-as4user = <lfs_e070>-as4user. "Owner ID
1477 lwa_outtab-sy_id1_date = <lfs_e070>-as4date. "creation date in development system
1478 lwa_outtab-sy_id1_time = <lfs_e070>-as4time. "Creation Time in development system
1479
1480 READ TABLE fp_i_e071 INTO lw_e071 WITH KEY trkorr = <lfs_e070>-trkorr.
1481 IF sy-subrc EQ 0.
1482 IF lw_e071-obj_name IN r_objnm[].
1483 lv_status_icon = 'ICON_TREE'. "#EC NOTEXT
1484 lv_info = 'Enterprise Structure'. "#EC NOTEXT
1485 lv_icon_flag = 'X'.
1486 PERFORM f_get_icon USING lv_status_icon
1487 lv_info
1488 lv_icon_flag
1489 CHANGING lwa_outtab-entrpise_str.
1490 ENDIF. " IF lw_e071-obj_name IN r_objnm[]
1491 ENDIF. " IF sy-subrc EQ 0
1492
1493 IF cb_entst IS NOT INITIAL.
1494 IF lw_e071-obj_name IN r_objnm[].
1495 ELSE. " ELSE -> IF lw_e071-obj_name IN r_objnm[]
1496 CONTINUE.
1497 ENDIF. " IF lw_e071-obj_name IN r_objnm[]
1498 ENDIF. " IF cb_entst IS NOT INITIAL
1499
1500 READ TABLE fp_li_e070a INTO lw_e070a WITH KEY trkorr = <lfs_e070>-trkorr.
1501 IF sy-subrc EQ 0.
1502 READ TABLE i_cts_proj INTO lw_cts_proj WITH KEY trkorr = lw_e070a-reference.
1503 IF sy-subrc EQ 0.
1504 lwa_outtab-proj_id = lw_cts_proj-externalid.
1505 lwa_outtab-proj_cts = lw_cts_proj-trkorr.
1506 lwa_outtab-proj_desc = lw_cts_proj-descriptn.
1507 ENDIF. " IF sy-subrc EQ 0
1508 ENDIF. " IF sy-subrc EQ 0
1509
1510* Buld the ICONS for the Transport Status
1511 IF <lfs_e070>-trstatus EQ 'D'. "#EC NOTEXT
1512 lv_status_icon = 'ICON_CHANGE'. "#EC NOTEXT
1513 lv_info = 'Modifiable'. "#EC NOTEXT
1514 ELSEIF <lfs_e070>-trstatus EQ 'R'. "#EC NOTEXT
1515 lv_status_icon = 'ICON_RELEASE'. "#EC NOTEXT
1516 lv_info = 'Released'. "#EC NOTEXT
1517 ENDIF. " IF <lfs_e070>-trstatus EQ 'D'
1518 lv_icon_flag = 'X'.
1519 PERFORM f_get_icon USING lv_status_icon
1520 lv_info
1521 lv_icon_flag
1522 CHANGING lwa_outtab-trstatus.
1523
1524 CLEAR lv_info.
1525* Buld the ICONS for the Transport Functions
1526 IF <lfs_e070>-trfunction EQ 'K'. "#EC NOTEXT"WorkBench
1527 lv_reqtyp_icon = 'ICON_WORKING_PLAN'. "#EC NOTEXT
1528 lv_info = 'Workbench'. "#EC NOTEXT
1529 ELSEIF <lfs_e070>-trfunction EQ 'W'. "#EC NOTEXT "Customizing
1530 lv_reqtyp_icon = 'ICON_CONFIGURATION'. "#EC NOTEXT
1531 lv_info = 'Customizing'. "#EC NOTEXT
1532 ELSEIF <lfs_e070>-trfunction EQ 'T'. "#EC NOTEXT"Transport Copies
1533 lv_reqtyp_icon = 'ICON_COPY_OBJECT'. "#EC NOTEXT
1534 lv_info = 'Transport Of Copies'. "#EC NOTEXT
1535 ENDIF. " IF <lfs_e070>-trfunction EQ 'K'
1536
1537 PERFORM f_get_icon USING lv_reqtyp_icon
1538 lv_info
1539 lv_icon_flag
1540 CHANGING lwa_outtab-trfunction.
1541 CLEAR lv_icon_flag.
1542
1543 READ TABLE fp_i_e07t ASSIGNING <lfs_e07t> WITH KEY trkorr = <lfs_e070>-trkorr
1544 langu = sy-langu
1545 BINARY SEARCH.
1546 IF sy-subrc IS INITIAL.
1547* Populate the short text of Transport request
1548 lwa_outtab-as4text = <lfs_e07t>-as4text.
1549
1550 lv_desc_length = strlen( <lfs_e07t>-as4text ). "$001++
1551 TRY. "$001++
1552* Substring 1
1553 IF p_from IS NOT INITIAL AND p_end IS INITIAL. "$001++
1554 lv_start = p_from - 1. "$001++
1555 lv_length_disp = lv_desc_length - p_from. "$001++
1556 lwa_outtab-tptdes_sted = <lfs_e07t>-as4text+lv_start(lv_length_disp). "$001++
1557 ELSEIF p_from IS NOT INITIAL AND p_end IS NOT INITIAL. "$001++
1558 lv_start = p_from - 1. "$001++
1559 lv_end = p_end - lv_start. "$001++
1560 lwa_outtab-tptdes_sted = <lfs_e07t>-as4text+lv_start(lv_end). "$001++
1561 ELSEIF p_from IS INITIAL AND p_end IS NOT INITIAL. "$001++
1562 lv_length_disp = lv_desc_length - p_end. "$001++
1563 lwa_outtab-tptdes_sted = <lfs_e07t>-as4text(p_end).
1564 ENDIF. " IF p_from IS NOT INITIAL AND p_end IS INITIAL
1565 IF p_last IS NOT INITIAL. "$001++
1566 lv_last = lv_desc_length - p_last. "$001++
1567 lwa_outtab-tptdes_last = <lfs_e07t>-as4text+lv_last(p_last). "$001++
1568 ENDIF. " IF p_last IS NOT INITIAL
1569
1570* Substring 2
1571 CLEAR: lv_start, lv_length_disp, lv_end, lv_desc_length.
1572 IF p_from1 IS NOT INITIAL AND p_end1 IS INITIAL. "$001++
1573 lv_start = p_from1 - 1. "$001++
1574 lv_length_disp = lv_desc_length - p_from1. "$001++
1575 lwa_outtab-tptdes_ste2 = <lfs_e07t>-as4text+lv_start(lv_length_disp). "$001++
1576 ELSEIF p_from1 IS NOT INITIAL AND p_end1 IS NOT INITIAL. "$001++
1577 lv_start = p_from1 - 1. "$001++
1578 lv_end = p_end1 - lv_start. "$001++
1579 lwa_outtab-tptdes_ste2 = <lfs_e07t>-as4text+lv_start(lv_end). "$001++
1580 ELSEIF p_from1 IS INITIAL AND p_end1 IS NOT INITIAL. "$001++
1581 lv_length_disp = lv_desc_length - p_end1. "$001++
1582 lwa_outtab-tptdes_ste2 = <lfs_e07t>-as4text(p_end1).
1583 ENDIF. " IF p_from1 IS NOT INITIAL AND p_end1 IS INITIAL
1584 CATCH cx_sy_range_out_of_bounds. "$001++
1585 ENDTRY.
1586* ELSE. "$001++
1587* CONTINUE. "$001++
1588 ENDIF. " IF sy-subrc IS INITIAL
1589
1590 READ TABLE fp_li_usrtab ASSIGNING <lfs_usrtab> WITH KEY bname = <lfs_e070>-as4user
1591 BINARY SEARCH.
1592 IF sy-subrc IS INITIAL.
1593* Populate the full name of the owner of Transport request
1594 lwa_outtab-name_text = <lfs_usrtab>-name_text.
1595 ENDIF. " IF sy-subrc IS INITIAL
1596
1597* Get the Transport log and populate the final internal table
1598 PERFORM f_get_transport_log CHANGING lwa_outtab.
1599
1600 APPEND lwa_outtab TO fp_i_outtab.
1601 CLEAR: lwa_outtab.
1602 ENDLOOP. " LOOP AT fp_i_e070 ASSIGNING <lfs_e070>
1603ENDFORM. " F_POP_FINAL_TAB
1604*&---------------------------------------------------------------------*
1605*& Form F_GET_TRANSPORT_LOG
1606*&---------------------------------------------------------------------*
1607* Get the Transport log and populate the final internal table
1608*----------------------------------------------------------------------*
1609FORM f_get_transport_log CHANGING fp_lwa_outtab TYPE ty_outtab.
1610
1611* Local field-symbol declaration
1612 FIELD-SYMBOLS: <lfs_systems> TYPE ctslg_system. "System detail in the cofile
1613
1614* Local internal table declaration
1615 DATA: lst_request TYPE ctslg_request_info, "structure contains Cofile detail
1616 lw_system TYPE ctslg_system.
1617* Below function module has been called to get the transportation log
1618 CALL FUNCTION 'TR_READ_GLOBAL_INFO_OF_REQUEST'
1619 EXPORTING
1620 iv_trkorr = fp_lwa_outtab-trkorr
1621 iv_dir_type = 'T'
1622 IMPORTING
1623 es_cofile = lst_request-cofile
1624 EXCEPTIONS
1625 OTHERS = 1.
1626
1627 IF sy-subrc IS INITIAL.
1628 IF NOT lst_request-cofile-systems[] IS INITIAL.
1629 SORT lst_request-cofile-systems BY systemid.
1630* Add the system to co files as they would not be available for RFC transports
1631 IF rb_r2 IS NOT INITIAL.
1632 READ TABLE lst_request-cofile-systems TRANSPORTING NO FIELDS
1633 WITH KEY systemid = p_sy_id2 BINARY SEARCH.
1634 IF sy-subrc NE 0.
1635 lw_system-systemid = p_sy_id2.
1636 APPEND lw_system TO lst_request-cofile-systems.
1637 CLEAR lw_system.
1638 ENDIF. " IF sy-subrc NE 0
1639 ENDIF. " IF rb_r2 IS NOT INITIAL
1640* Add the system to co files as they would not be available for RFC transports
1641 IF rb_r3 IS NOT INITIAL.
1642 READ TABLE lst_request-cofile-systems TRANSPORTING NO FIELDS
1643 WITH KEY systemid = p_sy_id3 BINARY SEARCH.
1644 IF sy-subrc NE 0.
1645 lw_system-systemid = p_sy_id3.
1646 APPEND lw_system TO lst_request-cofile-systems.
1647 CLEAR lw_system.
1648 ENDIF. " IF sy-subrc NE 0
1649 ENDIF. " IF rb_r3 IS NOT INITIAL
1650* Add the system to co files as they would not be available for RFC transports
1651 IF rb_r4 IS NOT INITIAL.
1652 READ TABLE lst_request-cofile-systems TRANSPORTING NO FIELDS
1653 WITH KEY systemid = p_sy_id4 BINARY SEARCH.
1654 IF sy-subrc NE 0.
1655 lw_system-systemid = p_sy_id4.
1656 APPEND lw_system TO lst_request-cofile-systems.
1657 CLEAR lw_system.
1658 ENDIF. " IF sy-subrc NE 0
1659 ENDIF. " IF rb_r4 IS NOT INITIAL
1660* Add the system to co files as they would not be available for RFC transports
1661 IF rb_r5 IS NOT INITIAL.
1662 READ TABLE lst_request-cofile-systems TRANSPORTING NO FIELDS
1663 WITH KEY systemid = p_sy_id5 BINARY SEARCH.
1664 IF sy-subrc NE 0.
1665 lw_system-systemid = p_sy_id5.
1666 APPEND lw_system TO lst_request-cofile-systems.
1667 CLEAR lw_system.
1668 ENDIF. " IF sy-subrc NE 0
1669 ENDIF. " IF rb_r5 IS NOT INITIAL
1670* Add the system to co files as they would not be available for RFC transports
1671 IF rb_r6 IS NOT INITIAL.
1672 READ TABLE lst_request-cofile-systems TRANSPORTING NO FIELDS
1673 WITH KEY systemid = p_sy_id6 BINARY SEARCH.
1674 IF sy-subrc NE 0.
1675 lw_system-systemid = p_sy_id6.
1676 APPEND lw_system TO lst_request-cofile-systems.
1677 CLEAR lw_system.
1678 ENDIF. " IF sy-subrc NE 0
1679 ENDIF. " IF rb_r6 IS NOT INITIAL
1680* Add the system to co files as they would not be available for RFC transports
1681 IF rb_r7 IS NOT INITIAL.
1682 READ TABLE lst_request-cofile-systems TRANSPORTING NO FIELDS
1683 WITH KEY systemid = p_sy_id7 BINARY SEARCH.
1684 IF sy-subrc NE 0.
1685 lw_system-systemid = p_sy_id7.
1686 APPEND lw_system TO lst_request-cofile-systems.
1687 CLEAR lw_system.
1688 ENDIF. " IF sy-subrc NE 0
1689 ENDIF. " IF rb_r7 IS NOT INITIAL
1690 ENDIF. " IF NOT lst_request-cofile-systems[] IS INITIAL
1691
1692 LOOP AT lst_request-cofile-systems ASSIGNING <lfs_systems>.
1693* Get the system ID detail
1694 CASE <lfs_systems>-systemid.
1695 WHEN p_sy_id2.
1696* Get the Import date and time for test system
1697 PERFORM f_get_date_time USING p_sy_cl2
1698 rb_r2
1699 p_rfcd2
1700 CHANGING <lfs_systems>
1701 fp_lwa_outtab-sy_id2_date
1702 fp_lwa_outtab-sy_id2_time
1703 fp_lwa_outtab-sy_id2_icon
1704 fp_lwa_outtab-trkorr.
1705 WHEN p_sy_id3.
1706* Get the Import date and time for test system
1707 PERFORM f_get_date_time USING p_sy_cl3
1708 rb_r3
1709 p_rfcd3
1710 CHANGING <lfs_systems>
1711 fp_lwa_outtab-sy_id3_date
1712 fp_lwa_outtab-sy_id3_time
1713 fp_lwa_outtab-sy_id3_icon
1714 fp_lwa_outtab-trkorr.
1715 WHEN p_sy_id4.
1716* Get the Import date and time for production system
1717 PERFORM f_get_date_time USING p_sy_cl4
1718 rb_r4
1719 p_rfcd4
1720 CHANGING <lfs_systems>
1721 fp_lwa_outtab-sy_id4_date
1722 fp_lwa_outtab-sy_id4_time
1723 fp_lwa_outtab-sy_id4_icon
1724 fp_lwa_outtab-trkorr.
1725 WHEN p_sy_id5.
1726* Get the Import date and time for addtional system
1727 PERFORM f_get_date_time USING p_sy_cl5
1728 rb_r5
1729 p_rfcd5
1730 CHANGING <lfs_systems>
1731 fp_lwa_outtab-sy_id5_date
1732 fp_lwa_outtab-sy_id5_time
1733 fp_lwa_outtab-sy_id5_icon
1734 fp_lwa_outtab-trkorr.
1735 WHEN p_sy_id6.
1736* Get the Import date and time for addtional system
1737 PERFORM f_get_date_time USING p_sy_cl6
1738 rb_r6
1739 p_rfcd6
1740 CHANGING <lfs_systems>
1741 fp_lwa_outtab-sy_id6_date
1742 fp_lwa_outtab-sy_id6_time
1743 fp_lwa_outtab-sy_id6_icon
1744 fp_lwa_outtab-trkorr.
1745 WHEN p_sy_id7.
1746* Get the Import date and time for addtional system
1747 PERFORM f_get_date_time USING p_sy_cl7
1748 rb_r7
1749 p_rfcd7
1750 CHANGING <lfs_systems>
1751 fp_lwa_outtab-sy_id7_date
1752 fp_lwa_outtab-sy_id7_time
1753 fp_lwa_outtab-sy_id7_icon
1754 fp_lwa_outtab-trkorr.
1755 WHEN OTHERS.
1756 ENDCASE.
1757 ENDLOOP. " LOOP AT lst_request-cofile-systems ASSIGNING <lfs_systems>
1758 ENDIF. " IF sy-subrc IS INITIAL
1759ENDFORM. " F_GET_TRANSPORT_LOG
1760*&---------------------------------------------------------------------*
1761*& Form F_GET_RETURN_CODE
1762*&---------------------------------------------------------------------*
1763* Get the return code to display the ICON
1764*----------------------------------------------------------------------*
1765FORM f_get_return_code USING fp_retcode TYPE strw_int4 " Counter in Transport Organizer
1766 CHANGING fp_icon TYPE edistatusicon. " Status Group
1767
1768 DATA: lv_icon_flag TYPE c. " Icon_flag of type Character
1769
1770 IF fp_retcode EQ 0.
1771* Populate the trafic light as green
1772 PERFORM f_get_icon USING c_green_light
1773 'GREEN Light' "#EC NOTEXT
1774 lv_icon_flag
1775 CHANGING fp_icon.
1776 ELSEIF fp_retcode GT 0 AND fp_retcode LE 4.
1777* Populate the trafic light as yellow
1778 PERFORM f_get_icon USING c_yellow_light
1779 'YELLOW Light' "#EC NOTEXT
1780 lv_icon_flag
1781 CHANGING fp_icon.
1782 ELSEIF fp_retcode GT 4.
1783* Populate the trafic light as red
1784 PERFORM f_get_icon USING c_red_light
1785 'RED Light' "#EC NOTEXT
1786 lv_icon_flag
1787 CHANGING fp_icon.
1788 ENDIF. " IF fp_retcode EQ 0
1789ENDFORM. " F_GET_RETURN_CODE
1790*&---------------------------------------------------------------------*
1791*& Form F_FILL_FIELDCATALOG
1792*&---------------------------------------------------------------------*
1793* populate the field catlog
1794*----------------------------------------------------------------------*
1795FORM f_fill_fieldcatalog .
1796
1797* DATA: ref_descr TYPE REF TO cl_abap_structdescr, "$001++
1798* lw_outtab TYPE ty_outtab. "$001++
1799
1800 DATA: lv_sysid1 TYPE scrtext_l, " Long Field Label
1801 lv_sysid2 TYPE scrtext_l, " Long Field Label
1802 lv_sysid3 TYPE scrtext_l, " Long Field Label
1803 lv_sysid4 TYPE scrtext_l, " Long Field Label
1804 lv_sysid5 TYPE scrtext_l, " Long Field Label
1805 lv_sysid6 TYPE scrtext_l, " Long Field Label
1806 lv_sysid7 TYPE scrtext_l, " Long Field Label
1807 lv_syrec2 TYPE scrtext_l, " Long Field Label
1808 lv_syrec3 TYPE scrtext_l, " Long Field Label
1809 lv_syrec4 TYPE scrtext_l, " Long Field Label
1810 lv_syrec5 TYPE scrtext_l, " Long Field Label
1811 lv_syrec6 TYPE scrtext_l, " Long Field Label
1812 lv_syrec7 TYPE scrtext_l, " Long Field Label
1813 lv_sydat1 TYPE scrtext_l, " Long Field Label
1814 lv_sydat2 TYPE scrtext_l, " Long Field Label
1815 lv_sydat3 TYPE scrtext_l, " Long Field Label
1816 lv_sydat4 TYPE scrtext_l, " Long Field Label
1817 lv_sydat5 TYPE scrtext_l, " Long Field Label
1818 lv_sydat6 TYPE scrtext_l, " Long Field Label
1819 lv_sydat7 TYPE scrtext_l, " Long Field Label
1820 lv_sytim1 TYPE scrtext_l, " Long Field Label
1821 lv_sytim2 TYPE scrtext_l, " Long Field Label
1822 lv_sytim3 TYPE scrtext_l, " Long Field Label
1823 lv_sytim4 TYPE scrtext_l, " Long Field Label
1824 lv_sytim5 TYPE scrtext_l, " Long Field Label
1825 lv_sytim6 TYPE scrtext_l, " Long Field Label
1826 lv_sytim7 TYPE scrtext_l, " Long Field Label
1827 lv_syseq1 TYPE scrtext_l, " Long Field Label
1828 lv_syseq2 TYPE scrtext_l, " Long Field Label
1829 lv_syseq3 TYPE scrtext_l, " Long Field Label
1830 lv_syseq4 TYPE scrtext_l, " Long Field Label
1831 lv_syseq5 TYPE scrtext_l, " Long Field Label
1832 lv_syseq6 TYPE scrtext_l, " Long Field Label
1833 lv_syseq7 TYPE scrtext_l, " Long Field Label
1834 lv_check TYPE flag. " General Flag
1835
1836* ref_descr ?= cl_abap_typedescr=>describe_by_data( lw_outtab ). "$001++
1837* i_details[] = ref_descr->components[]. "$001++
1838
1839 IF p_sy_id1 IS NOT INITIAL.
1840 CONCATENATE p_sy_id1 '-' p_sy_cl1 INTO lv_sysid1.
1841 ENDIF. " IF p_sy_id1 IS NOT INITIAL
1842 IF p_sy_id2 IS NOT INITIAL.
1843 CONCATENATE p_sy_id2 '-' p_sy_cl2 INTO lv_sysid2.
1844 ENDIF. " IF p_sy_id2 IS NOT INITIAL
1845 IF p_sy_id3 IS NOT INITIAL.
1846 CONCATENATE p_sy_id3 '-' p_sy_cl3 INTO lv_sysid3.
1847 ENDIF. " IF p_sy_id3 IS NOT INITIAL
1848 IF p_sy_id4 IS NOT INITIAL.
1849 CONCATENATE p_sy_id4 '-' p_sy_cl4 INTO lv_sysid4.
1850 ENDIF. " IF p_sy_id4 IS NOT INITIAL
1851 IF p_sy_id5 IS NOT INITIAL.
1852 CONCATENATE p_sy_id5 '-' p_sy_cl5 INTO lv_sysid5.
1853 ENDIF. " IF p_sy_id5 IS NOT INITIAL
1854 IF p_sy_id6 IS NOT INITIAL.
1855 CONCATENATE p_sy_id6 '-' p_sy_cl6 INTO lv_sysid6.
1856 ENDIF. " IF p_sy_id6 IS NOT INITIAL
1857 IF p_sy_id7 IS NOT INITIAL.
1858 CONCATENATE p_sy_id7 '-' p_sy_cl7 INTO lv_sysid7.
1859 ENDIF. " IF p_sy_id7 IS NOT INITIAL
1860
1861
1862 CONCATENATE lv_sysid2 'Imp' INTO lv_syrec2 SEPARATED BY space. "#EC NOTEXT
1863 CONCATENATE lv_sysid3 'Imp' INTO lv_syrec3 SEPARATED BY space. "#EC NOTEXT
1864 CONCATENATE lv_sysid4 'Imp' INTO lv_syrec4 SEPARATED BY space. "#EC NOTEXT
1865 CONCATENATE lv_sysid5 'Imp' INTO lv_syrec5 SEPARATED BY space. "#EC NOTEXT
1866 CONCATENATE lv_sysid6 'Imp' INTO lv_syrec6 SEPARATED BY space. "#EC NOTEXT
1867 CONCATENATE lv_sysid7 'Imp' INTO lv_syrec7 SEPARATED BY space. "#EC NOTEXT
1868
1869 CONCATENATE lv_sysid1 '(Cr Date)' INTO lv_sydat1 SEPARATED BY space. "#EC NOTEXT
1870 CONCATENATE lv_sysid2 '(Imp Date)' INTO lv_sydat2 SEPARATED BY space. "#EC NOTEXT
1871 CONCATENATE lv_sysid3 '(Imp Date)' INTO lv_sydat3 SEPARATED BY space. "#EC NOTEXT
1872 CONCATENATE lv_sysid4 '(Imp Date)' INTO lv_sydat4 SEPARATED BY space. "#EC NOTEXT
1873 CONCATENATE lv_sysid5 '(Imp Date)' INTO lv_sydat5 SEPARATED BY space. "#EC NOTEXT
1874 CONCATENATE lv_sysid6 '(Imp Date)' INTO lv_sydat6 SEPARATED BY space. "#EC NOTEXT
1875 CONCATENATE lv_sysid7 '(Imp Date)' INTO lv_sydat7 SEPARATED BY space. "#EC NOTEXT
1876
1877 CONCATENATE lv_sysid1 '(Cr Time)' INTO lv_sytim1 SEPARATED BY space. "#EC NOTEXT
1878 CONCATENATE lv_sysid2 '(Imp Time)' INTO lv_sytim2 SEPARATED BY space. "#EC NOTEXT
1879 CONCATENATE lv_sysid3 '(Imp Time)' INTO lv_sytim3 SEPARATED BY space. "#EC NOTEXT
1880 CONCATENATE lv_sysid4 '(Imp Time)' INTO lv_sytim4 SEPARATED BY space. "#EC NOTEXT
1881 CONCATENATE lv_sysid5 '(Imp Time)' INTO lv_sytim5 SEPARATED BY space. "#EC NOTEXT
1882 CONCATENATE lv_sysid6 '(Imp Time)' INTO lv_sytim6 SEPARATED BY space. "#EC NOTEXT
1883 CONCATENATE lv_sysid7 '(Imp Time)' INTO lv_sytim7 SEPARATED BY space. "#EC NOTEXT
1884
1885 CONCATENATE lv_sysid2 '(Seq.)' INTO lv_syseq2 SEPARATED BY space. "#EC NOTEXT
1886 CONCATENATE lv_sysid3 '(Seq.)' INTO lv_syseq3 SEPARATED BY space. "#EC NOTEXT
1887 CONCATENATE lv_sysid4 '(Seq.)' INTO lv_syseq4 SEPARATED BY space. "#EC NOTEXT
1888 CONCATENATE lv_sysid5 '(Seq.)' INTO lv_syseq5 SEPARATED BY space. "#EC NOTEXT
1889 CONCATENATE lv_sysid6 '(Seq.)' INTO lv_syseq6 SEPARATED BY space. "#EC NOTEXT
1890 CONCATENATE lv_sysid7 '(Seq.)' INTO lv_syseq7 SEPARATED BY space. "#EC NOTEXT
1891
1892 IF cb_trseq IS NOT INITIAL.
1893 CLEAR lv_check.
1894 ELSE. " ELSE -> IF cb_trseq IS NOT INITIAL
1895 lv_check = 'X'.
1896 ENDIF. " IF cb_trseq IS NOT INITIAL
1897
1898* Populate the Field Catalog
1899 PERFORM f_field_catalog USING:
1900 'I_OUTTAB' 'TRKORR' text-006 '20' '' c_alv_emph_dark_blue '', "MOD001+
1901 'I_OUTTAB' 'AS4TEXT' text-007 '60' '' c_alv_emph_light_blue '', "MOD001+
1902 'I_OUTTAB' 'NAME_TEXT' text-008 '80' '' '' '',
1903 'I_OUTTAB' 'AS4USER' text-009 '12' c_check '' '', "MOD001+
1904 'I_OUTTAB' 'TRSTATUS' text-010 '60' '' '' 'C', "MOD001+
1905 'I_OUTTAB' 'TRFUNCTION' text-011 '10' '' '' 'C',
1906 'I_OUTTAB' 'ENTRPISE_STR' text-053 '10' '' '' 'C',
1907 'I_OUTTAB' 'SY_ID2_ICON' lv_syrec2 '4' '' '' 'C',
1908 'I_OUTTAB' 'SY_ID3_ICON' lv_syrec3 '4' '' '' 'C',
1909 'I_OUTTAB' 'SY_ID4_ICON' lv_syrec4 '4' '' '' 'C',
1910 'I_OUTTAB' 'SY_ID5_ICON' lv_syrec5 '4' '' '' 'C',
1911 'I_OUTTAB' 'SY_ID6_ICON' lv_syrec6 '4' '' '' 'C',
1912 'I_OUTTAB' 'SY_ID7_ICON' lv_syrec7 '4' '' '' 'C',
1913 'I_OUTTAB' 'PROJ_ID' text-054 '32' '' '' 'C',
1914 'I_OUTTAB' 'PROJ_CTS' text-055 '20' '' '' 'C',
1915 'I_OUTTAB' 'PROJ_DESC' text-056 '60' '' '' 'C',
1916 'I_OUTTAB' 'TPTDES_STED' text-048 '8' '' c_alv_emph_dark_blue '',
1917 'I_OUTTAB' 'TPTDES_STE2' text-050 '8' '' c_alv_emph_dark_blue '',
1918 'I_OUTTAB' 'TPTDES_LAST' text-049 '8' '' c_alv_emph_dark_blue '',
1919 'I_OUTTAB' 'SY_ID1_DATE' lv_sydat1 '10' c_check '' '',
1920 'I_OUTTAB' 'SY_ID2_DATE' lv_sydat2 '10' '' '' '',
1921 'I_OUTTAB' 'SY_ID3_DATE' lv_sydat3 '10' '' '' '',
1922 'I_OUTTAB' 'SY_ID4_DATE' lv_sydat4 '10' '' '' '',
1923 'I_OUTTAB' 'SY_ID5_DATE' lv_sydat5 '10' '' '' '',
1924 'I_OUTTAB' 'SY_ID6_DATE' lv_sydat6 '10' '' '' '',
1925 'I_OUTTAB' 'SY_ID7_DATE' lv_sydat7 '10' '' '' '',
1926 'I_OUTTAB' 'SY_ID1_TIME' lv_sytim1 '8' c_check '' '', "MOD001+
1927 'I_OUTTAB' 'SY_ID2_TIME' lv_sytim2 '8' c_check '' '', "MOD001+
1928 'I_OUTTAB' 'SY_ID3_TIME' lv_sytim3 '8' c_check '' '', "MOD001+
1929 'I_OUTTAB' 'SY_ID4_TIME' lv_sytim4 '8' c_check '' '', "MOD001+
1930 'I_OUTTAB' 'SY_ID5_TIME' lv_sytim5 '8' c_check '' '', "MOD001+
1931 'I_OUTTAB' 'SY_ID6_TIME' lv_sytim6 '8' c_check '' '', "MOD001+
1932 'I_OUTTAB' 'SY_ID7_TIME' lv_sytim7 '8' c_check '' '', "MOD001+
1933
1934 'I_OUTTAB' 'SY_ID2_SEQN' lv_syseq2 '8' lv_check '' '', "MOD001+
1935 'I_OUTTAB' 'SY_ID3_SEQN' lv_syseq3 '8' lv_check '' '', "MOD001+
1936 'I_OUTTAB' 'SY_ID4_SEQN' lv_syseq4 '8' lv_check '' '', "MOD001+
1937 'I_OUTTAB' 'SY_ID5_SEQN' lv_syseq5 '8' lv_check '' '', "MOD001+
1938 'I_OUTTAB' 'SY_ID6_SEQN' lv_syseq6 '8' lv_check '' '', "MOD001+
1939 'I_OUTTAB' 'SY_ID7_SEQN' lv_syseq7 '8' c_check '' ''. "MOD001+
1940
1941
1942ENDFORM. " F_FILL_FIELDCATALOG
1943*&---------------------------------------------------------------------*
1944*& Form F_FIELD_CATALOG
1945*&---------------------------------------------------------------------*
1946* Populate the fieldcatlog
1947*----------------------------------------------------------------------*
1948FORM f_field_catalog USING fp_table TYPE any
1949 fp_field TYPE slis_fieldname
1950 fp_seltxt TYPE scrtext_l " Long Field Label
1951 fp_outlen TYPE outputlen " Output Length
1952 fp_no_out TYPE xfeld " X = contained in field list, but not displayed
1953 fp_emphasize TYPE char4 " Emphasize of type CHAR4
1954 fp_just TYPE c. " Just of type Character
1955
1956 DATA: lwa_fieldcat TYPE slis_fieldcat_alv. "Work area for Field catlog
1957* DATA: lw_comp TYPE abap_compdescr, "$001++
1958* lv_field TYPE abap_compname, "$001++
1959* lw_outtab TYPE ty_outtab.
1960* FIELD-SYMBOLS: <lfs_outtab> TYPE ty_outtab, "$001++
1961* <lfs_fieldcat> TYPE slis_fieldcat_alv, "$001++
1962* <lfs>, "$001++
1963* <lfs1>. "$001++
1964
1965* CLEAR: lv_field, lw_outtab." lw_comp. "$001++
1966 CLEAR : lwa_fieldcat.
1967
1968* READ TABLE i_details INTO lw_comp WITH KEY name = fp_field. "$001++
1969* IF sy-subrc EQ 0.
1970* ASSIGN lw_comp-name TO <lfs>. "$001++
1971* SORT i_outtab BY (<lfs>) DESCENDING. "$001++
1972* CONCATENATE 'LW_OUTTAB' '-' <lfs> INTO lv_field. "$001++
1973* ASSIGN (lv_field) TO <lfs1>. "$001++
1974* READ TABLE i_outtab INTO lw_outtab INDEX 1 TRANSPORTING (<lfs>). "$001++
1975* IF sy-subrc = 0 AND <lfs1> IS NOT INITIAL. "$001++
1976* Increment the Column Position
1977 g_colpos = g_colpos + 1 . "$001++
1978
1979 lwa_fieldcat-tabname = fp_table. "$001++
1980 lwa_fieldcat-fieldname = fp_field. "$001++
1981 lwa_fieldcat-seltext_l = fp_seltxt. "$001++
1982 lwa_fieldcat-col_pos = g_colpos. "$001++
1983 lwa_fieldcat-outputlen = fp_outlen. "$001++
1984 lwa_fieldcat-emphasize = fp_emphasize. "$001++
1985 lwa_fieldcat-just = fp_just.
1986 lwa_fieldcat-no_out = fp_no_out.
1987 IF p_sy_id2 IS INITIAL AND ( fp_field = 'SY_ID2_ICON' OR
1988 fp_field = 'SY_ID2_DATE' OR
1989 fp_field = 'SY_ID2_TIME' ).
1990 lwa_fieldcat-no_out = 'X'.
1991 ELSEIF p_sy_id3 IS INITIAL AND ( fp_field = 'SY_ID3_ICON' OR
1992 fp_field = 'SY_ID3_DATE' OR
1993 fp_field = 'SY_ID3_TIME' ).
1994 lwa_fieldcat-no_out = 'X'.
1995 ELSEIF p_sy_id4 IS INITIAL AND ( fp_field = 'SY_ID4_ICON' OR
1996 fp_field = 'SY_ID4_DATE' OR
1997 fp_field = 'SY_ID4_TIME' ).
1998 lwa_fieldcat-no_out = 'X'.
1999 ELSEIF p_sy_id5 IS INITIAL AND ( fp_field = 'SY_ID5_ICON' OR
2000 fp_field = 'SY_ID5_DATE' OR
2001 fp_field = 'SY_ID5_TIME' ).
2002 lwa_fieldcat-no_out = 'X'.
2003 ELSEIF p_sy_id6 IS INITIAL AND ( fp_field = 'SY_ID6_ICON' OR
2004 fp_field = 'SY_ID6_DATE' OR
2005 fp_field = 'SY_ID6_TIME' ).
2006 lwa_fieldcat-no_out = 'X'.
2007 ELSEIF p_sy_id7 IS INITIAL AND ( fp_field = 'SY_ID7_ICON' OR
2008 fp_field = 'SY_ID7_DATE' OR
2009 fp_field = 'SY_ID7_TIME' ).
2010 lwa_fieldcat-no_out = 'X'.
2011 ENDIF. " IF p_sy_id2 IS INITIAL AND ( fp_field = 'SY_ID2_ICON' OR
2012 IF fp_field = 'TPTDES_STED' AND ( cb_sstr IS INITIAL OR
2013 p_from EQ '00' OR p_end EQ '00' ).
2014 lwa_fieldcat-no_out = 'X'.
2015 ENDIF. " IF fp_field = 'TPTDES_STED' AND ( cb_sstr IS INITIAL OR
2016 IF fp_field = 'TPTDES_STE2' AND ( cb_sstr IS INITIAL OR
2017 p_from1 EQ '00' OR p_end1 EQ '00' ).
2018 lwa_fieldcat-no_out = 'X'.
2019 ENDIF. " IF fp_field = 'TPTDES_STE2' AND ( cb_sstr IS INITIAL OR
2020 IF fp_field = 'TPTDES_LAST' AND ( cb_sstr IS INITIAL OR
2021 p_last EQ '00' ).
2022 lwa_fieldcat-no_out = 'X'.
2023 ENDIF. " IF fp_field = 'TPTDES_LAST' AND ( cb_sstr IS INITIAL OR
2024
2025 IF fp_field EQ 'TRKORR' OR fp_field EQ 'AS4TEXT'.
2026 lwa_fieldcat-key = 'X'.
2027 ENDIF. " IF fp_field EQ 'TRKORR' OR fp_field EQ 'AS4TEXT'
2028
2029 APPEND lwa_fieldcat TO i_fieldcat. "$001++
2030
2031* ENDIF. "$001++
2032* ENDIF.
2033
2034ENDFORM. " F_FIELD_CATALOG
2035*&---------------------------------------------------------------------*
2036*& Form F_DISPLAY_MAIN_REPORT
2037*&---------------------------------------------------------------------*
2038* Display main report
2039*----------------------------------------------------------------------*
2040FORM f_display_main_report .
2041
2042* Fill fieldcatalog internal table
2043 PERFORM f_fill_fieldcatalog.
2044
2045* Populate ALV Event table
2046 PERFORM f_eventtab_build CHANGING i_events[].
2047
2048* Populate ALV Layout
2049 PERFORM f_populate_layout.
2050
2051* Populate ALV GRID
2052 PERFORM f_display_grid.
2053
2054ENDFORM. " F_DISPLAY_MAIN_REPORT
2055*&---------------------------------------------------------------------*
2056*& Form USER_COMMAND
2057*&---------------------------------------------------------------------*
2058* Subroutine to process the user command
2059*----------------------------------------------------------------------*
2060FORM f_user_command USING fp_i_ucomm TYPE sy-ucomm "#EC CALLED
2061 fp_is_selfield TYPE slis_selfield.
2062
2063 DATA: li_e071 TYPE ty_t_e071, "Local internal table for E071
2064 lwa_outtab TYPE ty_outtab. "Local workarea of final internal table
2065* lv_ref_grid TYPE REF TO cl_gui_alv_grid. "new
2066
2067 REFRESH r_trkorr.
2068
2069 CASE fp_i_ucomm.
2070* Button Get Object List
2071 WHEN 'OBJ_LIST'.
2072 li_e071[] = i_e071[].
2073* Get all the transport detail which has been selected in the report output
2074 LOOP AT i_outtab INTO lwa_outtab WHERE sel EQ c_check.
2075 r_trkorr-sign = 'I'.
2076 r_trkorr-option = 'EQ'.
2077 r_trkorr-low = lwa_outtab-trkorr. "" Selection for import"
2078 APPEND r_trkorr.
2079 CLEAR: r_trkorr.
2080 ENDLOOP. " LOOP AT i_outtab INTO lwa_outtab WHERE sel EQ c_check
2081 DELETE li_e071 WHERE trkorr NOT IN r_trkorr.
2082 SORT li_e071 BY trkorr pgmid object obj_name tabkey text.
2083 DELETE ADJACENT DUPLICATES FROM li_e071 COMPARING ALL FIELDS.
2084* Display the object list for the Requests which has been selected in the report output
2085 IF li_e071[] IS NOT INITIAL.
2086 PERFORM f_display_object_list USING li_e071.
2087 REFRESH: li_e071.
2088 ENDIF. " IF li_e071[] IS NOT INITIAL
2089* Button Download data
2090 WHEN 'DOWN'.
2091 PERFORM f_download_data.
2092* On Double Click, to go to Standard Transport details and Logs
2093 WHEN '&IC1'.
2094 IF fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-TRKORR' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-AS4TEXT' OR
2095 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-NAME_TEXT' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-AS4USER' OR
2096 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-TRSTATUS' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-TRFUNCTION'.
2097 READ TABLE i_outtab INTO lwa_outtab INDEX fp_is_selfield-tabindex.
2098 IF sy-subrc = 0.
2099 CALL FUNCTION 'TR_PRESENT_REQUEST'
2100 EXPORTING
2101 iv_trkorr = lwa_outtab-trkorr
2102 EXCEPTIONS
2103 OTHERS = 1.
2104 ENDIF. " IF sy-subrc = 0
2105 ELSEIF fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID2_ICON' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID3_ICON' OR
2106 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID4_ICON' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID5_ICON' OR
2107 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID6_ICON' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID7_ICON' OR
2108 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID2_DATE' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID2_TIME' OR
2109 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID3_DATE' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID3_TIME' OR
2110 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID4_DATE' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID4_TIME' OR
2111 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID5_DATE' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID5_TIME' OR
2112 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID6_DATE' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID6_TIME' OR
2113 fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID7_DATE' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-SY_ID7_TIME'.
2114 READ TABLE i_outtab INTO lwa_outtab INDEX fp_is_selfield-tabindex.
2115 IF sy-subrc IS INITIAL.
2116 CALL FUNCTION 'TR_LOG_OVERVIEW_REQUEST_REMOTE'
2117 EXPORTING
2118 iv_trkorr = lwa_outtab-trkorr
2119 EXCEPTIONS
2120 OTHERS = 1.
2121 ENDIF. " IF sy-subrc IS INITIAL
2122 ENDIF. " IF fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-TRKORR' OR fp_is_selfield-sel_tab_field EQ 'I_OUTTAB-AS4TEXT' OR
2123
2124 ENDCASE.
2125ENDFORM. " F_USER_COMMAND "#EC CALLED
2126*&---------------------------------------------------------------------*
2127*& Form pf
2128*&---------------------------------------------------------------------*
2129* FOR PF-STATUS WITH USER DEFINED BUTTONS
2130* set the list status; this routine is called in call-back mode
2131* by the list viewer
2132* Copy the STANDARD PF Status 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'
2133* and add Button Object List = 'OBJ_LIST' Icon 'ICON_REPORT_TEMPLATE'
2134* and add Button Download = 'DOWN' Icon 'ICON_EXPORT'
2135*----------------------------------------------------------------------
2136FORM f_set_pf_status USING rt_extab TYPE slis_t_extab. "#EC CALLED
2137
2138 DATA: lw_exclude TYPE slis_extab.
2139 CLEAR: lw_exclude.
2140
2141 IF cb_e071 EQ ' '.
2142* Throw Error
2143* MESSAGE text-e03 TYPE 'S' DISPLAY LIKE 'E'.
2144 lw_exclude-fcode = 'OBJ_LIST'.
2145 APPEND lw_exclude TO rt_extab.
2146 ENDIF. " IF cb_e071 EQ ' '
2147 lw_exclude-fcode = '%PC'.
2148 APPEND lw_exclude TO rt_extab.
2149
2150 SET PF-STATUS 'ZSTATUS_CTS' EXCLUDING rt_extab.
2151
2152ENDFORM. "SET_PF_STATUS
2153*&---------------------------------------------------------------------*
2154*& Form F_GET_ICON
2155*&---------------------------------------------------------------------*
2156* Get the ICON
2157*----------------------------------------------------------------------*
2158FORM f_get_icon USING fp_light TYPE char30 " Get_icon using fp_light of type CHAR30
2159 fp_info TYPE char30 " Info of type CHAR30
2160 fp_flag TYPE c " Flag of type Character
2161 CHANGING fp_icon TYPE edistatusicon. " Status Group
2162
2163 DATA: l_result TYPE edistatusicon. "ICON
2164 IF cb_ligt IS NOT INITIAL OR fp_flag IS NOT INITIAL.
2165* Getting the ICon Code
2166 CALL FUNCTION 'ICON_CREATE'
2167 EXPORTING
2168 name = fp_light
2169 info = fp_info
2170 IMPORTING
2171 result = l_result
2172 EXCEPTIONS
2173 icon_not_found = 1
2174 outputfield_too_short = 2
2175 OTHERS = 3.
2176 IF sy-subrc IS INITIAL.
2177 fp_icon = l_result.
2178 ENDIF. " IF sy-subrc IS INITIAL
2179 ELSE. " ELSE -> IF cb_ligt IS NOT INITIAL OR fp_flag IS NOT INITIAL
2180* Getting the ICon Code
2181 CALL FUNCTION 'ICON_CREATE'
2182 EXPORTING
2183 name = 'ICON_OKAY'
2184 info = 'OK'
2185 add_stdinf = ''
2186 IMPORTING
2187 result = l_result
2188 EXCEPTIONS
2189 icon_not_found = 1
2190 outputfield_too_short = 2
2191 OTHERS = 3.
2192 IF sy-subrc IS INITIAL.
2193 fp_icon = l_result.
2194 ENDIF. " IF sy-subrc IS INITIAL
2195 ENDIF. " IF cb_ligt IS NOT INITIAL OR fp_flag IS NOT INITIAL
2196 IF g_reimp_count GT 1 AND fp_icon IS NOT INITIAL AND cb_treim IS NOT INITIAL.
2197 fp_icon = fp_icon && 'Reimp.' && '(' && g_reimp_count && ')'.
2198 ENDIF. " IF g_reimp_count GT 1 AND fp_icon IS NOT INITIAL AND cb_treim IS NOT INITIAL
2199 CLEAR g_reimp_count.
2200ENDFORM. " F_GET_ICON
2201*&---------------------------------------------------------------------*
2202*& Form F_DISPLAY_OBJECT_LIST
2203*&---------------------------------------------------------------------*
2204* Display the object list
2205*----------------------------------------------------------------------*
2206FORM f_display_object_list USING li_e071 TYPE ty_t_e071.
2207
2208 PERFORM f_fill_fieldcatlog_objlist.
2209 PERFORM f_populate_layout.
2210
2211 g_repid = sy-repid.
2212 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
2213 EXPORTING
2214 i_callback_program = g_repid
2215 is_layout = wa_layout
2216 it_fieldcat = i_fieldcat_obj[]
2217 TABLES
2218 t_outtab = li_e071
2219 EXCEPTIONS
2220 program_error = 1
2221 OTHERS = 2.
2222 IF sy-subrc <> 0.
2223* Error in ALV grid display
2224 MESSAGE 'Error Creating ALV Grid' TYPE 'I'.
2225 LEAVE LIST-PROCESSING.
2226 ENDIF. " IF sy-subrc <> 0
2227ENDFORM. " F_DISPLAY_OBJECT_LIST
2228*&---------------------------------------------------------------------*
2229*& Form F_FILL_FIELDCATLOG_OBJLIST
2230*&---------------------------------------------------------------------*
2231* Populate the fieldcatlog for objectlist
2232*----------------------------------------------------------------------*
2233FORM f_fill_fieldcatlog_objlist .
2234
2235* Refresh the Object List field catalog each time
2236 REFRESH i_fieldcat_obj. "MOD001+
2237
2238* Populate the Field Catlog
2239 PERFORM f_field_catalog_obj USING:
2240 'LI_E071' 'TRKORR' text-006 '20' '' '',
2241 'LI_E071' 'PGMID' text-025 '04' '' '',
2242 'LI_E071' 'OBJECT' text-026 '04' '' '',
2243 'LI_E071' 'OBJ_NAME' text-027 '120' '' c_alv_emph_dark_blue, "MOD001+
2244 'LI_E071' 'TABKEY' text-029 '120' '' c_alv_emph_light_blue, "MOD001+
2245 'LI_E071' 'OBJ_DESC' text-052 '60' '' c_alv_emph_light_blue,
2246 'LI_E071' 'TEXT' text-028 '60' '' ''.
2247
2248ENDFORM. " F_FILL_FIELDCATLOG_OBJLIST
2249*&---------------------------------------------------------------------*
2250*& Form F_EVENTTAB_BUILD
2251*&---------------------------------------------------------------------*
2252* *Populate ALV Event table
2253*----------------------------------------------------------------------*
2254FORM f_eventtab_build CHANGING fp_events TYPE slis_t_event.
2255
2256* Declaration of local data
2257 FIELD-SYMBOLS: <lfs_event> TYPE slis_alv_event.
2258
2259 CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
2260 EXPORTING
2261 i_list_type = 0
2262 IMPORTING
2263 et_events = fp_events
2264 EXCEPTIONS
2265 OTHERS = 1.
2266
2267 READ TABLE fp_events ASSIGNING <lfs_event>
2268 WITH KEY name = slis_ev_user_command.
2269 IF sy-subrc = 0.
2270* Populate the user command event
2271 <lfs_event>-form = c_user_command.
2272 ENDIF. " IF sy-subrc = 0
2273ENDFORM. " F_EVENTTAB_BUILD
2274*&---------------------------------------------------------------------*
2275*& Form F_POPULATE_LAYOUT
2276*&---------------------------------------------------------------------*
2277* Populate the layout
2278*----------------------------------------------------------------------*
2279FORM f_populate_layout .
2280
2281 CLEAR:wa_layout.
2282* Populate the ALV Layout
2283 wa_layout-colwidth_optimize = c_check.
2284 wa_layout-info_fieldname = c_line.
2285 wa_layout-zebra = c_check.
2286
2287ENDFORM. " F_POPULATE_LAYOUT
2288*&---------------------------------------------------------------------*
2289*& Form F_DISPLAY_GRID
2290*&---------------------------------------------------------------------*
2291* reuse_alv_grid_display to display output
2292*----------------------------------------------------------------------*
2293FORM f_display_grid .
2294
2295 wa_layout-box_fieldname = 'SEL'. "Populate the checkbox
2296 g_repid = sy-repid.
2297
2298* Sort final table based on the import dates Greater than from inputs
2299 PERFORM f_sort_import_date_final.
2300
2301 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
2302 EXPORTING
2303 i_callback_program = g_repid
2304 i_callback_user_command = c_user_command
2305 is_layout = wa_layout
2306 it_fieldcat = i_fieldcat[]
2307 i_callback_pf_status_set = 'F_SET_PF_STATUS'
2308 it_events = i_events[]
2309 i_save = 'A'
2310 is_variant = g_alv_variant
2311 TABLES
2312 t_outtab = i_outtab
2313 EXCEPTIONS
2314 program_error = 1
2315 OTHERS = 2.
2316 IF sy-subrc <> 0.
2317* Error in ALV grid display
2318 MESSAGE 'Error Creating ALV Grid' TYPE 'I'.
2319 LEAVE LIST-PROCESSING.
2320 ENDIF. " IF sy-subrc <> 0
2321
2322ENDFORM. " F_DISPLAY_GRID
2323*&---------------------------------------------------------------------*
2324*& Form F_MODIFY_SELECTION_SCREEN
2325*&---------------------------------------------------------------------*
2326* Modify the selection screen
2327*----------------------------------------------------------------------*
2328FORM f_modify_selection_screen .
2329
2330 syid1 = text-038. "Dev Sys
2331 syid2 = text-039. "Sys 2
2332 syid3 = text-040. "Sys 3
2333 syid4 = text-041. "Sys 4
2334 syid5 = text-042. "Sys 5
2335 syid6 = text-043. "Sys 6
2336 syid7 = text-044. "Sys 7
2337 subsf = text-f01. "Tpt Desc Substring1 START Char No.
2338 subse = text-f02. "END Char No.
2339 subsl = text-f03. "Show last X chars of Desc.
2340 subsf1 = text-f04. "Tpt Desc Substring2 START Char No.
2341 subse1 = text-f02. "END Char No.
2342
2343 IF cb_e071 IS INITIAL.
2344 CLEAR cb_etab.
2345 ENDIF. " IF cb_e071 IS INITIAL
2346
2347 LOOP AT SCREEN.
2348* If checkbox is not ticked, the whole of this section should be greyed out
2349 IF cb_e071 IS INITIAL AND
2350 screen-group1 = c_scrn_gr1.
2351 screen-invisible = 1.
2352 screen-active = 0.
2353 MODIFY SCREEN.
2354 ENDIF. " IF cb_e071 IS INITIAL AND
2355 IF ( cb_sstr IS INITIAL OR cb_show IS INITIAL ) AND
2356 screen-group1 = 'SST'.
2357 screen-invisible = 1.
2358 screen-active = 0.
2359 MODIFY SCREEN.
2360 ENDIF. " IF ( cb_sstr IS INITIAL OR cb_show IS INITIAL ) AND
2361
2362 IF screen-name = 'SUBSF' OR
2363 screen-name = 'SUBSE' OR
2364 screen-name = 'SUBSF1' OR
2365 screen-name = 'SUBSE1' OR
2366 screen-name = 'SUBSL'.
2367 IF cb_sstr IS INITIAL OR cb_show IS INITIAL.
2368 screen-invisible = 1.
2369 screen-active = 0.
2370 MODIFY SCREEN.
2371 ENDIF. " IF cb_sstr IS INITIAL OR cb_show IS INITIAL
2372 ENDIF. " IF screen-name = 'SUBSF' OR
2373
2374 IF cb_etab IS INITIAL AND
2375 screen-group1 = c_scrn_gr3.
2376 screen-invisible = 1.
2377 screen-active = 0.
2378 MODIFY SCREEN.
2379 ENDIF. " IF cb_etab IS INITIAL AND
2380
2381 IF screen-name = 'CB_ETAB'.
2382 IF cb_e071 = 'X'.
2383 screen-input = 1.
2384 MODIFY SCREEN.
2385 ELSE. " ELSE -> IF cb_e071 = 'X'
2386 screen-input = 0.
2387 MODIFY SCREEN.
2388 ENDIF. " IF cb_e071 = 'X'
2389 ENDIF. " IF screen-name = 'CB_ETAB'
2390
2391* Disable the system and clint detail
2392* -----------------------------------
2393 IF screen-group1 = c_scrn_gr2.
2394 screen-input = 0.
2395 MODIFY SCREEN.
2396 ENDIF. " IF screen-group1 = c_scrn_gr2
2397
2398* Start of comments MOD02-
2399*** Import Dates
2400*** ------------
2401** IF rb_v2 EQ 'X'.
2402** IF screen-name = 'P_IDATE3' OR
2403** screen-name = 'P_TDATE3' OR
2404** screen-name = 'P_IDATE4' OR
2405** screen-name = 'P_TDATE4' OR
2406** screen-name = 'P_IDATE5' OR
2407** screen-name = 'P_TDATE5' OR
2408** screen-name = 'P_IDATE6' OR
2409** screen-name = 'P_TDATE6' OR
2410** screen-name = 'P_IDATE7' OR
2411** screen-name = 'P_TDATE7'.
2412** screen-input = 0.
2413** MODIFY SCREEN.
2414** ENDIF. " IF screen-name = 'P_IDATE3' OR
2415** ELSEIF rb_v3 EQ 'X'.
2416** IF screen-name = 'P_IDATE2' OR
2417** screen-name = 'P_TDATE2' OR
2418** screen-name = 'P_IDATE4' OR
2419** screen-name = 'P_TDATE4' OR
2420** screen-name = 'P_IDATE5' OR
2421** screen-name = 'P_TDATE5' OR
2422** screen-name = 'P_IDATE6' OR
2423** screen-name = 'P_TDATE6' OR
2424** screen-name = 'P_IDATE7' OR
2425** screen-name = 'P_TDATE7'.
2426** screen-input = 0.
2427** MODIFY SCREEN.
2428** ENDIF. " IF screen-name = 'P_IDATE2' OR
2429** ELSEIF rb_v4 EQ 'X'.
2430** IF screen-name = 'P_IDATE2' OR
2431** screen-name = 'P_TDATE2' OR
2432** screen-name = 'P_IDATE3' OR
2433** screen-name = 'P_TDATE3' OR
2434** screen-name = 'P_IDATE5' OR
2435** screen-name = 'P_TDATE5' OR
2436** screen-name = 'P_IDATE6' OR
2437** screen-name = 'P_TDATE6' OR
2438** screen-name = 'P_IDATE7' OR
2439** screen-name = 'P_TDATE7'.
2440** screen-input = 0.
2441** MODIFY SCREEN.
2442** ENDIF. " IF screen-name = 'P_IDATE2' OR
2443** ELSEIF rb_v5 EQ 'X'.
2444** IF screen-name = 'P_IDATE2' OR
2445** screen-name = 'P_TDATE2' OR
2446** screen-name = 'P_IDATE3' OR
2447** screen-name = 'P_TDATE3' OR
2448** screen-name = 'P_IDATE4' OR
2449** screen-name = 'P_TDATE4' OR
2450** screen-name = 'P_IDATE6' OR
2451** screen-name = 'P_TDATE6' OR
2452** screen-name = 'P_IDATE7' OR
2453** screen-name = 'P_TDATE7'.
2454** screen-input = 0.
2455** MODIFY SCREEN.
2456** ENDIF. " IF screen-name = 'P_IDATE2' OR
2457** ELSEIF rb_v6 EQ 'X'.
2458** IF screen-name = 'P_IDATE2' OR
2459** screen-name = 'P_TDATE2' OR
2460** screen-name = 'P_IDATE3' OR
2461** screen-name = 'P_TDATE3' OR
2462** screen-name = 'P_IDATE4' OR
2463** screen-name = 'P_TDATE4' OR
2464** screen-name = 'P_IDATE5' OR
2465** screen-name = 'P_TDATE5' OR
2466** screen-name = 'P_IDATE7' OR
2467** screen-name = 'P_TDATE7'.
2468** screen-input = 0.
2469** MODIFY SCREEN.
2470** ENDIF. " IF screen-name = 'P_IDATE2' OR
2471** ELSEIF rb_v7 EQ 'X'.
2472** IF screen-name = 'P_IDATE2' OR
2473** screen-name = 'P_TDATE2' OR
2474** screen-name = 'P_IDATE3' OR
2475** screen-name = 'P_TDATE3' OR
2476** screen-name = 'P_IDATE4' OR
2477** screen-name = 'P_TDATE4' OR
2478** screen-name = 'P_IDATE5' OR
2479** screen-name = 'P_TDATE5' OR
2480** screen-name = 'P_IDATE6' OR
2481** screen-name = 'P_TDATE6'.
2482** screen-input = 0.
2483** MODIFY SCREEN.
2484** ENDIF. " IF screen-name = 'P_IDATE2' OR
2485** ENDIF. " IF rb_v2 EQ 'X'
2486
2487* End of comments MOD02-
2488
2489* RFC
2490* ---
2491 IF rb_l2 EQ 'X'.
2492 IF screen-name = 'P_RFCD2'.
2493* screen-input = 0.
2494 screen-invisible = 1.
2495 screen-active = 0.
2496 MODIFY SCREEN.
2497 ENDIF. " IF screen-name = 'P_RFCD2'
2498 ENDIF. " IF rb_l2 EQ 'X'
2499 IF rb_r2 EQ 'X'.
2500 IF screen-name = 'P_RFCD2'.
2501 screen-input = 1.
2502 MODIFY SCREEN.
2503 ENDIF. " IF screen-name = 'P_RFCD2'
2504 ENDIF. " IF rb_r2 EQ 'X'
2505 IF rb_l3 EQ 'X'.
2506 IF screen-name = 'P_RFCD3'.
2507* screen-input = 0.
2508 screen-invisible = 1.
2509 screen-active = 0.
2510 MODIFY SCREEN.
2511 ENDIF. " IF screen-name = 'P_RFCD3'
2512 ENDIF. " IF rb_l3 EQ 'X'
2513 IF rb_r3 EQ 'X'.
2514 IF screen-name = 'P_RFCD3'.
2515 screen-input = 1.
2516 MODIFY SCREEN.
2517 ENDIF. " IF screen-name = 'P_RFCD2' OR
2518 ENDIF. " IF rb_r3 EQ 'X'
2519 IF rb_l4 EQ 'X'.
2520 IF screen-name = 'P_RFCD4'.
2521* screen-input = 0.
2522 screen-invisible = 1.
2523 screen-active = 0.
2524 MODIFY SCREEN.
2525 ENDIF. " IF screen-name = 'P_RFCD4'
2526 ENDIF. " IF rb_l4 EQ 'X'
2527 IF rb_r4 EQ 'X'.
2528 IF screen-name = 'P_RFCD4'.
2529 screen-input = 1.
2530 MODIFY SCREEN.
2531 ENDIF. " IF screen-name = 'P_RFCD2' OR
2532 ENDIF. " IF rb_r4 EQ 'X'
2533 IF rb_l5 EQ 'X'.
2534 IF screen-name = 'P_RFCD5'.
2535* screen-input = 0.
2536 screen-invisible = 1.
2537 screen-active = 0.
2538 MODIFY SCREEN.
2539 ENDIF. " IF screen-name = 'P_RFCD5'
2540 ENDIF. " IF rb_l5 EQ 'X'
2541 IF rb_r5 EQ 'X'.
2542 IF screen-name = 'P_RFCD5'.
2543 screen-input = 1.
2544 MODIFY SCREEN.
2545 ENDIF. " IF screen-name = 'P_RFCD2' OR
2546 ENDIF. " IF rb_r5 EQ 'X'
2547 IF rb_l6 EQ 'X'.
2548 IF screen-name = 'P_RFCD6'.
2549* screen-input = 0.
2550 screen-invisible = 1.
2551 screen-active = 0.
2552 MODIFY SCREEN.
2553 ENDIF. " IF screen-name = 'P_RFCD6'
2554 ENDIF. " IF rb_l6 EQ 'X'
2555 IF rb_r6 EQ 'X'.
2556 IF screen-name = 'P_RFCD6'.
2557 screen-input = 1.
2558 MODIFY SCREEN.
2559 ENDIF. " IF screen-name = 'P_RFCD2' OR
2560 ENDIF. " IF rb_r6 EQ 'X'
2561 IF rb_l7 EQ 'X'.
2562 IF screen-name = 'P_RFCD7'.
2563* screen-input = 0.
2564 screen-invisible = 1.
2565 screen-active = 0.
2566 MODIFY SCREEN.
2567 ENDIF. " IF screen-name = 'P_RFCD7'
2568 ENDIF. " IF rb_l7 EQ 'X'
2569 IF rb_r7 EQ 'X'.
2570 IF screen-name = 'P_RFCD7'.
2571 screen-input = 1.
2572 MODIFY SCREEN.
2573 ENDIF. " IF screen-name = 'P_RFCD2' OR
2574 ENDIF. " IF rb_r7 EQ 'X'
2575
2576 IF cb_show IS INITIAL.
2577 IF ( screen-group1 = 'HID' OR
2578 screen-group1 = 'ZR' OR
2579 screen-group1 = 'MI2' OR
2580 screen-group1 = 'ZZ' ).
2581 screen-invisible = 1.
2582 screen-active = 0.
2583 MODIFY SCREEN.
2584 ENDIF. " IF ( screen-group1 = 'HID' OR
2585 ENDIF. " IF cb_show IS INITIAL
2586
2587 CLEAR screen.
2588 ENDLOOP. " LOOP AT SCREEN
2589
2590ENDFORM. " F_MODIFY_SELECTION_SCREEN
2591*&---------------------------------------------------------------------*
2592*& Form F_FIELD_CATALOG2
2593*&---------------------------------------------------------------------*
2594* Populate the fieldcatlog for objectlist
2595*----------------------------------------------------------------------*
2596FORM f_field_catalog_obj USING fp_table TYPE any
2597 fp_field TYPE slis_fieldname
2598 fp_seltxt TYPE scrtext_l " Long Field Label
2599 fp_outlen TYPE outputlen " Output Length
2600 fp_no_out TYPE xfeld "MOD001+
2601 fp_emphasize TYPE char4. "MOD001+
2602
2603 DATA: lwa_fieldcat TYPE slis_fieldcat_alv. "Work area for Field catlog
2604
2605 CLEAR : lwa_fieldcat .
2606
2607* Increment the Column Position
2608 g_colpos = g_colpos + 1 .
2609
2610 lwa_fieldcat-tabname = fp_table.
2611 lwa_fieldcat-fieldname = fp_field.
2612 lwa_fieldcat-seltext_l = fp_seltxt.
2613 lwa_fieldcat-col_pos = g_colpos.
2614 lwa_fieldcat-outputlen = fp_outlen.
2615
2616 lwa_fieldcat-no_out = fp_no_out. "MOD001+
2617 lwa_fieldcat-emphasize = fp_emphasize. "MOD001+
2618
2619 APPEND lwa_fieldcat TO i_fieldcat_obj.
2620
2621ENDFORM. " F_FIELD_CATALOG2
2622*&---------------------------------------------------------------------*
2623*& Form F_GET_DATE_TIME
2624*&---------------------------------------------------------------------*
2625* Get the import date and time of the CTS
2626*----------------------------------------------------------------------*
2627FORM f_get_date_time USING fp_sy_cl TYPE symandt " Client ID
2628 fp_rfc_check TYPE c " Rfc_check of type Character
2629 fp_rfcdest TYPE tc70-ssfdest " Logical Destination (Specified in Function Call)
2630 CHANGING fp_lfs_systems TYPE ctslg_system
2631 fp_lwa_outtab_date TYPE sy-datum " ABAP System Field: Current Date of Application Server
2632 fp_lwa_outtab_time TYPE sy-uzeit " ABAP System Field: Current Time of Application Server
2633 fp_lwa_outtab_icon TYPE edistatusicon " Status Group
2634 fp_lwa_outtab_trkorr TYPE trkorr. " Request/Task
2635
2636 FIELD-SYMBOLS: <lfs_step> TYPE ctslg_step, "Client detail in the cofile
2637 <lfs_action> TYPE ctslg_action. "Date and time detail in the cofile
2638 DATA: li_steps TYPE ctslg_steps, "internal table for Client detail
2639 li_actions TYPE ctslg_actions. "internal table for import date and time
2640 DATA: li_tscofil TYPE tr_cofilines,
2641 lw_tscofil TYPE tstrfcofil, " Logical Contents of cofiles Files: Lines
2642 lw_actions TYPE ctslg_action,
2643 lv_sysname TYPE tmscsys-sysnam, " TMS: System Name
2644 lw_rfc_final TYPE ty_e070_rfc.
2645 REFRESH: li_steps, li_tscofil.
2646 CLEAR: lw_tscofil, lw_actions, lv_sysname, lw_rfc_final, g_reimp_count.
2647 li_steps = fp_lfs_systems-steps.
2648* Skip some of the transport function
2649 DELETE li_steps WHERE stepid IN r_func.
2650
2651 IF fp_rfc_check IS INITIAL. " AND fp_rfcdest IS INITIAL.
2652* Get the Import date and time
2653 IF li_steps[] IS NOT INITIAL.
2654
2655 READ TABLE li_steps ASSIGNING <lfs_step> WITH KEY clientid = fp_sy_cl
2656 stepid = 'I'.
2657 IF sy-subrc NE 0. "MOD01+
2658 READ TABLE li_steps ASSIGNING <lfs_step> WITH KEY clientid = space "MOD01+
2659 stepid = 'I'. "MOD01+
2660 ENDIF. " IF sy-subrc NE 0
2661 IF sy-subrc IS INITIAL.
2662 REFRESH: li_actions.
2663 li_actions = <lfs_step>-actions.
2664 LOOP AT li_actions ASSIGNING <lfs_action>.
2665
2666 ENDLOOP. " LOOP AT li_actions ASSIGNING <lfs_action>
2667 DESCRIBE TABLE li_actions LINES g_reimp_count.
2668 IF <lfs_action> IS ASSIGNED.
2669 fp_lwa_outtab_date = <lfs_action>-date.
2670 fp_lwa_outtab_time = <lfs_action>-time.
2671 ENDIF. " IF <lfs_action> IS ASSIGNED
2672* Get the return code for test system
2673 PERFORM f_get_return_code USING fp_lfs_systems-rc
2674 CHANGING fp_lwa_outtab_icon.
2675 ELSE. " ELSE -> IF sy-subrc IS INITIAL
2676 READ TABLE li_steps ASSIGNING <lfs_step> "$001++
2677 WITH KEY clientid = fp_sy_cl "$001++
2678 stepid = '('. "$001++
2679 IF sy-subrc NE 0. "MOD01+
2680 READ TABLE li_steps ASSIGNING <lfs_step> "MOD01+
2681 WITH KEY clientid = space "MOD01+
2682 stepid = '('. "MOD01+
2683 ENDIF. " IF sy-subrc NE 0
2684 IF sy-subrc IS INITIAL. "$001++
2685 lv_sysname = fp_lfs_systems-systemid.
2686 CALL FUNCTION 'TMS_MGR_GET_COFILE'
2687 EXPORTING
2688 iv_sysname = lv_sysname
2689 iv_dirtype = 'T'
2690 iv_trkorr = fp_lwa_outtab_trkorr
2691 iv_read_header = space
2692 TABLES
2693 tt_cofi_lines = li_tscofil
2694 EXCEPTIONS
2695 file_not_found = 1
2696 data_transfer_error = 2
2697 unknown_system = 3
2698 system_not_available = 4
2699 unknown_service = 5
2700 OTHERS = 6.
2701
2702 IF NOT li_tscofil IS INITIAL.
2703
2704 CLEAR: lw_actions, lw_tscofil.
2705 REFRESH: li_actions. "$001++
2706 SORT li_tscofil BY tarsystem tarclient.
2707* READ TABLE li_tscofil INTO lw_tscofil "$001++
2708* WITH KEY tarsystem = lv_sysname
2709* tarclient = fp_sy_cl "$001++
2710* function = 'I'.
2711
2712 LOOP AT li_tscofil INTO lw_tscofil
2713 WHERE tarsystem = lv_sysname
2714 AND tarclient = fp_sy_cl
2715 AND function = 'I'.
2716
2717 lw_actions-date = lw_tscofil-trdate.
2718 lw_actions-time = lw_tscofil-trtime.
2719 lw_actions-rc = lw_tscofil-retcode.
2720 INSERT lw_actions INTO TABLE li_actions.
2721 CLEAR lw_actions.
2722
2723 ENDLOOP. " LOOP AT li_tscofil INTO lw_tscofil
2724
2725 LOOP AT li_actions ASSIGNING <lfs_action>.
2726
2727 ENDLOOP. " LOOP AT li_actions ASSIGNING <lfs_action>
2728 IF sy-subrc EQ 0.
2729 fp_lwa_outtab_date = <lfs_action>-date. "$001++
2730 fp_lwa_outtab_time = <lfs_action>-time. "$001++
2731* Get the return code for test system
2732 CLEAR lw_tscofil.
2733 LOOP AT li_tscofil INTO lw_tscofil WHERE tarsystem = lv_sysname
2734 AND retcode NE 0.
2735 EXIT.
2736 ENDLOOP. " LOOP AT li_tscofil INTO lw_tscofil WHERE tarsystem = lv_sysname
2737 IF sy-subrc EQ 0.
2738 fp_lfs_systems-rc = lw_tscofil-retcode.
2739 ELSE. " ELSE -> IF sy-subrc EQ 0
2740 fp_lfs_systems-rc = 0.
2741 ENDIF. " IF sy-subrc EQ 0
2742 DESCRIBE TABLE li_actions LINES g_reimp_count.
2743 PERFORM f_get_return_code USING fp_lfs_systems-rc "$001++
2744 CHANGING fp_lwa_outtab_icon. "$001++
2745 ENDIF. " IF sy-subrc EQ 0
2746 ENDIF. " IF NOT li_tscofil IS INITIAL
2747 ENDIF. " IF sy-subrc IS INITIAL
2748 ENDIF. " IF sy-subrc IS INITIAL
2749 ENDIF. " IF li_steps[] IS NOT INITIAL
2750
2751 ELSE. " ELSE -> IF fp_rfc_check IS INITIAL
2752* If the RFC is selected
2753 READ TABLE i_rfc_final INTO lw_rfc_final
2754 WITH KEY trkorr = fp_lwa_outtab_trkorr
2755 rfcdest = fp_rfcdest BINARY SEARCH.
2756 IF sy-subrc EQ 0.
2757 fp_lwa_outtab_date = lw_rfc_final-as4date.
2758 fp_lwa_outtab_time = lw_rfc_final-as4time.
2759
2760 DATA: l_result TYPE edistatusicon. "ICON
2761 CLEAR: l_result.
2762
2763* Getting the ICon Code
2764 CALL FUNCTION 'ICON_CREATE'
2765 EXPORTING
2766 name = 'ICON_OKAY'
2767 info = 'Imported' "#EC NOTEXT
2768 add_stdinf = '' "#EC NOTEXT
2769 IMPORTING
2770 result = l_result
2771 EXCEPTIONS
2772 icon_not_found = 1
2773 outputfield_too_short = 2
2774 OTHERS = 3.
2775 IF sy-subrc IS INITIAL.
2776 fp_lwa_outtab_icon = l_result.
2777 ENDIF. " IF sy-subrc IS INITIAL
2778 ENDIF. " IF sy-subrc EQ 0
2779 CLEAR: l_result, lw_rfc_final.
2780
2781 ENDIF. " IF fp_rfc_check IS INITIAL
2782
2783ENDFORM. " F_GET_DATE_TIME
2784*&---------------------------------------------------------------------*
2785*& Form F_REFRESH
2786*&---------------------------------------------------------------------*
2787* Refresh global internal table and workarea.
2788*----------------------------------------------------------------------*
2789FORM f_refresh .
2790
2791 REFRESH: i_e070,
2792 i_e071,
2793 i_e07t,
2794 i_ko100,
2795 i_outtab,
2796 i_download,
2797 i_fieldcat,
2798 i_fieldcat_obj,
2799 i_events.
2800 CLEAR: wa_layout.
2801
2802ENDFORM. " F_REFRESH
2803*&---------------------------------------------------------------------*
2804*& Form F_FILL_SKIP_TRANSPORT_FUNCS
2805*&---------------------------------------------------------------------*
2806* Skip some transport function
2807*----------------------------------------------------------------------*
2808FORM f_fill_skip_transport_funcs .
2809
2810* The foll. values need to be skipped in the transport log to identify
2811* whether the object was imported into the target system.
2812 REFRESH r_func.
2813 r_func-sign = 'I'.
2814 r_func-option = 'EQ'.
2815 r_func-low = '<'. "" Selection for import"
2816 APPEND r_func.
2817 r_func-low = '>'.
2818 APPEND r_func.
2819* r_func-low = '('.
2820* APPEND r_func.
2821 r_func-low = 'p'. "" Request waiting for QA approval"
2822 APPEND r_func.
2823 r_func-low = 'q'. "" QA approval given"
2824 APPEND r_func.
2825
2826ENDFORM. " F_FILL_SKIP_TRANSPORT_FUNCS
2827*&---------------------------------------------------------------------*
2828*& Form F_SET_ALV_VARIANT
2829*&---------------------------------------------------------------------*
2830* Set ALV Variant
2831*----------------------------------------------------------------------*
2832FORM f_set_alv_variant .
2833
2834 IF NOT p_alvvar IS INITIAL.
2835
2836 g_alv_variant-variant = p_alvvar.
2837
2838 CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
2839 EXPORTING
2840 i_save = 'A'
2841 CHANGING
2842 cs_variant = g_alv_variant
2843 EXCEPTIONS
2844 wrong_input = 1
2845 not_found = 2
2846 program_error = 3
2847 OTHERS = 4.
2848 IF sy-subrc <> 0.
2849 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
2850 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
2851 ENDIF. " IF sy-subrc <> 0
2852 ENDIF. " IF NOT p_alvvar IS INITIAL
2853ENDFORM. " F_SET_ALV_VARIANT
2854*&---------------------------------------------------------------------*
2855*& Form F_GET_F4_ALV_VARIANT
2856*&---------------------------------------------------------------------*
2857* F4 help for ALV Variant
2858*----------------------------------------------------------------------*
2859FORM f_get_f4_alv_variant CHANGING fp_alvvar LIKE disvariant-variant. " Layout
2860
2861 g_alv_variant-variant = fp_alvvar.
2862
2863 CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
2864 EXPORTING
2865 is_variant = g_alv_variant
2866 i_save = 'A'
2867 IMPORTING
2868 es_variant = g_alv_variant
2869 EXCEPTIONS
2870 OTHERS = 1.
2871
2872 IF sy-subrc IS NOT INITIAL.
2873 MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
2874 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
2875 ELSE. " ELSE -> IF sy-subrc IS NOT INITIAL
2876 fp_alvvar = g_alv_variant-variant.
2877 ENDIF. " IF sy-subrc IS NOT INITIAL
2878
2879ENDFORM. " F_GET_F4_ALV_VARIANT
2880*&---------------------------------------------------------------------*
2881*& Form F_FILL_REQUEST_TYPE_D_STATUS
2882*&---------------------------------------------------------------------*
2883* Fill the TR Fiunction and Status Ranges
2884*----------------------------------------------------------------------*
2885FORM f_fill_request_type_d_status .
2886
2887 CLEAR s_trfunc.
2888 s_trfunc-sign = 'I'.
2889 s_trfunc-option = 'EQ'.
2890 IF cb_cust EQ 'X'.
2891 s_trfunc-low = 'W'. "Workbench Request
2892 APPEND s_trfunc.
2893 ENDIF. " IF cb_cust EQ 'X'
2894 IF cb_work EQ 'X'.
2895 s_trfunc-low = 'K'. "Customizing Request
2896 APPEND s_trfunc.
2897 ENDIF. " IF cb_work EQ 'X'
2898 IF cb_copy EQ 'X'.
2899 s_trfunc-low = 'T'. "Transport Copies
2900 APPEND s_trfunc.
2901 ENDIF. " IF cb_copy EQ 'X'
2902
2903* CLEAR s_trsts.
2904* s_trsts-sign = 'I'.
2905* s_trsts-option = 'EQ'.
2906* IF cb_mod EQ 'X'.
2907* s_trsts-low = 'D'. "Modifiable
2908* APPEND s_trsts.
2909* ENDIF. " IF cb_mod EQ 'X'
2910* IF cb_rel EQ 'X'.
2911* s_trsts-low = 'R'. "Released
2912* APPEND s_trsts.
2913* ENDIF. " IF cb_rel EQ 'X'
2914
2915ENDFORM. " F_FILL_REQUEST_TYPE_D_STATUS
2916*&---------------------------------------------------------------------*
2917*& Form F_F4_FOR_PROGID
2918*&---------------------------------------------------------------------*
2919* F4 Help Program ID
2920*----------------------------------------------------------------------*
2921* <--P_S_PGMID_LOW text
2922*----------------------------------------------------------------------*
2923FORM f_f4_for_progid CHANGING p_s_pgmid_low.
2924
2925 DATA: lv_display TYPE trboolean, " Boolean
2926 lt_pgmids TYPE TABLE OF ko101. " Program IDs with Description
2927
2928* Object Type Administration in CTS
2929 CALL FUNCTION 'TR_PGMID_TABLE'
2930 TABLES
2931 wt_pgmid_text = lt_pgmids
2932 EXCEPTIONS
2933 OTHERS = 1.
2934
2935 CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
2936 EXPORTING
2937 retfield = 'PGMID'
2938 value_org = 'S'
2939 dynpprog = 'SAPLSCTS_OLE'
2940 dynpnr = '0500'
2941 dynprofield = 'TRE071X-PGMID'
2942 display = lv_display
2943 TABLES
2944 value_tab = lt_pgmids
2945 EXCEPTIONS
2946 parameter_error = 1
2947 no_values_found = 2
2948 OTHERS = 3.
2949
2950ENDFORM. " F_F4_FOR_PROGID
2951*&---------------------------------------------------------------------*
2952*& Form F_SORT_IMPORT_DATE_FINAL
2953*&---------------------------------------------------------------------*
2954* text
2955*----------------------------------------------------------------------*
2956* --> p1 text
2957* <-- p2 text
2958*----------------------------------------------------------------------*
2959FORM f_sort_import_date_final .
2960
2961 DATA: li_out_v2 TYPE ty_t_outtab,
2962 li_out_v3 TYPE ty_t_outtab,
2963 li_out_v4 TYPE ty_t_outtab,
2964 li_out_v5 TYPE ty_t_outtab,
2965 li_out_v6 TYPE ty_t_outtab,
2966 li_out_v7 TYPE ty_t_outtab,
2967 lv_index TYPE sy-tabix. " ABAP System Field: Row Index of Internal Tables
2968
2969 FIELD-SYMBOLS: <lfs_outtab> TYPE ty_outtab,
2970 <lfs_downld> TYPE ty_download.
2971
2972 IF rb_v2 = 'X'.
2973 SORT i_outtab BY sy_id2_date sy_id2_time.
2974 SORT i_download BY sy_id2_date sy_id2_time.
2975 IF p_idate2 IS NOT INITIAL AND p_tdate2 IS INITIAL.
2976 DELETE i_outtab WHERE sy_id2_date LT p_idate2.
2977 DELETE i_download WHERE sy_id2_date LT p_idate2.
2978 ENDIF. " IF p_idate2 IS NOT INITIAL AND p_tdate2 IS INITIAL
2979 IF p_idate2 IS INITIAL AND p_tdate2 IS NOT INITIAL. " MOD02+
2980 DELETE i_outtab WHERE sy_id2_date GT p_tdate2. " MOD02+
2981 DELETE i_download WHERE sy_id2_date GT p_tdate2. " MOD02+
2982 ENDIF. " IF p_idate2 IS INITIAL AND p_tdate2 IS NOT INITIAL " MOD02+
2983 IF p_idate2 IS NOT INITIAL AND p_tdate2 IS NOT INITIAL. " MOD02+
2984 DELETE i_outtab WHERE sy_id2_date NOT BETWEEN p_idate2 AND p_tdate2. " MOD02+
2985 DELETE i_download WHERE sy_id2_date NOT BETWEEN p_idate2 AND p_tdate2. " MOD02+
2986 ENDIF. " IF p_idate2 IS NOT INITIAL AND p_tdate2 IS NOT INITIAL " MOD02+
2987 ELSEIF rb_v3 = 'X'.
2988 SORT i_outtab BY sy_id3_date sy_id3_time.
2989 SORT i_download BY sy_id3_date sy_id3_time.
2990 IF p_idate3 IS NOT INITIAL AND p_tdate3 IS INITIAL.
2991 DELETE i_outtab WHERE sy_id3_date LT p_idate3.
2992 DELETE i_download WHERE sy_id3_date LT p_idate3.
2993 ENDIF. " IF p_idate3 IS NOT INITIAL AND p_tdate3 IS INITIAL
2994 IF p_idate3 IS INITIAL AND p_tdate3 IS NOT INITIAL. " MOD02+
2995 DELETE i_outtab WHERE sy_id3_date GT p_tdate3. " MOD02+
2996 DELETE i_download WHERE sy_id3_date GT p_tdate3. " MOD02+
2997 ENDIF. " IF p_idate3 IS INITIAL AND p_tdate3 IS NOT INITIAL " MOD02+
2998 IF p_idate3 IS NOT INITIAL AND p_tdate3 IS NOT INITIAL. " MOD02+
2999 DELETE i_outtab WHERE sy_id3_date NOT BETWEEN p_idate3 AND p_tdate3. " MOD02+
3000 DELETE i_download WHERE sy_id3_date NOT BETWEEN p_idate3 AND p_tdate3. " MOD02+
3001 ENDIF. " IF p_idate3 IS NOT INITIAL AND p_tdate3 IS NOT INITIAL " MOD02+
3002 ELSEIF rb_v4 = 'X'.
3003 SORT i_outtab BY sy_id4_date sy_id4_time.
3004 SORT i_download BY sy_id4_date sy_id4_time.
3005 IF p_idate4 IS NOT INITIAL AND p_tdate4 IS INITIAL.
3006 DELETE i_outtab WHERE sy_id4_date LT p_idate4.
3007 DELETE i_download WHERE sy_id4_date LT p_idate4.
3008 ENDIF. " IF p_idate4 IS NOT INITIAL AND p_tdate4 IS INITIAL
3009 IF p_idate4 IS INITIAL AND p_tdate4 IS NOT INITIAL. " MOD02+
3010 DELETE i_outtab WHERE sy_id4_date GT p_tdate4. " MOD02+
3011 DELETE i_download WHERE sy_id4_date GT p_tdate4. " MOD02+
3012 ENDIF. " IF p_idate4 IS INITIAL AND p_tdate4 IS NOT INITIAL " MOD02+
3013 IF p_idate4 IS NOT INITIAL AND p_tdate4 IS NOT INITIAL. " MOD02+
3014 DELETE i_outtab WHERE sy_id4_date NOT BETWEEN p_idate4 AND p_tdate4. " MOD02+
3015 DELETE i_download WHERE sy_id4_date NOT BETWEEN p_idate4 AND p_tdate4. " MOD02+
3016 ENDIF. " IF p_idate4 IS NOT INITIAL AND p_tdate4 IS NOT INITIAL " MOD02+
3017 ELSEIF rb_v5 = 'X'.
3018 SORT i_outtab BY sy_id5_date sy_id5_time.
3019 SORT i_download BY sy_id5_date sy_id5_time.
3020 IF p_idate5 IS NOT INITIAL AND p_tdate5 IS INITIAL.
3021 DELETE i_outtab WHERE sy_id5_date LT p_idate5.
3022 DELETE i_download WHERE sy_id5_date LT p_idate5.
3023 ENDIF. " IF p_idate5 IS NOT INITIAL AND p_tdate5 IS INITIAL
3024 IF p_idate5 IS INITIAL AND p_tdate5 IS NOT INITIAL. " MOD02+
3025 DELETE i_outtab WHERE sy_id5_date GT p_tdate5. " MOD02+
3026 DELETE i_download WHERE sy_id5_date GT p_tdate5. " MOD02+
3027 ENDIF. " IF p_idate5 IS INITIAL AND p_tdate5 IS NOT INITIAL " MOD02+
3028 IF p_idate5 IS NOT INITIAL AND p_tdate5 IS NOT INITIAL. " MOD02+
3029 DELETE i_outtab WHERE sy_id5_date NOT BETWEEN p_idate5 AND p_tdate5. " MOD02+
3030 DELETE i_download WHERE sy_id5_date NOT BETWEEN p_idate5 AND p_tdate5. " MOD02+
3031 ENDIF. " IF p_idate5 IS NOT INITIAL AND p_tdate5 IS NOT INITIAL " MOD02+
3032 ELSEIF rb_v6 = 'X'.
3033 SORT i_outtab BY sy_id6_date sy_id6_time.
3034 SORT i_download BY sy_id6_date sy_id6_time.
3035 IF p_idate6 IS NOT INITIAL AND p_tdate6 IS INITIAL.
3036 DELETE i_outtab WHERE sy_id6_date LT p_idate6.
3037 DELETE i_download WHERE sy_id6_date LT p_idate6.
3038 ENDIF. " IF p_idate6 IS NOT INITIAL AND p_tdate6 IS INITIAL
3039 IF p_idate6 IS INITIAL AND p_tdate6 IS NOT INITIAL. " MOD02+
3040 DELETE i_outtab WHERE sy_id6_date GT p_tdate6. " MOD02+
3041 DELETE i_download WHERE sy_id6_date GT p_tdate6. " MOD02+
3042 ENDIF. " IF p_idate6 IS INITIAL AND p_tdate6 IS NOT INITIAL " MOD02+
3043 IF p_idate6 IS NOT INITIAL AND p_tdate6 IS NOT INITIAL. " MOD02+
3044 DELETE i_outtab WHERE sy_id6_date NOT BETWEEN p_idate6 AND p_tdate6. " MOD02+
3045 DELETE i_download WHERE sy_id6_date NOT BETWEEN p_idate6 AND p_tdate6. " MOD02+
3046 ENDIF. " IF p_idate6 IS NOT INITIAL AND p_tdate6 IS NOT INITIAL " MOD02+
3047 ELSEIF rb_v7 = 'X'.
3048 SORT i_outtab BY sy_id7_date sy_id7_time.
3049 SORT i_download BY sy_id7_date sy_id7_time.
3050 IF p_idate7 IS NOT INITIAL AND p_tdate7 IS INITIAL.
3051 DELETE i_outtab WHERE sy_id7_date LT p_idate7.
3052 DELETE i_download WHERE sy_id7_date LT p_idate7.
3053 ENDIF. " IF p_idate7 IS NOT INITIAL AND p_tdate7 IS INITIAL
3054 IF p_idate7 IS INITIAL AND p_tdate7 IS NOT INITIAL. " MOD02+
3055 DELETE i_outtab WHERE sy_id7_date GT p_tdate7. " MOD02+
3056 DELETE i_download WHERE sy_id7_date GT p_tdate7. " MOD02+
3057 ENDIF. " IF p_idate7 IS INITIAL AND p_tdate7 IS NOT INITIAL " MOD02+
3058 IF p_idate7 IS NOT INITIAL AND p_tdate7 IS NOT INITIAL. " MOD02+
3059 DELETE i_outtab WHERE sy_id7_date NOT BETWEEN p_idate7 AND p_tdate7. " MOD02+
3060 DELETE i_download WHERE sy_id7_date NOT BETWEEN p_idate7 AND p_tdate7. " MOD02+
3061 ENDIF. " IF p_idate7 IS NOT INITIAL AND p_tdate7 IS NOT INITIAL " MOD02+
3062 ENDIF. " IF rb_v2 = 'X'
3063*
3064 IF cb_trseq IS NOT INITIAL.
3065
3066 li_out_v2 = i_outtab.
3067 li_out_v3 = i_outtab.
3068 li_out_v4 = i_outtab.
3069 li_out_v5 = i_outtab.
3070 li_out_v6 = i_outtab.
3071 li_out_v7 = i_outtab.
3072
3073 SORT li_out_v2 BY sy_id2_date sy_id2_time.
3074 DELETE li_out_v2 WHERE sy_id2_date IS INITIAL AND
3075 sy_id2_time IS INITIAL.
3076
3077 SORT li_out_v3 BY sy_id3_date sy_id3_time.
3078 DELETE li_out_v3 WHERE sy_id3_date IS INITIAL AND
3079 sy_id3_time IS INITIAL.
3080
3081 SORT li_out_v4 BY sy_id4_date sy_id4_time.
3082 DELETE li_out_v4 WHERE sy_id4_date IS INITIAL AND
3083 sy_id4_time IS INITIAL.
3084
3085 SORT li_out_v5 BY sy_id5_date sy_id5_time.
3086 DELETE li_out_v5 WHERE sy_id5_date IS INITIAL AND
3087 sy_id5_time IS INITIAL.
3088
3089 SORT li_out_v6 BY sy_id6_date sy_id6_time.
3090 DELETE li_out_v6 WHERE sy_id6_date IS INITIAL AND
3091 sy_id6_time IS INITIAL.
3092
3093 SORT li_out_v7 BY sy_id7_date sy_id7_time.
3094 DELETE li_out_v7 WHERE sy_id7_date IS INITIAL AND
3095 sy_id7_time IS INITIAL.
3096
3097 LOOP AT i_outtab ASSIGNING <lfs_outtab>.
3098
3099 READ TABLE i_download ASSIGNING <lfs_downld>
3100 WITH KEY trkorr = <lfs_outtab>-trkorr.
3101 IF sy-subrc EQ 0.
3102 ENDIF. " IF sy-subrc EQ 0
3103
3104 LOOP AT li_out_v2 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr.
3105 IF <lfs_outtab>-sy_id2_date IS NOT INITIAL AND
3106 <lfs_outtab>-sy_id2_time IS NOT INITIAL.
3107 <lfs_outtab>-sy_id2_seqn = sy-tabix.
3108 IF <lfs_downld> IS ASSIGNED.
3109 <lfs_downld>-sy_id2_seqn = <lfs_outtab>-sy_id2_seqn.
3110 ENDIF. " IF <lfs_downld> IS ASSIGNED
3111 ENDIF. " IF <lfs_outtab>-sy_id2_date IS NOT INITIAL AND
3112 EXIT.
3113 ENDLOOP. " LOOP AT li_out_v2 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr
3114 LOOP AT li_out_v3 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr.
3115 IF <lfs_outtab>-sy_id3_date IS NOT INITIAL AND
3116 <lfs_outtab>-sy_id3_time IS NOT INITIAL.
3117 <lfs_outtab>-sy_id3_seqn = sy-tabix.
3118 IF <lfs_downld> IS ASSIGNED.
3119 <lfs_downld>-sy_id3_seqn = <lfs_outtab>-sy_id3_seqn.
3120 ENDIF. " IF <lfs_downld> IS ASSIGNED
3121 ENDIF. " IF <lfs_outtab>-sy_id3_date IS NOT INITIAL AND
3122 EXIT.
3123 ENDLOOP. " LOOP AT li_out_v3 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr
3124 LOOP AT li_out_v4 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr.
3125 IF <lfs_outtab>-sy_id4_date IS NOT INITIAL AND
3126 <lfs_outtab>-sy_id4_time IS NOT INITIAL.
3127 <lfs_outtab>-sy_id4_seqn = sy-tabix.
3128 IF <lfs_downld> IS ASSIGNED.
3129 <lfs_downld>-sy_id4_seqn = <lfs_outtab>-sy_id4_seqn.
3130 ENDIF. " IF <lfs_downld> IS ASSIGNED
3131 ENDIF. " IF <lfs_outtab>-sy_id4_date IS NOT INITIAL AND
3132 EXIT.
3133 ENDLOOP. " LOOP AT li_out_v4 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr
3134 LOOP AT li_out_v5 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr.
3135 IF <lfs_outtab>-sy_id5_date IS NOT INITIAL AND
3136 <lfs_outtab>-sy_id5_time IS NOT INITIAL.
3137 <lfs_outtab>-sy_id5_seqn = sy-tabix.
3138 IF <lfs_downld> IS ASSIGNED.
3139 <lfs_downld>-sy_id5_seqn = <lfs_outtab>-sy_id5_seqn.
3140 ENDIF. " IF <lfs_downld> IS ASSIGNED
3141 ENDIF. " IF <lfs_outtab>-sy_id5_date IS NOT INITIAL AND
3142 EXIT.
3143 ENDLOOP. " LOOP AT li_out_v5 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr
3144 LOOP AT li_out_v6 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr.
3145 IF <lfs_outtab>-sy_id6_date IS NOT INITIAL AND
3146 <lfs_outtab>-sy_id6_time IS NOT INITIAL.
3147 <lfs_outtab>-sy_id6_seqn = sy-tabix.
3148 IF <lfs_downld> IS ASSIGNED.
3149 <lfs_downld>-sy_id6_seqn = <lfs_outtab>-sy_id6_seqn.
3150 ENDIF. " IF <lfs_downld> IS ASSIGNED
3151 ENDIF. " IF <lfs_outtab>-sy_id6_date IS NOT INITIAL AND
3152 EXIT.
3153 ENDLOOP. " LOOP AT li_out_v6 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr
3154 LOOP AT li_out_v7 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr.
3155 IF <lfs_outtab>-sy_id7_date IS NOT INITIAL AND
3156 <lfs_outtab>-sy_id7_time IS NOT INITIAL.
3157 <lfs_outtab>-sy_id7_seqn = sy-tabix.
3158 IF <lfs_downld> IS ASSIGNED.
3159 <lfs_downld>-sy_id7_seqn = <lfs_outtab>-sy_id7_seqn.
3160 ENDIF. " IF <lfs_downld> IS ASSIGNED
3161 ENDIF. " IF <lfs_outtab>-sy_id7_date IS NOT INITIAL AND
3162 EXIT.
3163 ENDLOOP. " LOOP AT li_out_v7 TRANSPORTING NO FIELDS WHERE trkorr = <lfs_outtab>-trkorr
3164 CLEAR lv_index.
3165 ENDLOOP. " LOOP AT i_outtab ASSIGNING <lfs_outtab>
3166
3167 ENDIF. " IF cb_trseq IS NOT INITIAL
3168
3169ENDFORM. " F_SORT_IMPORT_DATE_FINAL
3170*&---------------------------------------------------------------------*
3171*& Form F_DELETE_TRANSPORTS
3172*&---------------------------------------------------------------------*
3173* Delete Obselete Transports
3174*----------------------------------------------------------------------*
3175* <--P_FP_I_E070 text
3176*----------------------------------------------------------------------*
3177FORM f_delete_transports TABLES fp_i_e070 STRUCTURE e070.
3178
3179 PERFORM f_add_deleted_transports USING:
3180 'DE1K911639', "25041 Implement note 1476315 (for ST-PI 2008_1_700 patch 6)
3181 'DE1K913354', "OBBT02-FTM-TCD601 PCA cost planning_defect 4390
3182 'DE1K913358', "printer test
3183 'DE1K914087', "test
3184 'DE1K901378', "OBB1.0-OTD-EDD020-1.1/Update RTI from delivery to purchas
3185 'DE1K908190', "OBB1.0-OTS-TCD018- 1.F/ Sales copy control Hoogwegt
3186 'DE1K908816', "OBB1.0-OTS-TCD018- 1.0F/ Sales copy control Hoogwegt
3187 'DE1K909584', "OBB1.0-IMPL_FSS-FTM-TCD101-GL Account Posting 52
3188 'DE1K909564', "OBB1.0-FTM-TCD101 GL account posting ZHFM FSV DR
3189 'DE1K909509', "OBB1.0-FTM-EDD073-1.0/Update_tranferpricing
3190 'DE1K910222', "OBB1.0-FTM-EDD073-2.0/Update_tranferpricing_correction trans
3191 'DE1K910269', "OBB 1.0-OTD-EDD016-VL10C Variants
3192 'DE1K908387', "OBB1.0-OTD-EDD022-2.0/ZDPU_PLAN Domain Change-Defect#1502
3193 'DE1K910478', "OBB1.0-OTD-EDD022-2.0/ZDPU_PLAN OLD Domain - Defect#1502
3194 'DE1K910603', "OBB1.0-FTM-TCD101 GL account posting PRCTR Validation
3195 'DE1K910607', "OBB1.0-FTM-TCD101 GL account posting PRCTR Validatio
3196 'DE1K910519', "OBB1.0-OTS-TCD014- 1.0F/ SD sales order type ZRRE
3197 'DE1K911592', "Autorisatie - servicedesk
3198 'DE1K911596', "TEST: Minh
3199 'DE1K911594', "Authorization - servicedesk
3200 'DE1K911698', "OBBIKV-OTD_TCD001-0.2/KVT_Enterprise Structure_CC_1060
3201 'DE1K912909', "OBB1.0-AUT-Update (93) New Master Single and Job Roles
3202 'DE1K911676'. "OBBT02-MD--MTD_CDD001_1.0/Material Master
3203
3204
3205* Delete the Set of Obsolete Transports from the O/p List
3206 DELETE fp_i_e070 WHERE trkorr IN r_tr_del.
3207
3208ENDFORM. " F_DELETE_TRANSPORTS
3209*&---------------------------------------------------------------------*
3210*& Form F_ADD_DELETED_TRANSPORTS
3211*&---------------------------------------------------------------------*
3212* text
3213*----------------------------------------------------------------------*
3214* -->P_3159 text
3215*----------------------------------------------------------------------*
3216FORM f_add_deleted_transports USING fp_transport TYPE trkorr. " Request/Task
3217
3218 CLEAR r_tr_del.
3219 r_tr_del-sign = 'I'.
3220 r_tr_del-option = 'EQ'.
3221 r_tr_del-low = fp_transport.
3222 APPEND r_tr_del.
3223
3224ENDFORM. " F_ADD_DELETED_TRANSPORTS
3225*&---------------------------------------------------------------------*
3226*& Form F_BUILD_SELSCR_TXT_SYMBOL
3227*&---------------------------------------------------------------------*
3228* Prepare the text elements & Selection Texts
3229*----------------------------------------------------------------------*
3230FORM f_build_selscr_txt_symbol .
3231
3232 IF sy-title <> c_rep_title .
3233
3234* Bring in the stored texts
3235 READ TEXTPOOL sy-repid INTO t_textpool LANGUAGE sy-langu.
3236
3237* Build the report title
3238 DELETE t_textpool WHERE id = c_report.
3239 CLEAR t_textpool.
3240 MOVE: c_report TO t_textpool-id,
3241 c_rep_title TO t_textpool-entry.
3242 t_textpool-length = strlen( t_textpool-entry ).
3243 APPEND t_textpool.
3244 sy-title = t_textpool-entry.
3245
3246* Build Selection Screen Texts
3247 PERFORM f_build_sel_scr_text USING: 'P_ALVVAR' c_p_alvvar ,
3248 'S_DATE' c_s_date ,
3249 'P_DESC' c_s_desc ,
3250 'S_PROJ' c_s_proj ,
3251 'S_OBJNEM' c_s_objnem ,
3252 'S_OBJTYP' c_s_objtyp ,
3253 'S_PGMID' c_s_pgmid ,
3254 'S_TABNAM' c_s_tabnam ,
3255 'S_TRKORR' c_s_trkorr ,
3256 'S_USER' c_s_user .
3257* Build Text Symbols
3258 PERFORM f_build_text_symbol USING: '001' c_t_001 ,
3259 '002' c_t_002 ,
3260 '003' c_t_003 ,
3261 '004' c_t_004 ,
3262 '005' c_t_005 ,
3263 '006' c_t_006 ,
3264 '007' c_t_007 ,
3265 '008' c_t_008 ,
3266 '009' c_t_009 ,
3267 '010' c_t_010 ,
3268 '011' c_t_011 ,
3269 '012' c_t_012 ,
3270 '013' c_t_013 ,
3271 '014' c_t_014 ,
3272 '015' c_t_015 ,
3273 '016' c_t_016 ,
3274 '017' c_t_017 ,
3275 '018' c_t_018 ,
3276 '019' c_t_019 ,
3277 '020' c_t_020 ,
3278 '021' c_t_021 ,
3279 '022' c_t_022 ,
3280 '023' c_t_023 ,
3281 '024' c_t_024 ,
3282 '025' c_t_025 ,
3283 '026' c_t_026 ,
3284 '027' c_t_027 ,
3285 '028' c_t_028 ,
3286 '029' c_t_029 ,
3287 '030' c_t_030 ,
3288 '031' c_t_031 ,
3289 '032' c_t_032 ,
3290 '033' c_t_033 ,
3291 '034' c_t_034 ,
3292 '035' c_t_035 ,
3293 '036' c_t_036 ,
3294 '037' c_t_037 ,
3295 '038' c_t_038 ,
3296 '039' c_t_039 ,
3297 '040' c_t_040 ,
3298 '041' c_t_041 ,
3299 '042' c_t_042 ,
3300 '043' c_t_043 ,
3301 '044' c_t_044 ,
3302 '045' c_t_045 ,
3303 '046' c_t_046 ,
3304 '047' c_t_047 ,
3305 '048' c_t_048 ,
3306 '049' c_t_049 ,
3307 '050' c_t_050 ,
3308 '051' c_t_051 ,
3309 '052' c_t_052 ,
3310 '053' c_t_053 ,
3311 '054' c_t_054 ,
3312 '055' c_t_055 ,
3313 '056' c_t_056 ,
3314 '057' c_t_060 ,
3315 'C01' c_t_c01 ,
3316 'C02' c_t_c02 ,
3317 'C03' c_t_c03 ,
3318 'C04' c_t_c04 ,
3319 'C05' c_t_c05 ,
3320 'C06' c_t_c06 ,
3321 'C07' c_t_c07 ,
3322 'C08' c_t_c08 ,
3323 'C09' c_t_c09 ,
3324 'C10' c_t_c10 ,
3325 'C11' c_t_c11 ,
3326 'C12' c_t_c12 ,
3327 'C13' c_t_c13 ,
3328 'C14' c_t_057 ,
3329 'C15' c_t_058 ,
3330 'C16' c_t_059 ,
3331 'F01' c_t_f01 ,
3332 'F02' c_t_f02 ,
3333 'F03' c_t_f03 ,
3334 'F04' c_t_f04 ,
3335 'O01' c_t_o01 ,
3336 'T01' c_t_t01 ,
3337 'T02' c_t_t02 ,
3338 'T03' c_t_t03 ,
3339 'S01' c_t_s03 ,
3340 'B01' c_t_b01 ,
3341 'B02' c_t_b02.
3342
3343* Finally, delete the textpool in the database, and insert the one
3344* built up above
3345 DELETE TEXTPOOL sy-repid LANGUAGE sy-langu.
3346 INSERT TEXTPOOL sy-repid FROM t_textpool LANGUAGE sy-langu.
3347 COMMIT WORK.
3348
3349* And re-submit the report
3350 SUBMIT (sy-repid) VIA SELECTION-SCREEN.
3351
3352 ENDIF. " IF sy-title <> c_rep_title
3353
3354ENDFORM. " F_BUILD_SELSCR_TXT_SYMBOL
3355*&---------------------------------------------------------------------*
3356*& Form BUILD_SEL_SCR_TEXT
3357*&---------------------------------------------------------------------*
3358FORM f_build_sel_scr_text USING f_key LIKE textpool-key " Text element key (number/selection name)
3359 f_text TYPE c. " Text of type Character
3360
3361* Add a record in the text pool
3362 CLEAR t_textpool.
3363 MOVE: c_sel_scr TO t_textpool-id,
3364 f_key TO t_textpool-key,
3365 f_text TO t_textpool-entry+8.
3366 t_textpool-length = strlen( t_textpool-entry ).
3367 APPEND t_textpool.
3368
3369ENDFORM. " BUILD_SEL_SCR_TEXT
3370*&---------------------------------------------------------------------*
3371*& Form BUILD_TEXT_SYMBOL
3372*&---------------------------------------------------------------------*
3373FORM f_build_text_symbol USING f_key LIKE textpool-key " Text element key (number/selection name)
3374 f_text TYPE c. " Text of type Character
3375* Add a record in the text pool
3376 CLEAR t_textpool.
3377 MOVE: c_num_text TO t_textpool-id,
3378 f_key TO t_textpool-key,
3379 f_text TO t_textpool-entry.
3380 t_textpool-length = strlen( t_textpool-entry ).
3381 APPEND t_textpool.
3382
3383ENDFORM. " BUILD_TEXT_SYMBOL
3384*&---------------------------------------------------------------------*
3385*& Form F_DOWNLOAD_DATA
3386*&---------------------------------------------------------------------*
3387* Download data to Excel or XML
3388*----------------------------------------------------------------------*
3389FORM f_download_data .
3390
3391 DATA: lv_filename TYPE localfile. " Local file for upload/download
3392* lv_sheetnam TYPE localfile.
3393
3394 DATA: li_file_table TYPE filetable,
3395 lw_file_table TYPE file_table, " file_table
3396 lv_rc TYPE i. " Rc of type Integers
3397* Locale data declaratie
3398 DATA: ll_dom TYPE REF TO if_ixml_element, " Element of an XML Document
3399 lm_document TYPE REF TO if_ixml_document, " XML Document in DOM Representation
3400 l_ixml TYPE REF TO if_ixml, " Interface of Factory Object
3401 lw_string TYPE xstring,
3402 lw_size TYPE i, " Size of type Integers
3403 lt_xml TYPE dcxmllines,
3404 lw_rc LIKE sy-subrc, " ABAP System Field: Return Code of ABAP Statements
3405 xml TYPE dcxmllines,
3406 lv_name TYPE string,
3407 lv_fname TYPE string,
3408
3409 BEGIN OF lt_xml_tab OCCURS 0,
3410 d LIKE LINE OF xml,
3411 END OF lt_xml_tab,
3412 ls_xml_tab LIKE LINE OF lt_xml_tab.
3413
3414 DATA: lv_extension TYPE string,
3415 lv_filter TYPE string.
3416
3417 REFRESH: li_file_table.
3418 CLEAR: lw_file_table, lv_rc, lv_extension, lv_filter.
3419
3420
3421 IF rb_xml = 'X'.
3422 lv_filter = cl_gui_frontend_services=>filetype_xml.
3423 lv_extension = 'xml'.
3424 ELSEIF rb_xls = 'X'.
3425 lv_filter = cl_gui_frontend_services=>filetype_excel.
3426 lv_extension = 'xlsx'.
3427 ENDIF. " IF rb_xml = 'X'
3428
3429 CALL METHOD cl_gui_frontend_services=>file_open_dialog
3430 EXPORTING
3431 window_title = 'Select a XML file to upload' "#EC NOTEXT
3432* default_extension = lv_extension
3433 file_filter = lv_filter
3434 CHANGING
3435 file_table = li_file_table
3436 rc = lv_rc
3437 EXCEPTIONS
3438 file_open_dialog_failed = 1
3439 cntl_error = 2
3440 error_no_gui = 3
3441 not_supported_by_gui = 4
3442 OTHERS = 5.
3443
3444 IF sy-subrc <> 0.
3445 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
3446 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
3447 ELSE. " ELSE -> IF sy-subrc <> 0
3448 IF lv_rc = 1.
3449 READ TABLE li_file_table INTO lw_file_table INDEX 1 .
3450* Radiobutton XML Download
3451 IF rb_xml = 'X'.
3452
3453 lv_fname = lw_file_table-filename.
3454 lv_name = 'Transports'. "#EC NOTEXT
3455
3456 IF NOT i_outtab IS INITIAL.
3457
3458 CLASS if_ixml DEFINITION LOAD. " Interface of Factory Object
3459* Create new document
3460 l_ixml = cl_ixml=>create( ).
3461 CHECK NOT l_ixml IS INITIAL.
3462 lm_document = l_ixml->create_document( ).
3463 CHECK NOT lm_document IS INITIAL.
3464
3465* Source data converted to SAP DOM
3466 CALL FUNCTION 'SDIXML_DATA_TO_DOM'
3467 EXPORTING
3468 name = lv_name
3469 dataobject = i_download
3470 IMPORTING
3471 data_as_dom = ll_dom
3472 CHANGING
3473 document = lm_document
3474 EXCEPTIONS
3475 illegal_name = 1
3476 OTHERS = 2.
3477
3478 CHECK NOT ll_dom IS INITIAL.
3479* structure create.
3480 lw_rc = lm_document->append_child( new_child = ll_dom ).
3481
3482* SAP Data DOM convert binary data to XML
3483 CALL FUNCTION 'SDIXML_DOM_TO_XML'
3484 EXPORTING
3485 document = lm_document
3486 IMPORTING
3487 xml_as_string = lw_string
3488 size = lw_size
3489 TABLES
3490 xml_as_table = lt_xml
3491 EXCEPTIONS
3492 no_document = 1
3493 OTHERS = 2.
3494
3495* Create XML table with only 1 column
3496 LOOP AT lt_xml INTO ls_xml_tab-d.
3497 APPEND ls_xml_tab TO lt_xml_tab.
3498 ENDLOOP. " LOOP AT lt_xml INTO ls_xml_tab-d
3499* Download the data
3500 CALL METHOD cl_gui_frontend_services=>gui_download
3501 EXPORTING
3502 bin_filesize = lw_size
3503 filename = lv_fname
3504 filetype = 'BIN'
3505 CHANGING
3506 data_tab = lt_xml
3507 EXCEPTIONS
3508 file_write_error = 1
3509 no_authority = 5
3510 unknown_error = 6
3511 filesize_not_allowed = 9
3512 access_denied = 15
3513 dp_out_of_memory = 16
3514 disk_full = 17
3515 OTHERS = 24.
3516 IF sy-subrc <> 0.
3517* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
3518* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
3519 ENDIF. " IF sy-subrc <> 0
3520 ENDIF. " IF NOT i_outtab IS INITIAL
3521* DATA: result_xml TYPE STANDARD TABLE OF smum_xmltb,
3522* return TYPE STANDARD TABLE OF bapiret2 .
3523* CALL FUNCTION 'SMUM_XML_PARSE'
3524* EXPORTING
3525* xml_input = lw_string
3526* TABLES
3527* xml_table = result_xml
3528* return = return.
3529* Radiobutton XLS Download
3530 ELSEIF rb_xls = 'X'.
3531 lv_filename = lw_file_table-filename.
3532* lv_sheetnam = 'Transports'. "#EC NOTEXT
3533 PERFORM f_download_in_excel USING lv_filename.
3534
3535 ENDIF. " IF rb_xml = 'X'
3536 ENDIF. " IF lv_rc = 1
3537 ENDIF. " IF sy-subrc <> 0
3538
3539ENDFORM. " F_DOWNLOAD_DATA
3540*&---------------------------------------------------------------------*
3541*& Form F_GET_RFCDEST_RELATED_DATA
3542*&---------------------------------------------------------------------*
3543* text
3544*----------------------------------------------------------------------*
3545* --> p1 text
3546* <-- p2 text
3547*----------------------------------------------------------------------*
3548FORM f_get_rfcdest_related_data .
3549
3550 DATA: l_table TYPE dd02l-tabname, " Table Name
3551 lt_option TYPE TABLE OF rfc_db_opt WITH HEADER LINE, " RFC Table Read: Select Options / WHERE Clause
3552 t_fields TYPE TABLE OF ddshselopt WITH HEADER LINE, " Selection options for value selection with search help
3553 lt_field TYPE TABLE OF rfc_db_fld, " RFC Table Read: Description of Fields to Retrieve
3554 ls_option TYPE rfc_db_opt, " RFC Table Read: Select Options / WHERE Clause
3555 ls_field TYPE rfc_db_fld, " RFC Table Read: Description of Fields to Retrieve
3556 lv_where TYPE string,
3557 lv_lines TYPE i, " Lines of type Integers
3558 lw_rfc_e070 TYPE e070, " Change & Transport System: Header of Requests/Tasks
3559 lw_rfc_final TYPE ty_e070_rfc.
3560 REFRESH: i_rfc_e070, i_rfc_final, lt_option, t_fields.
3561 CLEAR: lv_lines, lv_where, ls_field, ls_option, lw_rfc_e070, lw_rfc_final.
3562
3563* Build the RFC Destination Ranges
3564 IF rb_r2 = 'X' AND p_rfcd2 IS NOT INITIAL.
3565 r_rfcdes-sign = 'I'.
3566 r_rfcdes-option = 'EQ'.
3567 r_rfcdes-low = p_rfcd2.
3568 APPEND r_rfcdes.
3569 CLEAR: r_rfcdes.
3570 ENDIF. " IF rb_r2 = 'X' AND p_rfcd2 IS NOT INITIAL
3571 IF rb_r3 = 'X' AND p_rfcd3 IS NOT INITIAL.
3572 r_rfcdes-sign = 'I'.
3573 r_rfcdes-option = 'EQ'.
3574 r_rfcdes-low = p_rfcd3.
3575 APPEND r_rfcdes.
3576 CLEAR: r_rfcdes.
3577 ENDIF. " IF rb_r3 = 'X' AND p_rfcd3 IS NOT INITIAL
3578 IF rb_r4 = 'X' AND p_rfcd4 IS NOT INITIAL.
3579 r_rfcdes-sign = 'I'.
3580 r_rfcdes-option = 'EQ'.
3581 r_rfcdes-low = p_rfcd4.
3582 APPEND r_rfcdes.
3583 CLEAR: r_rfcdes.
3584 ENDIF. " IF rb_r4 = 'X' AND p_rfcd4 IS NOT INITIAL
3585 IF rb_r5 = 'X' AND p_rfcd5 IS NOT INITIAL.
3586 r_rfcdes-sign = 'I'.
3587 r_rfcdes-option = 'EQ'.
3588 r_rfcdes-low = p_rfcd5.
3589 APPEND r_rfcdes.
3590 CLEAR: r_rfcdes.
3591 ENDIF. " IF rb_r5 = 'X' AND p_rfcd5 IS NOT INITIAL
3592 IF rb_r6 = 'X' AND p_rfcd6 IS NOT INITIAL.
3593 r_rfcdes-sign = 'I'.
3594 r_rfcdes-option = 'EQ'.
3595 r_rfcdes-low = p_rfcd6.
3596 APPEND r_rfcdes.
3597 CLEAR: r_rfcdes.
3598 ENDIF. " IF rb_r6 = 'X' AND p_rfcd6 IS NOT INITIAL
3599 IF rb_r7 = 'X' AND p_rfcd7 IS NOT INITIAL.
3600 r_rfcdes-sign = 'I'.
3601 r_rfcdes-option = 'EQ'.
3602 r_rfcdes-low = p_rfcd7.
3603 APPEND r_rfcdes.
3604 CLEAR: r_rfcdes.
3605 ENDIF. " IF rb_r7 = 'X' AND p_rfcd7 IS NOT INITIAL
3606
3607 SORT r_trkorr BY low.
3608* Selection options for value selection with search help
3609 CLEAR t_fields.
3610 t_fields-shlpfield = 'TRKORR'.
3611 t_fields-sign = 'I'.
3612 t_fields-option = 'BT'.
3613 READ TABLE r_trkorr INDEX 1.
3614 t_fields-low = r_trkorr-low.
3615
3616 DESCRIBE TABLE r_trkorr LINES lv_lines.
3617 READ TABLE r_trkorr INDEX lv_lines.
3618 t_fields-high = r_trkorr-low.
3619 APPEND t_fields.
3620
3621* Convert selopt into string*
3622 CALL FUNCTION 'F4_CONV_SELOPT_TO_WHERECLAUSE'
3623 IMPORTING
3624 where_clause = lv_where
3625 TABLES
3626 selopt_tab = t_fields.
3627
3628 lt_option-text = lv_where.
3629 APPEND lt_option.
3630
3631 LOOP AT r_rfcdes.
3632
3633 l_table = 'E070'.
3634 REFRESH: i_rfc_e070.
3635 CALL FUNCTION 'RFC_READ_TABLE'
3636 DESTINATION r_rfcdes-low
3637 EXPORTING
3638 query_table = l_table
3639 TABLES
3640 options = lt_option
3641 fields = lt_field
3642 data = i_rfc_e070
3643 EXCEPTIONS
3644 table_not_available = 1
3645 table_without_data = 2
3646 option_not_valid = 3
3647 field_not_valid = 4
3648 not_authorized = 5
3649 data_buffer_exceeded = 6
3650 OTHERS = 7.
3651 IF sy-subrc <> 0.
3652* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
3653* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
3654 ENDIF. " IF sy-subrc <> 0
3655
3656 LOOP AT i_rfc_e070 INTO lw_rfc_e070.
3657 MOVE-CORRESPONDING lw_rfc_e070 TO lw_rfc_final.
3658 lw_rfc_final-rfcdest = r_rfcdes-low.
3659 APPEND lw_rfc_final TO i_rfc_final.
3660 CLEAR lw_rfc_final.
3661 ENDLOOP. " LOOP AT i_rfc_e070 INTO lw_rfc_e070
3662
3663 ENDLOOP. " LOOP AT r_rfcdes
3664
3665 SORT i_rfc_final BY trkorr rfcdest.
3666 DELETE ADJACENT DUPLICATES FROM i_rfc_final COMPARING trkorr rfcdest.
3667
3668ENDFORM. " F_GET_RFCDEST_RELATED_DATA
3669*&---------------------------------------------------------------------*
3670*& Form F_DOWNLOAD_IN_EXCEL
3671*&---------------------------------------------------------------------*
3672* Download data in Excel
3673*----------------------------------------------------------------------*
3674* -->P_LV_FILENAME text
3675*----------------------------------------------------------------------*
3676FORM f_download_in_excel USING fp_lv_filename.
3677
3678 TYPE-POOLS: cndp,
3679 abap,
3680 soi.
3681
3682 DATA: min_row_sema TYPE i, " Row_sema of type Integers
3683 max_row_sema TYPE i, " Row_sema of type Integers
3684 min_row_data TYPE i, " Row_data of type Integers
3685 max_row_data TYPE i, " Row_data of type Integers
3686 max_col TYPE i, " Col of type Integers
3687 n_att_cols_plus_vrt_keys TYPE i, " Att_cols_plus_vrt_keys of type Integers
3688 max_col_xxl TYPE i, " Col_xxl of type Integers
3689 max_row_xxl TYPE i, " Row_xxl of type Integers
3690 max_row_xxl_limit TYPE i VALUE 65536, " Row_xxl_limit of type Integers
3691 anchor_row TYPE i, " Row of type Integers
3692 anchor_col TYPE i, " Col of type Integers
3693 hkey_row_displacement TYPE i, " Row_displacement of type Integers
3694 hkey_col_displacement TYPE i, " Col_displacement of type Integers
3695 excel_file_and_path TYPE char200, " File_and_path of type CHAR200
3696 ls_components TYPE abap_compdescr,
3697 lo_strucdescr TYPE REF TO cl_abap_structdescr. " Runtime Type Services
3698 .
3699
3700 DATA: control TYPE REF TO i_oi_container_control, " Document Container Control Interface
3701 error TYPE REF TO i_oi_error, " Error Object
3702 container TYPE REF TO cl_gui_custom_container, " Container for Custom Controls in the Screen Area
3703 document TYPE REF TO i_oi_document_proxy, " General Document Interface
3704 sheet TYPE REF TO i_oi_spreadsheet. " Spreadsheet Interface
3705
3706 DATA: l_display_data TYPE i, " Anzahl von Zeilen in
3707 l_data TYPE i, " Anzahl von Zeilen in
3708 l_online_text TYPE i, " Online_text of type Integers
3709 l_document_size TYPE i, " Document_size of type Integers
3710 l_user_info TYPE cndp_user_info,
3711 l_no_flush TYPE boolean, " Boolean Variable (X=True, -=False, Space=Unknown)
3712 l_retcode TYPE soi_ret_string,
3713 l_cols TYPE i, " Cols of type Integers
3714 lw_sema TYPE gxxlt_s, " XXL interface: structure of the semantics table
3715 lw_vkey TYPE gxxlt_v, " XXL interface: vertical features
3716* lw_comp TYPE abap_compdescr,
3717 lw_fieldcat TYPE slis_fieldcat_alv.
3718
3719 FIELD-SYMBOLS: <data> TYPE any,
3720 <data1> TYPE any.
3721* <lfs>.
3722* Tables
3723 DATA: data TYPE ty_t_download,
3724 hkey TYPE STANDARD TABLE OF gxxlt_h, " XXL interface: horizontal features
3725 online_text TYPE STANDARD TABLE OF gxxlt_o, " XXL_interface: texts for online display
3726 sema TYPE STANDARD TABLE OF gxxlt_s, " XXL interface: structure of the semantics table
3727 vkey TYPE STANDARD TABLE OF gxxlt_v. " XXL interface: vertical features
3728* Import Params
3729 DATA: data_ending_at TYPE i VALUE -1, " Ending_at of type Integers
3730 data_starting_at TYPE i VALUE 1, " Starting_at of type Integers
3731 file_loc_name TYPE localfile, " Local file for upload/download
3732 n_hrz_keys TYPE i VALUE 0, " Hrz_keys of type Integers
3733 header TYPE boolean, " Boolean Variable (X=True, -=False, Space=Unknown)
3734 determine_format TYPE boolean. " Boolean Variable (X=True, -=False, Space=Unknown)
3735* Changing
3736 DATA: n_att_cols TYPE i, " Att_cols of type Integers
3737 n_vrt_keys TYPE i VALUE 0. " Vrt_keys of type Integers
3738
3739 file_loc_name = fp_lv_filename.
3740 header = 'X'.
3741 data = i_download.
3742* Fill sema table default with string fields..
3743 IF sema IS INITIAL.
3744
3745* Determine the number of rows of the table
3746 READ TABLE data ASSIGNING <data> INDEX 1.
3747 WHILE sy-subrc EQ 0.
3748 ADD 1 TO l_cols.
3749 ASSIGN COMPONENT l_cols OF STRUCTURE <data> TO <data1>.
3750 IF sy-subrc NE 0.
3751 l_cols = l_cols - 1.
3752 EXIT.
3753 ENDIF. " IF sy-subrc NE 0
3754 ENDWHILE.
3755
3756* Adding the number to the sema table
3757 lw_sema-col_no = 1.
3758 lw_sema-col_typ = 'STR'.
3759 lw_sema-col_ops = 'NOP'.
3760
3761 DO l_cols TIMES.
3762 APPEND lw_sema TO sema.
3763 ADD 1 TO lw_sema-col_no.
3764 ENDDO.
3765* N_ATT_COLS = l_cols.
3766 IF n_vrt_keys IS INITIAL.
3767 n_vrt_keys = l_cols.
3768 ENDIF. " IF n_vrt_keys IS INITIAL
3769
3770 ENDIF. " IF sema IS INITIAL
3771 break mrajes01.
3772 DATA: li_fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv.
3773 CALL FUNCTION 'REUSE_ALV_GRID_LAYOUT_INFO_GET'
3774 IMPORTING
3775 et_fieldcat = li_fieldcat
3776 EXCEPTIONS
3777 no_infos = 1
3778 program_error = 2
3779 OTHERS = 3.
3780 IF sy-subrc <> 0.
3781* Implement suitable error handling here
3782 ENDIF. " IF sy-subrc <> 0
3783
3784* Create header in excel. take first line.
3785 IF header EQ 'X' AND vkey IS INITIAL.
3786 CLEAR l_cols.
3787 READ TABLE data ASSIGNING <data> INDEX 1.
3788 IF sy-subrc EQ 0.
3789 lo_strucdescr ?= cl_abap_typedescr=>describe_by_data( <data> ).
3790 LOOP AT lo_strucdescr->components INTO ls_components.
3791 ADD 1 TO l_cols.
3792 lw_vkey-col_no = l_cols.
3793 READ TABLE i_fieldcat INTO lw_fieldcat WITH KEY fieldname = ls_components-name.
3794 lw_vkey-col_name = lw_fieldcat-seltext_l.
3795 APPEND lw_vkey TO vkey.
3796 CLEAR: lw_vkey, lw_fieldcat.
3797 ENDLOOP. " LOOP AT lo_strucdescr->components INTO ls_components
3798 ENDIF. " IF sy-subrc EQ 0
3799* WHILE sy-subrc EQ 0.
3800* ADD 1 TO l_cols.
3801* READ TABLE i_fieldcat INTO lw_fieldcat INDEX l_cols.
3802* IF sy-subrc NE 0.
3803* l_cols = l_cols - 1.
3804* EXIT.
3805* ELSE.
3806* lw_vkey-col_no = l_cols.
3807* lw_vkey-col_name = lw_fieldcat-seltext_l.
3808* APPEND lw_vkey TO vkey.
3809* ENDIF.
3810* ENDWHILE.
3811 ENDIF. " IF header EQ 'X' AND vkey IS INITIAL
3812
3813 DESCRIBE TABLE data LINES l_data.
3814 DESCRIBE TABLE online_text LINES l_online_text.
3815
3816 CONCATENATE 'file://' file_loc_name INTO file_loc_name.
3817
3818*-----------------------------------------------------------------------
3819* Manage Limitations of the output of the data table
3820*-----------------------------------------------------------------------
3821
3822 IF data_ending_at = -1. " Default for the ENDING_AT should always
3823 data_ending_at = l_data. " last row of the data table to be
3824 ENDIF. " IF data_ending_at = -1
3825 IF data_starting_at > l_data
3826 OR data_starting_at < 0
3827 OR data_ending_at > l_data
3828 OR data_ending_at < data_starting_at.
3829 "MESSAGE e026
3830 RAISE inv_data_range.
3831 ENDIF. " IF data_starting_at > l_data
3832 l_display_data = data_ending_at - data_starting_at + 1.
3833
3834*-----------------------------------------------------------------------
3835* Berechne diverse Koordinaten
3836*-----------------------------------------------------------------------
3837
3838 anchor_row = 22 + ( 4 * n_hrz_keys ). " Space is left blank for
3839 anchor_col = 22 + ( 4 * n_vrt_keys ). " Administrative Information of the macros
3840 hkey_row_displacement = anchor_row - 1 - n_hrz_keys.
3841 hkey_col_displacement = anchor_col - 1 + n_vrt_keys.
3842 n_att_cols_plus_vrt_keys = n_att_cols + n_vrt_keys.
3843 max_col = anchor_col + n_att_cols_plus_vrt_keys - 1.
3844 max_col_xxl = n_att_cols_plus_vrt_keys - 1.
3845 max_row_xxl = anchor_row + l_display_data - 1.
3846 min_row_data = anchor_row - n_hrz_keys.
3847 max_row_data = anchor_row + l_display_data - 1.
3848 min_row_sema = min_row_data - 6.
3849 max_row_sema = min_row_data - 2.
3850
3851 DATA excel_file TYPE string.
3852 CALL METHOD cl_gui_frontend_services=>registry_get_value
3853 EXPORTING
3854 root = cl_gui_frontend_services=>hkey_classes_root
3855 key = 'ExcelWorksheet\protocol\StdFileEditing\server'
3856 value = ''
3857 IMPORTING
3858 reg_value = excel_file.
3859
3860 excel_file_and_path = excel_file.
3861
3862 IF excel_file_and_path NE space. " Excel is installed
3863 DATA registry_lookup2 TYPE string.
3864
3865 CALL METHOD cl_gui_frontend_services=>registry_get_value
3866 EXPORTING
3867 root = cl_gui_frontend_services=>hkey_classes_root
3868 key = 'Excel.Application\CurVer'
3869 value = ''
3870 IMPORTING
3871 reg_value = registry_lookup2.
3872
3873 IF registry_lookup2 NE space. " Excel 5 or higher installed
3874 IF registry_lookup2 EQ 'Excel.Application.5'
3875 OR registry_lookup2 EQ 'Excel.Application.6'
3876 OR registry_lookup2 EQ 'Excel.Application.7'.
3877 max_row_xxl_limit = 16384.
3878 ELSE. " ELSE -> IF registry_lookup2 EQ 'Excel Application 5'
3879* Changing the doctype to xlsx for newer excel versions..
3880 IF determine_format EQ 'X'.
3881 CONCATENATE file_loc_name 'X' INTO file_loc_name.
3882 ENDIF. " IF determine_format EQ 'X'
3883 IF registry_lookup2 EQ 'Excel.Application.12'.
3884 max_row_xxl_limit = 1048576.
3885 ELSE. " ELSE -> IF registry_lookup2 EQ 'Excel Application 12'
3886 max_row_xxl_limit = 65536.
3887 ENDIF. " IF registry_lookup2 EQ 'Excel Application 12'
3888
3889 ENDIF. " IF registry_lookup2 EQ 'Excel Application 5'
3890 ENDIF. " IF registry_lookup2 NE space
3891 ELSE. " ELSE -> IF excel_file_and_path NE space
3892 RAISE no_excel_found.
3893 ENDIF. " IF excel_file_and_path NE space
3894
3895 DATA registry_lookup TYPE string.
3896
3897 IF ( max_col_xxl GT 256 )
3898 OR ( max_row_xxl GT max_row_xxl_limit ).
3899* MESSAGE e020 RAISING data_too_big.
3900 RAISE data_too_big.
3901 ENDIF. " IF ( max_col_xxl GT 256 )
3902
3903 CALL FUNCTION 'RSAU_WRITE_DOWNLOAD_AUDIT_LOG'
3904 EXPORTING
3905 filename = 'Excel file' "#EC NOTEXT
3906 filetype = 'XLS'
3907 filelength = max_row_xxl
3908 mode = 'S'
3909 EXCEPTIONS
3910 parameter_error = 1
3911 OTHERS = 99.
3912
3913 CALL METHOD cl_gui_frontend_services=>registry_get_value
3914 EXPORTING
3915 root = cl_gui_frontend_services=>hkey_classes_root
3916 key = 'Excel.Application\CurVer'
3917 value = ''
3918 IMPORTING
3919 reg_value = registry_lookup.
3920* IF registry_lookup EQ space.
3921* ERROR ??!?!?!
3922* ENDIF.
3923
3924 CALL METHOD c_oi_container_control_creator=>get_container_control
3925 IMPORTING
3926 control = control
3927 error = error.
3928
3929 CREATE OBJECT container
3930 EXPORTING
3931 container_name = 'CONTAINER'.
3932
3933 CALL METHOD control->init_control
3934 EXPORTING
3935 r3_application_name = 'Basis' "#EC NOTEXT
3936 inplace_enabled = ''
3937 inplace_scroll_documents = 'X'
3938 parent = container
3939 register_on_close_event = 'X'
3940 register_on_custom_event = 'X'
3941 no_flush = 'X'
3942 IMPORTING
3943 error = error.
3944
3945
3946 CALL METHOD control->get_document_proxy
3947 EXPORTING
3948 document_type = 'Excel.Sheet' "#EC NOTEXT
3949 IMPORTING
3950 document_proxy = document
3951 error = error.
3952
3953
3954 IF NOT document IS INITIAL.
3955 CALL METHOD document->create_document
3956 EXPORTING
3957 open_inplace = ''.
3958
3959 DATA: h TYPE i, " Data: h of type Integers
3960 v TYPE i, " V of type Integers
3961 a TYPE i. " A of type Integers
3962
3963 CALL METHOD document->get_spreadsheet_interface
3964 IMPORTING
3965 sheet_interface = sheet.
3966
3967 IF NOT sheet IS INITIAL.
3968 h = n_hrz_keys.
3969 v = n_vrt_keys.
3970* a = n_att_cols.
3971 a = 0.
3972 CALL METHOD sheet->insert_full
3973 EXPORTING
3974 n_vrt_keys = v
3975 n_hrz_keys = h
3976 n_att_cols = a
3977 sema = sema[]
3978 hkey = hkey[]
3979 vkey = vkey[]
3980 online_text = online_text[]
3981 data = data[]
3982 data_starting_at = data_starting_at
3983 data_ending_at = data_ending_at
3984 EXCEPTIONS
3985 dim_mismatch_data = 1
3986 dim_mismatch_sema = 2
3987 dim_mismatch_vkey = 3
3988 error_in_hkey = 4
3989 error_in_sema = 5
3990 inv_data_range = 6
3991 error_in_vkey = 7.
3992 IF sy-subrc = 1.
3993 RAISE dim_mismatch_data.
3994 ELSEIF sy-subrc = 2.
3995 RAISE dim_mismatch_sema.
3996 ELSEIF sy-subrc = 3.
3997 RAISE dim_mismatch_vkey.
3998 ELSEIF sy-subrc = 4.
3999 RAISE error_in_hkey.
4000 ELSEIF sy-subrc = 5.
4001 RAISE error_in_sema.
4002 ELSEIF sy-subrc = 6.
4003 RAISE inv_data_range.
4004 ELSEIF sy-subrc = 7.
4005 RAISE dim_mismatch_vkey.
4006 ENDIF. " IF sy-subrc = 1
4007 ENDIF. " IF NOT sheet IS INITIAL
4008
4009 IF NOT document IS INITIAL.
4010 CALL METHOD document->save_document_to_url
4011 EXPORTING
4012 url = file_loc_name
4013 user_info = l_user_info
4014 no_flush = l_no_flush
4015 IMPORTING
4016 error = error
4017 retcode = l_retcode
4018 CHANGING
4019 document_size = l_document_size.
4020
4021 IF sy-subrc NE 0.
4022 RAISE file_write_error.
4023 ENDIF. " IF sy-subrc NE 0
4024
4025 CALL METHOD document->release_document.
4026 FREE document.
4027 ENDIF. " IF NOT document IS INITIAL
4028 IF NOT control IS INITIAL.
4029 CALL METHOD control->destroy_control.
4030 FREE control.
4031 ENDIF. " IF NOT control IS INITIAL
4032 ENDIF. " IF NOT document IS INITIAL
4033
4034ENDFORM. " F_DOWNLOAD_IN_EXCEL
4035*&---------------------------------------------------------------------*
4036*& Form F_BUILD_ENTERPRISE_STRUC_DATA
4037*&---------------------------------------------------------------------*
4038* text
4039*----------------------------------------------------------------------*
4040* --> p1 text
4041* <-- p2 text
4042*----------------------------------------------------------------------*
4043FORM f_build_enterprise_struc_data .
4044 REFRESH: r_objnm[].
4045* ---------------------------------*
4046* Enterprise Structure - DEFINATION*
4047* ---------------------------------*
4048* FI
4049 PERFORM f_build_the_range_tab USING : 'I' 'CP' '*T880*' , "Company
4050 'I' 'CP' '*T001*' , "Company code
4051* CO
4052 'I' 'CP' '*TKA01*', "Controlling area
4053* LO
4054 'I' 'CP' '*T001W*', "Plant / sales organization
4055 'I' 'CP' '*T499S*', "Locations
4056 'I' 'CP' '*TSPA*' , "Division
4057* SD
4058 'I' 'CP' '*TVKO*' , "Sales organization / company code
4059 'I' 'CP' '*TVTW*' , "Distribution channel
4060 'I' 'CP' '*TVBUR*', "Sales office
4061 'I' 'CP' '*TVKBT*', "Sales office text
4062 'I' 'CP' '*TVKGR*', "Sales group
4063 'I' 'CP' '*TVGRT*', "Sales group text
4064 'I' 'CP' '*T171T*', "Sales district text
4065* MM
4066 'I' 'CP' '*T001L*', "Storage locations
4067 'I' 'CP' '*T024E*', "Purchasing organization
4068 'I' 'CP' '*T3001*', "Warehouse number
4069 'I' 'CP' '*TVST*' , "Shipping point
4070 'I' 'CP' '*TVLA*' , "Loading point
4071 'I' 'CP' '*TTDS*' , "Transportation
4072* ---------------------------------*
4073* Enterprise Structure - ASSIGNMENT*
4074* ---------------------------------*
4075* CO
4076 'I' 'CP' '*TKA02*', "Assign company code to controlling area
4077* LO
4078 'I' 'CP' '*T001K*', "Assign plant (valuation area) to company code
4079* SD
4080 'I' 'CP' '*TVKOV*', "Distribution channel / sales organization
4081 'I' 'CP' '*TVKOS*', "Division to sales organization
4082 'I' 'CP' '*TVTA*' , "Sales area
4083 'I' 'CP' '*TVKBZ*', "Sales office to sales area
4084 'I' 'CP' '*TVBVK*', "Sales group to sales office
4085 'I' 'CP' '*TVKWZ*', "Plants to sales organization
4086* MM
4087 'I' 'CP' '*T024W*', "Plant to Purchase organization
4088 'I' 'CP' '*TVSWZ*', "Shipping point to plant
4089 'I' 'CP' '*T320*'. "Assignment MM Storage Location to WM Warehouse
4090
4091ENDFORM. " F_BUILD_ENTERPRISE_STRUC_DATA
4092*&---------------------------------------------------------------------*
4093*& Form F_BUILD_THE_RANGE_TAB
4094*&---------------------------------------------------------------------*
4095* text
4096*----------------------------------------------------------------------*
4097* -->P_9856 text
4098* -->P_9857 text
4099* -->P_9858 text
4100*----------------------------------------------------------------------*
4101FORM f_build_the_range_tab USING VALUE(fp_sign)
4102 VALUE(fp_opti)
4103 VALUE(fp_low).
4104 r_objnm-sign = fp_sign. "I = include, E = exclude
4105 r_objnm-option = fp_opti. "EQ, BT, NE ....
4106 r_objnm-low = fp_low.
4107 APPEND r_objnm.
4108 CLEAR: r_objnm.
4109
4110ENDFORM. " F_BUILD_THE_RANGE_TAB