Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo eliminar DN por lotes en SAP

Cómo eliminar DN por lotes en SAP

El BDC que escribí yo mismo solo puede eliminar el DN entrante. Aún no he probado el DN saliente. Intente cambiar VL32N a VL02N

*&------------- -. --------------------------------------- -- ------*

*& Informe ZZMM

*&

*&------------- --------- ----------------------------------------- ------*

*&

*&

*&---------------- --------- ----------------------------------------- ---*

INFORME zzbmm9029 TAMAÑO DE LÍNEA 999.

Formulario likp.

Tipo:

COMIENZO DE tp_vbeln,

vbeln TIPO likp-vbeln,

FIN DE tp_vbeln,

COMIENZO DE tp_bdcdata,

programa TIPO bdcdata-program,

dynpro TIPO bdcdata-dynpro,

dynbegin TIPO bdcdata-dynbegin,

fnam TIPO bdcdata-fnam,

fval TIPO bdcdata-fval,

FIN DE tp_bdcdata,

tp_tbl_bdcdata TIPO TABLA ESTÁNDAR DE tp_bdcdata,

tp_tbl_bdcmsg TIPO bdcmsg TIPO TABLA ESTÁNDAR DE bdcmsgcoll.

DATOS:vbeln TIPO vbeln,

retcode TIPO zmm_dn_header-retcode,

retmesg TIPO zmm_dn_header-retmesg.

DATOS: gt_message TIPO TABLA DE bapiret1,

gw_message TIPO bapiret1.

DATOS: gt_vbeln TIPO TABLA DE tp_vbeln,

gw_vbeln TIPO tp_vbeln .

SELECCIONAR-OPCIONES s_vbeln PARA likp-vbeln.

INICIO-DE-SELECCIÓN.

BORRAR gt_vbeln.

SELECCIONE vbeln EN LA TABLA gt_vbeln

DESDE likp

DONDE vbeln EN s_vbeln.

SI gt_vbeln[] ES INICIAL.

MENSAJE i000(zzmm) CON 'No se encontraron datos'.

ENDIF.

BUCLE EN gt_vbeln EN gw_vbeln.

PERFORME frm_bdc_delete USANDO gw_vbeln- vbeln

CAMBIANDO retcode

retmesg .

ESCRIBIR:/ retcode ,retmesg.

ENDLOOP.

* &------------------------------------------------- ------------ --------------------*<

*& Formulario FRM_BDC_DELETE

*&-------- -------------------------------------- ------------ -----------*

* texto

*-------------- ----------- --------------------------------------- ---------*

* -->P_P_VBELN texto

* <--P_RETCODE texto

* <--P_RETMESG texto

*------ ------------------------------------- ------------- -------------*

FORMULAR frm_bdc_delete USANDO fu_vbeln TIPO likp-vbeln

CAMBIANDO pe_retcode

pe_retmesg.

DATOS: lw_bdcdata TIPO tp_bdcdata,

lt_bdcdata TIPO tp _tbl_bdcdata,

lt_bdcmsg TIPO tp_tbl_bdcmsg,

lw_bdcmsg TIPO bdcmsgcoll,

lv_errmsg TIPO zmm_dn_item-retmesg.

DATA.lv_temp TYPE cadena,

lstart_time TYPE syst-uzeit,

lend_time TYPE syst-uzeit.

* * para registro

CLEAR lv_temp.

lstart_time = syst-uzeit.

lw_bdcdata-program = 'SAPMV50A'.

lw_bdcdata-dynpro = '4104'.

lw_bdcdata-dynbegin = 'X'.

AGREGAR lw_bdcdata A lt_bdcdata.

BORRAR lw_bdcdata.

PERFORMAR build_bdcdata:

USANDO 'BDC_CURSOR'

'LIKP-VBELN'

CAMBIANDO lt_bdcdata,

USANDO 'BDC_OKCODE'

'/00'

CAMBIANDO lt_bdcdata,

USANDO 'LIKP-VBELN'

fu_vbeln

CAMBIANDO lt_bdcdata.

lw_bdcdata-program = 'SAPMV50A'.

lw_bdcdata-dynpro = '1000'.

lw_bdcdata-dynbegin = 'X'.

AGREGAR lw_bdcdata A lt_bdcdata.

BORRAR lw_bdcdata.

PERFORMAR build_bdcdata USANDO 'BDC_OKCODE'

'/ELOES_T'

CAMBIANDO lt_bdcdata.

LLAMAR LA TRANSACCIÓN 'VL32N' USANDO lt_bdcdata MODO 'N'

ACTUALIZAR 'S'

MENSAJES EN lt_bdcmsg.

Lea la tabla lt_bdcmsg EN lw_bdcmsg CON LA CLAVE msgtyp = 'E'.

SI sy-subrc = 0.

PERFORMAR get_message USANDO 'E'

lt_bdcmsg

CAMBIANDO lv_errmsg.

* MENSAJE e007(zmm_general) CON lv_errmsg EN pe_retmesg.

CONCATENAR 'DN eliminado fallido:' lv_errmsg EN pe_retmesg.

pe_retcode='001'.

PERFORMAR fm_set_log USANDO 'E'

'ZMM_GENERAL'

'007'

pe_retmesg

''

