Quantcast
Channel: SCN : Blog List - ABAP Development
Viewing all articles
Browse latest Browse all 943

How to solve the problem of different length for the same field

$
0
0

Scenario

 

In table LFBK, the field BANKN is of length 18.

In table TIBAN, the field BANKN is of length 35.

 

The problem arises when we have a For All Entries like below:

 

  SELECT *
FROM tiban
INTO TABLE lt_tiban
FOR ALL ENTRIES IN lt_lfbk
WHERE banks EQ lt_lfbk-banks
AND   bankl EQ lt_lfbk-bankl
AND   bankn EQ lt_lfbk-bankn
AND   bkont EQ lt_lfbk-bkont.

 

The yellow line will result in an error because the size of TIBAN-BANKN is bigger than LFBK-BANKN.

 

 

Solution

 

A solution would be to create a new structure and add a new field with length 35:

 

1. Create a type. 


BEGIN OF ty_lfbk_new.
include TYPE lfbk.
TYPES:
bankn35
TYPE tiban-bankn,
END OF   ty_lfbk_new.

 

 

2. Create a new structure and table with the new type.


DATA:    ls_lfbk_new TYPE ty_lfbk_new,
          lt_lfbk_new
TYPE STANDARD TABLE OF ty_lfbk_new.

 

 

3. Fill the new field BANKN35 with the data LS_LFBK-BANKN.

 

LOOP AT lt_lfbk INTO ls_lfbk.
ls_lfbk_new
= ls_lfbk.
ls_lfbk_new
-bankn35 = ls_lfbk-bankn.
APPEND ls_lfbk_new to lt_lfbk_new.
ENDLOOP.

 

 

4. In the Select statement, use the new table LT_LFBK_NEW for FOR ALL ENTRIES.

 

SELECT *
FROM tiban
INTO TABLE lt_tiban
FOR ALL ENTRIES IN lt_lfbk_new
WHERE banks EQ lt_lfbk_new-banks
AND   bankl EQ lt_lfbk_new-bankl
AND   bankn EQ lt_lfbk_new-bankn35
AND   bkont EQ lt_lfbk_new-bkont.


Viewing all articles
Browse latest Browse all 943

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>