ABAP: Obtener mails de una lista de distribución

Para obtener las direcciones que tengamos parametrizadas en una Lista de Distribución, basta con usar la función SO_DLI_READ. En esta función, introduciremos como parámetro de entrada el ID de la lista de distribución y obtendremos todos los miembros que la componen.


Ponemos un ejemplo:
DATA: lv_lista_distrib TYPE soodd-objnam,
lt_objpara TYPE TABLE OF selc,
lt_objparb TYPE TABLE OF soop1,
lt_member TYPE TABLE OF sodm1.

CLEAR: lv_lista_distribucion,
lt_objpara[],
lt_objparb[],
lt_member[].

lv_lista_distrib = ‘ZLISTA_SAPABAP’.

CALL FUNCTION ‘SO_DLI_READ’
EXPORTING
distributionlist = lv_lista_distrib
system_dli = ‘X’
TABLES
member = lt_member
objpara = lt_objpara
objparb = lt_objparb
EXCEPTIONS
active_user_not_exist = 1
communication_failure = 2
component_not_available = 3
dl_name_not_exist = 4
folder_not_exist = 5
folder_no_authorization = 6
forwarder_not_exist = 7
object_not_exist = 8
object_no_authorization = 9
operation_no_authorization = 10
owner_not_exist = 11
parameter_error = 12
substitute_not_active = 13
substitute_not_defined = 14
system_failure = 15
user_not_exist = 16
x_error = 17
OTHERS = 18.

En la tabla lt_member recibiremos los componentes de la lista de distribución ZLISTA_SAPABAP. Los correos los tenemos en el campo ADDRESS.