Application Development and Automation 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: 
Read only

Need to add two same values in internal table.

shivangi_pant
Participant
0 Likes
2,404

Hi, i need to create an internal table with same fields but from different table. Is this correct because its not showing correct output.-Vblen is the issue here.

TYPES: BEGIN OF SALES,
VBELN TYPE VBRK-VBELN,
FKDAT TYPE VBRK-FKDAT,
KUNAG TYPE VBRK-KUNAG,
FKLMG TYPE VBRP-FKLMG,
MATNR TYPE VBRP-MATNR,
ARKTX TYPE VBRP-ARKTX,
WERKS TYPE VBRP-WERKS,
VGBEL TYPE VBRP-VGBEL,
VBELN1 TYPE LIPS-VBELN1,
ERDAT TYPE LIPS-ERDAT,
LFIMG TYPE LIPS-LFIMG,
MATNR2 TYPE LIPS-MATNR2,
MBLNR TYPE MSEG-MBLNR,
MATNR1 TYPE MSEG-MATNR1,
ERFMG TYPE MSEG-ERFMG,
BUDAT_MKPF TYPE MSEG-BUDAT_MKPF,
END OF SALES.

Hi, i need to create an internal table with same fields but from different table. Is this correct because its not showing correct output.-Vblen is the issue here.

TYPES: BEGIN OF SALES,
VBELN TYPE VBRK-VBELN,
FKDAT TYPE VBRK-FKDAT,
KUNAG TYPE VBRK-KUNAG,
FKLMG TYPE VBRP-FKLMG,
MATNR TYPE VBRP-MATNR,
ARKTX TYPE VBRP-ARKTX,
WERKS TYPE VBRP-WERKS,
VGBEL TYPE VBRP-VGBEL,
VBELN1 TYPE LIPS-VBELN1,
ERDAT TYPE LIPS-ERDAT,
LFIMG TYPE LIPS-LFIMG,
MATNR2 TYPE LIPS-MATNR2,
MBLNR TYPE MSEG-MBLNR,
MATNR1 TYPE MSEG-MATNR1,
ERFMG TYPE MSEG-ERFMG,
BUDAT_MKPF TYPE MSEG-BUDAT_MKPF,
END OF SALES.
10 REPLIES 10
Read only

venkateswaran_k
Active Contributor
0 Likes
2,309

I assume you are selecting from multiple tables, but vbeln is updated with wrong value?

what is your select statement?

Read only

venkateswaran_k
Active Contributor
0 Likes
2,309

Hi shivangi_pant

You need to correct as belwo:

TYPES: BEGIN OF sales,
         vbeln      TYPE vbrk-vbeln,
         fkdat      TYPE vbrk-fkdat,
         kunag      TYPE vbrk-kunag,
         fklmg      TYPE vbrp-fklmg,
         matnr      TYPE vbrp-matnr,
         arktx      TYPE vbrp-arktx,
         werks      TYPE vbrp-werks,
         vgbel      TYPE vbrp-vgbel,
         vbeln1     TYPE lips-vbeln,   "<==============
         erdat      TYPE lips-erdat,
         lfimg      TYPE lips-lfimg,
         matnr2     TYPE lips-matnr,   "<============
         mblnr      TYPE mseg-mblnr,
         matnr1     TYPE mseg-matnr,   "<==========
         erfmg      TYPE mseg-erfmg,
         budat_mkpf TYPE mseg-budat_mkpf,
       END OF sales.

DATA : it_sales type table of sales,
       wa_sales type sales.

In your select statement, whereever the ambiguous column names such as matnr1, vbeln1, matnr2, you have to use the following - as - in the select statement.


select matnr, mseg~matnr as matnr1, lips~matnr as matnr2, lips~vbeln as vbeln1
  into CORRESPONDING FIELDS OF table @it_sales
  from .....

Regards,

Read only

0 Likes
2,309

Here i am getting this error
No component exists with the name "VBELN", but there is a component with a similar name "VBELN1".

Read only

0 Likes
2,309

shivangi_pant

You are probably using an old version of ABAP (< 7.40). Please mention it in all your questions otherwise people could give invalid answers.
Read only

shivangi_pant
Participant
0 Likes
2,309

This is the entire code. I am not getting 2 values, gate no and gate QTY

TYPE-POOLS: SLIS.
TABLES VBRK.
TABLES VBRP.
TABLES LIPS.
tables mseg.

