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

BDC (Flat File Data Validation) - Code

Former Member
0 Likes
676

I am trying to validate flat file data BEFORE performing BDC (Call Trans. or Session)..

Pls help me out in below code for xk02..

DATA: BEGIN OF itab occurs 0, "ITAB having flat file data.

lifnr(16) ,

bukrs(4),

ekorg(4),

END OF itab.

DATA: BEGIN OF int_final occurs 0,

lifnr(16) ,

bukrs(4),

ekorg(4),

status(6),

message(6),

END OF int_final.

DATA: int_final TYPE TABLE OF int_final.

DATA: wa_itab TYPE TABLE OF itab.

DATA: validate_itab TYPE TABLE OF itab. "VALIDATE_ITAB having master data.

DATA: wa_validate_itab TYPE TABLE OF itab.

*********************

FORM data_validation .

SELECT LFB1LIFNR LFB1BUKRS LFM1~EKORG INTO TABLE validate_itab

FROM LFB1 INNER JOIN LFM1 ON LFB1LIFNR = LFM1LIFNR.

IF sy-subrc = 0.

SORT validate_itab BY lifnr bukrs ekorg.

ENDIF.

LOOP AT itab INTO wa_itab.

READ TABLE validate_itab WITH KEY

lifnr = itab-lifnr

bukrs = itab-bukrs

ekorg = itab-ekorg

BINARY SEARCH.

IF sy-subrc NE 0.

PERFORM f_error_log USING text-005. "Invalid Value Set

CONTINUE.

ENDIF.

ENDLOOP.

ENDFORM. " data_validation

&----


*& Form f_error_log

&----


FORM f_error_log USING l_message TYPE string.

CLEAR : fs_final.

fs_final-lifnr = itab-lifnr.

fs_final-bukrs = itab-bukrs.

fs_final-ekorg = itab-ekorg.

fs_final-status = text-014. "Error

fs_final-message = l_message.

APPEND fs_final TO int_final.

ENDFORM. " f_error_log

Thanks..

5 REPLIES 5
Read only

tarangini_katta
Active Contributor
0 Likes
600

Hi GAurav,

I have a small question in th validation.

In LFM1~LIFNR does not contian any value how u r comparing both and one more thing After getting the data using GUI_upload u will get the data into validate_tab.

Loop at Vlidate_tab into wa_itab.

SELECT LFB1LIFNR LFB1BUKRS LFM1~EKORG INTO TABLE validate_itab

FROM LFB1 INNER JOIN LFM1 ON LFB1~LIFNR = wa_itab-lifnr.

endllop.

Thanks,

Read only

0 Likes
600

Hi Tarangini,

1. I have checked tht LFM1~LIFNR has values here.

2. Using GUI_UPLOAD, I getting data in itab. (In GUI_UPLOAD.., TABLES

data_tab = itab)

And validate_itab consists of master values from database..

I want to check values in itab(it has flat file data) against validate_itab(it works as check table).

Pls. guide.

Thanks for ur response.

Read only

0 Likes
600

Hi GAurav,

then.

Loop at itab into wa.

read table validate_itab into validate_wa with key lifnr = wa_lifnr.

if sy-subrc = '0'.

process ur code.

else.

raise error message'.

endloop.

I hope this may help to you.If not get back to me.

Thanks

Read only

0 Likes
600

Its showing Syntax Errors..

"WA_ITAB" cannot be converted to the line type of "ITAB".

similarly for WA_VALIDATE_ITAB.

I have declared as :

DATA: BEGIN OF itab occurs 0,

lifnr(16) ,

bukrs(4),

ekorg(4),

END OF itab.

DATA: validate_itab TYPE TABLE OF itab.

??

pls assist.

Thanks.

Read only

0 Likes
600

I ve solved tht syntax errors..n now its working..

thanks...