AC顾问写的ABAP调用JOB程序1

*&---------------------------------------------------------------------*
*& Report  ZMMWZDK2_001
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*


report  zmmwzdk2_001x.




data: p_sl type i.
data:g_ht type c.
data:g_date like sy-datum ,
     g_time like sy-uzeit .


*&---------------------------------------------------------------------*
*&   选择屏幕
*&---------------------------------------------------------------------*
selection-screen begin of block block1 with frame title text-f01.
select-options s_date for sy-datum . "抽取数据的日期
selection-screen skip.
selection-screen begin of line.
parameters :p_cs type char1 radiobutton group grp default 'X'.
selection-screen comment 3(10) g_cs.
parameters :p_gx type char1 radiobutton group grp.
selection-screen comment 16(14) g_gx.
parameters :p_dm type char1 radiobutton group grp.
selection-screen comment 33(20) g_dm.
parameters :p_wd type char1 radiobutton group grp.
selection-screen comment 56(10) g_wd.
selection-screen end of line.
selection-screen uline /1(25).
selection-screen comment /1(70) comm1.
selection-screen comment /1(70) comm2.
selection-screen end of block block1.


selection-screen begin of block block2 with frame title text-f02.
parameter p_all as checkbox user-command a. "全选
selection-screen uline /1(25).
parameter p_ckzyl as checkbox. "仓库资源利用率指标统计
parameter p_crkfx as checkbox. "出入库量统计分析
parameter p_cshdd as checkbox. "调配平台超市化订单信息
parameter p_dhxx as checkbox. "到货信息查询
parameter p_fhtz as checkbox. "发货通知信息查询
parameter p_fhtzl as checkbox. "物资供应指标统计-发货通知完整率
parameter p_gyjhl as checkbox. "物资供应指标统计-供应计划完成率
parameter p_gywzl as checkbox. "物资供应指标统计-供应计划完整率
parameter p_gyjh as checkbox. "供应计划信息查询
parameter p_gywcl as checkbox. "物资供应完成率指标统计
parameter p_hss as checkbox. "调配平台回收商查询报表
parameter p_htjsmx as checkbox. "合同结算明细信息查询
parameter p_htlx as checkbox. "合同履行情况查询
parameter p_htlxfx as checkbox. "合同履行信息分析
parameter p_htqd as checkbox. "合同签订情况查询
parameter p_htzb as checkbox. "物资供应完成率指标统计
parameter p_jhbg as checkbox. "供应计划交货期变更信息查询
parameter p_jhfx as checkbox. "供应计划交货期变更分析
parameter p_kcwz as checkbox. "库存物资查询
parameter p_kcfx as checkbox. "库存资源分析
parameter p_stck as checkbox. "实体仓库资源
parameter p_tyxx as checkbox. "投运信息查询
parameter p_jkyj as checkbox. "物资供应监控预警
parameter p_htjs as checkbox. "国网报表-物资合同结算情况查询
parameter p_xsdd as checkbox. "销售订单查询
parameter p_ht as checkbox. "业务数据统计分析-合同维度
parameter p_xm as checkbox. "业务数据统计分析-项目维度
parameter p_zh as checkbox. "业务数据统计分析-综合分析
parameter p_xykc as checkbox. "协议库存执行情况查询
parameter p_ydyp as checkbox. "一单一评结果统计
parameter p_ysjh as checkbox. "运输计划信息查询
parameter p_zdwz as checkbox. "重点物资维护信息查询
parameter p_zdxm as checkbox. "重点项目建设进度跟踪
parameter p_zdxmwz as checkbox. "重点项目物资供应综合查询
parameter p_ybdc as checkbox. "月报导出
parameter p_zdxmmx as checkbox ."重点项目明细
selection-screen uline /1(25).
selection-screen end of block block2.




*&---------------------------------------------------------------------*
*&   初始化
*&---------------------------------------------------------------------*
initialization.
  comm1 = '说明:日期不填,默认日期为上个月'.
  comm2 = '         仅需要年份,月份的指标,自动截取左空日期的年份、月份'.
  g_cs = 'ERP抽数'.
  g_gx = '更新ODS数据'.
  g_dm = '更新DM数据(调用存储过程)'.
  g_wd = '更新维度表'.


at selection-screen.
  case sy-ucomm.
    when 'A'.
      if p_all eq 'X'.
        p_ckzyl    = 'X'.
        p_crkfx   = 'X'.
        p_cshdd = 'X'.
        p_dhxx    = 'X'.
        p_fhtz    = 'X'.
        p_fhtzl   = 'X'.
        p_gyjh    = 'X'.
        p_gyjhl   = 'X'.
        p_gywcl   = 'X'.
        p_hss = 'X'.
        p_gywzl   = 'X'.
        p_ht      = 'X'.
        p_htlx    = 'X'.
        p_htlxfx   = 'X'.
        p_htqd    = 'X'.
        p_htzb    = 'X'.
        p_jhbg    = 'X'.
        p_jhfx    = 'X'.
        p_jkyj    = 'X'.
        p_kcfx    = 'X'.
        p_stck    = 'X'.
        p_tyxx    = 'X'.
        p_xm      = 'X'.
        p_xsdd    = 'X'.
        p_xykc    = 'X'.
        p_ydyp    = 'X'.
        p_ysjh    = 'X'.
        p_zdwz    = 'X'.
        p_zdxm     = 'X'.
        p_zdxmwz   = 'X'.
        p_zh      = 'X'.
        p_htjs = 'X'.
        p_kcwz = 'X'.
        p_htjsmx = 'X'.
        p_ybdc = 'X'.
        p_zdxmmx = 'X'.
      else.
        p_ckzyl    = ''.
        p_crkfx   = ''.
        p_cshdd = ''.
        p_dhxx    = ''.
        p_fhtz    = ''.
        p_fhtzl   = ''.
        p_gyjh    = ''.
        p_gyjhl   = ''.
        p_gywcl   = ''.
        p_hss = ''.
        p_gywzl   = ''.
        p_ht      = ''.
        p_htlx    = ''.
        p_htlxfx   = ''.
        p_htqd    = ''.
        p_htzb    = ''.
        p_jhbg    = ''.
        p_jhfx    = ''.
        p_jkyj    = ''.
        p_kcfx    = ''.
        p_stck    = ''.
        p_tyxx    = ''.
        p_xm      = ''.
        p_xsdd    = ''.
        p_xykc    = ''.
        p_ydyp    = ''.
        p_ysjh    = ''.
        p_zdwz    = ''.
        p_zdxm     = ''.
        p_zdxmwz   = ''.
        p_zh      = ''.
        p_htjs = ''.
        p_kcwz = ''.
        p_htjsmx = ''.
        p_ybdc = ''.
        p_zdxmmx = ''.
      endif.
  endcase.