TYPES: BEGIN OF VBRK,
VBELN TYPE VBRK-VBELN,
FKDAT TYPE VBRK-FKDAT,
KUNAG TYPE VBRK-KUNAG,
END OF VBRK.

TYPES: BEGIN OF VBRP,
VBELN TYPE VBRP-VBELN,
FKLMG TYPE VBRP-FKLMG,
MATNR TYPE VBRP-MATNR,
ARKTX TYPE VBRP-ARKTX,
WERKS TYPE VBRP-WERKS,
VGBEL TYPE VBRP-VGBEL,
END OF VBRP.

TYPES: BEGIN OF LIPS,
MATNR2 TYPE LIPS-MATNR,
VBELN1 TYPE LIPS-VBELN,
ERDAT TYPE LIPS-ERDAT,
LFIMG TYPE LIPS-LFIMG,
END OF LIPS.

TYPES: BEGIN OF MSEG,
MBLNR TYPE MSEG-MBLNR,
MATNR1 TYPE MSEG-MATNR,
ERFMG TYPE MSEG-ERFMG,
BUDAT_MKPF TYPE MSEG-BUDAT_MKPF,
END OF MSEG.



TYPES: BEGIN OF SALES,
VBELN TYPE VBRK-VBELN,
FKDAT TYPE VBRK-FKDAT,
KUNAG TYPE VBRK-KUNAG,
FKLMG TYPE VBRP-FKLMG,
MATNR TYPE VBRP-MATNR,
ARKTX TYPE VBRP-ARKTX,
WERKS TYPE VBRP-WERKS,
VGBEL TYPE VBRP-VGBEL,
VBELN1 TYPE LIPS-VBELN1,
ERDAT TYPE LIPS-ERDAT,
LFIMG TYPE LIPS-LFIMG,
MATNR2 TYPE LIPS-MATNR2,
MBLNR TYPE MSEG-MBLNR,
MATNR1 TYPE MSEG-MATNR1,
ERFMG TYPE MSEG-ERFMG,
BUDAT_MKPF TYPE MSEG-BUDAT_MKPF,
END OF SALES.

DATA: ISALES TYPE TABLE OF SALES,
WA_SALES TYPE SALES.

*DATA: VBELN1 TYPE LIPS-VBELN.

DATA: IMSEG TYPE TABLE OF MSEG,
WA_MSEG TYPE MSEG.

DATA: IVBRK TYPE TABLE OF VBRK,
WA_VBRK TYPE VBRK.

DATA: IVBRP TYPE TABLE OF VBRP,
WA_VBRP TYPE VBRP.

DATA: ILIPS TYPE TABLE OF LIPS,
WA_LIPS TYPE LIPS.

DATA: I_FCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FCAT LIKE LINE OF I_FCAT.
DATA: DIFF TYPE I.

SELECT-OPTIONS SUPPL FOR VBRP-WERKS.
SELECT-OPTIONS RECV FOR VBRK-KUNAG.
SELECT-OPTIONS MATERIAL FOR VBRP-MATNR.
SELECT-OPTIONS INVCE_Dt FOR VBRK-FKDAT.

START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM CREATE_FCAT.
PERFORM DISPLAY.

FORM GET_DATA.

SELECT * FROM VBRK INTO CORRESPONDING FIELDS OF TABLE IVBRK
WHERE KUNAG IN RECV AND FKDAT IN invce_dt.

IF NOT IVBRK IS INITIAL.
SELECT * FROM VBRP INTO CORRESPONDING FIELDS OF TABLE IVBRP
FOR ALL ENTRIES IN IVBRK WHERE VBELN = IVBRK-VBELN AND WERKS IN SUPPL AND MATNR IN MATERIAL.
ENDIF.

IF NOT IVBRP IS INITIAL.
SELECT * FROM LIPS INTO CORRESPONDING FIELDS OF TABLE ILIPS
FOR ALL ENTRIES IN IVBRP WHERE VBELN = IVBRP-VGBEL.
ENDIF.

IF NOT ILIPS IS INITIAL.
SELECT * FROM MSEG INTO CORRESPONDING FIELDS OF TABLE IMSEG
FOR ALL ENTRIES IN ILIPS WHERE MATNR = ILIPS-MATNR2.
ENDIF.


ENDFORM.

FORM DISPLAY.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IT_FIELDCAT = I_FCAT
TABLES
T_OUTTAB = ISALES
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.

