Olá,
Criamos uma função que cria lotes de inspeção com base em algumas tabelas Z que temos. A FM que você menciona cria o lote de inspeção, mas apenas o armazena na memória. É necessário atualizar a tabela QALS. Aqui está a parte interessante do 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.
SELECIONAR ÚNICO vkorg DE vbak
EM l_likp-vkorg
ONDE vbeln = ztaf07-vbeln.
SE sy-subrc <> 0.
MOVER sy-subrc A l_subrc.
SAIR.
FIM.
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. "Criação de lote sem referência
CHAMAR FUNÇÃO '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
EXCEÇÕES
x_no_origin = 1
OUTROS = 2.
.
SE sy-subrc <> 0.
MOVER sy-subrc A l_subrc.
SE NÃO.
MOVER l_prueflos A l_lipsvb-qplos.
MOVER 0 A l_lipsvb-qtlos.
MOVER 1 A l_lipsvb-updkz.
ADICIONAR l_lipsvb.
CHAMAR FUNÇÃO 'QAAT_SD_LOT_POSTING'
TABELAS
t_lips_tab = l_lipsvb.
SE sy-subrc <> 0.
MOVER sy-subrc A l_subrc.
FIM.
COMMIT WORK.
FIM.