''

''

''

' ''.

ELSE.

PERFORMAR get_message USANDO 'S'

lt_bdcmsg

CAMBIANDO lv_errmsg.

lend_time=sy -uzeit.

CONCATENAR lv_errmsg 'desde' lstart_time 'hasta' lend_time '.' EN lv_temp

SEPARADO POR espacio.

pe_retmesg=lv_errmsg=lv_temp.

pe_retcode='000'.

BORRAR lv_temp.

MENSAJE i004(zmm_general) CON fu_vbeln lstart_time lend_time EN lv_temp.

REALIZAR fm_set_log USANDO 'I'

sy-msgid

sy-msgno

lv_temp

fu_vbeln

lstart_time

lend_time

' '.

ENDIF.

ENDFORM. " FRM_BDC_DELETE

*& --------------------------------------- ----------------------------------*

*& Formulario BUILD_BDCDATA

* &----------------------------------------------------- ------------------------------*

* Crear tabla BDC

*---------- ---------------------------------- --------------------*

* -->FU_FNAM texto

* -- >FU_FVAL texto

* < --FC_BDCDATA texto

*---------------------- ------------- ------------------------------- -*

FORMULARIO build_bdcdata USANDO fu_fnam TIPO bdcdata-fnam

fu_fval TIPO cualquiera

CAMBIANDO fc_tbl_bdcdata TIPO tp_tbl_bdcdata.

DATOS: lw_bdcdata TIPO tp_ bdcdata.

MOVER: fu_fval A lw_bdcdata-fval,

fu_fnam A lw_bdcdata-fnam.

MAYÚS lw_bdcdata-fval IZQUIERDA ELIMINANDO EL ESPACIO PRINCIPAL.

AGREGAR lw_bdcdata A fc_tbl_bdcdata.

ENDFORM." BUILD_BDCDATA

*&------------------------------------------------ - ---------------------*

*& Formulario GET_MESSAGE

*&-------- -------------------------------------------------- ---------- -*

* Recibir mensaje

*-------------------- ------ -------------------------------------------- ------ *

* -->P_MSGTYP texto

* <--P_LV_ERRMSG texto

*------------- ------ -------------------------------------------- ------ -*

FORMA get_message USANDO fu_msgtyp TIPO msgtyp

fu_bdcmsg TIPO tp_tbl_bdcmsg

CAMBIANDO fc_msg TIPO zmm_dn_item-retmesg

<. p>DATOS: lv_msgno TIPO sy-msgno,

lv_msgid TIPO sy-msgid,

lv_msgv1 COMO sy-msgv1,

lv_msgv2 COMO sy-msgv2,

lv_msgv3 COMO sy-msgv3,

lv_msgv4 COMO sy-msgv4,

lw_bdcmsg TIPO bdcmsgcoll

LEER LA TABLA fu_bdcmsg EN lw_bdcmsg CON LA CLAVE. msgtyp = fu_msgtyp.

IF sy-subrc = 0.

lv_msgno = lw_bdcmsg-msgnr.

lv_msgid = lw_bdcmsg-msgid.

lv_msgv1=lw_bdcmsg-msgv1.

lv_msgv2=lw_bdcmsg-msgv2.

lv_msgv3 = lw_bdcmsg-msgv3.

lv_msgv4 = lw_bdcmsg-msgv4.

ENDIF.

LLAMADA FUNCIÓN 'TB_MESSAGE_BUILD_TEXT'

EXPORTANDO

langu = sy- langu

lv_msgv4 = lw_bdcmsg-msgv4.

ENDIF.

msgid = lv_msgid

msgno = lv_msgno

msgv1 = lv_msgv1

msgv2 = lv_msgv2

msgv3 = lv_msgv3

msgv4 = lv_msgv4

IMPORTANDO

texto = fc_msg.

gw_message-type = fu_msgtyp.

gw_message-id = lv_msgid.

gw_message-number=lv_msgno.

gw_message-message=fc_msg.

gw_message-message_v1= lv_msgv1.

gw_message-message_v2=lv_msgv2.

gw_message-message_v3 = lv_msgv3.

gw_message-message_v4 = lv_msgv4.

APENDAR gw_message A gt_message.

Borrar gw_message.

p>

FORMA FINAL.

" GET_MESSAGE

*&--------------------------------------- ----------------------------------*

*&& formulario FM_SET_LOG

*&------------------------------------------- ------- -----------------------*

* texto

*-- ------- - ------------------------------------------ -------- ----------*

* -->P_TYPE texto

* -->P_ID texto

* -->P_NUMBER texto

* -->P_MESSAGE_V4 texto

*--------------------- -------- ----------------------------------------*

FORMULAR fm_set_log USANDO p_ type

p_id

p_number

p_message

p_message_v1

p_message_v2

p_message_v3

p_message_v4.DATA lw_message TYPE bapiret1.

lw_message-type = p_type.

lw_message-id = p_id.

lw_message -number=p_number.

lw_ message-message = p_message.

lw_message-message_v1=p_message_v1

lw_message-message_v2 =. p_message_v2.

lw_message- message_v3 = p_message_v3.

lw_message-message_v4 = p_message_v4.

APPEND lw_message TO gt_message.

ENDFORM." FM_SET_LOG