Header is coming as vertical in downloaded pipe dilimiter file
Hi ,
I have a requirement where i hav to download the pipedelimiter file to presentation server, for which im Using "GUI_DOWNLOAD".i collected the field names of the table using "ALV_FIELDCATALOG_MERGE" and passing this internal table as "i_header" to the parameter "Fieldnames" in above F.M, and "data_tab" as the internal table retrived from F.M "SAP_CONVERT_TO_TEX_FORMAT" by passing the internal table (<dyn_table>),in which i collected the DBase table entries.
Now the issue is the field names in the downloaded file are coming as vertical, means after displaying all field names my data is getting displayed as pipe delimted data.
But when im passing "<dyn_table>" directly to GUI_DOWNLOAD as "DATA_TAB" its working fine but no pipe dilimiters are there.
Plz suggest how to proceed.
Just add something past the servlet name, so instead of:
http://mysupersite.com/myapp/myservlet
Use:
http://mysupersite.com/myapp/myservlet/UseThisFileName.exe
Peace,
Cameron Purdy
Tangosol Inc.
Tangosol Coherence: Clustered Coherent Cache for J2EE
Information at http://www.tangosol.com/
"Eric Moore" <[email protected]> wrote in message
news:[email protected]..
>
> when formulating an httpservletresponse that is a file to be downloaded (i
changed
> the mime type on the response object) the file name remains the same as
the servlet
> name. i want to be able to dictate what the file name is for the response
when
> it is a user download. however, the file name is not actually a file on
the
> server's file system as it is just bytes that are made up on the fly from
the
> servlet and sent in the reponse. is this possible? tried to find an http
header
> value for it but no luck there...
>
> thank you!
> Eric Moore
> FedEx Supply Chain Services
Similar Messages
-
Header and footer on a csv download
Hi
Is there an easy way to add an extra header and footer to a csv download ?
What the user wants is a csv of the format
New heading --- the additional heading
col name, col name ..... -- the existing column names
value, value ..... -- the existing values
New footer -- some new text footer
I have tried break formatting but have had no success. The csv produces perfectly but I can't get the additional lines added !
Ta
BobNo unfortunately I have not found the time to do a blog yet.
Create a blank page and create an AFTER HEADER pl/sql process.
Then add code like the following, changing query as needed
declare
cursor result_cur is
select empno, ename, job
from emp;
begin
htp.init; -- Wipe out the buffer
owa_util.mime_header ('application/excel',false);
htp.p('Content-Disposition: attachment; filename="FormResults.csv"');
owa_util.http_header_close;
-- write your header
htp.p('This is my header');
htp.p(' ');
-- write out the column names
htp.print ( 'Emp Num, Employee Name, Job' );
--write out each row
for it in result_cur loop
htp.print ( '"'||it.empno||'","'||it.ename||'","'||it.job||'"' );
end loop;
-- write out footer
htp.p(' ');
htp.p('This is my footer');
-- Send an error code so that the
-- rest of the HTML does not render
htmldb__application.g_unrecoverable_error := true;
end;you can call this by making it the redirect target of a button or by adding something like the following in the footer section of your report region assuming the page you created the above process on was page 9
<a href="f?p=APP_ID.:9:&SESSION.">Click here to download CSV</a>sorry the code above shows a # and does not show the f p syntax url which should be f followed by a ?p=&APP_ID.:9&:SESSION.
Edited by: Larry Linnemeyer on May 20, 2009 8:08 AM -
Hi! How can I change the header text direction to vertical?
I have many columns with big names, but I need small space for body cells, and I want to check all the table at a view ... So I want to change the direction of the header texts to "left vertical" or "right vertical".
There are a couple discussion threads on this already. Fundamentally it is not a feature that Numbers supports. There are several work arounds but non of theeem are great:
Please see this thread:
https://discussions.apple.com/message/15240103#15240103 -
Download data into a pipe delimited file
I want to download data from an internal table into a pipe delimited file.
I plan to use FM: SAP_CONVERT_TO_TEX_FORMAT but the system I am working on is BW 3.1.
This FM does not exists in BW 3.1
How can I download data from an internal table into a pipe delimited file?
Please help,
Thanks,
CDPlease use Search before posting, this has been discussed many times already. Not necessarily as "pipe delimited", but delimiter doesn't really matter here. Here is just one of the recent posts:
Write internal table to file GUI_DOWNLOAD or TRANSFER?
Note that all GUI functions only work in the foreground. There are also some solutions in "pure ABAP", like looping through the internal table fields and adding a delimiter. Or a quick and dirty solution - define an internal table with the extra fields for delimiters (mainframe legacy!).
Also questions specific to BW should be posted in the BW forum IMHO, not in ABAP General. Otherwise you'll get a lot of "valuable" suggestions here... -
Downloading pipe delimited text file on to desktop with data in internal
hi all,
how to download pipe delimited text file on to desktop with data in internal
table with an example plz.hi,
u can use the FM GUI_DOWNLOAD.
here is the sample code.
*Internal table to hold the employee details
DATA: it_details TYPE STANDARD TABLE OF x_details,
wa_details TYPE x_details.
*Internal table for file
DATA: BEGIN OF it_details_txt OCCURS 0,
line(700),
END OF it_details_txt.
*Employee details for the file
CLEAR wa_details.
LOOP AT it_details INTO wa_details.
CLEAR it_details_txt.
CONCATENATE
wa_details-var1
wa_details-var2
wa_details-var3
wa_details-var4
INTO it_details_txt-line SEPARATED BY '|'.
APPEND it_details_txt.
CLEAR wa_details.
ENDLOOP.
*Download file in .TXT format to local desktop
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = 'data.txt'
filetype = 'ASC'
TABLES
data_tab = it_details_txt
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
no_authority = 10
OTHERS = 11.
IF sy-subrc = 0.
MESSAGE 'Data downloaded successfully' TYPE 'S'.
ENDIF. -
How to authenticate a JWS Client download of jar files on a web server
Here is a history of how i tried to implement the auth system:
The resources(jar files) cannot be downloaded by any HTTP client from the server without some authentication method.
As JWS is not reliable when using cookies (only 1.5 supports them, but with problems when in JNLP file i specify j2se version=older that 1.5) , i implemented another mecanism that works like this:
1. 1.The template JNLP looks like this
<?xml version="1.0" encoding="utf-8"?>
<jnlp codebase="http://10.3.0.62/" href="mapped/#JWS_CODE#___#PLATFORM#___app2.2.jnlp">
<information>
bla bla
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.4"/>
<jar href="http://10.3.0.62/mapped/gui.jar?jwsid=#JWS_CODE#" version="2.2"/>
<jar href="http://10.3.0.62/mapped/data.jar?jwsid=#JWS_CODE#" version="2.2"/>
<jar href="http://10.3.0.62/mapped/log4j.jar?jwsid=#JWS_CODE#"/>
</resources>
<application-desc main-class="com.bet.blues.gui.Application">
<argument>-host</argument>
<argument>ursus</argument>
<argument>-port</argument>
<argument>17771</argument>
</application-desc>
</jnlp>2. All resources found in /mapped/ directory are mapped to JWSServlet
3. The users login to a site , clik on link , /mapped/app2.2.jnlp , the servlet checks if the session is active , gets the PLATFORM form browser request header , gets the JWSCODE for the logged user, replaces this in the template, and returns it to the client
4.Now after the 1st download the JNLP file is opened by JWS Client , that checks for latest version , requesting the JNLP file again
like this:
GET http://10.3.0.62/mapped/f12ks21092___windows___app2.2.jnlp5.Now the servlet sees the the request has a JNLP file name with an ID and PLATFORM, and serves the JNLP as before
6.The JWS Client will request for JAR Files
GET http://10.3.0.62/mapped/gui.jar?jwscode=f12ks21092?version-id=2.2Note: that i have forced JWSID parameter in the URL, that's why the query string contains 2 "?"
- forcing this is because the mapped/*.jar is redirected JnlpDownloadServlet that supports versions , diffs - i cannot use 'version' to put there the jswid param(e.g .../mapped/gui.jar version="fk12ks21092_2.2" because the JnlpDownloadServlet will not find this version , and if JWS Servlet will redirect to JnlpDownloadServlet with correct version param in request, the JWS Client will raise an exception because version responded is not right(JNLPDownloadServlet marks in response HTTP header the version of the jar so JWS CLient will chek it)
JWS Client expects version 'fk12ks21092_ver2.2'; to correct this i should modify the JnlpDownloadServlet and i shouldnt
THE PROBLEM :
on older versions than 1.5 JWS Client raises an exception because it wants to create a temp file named
" gui.jar?jwscode=f12ks21092" because it contains "?"
Only with 1.5 that seems to parse the jar name until it meets "?" char :(
Thats why i wanted to send an error to the client to upgrade to Java Web Start 1.5
Now, maybe u have a solution to this problem...
All i want is a solution to let JWS Client download jars only if the user is authenticated by some mecanism....and also support the versioning system.
Also:
Note that the jar names must preserve on the client JWS Cache dir ( i cannot use the same method to pass the JWSCODE when requesting the JARS as when requesting the JNLP).You need to look into JAAS
-
Downloading a text file from application server
Hi Freinds,
I am genarating a text file in our application server (Folder /usr/sap/dbi/) I need to download this text file in my destop pc or some other windows server.
What do I have to do? What is the procedure, Pls help.
If someone have sample code, pls send.
We are running SAP ECC5.0 on an iSeries (AS/400) Database DB2/400.
Regards
ThanuraHi,
try this:
REPORT ZGRO_TEST.
DATA: DATEI_A(30) TYPE C VALUE '/tmp/matnr.txt'.
DATA: DATEI_PC TYPE STRING VALUE 'C:\MATNR.TXT'.
DATA: ITAB TYPE TABLE OF MARA WITH HEADER LINE.
START-OF-SELECTION.
PERFORM DATEI_EINLESEN.
PERFORM DATEI_DOWNLOAD.
FORM DATEI_EINLESEN.
OPEN DATASET DATEI_A FOR INPUT IN TEXT MODE.
IF SY-SUBRC NE 0. STOP. ENDIF.
DO.
READ DATASET DATEI_A INTO ITAB.
IF SY-SUBRC <> 0. EXIT. ENDIF.
APPEND ITAB.
ENDDO.
CLOSE DATASET DATEI_A.
IF SY-SUBRC NE 0. STOP. ENDIF.
ENDFORM. "DATEI_EINLESEN
FORM DATEI_DOWNLOAD.
Datei downloaden
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
FILENAME = DATEI_PC
FILETYPE = 'ASC'
CHANGING
DATA_TAB = ITAB[]
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
NOT_SUPPORTED_BY_GUI = 22
ERROR_NO_GUI = 23
OTHERS = 24.
IF SY-SUBRC NE 0. STOP. ENDIF.
ENDFORM. "DATEI_DOWNLOAD
Regards, Dieter -
Warning while downloading an Excel file from WD ABAP
Hi folks,
In one of requirements, Client wants to download all the data that is appearing on the screen ( WD ABAP Application ) to an Excel with a layout in different manner.
We achieved this with Simple Transformations.
Now the question is while downloading the excel file, the framework/other is throwing an Warning like
" The file you are trying to open, 'info.xls', is in a different format than specified by the extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now? "
Note: All the users of my client are using MS Office 2002 / 2003.
I am using the following code........!
*------ Call Transformation for Excel OUTPUT
CALL TRANSFORMATION ZEXCEL_OUTPUT
SOURCE
t_dates = t_dates
t_info = t_info
RESULT XML l_xml_string.
REPLACE ALL OCCURRENCES OF '<?xml version="1.0" encoding="utf-16"?>' l_xml_string WITH '<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?>'.
**-- Call Function Module for converting string data to XSTRING
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = l_xml_string
mimetype = 'application/xml'
IMPORTING
buffer = l_xml_xstring
EXCEPTIONS
failed = 1
OTHERS = 2.
CALL METHOD cl_wd_runtime_services=>attach_file_to_response
EXPORTING
i_filename = 'info.xml'
i_content = l_xml_xstring
i_mime_type = 'application/vnd.ms-excel'.
With this code I am generating a file of type XML SPREADSHEET 2003. While opening this file I am getting the above message which the user unwanted......
Can any one help me on this -
> How to avoid this warning?
Thanks and Regards,
Aneel Danda
Edited by: danda aneel on Jul 13, 2010 1:43 PMFirstly, Thanks for Your quick Response, Thomas.
Even though what ever may be the file name I am passing either info.xml or Info.xls , In error info.xls is coming.
Kindly provide me an alternative on this XML doesn't seem like it would match the 'application/vnd.ms-excel'.
what is the supported format.?
Similarly, It is not considering the UTF-8 / UTF-16 for xml.........same result is appearing in the output.
Edited by: danda aneel on Jul 14, 2010 7:52 AM -
Download a text file from JSP (Urgent Please!)
Hi,
I have a issue with this JSP, I need to download a txt file from my webserver to the pc client, the page shows the dialg box but appear the filename (list.jsp) of my jsp instead of the txt file.
If I click the save buton save the list.jsp page; if I click in the open buton, then appear again the dialg box and now appear the url (download.jsp?filename=...) and if I click in the save button now I can save my txt file in the local pc.!!!!
Any ideas ??
list.jsp --> is the jsp from the download.jsp is run.
download.jsp
<%@ page import="java.io.*,javax.servlet.*,java.util.* "%><% String filename = request.getParameter("filename");
response.setContentType("application/download");
String value = "attachment; filename=\"" + filename + "\";" ;
response.setHeader("Content-Disposition",value);
int iRead;
FileInputStream stream = null;
try {
File f = new File("C://test//" + filename);
stream = new FileInputStream(f);
while ((iRead = stream.read()) != -1) {
out.write(iRead);
out.flush();
finally {
if (stream != null) {
stream.close();
%>Maybe try no quotes around the content disposition header?
Also, I'm not sure that application/download would be the best content type, maybe "application/octet-stream" instead. You should also probably explicitly set the Content-Length header to the file size. -
Pipe delimited file on application server.
Hi , i m creating a text file on application server, i have written below code and file is getting created correctly. however, i want to create pipe delimited file. is there any method for this?
DATA : lv_line(173).
DATA : l_wa_itab_length(4) TYPE c VALUE '173'.
IF NOT p_tab[] IS INITIAL.
SORT p_tab.
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE.
IF sy-subrc NE 0.
MESSAGE 'Error on output file read' TYPE 'E'.
ELSE.
LOOP AT p_tab.
lv_line = p_tab.
TRANSFER lv_line TO p_file LENGTH l_wa_itab_length.
CLEAR p_tab.
CLEAR lv_line.
ENDLOOP.
CLOSE DATASET p_file.
ENDIF.
ENDIF.
REFRESH p_tab.i m pasting below my entire code.
REPORT zmigration_data_download.
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE.
DATA: d_table_ref TYPE REF TO data.
DATA: d_rfc_db_opt TYPE rfc_db_opt.
DATA: it_opt LIKE rfc_db_opt OCCURS 0 WITH HEADER LINE.
DATA: d_file TYPE string.
PARAMETERS: p_tab TYPE dd02l-tabname OBLIGATORY.
PARAMETERS: p_file LIKE rlgrap-filename OBLIGATORY DEFAULT '/usr/sap/tmp/test.txt'.
SELECT-OPTIONS: s_opt FOR d_rfc_db_opt NO INTERVALS.
START-OF-SELECTION.
REFRESH it_opt.
LOOP AT s_opt WHERE sign = 'I' OR option = 'EQ'.
it_opt-text = s_opt-low.
APPEND it_opt.
ENDLOOP.
CREATE DATA d_table_ref TYPE TABLE OF (p_tab).
UNASSIGN <fs_table>.
ASSIGN d_table_ref->* TO <fs_table>.
IF <fs_table> IS ASSIGNED.
CLEAR <fs_table>.
SELECT * FROM (p_tab) INTO TABLE <fs_table>
WHERE (it_opt).
IF sy-subrc EQ 0.
PERFORM download_file TABLES <fs_table> USING p_file.
MESSAGE i398(00) WITH 'Upload from SAP Successfull'.
ENDIF.
ENDIF.
*& Form download_file
text
-->P_<FS_TABLE> text
-->P_P_FILE text
FORM download_file TABLES p_tab USING p_file.
DATA : lv_line(173).
DATA : l_wa_itab_length(4) TYPE c VALUE '173'.
IF NOT p_tab[] IS INITIAL.
SORT p_tab.
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE.
IF sy-subrc NE 0.
MESSAGE 'Error on output file read' TYPE 'E'.
ELSE.
LOOP AT p_tab.
lv_line = p_tab.
TRANSFER lv_line TO p_file LENGTH l_wa_itab_length.
CLEAR p_tab.
CLEAR lv_line.
ENDLOOP.
CLOSE DATASET p_file.
ENDIF.
ENDIF.
REFRESH p_tab.
ENDFORM. " download_file -
How to upload pipe seperated file
hi friends,
i want to upload the pipe delimited file (which generated from unix server) for bdc program.
can you please tell me how can i upload this file?
can i use 'open dataset'??
thanks in advance
ankitIf you are uploading from the application server, then you would use the OPEN DATASET, if you uploading from the frontend(pc), then you would use GUI_UPLOAD.
Here is an example program which is uploading from the frontend.
report zrich_0001.
types: begin of ttab,
rec(1000) type c,
end of ttab.
types: begin of tdat,
fld1(10) type c,
fld2(10) type c,
fld3(10) type c,
end of tdat.
data: itab type table of ttab with header line.
data: idat type table of tdat with header line.
data: file_str type string.
parameters: p_file type localfile.
at selection-screen on value-request for p_file.
call function 'KD_GET_FILENAME_ON_F4'
exporting
static = 'X'
changing
file_name = p_file.
start-of-selection.
file_str = p_file.
call function 'GUI_UPLOAD'
exporting
filename = file_str
tables
data_tab = itab
exceptions
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
others = 17.
loop at itab.
clear idat.
split itab-rec at '|' into idat-fld1
idat-fld2
idat-fld3.
append idat.
endloop.
loop at idat.
write:/ idat-fld1, idat-fld2, idat-fld3.
endloop.
Regards,
Rich Heilman -
How do I get Firefox from "saving" to Downloads EVERY PDF file I open ??
Greetings,
New to Firefox. Running Mac Leopard and needed Firefox because a business website running a business replay podcast did not recognize Safari.
So far so good. I actually prefer Firefox to Safari now.
One little thing. Every time I browse the web and open a PDF file it "automatically" sends it to my download file and I therefore have the file "saved" . WELL, I don't necessarily want to save to my download file every PDF file that I open. I just want to open a PDF file, do a quick read and move on to more browsing. How do I stop Firefox from saving to my downloads every PDF file that I open? Is there some kind of setting I can adjust?
Thanks.Lexonex wrote:
You da man...I've never done an "Ad-On". I downloaded the recommended "Ad-On" as you suggested. The program fixed my issue...NOW, I can simply open a PDF file without it automatically going to my downloads.
THANKS
If you ever need to download a list of things, firefox can select a vertical column using the Cmd key, unlike Safari.
I have DownLoadThemAll installed and I can select a vertical group of files, right-click them and using DLTA, I can DL them to any location. With Safari, I would have to do this one-at-a-time.
Just another reason I like FF for many purposes. -
ALV list downloading to XML file
hi experts,
im working on ALV reports. i have displayed the list using grid, im also displaying the subtotals and grand total also.
its all working fine.
my problem is, when i try to download it using list -> export -> spreadsheet, im getting only the data. the top of page, end of list and totals are not getting into the xml file.
can some one help me to solve this problem please.
one more problem is when i download using local file button (ctrlshftF9) im gtting header footer and all. but here the problem is its getting some additional coloms and also a list header, which i didnt gave. how to avoid those. please help me to slove these problems.
thanks in advance.hi,
i cannot understand y u r not getting totals and headings in xml file.
check this sample program,i have downloaded now to desktop and iam getting all headings,subtotals and totals.
REPORT ZGM_ALV_SUBTOTAL_TEXT .
*& Table declaration
TABLES: ekko.
*& Type pool declaration
TYPE-POOLS: slis. " Type pool for ALV
*& Selection screen
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
*& Type declaration
Type declaration for internal table to store EKPO data
TYPES: BEGIN OF x_data,
ebeln TYPE char30, " Document no.
ebelp TYPE ebelp, " Item no
matnr TYPE matnr, " Material no
matnr1 TYPE matnr, " Material no
werks TYPE werks_d, " Plant
werks1 TYPE werks_d, " Plant
ntgew TYPE entge, " Net weight
gewe TYPE egewe, " Unit of weight
END OF x_data.
*& Internal table declaration
DATA:
i_ekpo TYPE STANDARD TABLE OF x_data INITIAL SIZE 0,
Internal table for storing field catalog information
i_fieldcat TYPE slis_t_fieldcat_alv,
Internal table for Top of Page info. in ALV Display
i_alv_top_of_page TYPE slis_t_listheader,
Internal table for ALV Display events
i_events TYPE slis_t_event,
Internal table for storing ALV sort information
i_sort TYPE slis_t_sortinfo_alv,
i_event TYPE slis_t_event.
*& Work area declaration
DATA:
wa_ekko TYPE x_data,
wa_layout TYPE slis_layout_alv,
wa_events TYPE slis_alv_event,
wa_sort TYPE slis_sortinfo_alv.
*& Constant declaration
CONSTANTS:
c_header TYPE char1
VALUE 'H', "Header in ALV
c_item TYPE char1
VALUE 'S'.
*& Start-of-selection event
START-OF-SELECTION.
Select data from ekpo
SELECT ebeln " Doc no
ebelp " Item
matnr " Material
matnr " Material
werks " Plant
werks " Plant
ntgew " Quantity
gewei " Unit
FROM ekpo
INTO TABLE i_ekpo
WHERE ebeln IN s_ebeln
AND ntgew NE '0.00'. IF sy-subrc = 0.
SORT i_ekpo BY ebeln ebelp matnr .
ENDIF.
To build the Page header
PERFORM sub_build_header. "* To prepare field catalog
PERFORM sub_field_catalog. "* Perform to populate the layout structure
PERFORM sub_populate_layout."* Perform to populate the sort table.
PERFORM sub_populate_sort."* Perform to populate ALV event
PERFORM sub_get_event.
END-OF-SELECTION.
* Perform to display ALV report
PERFORM sub_alv_report_display.
*& Form sub_build_header
To build the header
No Parameter
FORM sub_build_header .
Local data declaration
DATA: l_system TYPE char10 , "System id
l_r_line TYPE slis_listheader, "Hold list header
l_date TYPE char10, "Date
l_time TYPE char10, "Time
l_success_records TYPE i, "No of success records
l_title(300) TYPE c. " Title
Title Display
l_r_line-typ = c_header. " header
l_title = 'Test report'(001).
l_r_line-info = l_title.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR l_r_line.
* Run date Display
CLEAR l_date.
l_r_line-typ = c_item. " Item
WRITE: sy-datum TO l_date MM/DD/YYYY.
l_r_line-key = 'Run Date :'(002).
l_r_line-info = l_date.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR: l_r_line,
l_date.ENDFORM. " sub_build_header
*& Form sub_field_catalog
Build Field Catalog
No Parameter
FORM sub_field_catalog .
Build Field Catalog
PERFORM sub_fill_alv_field_catalog USING: '01' '01' 'EBELN'
'I_EKPO' 'L'
'Doc No'(003) ' ' ' ' ' ' ' ', '01' '02' 'EBELP' 'I_EKPO' 'L'
'Item No'(004) 'X' 'X' ' ' ' ', '01' '03' 'MATNR' 'I_EKPO' 'L'
'Material No'(005) 'X' 'X' ' ' ' ', '01' '03' 'MATNR1' 'I_EKPO'
'L'
'Material No'(005) ' ' ' ' ' ' ' ',
'01' '04' 'WERKS' 'I_EKPO' 'L'
'Plant'(006) 'X' 'X' ' ' ' ', '01' '04' 'WERKS1' 'I_EKPO' 'L'
'Plant'(006) ' ' ' ' ' ' ' ', '01' '05' 'NTGEW' 'I_EKPO' 'R'
'Net Weight'(007) ' ' ' ' 'GEWE' 'I_EKPO'.ENDFORM.
" sub_field_catalog*&----
*& Form sub_fill_alv_field_catalog
*& For building Field Catalog
*& p_rowpos Row position
*& p_colpos Col position
*& p_fldnam Fldname
*& p_tabnam Tabname
*& p_justif Justification
*& p_seltext Seltext
*& p_out no out
*& p_tech Technical field
*& p_qfield Quantity field
*& p_qtab Quantity table
FORM sub_fill_alv_field_catalog USING p_rowpos TYPE sycurow
p_colpos TYPE sycucol
p_fldnam TYPE fieldname
p_tabnam TYPE tabname
p_justif TYPE char1
p_seltext TYPE dd03p-scrtext_l
p_out TYPE char1
p_tech TYPE char1
p_qfield TYPE slis_fieldname
p_qtab TYPE slis_tabname.
Local declaration for field
catalog
DATA: wa_lfl_fcat TYPE slis_fieldcat_alv.
wa_lfl_fcat-row_pos = p_rowpos. "Row
wa_lfl_fcat-col_pos = p_colpos. "Column
wa_lfl_fcat-fieldname = p_fldnam. "Field Name
wa_lfl_fcat-tabname = p_tabnam. "Internal Table Name
wa_lfl_fcat-just = p_justif. "Screen Justified
wa_lfl_fcat-seltext_l = p_seltext. "Field Text
wa_lfl_fcat-no_out = p_out. "No output
wa_lfl_fcat-tech = p_tech. "Technical field
wa_lfl_fcat-qfieldname = p_qfield. "Quantity unit
wa_lfl_fcat-qtabname = p_qtab .
"Quantity table
IF p_fldnam = 'NTGEW'.
wa_lfl_fcat-do_sum = 'X'.
ENDIF.
APPEND wa_lfl_fcat TO i_fieldcat.
CLEAR wa_lfl_fcat.
ENDFORM.
" sub_fill_alv_field_catalog*&----
*& Form sub_populate_layout
Populate ALV layout
No Parameter
FORM sub_populate_layout . CLEAR wa_layout.
wa_layout-colwidth_optimize = 'X'.
" Optimization of Col width
ENDFORM. " sub_populate_layout*&----
*& Form sub_populate_sort
Populate ALV sort table
No Parameter
FORM sub_populate_sort .
Sort on material
wa_sort-spos = '01' .
wa_sort-fieldname = 'MATNR'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.
Sort on plant
wa_sort-spos = '02'.
wa_sort-fieldname = 'WERKS'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.
ENDFORM.
" sub_populate_sort*&----
*& Form sub_get_event
Get ALV grid event and pass the form name to subtotal_text
event
No Parameter
FORM sub_get_event .
CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE
'SUBTOTAL_TEXT'. DATA: l_s_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 4
IMPORTING
et_events = i_event
EXCEPTIONS
list_type_wrong = 0
OTHERS = 0.
Subtotal
READ TABLE i_event INTO l_s_event
WITH KEY name = slis_ev_subtotal_text.
IF sy-subrc = 0.
MOVE c_formname_subtotal_text TO l_s_event-form.
MODIFY i_event FROM l_s_event INDEX sy-tabix.
ENDIF.ENDFORM.
" sub_get_event*&----
*& Form sub_alv_report_display
For ALV Report Display
No Parameter
FORM sub_alv_report_display .
DATA: l_repid TYPE syrepid .
l_repid = sy-repid .
This function module for displaying the ALV
report
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
i_callback_top_of_page = 'SUB_ALV_TOP_OF_PAGE'
is_layout = wa_layout
it_fieldcat = i_fieldcat
it_sort = i_sort
it_events = i_event
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = i_ekpo
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i000 WITH 'Error in ALV report display'(055).
ENDIF.
ENDFORM.
" sub_alv_report_display*&----
FORM sub_alv_top_of_page
Call ALV top of page
No parameter
FORM sub_alv_top_of_page. "#EC CALLED*
*To write header for the ALV
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_alv_top_of_page.
ENDFORM.
"alv_top_of_page*&----
*& Form subtotal_text
Build subtotal text
P_total Total
p_subtot_text Subtotal text info
FORM subtotal_text CHANGING
p_total TYPE any
p_subtot_text TYPE slis_subtot_text.
Material level sub total
IF p_subtot_text-criteria = 'MATNR'.
p_subtot_text-display_text_for_subtotal
= 'Material level total'(009).
ENDIF.
Plant level sub total
IF p_subtot_text-criteria = 'WERKS'.
p_subtot_text-display_text_for_subtotal = 'Plant level total'(010).
ENDIF.
ENDFORM. "subtotal_textSelection screen: -
Urgent!!!Need code to fetch all sales order data and download to flat file
urgent!!!Need code to fetch all sales order data and download to flat file
D A T A B A S E T A B L E S *
TABLES: vbak, "Sales Document: Header Data
VBAP, "Sales Document: Item Data
MARA,VAPMA,VBPA,VBLB,VBEP,
VBKD. "Murali Poli .
I N T E R N A L T A B L E S *
Internal table to hold the Delphi material numbers file
DATA: BEGIN OF tbl_matnr OCCURS 0,
matnr LIKE mara-matnr, "Material number
END OF tbl_matnr.
Internal table to hold customer cross ref data
DATA: BEGIN OF TBL_CUST_SA OCCURS 0,
OLD_KUNNR LIKE KNA1-KUNNR, "Old Customer
OLD_VKORG LIKE A004-VKORG, "Old Sales organisation
OLD_VTWEG LIKE A004-VTWEG, "Old Distribution channel
NEW_KUNNR LIKE KNA1-KUNNR, "New Customer
NEW_VKORG LIKE A004-VKORG, "New Sales organisation
NEW_VTWEG LIKE A004-VTWEG, "New Distribution channel
PARVW LIKE VBPA-PARVW , "Partner function
END OF TBL_CUST_SA.
Internal table to check the material numbers of the input file
DATA: tbl_mara LIKE tbl_matnr OCCURS 0 WITH HEADER LINE.
Work area to hold the header record
DATA: BEGIN OF w_sa_header,
recordtype(1), "Record type
schedulingagreement(4), "SA Type
contractreference(10), "Contract Reference
salesorg(4), "Sales Organization
distrchannel(2), "Distribution channel
division(2), "Sales division
PONUMBER(35), "Purchase order number"gsbhondave
soldtoparty(12), "Sold-to party
shiptoparty(12), "Ship-to party
collectivenumber(10), "Collective number
description(40), "Description
roundqty(13), "Rounding Qty
pdsi(4), "PDI
correctiondeliverydate(8), "Correction Delivery Dt
correctionqty(13), "Correction Qty
cumulativereceivedqty(13), "Cumulative Received Qty
forecastdeliveryschedule(17), "Forecast Delivery Schedule
forecastdelscheddate(8), "Forecast Delivery Schedule Dt
jitdeliveryschedule(17), "JIT Delivery Schedule
jitdeliveryscheduledate(8), "JIT Delivery Schedule Dt
materialnumber(18), "Material number
plant(4), "Plant
item_category(4), "Item Category
suppliercode(15), "Supplier code
scac(4), "SCAC
deloc(12), "DELOC
pkg_id(12), "Packaging ID
catno(30), "Ultimate Cust Part
lgort(4), "Storage Location
vstel(4), "Shipping point
Adding fields by Murali Poli
VSBED(2), "Shipping conditions
INCO1(3), "Incoterms (part 1)
INCO2(28), "Incoterms (part 2)
ZECN(1), "Engineering Change Letter
End of Adding fields by Murali Poli
END OF w_sa_header.
Work area to hold the forecast record
DATA: BEGIN OF w_sa_forecast,
recordtype(1), "Record Type
dateformat(1), "Date format
forecastdate(8), "Forecast date
forecastorderqty(13), "Order Qty
END OF w_sa_forecast.
Work area to hold the jit record
DATA: BEGIN OF w_sa_jit,
recordtype(1), "Record Type
dateformat(1), "Date format
jitdate(8), "JIT date
jittime(6), "JIT Time
jitorderqty(13), "Order Qty
END OF w_sa_jit.
Internal table to hold the Extracted data
DATA: BEGIN OF tbl_record OCCURS 0,
record_type,
DATA(400), " changed from 325 to 400
END OF tbl_record.
Internal table to capture the errors
DATA: BEGIN OF tbl_error OCCURS 0,
error_text(135),
END OF tbl_error.
Internal table to hold the records of VBAP_VAPMA
DATA: BEGIN OF tbl_vbap_vapma OCCURS 0,
VBELN LIKE VAPMA-VBELN, "Sales and distribution document number
POSNR LIKE VAPMA-POSNR, "Item number
AUART LIKE VAPMA-AUART, "SA Type
VKORG LIKE VAPMA-VKORG, "Sales Organization
VTWEG LIKE VAPMA-VTWEG, "Distribution channel
SPART LIKE VAPMA-SPART, "Division
KUNNR LIKE VAPMA-KUNNR, "Sold-to
plavo like vbap-plavo, "PDI
MATNR LIKE VAPMA-MATNR, "Material number
WERKS LIKE VAPMA-WERKS, "Plant
TRVOG LIKE VAPMA-TRVOG, "Transaction group
VBTYP LIKE VBAK-VBTYP, "SD document category "Murali Poli
VSBED LIKE VBAK-VSBED, "Shipping conditions "Murali Poli
BSTNK LIKE VBAK-BSTNK, " Purchase order number " gsbhondave
KTEXT LIKE VBAK-KTEXT,
VGBEL LIKE VBAP-VGBEL, "Reference document no
ABLFZ LIKE VBAP-ABLFZ, "Rounding qty
PSTYV LIKE VBAP-PSTYV, "Item category
LGORT LIKE VBAP-LGORT, "Storage location
VSTEL LIKE VBAP-VSTEL, "Shipping point
END OF TBL_VBAP_VAPMA.
DATA: BEGIN OF TBL_VBAP OCCURS 0,
VBELN LIKE VAPMA-VBELN,
POSNR LIKE VAPMA-POSNR,
VGBEL LIKE VBAP-VGBEL,
ABLFZ LIKE VBAP-ABLFZ,
PSTYV LIKE VBAP-PSTYV,
LGORT LIKE VBAP-LGORT,
VSTEL LIKE VBAP-VSTEL,
END OF TBL_VBAP.
Adding by Murali Poli
DATA:BEGIN OF TBL_VBKD OCCURS 0,
VBELN LIKE VBKD-VBELN,
POSNR LIKE VBKD-POSNR,
INCO1 LIKE VBKD-INCO1,
INCO2 LIKE VBKD-INCO2,
END OF TBL_VBKD.
End by Murali Poli
Internal table to hold temporarily the records of VBAP_VAPMA
DATA: tbl_vbap_vapma_temp LIKE tbl_vbap_vapma OCCURS 0 WITH HEADER LINE.
Internal table to hold the records of VBPA
DATA: BEGIN OF tbl_vbpa OCCURS 0,
vbeln LIKE vbpa-vbeln, "Sales and distribution
"document number
posnr LIKE vbpa-posnr, "Item number
parvw LIKE vbpa-parvw, "SP Partner type
kunnr LIKE vbpa-kunnr, "Customer number
lifnr LIKE vbpa-lifnr, "SCAC code "DN3K923909
END OF tbl_vbpa.
Internal table to hold the records of VBLB (Forecast)
DATA: BEGIN OF tbl_vblb_forecast OCCURS 0,
vbeln LIKE vblb-vbeln,
posnr LIKE vblb-posnr,
abart LIKE vblb-abart, "Release type
abefz LIKE vblb-abefz, "Cumulative Quantity
"Received by Customer
labnk LIKE vblb-labnk, "Delivery schedule
abrdt LIKE vblb-abrdt, "Deivery date
gjkun LIKE vblb-gjkun, "Current fiscal year
vjkun LIKE vblb-vjkun, "Previous fiscal year
END OF tbl_vblb_forecast.
Internal table to hold the records of VBLB (JIT)
DATA: BEGIN OF tbl_vblb_jit OCCURS 0,
vbeln LIKE vblb-vbeln,
posnr LIKE vblb-posnr,
abart LIKE vblb-abart, "Release type
abefz LIKE vblb-abefz, "Cumulative Quantity
"Received by Customer
labnk LIKE vblb-labnk, "Delivery schedule
abrdt LIKE vblb-abrdt, "Deivery date
gjkun LIKE vblb-gjkun, "Current fiscal year
vjkun LIKE vblb-vjkun, "Previous fiscal year
END OF tbl_vblb_jit.
Internal table to hold the Forecast Schedule lines
DATA: BEGIN OF tbl_vbep_forecast OCCURS 0,
vbeln LIKE vbep-vbeln, "Sales document
posnr LIKE vbep-posnr, "Item number
etenr LIKE vbep-etenr, "Schedule line
edatu LIKE vbep-edatu, "Schedule line date
ezeit LIKE vbep-ezeit, "Arrival time "DN3K923909
wmeng LIKE vbep-wmeng, "Order quantity in sales units
prgrs LIKE vbep-prgrs, "Date type (day, week, month, interval)
abart LIKE vbep-abart, "Release type "DN3K923909
END OF tbl_vbep_forecast.
Internal table to hold the JIT Schedule lines
DATA: BEGIN OF tbl_vbep_jit OCCURS 0,
vbeln LIKE vbep-vbeln, "Sales document
posnr LIKE vbep-posnr, "Item number
etenr LIKE vbep-etenr, "Schedule line
edatu LIKE vbep-edatu, "Schedule line date
ezeit LIKE vbep-ezeit, "Arrival time
wmeng LIKE vbep-wmeng, "Order quantity in sales units
prgrs LIKE vbep-prgrs, "Date type (day, week, month, interval)
abart LIKE vbep-abart, "Release type "DN3K923909
END OF tbl_vbep_jit.
Internal table for Long texts
DATA: tbl_tline LIKE tline OCCURS 0 WITH HEADER LINE.
V A R I A B L E S *
DATA: v_count TYPE i,
V_REPID LIKE SY-REPID,
w_eins LIKE vbap-umvkz VALUE 1,
v_cumulative_deli_qty LIKE vblb-abefz,
v_text_name LIKE thead-tdname,
v_week LIKE scal-week,
v_count_h TYPE i, "Count of header records
v_count_f TYPE i, "Count of Forecast records
v_count_j TYPE i, "Count of JIT records
v_count_t TYPE i. "Count of Shipping instructions
TYPES: unixfile LIKE rlgrap-filename,
unixdir LIKE rlgrap-filename.
DATA: v_file1 TYPE unixfile,
v_file2 TYPE unixfile.
DATA: tbl_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE.
*data tbl_cust_sa.
S E L E C T - O P T I O N S / P A R A M E T E R S *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
Valid-to date
PARAMETER:
p_gueen like vbak-gueen obligatory,
Correction Delivery date
P_DELDT LIKE VBAK-GUEEN OBLIGATORY.
Begin of Changes - TIR-40266
Plant
SELECT-OPTIONS: s_werks FOR vbap-werks.
*SD document category
SELECT-OPTIONS: S_VBTYP FOR VBAK-VBTYP OBLIGATORY." Murali Poli
Sales organization
SELECT-OPTIONS: S_VKORG FOR VBAK-VKORG OBLIGATORY.
End of Changes - TIR-40266
SELECTION-SCREEN SKIP 1.
PARAMETER: r1 RADIOBUTTON GROUP rg1.
Material numbers file
PARAMETER: P_FILE1 LIKE RLGRAP-FILENAME.
PARAMETER: P_FILE6 LIKE RLGRAP-FILENAME.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(32) text-003.
SELECTION-SCREEN POSITION 33.
SD SA Extract file
PARAMETER: P_FILE2 LIKE RLGRAP-FILENAME
DEFAULT 'C:\sd_sa_extract.txt'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 2.
PARAMETER: r2 RADIOBUTTON GROUP rg1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(32) text-004.
SELECTION-SCREEN POSITION 33.
PARAMETER: p_path1 TYPE unixdir OBLIGATORY DEFAULT '/tmp/'.
SELECTION-SCREEN END OF LINE.
Material numbers file
PARAMETER: PU_FILE1 LIKE RLGRAP-FILENAME.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(32) text-003.
SELECTION-SCREEN POSITION 33.
SD SA Extract file
PARAMETER: PU_FILE2 LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(64) text-005.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
A T S E L E C T I O N S C R E E N E V E N T S *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
v_repid = syst-repid.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = v_repid
CHANGING
file_name = p_file1
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e009.
Message shown as 'Error while getting the file name'
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE6.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = v_repid
CHANGING
FILE_NAME = P_FILE6
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e009.
Message shown as 'Error while getting the file name'
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file2.
v_repid = syst-repid.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = v_repid
CHANGING
file_name = p_file2
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e009.
Message shown as 'Error while getting the file name'
ENDIF.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP rg1.
IF r1 = 'X'.
IF p_file1 = '' OR p_file2 = ''.
MESSAGE w000 WITH 'Please select a PC file'.
ENDIF.
LOOP AT SCREEN.
IF screen-name = 'P_FILE1' OR
screen-name = 'P_FILE2'.
screen-input = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSEIF r2 = 'X'.
PERFORM get_value USING 'P_PATH1' CHANGING p_path1.
PERFORM get_value USING 'PU_FILE1' CHANGING pu_file1.
PERFORM get_value USING 'P_PATH1' CHANGING p_path1.
PERFORM get_value USING 'PU_FILE2' CHANGING pu_file2.
IF pu_file1 = '' OR pu_file2 = ''.
MESSAGE w000 WITH 'Please select a UNIX file'.
LOOP AT SCREEN.
IF screen-name = 'PU_FILE1' OR
screen-name = 'PU_FILE2'.
screen-input = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pu_file1.
PERFORM get_value USING 'P_PATH1' CHANGING p_path1.
PERFORM get_value USING 'PU_FILE1' CHANGING pu_file1.
PERFORM popup_unix_filename CHANGING p_path1 pu_file1.
PERFORM set_value USING 'P_PATH1' p_path1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pu_file2.
PERFORM get_value USING 'P_PATH1' CHANGING p_path1.
PERFORM get_value USING 'PU_FILE2' CHANGING pu_file2.
PERFORM popup_unix_filename CHANGING p_path1 pu_file2.
PERFORM set_value USING 'P_PATH1' p_path1.
T O P - O F - P A G E *
TOP-OF-PAGE.
PERFORM delphi_header(z_delphi_header_footer)
USING
'E & S SD SCHEDULING AGREEMENTS EXTRACT DATA'(016)
space
sy-linsz.
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
IF r1 = 'X'.
PERFORM upload_data_from_pc_files.
ELSEIF r2 = 'X'.
PERFORM upload_data_from_unix_files.
ENDIF.
PERFORM check_input_data.
PERFORM get_sd_sa_data.
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
PERFORM process_data.
S U B - R O U T I N E S *
*& Form get_value
FORM get_value USING value(p_fieldname)
CHANGING value(p_fieldvalue).
IF v_repid IS INITIAL.
v_repid = syst-repid.
ENDIF.
REFRESH: tbl_dynpfields.
CLEAR: tbl_dynpfields.
tbl_dynpfields-fieldname = p_fieldname.
APPEND tbl_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = v_repid
dynumb = '1000'
TABLES
dynpfields = tbl_dynpfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF syst-subrc = 0.
READ TABLE tbl_dynpfields INDEX 1.
p_fieldvalue = tbl_dynpfields-fieldvalue.
ENDIF.
REFRESH: tbl_dynpfields.
ENDFORM. " get_value
FORM POPUP_UNIX_FILENAME *
Pops up dialog box to explore the unix filesystem and select a file *
--> VALUE(P_PATH) Path where to start exploring from *
--> VALUE(P_FILENAME) Default filename in the dialog box *
FORM popup_unix_filename CHANGING value(p_path) TYPE unixdir
value(p_filename) TYPE unixfile.
DATA: v_length TYPE i,
v_filename TYPE unixfile,
v_directory LIKE draw-filep,
v_file LIKE draw-filep.
IF p_filename(1) = '/' OR
p_path IS INITIAL.
v_filename = p_filename.
ELSE.
v_length = strlen( p_path ) - 1.
IF p_path+v_length(1) <> '/'.
CONCATENATE p_path '/' INTO p_path.
ENDIF.
CONCATENATE p_path p_filename INTO v_filename.
ENDIF.
CALL FUNCTION 'Z_UNIX_FILENAME_GET'
EXPORTING
def_filename = v_filename
mask = ',*.'
mode = 'G'
title = 'Get UNIX file...'
IMPORTING
filename = v_filename
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
CHECK syst-subrc = 0.
CALL FUNCTION 'CV120_SPLIT_PATH'
EXPORTING
pf_path = v_filename
IMPORTING
pfx_path = v_directory
pfx_file = v_file
EXCEPTIONS
OTHERS = 1.
CHECK syst-subrc = 0.
IF v_directory = p_path.
p_filename = v_file.
ELSE.
p_filename = v_filename.
ENDIF.
ENDFORM.
FORM SET_VALUE *
Sets the value of a field on the selection screen. *
--> VALUE(P_FIELDNAME) Name of the field on the selection screen*
--> VALUE(P_FIELDVALUE) Value of the field *
FORM set_value USING value(p_fieldname)
value(p_fieldvalue).
IF v_repid IS INITIAL.
v_repid = syst-repid.
ENDIF.
CLEAR: tbl_dynpfields.
tbl_dynpfields-fieldname = p_fieldname.
tbl_dynpfields-fieldvalue = p_fieldvalue.
APPEND tbl_dynpfields.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = v_repid
dynumb = '1000'
TABLES
dynpfields = tbl_dynpfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
ENDFORM.
*& Form upload_data_from_pc_files
This subroutine is used to upload the data from input files
FORM upload_data_from_pc_files.
REFRESH: tbl_matnr.
CLEAR: tbl_matnr.
Upload the data from Delphi Materials file
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_file1
filetype = 'DAT'
TABLES
data_tab = tbl_matnr
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE e008 WITH 'Materials file'.
Message shown as "Error while reading Materials file"
ENDIF.
IF sy-subrc = 0 AND tbl_matnr[] IS INITIAL.
MESSAGE e013 WITH 'Materials'.
Message shown as "No records found in Materials file"
ENDIF.
DELETE tbl_matnr WHERE matnr = ''.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = P_FILE6
filetype = 'DAT'
TABLES
DATA_TAB = TBL_CUST_SA
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE E008 WITH 'Customer/Sales Area Cross Reference file'.
Message shown as "Error while reading Materials file"
ENDIF.
ENDFORM. " upload_data_from_pc_files
*& Form upload_data_from_unix_files
This subroutine is used to upload the data from UNIX files
FORM upload_data_from_unix_files.
REFRESH: tbl_matnr.
CLEAR: tbl_matnr.
Get the complete filename for the Materials file
PERFORM get_full_filename USING pu_file1 CHANGING v_file1.
Open the Materials file
PERFORM open_dataset USING v_file1 'I' 'T' 1.
CHECK syst-subrc = 0.
Read the materials file
DO.
READ DATASET v_file1 INTO tbl_matnr.
IF syst-subrc <> 0.
EXIT.
ENDIF.
Populate the read data into the internal table
APPEND tbl_matnr.
ENDDO.
PERFORM close_dataset USING v_file1.
ENDFORM. " upload_data_from_unix_files
FORM GET_FULL_FILENAME *
Uses the logical path if necessary to get the full filename *
If the filename already has a directory specified, that itself will *
be the full filename *
Else the logical path for Conversions will be prefixed to the given *
filename *
FORM get_full_filename USING value(p_file) TYPE unixfile
CHANGING value(p_fullfile) TYPE unixfile.
DATA: v_length TYPE i.
IF p_file(1) = '/' OR
p_path1 IS INITIAL.
p_fullfile = p_file.
ELSE.
v_length = strlen( p_path1 ) - 1.
IF p_path1+v_length(1) = '/'.
CONCATENATE p_path1 p_file INTO p_fullfile.
ELSE.
CONCATENATE p_path1 '/' p_file INTO p_fullfile.
ENDIF.
ENDIF.
ENDFORM.
FORM OPEN_DATASET *
Opens dataset in the specified mode *
--> VALUE(P_FILE) Name of file to be opened *
--> VALUE(P_IOMODE) 'I' for Input / 'O' for Output *
--> VALUE(P_BTMODE) 'T' for Text / 'B' for Binary *
--> VALUE(P_LEVEL) If set to > 1, will write error message to *
list Else will supress the error message but *
will be available in SYST-MSGV1 *
FORM open_dataset USING value(p_file) TYPE unixfile
value(p_iomode) TYPE c
value(p_btmode) TYPE c
value(p_level) TYPE i.
DATA: v_rc LIKE syst-subrc,
v_msg(100),
v_listmsg(100).
IF p_iomode = 'O'.
IF p_btmode = 'B'.
OPEN DATASET p_file FOR OUTPUT IN BINARY MODE MESSAGE v_msg.
ELSE.
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE MESSAGE v_msg.
ENDIF.
ELSE.
IF p_btmode = 'B'.
OPEN DATASET p_file FOR INPUT IN BINARY MODE MESSAGE v_msg.
ELSE.
OPEN DATASET p_file FOR INPUT IN TEXT MODE MESSAGE v_msg.
ENDIF.
ENDIF.
IF syst-subrc <> 0.
v_rc = syst-subrc.
syst-msgv1 = v_msg.
IF p_level > 0.
CONCATENATE 'Unable to open' p_file
INTO v_listmsg
SEPARATED BY space.
IF p_iomode = 'O'.
CONCATENATE v_listmsg 'for Output'
INTO v_listmsg
SEPARATED BY space.
ELSE.
CONCATENATE v_listmsg 'for Input'
INTO v_listmsg
SEPARATED BY space.
ENDIF.
IF p_iomode = 'B'.
CONCATENATE v_listmsg 'in Binary mode'
INTO v_listmsg
SEPARATED BY space.
ELSE.
CONCATENATE v_listmsg 'in Text mode'
INTO v_listmsg
SEPARATED BY space.
ENDIF.
WRITE: / v_listmsg.
WRITE: /3 '--', v_msg.
syst-subrc = v_rc.
ENDIF.
ENDIF.
ENDFORM.
FORM CLOSE_DATASET *
Closes dataset *
--> VALUE(P_FILE) Name of the file to be closed *
FORM close_dataset USING value(p_file) TYPE unixfile.
CLOSE DATASET p_file.
ENDFORM.
*& Form check_input_data
This subroutine is used to check the data from X Ref files
FORM check_input_data.
DESCRIBE TABLE tbl_matnr LINES v_count.
Use the material conversion routine to pad the material numbers
with zeroes
LOOP AT tbl_matnr.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = tbl_matnr-matnr
IMPORTING
output = tbl_matnr-matnr
EXCEPTIONS
length_error = 1
OTHERS = 2.
TRANSLATE tbl_matnr-matnr TO UPPER CASE.
MODIFY tbl_matnr.
ENDLOOP.
Get the materials from SAP database using the input materials
IF NOT tbl_matnr[] IS INITIAL.
SORT tbl_matnr BY matnr.
SELECT matnr FROM mara
INTO TABLE tbl_mara
FOR ALL ENTRIES IN tbl_matnr
WHERE matnr = tbl_matnr-matnr.
SORT tbl_mara BY matnr.
ENDIF.
Check the existence of input materials in SAP database
LOOP AT tbl_matnr.
READ TABLE tbl_mara WITH KEY matnr = tbl_matnr-matnr
BINARY SEARCH.
IF sy-subrc <> 0.
CONCATENATE 'Material' tbl_matnr-matnr 'does not exist'
INTO tbl_error-error_text
SEPARATED BY space.
APPEND tbl_error.
CLEAR tbl_error.
DELETE tbl_matnr.
ENDIF.
ENDLOOP.
ENDFORM. " check_input_data
*& Form get_sd_sa_data
This subroutine is used to get the SD Scheduling data from database
FORM get_sd_sa_data.
*begin of changes - DN3K923909
DATA: tbl_vbep LIKE tbl_vbep_forecast OCCURS 0 WITH HEADER LINE,
tbl_vblb LIKE tbl_vblb_forecast OCCURS 0 WITH HEADER LINE.
*end of changes - ND3K923909
REFRESH: tbl_vbap_vapma, tbl_vbpa, tbl_vblb_forecast,
tbl_vblb_jit, tbl_vbep_forecast, tbl_vbep_jit.
CLEAR: tbl_vbap_vapma, tbl_vbpa, tbl_vblb_forecast,
tbl_vblb_jit, tbl_vbep_forecast, tbl_vbep_jit.
Get the Scheduling Agreements
SELECT avbeln aposnr
a~vgbel
AAUART avkorg avtweg aspart a~kunnr
a~ablfz
A~MATNR
a~pstyv
a~werks
a~lgort
a~vstel
ATRVOG BVBTYP BVSBED BBSTNK B~KTEXT
FROM VAPMA AS A INNER JOIN VBAK AS B
ON bvbeln = avbeln
INTO TABLE tbl_vbap_vapma
FOR ALL ENTRIES IN tbl_mara
WHERE a~matnr = tbl_mara-matnr
Begin of Changes - TIR-40266
AND a~vkorg IN s_vkorg
AND a~werks IN s_werks
End of Changes - TIR-40266
AND A~TRVOG = '3'
AND B~VBTYP IN S_VBTYP. "Murali Poli
and a~abgru = ''
and b~gueen >= p_gueen.
SORT tbl_vbap_vapma BY vbeln posnr.
IF NOT tbl_vbap_vapma[] IS INITIAL.
SELECT VBELN POSNR VGBEL ABLFZ PSTYV LGORT VSTEL FROM VBAP
INTO TABLE TBL_VBAP FOR ALL ENTRIES IN TBL_VBAP_VAPMA
WHERE VBELN = TBL_VBAP_VAPMA-VBELN
AND POSNR = TBL_VBAP_VAPMA-POSNR.
LOOP AT TBL_VBAP_VAPMA.
READ TABLE TBL_VBAP WITH KEY VBELN = TBL_VBAP_VAPMA-VBELN
POSNR = TBL_VBAP_VAPMA-POSNR.
IF SY-SUBRC = 0 .
TBL_VBAP_VAPMA-VBELN = TBL_VBAP-VBELN.
TBL_VBAP_VAPMA-POSNR = TBL_VBAP-POSNR.
TBL_VBAP_VAPMA-VGBEL = TBL_VBAP-VGBEL.
TBL_VBAP_VAPMA-ABLFZ = TBL_VBAP-ABLFZ.
TBL_VBAP_VAPMA-PSTYV = TBL_VBAP-PSTYV.
TBL_VBAP_VAPMA-LGORT = TBL_VBAP-LGORT.
TBL_VBAP_VAPMA-VSTEL = TBL_VBAP-VSTEL.
MODIFY TBL_VBAP_VAPMA .
ENDIF.
ENDLOOP.
tbl_vbap_vapma_temp[] = tbl_vbap_vapma[].
*--Begin of UnCommentDIR-51476-DN3K932648
-------------- Begin of Comment ----------- CCR-50124 DN3K928457
SORT tbl_vbap_vapma_temp BY vbeln.
DELETE ADJACENT DUPLICATES FROM tbl_vbap_vapma COMPARING vbeln.
-------------- End of Comment ----------- CCR-50124 DN3K928457
*--End of UnCommentDIR-51476-DN3K932648
*--Begin of CommentDIR-51476-DN3K932648
-------------- Begin of Insert ----------- CCR-50124 DN3K928457
Duplicate Line Items are being deleted.
SORT tbl_vbap_vapma BY vbeln posnr.
DELETE ADJACENT DUPLICATES FROM tbl_vbap_vapma COMPARING vbeln posnr.
The field for contract in SA is being modified for uniqueness
loop at tbl_vbap_vapma.
clear: v_vgbel, v_posnr.
v_vgbel = tbl_vbap_vapma-vgbel.
v_posnr = tbl_vbap_vapma-posnr.
if not v_vgbel is initial .
shift v_vgbel left deleting leading v_zero.
shift v_posnr left deleting leading v_zero.
v_posnr = v_posnr / 10.
condense: v_vgbel, v_posnr.
if v_posnr le 9.
concatenate v_vgbel '0' v_posnr into v_vgbel.
else.
concatenate v_vgbel v_posnr into v_vgbel.
endif.
endif.
tbl_vbap_vapma-vgbel = v_vgbel.
modify tbl_vbap_vapma.
endloop.
-------------- End of Insert ----------- CCR-50124 DN3K928457
*--End of CommentDIR-51476-DN3K932648
Get the Partner details
select vbeln posnr parvw kunnr
*Start of Murali Poli
SELECT VBELN POSNR INCO1 INCO2
INTO TABLE TBL_VBKD
FROM VBKD
FOR ALL ENTRIES IN TBL_VBAP_VAPMA
WHERE VBELN = TBL_VBAP_VAPMA-VBELN.
and posnr = tbl_vbap_vapma-posnr.
*End of Murali Poli
SELECT vbeln posnr parvw kunnr lifnr "DN3K923909
INTO TABLE tbl_vbpa
FROM vbpa
FOR ALL ENTRIES IN tbl_vbap_vapma_temp
WHERE vbeln = tbl_vbap_vapma_temp-vbeln
AND parvw IN ('WE', 'SP').
*begin of changes - DN3K923909
select vbeln posnr abart abefz labnk abrdt gjkun vjkun
into table tbl_vblb_forecast
from vblb
for all entries in tbl_vbap_vapma
where vbeln = tbl_vbap_vapma-vbeln
and posnr = tbl_vbap_vapma-posnr
and abrli = '0000'
and abart = '1'.
SELECT vbeln posnr abart abefz labnk abrdt gjkun vjkun
INTO TABLE tbl_vblb
FROM vblb
FOR ALL ENTRIES IN tbl_vbap_vapma
WHERE vbeln = tbl_vbap_vapma-vbeln
AND posnr = tbl_vbap_vapma-posnr
AND abrli = '0000'
AND abart IN ('1','2').
SELECT vbeln posnr etenr edatu ezeit wmeng prgrs abart
INTO TABLE tbl_vbep
FROM vbep
FOR ALL ENTRIES IN tbl_vbap_vapma
WHERE vbeln = tbl_vbap_vapma-vbeln
AND posnr = tbl_vbap_vapma-posnr
AND abart IN ('1','2').
Get the current Forecast delivery schedule
tbl_vblb_forecast[] = tbl_vblb[].
DELETE tbl_vblb_forecast WHERE abart = '2'.
Get the current Forecast Schedule lines
tbl_vbep_forecast[] = tbl_vbep[].
DELETE tbl_vbep_forecast WHERE abart = '2'.
Get the current JIT delivery Schedule
select vbeln posnr abart abefz labnk abrdt gjkun vjkun
into table tbl_vblb_jit
from vblb
for all entries in tbl_vbap_vapma
where vbeln = tbl_vbap_vapma-vbeln
and posnr = tbl_vbap_vapma-posnr -
My compaq presario cq57 wont download any new files.
hey guys I'm in need of some help. After doing a system recovery my computer will no longer download any new files from the internet. from browsers to games I've tried it all. and nothing will download. it keeps coming up with a message that says that it can not find the file that im trying to use. so i was wondering what might be causing this and ho wi would fix this, if its possible to fix.
Hi @christian12 ,
Thank you for visiting the HP Support Forums and Welcome. I have looked into your issue about your Compaq Presario CQ57 Notebook and issues with installing drivers. First, try to click the Windows icon, type services in the Search box, and then click or tap View Local Services. Scroll down to the Windows Installer. Startup type should be - Automatic, and Service Status should be - started. Restart the computer after this step and try installing again. If this is not automatic and started that is why you can not install drivers.
Please note remove any and all USB devices. Disconnect all non-essential devices, as these could cause some issues.
Here is a link to the HP Support Assistant if you need it. Just download and run the application and it will help with the software and drivers on your system at the time of purchase.
Hope this helps.
Thanks.
Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
Click the “Kudos, Thumbs Up" on the bottom to say “Thanks” for helping!
Maybe you are looking for
-
Hi All, I am new to the concepts of BSP and ABAP web dynpro,Can some body please guide me on what is the difference between BSP and ABAP web dynpro. Thanks in Advance.
-
Digital signatures and view document througt URL
Hello together, We use status document and digital signatures workflow and we canu2019t use URL link to documents which have been approved. In browseru2019s window I see digital signatures information and error :u201DHTTP 404 the web page cannot be f
-
APEX 2-level tab App. not showing tabs in IE 8
Hi everybody! I've created a 2-level tab application (first it was APEX 3.2 and I upgraded to APEX 4 but it's still happening) and I can only see the parent tabs in Firefox, cause in Internet Explorer 8 they won't show, both over Windows XP or 7. The
-
Help needed! connecting 2 ipods to one pc
does anyone have experience with hooking up 2 ipods to one pc? i have both a shuffle and a nano (which is new and needs to be installed) but i am worried that the pc will get confused if i hook up 2 different models with different stuff on them! can
-
UCCX on VMWare needs ethernet promiscuous mode?
Hello all, Just noticed something in the vmware host logs: 2013-06-08T16:29:52.001Z cpu20:14694)etherswitch: L2Sec_EnforcePortCompliance:153: client ccx.eth0 requested promiscuous mode on port 0x4000024, disallowed by vswitch policy A