*&---------------------------------------------------------------------*
*&   START-OF-SELECTION.
*&---------------------------------------------------------------------*
start-of-selection.


  "定义查询数据库名称
  data: dbs type dbcon-con_name.
  data:exc_ref type ref to cx_sy_native_sql_error.
  data:sql_error type string.


  if sy-mandt ne '800'.
    dbs = 'WZYJ'.
  else.
    dbs = 'ZODS_WZDPPT'.
  endif.




  "抽数逻辑调用
  if p_cs eq 'X'.
    if p_ckzyl eq 'X'.
      perform frm_star_bckground_job using 'CKZYLYL'.
    endif.
    if p_crkfx eq 'X'.
      perform frm_star_bckground_job using 'CRKLTJFX'.
    endif.
    if p_cshdd eq 'X'.
      perform frm_star_bckground_job using 'CSHDDXX'.
    endif.
    if p_dhxx eq 'X'.
      perform frm_star_bckground_job using 'DHXX'.
    endif.
    if p_fhtz eq 'X'.
      perform frm_star_bckground_job using 'FHTZ'.
    endif.
    if p_fhtzl eq 'X'.
      perform frm_star_bckground_job using 'FHTZWZL'.
    endif.
    if p_gyjhl eq 'X'.
      perform frm_star_bckground_job using 'GYJHWCL'.
    endif.
    if p_gywzl eq 'X'.
      perform frm_star_bckground_job using 'GYJHWZL'.
    endif.
    if p_gyjh eq 'X'.
      perform frm_star_bckground_job using 'GYJHXXCX'.
    endif.
    if p_gywcl eq 'X'.
      perform frm_star_bckground_job using 'GYWCL'.
    endif.
    if p_hss eq 'X'.
      perform frm_star_bckground_job using 'HSSCX'.
    endif.
    if p_htlx eq 'X'.
      perform frm_star_bckground_job using 'HTLXQKCX'.
    endif.
    if p_htlxfx eq 'X'.
      perform frm_star_bckground_job using 'HTLXXXFX'.
    endif.
    if p_htzb eq 'X'.
      perform frm_star_bckground_job using 'HTZB'.
    endif.
    if p_jhbg eq 'X'.
      perform frm_star_bckground_job using 'JHQBG'.
    endif.
    if p_jhfx eq 'X'.
      perform frm_star_bckground_job using 'JHQBGFX'.
    endif.
    if p_kcfx eq 'X'.
      perform frm_star_bckground_job using 'KCZYFX'.
    endif.
    if p_kcwz eq 'X'.
      perform frm_star_bckground_job using 'KCWZCX'.
    endif.
    if p_stck eq 'X'.
      perform frm_star_bckground_job using 'STCKZY'.
    endif.
    if p_tyxx eq 'X'.
      perform frm_star_bckground_job using 'TYXXCX'.
    endif.
    if p_jkyj eq 'X'.
      perform frm_star_bckground_job using 'WZGYJKYJ'.
    endif.
    if p_xsdd eq 'X'.
      perform frm_star_bckground_job using 'XSDD'.
    endif.


    if p_xykc eq 'X'.
      perform frm_star_bckground_job using 'XYKCZXQKCX'.
    endif.
    if p_ydyp eq 'X'.
      perform frm_star_bckground_job using 'YDYPJGTJ'.
    endif.
    if p_ysjh eq 'X'.
      perform frm_star_bckground_job using 'YSJHXXCX'.
    endif.
    if p_zdwz eq 'X'.
      perform frm_star_bckground_job using 'ZDWZWHXXCX'.
    endif.


    if p_zdxmwz eq 'X'.
      perform frm_star_bckground_job using 'ZDXMWZZHCX'.
    endif.
    if p_htjs eq 'X'.
      perform frm_star_bckground_job using 'WZHTJSQKCX'.
    endif.
    if p_htjsmx eq 'X'.
      perform frm_star_bckground_job using 'HTJSMXXXCX'.
    endif.
    if p_htqd eq 'X'.
      perform frm_star_bckground_job using 'HTQD'.
    endif.
    if p_xm eq 'X' .
      perform frm_star_bckground_job using 'XWFX_XM'.
    endif.
    if p_zh eq 'X'.
      "综合维度和合同一起跑
      perform frm_star_bckground_job using 'XWFX_HT'.
      perform frm_star_bckground_job using 'ZDXMJSJDGZ'.
    endif.


    if p_ht eq 'X' and p_zh ne 'X'.
      perform frm_star_bckground_job using 'XWFX_HT'.
    endif.
    if p_zdxm eq 'X' and p_zh ne 'X'.
      perform frm_star_bckground_job using 'ZDXMJSJDGZ'.
    endif.
    if p_ybdc eq 'X'.
      perform frm_star_bckground_job using 'YBDC'.
    endif.


    if p_zdxmmx eq 'X' .
      perform frm_star_bckground_job using 'XMJDGZ'.
    ENDIF.




  elseif p_gx eq 'X'.
    "打开DBLINK


    "定义数据库表
    data: t_ckzyl  like standard table of zmm_dp_ckzylyl initial size 0 with header line.
    data: t_crkfx  like standard table of zmm_dp_crkltjfx initial size 0 with header line.
    data: t_cshdd like standard table of zmm_dp_cshdd initial size 0 with header line.
    data: t_dhxx   like standard table of zmm_dp_dhxx initial size 0 with header line.
    data: t_fhtz   like standard table of zmm_dp_fhtz initial size 0 with header line.
    data: t_fhtzl  like standard table of zmm_dp_fhtzwzl initial size 0 with header line.
    data: t_gyjhl  like standard table of zmm_dp_gyjhwcl initial size 0 with header line.
    data: t_gywzl  like standard table of zmm_dp_gyjhwzl initial size 0 with header line.
    data: t_gyjh   like standard table of zmm_dp_gyjh initial size 0 with header line.
    data: t_gywcl  like standard table of zmm_dp_gywcl initial size 0 with header line.
    data: t_hss like standard table of zmm_dp_hss initial size 0 with header line.
    data: t_htlx   like standard table of zmm_dp_htlx initial size 0 with header line.
    data: t_htlxfx like standard table of zmm_dp_htlyzhfx initial size 0 with header line.
    data: t_htqd   like standard table of zmm_dp_htqd initial size 0 with header line.
    data: t_htzb   like standard table of zmm_dp_htzb initial size 0 with header line.
    data: t_jhbg   like standard table of zmm_dp_jhqbg initial size 0 with header line.
    data: t_jhfx   like standard table of zmm_dp_jhqbgfx initial size 0 with header line.
    data: t_kcfx   like standard table of zmm_dp_kczyfx initial size 0 with header line.
    data: t_stck   like standard table of zmm_dp_stckzy initial size 0 with header line.
    data: t_tyxx   like standard table of zmm_dp_tyd initial size 0 with header line.
    data: t_jkyj   like standard table of zmm_dp_gyjkyy initial size 0 with header line.
    data: t_xsdd   like standard table of zmm_dp_xsdd initial size 0 with header line.
    data: t_ht     like standard table of zmm_dp_htwdtb initial size 0 with header line.
    data: t_xmhz   like standard table of zmm_dp_xmwdhz initial size 0 with header line.
    data: t_xm2   like standard table of zmm_dp_xmwdfx_fk initial size 0 with header line.
    data: t_zh     like standard table of zmm_dp_wzgyjd initial size 0 with header line.
    data: t_zh2   like standard table of zmm_dp_gdwwzgy initial size 0 with header line.
    data: t_zh3   like standard table of zmm_dp_zjxmwzgy initial size 0 with header line.
    data: t_xykc   like standard table of zmm_dp_xykczx initial size 0 with header line.
    data: t_ydyp   like standard table of zmm_dp_ydyp initial size 0 with header line.
    data: t_ysjh   like standard table of zmm_dp_ysjh initial size 0 with header line.
    data: t_zdwz   like standard table of zmm_dp_zdwzwh initial size 0 with header line.
    data: t_zdxm   like standard table of zmm_dp_zdxmjd initial size 0 with header line.
    data: t_zdxmwz like standard table of zmm_dp_zdxmwz initial size 0 with header line.
    data: t_htjs   like standard table of zmm_dp_gwyb_wzht initial size 0 with header line.
    data: t_kcwz   like standard table of zmm_dp_kcwz initial size 0 with header line.
    data: t_htjsmx   like standard table of zmm_dp_htjs initial size 0 with header line.
    data: t_htjsmxfx   like standard table of zmm_dp_htjsfx initial size 0 with header line.
    data: t_ybdc  like standard table of zmm_dp_ybdc initial size 0 with header line.
    data: t_zdxmmx like standard table of zmm_dp_xmjdgzmx initial size 0 with header line .
    data: t_zmm_process_log   like standard table of zmm_process_log initial size 0 with header line.
    data: t_flag like standard table of zmm_process_log initial size 0 with header line.


    try.
        EXEC SQL.
          connect to :dbs
        ENDEXEC.


        EXEC SQL.
          set connection :dbs
        ENDEXEC.
        if sy-subrc <> 0.
          raise exception type cx_sy_native_sql_error.
        endif.


        "往ODS写数
        if p_ckzyl    = 'X'.
          select * into corresponding fields of table t_ckzyl from zmm_dp_ckzylyl.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_ckzylyl;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.


            "写数
            loop at t_ckzyl.


              EXEC SQL.
                begin
                insert into zmm_dp_ckzylyl
                (mandt,zdwbm,ztjyf,zdwmc,zkczzlzb,zkczzlpx,zckbzhjszb,zckbzhjspx,zccjzjszb,zccjzjspx,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
                 values(:t_ckzyl-mandt,:t_ckzyl-zdwbm,:t_ckzyl-ztjyf,:t_ckzyl-zdwmc,:t_ckzyl-zkczzlzb,:t_ckzyl-zkczzlpx,:t_ckzyl-zckbzhjszb,:t_ckzyl-zckbzhjspx,:t_ckzyl-zccjzjszb,:t_ckzyl-zccjzjspx,:t_ckzyl-zdate,:t_ckzyl-ztime,:t_ckzyl-zfield1,
  :t_ckzyl-zfield2,:t_ckzyl-zfield3,:t_ckzyl-zfield4,:t_ckzyl-zfield5);


                   if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.


            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_ckzylyl'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
            commit work.
          endif.
        endif.


        if p_crkfx   = 'X'.
          select * into corresponding fields of table t_crkfx from zmm_dp_crkltjfx.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_crkltjfx;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_crkfx.


              EXEC SQL.
                begin
                insert into zmm_dp_crkltjfx
                (mandt,zwlbm,zwlpzh,zpzhxmh,zwlmc,zgcbm,zgcmc,zssdwbm,zssdwmc,zkclxbm,zkclxms,zckje,zrkje,zcksl,zrksl,zcrkrq,zcrkyf,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
                 values(:t_crkfx-mandt,:t_crkfx-zwlbm,:t_crkfx-zwlpzh,:t_crkfx-zpzhxmh,:t_crkfx-zwlmc,:t_crkfx-zgcbm,:t_crkfx-zgcmc,:t_crkfx-zssdwbm,:t_crkfx-zssdwmc,:t_crkfx-zkclxbm,:t_crkfx-zkclxms,:t_crkfx-zckje,:t_crkfx-zrkje,:t_crkfx-zcksl,
  :t_crkfx-zrksl,
                  :t_crkfx-zcrkrq,
                  :t_crkfx-zcrkyf,:t_crkfx-zdate,:t_crkfx-ztime,:t_crkfx-zfield1,:t_crkfx-zfield2,:t_crkfx-zfield3,:t_crkfx-zfield4,:t_crkfx-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.


            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_crkltjfx'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_cshdd = 'X'.
          select * into corresponding fields of table t_cshdd from zmm_dp_cshdd.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_cshdd;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_cshdd.


              EXEC SQL.
                begin
                insert into zmm_dp_cshdd
                (mandt,zebeln,zebelp,zwerks,ZSSDWBM,ZSSDWMC,zdwmc,zbanfn,zbnfpo,zdgdh,zdgdhxm,zmatnr,zmaktx,zxysl,zmeins,zprice,zunitprice,
                  zhszj,zhsjj,zlifnr,zgysmc,zaedat,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5,ZBEDAT,ZSHJE,ZSHRQ,ZFPJE,ZFPRQ)
                 values(:t_cshdd-mandt,:t_cshdd-zebeln,:t_cshdd-zebelp,:t_cshdd-zwerks,:t_cshdd-ZSSDWBM,:t_cshdd-ZSSDWMC,:t_cshdd-zdwmc,:t_cshdd-zbanfn,:t_cshdd-zbnfpo,:t_cshdd-zdgdh,:t_cshdd-zdgdhxm,:t_cshdd-zmatnr,:t_cshdd-zmaktx,:t_cshdd-zxysl,
  :t_cshdd-zmeins,:t_cshdd-zprice,
  :t_cshdd-zunitprice,:t_cshdd-zhszj,:t_cshdd-zhsjj,:t_cshdd-zlifnr,:t_cshdd-zgysmc,
                  :t_cshdd-zaedat,
                  :t_cshdd-zdate,:t_cshdd-ztime,:t_cshdd-zfield1,:t_cshdd-zfield2,:t_cshdd-zfield3,:t_cshdd-zfield4,:t_cshdd-zfield5,
                  :t_cshdd-ZBEDAT,:t_cshdd-ZSHJE,:t_cshdd-ZSHRQ,:t_cshdd-ZFPJE,:t_cshdd-ZFPRQ);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.


            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_cshdd'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_dhxx    = 'X'.
          select * into corresponding fields of table t_dhxx from zmm_dp_dhxx.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_dhxx;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_dhxx.


              EXEC SQL.
                begin
                insert into zmm_dp_dhxx
                (mandt,zysdh,zebeln,zebelp,gysch,zswhtbh,zdwmc,ZSSDWBM,ZSSDWMC,zpspnr,zxmmc,zwerks,zmatnr,zmaktx,zmenge,zmeins,zlifnr,zgysmc,zjjsl,zyssl,zsjjhq,zjhwc,zzjrq,zyspj,zpjycts,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5,ZYSZT)
                 values(:t_dhxx-mandt,:t_dhxx-zysdh,:t_dhxx-zebeln,:t_dhxx-zebelp,:t_dhxx-gysch,:t_dhxx-zswhtbh,:t_dhxx-zdwmc,:t_dhxx-ZSSDWBM,:t_dhxx-ZSSDWMC,:t_dhxx-zpspnr,:t_dhxx-zxmmc,:t_dhxx-zwerks,:t_dhxx-zmatnr,:t_dhxx-zmaktx,:t_dhxx-zmenge,
  :t_dhxx-zmeins,:t_dhxx-zlifnr,
  :t_dhxx-zgysmc,:t_dhxx-zjjsl,:t_dhxx-zyssl,
                  :t_dhxx-zsjjhq,
                  :t_dhxx-zjhwc,
                  :t_dhxx-zzjrq,
                  :t_dhxx-zyspj,:t_dhxx-zpjycts,:t_dhxx-zdate,:t_dhxx-ztime,:t_dhxx-zfield1,:t_dhxx-zfield2,:t_dhxx-zfield3,:t_dhxx-zfield4,
  :t_dhxx-zfield5,:t_dhxx-ZYSZT);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.


            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_dhxx'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_fhtz    = 'X'.
          select * into corresponding fields of table t_fhtz from zmm_dp_fhtz.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_fhtz;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_fhtz.


              EXEC SQL.
                begin
                insert into zmm_dp_fhtz
                (mandt,zwerks,zfhtzdh,zebeln,zebelp,zgysch,ZSSDWBM,ZSSDWMC,zpspnr,zxmmc,zdwmc,zswhtbh,zmatnr,zmaktx,zmenge,zmeins,zfhtzzt,zshlxr,zshlxrsj,eindt,zsjjhdd,zzjrq,ernam,zlifnr,zgysmc,zdate,ztime,
                  zfield1,zfield2,zfield3,zfield4,zfield5,ZQRRQ,ZLXFS,ZLXR)
                 values(:t_fhtz-mandt,:t_fhtz-zwerks,:t_fhtz-zfhtzdh,:t_fhtz-zebeln,:t_fhtz-zebelp,:t_fhtz-zgysch,:t_fhtz-ZSSDWBM,:t_fhtz-ZSSDWMC,:t_fhtz-zpspnr,:t_fhtz-zxmmc,:t_fhtz-zdwmc,:t_fhtz-zswhtbh,:t_fhtz-zmatnr,:t_fhtz-zmaktx,:t_fhtz-zmenge,
  :t_fhtz-zmeins,:t_fhtz-zfhtzzt,
  :t_fhtz-zshlxr,:t_fhtz-zshlxrsj,
                  :t_fhtz-eindt,
                  :t_fhtz-zsjjhdd,
                  :t_fhtz-zzjrq,
                  :t_fhtz-ernam,:t_fhtz-zlifnr,:t_fhtz-zgysmc,:t_fhtz-zdate,:t_fhtz-ztime,:t_fhtz-zfield1,:t_fhtz-zfield2,:t_fhtz-zfield3,:t_fhtz-zfield4,:t_fhtz-zfield5,:t_fhtz-ZQRRQ,
                  :t_fhtz-ZLXFS,:t_fhtz-ZLXR);
                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_fhtz'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_fhtzl   = 'X'.
          select * into corresponding fields of table t_fhtzl from zmm_dp_fhtzwzl.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_fhtzwzl;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_fhtzl.


              EXEC SQL.
                begin
                insert into zmm_dp_fhtzwzl
                (mandt,zdwbm,ztjyf,zdwmc,zfhtzje,zfhtzhtje,zfhtzwzl,zsxhtfs,zgyjhhtfs,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
               values(:t_fhtzl-mandt,:t_fhtzl-zdwbm,:t_fhtzl-ztjyf,:t_fhtzl-zdwmc,:t_fhtzl-zfhtzje,:t_fhtzl-zfhtzhtje,:t_fhtzl-zfhtzwzl,:t_fhtzl-zsxhtfs,:t_fhtzl-zgyjhhtfs,:t_fhtzl-zdate,:t_fhtzl-ztime,:t_fhtzl-zfield1,:t_fhtzl-zfield2,:t_fhtzl-zfield3,
  :t_fhtzl-zfield4,:t_fhtzl-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_fhtzwzl'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_gyjh    = 'X'.
          select * into corresponding fields of table t_gyjh from zmm_dp_gyjh.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_gyjh;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_gyjh.


              EXEC SQL.
                begin
                insert into zmm_dp_gyjh
                (mandt,zwerks,zgysch,zebeln,zebelp,zswhtbh,ZSSDWBM,ZSSDWMC,zdwmc,zmatnr,zmaktx,zmenge,zmeins,zpspnr,zxmmc,zdydj,zjhq,zeindt,gystatus,upgstatus,zjhqbgzt,zlifnr,zgysmc,sountsch,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5,ZFPJYZT)
                 values(:t_gyjh-mandt,:t_gyjh-zwerks,:t_gyjh-zgysch,:t_gyjh-zebeln,:t_gyjh-zebelp,:t_gyjh-zswhtbh,:t_gyjh-ZSSDWBM,:t_gyjh-ZSSDWMC,:t_gyjh-zdwmc,:t_gyjh-zmatnr,:t_gyjh-zmaktx,:t_gyjh-zmenge,:t_gyjh-zmeins,:t_gyjh-zpspnr,:t_gyjh-zxmmc,
  :t_gyjh-zdydj,:t_gyjh-zjhq,:t_gyjh-zeindt,
                  :t_gyjh-gystatus,:t_gyjh-upgstatus,:t_gyjh-zjhqbgzt,:t_gyjh-zlifnr,:t_gyjh-zgysmc,:t_gyjh-sountsch,:t_gyjh-zdate,:t_gyjh-ztime,:t_gyjh-zfield1,:t_gyjh-zfield2,:t_gyjh-zfield3,:t_gyjh-zfield4,:t_gyjh-zfield5,:t_gyjh-ZFPJYZT) ;


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_gyjh'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.




        endif.
        if p_gyjhl   = 'X'.
          select * into corresponding fields of table t_gyjhl from zmm_dp_gyjhwcl.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_gyjhwcl;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_gyjhl.


              EXEC SQL.
                begin
                insert into zmm_dp_gyjhwcl
                (mandt,zdwbm,ztjyf,zdwmc,zsjwcdhje,zjhwclhtje,zjhwcl,zsxhtfs,zgyjhhtfs,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
              values(:t_gyjhl-mandt,:t_gyjhl-zdwbm,:t_gyjhl-ztjyf,:t_gyjhl-zdwmc,:t_gyjhl-zsjwcdhje,:t_gyjhl-zjhwclhtje,:t_gyjhl-zjhwcl,:t_gyjhl-zsxhtfs,:t_gyjhl-zgyjhhtfs,:t_gyjhl-zdate,:t_gyjhl-ztime,:t_gyjhl-zfield1,:t_gyjhl-zfield2,:t_gyjhl-zfield3,
  :t_gyjhl-zfield4,:t_gyjhl-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_gyjhwcl'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_gywcl   = 'X'.
          select * into corresponding fields of table t_gywcl from zmm_dp_gywcl.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_gywcl;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_gywcl.


              EXEC SQL.
                begin
                insert into zmm_dp_gywcl
                (mandt,zdwbm,ztjyf,zdwmc,zgywclzb,zfhwzlzb,zjswclzb,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
               values(:t_gywcl-mandt,:t_gywcl-zdwbm,:t_gywcl-ztjyf,:t_gywcl-zdwmc,:t_gywcl-zgywclzb,:t_gywcl-zfhwzlzb,:t_gywcl-zjswclzb,:t_gywcl-zdate,:t_gywcl-ztime,:t_gywcl-zfield1,:t_gywcl-zfield2,:t_gywcl-zfield3,
  :t_gywcl-zfield4,:t_gywcl-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_gywcl'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_hss   = 'X'.
          select * into corresponding fields of table t_hss from zmm_dp_hss.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_hss;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_hss.


              EXEC SQL.
                begin
                insert into zmm_dp_hss
                (mandt,zkunnr,zhssmc,zgsdjh,zzzjgd,zstcd1,ztel_number,zstreet,zcjrq,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
               values(:t_hss-mandt,:t_hss-zkunnr,:t_hss-zhssmc,:t_hss-zgsdjh,:t_hss-zzzjgd,:t_hss-zstcd1,:t_hss-ztel_number,:t_hss-zstreet,
                  :t_hss-zcjrq,
                  :t_hss-zdate,:t_hss-ztime,:t_hss-zfield1,:t_hss-zfield2,:t_hss-zfield3,:t_hss-zfield4,:t_hss-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_hss'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.






        endif.
        if p_gywzl   = 'X'.
          select * into corresponding fields of table t_gywzl from zmm_dp_gyjhwzl.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_gyjhwzl;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_gywzl.


              EXEC SQL.
                begin
                insert into zmm_dp_gyjhwzl
                (mandt,zdwbm,ztjyf,zdwmc,zsxhtje,zjhwzlhtje,zjhwzl,zsxhtfs,zgyjhhtfs,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
                values(:t_gywzl-mandt,:t_gywzl-zdwbm,:t_gywzl-ztjyf,:t_gywzl-zdwmc,:t_gywzl-zsxhtje,:t_gywzl-zjhwzlhtje,:t_gywzl-zjhwzl,:t_gywzl-zsxhtfs,:t_gywzl-zgyjhhtfs,:t_gywzl-zdate,:t_gywzl-ztime,:t_gywzl-zfield1,:t_gywzl-zfield2,:t_gywzl-zfield3,
  :t_gywzl-zfield4,:t_gywzl-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_gyjhwzl'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_ht      = 'X'.
          select * into corresponding fields of table t_ht from zmm_dp_htwdtb.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_htwdtb;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_ht.


              EXEC SQL.
                begin
                insert into zmm_dp_htwdtb
                (mandt,zebeln,ztjday,zgcbm,zgcmc,zssdwbm,zssdwmc,zzbjgje,zhtqdje,zjhdhje,zsjdhje,zdhruje,zfkje,zddyf,ztjrq,zhtlx,zdate,ztime,zzbjgrq,zhtqdrq,zjhdhrq,zsjdhrq,sjrkrq,zfkrq,zzbjgyf,zhtqdyf,zjhdhyf,zsjdhyf,zsjrkyf,zfkyf,zfield1,zfield2,
zfield3,
  zfield4,
  zfield5)


                 values(:t_ht-mandt,:t_ht-zebeln,:t_ht-ztjday,:t_ht-zgcbm,:t_ht-zgcmc,:t_ht-zssdwbm,:t_ht-zssdwmc,:t_ht-zzbjgje,:t_ht-zhtqdje,:t_ht-zjhdhje,:t_ht-zsjdhje,:t_ht-zdhruje,:t_ht-zfkje,:t_ht-zddyf,:t_ht-ztjrq,:t_ht-zhtlx,:t_ht-zdate,
:t_ht-ztime,
                  :t_ht-zzbjgrq,
                  :t_ht-zhtqdrq,
                  :t_ht-zjhdhrq,
                  :t_ht-zsjdhrq,
                  :t_ht-sjrkrq,
                  :t_ht-zfkrq,
                  :t_ht-zzbjgyf,:t_ht-zhtqdyf,:t_ht-zjhdhyf,:t_ht-zsjdhyf,:t_ht-zsjrkyf,:t_ht-zfkyf,:t_ht-zfield1,:t_ht-zfield2,:t_ht-zfield3,:t_ht-zfield4,:t_ht-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_htwdtb'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_htlx    = 'X'.
          select * into corresponding fields of table t_htlx from zmm_dp_htlx.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_htlx;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_htlx.


              EXEC SQL.
                begin
                insert into zmm_dp_htlx
                (mandt,zdwmc,zgysch,zswhtbh,zebeln,zebelp,ZSSDWBM,ZSSDWMC,zmatnr,zmaktx,zmenge,zmeins,zjhq,zeindt,gystatus,zwerks,zlifnr,zgysmc,zpspnr,zxmmc,zfhtzdh,zfhtzzt,zysdh,zyszt,zfpjyzt,ztydh,ztyzt,zdate,ztime,zfield1,zfield2,zfield3,zfield4,
  zfield5)
                 values(:t_htlx-mandt,:t_htlx-zdwmc,:t_htlx-zgysch,:t_htlx-zswhtbh,:t_htlx-zebeln,:t_htlx-zebelp,:t_htlx-ZSSDWBM,:t_htlx-ZSSDWMC,:t_htlx-zmatnr,:t_htlx-zmaktx,:t_htlx-zmenge,:t_htlx-zmeins,
                  :t_htlx-zjhq,
                  :t_htlx-zeindt,
                  :t_htlx-gystatus,:t_htlx-zwerks,:t_htlx-zlifnr,:t_htlx-zgysmc,:t_htlx-zpspnr,:t_htlx-zxmmc,:t_htlx-zfhtzdh,:t_htlx-zfhtzzt,:t_htlx-zysdh,:t_htlx-zyszt,:t_htlx-zfpjyzt,:t_htlx-ztydh,:t_htlx-ztyzt,:t_htlx-zdate,:t_htlx-ztime,
  :t_htlx-zfield1,:t_htlx-zfield2,:t_htlx-zfield3,:t_htlx-zfield4,:t_htlx-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_htlx'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_htlxfx   = 'X'.
          select * into corresponding fields of table t_htlxfx from zmm_dp_htlyzhfx.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_htlyzhfx;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_htlxfx.


              EXEC SQL.
                begin
                insert into zmm_dp_htlyzhfx
                (mandt,zebeln,zebelp,zgcbm,zgcmc,zssdwbm,zssdwmc,zgyjhje,zfhtzje,zdhje,ztyje,zgyjhtms,zfhtztms,zdhtms,ztytms,zddyf,zddrq,zzsnr,zgyjhrq,zfhtzrq,zfhrq,ztyrq,zgyjhyf,zfhtzyf,zdhyf,ztyyf,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5
  )
                 values(:t_htlxfx-mandt,:t_htlxfx-zebeln,:t_htlxfx-zebelp,:t_htlxfx-zgcbm,:t_htlxfx-zgcmc,:t_htlxfx-zssdwbm,:t_htlxfx-zssdwmc,:t_htlxfx-zgyjhje,:t_htlxfx-zfhtzje,:t_htlxfx-zdhje,:t_htlxfx-ztyje,:t_htlxfx-zgyjhtms,:t_htlxfx-zfhtztms,
  :t_htlxfx-zdhtms,:t_htlxfx-ztytms,:t_htlxfx-zddyf,
*                  :t_htlxfx-zddrq,'00000000',null,to_date(:t_htlxfx-zddrq,'YYYYMMDD')),
*                  :t_htlxfx-zzsnr,
*                  :t_htlxfx-zgyjhrq,'00000000',null,to_date(:t_htlxfx-zgyjhrq,'YYYYMMDD')),
*                  :t_htlxfx-zfhtzrq,'00000000',null,to_date(:t_htlxfx-zfhtzrq,'YYYYMMDD')),
*                  :t_htlxfx-zfhrq,'00000000',null,to_date(:t_htlxfx-zfhrq,'YYYYMMDD')),
*                  :t_htlxfx-ztyrq,'00000000',null,to_date(:t_htlxfx-ztyrq,'YYYYMMDD')),
                  :t_htlxfx-zddrq,
                  :t_htlxfx-zzsnr,
                  :t_htlxfx-zgyjhrq,
                  :t_htlxfx-zfhtzrq,
                  :t_htlxfx-zfhrq,
                  :t_htlxfx-ztyrq,
                  :t_htlxfx-ZGYJHYF,:t_htlxfx-ZFHTZYF,:t_htlxfx-ZDHYF,:t_htlxfx-ZTYYF,:t_htlxfx-zdate,:t_htlxfx-ztime,:t_htlxfx-zfield1,:t_htlxfx-zfield2,:t_htlxfx-zfield3,:t_htlxfx-zfield4,:t_htlxfx-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_htlyzhfx'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_htqd    = 'X'.
          select * into corresponding fields of table t_htqd from zmm_dp_htqd.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_htqd;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_htqd.


              EXEC SQL.
                begin
                insert into zmm_dp_htqd
                (mandt,zdwbm,zhtbh,zebeln,zebelp,ZSSDWBM,ZSSDWMC,zdwmc,zmatnr,zmaktx,zjbdw,zhtsl,zhtqdrq,zhtjhrq,zpspnr,zxmmc,zdydj,zxykcddbs,zcshcgddbs,zlifnr,zgysmc,zddzje,zhtdj,zhhszj,zsxrq,zjhjhrq,zqdzt,zgyjh,zjhwcbs,ZZBPC,ZPCMC,zdate,ztime,zfield1,
  zfield2,
  zfield3,zfield4,zfield5,ZDDLX,ZKONNR,ZKTPNR,ZAEDAT,ZXMLX,zcjrxm)
                  values(:t_htqd-mandt,:t_htqd-zdwbm,:t_htqd-zhtbh,:t_htqd-zebeln,:t_htqd-zebelp,:t_htqd-ZSSDWBM,:t_htqd-ZSSDWMC,:t_htqd-zdwmc,:t_htqd-zmatnr,:t_htqd-zmaktx,:t_htqd-zjbdw,:t_htqd-zhtsl,
                  :t_htqd-zhtqdrq,
                  :t_htqd-zhtjhrq,
                  :t_htqd-zpspnr,:t_htqd-zxmmc,:t_htqd-zdydj,:t_htqd-zxykcddbs,:t_htqd-zcshcgddbs,:t_htqd-zlifnr,:t_htqd-zgysmc,:t_htqd-zddzje,:t_htqd-zhtdj,:t_htqd-zhhszj,
                  :t_htqd-zsxrq,
                  :t_htqd-zjhjhrq,
                  :t_htqd-zqdzt,:t_htqd-zgyjh,:t_htqd-zjhwcbs,:t_htqd-ZZBPC,:t_htqd-ZPCMC,:t_htqd-zdate,:t_htqd-ztime,:t_htqd-zfield1,:t_htqd-zfield2,:t_htqd-zfield3,:t_htqd-zfield4,:t_htqd-zfield5,:t_htqd-ZDDLX,:t_htqd-ZKONNR,:t_htqd-ZKTPNR,
  :t_htqd-ZAEDAT,:t_htqd-ZXMLX,:t_htqd-zcjrxm);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_htqd'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_htzb    = 'X'.
          select * into corresponding fields of table t_htzb from zmm_dp_htzb.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_htzb;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_htzb.


              EXEC SQL.
                begin
                insert into zmm_dp_htzb
                (mandt,zzbpc,zpcmc,zqdjsl,zqdzql,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
                 values(:t_htzb-mandt,:t_htzb-zzbpc,:t_htzb-zpcmc,:t_htzb-zqdjsl,:t_htzb-zqdzql,:t_htzb-zdate,:t_htzb-ztime,:t_htzb-zfield1,:t_htzb-zfield2,:t_htzb-zfield3,:t_htzb-zfield4,:t_htzb-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_htzb'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_jhbg    = 'X'.
          select * into corresponding fields of table t_jhbg from zmm_dp_jhqbg.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_jhqbg;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_jhbg.


              EXEC SQL.
                begin
                insert into zmm_dp_jhqbg
                (mandt,zwerks,zgysch,zbglsh,ZSSDWBM,ZSSDWMC,zdwmc,zcjrq,zebeln,zebelp,zpspnr,zxmmc,zhtjhq,zeindt,zxqjhq,zgjhq,zsponsor,zreason,zcreator,operstatus,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5
  )values(:t_jhbg-mandt,:t_jhbg-zwerks,:t_jhbg-zgysch,:t_jhbg-zbglsh,:t_jhbg-ZSSDWBM,:t_jhbg-ZSSDWMC,:t_jhbg-zdwmc,
                  :t_jhbg-zcjrq,
*                 :t_jhbg-zebeln,:t_jhbg-zebelp,:t_jhbg-zpspnr,:t_jhbg-zxmmc,
*                  :t_jhbg-zhtjhq,'00000000',null,to_date(:t_jhbg-zhtjhq,'YYYYMMDD')),
*                  :t_jhbg-zeindt,'00000000',null,to_date(:t_jhbg-zeindt,'YYYYMMDD')),
*                  :t_jhbg-zxqjhq,'00000000',null,to_date(:t_jhbg-zxqjhq,'YYYYMMDD')),
*                  :t_jhbg-zgjhq,'00000000',null,to_date(:t_jhbg-zgjhq,'YYYYMMDD')),
                  :t_jhbg-zebeln,:t_jhbg-zebelp,:t_jhbg-zpspnr,:t_jhbg-zxmmc,:t_jhbg-zhtjhq,:t_jhbg-zeindt,:t_jhbg-zxqjhq,:t_jhbg-zgjhq,:t_jhbg-zsponsor,:t_jhbg-zreason,:t_jhbg-zcreator,:t_jhbg-operstatus,:t_jhbg-zdate,:t_jhbg-ztime,
  :t_jhbg-zfield1,:t_jhbg-zfield2,:t_jhbg-zfield3,:t_jhbg-zfield4,:t_jhbg-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_jhqbg'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_jhfx    = 'X'.
          select * into corresponding fields of table t_jhfx from zmm_dp_jhqbgfx.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_jhqbgfx;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_jhfx.


              EXEC SQL.
                begin
                insert into zmm_dp_jhqbgfx
                (mandt,zebeln,zebelp,zgyjhbh,zjhbgrq,zbgtbdw,zbgyy,zbgje,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5,zgcbm,zgcmc,zssdwbm,zssdwmc)
                 values(:t_jhfx-mandt,:t_jhfx-zebeln,:t_jhfx-zebelp,:t_jhfx-zgyjhbh,
                  :t_jhfx-zjhbgrq,
                  :t_jhfx-zbgtbdw,:t_jhfx-zbgyy,:t_jhfx-zbgje,:t_jhfx-zdate,:t_jhfx-ztime,:t_jhfx-zfield1,:t_jhfx-zfield2,:t_jhfx-zfield3,:t_jhfx-zfield4,:t_jhfx-zfield5,:t_jhfx-zgcbm,:t_jhfx-zgcmc,:t_jhfx-zssdwbm,:t_jhfx-zssdwmc);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_jhqbgfx'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_jkyj    = 'X'.
          select * into corresponding fields of table t_jkyj from zmm_dp_gyjkyy.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_gyjkyy ;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_jkyj.


              EXEC SQL.
                begin
                 insert into zmm_dp_gyjkyy
                (mandt,zcgsqbh,zcgsqxmh,zcgddbm,zcgddhxmh,zxmbm,zxmmc,zssdwbh,zssdwmc,zwlbh,zwlmc,zwlzbh,zwlzms,zsqsl,zddsl,zgcbh,zgcmc,zywhj,zyjlx,zjhcjrq,zjhhztjrq,zzbjgrq,zcgddcjrq,zhtjhq,zqdjhq,zysdblrq,zwzrkrq,zyjcsrq,zyjzt,zfield1,zfield2,zfield3,
                zfield4,zfield5,ZXMLX,zdate,ztime,zjhwcsj)
                values(:t_jkyj-mandt,:t_jkyj-zcgsqbh,:t_jkyj-zcgsqxmh,:t_jkyj-zcgddbm,:t_jkyj-zcgddhxmh,:t_jkyj-zxmbm,:t_jkyj-zxmmc,:t_jkyj-zssdwbh,:t_jkyj-zssdwmc,:t_jkyj-zwlbh,:t_jkyj-zwlmc,:t_jkyj-zwlzbh,:t_jkyj-zwlzms,:t_jkyj-zsqsl,:t_jkyj-zddsl,
                :t_jkyj-zgcbh,:t_jkyj-zgcmc,:t_jkyj-zywhj,:t_jkyj-zyjlx,
                :t_jkyj-zjhcjrq,
                :t_jkyj-zjhhztjrq,
                :t_jkyj-zzbjgrq,
                :t_jkyj-zcgddcjrq,
                :t_jkyj-zhtjhq,
                :t_jkyj-zqdjhq,
                :t_jkyj-zysdblrq,
                :t_jkyj-zwzrkrq,
                :t_jkyj-zyjcsrq,
                :t_jkyj-zyjzt,:t_jkyj-zfield1,:t_jkyj-zfield2,:t_jkyj-zfield3,:t_jkyj-zfield4,:t_jkyj-zfield5,:t_jkyj-ZXMLX,:t_jkyj-zdate,:t_jkyj-ztime,:t_jkyj-zjhwcsj) ;


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_gyjkyy'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_kcfx    = 'X'.
          select * into corresponding fields of table t_kcfx from zmm_dp_kczyfx.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_kczyfx;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_kcfx.


              EXEC SQL.
                begin
                insert into zmm_dp_kczyfx
                (mandt,zpspnr,zssdwbm,zssdwmc,zxmmc,zwerks,zgcmc,zmatkl,zwgbez,zmatnr,zmaktx,zlgort,zlgobe,zkclx,zkcje,zkcsl,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5
  )
                 values(:t_kcfx-mandt,:t_kcfx-zpspnr,:t_kcfx-zssdwbm,:t_kcfx-zssdwmc,:t_kcfx-zxmmc,:t_kcfx-zwerks,:t_kcfx-zgcmc,:t_kcfx-zmatkl,:t_kcfx-zwgbez,:t_kcfx-zmatnr,:t_kcfx-zmaktx,:t_kcfx-zlgort,:t_kcfx-zlgobe,:t_kcfx-zkclx,:t_kcfx-zkcje,
  :t_kcfx-zkcsl,
  :t_kcfx-zdate,:t_kcfx-ztime,:t_kcfx-zfield1,:t_kcfx-zfield2,:t_kcfx-zfield3,:t_kcfx-zfield4,:t_kcfx-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_kczyfx'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_stck    = 'X'.
          select * into corresponding fields of table t_stck from zmm_dp_stckzy.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_stckzy;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_stck.


              EXEC SQL.
                begin
                insert into zmm_dp_stckzy
                (mandt,zckbh,zgcbm,zssdwbm,zssdwmc,zgcmc,zckmc,zckdd,zckzcssdw,zckssds,zglbm,zckcj,zckmj,zckcjsj,zzcsx,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5
  )
                 values(:t_stck-mandt,:t_stck-zckbh,:t_stck-zgcbm,:t_stck-zssdwbm,:t_stck-zssdwmc,:t_stck-zgcmc,:t_stck-zckmc,:t_stck-zckdd,:t_stck-zckzcssdw,:t_stck-zckssds,:t_stck-zglbm,:t_stck-zckcj,:t_stck-zckmj,
                  :t_stck-zckcjsj,:t_stck-zzcsx,:t_stck-zdate,:t_stck-ztime,:t_stck-zfield1,:t_stck-zfield2,:t_stck-zfield3,:t_stck-zfield4,:t_stck-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_stckzy'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_tyxx    = 'X'.
          select * into corresponding fields of table t_tyxx from zmm_dp_tyd.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_tyd;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_tyxx.


              EXEC SQL.
                begin
                insert into zmm_dp_tyd
                (mandt,ztydh,ztydhh,zwerks,ZSSDWBM,ZSSDWMC,zpspnr,zxmmc,zdwmc,zebeln,zebelp,zswhtbh,zmatnr,zmaktx,zmenge,zmeins,zlifnr,zgysmc,zzjrq,zyspj,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5,ZTYZT)
                 values(:t_tyxx-mandt,:t_tyxx-ztydh,:t_tyxx-ztydhh,:t_tyxx-zwerks,:t_tyxx-ZSSDWBM,:t_tyxx-ZSSDWMC,:t_tyxx-zpspnr,:t_tyxx-zxmmc,:t_tyxx-zdwmc,:t_tyxx-zebeln,:t_tyxx-zebelp,:t_tyxx-zswhtbh,:t_tyxx-zmatnr,:t_tyxx-zmaktx,:t_tyxx-zmenge,
  :t_tyxx-zmeins,:t_tyxx-zlifnr,
  :t_tyxx-zgysmc,
                  :t_tyxx-zzjrq,
                  :t_tyxx-zyspj,:t_tyxx-zdate,:t_tyxx-ztime,:t_tyxx-zfield1,:t_tyxx-zfield2,:t_tyxx-zfield3,:t_tyxx-zfield4,:t_tyxx-zfield5,:t_tyxx-ZTYZT);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_tyd'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_xm      = 'X'.
*          SELECT * INTO CORRESPONDING FIELDS OF TABLE t_xm FROM zmm_dp_xmwdfx.
*          IF sy-subrc = 0.
*            "清数
*            EXEC SQL.
*              begin
*                delete from zmm_dp_xmwdfx where zdate = :sy-datum ;
*                if sql%found then
*                  commit;
*                else
*                  rollback;
*                end if;
*             end;
*            ENDEXEC.
*            "写数
*            LOOP AT t_xm.
*
*              EXEC SQL.
*                begin
*                insert into zmm_dp_xmwdfx
*                (mandt,zxmbm,zgcbm,zebeln,zebelp,zgcmc,zssdwbm,zssdwmc,zdydj,zxmmc,zxmys,zyqdgyxqje,zhtqdje,zdhje,zddyf,zddrq,zdate,ztime,zxmlx,zxmlxms,zqdgyxqrq,zhtqdrq,zsjdhwcrq,zqdgyxqyf,zhtqdyf,zsjdhwcyf,zfield1,zfield2,zfield3,zfield4,zfield5)
*                 values(:t_xm-mandt,:t_xm-zxmbm,:t_xm-zgcbm,:t_xm-zebeln,:t_xm-zebelp,:t_xm-zgcmc,:t_xm-zssdwbm,:t_xm-zssdwmc,:t_xm-zdydj,:t_xm-zxmmc,:t_xm-zxmys,:t_xm-zyqdgyxqje,:t_xm-zhtqdje,:t_xm-zdhje,:t_xm-zddyf,
*                  :t_xm-zddrq,'00000000',null,to_date(:t_xm-zddrq,'YYYYMMDD')),
*                  :t_xm-zdate,:t_xm-ztime,:t_xm-zxmlx,:t_xm-zxmlxms,
*                  :t_xm-zqdgyxqrq,'00000000',null,to_date(:t_xm-zqdgyxqrq,'YYYYMMDD')),
*                  :t_xm-zhtqdrq,'00000000',null,to_date(:t_xm-zhtqdrq,'YYYYMMDD')),
*                  :t_xm-zsjdhwcrq,'00000000',null,to_date(:t_xm-zsjdhwcrq,'YYYYMMDD')),
*                  :t_xm-zqdgyxqyf,:t_xm-zhtqdyf,:t_xm-zsjdhwcyf,:t_xm-zfield1,:t_xm-zfield2,:t_xm-zfield3,:t_xm-zfield4,:t_xm-zfield5);
*
*                  if sql%found then
*                    commit;
*                  else
*                    rollback;
*                  end if;
*               end;
*              ENDEXEC.
*            ENDLOOP.
*          ENDIF.
*
*          SELECT * INTO CORRESPONDING FIELDS OF TABLE t_xm2 FROM zmm_dp_xmwdfx_fk.
*          IF sy-subrc = 0.
*            "清数
*            EXEC SQL.
*              begin
*                delete from zmm_dp_xmwdfx_fk where zdate = :sy-datum ;
*                if sql%found then
*                  commit;
*                else
*                  rollback;
*                end if;
*             end;
*            ENDEXEC.
*            "写数
*            LOOP AT t_xm2.
*
*              EXEC SQL.
*                begin
*                insert into zmm_dp_xmwdfx_fk
*                (mandt,zebeln,zxmbm,zgcbm,zssdwbm,zgcmc,zssdwmc,zxmmc,zdhkzfje,zhtzfje,zdate,ztime,zdhkzfrq,zhtzfrq,zdhkzfyf,zhtzfyf,zfield1,zfield2,zfield3,zfield4,zfield5)
*                 values(:t_xm2-mandt,:t_xm2-zebeln,:t_xm2-zxmbm,:t_xm2-zgcbm,:t_xm2-zssdwbm,:t_xm2-zgcmc,:t_xm2-zssdwmc,:t_xm2-zxmmc,:t_xm2-zdhkzfje,:t_xm2-zhtzfje,:t_xm2-zdate,:t_xm2-ztime,
*                  :t_xm2-zdhkzfrq,'00000000',null,to_date(:t_xm2-zdhkzfrq,'YYYYMMDD')),
*                  :t_xm2-zhtzfrq,'00000000',null,to_date(:t_xm2-zhtzfrq,'YYYYMMDD')),
*                  :t_xm2-zdhkzfyf,:t_xm2-zhtzfyf,:t_xm2-zfield1,:t_xm2-zfield2,:t_xm2-zfield3,:t_xm2-zfield4,:t_xm2-zfield5);
*
*                  if sql%found then
*                    commit;
*                  else
*                    rollback;
*                  end if;
*               end;
*              ENDEXEC.
*            ENDLOOP.
*          ENDIF.


          select * into corresponding fields of table t_xmhz from zmm_dp_xmwdhz .
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from ZMM_DP_XMWDHZ;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数


            loop at t_xmhz.


              EXEC SQL.
                begin
                insert into ZMM_DP_XMWDHZ
                (mandt,ZDYDJ,ZXMBM,ztjday,ZXMLX,ZXMMC,ZGCBM,ZGCMC,zssdwbm,zssdwmc,ZXMYS,ZYQDGYXQJE,ZHTQDJE,ZDHJE,ZXMLXMS,ZDHKZFJE,ZHTZFJE,ZHTQDFS,ZDATE,ZTIME)
                 values(:t_xmHZ-MANDT,
  :t_xmHZ-ZDYDJ,
  :t_xmHZ-ZXMBM,
  :t_xmHZ-ztjday,
  :t_xmHZ-ZXMLX,
  :t_xmHZ-ZXMMC,
  :t_xmHZ-ZGCBM,
  :t_xmHZ-ZGCMC,
  :t_xmHZ-ZSSDWBM,
  :t_xmHZ-ZSSDWMC,
  :t_xmHZ-ZXMYS,
  :t_xmHZ-ZYQDGYXQJE,
  :t_xmHZ-ZHTQDJE,
  :t_xmHZ-ZDHJE,
  :t_xmHZ-ZXMLXMS,
  :t_xmHZ-ZDHKZFJE,
  :t_xmHZ-ZHTZFJE,
  :t_xmHZ-ZHTQDFS,
  :t_xmHZ-ZDATE,
  :t_xmHZ-ZTIME);
                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_xmwdhz'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.
        endif.
        if p_xsdd    = 'X'.
          select * into corresponding fields of table t_xsdd from zmm_dp_xsdd.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_xsdd;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_xsdd.


              EXEC SQL.
                begin
                insert into zmm_dp_xsdd
                (mandt,zwerks,zvbeln,zposnr,zdwmc,ZSSDWBM,ZSSDWMC,zauart,zmatnr,zmaktx,zmeng,meins,zkunnr,zhssmc,zdj,zzj,zerdat,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
                 values(:t_xsdd-mandt,:t_xsdd-zwerks,:t_xsdd-zvbeln,:t_xsdd-zposnr,:t_xsdd-zdwmc,:t_xsdd-ZSSDWBM,:t_xsdd-ZSSDWMC,:t_xsdd-zauart,:t_xsdd-zmatnr,:t_xsdd-zmaktx,:t_xsdd-zmeng,:t_xsdd-meins,:t_xsdd-zkunnr,:t_xsdd-zhssmc,:t_xsdd-zdj,
  :t_xsdd-zzj,
                  :t_xsdd-zerdat,
                  :t_xsdd-zdate,:t_xsdd-ztime,:t_xsdd-zfield1,:t_xsdd-zfield2,:t_xsdd-zfield3,:t_xsdd-zfield4,:t_xsdd-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_xsdd'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_xykc    = 'X'.
          select * into corresponding fields of table t_xykc from zmm_dp_xykczx.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_xykczx;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_xykc.


              EXEC SQL.
                begin
                insert into zmm_dp_xykczx
                (mandt,zbukrs,zebeln,zebelp,zdwmc,zhtbh,zmatnr,zmaktx,zxysl,zyfpsl,zmeins,zprice,zunitprice,zlifnr,zgysmc,zsxrq,zvalidatefrom,zvalidateend,zfpwcl,zqdzt,zzbrq,zbanfn,zbnfpo,ZZBPC,ZPCMC,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
                 values(:t_xykc-mandt,:t_xykc-zbukrs,:t_xykc-zebeln,:t_xykc-zebelp,:t_xykc-zdwmc,:t_xykc-zhtbh,:t_xykc-zmatnr,:t_xykc-zmaktx,:t_xykc-zxysl,:t_xykc-zyfpsl,:t_xykc-zmeins,:t_xykc-zprice,:t_xykc-zunitprice,:t_xykc-zlifnr,:t_xykc-zgysmc,
*                  :t_xykc-zsxrq,'00000000',null,to_date(:t_xykc-zsxrq,'YYYYMMDD')),
*                  :t_xykc-zvalidatefrom,'00000000',null,to_date(:t_xykc-zvalidatefrom,'YYYYMMDD')),
*                  :t_xykc-zvalidateend,'00000000',null,to_date(:t_xykc-zvalidateend,'YYYYMMDD')),
                  :t_xykc-zsxrq,:t_xykc-zvalidatefrom,:t_xykc-zvalidateend,
                  :t_xykc-zfpwcl,:t_xykc-zqdzt,
                  :t_xykc-zzbrq,
*                  :t_xykc-zzbrq,'00000000',null,to_date(:t_xykc-zzbrq,'YYYYMMDD')),
                  :t_xykc-zbanfn,:t_xykc-zbnfpo,:t_xykc-ZZBPC,:t_xykc-ZPCMC,:t_xykc-zdate,:t_xykc-ztime,:t_xykc-zfield1,:t_xykc-zfield2,:t_xykc-zfield3,:t_xykc-zfield4,:t_xykc-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_xykczx'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_ydyp    = 'X'.
          select * into corresponding fields of table t_ydyp from zmm_dp_ydyp.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_ydyp;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_ydyp.


              EXEC SQL.
                begin
                insert into zmm_dp_ydyp
                (mandt,zdwbm,ztjqx,zdwmc,zysdjsl,zwpjsl,zwpjbl,ZTYDSL,ZTYWPJSL,ZTYWPJBL,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
                 values(:t_ydyp-mandt,:t_ydyp-zdwbm,:t_ydyp-ztjqx,:t_ydyp-zdwmc,:t_ydyp-zysdjsl,:t_ydyp-zwpjsl,:t_ydyp-zwpjbl,:t_ydyp-ZTYDSL,:t_ydyp-ZTYWPJSL,:t_ydyp-ZTYWPJBL,:t_ydyp-zdate,:t_ydyp-ztime,:t_ydyp-zfield1,:t_ydyp-zfield2,:t_ydyp-zfield3,
  :t_ydyp-zfield4,:t_ydyp-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_ydyp'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_ysjh    = 'X'.
          select * into corresponding fields of table t_ysjh from zmm_dp_ysjh.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_ysjh;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_ysjh.


              EXEC SQL.
                begin
                insert into zmm_dp_ysjh
                (mandt,ysjhdh,zgysch,zwerks,zdwmc,ZSSDWBM,ZSSDWMC,zpspnr,zxmmc,zfhtzdh,zebeln,zebelp,zswhtbh,zmatnr,zmaktx,zmenge,zmeins,zlifnr,zgysmc,zysfs,zyscyrxm,zyscyrdh,zclcph,zcx,zsfz,zzdz,zgpssbbh,crdate,zdate,ztime,zfield1,zfield2,zfield3,
  zfield4,zfield5)
                 values(:t_ysjh-mandt,:t_ysjh-ysjhdh,:t_ysjh-zgysch,:t_ysjh-zwerks,:t_ysjh-zdwmc,:t_ysjh-ZSSDWBM,:t_ysjh-ZSSDWMC,:t_ysjh-zpspnr,:t_ysjh-zxmmc,:t_ysjh-zfhtzdh,:t_ysjh-zebeln,:t_ysjh-zebelp,:t_ysjh-zswhtbh,:t_ysjh-zmatnr,:t_ysjh-zmaktx,
  :t_ysjh-zmenge,:t_ysjh-zmeins,
  :t_ysjh-zlifnr,:t_ysjh-zgysmc,:t_ysjh-zysfs,:t_ysjh-zyscyrxm,:t_ysjh-zyscyrdh,:t_ysjh-zclcph,:t_ysjh-zcx,:t_ysjh-zsfz,:t_ysjh-zzdz,:t_ysjh-zgpssbbh,
                  :t_ysjh-crdate,
                  :t_ysjh-zdate,:t_ysjh-ztime,:t_ysjh-zfield1,:t_ysjh-zfield2,:t_ysjh-zfield3,:t_ysjh-zfield4,:t_ysjh-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_ysjh'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_zdwz    = 'X'.
          select * into corresponding fields of table t_zdwz from zmm_dp_zdwzwh.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_zdwzwh;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_zdwz.


              EXEC SQL.
                begin
                insert into zmm_dp_zdwzwh
                (mandt,zwerks,zgysch,zebeln,zebelp,zdwmc,ZSSDWBM,ZSSDWMC,zpspnr,zxmmc,zlifnr,zgysmc,ztzjfzt,zpcjhzt,zscjdzt,zysjhzt,zjhq,zeindt,zmatnr,zmaktx,zmatkl,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5)
                 values(:t_zdwz-mandt,:t_zdwz-zwerks,:t_zdwz-zgysch,:t_zdwz-zebeln,:t_zdwz-zebelp,:t_zdwz-zdwmc,:t_zdwz-ZSSDWBM,:t_zdwz-ZSSDWMC,:t_zdwz-zpspnr,:t_zdwz-zxmmc,:t_zdwz-zlifnr,:t_zdwz-zgysmc,:t_zdwz-ztzjfzt,:t_zdwz-zpcjhzt,:t_zdwz-zscjdzt,
  :t_zdwz-zysjhzt,
                  :t_zdwz-zjhq,
                  :t_zdwz-zeindt,
                  :t_zdwz-zmatnr,:t_zdwz-zmaktx,:t_zdwz-zmatkl,:t_zdwz-zdate,:t_zdwz-ztime,:t_zdwz-zfield1,:t_zdwz-zfield2,:t_zdwz-zfield3,:t_zdwz-zfield4,:t_zdwz-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_zdwzwh'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_zdxm     = 'X'.
          select * into corresponding fields of table t_zdxm from zmm_dp_zdxmjd.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_zdxmjd;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_zdxm.


              EXEC SQL.
                begin
                insert into zmm_dp_zdxmjd
                (mandt,ZWERKS,zpspnr,zdwmc,zxmmc,zssdwbm,zssdwmc,zdydj,zerdat,zjhkgsj,zsjkgsj,zjhtcsj,zsjtcsj,zwzxqje,zhtqdje,zhtdhje,zfkje,zeindt,zxmxqrq,zhtqdrq,zdhysrq,zfkrq,zxmxqyf,zhtqdyf,zdhysyf,zfkyf,zdate,ztime,zfield1,zfield2,zfield3,zfield4,
  zfield5,ZXMDL)
                 values(:t_zdxm-mandt,:t_zdxm-ZWERKS,:t_zdxm-zpspnr,:t_zdxm-zdwmc,:t_zdxm-zxmmc,:t_zdxm-zssdwbm,:t_zdxm-zssdwmc,:t_zdxm-zdydj,
                  :t_zdxm-zerdat,
                  :t_zdxm-zjhkgsj,
                  :t_zdxm-zsjkgsj,
                  :t_zdxm-zjhtcsj,
                  :t_zdxm-zsjtcsj,
                  :t_zdxm-zwzxqje,:t_zdxm-zhtqdje,:t_zdxm-zhtdhje,:t_zdxm-zfkje,:t_zdxm-zeindt,
                  :t_zdxm-zxmxqrq,
                  :t_zdxm-zhtqdrq,
                  :t_zdxm-zdhysrq,
                  :t_zdxm-zfkrq,
                  :t_zdxm-zxmxqyf,:t_zdxm-zhtqdyf,:t_zdxm-zdhysyf,:t_zdxm-zfkyf,:t_zdxm-zdate,:t_zdxm-ztime,:t_zdxm-zfield1,:t_zdxm-zfield2,:t_zdxm-zfield3,:t_zdxm-zfield4,:t_zdxm-zfield5,:t_zdxm-ZXMDL);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_zdxmjd'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_zdxmwz   = 'X'.
          select * into corresponding fields of table t_zdxmwz from zmm_dp_zdxmwz.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_zdxmwz;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_zdxmwz.


              EXEC SQL.
                begin
                insert into zmm_dp_zdxmwz
                (mandt,zpspnr,zwerks,zgysch,zebeln,zebelp,zdwmc,ZSSDWBM,ZSSDWMC,zmatnr,zmaktx,zmenge,zmeins,zhtdj,zjhsl,zswhtbh,zxmmc,zdydj,zhtsx,gystatus,zfhtzzt,zscfyzt,zyszt,zfpjyzt,ztyzt,zlifnr,zgysmc,zjhq,zaedat,zerdat,zdate,ztime,zfield1,zfield2,
  zfield3,zfield4,
  zfield5,ZXMDL)
                 values(:t_zdxmwz-mandt,:t_zdxmwz-zpspnr,:t_zdxmwz-zwerks,:t_zdxmwz-zgysch,:t_zdxmwz-zebeln,:t_zdxmwz-zebelp,:t_zdxmwz-zdwmc,:t_zdxmwz-ZSSDWBM,:t_zdxmwz-ZSSDWMC,:t_zdxmwz-zmatnr,:t_zdxmwz-zmaktx,:t_zdxmwz-zmenge,:t_zdxmwz-zmeins,
  :t_zdxmwz-zhtdj,:t_zdxmwz-zjhsl,
  :t_zdxmwz-zswhtbh,:t_zdxmwz-zxmmc,:t_zdxmwz-zdydj,:t_zdxmwz-zhtsx,:t_zdxmwz-gystatus,:t_zdxmwz-zfhtzzt,:t_zdxmwz-zscfyzt,:t_zdxmwz-zyszt,:t_zdxmwz-zfpjyzt,:t_zdxmwz-ztyzt,:t_zdxmwz-zlifnr,:t_zdxmwz-zgysmc,
                  :t_zdxmwz-zjhq,
                  :t_zdxmwz-zaedat,
                  :t_zdxmwz-zerdat,
                  :t_zdxmwz-zdate,:t_zdxmwz-ztime,:t_zdxmwz-zfield1,:t_zdxmwz-zfield2,:t_zdxmwz-zfield3,:t_zdxmwz-zfield4,:t_zdxmwz-zfield5,:t_zdxmwz-ZXMDL);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_zdxmwz'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_zh      = 'X'.
          select * into corresponding fields of table t_zh from zmm_dp_wzgyjd.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_wzgyjd;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_zh.


              EXEC SQL.
                begin
                insert into zmm_dp_wzgyjd
                (mandt,zgcbm,zssdwbm,zebeln,ztjday,zebelp,zgcmc,zssdwmc,zdydj,zhtqdje,zjhdhje,zhtdhje,zfkje,zddyf,zdate,ztime,
                  zhtqdrq,zjhdhrq,zhtdhrq,zfkrq,
                  zhtqdyf,zjhdhyf,zhtdhyf,zfkyf,zfield1,zfield2,zfield3,zfield4,zfield5)
                 values(:t_zh-mandt,:t_zh-zgcbm,:t_zh-zssdwbm,:t_zh-zebeln,:t_zh-ztjday,:t_zh-zebelp,:t_zh-zgcmc,:t_zh-zssdwmc,:t_zh-zdydj,:t_zh-zhtqdje,:t_zh-zjhdhje,:t_zh-zhtdhje,:t_zh-zfkje,:t_zh-zddyf,:t_zh-zdate,:t_zh-ztime,
                  :t_zh-zhtqdrq,
                  :t_zh-zjhdhrq,
                  :t_zh-zhtdhrq,
                  :t_zh-zfkrq,
                  :t_zh-zhtqdyf,:t_zh-zjhdhyf,:t_zh-zhtdhyf,:t_zh-zfkyf,:t_zh-zfield1,:t_zh-zfield2,:t_zh-zfield3,:t_zh-zfield4,:t_zh-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_wzgyjd'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


          select * into corresponding fields of table t_zh2 from zmm_dp_gdwwzgy.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_gdwwzgy;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_zh2.


              EXEC SQL.
                begin
                insert into zmm_dp_gdwwzgy
                (mandt,
                  zgcbm,
                  zssdwbm,
                  zebeln,
                  ztjday,
                  zgcmc,
                  zssdwmc,
                  zdydj,
                  zhtlyje,
                  zhtqdje,
                  zdhysje,
                  zfkje,
                  zddyf,
                  zgyjhtms,
                  zdate,
                  ztime,
                  zhtqdrq,
                  zdhysrq,
                  zfkrq,
                  zhtqdyf,
                  zdhysyf,
                  zfkyf,
                  zfield1,
                  zfield2,
                  zfield3,
                  zfield4,
                  zfield5)
                 values(:t_zh2-mandt,
                  :t_zh2-zgcbm,
                  :t_zh2-zssdwbm,
                  :t_zh2-zebeln,
                  :t_zh2-ztjday,
                  :t_zh2-zgcmc,
                  :t_zh2-zssdwmc,
                  :t_zh2-zdydj,
                  :t_zh2-zhtlyje,
                  :t_zh2-zhtqdje,
                  :t_zh2-zdhysje,
                  :t_zh2-zfkje,
                  :t_zh2-zddyf,
                  :t_zh2-zgyjhtms,
                  :t_zh2-zdate,
                  :t_zh2-ztime,
                  :t_zh2-zhtqdrq,
                  :t_zh2-zdhysrq,
                  :t_zh2-zfkrq,
                  :t_zh2-zhtqdyf,
                  :t_zh2-zdhysyf,
                  :t_zh2-zfkyf,
                  :t_zh2-zfield1,
                  :t_zh2-zfield2,
                  :t_zh2-zfield3,
                  :t_zh2-zfield4,
                  :t_zh2-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_gdwwzgy'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


          select * into corresponding fields of table t_zh3 from zmm_dp_zjxmwzgy.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_zjxmwzgy;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_zh3.


              EXEC SQL.
                begin
                insert into zmm_dp_zjxmwzgy
                (mandt,
                  zgcbm,
                  zssdwbm,
                  zpspid,
                  ztjday,
                  zgcmc,
                  zssdwmc,
                  zxmmc,
                  zdydj,
                  zxmxqje,
                  zhtqdje,
                  zdhysje,
                  zfkje,
                  zcjrq,
                  zdate,
                  ztime,
                  zxmxqrq,
                  zhtqdrq,
                  zdhysrq,
                  zfkrq,
                  zxmxqyf,
                  zhtqdyf,
                  zdhysyf,
                  zfkyf,
                  zfield1,
                  zfield2,
                  zfield3,
                  zfield4,
                  zfield5)
                 values(:t_zh3-mandt,
                  :t_zh3-zgcbm,
                  :t_zh3-zssdwbm,
                  :t_zh3-zpspid,
                  :t_zh3-ztjday,
                  :t_zh3-zgcmc,
                  :t_zh3-zssdwmc,
                  :t_zh3-zxmmc,
                  :t_zh3-zdydj,
                  :t_zh3-zxmxqje,
                  :t_zh3-zhtqdje,
                  :t_zh3-zdhysje,
                  :t_zh3-zfkje,
*                  :t_zh3-zcjrq,'00000000',null,to_date(:t_zh3-zcjrq,'YYYYMMDD')),
                  :t_zh3-zcjrq,
                  :t_zh3-zdate,
                  :t_zh3-ztime,
*                  :t_zh3-zxmxqrq,'00000000',null,to_date(:t_zh3-zxmxqrq,'YYYYMMDD')),
                  :t_zh3-zxmxqrq,
*                  :t_zh3-zhtqdrq,'00000000',null,to_date(:t_zh3-zhtqdrq,'YYYYMMDD')),
                  :t_zh3-zhtqdrq,
*                  :t_zh3-zdhysrq,'00000000',null,to_date(:t_zh3-zdhysrq,'YYYYMMDD')),
                  :t_zh3-zdhysrq,
*                  :t_zh3-zfkrq,'00000000',null,to_date(:t_zh3-zfkrq,'YYYYMMDD')),
                  :t_zh3-zfkrq,
                  :t_zh3-zxmxqyf,
                  :t_zh3-zhtqdyf,
                  :t_zh3-zdhysyf,
                  :t_zh3-zfkyf,
                  :t_zh3-zfield1,
                  :t_zh3-zfield2,
                  :t_zh3-zfield3,
                  :t_zh3-zfield4,
                  :t_zh3-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_zjxmwzgy'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_htjs = 'X'.
          select * into corresponding fields of table t_htjs from zmm_dp_gwyb_wzht.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_gwyb_wzht;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_htjs.


              EXEC SQL.
                begin
                insert into zmm_dp_gwyb_wzht
                (mandt,zebeln,zgcbm,zssdwbm,zssdwmc,zyfksqje,zyfkzfje,zdhksqje,zdhkzfje,ztyksqje,ztykzfje,zzbksqje,zzbkzfje,zddyf,zddrq,zdate,ztime,ZYFKSQRQ,ZYFKSQYF,ZDHKSQRQ,ZDHKSQYF,ZTYKSQRI,ZTYKSQYF,ZZBKSQRQ,ZZBKSQYF,ZYFKZFRQ,ZYFKZFYF,ZDHKZFRQ,
  ZDHKZFYF,ZTYKZFRI,ZTYKZFYF,ZZBKZFRQ,ZZBKZFYF,zfield1,zfield2,zfield3,zfield4,zfield5)
                 values(:t_htjs-mandt,:t_htjs-zebeln,:t_htjs-zgcbm,:t_htjs-zssdwbm,:t_htjs-zssdwmc,:t_htjs-zyfksqje,:t_htjs-zyfkzfje,:t_htjs-zdhksqje,:t_htjs-zdhkzfje,:t_htjs-ztyksqje,:t_htjs-ztykzfje,:t_htjs-zzbksqje,:t_htjs-zzbkzfje,:t_htjs-zddyf,
                  :t_htjs-zddrq,
                  :t_htjs-zdate,:t_htjs-ztime,
                  :t_htjs-ZYFKSQRQ,
                  :t_htjs-ZYFKSQYF,
                  :t_htjs-ZDHKSQRQ,
                  :t_htjs-ZDHKSQYF,
                  :t_htjs-ZTYKSQRI,
                  :t_htjs-ZTYKSQYF,
                  :t_htjs-ZZBKSQRQ,
                  :t_htjs-ZZBKSQYF,
                  :t_htjs-ZYFKZFRQ,
                  :t_htjs-ZYFKZFYF,
                  :t_htjs-ZDHKZFRQ,
                  :t_htjs-ZDHKZFYF,
                  :t_htjs-ZTYKZFRI,
                  :t_htjs-ZTYKZFYF,
                  :t_htjs-ZZBKZFRQ,
                  :t_htjs-ZZBKZFYF,
                  :t_htjs-zfield1,:t_htjs-zfield2,:t_htjs-zfield3,:t_htjs-zfield4,:t_htjs-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_gwyb_wzht'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


        endif.
        if p_kcwz = 'X'.
          select * into corresponding fields of table t_kcwz from zmm_dp_kcwz.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_kcwz;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_kcwz.


              EXEC SQL.
                begin
                insert into zmm_dp_kcwz
                (mandt,zwerks,zlgort,ztstype,ztskcbh,zmatnr,zbwtar,zststate,ZSSDWBM,ZSSDWMC,zpspnr,zxmmc,zdwmc,zmatkl,zwgbez,zlgobe,ztskcms,zmaktx,zmenge,zmeins,zemoney,zdate,ztime,zfield1,zfield2,zfield3,zfield4,zfield5
  )
                 values(:t_kcwz-mandt,:t_kcwz-zwerks,:t_kcwz-zlgort,:t_kcwz-ztstype,:t_kcwz-ztskcbh,:t_kcwz-zmatnr,:t_kcwz-zbwtar,:t_kcwz-zststate,:t_kcwz-ZSSDWBM,:t_kcwz-ZSSDWMC,:t_kcwz-zpspnr,:t_kcwz-zxmmc,:t_kcwz-zdwmc,:t_kcwz-zmatkl,:t_kcwz-zwgbez,
  :t_kcwz-zlgobe,:t_kcwz-ztskcms,
  :t_kcwz-zmaktx,:t_kcwz-zmenge,:t_kcwz-zmeins,:t_kcwz-zemoney,:t_kcwz-zdate,:t_kcwz-ztime,:t_kcwz-zfield1,:t_kcwz-zfield2,:t_kcwz-zfield3,:t_kcwz-zfield4,:t_kcwz-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_kcwz'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.




        endif.
        if p_htjsmx = 'X'.
          select * into corresponding fields of table t_htjsmx from zmm_dp_htjs.
          sort t_htjsmx by zebeln .
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_htjs;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_htjsmx.


*              if :t_htjsmx-zebeln = '4800000083'.
*               BREAK-POINT .
*              endif.


              EXEC SQL.
                begin
                insert into zmm_dp_htjs
                (MANDT,ZWERKS,ZSWHTBH,ZEBELN,ZSSDWBM,ZSSDWMC,ZDDRQ,ZDWMC,ZLIFNR,ZGYSMC,ZPSPNR,ZXMMC,ZDYDJ,ZHTHS,ZHTJZ,ZSHJE,ZSHRQ,ZFPJE,ZFPRQ,ZWFPJE,ZFKJE,ZFKRQ,ZFHTZDH,ZFKBL,ZFKSQ,ZSHPZ,ZFPPZ,ZJHWC,ZPZRQ,ZDATE,ZTIME,ZDHRQ,ZFPJYRQ,ZZFRQ,ZDHYF,ZFPJYYF,
  ZZFYF,
  ZFIELD1,ZFIELD2,ZFIELD3,ZFIELD4,ZFIELD5)
                 values(:t_htjsmx-MANDT,:t_htjsmx-ZWERKS,:t_htjsmx-ZSWHTBH,:t_htjsmx-ZEBELN,:t_htjsmx-ZSSDWBM,:t_htjsmx-ZSSDWMC,:t_htjsmx-ZDDRQ,:t_htjsmx-ZDWMC,:t_htjsmx-ZLIFNR,:t_htjsmx-ZGYSMC,:t_htjsmx-ZPSPNR,:t_htjsmx-ZXMMC,:t_htjsmx-ZDYDJ,
  :t_htjsmx-ZHTHS,:t_htjsmx-ZHTJZ,:t_htjsmx-ZSHJE,:t_htjsmx-ZSHRQ,:t_htjsmx-ZFPJE,:t_htjsmx-ZFPRQ,:t_htjsmx-ZWFPJE,:t_htjsmx-ZFKJE,:t_htjsmx-ZFKRQ,:t_htjsmx-ZFHTZDH,:t_htjsmx-ZFKBL,:t_htjsmx-ZFKSQ,:t_htjsmx-ZSHPZ,:t_htjsmx-ZFPPZ,:t_htjsmx-ZJHWC,
  :t_htjsmx-ZPZRQ,
  :t_htjsmx-ZDATE,:t_htjsmx-ZTIME,:t_htjsmx-ZDHRQ,:t_htjsmx-ZFPJYRQ,:t_htjsmx-ZZFRQ,:t_htjsmx-ZDHYF,:t_htjsmx-ZFPJYYF,:t_htjsmx-ZZFYF,:t_htjsmx-ZFIELD1,:t_htjsmx-ZFIELD2,:t_htjsmx-ZFIELD3,:t_htjsmx-ZFIELD4,:t_htjsmx-ZFIELD5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_htjs'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.


          select * into corresponding fields of table t_htjsmxfx from zmm_dp_htjsfx.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_htjsfx;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_htjsmxfx.


              EXEC SQL.
                begin
                insert into zmm_dp_htjsfx
  (mandt,
  zwerks,
  zswhtbh,
  zebeln,
  ztjday,
  zssdwbm,
  zssdwmc,
  zddrq,
  zdwmc,
  zlifnr,
  zgysmc,
  zpspnr,
  zxmmc,
  zdydj,
  zhths,
  zhtjz,
  zshje,
  zshrq,
  zfpje,
  zfprq,
  zwfpje,
  zfkje,
  zfkrq,
  zfhtzdh,
  zfkbl,
  zfksq,
  zshpz,
  zfppz,
  zpzrq,
  zdate,
  ztime,
  zdhrq,
  zfpjyrq,
  zzfrq,
  zdhyf,
  zfpjyyf,
  zzfyf,
  zfield1,
  zfield2,
  zfield3,
  zfield4,
  zfield5)
  values(:t_htjsmx-mandt,
  :t_htjsmxfx-zwerks,
  :t_htjsmxfx-zswhtbh,
  :t_htjsmxfx-zebeln,
  :t_htjsmxfx-ztjday,
  :t_htjsmxfx-zssdwbm,
  :t_htjsmxfx-zssdwmc,
  :t_htjsmxfx-zddrq,
  :t_htjsmxfx-zdwmc,
  :t_htjsmxfx-zlifnr,
  :t_htjsmxfx-zgysmc,
  :t_htjsmxfx-zpspnr,
  :t_htjsmxfx-zxmmc,
  :t_htjsmxfx-zdydj,
  :t_htjsmxfx-zhths,
  :t_htjsmxfx-zhtjz,
  :t_htjsmxfx-zshje,
  :t_htjsmxfx-zshrq,
  :t_htjsmxfx-zfpje,
  :t_htjsmxfx-zfprq,
  :t_htjsmxfx-zwfpje,
  :t_htjsmxfx-zfkje,
  :t_htjsmxfx-zfkrq,
  :t_htjsmxfx-zfhtzdh,
  :t_htjsmxfx-zfkbl,
  :t_htjsmxfx-zfksq,
  :t_htjsmxfx-zshpz,
  :t_htjsmxfx-zfppz,
  :t_htjsmxfx-zpzrq,
  :t_htjsmxfx-zdate,
  :t_htjsmxfx-ztime,
  :t_htjsmxfx-zdhrq,
  :t_htjsmxfx-zfpjyrq,
  :t_htjsmxfx-zzfrq,
  :t_htjsmxfx-zdhyf,
  :t_htjsmxfx-zfpjyyf,
  :t_htjsmxfx-zzfyf,
  :t_htjsmxfx-zfield1,
  :t_htjsmxfx-zfield2,
  :t_htjsmxfx-zfield3,
  :t_htjsmxfx-zfield4,
  :t_htjsmxfx-zfield5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_htjsfx'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.




        endif.


        if p_ybdc = 'X'.
          select * into corresponding fields of table t_ybdc from zmm_dp_ybdc.
          if sy-subrc = 0.
            "清数
            EXEC SQL.
              begin
                delete from zmm_dp_ybdc;
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.
            "写数
            loop at t_ybdc.


              EXEC SQL.
                begin
                insert into zmm_dp_ybdc
                (mandt,ZTJYF,ZWZHTFS,ZWZHTJE,ZWZGYJHFS,ZWZGYJHJE,ZBZHTFS,ZBZHTJE,ZXYKCFS,ZXYKCJE,ZDATE,ZTIME,ZFIELD1,ZFIELD2,ZFIELD3,ZFIELD4,ZFIELD5)
                 values(:t_ybdc-mandt,:t_ybdc-ZTJYF,:t_ybdc-ZWZHTFS,:t_ybdc-ZWZHTJE,:t_ybdc-ZWZGYJHFS,:t_ybdc-ZWZGYJHJE,:t_ybdc-ZBZHTFS,:t_ybdc-ZBZHTJE,:t_ybdc-ZXYKCFS,
                  :t_ybdc-ZXYKCJE,:t_ybdc-ZDATE,:t_ybdc-ZTIME,:t_ybdc-ZFIELD1,:t_ybdc-ZFIELD2,:t_ybdc-ZFIELD3,:t_ybdc-ZFIELD4,:t_ybdc-ZFIELD5);


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
               end;
              ENDEXEC.
            endloop.
            "标记成功标识
            clear: t_flag,t_flag[].
            t_flag-mod = 'ODS'.
            t_flag-program_name = 'zmm_dp_ybdc'.
            t_flag-end_date = sy-datum.
            t_flag-end_time = sy-uzeit.
            t_flag-success_flag = '1'.
            append t_flag.
            modify zmm_process_log from table t_flag. commit work.
          endif.




        endif.






    if p_zdxmmx = 'X'.
          data:lv_date like sy-datum .
          select max( zdate )
            into lv_date
            from zmm_dp_xmjdgzmx .
          select * into corresponding fields of table t_zdxmmx from zmm_dp_xmjdgzmx where zdate = lv_date.


      if sy-subrc = 0.
        "清数
        EXEC SQL.
          begin
            delete from ZMM_DP_XMJDGZMX;
            if sql%found then
              commit;
            else
              rollback;
            end if;
         end;
        ENDEXEC.
        "写数
        loop at t_zdxmmx.


          EXEC SQL.
            begin
            insert into ZMM_DP_XMJDGZMX
            (mandt,
              ZEBELN,
ZEBELP,
ZXMMC,
DDZJHS,
ZMAKTX,
ZMENGE,
ZMEINS,
EINDT,
ZQDJHQ,
BUDAT,
SJJHSL,
SJSHJE,
JHZT,
JHWCSJ,
ELIKZ,
FPJYJE,
FPJYSJ,
GYSTATUS,
ZFHTZZT,
ZYSZT,
ZFPJYZT,
DDDJ,
DDDJHS,
DDZJ,
ZFKJE,
ZSJKGSJ,
ZSJTCSJ,
ZPSPNR,
WGBEZ,
ZDYDJ,
ZXMLX,
ZBANFN,
ZBNFPO,
ZMATNR,
ZLIFNR,
ZGYSMC,
ZWERKS,
ZGCMC,
ZSSDWBH,
ZSSDWMC,
ZDATE,
ZTIME,
MWSKZ,
SJSHJEHS,
FPJYJEHS,
zup_date,
RSNUM,
RSPOS,
KZEAR)
             values(:t_zdxmmx-mandt,
              :t_zdxmmx-ZEBELN,
:t_zdxmmx-ZEBELP,
:t_zdxmmx-ZXMMC,
:t_zdxmmx-DDZJHS,
:t_zdxmmx-ZMAKTX,
:t_zdxmmx-ZMENGE,
:t_zdxmmx-ZMEINS,
:t_zdxmmx-EINDT,
:t_zdxmmx-ZQDJHQ,
:t_zdxmmx-BUDAT,
:t_zdxmmx-SJJHSL,
:t_zdxmmx-SJSHJE,
:t_zdxmmx-JHZT,
:t_zdxmmx-JHWCSJ,
:t_zdxmmx-ELIKZ,
:t_zdxmmx-FPJYJE,
:t_zdxmmx-FPJYSJ,
:t_zdxmmx-GYSTATUS,
:t_zdxmmx-ZFHTZZT,
:t_zdxmmx-ZYSZT,
:t_zdxmmx-ZFPJYZT,
:t_zdxmmx-DDDJ,
:t_zdxmmx-DDDJHS,
:t_zdxmmx-DDZJ,
:t_zdxmmx-ZFKJE,
:t_zdxmmx-ZSJKGSJ,
:t_zdxmmx-ZSJTCSJ,
:t_zdxmmx-ZPSPNR,
:t_zdxmmx-WGBEZ,
:t_zdxmmx-ZDYDJ,
:t_zdxmmx-ZXMLX,
:t_zdxmmx-ZBANFN,
:t_zdxmmx-ZBNFPO,
:t_zdxmmx-ZMATNR,
:t_zdxmmx-ZLIFNR,
:t_zdxmmx-ZGYSMC,
:t_zdxmmx-ZWERKS,
:t_zdxmmx-ZGCMC,
:t_zdxmmx-ZSSDWBH,
:t_zdxmmx-ZSSDWMC,
:t_zdxmmx-ZDATE,
:t_zdxmmx-ZTIME,
              :t_zdxmmx-MWSKZ,
              :t_zdxmmx-SJSHJEHS,
              :t_zdxmmx-FPJYJEHS,
              :t_zdxmmx-zup_date,
              :t_zdxmmx-RSNUM,
:t_zdxmmx-RSPOS,
:t_zdxmmx-KZEAR);


              if sql%found then
                commit;
              else
                rollback;
              end if;
           end;
          ENDEXEC.
        endloop.
        "标记成功标识
        clear: t_flag,t_flag[].
        t_flag-mod = 'ODS'.
        t_flag-program_name = 'ZMM_DP_XMJDGZMX'.
        t_flag-end_date = sy-datum.
        t_flag-end_time = sy-uzeit.
        t_flag-success_flag = '1'.
        append t_flag.
        modify zmm_process_log from table t_flag. commit work.
      endif.


    endif.


            EXEC SQL.
          disconnect :dbs
        ENDEXEC.




      catch cx_sy_native_sql_error into exc_ref.
        EXEC SQL.
          disconnect :dbs
        ENDEXEC.
        "捕获SQL错误
        sql_error = exc_ref->get_text( ).
        message sql_error type 'I'.
    endtry.


  elseif p_dm eq 'X'.  "调用存储过程


*    "判断ABAP程序有没有完成抽数
*    select count(*) into p_sl from  zmm_process_log where mod = 'ODS' and end_date eq sy-datum.
*    if p_sl ne '37'.
*      exit.
*    endif.


    try.
        EXEC SQL.
          connect to :dbs
        ENDEXEC.


        EXEC SQL.
          set connection :dbs
        ENDEXEC.
        if sy-subrc <> 0.
          raise exception type cx_sy_native_sql_error.
        endif.
        select * into corresponding fields of table t_zmm_process_log from zmm_process_log.
        if sy-subrc = 0.
          "清数
          EXEC SQL.
            begin
              delete from zmm_process_log;
              if sql%found then
                commit;
              else
                rollback;
              end if;
           end;
          ENDEXEC.
          "写数
          loop at t_zmm_process_log.


            EXEC SQL.
              begin
              insert into zmm_process_log
              (mandt,MOD,PROGRAM_NAME,END_DATE,END_TIME,SUCCESS_FLAG,ERROR_INFO)
               values(:t_zmm_process_log-mandt,:t_zmm_process_log-mod,:t_zmm_process_log-PROGRAM_NAME,:t_zmm_process_log-END_DATE,:t_zmm_process_log-END_TIME,
                :t_zmm_process_log-SUCCESS_FLAG,:t_zmm_process_log-ERROR_INFO);
                if sql%found then
                  commit;
                else
                  rollback;
                end if;
             end;
            ENDEXEC.


          endloop.
        endif.
        EXEC SQL.
          begin
          p_all(sysdate,sysdate);


             if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
          end;
        ENDEXEC.


        EXEC SQL.
          disconnect :dbs
        ENDEXEC.


        "标记成功标识
        clear: t_flag,t_flag[].
        t_flag-mod = 'DM'.
        t_flag-program_name = 'P_ALL'.
        t_flag-end_date = sy-datum.
        t_flag-end_time = sy-uzeit.
        t_flag-success_flag = '1'.
        append t_flag.
        modify zmm_process_log from table t_flag. commit work.


      catch cx_sy_native_sql_error into exc_ref.
        EXEC SQL.
          DISCONNECT :dbs
        ENDEXEC.
        "捕获SQL错误
        sql_error = exc_ref->get_text( ).
    endtry.




  elseif p_wd eq 'X'.   "更新维度表


    "定义内表
    "工厂
    data: begin of t_gc occurs 0,
      name1 like t001w-name1,
      werks like t001w-werks,
      end of t_gc.


    "公司
    data:begin of t_gs occurs 0,
      bukrs like t001-bukrs,
      butxt like t001-butxt,
      end of t_gs.


    "利润中心
    data:begin of t_lrzx occurs 0,
      prctr like cepct-prctr,
      ltext like cepct-ltext,
      end of t_lrzx.


    "供应商
    data:begin of t_gys occurs 0,
      lifnr like lfa1-lifnr,
      name1 like lfa1-name1,
      end of t_gys.


    "库存地点
    data: begin of t_kcdd occurs 0,
      lgort like t001l-lgort,
      lgobe like t001l-lgobe,
      end of t_kcdd.


    "物料组
    data: begin of t_wlz occurs 0,
      matkl like t023t-matkl,
      wgbez like t023t-wgbez,
      end of t_wlz.


*    "项目类型
*    data: begin of t_xmlx occurs 0,
*      prart like tcj1t-prart,
*      pratx like tcj1t-pratx,
*      end of t_xmlx.


    select
      werks
      name1
      into corresponding fields of table t_gc
      from t001w.


    select
      bukrs
      butxt
      into corresponding fields of table t_gs
      from t001.


    select
      prctr
      ltext
      into corresponding fields of table t_lrzx
      from cepct.


    select
      lifnr
      name1
      into corresponding fields of table t_gys
      from lfa1.


    select
      lgort
      lgobe
      into corresponding fields of table t_kcdd
      from t001l.


    select
      matkl
      wgbez
      into corresponding fields of table t_wlz
      from t023t.


*    select
*      prart
*      pratx
*      into corresponding fields of table t_xmlx
*      from tcj1t.


    "链接数据库
    try.
        EXEC SQL.
          connect to :dbs
        ENDEXEC.


        EXEC SQL.
          set connection :dbs
        ENDEXEC.
        if sy-subrc <> 0.
          raise exception type cx_sy_native_sql_error.
        endif.


        "工厂维度表更新
        if t_gc[] is not initial.
          "清空表
          EXEC SQL.
            begin
              delete from zmm_dc_gc;


                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
             end;
          ENDEXEC.
          "更新数据
          loop at t_gc.
            EXEC SQL.
              begin
                 insert into zmm_dc_gc
                  (zgcmc,zgcbm)
                   values(:t_gc-name1,:t_gc-werks);


                    if sql%found then
                      commit;
                    else
                      rollback;
                    end if;
               end;
            ENDEXEC.
          endloop.
        endif.


        "公司维度表更新
        if t_gs[] is not initial.
          "清空表
          EXEC SQL.
            begin
              delete from ZMM_DC_GS;
                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
             end;
          ENDEXEC.
          "更新数据
          loop at t_gs.
            EXEC SQL.
              begin
                 insert into ZMM_DC_GS
                  (ZGSMC,ZGSBM)
                   values(:t_gs-butxt,:t_gs-bukrs);


                    if sql%found then
                      commit;
                    else
                      rollback;
                    end if;
               end;
            ENDEXEC.
          endloop.
        endif.


        "利润中心维度表更新
        if t_lrzx[] is not initial.
          "清空表
          EXEC SQL.
            begin
              delete from zmm_dc_lrzx;
                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
             end;
          ENDEXEC.
          "更新数据
          loop at t_lrzx.
            EXEC SQL.
              begin
                 insert into zmm_dc_lrzx
                  (zlrzxmc,zlrzxbm)
                   values(:t_lrzx-ltext,:t_lrzx-prctr);


                    if sql%found then
                      commit;
                    else
                      rollback;
                    end if;
               end;
            ENDEXEC.
          endloop.
        endif.


        "供应商维度表更新
        if t_gys[] is not initial.
          "清空表
          EXEC SQL.
            begin
              delete from zmm_dc_gys;
                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
             end;
          ENDEXEC.
          "更新数据
          loop at t_gys.
            EXEC SQL.
              begin
                 insert into zmm_dc_gys
                  (zgysmc,zgysbm)
                   values(:t_gys-name1,:t_gys-lifnr);


                    if sql%found then
                      commit;
                    else
                      rollback;
                    end if;
               end;
            ENDEXEC.
          endloop.
        endif.


        "库存地点维度表更新
        if t_kcdd[] is not initial.
          "清空表
          EXEC SQL.
            begin
              delete from zmm_dc_kcdd;
                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
             end;
          ENDEXEC.
          "更新数据
          loop at t_kcdd.
            EXEC SQL.
              begin
                 insert into zmm_dc_kcdd
                  (zckddmc,zckddbm)
                   values(:t_kcdd-lgobe,:t_kcdd-lgort);


                    if sql%found then
                      commit;
                    else
                      rollback;
                    end if;
               end;
            ENDEXEC.
          endloop.
        endif.


        "库存地点维度表更新
        if t_wlz[] is not initial.
          "清空表
          EXEC SQL.
            begin
              delete from zmm_dc_wlz;
                  if sql%found then
                    commit;
                  else
                    rollback;
                  end if;
             end;
          ENDEXEC.
          "更新数据
          loop at t_wlz.
            EXEC SQL.
              begin
                 insert into zmm_dc_wlz
                  (zwlzbm,zwlzmc)
                   values(:t_wlz-matkl,:t_wlz-wgbez);


                    if sql%found then
                      commit;
                    else
                      rollback;
                    end if;
               end;
            ENDEXEC.
          endloop.
        endif.


*        "项目类型维度表更新
*        if t_xmlx[] is not initial.
*          "清空表
*          EXEC SQL.
*            begin
*              delete from zmm_dc_xmlx;
*                  if sql%found then
*                    commit;
*                  else
*                    rollback;
*                  end if;
*             end;
*          ENDEXEC.
*          "更新数据
*          loop at t_xmlx.
*            EXEC SQL.
*              begin
*                 insert into zmm_dc_xmlx
*                  (zxmlxmc,zxmlxbm)
*                   values(:t_xmlx-pratx,:t_xmlx-prart);
*
*                    if sql%found then
*                      commit;
*                    else
*                      rollback;
*                    end if;
*               end;
*            ENDEXEC.
*          endloop.
*        endif.


        EXEC SQL.
          disconnect :dbs
        ENDEXEC.


        "标记成功标识
        clear: t_flag,t_flag[].
        t_flag-mod = 'WD'.
        t_flag-program_name = 'WD'.
        t_flag-end_date = sy-datum.
        t_flag-end_time = sy-uzeit.
        t_flag-success_flag = '1'.
        append t_flag.
        modify zmm_process_log from table t_flag. commit work.


      catch cx_sy_native_sql_error into exc_ref.
        EXEC SQL.
          DISCONNECT :dbs
        ENDEXEC.
        "捕获SQL错误
        sql_error = exc_ref->get_text( ).
    endtry.


  endif.
*&---------------------------------------------------------------------*
*&      Form  FRM_STAR_BCKGROUND_JOB
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0559   text
*----------------------------------------------------------------------*
form frm_star_bckground_job  using  p_value.


  data:lv_jobname like tbtcjob-jobname,
       lv_jobcount like tbtcjob-jobcount.
  data:lv_report like sy-repid,
       lv_number like tbtcjob-stepcount.
  data:lv_released like btch0000-char1.
  concatenate 'ZMMWZDK2' '_' p_value into lv_jobname.
  lv_report = lv_jobname.


  if g_date is initial .
    g_date = sy-datum.
  endif.


  if g_time is initial .
    g_time = sy-uzeit.
  endif.


  g_time = g_time + 60 .
  call function 'JOB_OPEN'
    exporting
      jobname          = lv_jobname
    importing
      jobcount         = lv_jobcount
    exceptions
      cant_create_job  = 1
      invalid_job_data = 2
      jobname_missing  = 3
      others           = 4.
  if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.


  call function 'JOB_SUBMIT'
    exporting
      authcknam                         = sy-uname
      jobcount                          = lv_jobcount
      jobname                           = lv_jobname
      report                            = lv_report
*     VARIANT                           = ' '
   importing
     step_number                       = lv_number
   exceptions
     bad_priparams                     = 1
     bad_xpgflags                      = 2
     invalid_jobdata                   = 3
     jobname_missing                   = 4
     job_notex                         = 5
     job_submit_failed                 = 6
     lock_failed                       = 7
     program_missing                   = 8
     prog_abap_and_extpg_set           = 9
     others                            = 10
            .
  if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.


  call function 'JOB_CLOSE'
    exporting
      jobcount                          = lv_jobcount
      jobname                           = lv_jobname
*      laststrtdt                        = g_date
*     laststrttm                         = g_time
      strtimmed                         = 'X'
   importing
     job_was_released                  = lv_released
   exceptions
     cant_start_immediate              = 1
     invalid_startdate                 = 2
     jobname_missing                   = 3
     job_close_failed                  = 4
     job_nosteps                       = 5
     job_notex                         = 6
     lock_failed                       = 7
     invalid_target                    = 8
     others                            = 9
            .
  if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.




endform.                    " FRM_STAR_BCKGROUND_JOB


请使用浏览器的分享功能分享到微信等