FORM CREATE_FCAT.
WA_FCAT-COL_POS = '1'.
WA_FCAT-FIELDNAME = 'VBELN'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'INVOICE NUMBER'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '2'.
WA_FCAT-FIELDNAME = 'FKDAT'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'INVOICE DATE'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '3'.
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'MATERIAL CODE'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '4'.
WA_FCAT-FIELDNAME = 'ARKTX'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_L = 'MATERIAL DESCRIPTION'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '5'.
WA_FCAT-FIELDNAME = 'FKLMG'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'INVOICE QTY'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '6'.
WA_FCAT-FIELDNAME = 'WERKS'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'SHIPPING PLANT'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '7'.
WA_FCAT-FIELDNAME = 'KUNAG'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'RECEIVING PLANT'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '8'.
WA_FCAT-FIELDNAME = 'ERDAT'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'GATE IN DATE'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '9'.
WA_FCAT-FIELDNAME = 'VBELN'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'GATE_NO'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '10'.
WA_FCAT-FIELDNAME = 'LFIMG'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'GATE_ENTRY_QTY'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '11'.
WA_FCAT-FIELDNAME = 'BUDAT_MKPF'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'GRN DATE'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '12'.
WA_FCAT-FIELDNAME = 'MBLNR'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'GRN NUMBER'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '14'.
WA_FCAT-FIELDNAME = 'ERFMG'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_m = 'GRN QTY'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = '15'.
WA_FCAT-FIELDNAME = 'DIFF'.
WA_FCAT-TABNAME = 'ISALES'.
WA_FCAT-SELTEXT_L = 'DIFFERENCE INVOICES VS GRN QTY'.
APPEND WA_FCAT TO I_FCAT.
CLEAR WA_FCAT.

LOOP AT IVBRP INTO WA_VBRP.
READ TABLE IVBRK INTO WA_VBRK WITH KEY VBELN = WA_VBRP-VBELN BINARY SEARCH.
WA_SALES-VBELN = WA_VBRK-VBELN.
WA_SALES-FKDAT = WA_VBRK-FKDAT.
WA_SALES-KUNAG = WA_VBRK-KUNAG.
WA_SALES-FKLMG = WA_VBRP-FKLMG.
WA_SALES-MATNR = WA_VBRP-MATNR.
WA_SALES-ARKTX = WA_VBRP-ARKTX.
WA_SALES-WERKS = WA_VBRP-WERKS.
READ TABLE ILIPS INTO WA_LIPS WITH KEY VBELN1 = WA_VBRK-VBELN BINARY SEARCH.
WA_SALES-VBELN1 = WA_LIPS-VBELN1.
WA_SALES-ERDAT = WA_LIPS-ERDAT.
WA_SALES-LFIMG = WA_LIPS-LFIMG.

READ TABLE IMSEG INTO WA_MSEG WITH KEY MATNR1 = WA_LIPS-MATNR2 BINARY SEARCH.
WA_SALES-MBLNR = WA_MSEG-MBLNR.
WA_SALES-MATNR1 = WA_MSEG-MATNR1.
WA_SALES-ERFMG = WA_MSEG-ERFMG.
WA_SALES-BUDAT_MKPF = WA_MSEG-BUDAT_MKPF.
DIFF = WA_LIPS-LFIMG - WA_MSEG-ERFMG.
APPEND WA_SALES TO ISALES.
ENDLOOP.
ENDFORM.
Read only

0 Likes
2,309

Hi shivangi_pant

Do not use SELECT *

use specific columns as I mentioned earlier ( specially for the table LIPS and MSEG ). Because you have column names like VBELN and MATNR are repeated.

So, for those specific select statements, write exact column names you require and use AS - for the column name as I mentioned earlier.

Read only

0 Likes
2,309

Example

       SELECT vbeln as vbeln1, erdat, matnr as matnr2, lfimg FROM LIPS INTO CORRESPONDING FIELDS OF TABLE ILIPS
          FOR ALL ENTRIES IN IVBRP WHERE VBELN = IVBRP-VGBEL.
Read only

0 Likes
2,309

Please create one question per question, don't mix all your questions in one thread, it's not a chat.

Read only

0 Likes
2,309

Hi Venkat---Thanks, the code worked.
sandra.rossi --- Is there a way to dm you? Just want to understand few things if you dont mind.

Read only

0 Likes
2,309

People can be contacted only if they give private information in the user profile of SAP Community. I didn't.