Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Regd: Sale Order U.O.M

Former Member
0 Kudos

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.

1 ACCEPTED SOLUTION

former_member181962
Active Contributor
0 Kudos

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

4 REPLIES 4

Former Member
0 Kudos

Hi,

Can u please post ur code..

The condition u say is pretty wierd..

Regards,

Tanveer.

0 Kudos

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 .

0 Kudos

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>

former_member181962
Active Contributor
0 Kudos

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