11-28-2007 2:04 PM
Hi all,
iam working on SAp 4.7 version.
the source code is going to dump. the purpose of this to convert data to XML file and store in presentation server. but i hv to use FM SAP_CONVERT_TO_XML_FORMAT. (No other options).
i'm providing source code also.plz any one help me out. its urgent.
TABLES: VEKP,
LIKP,
VBAK.
TYPE-POOLS: IXML.
DATA: BEGIN OF ITAB OCCURS 0,
BRGEW LIKE VEKP-BRGEW,
LAENG LIKE VEKP-LAENG,
BREIT LIKE VEKP-BREIT,
EXIDV LIKE VEKP-EXIDV,
HOEHE LIKE VEKP-HOEHE,
VBELN LIKE LIKP-VBELN,
KUNNR LIKE LIKP-KUNNR,
VDATU LIKE VBAK-VDATU,
END OF ITAB.
TYPES: BEGIN OF MY_XML ,
DATA(256) TYPE X,
END OF MY_XML.
DATA: XML_TABLE TYPE TABLE OF MY_XML.
DATA: L_XML_SIZE TYPE I,
LD_FULLPATH TYPE STRING.
PARAMETERS: HU LIKE VEKP-EXIDV.
START-OF-SELECTION.
SELECT A~BRGEW
A~LAENG
A~BREIT
A~EXIDV
A~HOEHE
B~VBELN
B~KUNNR
C~VDATU
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM VEKP AS A INNER JOIN LIKP AS B
ON AERDAT = BERDAT INNER JOIN VBAK AS C
ON BERDAT = CERDAT
WHERE A~EXIDV = HU.
CALL FUNCTION 'SAP_CONVERT_TO_XML_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = ','
I_LINE_HEADER =
I_FILENAME =
I_APPL_KEEP = ' '
I_XML_DOC_NAME =
IMPORTING
PE_BIN_FILESIZE = L_XML_SIZE
TABLES
I_TAB_SAP_DATA = ITAB
CHANGING
I_TAB_CONVERTED_DATA = XML_TABLE
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = L_XML_SIZE
FILENAME = LD_FULLPATH
FILETYPE = 'BIN'
IMPORTING
FILELENGTH = L_XML_SIZE
TABLES
DATA_TAB = XML_TABLE
FIELDNAMES =
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
Thanks.
Girish M
11-28-2007 2:23 PM
Hi,
there is one error in ur code.
TABLES: VEKP,
LIKP,
VBAK.
TYPE-POOLS: IXML.
DATA: BEGIN OF ITAB OCCURS 0,
BRGEW LIKE VEKP-BRGEW,
LAENG LIKE VEKP-LAENG,
BREIT LIKE VEKP-BREIT,
EXIDV LIKE VEKP-EXIDV,
HOEHE LIKE VEKP-HOEHE,
VBELN LIKE LIKP-VBELN,
KUNNR LIKE LIKP-KUNNR,
VDATU LIKE VBAK-VDATU,
END OF ITAB.
TYPES: BEGIN OF MY_XML ,
DATA(256) TYPE X,
END OF MY_XML.
DATA: XML_TABLE TYPE TABLE OF MY_XML.
DATA: L_XML_SIZE TYPE I,
<b>LD_FULLPATH TYPE STRING value 'C:\test.txt'</b>.
PARAMETERS: HU LIKE VEKP-EXIDV.
START-OF-SELECTION.
SELECT A~BRGEW
A~LAENG
A~BREIT
A~EXIDV
A~HOEHE
B~VBELN
B~KUNNR
C~VDATU
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM VEKP AS A INNER JOIN LIKP AS B
ON AERDAT = BERDAT INNER JOIN VBAK AS C
ON BERDAT = CERDAT
WHERE A~EXIDV = HU.
CALL FUNCTION 'SAP_CONVERT_TO_XML_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = ','
I_LINE_HEADER =
I_FILENAME =
I_APPL_KEEP = ' '
I_XML_DOC_NAME =
IMPORTING
PE_BIN_FILESIZE = L_XML_SIZE
TABLES
I_TAB_SAP_DATA = ITAB
CHANGING
I_TAB_CONVERTED_DATA = XML_TABLE
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = L_XML_SIZE
FILENAME = LD_FULLPATH
FILETYPE = 'BIN'
IMPORTING
FILELENGTH = L_XML_SIZE
TABLES
DATA_TAB = XML_TABLE
FIELDNAMES =
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
Regs
Manas
Pls reward the points.
11-28-2007 2:20 PM
Hi
i did the same thing in ECC6.0 and its running smoothly and working fine.
&----
*& Report ZTESTSDN
*&
&----
*&
*&
&----
REPORT ztestsdn.
TABLES: vekp,
likp,
vbak.
TYPE-POOLS: ixml.
DATA: itab LIKE but000 OCCURS 0 WITH HEADER LINE.
TYPES: BEGIN OF my_xml ,
data(256) TYPE x,
END OF my_xml.
DATA: xml_table TYPE TABLE OF my_xml.
DATA: l_xml_size TYPE i,
ld_fullpath TYPE string.
START-OF-SELECTION.
SELECT * FROM but000 INTO TABLE itab UP TO 10 ROWS.
CALL FUNCTION 'SAP_CONVERT_TO_XML_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = ','
I_LINE_HEADER =
I_FILENAME =
I_APPL_KEEP = ' '
I_XML_DOC_NAME =
IMPORTING
pe_bin_filesize = l_xml_size
TABLES
i_tab_sap_data = itab
CHANGING
i_tab_converted_data = xml_table
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = l_xml_size
filename = 'C:\test.txt'
filetype = 'BIN'
IMPORTING
filelength = l_xml_size
TABLES
data_tab = xml_table
FIELDNAMES =
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Regs
Manas
11-28-2007 2:22 PM
You can use ST. Here is a sample code for your program.
Instead of SAP_CONVERT_TO_XML_FORMAT
use the following code.
data : xmlstr type string,
date like syst-datum,
time like syst-uzeit.
call transformation id
source xmldat = syst-datum "Optional
xmltim = syst-uzeit "Optional
ref = itab[]
result xml xmlstr.
to convert is back
call transformation
source xml xmlstr
result xmldat = date
xmltim = time
ref = itab[].
Albert
11-28-2007 2:23 PM
Hi,
there is one error in ur code.
TABLES: VEKP,
LIKP,
VBAK.
TYPE-POOLS: IXML.
DATA: BEGIN OF ITAB OCCURS 0,
BRGEW LIKE VEKP-BRGEW,
LAENG LIKE VEKP-LAENG,
BREIT LIKE VEKP-BREIT,
EXIDV LIKE VEKP-EXIDV,
HOEHE LIKE VEKP-HOEHE,
VBELN LIKE LIKP-VBELN,
KUNNR LIKE LIKP-KUNNR,
VDATU LIKE VBAK-VDATU,
END OF ITAB.
TYPES: BEGIN OF MY_XML ,
DATA(256) TYPE X,
END OF MY_XML.
DATA: XML_TABLE TYPE TABLE OF MY_XML.
DATA: L_XML_SIZE TYPE I,
<b>LD_FULLPATH TYPE STRING value 'C:\test.txt'</b>.
PARAMETERS: HU LIKE VEKP-EXIDV.
START-OF-SELECTION.
SELECT A~BRGEW
A~LAENG
A~BREIT
A~EXIDV
A~HOEHE
B~VBELN
B~KUNNR
C~VDATU
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM VEKP AS A INNER JOIN LIKP AS B
ON AERDAT = BERDAT INNER JOIN VBAK AS C
ON BERDAT = CERDAT
WHERE A~EXIDV = HU.
CALL FUNCTION 'SAP_CONVERT_TO_XML_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = ','
I_LINE_HEADER =
I_FILENAME =
I_APPL_KEEP = ' '
I_XML_DOC_NAME =
IMPORTING
PE_BIN_FILESIZE = L_XML_SIZE
TABLES
I_TAB_SAP_DATA = ITAB
CHANGING
I_TAB_CONVERTED_DATA = XML_TABLE
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = L_XML_SIZE
FILENAME = LD_FULLPATH
FILETYPE = 'BIN'
IMPORTING
FILELENGTH = L_XML_SIZE
TABLES
DATA_TAB = XML_TABLE
FIELDNAMES =
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
Regs
Manas
Pls reward the points.
11-28-2007 3:25 PM
Hi Manas,
Thanks for ur replay.
i checked the program using modification done by u . again same thing dump(type conflict). i think the change in the version. becoz i am working on 4.7 version.
plz help me out.
Thanks.
Girish M
11-28-2007 3:29 PM
Hi,
provide me the dump info. i will help u out.
i am thinking that there may be some type mismatch on ur code.
Regs
Manas
11-28-2007 3:59 PM
Hi Manas,
"type conflict when calling function module 'SAP_CONVERT_TO_XML_FORMAT'.
ERROR ANALYSIS
an exceptions occured. this exception will deal with more detail below . the exception , assigned to class 'cx_sy_dyn_call_illegay_type' not caugth, which lead to run time error, the reson of this exceptionis: the system tried to pass internal table 'XML_TABLE 'to the formal parameter 'I_TAB_CONVERTED_DATA'. but type conflict occured between the formal and actual parameter"
This is one i am geting.
Thanks
Girish M
11-29-2007 4:58 AM
11-29-2007 9:14 AM
Hi Girish,
yesterday i didnt see ur reply.
I saw ur Dump info and i got where u r facing the problem. Please correct ur code accordingly and try. If it works pls reward points for my work.
TABLES: VEKP,
LIKP,
VBAK.
<b>TYPE-POOLS: IXML, TRUXS</b>.
DATA: BEGIN OF ITAB OCCURS 0,
BRGEW LIKE VEKP-BRGEW,
LAENG LIKE VEKP-LAENG,
BREIT LIKE VEKP-BREIT,
EXIDV LIKE VEKP-EXIDV,
HOEHE LIKE VEKP-HOEHE,
VBELN LIKE LIKP-VBELN,
KUNNR LIKE LIKP-KUNNR,
VDATU LIKE VBAK-VDATU,
END OF ITAB.
<b>DATA: XML_TABLE TYPE TRUXS_XML_TABLE</b>.
DATA: L_XML_SIZE TYPE I,
LD_FULLPATH TYPE STRING value 'C:\test.txt'.
PARAMETERS: HU LIKE VEKP-EXIDV.
START-OF-SELECTION.
SELECT A~BRGEW
A~LAENG
A~BREIT
A~EXIDV
A~HOEHE
B~VBELN
B~KUNNR
C~VDATU
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM VEKP AS A INNER JOIN LIKP AS B
ON AERDAT = BERDAT INNER JOIN VBAK AS C
ON BERDAT = CERDAT
WHERE A~EXIDV = HU.
CALL FUNCTION 'SAP_CONVERT_TO_XML_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = ','
I_LINE_HEADER =
I_FILENAME =
I_APPL_KEEP = ' '
I_XML_DOC_NAME =
IMPORTING
PE_BIN_FILESIZE = L_XML_SIZE
TABLES
I_TAB_SAP_DATA = ITAB
CHANGING
I_TAB_CONVERTED_DATA = XML_TABLE
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = L_XML_SIZE
FILENAME = LD_FULLPATH
FILETYPE = 'BIN'
IMPORTING
FILELENGTH = L_XML_SIZE
TABLES
DATA_TAB = XML_TABLE
FIELDNAMES =
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
Now it should work.
Reward points.
Regs
Manas
11-29-2007 9:39 AM
Hi Manas,
sorry yaar its again going to dump.
The dump is like this.
"A dynamic type conflict occured during reference assignment.
ERROR ANALYSIS.
the exception which is assigned to class'CX_SY_MOVE_CAST_ERROR' was neither caught nor passed along using a rising clause, inthe producer 'CREATE' "(METHOD)"
since the caller of the procedure could not excepted this exception to occur, the running program is terminated.
the resons for the exception is
a 'CAST' operations ('?=' or 'MOVE? TO'') tried to assign object or interface variable to a reference variable.
How ever the contents of the source variabledo not fit in the target source type '\CLASS=CL_XML'
Target type 'FUNCTION-POOL=TRUX\CLASS=CL_XML'"
This is bump wt im geting.
plz try it.
Thanks
Girish M
11-29-2007 10:00 AM
Hi,
In my system ECC 6.0 its running fine. I could not check it in 4.7 as i dont have that system. I will try to find out it and reply you.
I dont think the error is a major issue. it could be a small problem but i need some system at least to chk that.
Regs
Manas.
11-30-2007 6:49 AM
Hi Manas,
now it is working but the data is not coming to XML file .file is openig in C drive. I think data is converting to XML data. the error is:
"The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later. "
11-30-2007 9:34 AM
Hi,
in the downloading fuction use like below.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = l_xml_size
filename = <b>'C:\test.xml'</b>
filetype = 'BIN'
IMPORTING
filelength = l_xml_size
TABLES
data_tab = xml_table
FIELDNAMES =
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Then it will work and save the file in XML format.
Pls reward the points for my work.
Regs
Manas
11-30-2007 11:52 AM
Hi Manas,
Thanx a lot to spend ur time with me. i rewarded for that one.now my requirement is the xml file should be look like the sample file give by them. that is in text format.just im attaching that file .give me some idea to bring that in XML file.r any sample code for this one.
<SHIP_REQUEST>
<HOST_THERMAL_PRINTER>
xxxx </HOST_THERMAL_PRINTER>
<HOST_LASER_PRINTER>
YYYY</HOST_LASER_PRINTER>
<SHIPPER>SONY_CARSON</SHIPPER>
<SHIPPER_SHIPMENT_REFERENCE>80508809</SHIPPER_SHIPMENT_REFERENCE>
<CONSIGNEE_CODE>1234</CONSIGNEE_CODE>
<CONSIGNEE_CONTACT>ACME ELECTRONICS INC</CONSIGNEE_CONTACT>
<CONSIGNEE_COMPANY>ACME ELECTRONICS INC</CONSIGNEE_COMPANY>
<CONSIGNEE_ADDRESS1>BROWNSVILLE WAREHOUSE</CONSIGNEE_ADDRESS1>
<CONSIGNEE_ADDRESS2>5485 EAST 14TH STREET SUITE C</CONSIGNEE_ADDRESS2>
<CONSIGNEE_CITY>BROWNSVILLE</CONSIGNEE_CITY>
<CONSIGNEE_STATE>TX</CONSIGNEE_STATE>
<CONSIGNEE_POSTALCODE>78521</CONSIGNEE_POSTALCODE>
<CONSIGNEE_COUNTRYID>US</CONSIGNEE_COUNTRYID>
<CONSIGNEE_PHONE>8881111111</CONSIGNEE_PHONE>
<CONSIGNEE_ACCOUNT></CONSIGNEE_ACCOUNT>
<CONSIGNEE_SHIPMENT_REFERENCE>12345678901234567890</CONSIGNEE_SHIPMENT_REFERENCE>
<SERVICE>TANDATA_UPS.UPS.GND</SERVICE>
<TERMS>SHIPPER</ TERMS>
<COMMITMENT>FOREVER</COMMITMENT>
<BILL_FLAG></BILL_FLAG>
<BILL_ACCOUNT></BILL_ACCOUNT>
<BILL_COMPANY></BILL_COMPANY>
<BILL_ADDRESS1></BILL_ADDRESS1>
<BILL_ADDRESS2></BILL_ADDRESS2>
<BILL_CITY></BILL_CITY>
<BILL_STATE></BILL_STATE>
<BILL_POSTALCODE></BILL_POSTALCODE>
<BILL_COUNTRYID></BILL_COUNTRYID>
<BILL_CONTACT></BILL_CONTACT>
<BILL_PHONE></BILL_PHONE>
<ALT_RETURN_ADDRESS_FLAG>1</ALT_RETURN_ADDRESS_FLAG>
<RETURN_COMPANY>WILEY ELECTRONICS</RETURN_COMPANY>
<RETURN_ADDRESS1>123 MAIN</RETURN_ADDRESS1>
<RETURN_ADDRESS2></RETURN_ADDRESS2>
<RETURN_ADDRESS3></RETURN_ADDRESS3>
<RETURN_ADDRESS4></RETURN_ADDRESS4>
<RETURN_CITY>ANYTOWN</RETURN_CITY>
<RETURN_STATE>AZ</RETURN_STATE>
<RETURN_POSTALCODE>85222</RETURN_POSTALCODE>
<RETURN_COUNTRYID>US</RETURN_COUNTRYID>
<RETURN_CONTACT>SHIPPING MGR</RETURN_CONTACT>
<RETURN_PHONE>8005555555</RETURN_PHONE>
</SHIP_REQUEST>
Thanks
Girish M
11-30-2007 2:24 PM
Hi Manas,
plz send any sample code r notes on converting XML file as we like.
Thanks
Girish M
11-28-2007 2:23 PM