Modificar la versión BDC del ticket

BAPI no tiene una solución de un solo paso, use BDC directamente

 

MANIFESTACIÓN

bucle en gt_alv1 donde sel = 'X'.

    si gt_alv1-app_date no es inicial.

      gt_alv1-rtype = 'S'.

      gt_alv1-rtmsg = 'No es necesario repetir la aprobación'.

      modificar gt_alv1.

      Seguir.

    terminara si.

 

* realizar frm_pro_head_change usando gt_alv1-aufnr gt_alv1-gamng_new gt_alv1-xianb cambiando gt_alv1-rtype gt_alv1-rtmsg.

* realizar frm_pro_item_change.

 

    realice frm_req_get usando gt_alv1-reqnm.

* Entrar en la pantalla de pedidos

    realice frm_bdc_dynnr usando 'SAPLCOKO1' '0110'.

    ejecute frm_bdc_field usando 'CAUFVD-AUFNR' gt_alv1-aufnr.

    realice frm_bdc_field usando 'R62CLORD-FLG_OVIEW' 'X'.

    realice frm_bdc_field usando 'BDC_OKCODE' '= KPU2'. "组件

 

    lt_alv2 [] = gt_alv2 [].

    ordenar lt_alv2 por ewahr descendente. "Cambie primero al que tenga la mayor probabilidad de uso; de lo contrario, se informará un error

    bucle en lt_alv2.

      si lt_alv2-new_flag = 'X'. "新增

* Pantalla de componentes

        realice frm_bdc_dynnr usando 'SAPLCOMK' '0120'.

        realice frm_bdc_field usando'BDC_CURSOR''RESBD-MATNR (01) '. "Localice la primera línea

        realice frm_bdc_field usando 'BDC_OKCODE' '= KEIN'. "差 入 行

* Pantalla de componentes

        realice frm_bdc_dynnr usando 'SAPLCOMK' '0120'.

        ejecute frm_bdc_field usando 'RESBD-POSNR (01)' lt_alv2-posnr_pro. "项目

        ejecute frm_bdc_field usando 'RESBD-MATNR (01)' lt_alv2-matnr_new. "物料

        ejecute frm_bdc_field usando 'RESBD-MENGE (01)' lt_alv2-bdmng_new. "数量

        ejecute frm_bdc_field usando 'RESBD-VORNR (01)' '0010'. "工序

        ejecute frm_bdc_field usando 'RESBD-POSTP (01)' 'L'. "Categoría de proyecto

        ejecute frm_bdc_field usando 'BDC_OKCODE' '/ 00'. "Enter (sacará la fábrica)

* Detalles del componente

        realice frm_bdc_dynnr usando 'SAPLCOMD' '0110'.

        realice frm_bdc_field usando 'BDC_OKCODE' '= BACK'. "返回

      else .. "Eliminar y modificar deben entrar y ubicar

* Pantalla de componentes

        realice frm_bdc_dynnr usando 'SAPLCOMK' '0120'.

        ejecute frm_bdc_field usando'BDC_OKCODE '' = P-- '. "Primera página

 

* Pantalla de componentes

        realice frm_bdc_dynnr usando 'SAPLCOMK' '0120'.

        realice frm_bdc_field usando 'BDC_OKCODE' '= AUFS'. "定位

 

* Pantalla de orientación

        realice frm_bdc_dynnr usando 'SAPLCO05' '0110'.

        ejecute frm_bdc_field usando 'RCOSU-POSNR' lt_alv2-posnr_pro.

        ejecute frm_bdc_field usando 'RCOSU-MATNR' lt_alv2-matnr.

        ejecute frm_bdc_field usando 'RCOSU-BDMNG' lt_alv2-bdmng.

        realice frm_bdc_field usando 'BDC_OKCODE' '= MÁS'. "确认

        if lt_alv2-del = 'X'. "Eliminar

* Pantalla de componentes

          realice frm_bdc_dynnr usando 'SAPLCOMK' '0120'.

          ejecute frm_bdc_field usando 'RC27X-FLG_SEL (01)' 'X'. "Primera línea

          realice frm_bdc_field usando 'BDC_OKCODE' '= DEL'. "删除

        más ". Modificar

* Pantalla de componentes

          realice frm_bdc_dynnr usando 'SAPLCOMK' '0120'.

          realice frm_bdc_field usando'BDC_CURSOR''RESBD-POSNR (01) '. "Primera línea

          realice frm_bdc_field usando'BDC_OKCODE '' = PICK '. "Detalles del artículo (doble clic)

 

* Detalles del componente

          realice frm_bdc_dynnr usando 'SAPLCOMD' '0110'.

          si lt_alv2-alpgr es inicial.

            si lt_alv2-matnr_new no es inicial.

              ejecute frm_bdc_field usando 'RESBD-MATNR' lt_alv2-matnr_new. "物料

            terminara si.

            si lt_alv2-bdmng_new no es inicial.

              realice frm_bdc_field usando'RESBD-MENGE 'lt_alv2-bdmng_new. "Cantidad requerida

            terminara si.

          demás.

            si lt_alv2-nomng_new no es inicial.

              ejecute frm_bdc_field usando 'RESBD-NOMNG' lt_alv2-nomng_new. "原始 数量

            terminara si.

            si lt_alv2-ewahr_new no es inicial.

              ejecute frm_bdc_field usando 'RESBD-EWAHR' lt_alv2-ewahr_new. "使用率

            terminara si.

          terminara si.

          realice frm_bdc_field usando 'BDC_OKCODE' '= BACK'. "返回

        terminara si.

      terminara si.

    endloop.

 

* Detalles del componente

    realice frm_bdc_dynnr usando 'SAPLCOMK' '0120'.

    realice frm_bdc_field usando 'BDC_OKCODE' '= KOZE'. "抬头

 

* Pantalla de resumen

    realice frm_bdc_dynnr usando 'SAPLCOKO1' '0115'.

    si gt_alv1-gamng_new no es inicial.

      realice frm_bdc_field usando'CAUFVD-GAMNG 'gt_alv1-gamng_new. "Cantidad (la cantidad total debe cambiarse en último lugar; de lo contrario, los componentes no coincidirán si coinciden con la cantidad)

    terminara si.

    realice frm_bdc_field usando'BDC_OKCODE '' = + COI '. "Pantalla del cliente

 

* Pantalla de cliente

    realice frm_bdc_dynnr usando 'SAPLCOKO1' '0115'.

    si gt_alv1-xianb_new no es inicial.

      realice frm_bdc_field usando 'Z_COCI_AUFK-ZZLINE' gt_alv1-xianb_new. "线 别

    terminara si.

    realice frm_bdc_field usando 'BDC_OKCODE' '= BU'. "保存

 

    realice frm_bdc_call usando 'CO02' cambiando gt_alv1-rtype gt_alv1-rtmsg.

    si gt_alv1-rtype = 'S'.

      gt_alv1-app_date = sy-datum.

      gt_alv1-app_name = sy-uname.

    terminara si.

    modificar gt_alv1.

 

    actualizar ztpp0023a set app_date = gt_alv1-app_date app_name = gt_alv1-app_name

    donde reqnm = gt_alv1-reqnm.

    actualizar ztpp0023b set app_date = gt_alv1-app_date app_name = gt_alv1-app_name

    donde reqnm = gt_alv1-reqnm.

  endloop.

 

Supongo que te gusta

Origin blog.csdn.net/cylcylcylcylwo/article/details/113929323
Recomendado
Clasificación