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: 

key fields

Former Member
0 Kudos

hi,

iam working on module pool programs.

i have to update a data base table.

for that i have written a code.

it is updating also , but it should not avvept dupliocate key fields.

please help as sson as possible.

below is my code.

DATA: lv_irn3 TYPE zirn.

SELECT MAX( irn ) FROM zfocal_areas

INTO lv_irn3

WHERE bukrs EQ 'GEF'.

lv_irn3 = lv_irn3 + 1.

LOOP AT gt_focal_areas INTO gs_focal_areas WHERE status EQ space.

READ TABLE gt_focal_areas_old INTO gs_focal_areas_old

WITH KEY focal_area = gs_focal_areas-focal_area

status = c_old.

IF sy-subrc NE 0.

IF gs_focal_areas_old-expired_on LT sy-datum.

gs_focal_areas_f-bukrs = c_gef.

gs_focal_areas_f-focal_area = gs_focal_areas-focal_area.

gs_focal_areas_f-focal_desc = gs_focal_areas-focal_desc.

gs_focal_areas_f-expired_by = gs_focal_areas-expired_by.

gs_focal_areas_f-expired_on = gs_focal_areas-expired_on.

gs_focal_areas_f-expired_at = gs_focal_areas-expired_at.

gs_focal_areas_f-upd_user = sy-uname.

gs_focal_areas_f-upd_date = sy-datum.

gs_focal_areas_f-upd_time = sy-uzeit.

gs_focal_areas_f-irn = lv_irn3.

APPEND gs_focal_areas_f TO gt_focal_areas_f.

CLEAR: gs_focal_areas, gs_focal_areas_f.

lv_irn3 = lv_irn3 + 1.

ELSE.

gv_error = 'X'.

MESSAGE 'Focal Area has not expired' TYPE 'E'.

ENDIF.

ELSE.

gs_focal_areas_f-bukrs = c_gef.

gs_focal_areas_f-focal_area = gs_focal_areas-focal_area.

gs_focal_areas_f-focal_desc = gs_focal_areas-focal_desc.

gs_focal_areas_f-expired_by = gs_focal_areas-expired_by.

gs_focal_areas_f-expired_on = gs_focal_areas-expired_on.

gs_focal_areas_f-expired_at = gs_focal_areas-expired_at.

gs_focal_areas_f-upd_user = sy-uname.

gs_focal_areas_f-upd_date = sy-datum.

gs_focal_areas_f-upd_time = sy-uzeit.

gs_focal_areas_f-irn = lv_irn3.

APPEND gs_focal_areas_f TO gt_focal_areas_f.

CLEAR: gs_focal_areas, gs_focal_areas_f.

lv_irn3 = lv_irn3 + 1.

ENDIF.

ENDLOOP.

CHECK NOT gt_focal_areas_f[] IS INITIAL.

  • Modify data base table Zfocal_Areas

MODIFY zfocal_areas FROM TABLE gt_focal_areas_f.

IF sy-subrc EQ 0.

  • Set record status as OLD in all lines of ITAB

gs_focal_areas-status = c_old.

MODIFY gt_focal_areas FROM gs_focal_areas TRANSPORTING status

WHERE status EQ space.

CLEAR gs_focal_areas.

REFRESH gt_focal_areas_f.

*

ELSE.

MESSAGE 'IRN not created' TYPE 'E'.

ENDIF.

please help as soon as possibe.

kirthi,

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

write codes like this before this command.

data: updt_flag(1) value space.

loop at gt_focal_areas_f.

select single * from zfocal_areas where db_key_fld = gt_focal_areas_f-key_fld.
if sy-subrc eq 0.
updt_flag = 'X'.
endif

if updt_flag = space.
MODIFY zfocal_areas FROM TABLE gt_focal_areas_f.
endif.

Jogdand M B

1 REPLY 1

Former Member
0 Kudos

Hi,

write codes like this before this command.

data: updt_flag(1) value space.

loop at gt_focal_areas_f.

select single * from zfocal_areas where db_key_fld = gt_focal_areas_f-key_fld.
if sy-subrc eq 0.
updt_flag = 'X'.
endif

if updt_flag = space.
MODIFY zfocal_areas FROM TABLE gt_focal_areas_f.
endif.

Jogdand M B