MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   GENERATE_SUBPOOL_DIR_FULL al ejecutar RFC (foro/showthread.php?t=2992)

felix_cid 13/12/06 19:45:28

GENERATE_SUBPOOL_DIR_FULL al ejecutar RFC
 
Hola a todos, sucede que tengo una RFC que a través de un Rut obtiene sus cuentas de contrato asociado. En la función, por cada cuenta contrato encontrada, llama a otra RFC que me trae el consumo asociado.
HAsta aqui todo bien, pero en el loop 37 se me cae y me da el error "GENERATE_SUBPOOL_DIR_FULL" que dice que no puedo generar más de 36 subrutinas temporales, ¿le ha pasado esto a alguien o tienen ideas de que puedo hacer al respecto?

Mari.Sole 05/03/12 10:58:38

Felix,
Has podido solucionar este problema, ya que me ocurre lo mismo.
Agradecería si pudieras ayudarme.

Saludos.

Mari.Sole 07/03/12 13:54:25

Les dejo este comentario por si le sucede el mismo problema a otra persona.
Mi problema puntual se presentaba porque utilizaba el método cl_alv_table_create=>create_dynamic_table para crear una tabla interna en tiempo de ejecución.
Por configuración de SAP, la cual no se puede modificar, sólo se permite la creación de hasta 36 tablas dinámicas. Si se requiere más de 36 tablas dinámicas se deben crear de otra forma, utilizando lo que se conoce como concepto RTTC (Run Time Type Creation ).
Después de debbuguear varios métodos y clases encontré que la creación dinámica la estaba realizando dentro de un loop de una tabla que tiene más de 36 registros.
Corrigiendo que mi tabla dinámica se cree antes del loop una sola vez así pude sortear el dump.

Espero que a alguien le ayude esta info a futuro.

Saludos.

jcsalberto 15/12/12 17:53:24

Hola Mari Sole
Me estoy encontrando con tu mismo problema, podrías decirme como lo solucionaste? estoy intentando buscar el loop que comentas a los 36 registros y soy incapaz de encontrarlo
Muchiiiisimas gracias

serdiro 05/11/13 15:59:45

Yo lo he solucionado construyendo la tabla dinámica de esta forma :

DATA: gs_comp TYPE abap_componentdescr,
gt_comp TYPE abap_component_tab.

"example table
DATA: BEGIN OF it OCCURS 3, "<- your ITAB1
pernr TYPE persno,
kostl TYPE kostl,
endda TYPE endda,
END OF it.

"data references
DATA: r_type_struct TYPE REF TO cl_abap_structdescr,
r_type_table TYPE REF TO cl_abap_tabledescr,
r_data_tab TYPE REF TO data,
r_data_str TYPE REF TO data.

* 1. ------------- filling example table IT -> i.e your ITAB1
it-pernr = '12345678'.
it-kostl = '0112345678'.
it-endda = sy-datum.
APPEND it.

it-pernr = '45678909'.
it-kostl = '3452345678'.
it-endda = sy-datum - 1.
APPEND it.

* 2. ------------ components structure type
gs_comp-name = 'PERNR'.
gs_comp-type ?= cl_abap_elemdescr=>describe_by_name( 'PERSNO' ).
APPEND gs_comp TO gt_comp.

gs_comp-name = 'KOSTL'.
gs_comp-type ?= cl_abap_elemdescr=>describe_by_name( 'KOSTL' ).
APPEND gs_comp TO gt_comp.

gs_comp-name = 'BEGDA'.
gs_comp-type ?= cl_abap_elemdescr=>describe_by_name( 'BEGDA' ).
APPEND gs_comp TO gt_comp.

* 3. ------------- create structure type
TRY.
r_type_struct = cl_abap_structdescr=>create(
p_components = gt_comp ).
CATCH cx_sy_struct_creation .
ENDTRY.

* 4. ------------- create table type
TRY.
r_type_table = cl_abap_tabledescr=>create( r_type_struct ).

CATCH cx_sy_table_creation .
ENDTRY.

" 5. -------------- create table based on RTTS types
CREATE DATA: r_data_tab TYPE HANDLE r_type_table,
r_data_str TYPE HANDLE r_type_struct.

FIELD-SYMBOLS: <fs_table> TYPE INDEX TABLE, "-> here table must by type INDEX TABLE in order to append to it
<fs_wa> TYPE ANY.

ASSIGN: r_data_tab->* TO <fs_table>,
r_data_str->* TO <fs_wa>. "work area for dynamic table (based on your dynamic structure)

" 6. ---------------- move internal table data (IT) to dynamic table
LOOP AT it.
MOVE-CORRESPONDING it TO <fs_wa>.
APPEND <fs_wa> TO <fs_table>.
ENDLOOP.


Husos Horarios son GMT. La hora en este momento es 08:41:54.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web