05-05-2006 8:36 AM
Hi All,
While downloadng the data from VBAP DB Table fro a particular S.O.document the Unit of measurement correct value is not geting stored in the internal table but at the time of displaying as a report i get the correct value.
Like when i set a break point in the program at the internal table level and view the data's the field value of VBAP-VRKME or VBAP-MEINS should be "PC" but i am getting a value as "ST" but at the time of displaying in the report it is displaying as "PC" only.
Because i hav to generate a XML based on the values of the Internal Table.
Is there any possibility to eliminate this problem or any other corressponding table from which i can get the exact value.
Help and Suggestions will be much appreciated.
Thanks & Regds.
Ramesh.
05-05-2006 10:24 AM
HI ramesh,
Its not a problem.
Generally the unit values are stored in the database in an internal format.
When you use write statement to display them, you will get the external format.
Go to t006 table and see what is the value of pc (stored) internally in se11 transaction. YOu would find 'ST'.
YOu can see this code to understand it better:
<b>data: v_meins type meins value 'ST'.
data: v_meins_new(3).
write:/ v_meins. "Outputs PC
move v_meins to v_meins_new.
write:/ v_meins_new. "Outputs ST</b>
Regards,
Ravi
05-05-2006 9:07 AM
Hi,
Can u please post ur code..
The condition u say is pretty wierd..
Regards,
Tanveer.
05-05-2006 10:01 AM
Hi Tanveer Shaikh,
Here is my sample code below.
REPORT ZSO_STATUS_XML NO STANDARD PAGE HEADING.
****************************************************************
TBALES DECLARATION
*
****************************************************************
TABLES: VBAK, "Sale Order Header
VBAP, "Sale Order Item Data
VBEP, "Schedule Line Data
KNA1, "General Data in Customer Master
VBRP. "Billing Document Item Data
****************************************************************
TYPES DECLARATION
*
****************************************************************
TYPES : BEGIN OF TY_SOSTATUS,
KUNNR LIKE VBAK-KUNNR, "Customer Number
NAME1 LIKE KNA1-NAME1, "Customer Name
BSTNK LIKE VBAK-BSTNK, "Customer P.O.
BSTDK LIKE VBAK-BSTDK, "Customer P.O. Date
VBELN LIKE VBAK-VBELN, "Sale Order Number
ERDAT LIKE VBAK-ERDAT, "Sale Order Date
POSNR LIKE VBAP-POSNR, "Sale Order Line Item
MATNR LIKE VBAP-MATNR, "Material Number
ARKTX LIKE VBAP-ARKTX, "Material Description
KWMENG LIKE VBAP-KWMENG, "Sale Order Quantity
MEINS LIKE VBAP-MEINS, "Unit of Measurement
EDATU LIKE VBEP-EDATU, "Sale Order Schedule Date
FKIMG LIKE VBRP-FKIMG, "Despatch Quantity
GBSTA LIKE VBUP-GBSTA, "Overall Sale Order Status
PNDQTY TYPE I,
END OF TY_SOSTATUS.
DATA: XML_OUT TYPE STRING.
****************************************************************
INTERNAL TABLE DECLARATION
*
****************************************************************
DATA : IT_SOSTATUS TYPE STANDARD TABLE OF TY_SOSTATUS
WITH HEADER LINE INITIAL SIZE 100 WITH DEFAULT KEY.
DATA : BEGIN OF IT_XML_OUT OCCURS 0,
A(1500) TYPE C,
END OF IT_XML_OUT.
****************************************************************
SELECTION SCREEN DECLARATION
*
****************************************************************
SELECTION-SCREEN BEGIN OF BLOCK SOBLOCK WITH FRAME.
SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,
S_ERDAT FOR VBAK-ERDAT,
S_AUART FOR VBAK-AUART,
S_WERKS FOR VBAP-WERKS.
SELECTION-SCREEN END OF BLOCK SOBLOCK.
****************************************************************
START OF SELECTION
*
****************************************************************
SELECT SVBELN SAUART SERDAT SKUNNR SBSTNK SBSTDK
LPOSNR LMATNR LARKTX LKWMENG L~MEINS
EEDATU FFKIMG GGBSTA NNAME1 FROM VBAK AS S INNER JOIN VBAP AS L ON SVBELN = LVBELN
INNER JOIN VBEP AS E ON SVBELN = EVBELN
INNER JOIN VBRP AS F ON SVBELN = FAUBEL
INNER JOIN VBUP AS G ON SVBELN = GVBELN
INNER JOIN KNA1 AS N ON SKUNNR = NKUNNR
INTO CORRESPONDING FIELDS OF TABLE IT_SOSTATUS
WHERE S~AUART IN S_AUART AND
S~ERDAT IN S_ERDAT AND
L~WERKS IN S_WERKS .
CALL TRANSFORMATION (`ID`) SOURCE IT_XML_OUT = IT_SOSTATUS[] RESULT XML XML_OUT.
CALL FUNCTION 'HR_EFI_CONVERT_STRING_TO_TABLE'
EXPORTING
I_STRING = XML_OUT
I_TABLINE_LENGTH = 1500
TABLES
ET_TABLE = IT_XML_OUT
.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filetype = 'BIN'
filename = 'C:\TEST1.xml'
TABLES
data_tab = IT_XML_OUT.
submit Z_INO1_SO_STATUS_FTP USING SELECTION-SET 'Z_SO_FTP' and
return .
05-05-2006 10:35 AM
Hi Tanveer Shaikh,
I am sending even the XML code.jst hav a look.
1st i used the field name as MEINS the result is this
<?xml version="1.0" encoding="utf-16" ?>
- <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
- <asx:values>
- <IT_XML_OUT>
- <item>
<KUNNR>M010101</KUNNR>
<NAME1>Mohini customer Pvt. Ltd</NAME1>
<BSTNK>Test 24.03.06</BSTNK>
<BSTDK>2006-03-26</BSTDK>
<VBELN>1421000021</VBELN>
<ERDAT>2006-03-26</ERDAT>
<POSNR>000010</POSNR>
<MATNR>ME2201360005</MATNR>
<ARKTX>AS 30 R 6.93 P 100 B5 V1 Finished Produc</ARKTX>
<KWMENG>7.0</KWMENG>
<b><MEINS>ST</MEINS></b>
<EDATU>2006-03-31</EDATU>
<FKIMG>7.0</FKIMG>
<GBSTA>A</GBSTA>
<PNDQTY>0</PNDQTY>
</item>
- <item>
<KUNNR>M010101</KUNNR>
<NAME1>Mohini customer Pvt. Ltd</NAME1>
<BSTNK>Test 24.03.06</BSTNK>
<BSTDK>2006-03-26</BSTDK>
<VBELN>1421000023</VBELN>
<ERDAT>2006-03-26</ERDAT>
<POSNR>000010</POSNR>
<MATNR>ME2201360005</MATNR>
<ARKTX>AS 30 R 6.93 P 100 B5 V1 Finished Produc</ARKTX>
<KWMENG>10.0</KWMENG>
<b><MEINS>ST</MEINS></b>
<EDATU>2049-12-31</EDATU>
<FKIMG>10.0</FKIMG>
<GBSTA>A</GBSTA>
<PNDQTY>0</PNDQTY>
</item>
</IT_XML_OUT>
</asx:values>
</asx:abap>
When i used VRKME the result is this.
<?xml version="1.0" encoding="utf-16" ?>
- <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
- <asx:values>
- <IT_XML_OUT>
- <item>
<KUNNR>M010101</KUNNR>
<NAME1>Mohini customer Pvt. Ltd</NAME1>
<BSTNK>Test 24.03.06</BSTNK>
<BSTDK>2006-03-26</BSTDK>
<VBELN>1421000021</VBELN>
<ERDAT>2006-03-26</ERDAT>
<POSNR>000010</POSNR>
<MATNR>ME2201360005</MATNR>
<ARKTX>AS 30 R 6.93 P 100 B5 V1 Finished Produc</ARKTX>
<KWMENG>7.0</KWMENG>
<b> <VRKME>ST</VRKME></b>
<EDATU>2006-03-31</EDATU>
<FKIMG>7.0</FKIMG>
<GBSTA>A</GBSTA>
<PNDQTY>0</PNDQTY>
</item>
- <item>
<KUNNR>M010101</KUNNR>
<NAME1>Mohini customer Pvt. Ltd</NAME1>
<BSTNK>Test 24.03.06</BSTNK>
<BSTDK>2006-03-26</BSTDK>
<VBELN>1421000023</VBELN>
<ERDAT>2006-03-26</ERDAT>
<POSNR>000010</POSNR>
<MATNR>ME2201360005</MATNR>
<ARKTX>AS 30 R 6.93 P 100 B5 V1 Finished Produc</ARKTX>
<KWMENG>10.0</KWMENG>
<b><VRKME>ST</VRKME></b>
<EDATU>2049-12-31</EDATU>
<FKIMG>10.0</FKIMG>
<GBSTA>A</GBSTA>
<PNDQTY>0</PNDQTY>
</item>
</item>
</IT_XML_OUT>
</asx:values>
</asx:abap>
05-05-2006 10:24 AM
HI ramesh,
Its not a problem.
Generally the unit values are stored in the database in an internal format.
When you use write statement to display them, you will get the external format.
Go to t006 table and see what is the value of pc (stored) internally in se11 transaction. YOu would find 'ST'.
YOu can see this code to understand it better:
<b>data: v_meins type meins value 'ST'.
data: v_meins_new(3).
write:/ v_meins. "Outputs PC
move v_meins to v_meins_new.
write:/ v_meins_new. "Outputs ST</b>
Regards,
Ravi