Транзакция ZCHANGE_KODPROF изменение кода профессии
В таблице ZPROF:
ZKPROF_OLD Код профессии старый
ZKPROF_NEW Код профессии новый
При первом запуске копирует в эти поля из ZKPROF.
Изменяет поле ZKPROF в PLPO и ZPROF
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | *&---------------------------------------------------------------------* *& Report ZCHANGE_KODPROF_LOPATKO *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* report zchange_kodprof_lopatko. tables: zprof. data: it_zprof type table of zprof, it_plpo type table of plpo. field-symbols: <fs_zprof> like line of it_zprof, <fs_plpo> like line of it_plpo. select-options: zkprof for zprof-zkprof, so_old for zprof-zkprof_old, so_new for zprof-zkprof_new. parameters: p_old as checkbox. * p_test as checkbox default 'X'. update zprof set zkprof_old = zprof~zkprof where zkprof_old = ''. update zprof set zkprof_new = zprof~zkprof where zkprof_new = ''. select * from zprof into corresponding fields of table it_zprof where zkprof in zkprof and zkprof_old in so_old and zkprof_new in so_new. loop at it_zprof assigning <fs_zprof>. if p_old = ''. delete from zprof where zkprof = <fs_zprof>-zkprof. commit work and wait. <fs_zprof>-zkprof = <fs_zprof>-zkprof_new. insert zprof from <fs_zprof>. commit work and wait. update plpo set zkprof = <fs_zprof>-zkprof_new where ( zkprof = <fs_zprof>-zkprof_new ) or ( zkprof = <fs_zprof>-zkprof_old ). if sy-subrc = 0. select * from plpo appending table it_plpo where ( zkprof = <fs_zprof>-zkprof_new ) or ( zkprof = <fs_zprof>-zkprof_old ). endif. else. delete from zprof where zkprof = <fs_zprof>-zkprof. commit work and wait. <fs_zprof>-zkprof = <fs_zprof>-zkprof_old. insert zprof from <fs_zprof>. commit work and wait. update plpo set zkprof = <fs_zprof>-zkprof_old where ( zkprof = <fs_zprof>-zkprof_new ) or ( zkprof = <fs_zprof>-zkprof_old ). if sy-subrc = 0. select * from plpo appending table it_plpo where ( zkprof = <fs_zprof>-zkprof_new ) or ( zkprof = <fs_zprof>-zkprof_old ). endif. endif. commit work and wait. endloop. include zchange_kodprof_uotput. |