Validar si documento de venta esta bloqueado por otro usuario con ABAP en SAP-SD
En ocasiones para cargas masivas o call transactions se requiere validar que otro usuario no este utilizando un documento de ventas, esto con el fin de evitar errores en el procesamiento. Esta validacion se puede realizar fácilmente con dos funciones SD_SALES_DOCUMENT_ENQUEUE y DEQUEUE_EVVBAKE como se puede observar en el siguiente ejemplo:
CALL FUNCTION ‘SD_SALES_DOCUMENT_ENQUEUE’ “ REVISAMOS QUE EL DOCUMENTO DE
VENTAS NO SE ENCUENTRE BLOQUEADO INTENTANDO BLOQUEARLO
EXPORTING
VBELN = <DOCUMENTO_DE_VENTA>
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
NO_CHANGE = 3
OTHERS = 4.
IF SY-SUBRC <> 0. “ SI ESTA BLOQUEADO LEVANTAMOS UNA BANDERA PARA USO FUTURO
F_ENQUEUE = ‘X’.
ELSE. “ SI NO ESTA BLOQUEADO LIBERAMOS EL DOC. DE LA FUNCIÓN ANTERIOR
CALL FUNCTION ‘DEQUEUE_EVVBAKE’
EXPORTING
VBELN = <DOCUMENTO_DE_VENTA>
.
ENDIF.
Saludos.