Hola,
Hemos creado una función que crea lotes de inspección basados en algunas tablas Z que tenemos. La FM que mencionas crea el lote de inspección pero solo lo almacena en memoria. Es necesario actualizar la tabla QALS. Aquí está la parte interesante del código que estamos utilizando:
MOVER ztaf07-proveedor A l_likp-lifnr.
MOVER ztaf07-cliente A l_likp-kunnr.
MOVER ztaf07-cliente A l_likp-kunag.
SELECCIONAR ÚNICO vkorg DE vbak
EN l_likp-vkorg
DONDE vbeln = ztaf07-vbeln.
SI sy-subrc <> 0.
MOVER sy-subrc A l_subrc.
SALIR.
FIN.
MOVER ztaf08-matnr A l_lips-matnr.
MOVER ztaf08-werks A l_lips-werks.
MOVER ztaf08-c_fact A l_lips-lgmng.
MOVER ztaf08-vrkme A l_lips-meins.
MOVER ztaf08-charg A l_lips-charg.
MOVER ztaf07-fecha A l_lips-mbdat.
MOVER '89' A l_tvlk-qherk. "Creación de lote sin referencia
LLAMAR FUNCIÓN 'QAAT_SD_LOT_CREATION'
EXPORTANDO
i_kuwev = l_kuwev
i_likp = l_likp
i_lips = l_lips
i_tvlk = l_tvlk
IMPORTANDO
e_prueflos = l_prueflos
EXCEPCIONES
x_no_origin = 1
OTROS = 2.
.
SI sy-subrc <> 0.
MOVER sy-subrc A l_subrc.
SI NO.
MOVER l_prueflos A l_lipsvb-qplos.
MOVER 0 A l_lipsvb-qtlos.
MOVER 1 A l_lipsvb-updkz.
AGREGAR l_lipsvb.
LLAMAR FUNCIÓN 'QAAT_SD_LOT_POSTING'
TABLAS
t_lips_tab = l_lipsvb.
SI sy-subrc <> 0.
MOVER sy-subrc A l_subrc.
FIN.
COMMIT WORK.
FIN.