Aller au contenu

Variables dynamiques

DATA :   t_header         TYPE STANDARD TABLE OF zprd_flow_header,
        l_header          LIKE LINE OF t_header,
        t_param           TYPE STANDARD TABLE OF zprdflowparam,
        l_param           LIKE LINE OF t_param,
        v_counter         TYPE i,
        v_flow_in         TYPE p DECIMALS 2,
        v_counter_id      TYPE i,
        v_counter_mess    TYPE i,
        v_counter_mess_10 TYPE i,
        v_percentage      TYPE i,
        v_nbmessage       TYPE i,
        v_nbmessage2      TYPE i,
        v_var             TYPE i,
        lv_where1         TYPE string,
        lv_where2         TYPE string.

***** Paramètres d'entrée du programme : Nom de la table et nom du flux.*

PARAMETERS : p_table(30) TYPE c,

p_flux(5)   TYPE c.

*PARAMETERS: P_TABLE(30).*
***** Déclaration des tables dynamiques.*

DATA: t_table  TYPE REF TO data,

new_line TYPE REF TO data.

FIELD-SYMBOLS: <p_dyn_table> TYPE ANY TABLE.

DATA: t_uniqueid TYPE REF TO data.

FIELD-SYMBOLS: <t_id_unique> TYPE ANY TABLE,

<l_id_unique>,

<zuniqueid>,

<zuniqueid_t>,

<zflow>.

START-OF-SELECTION.

- *CREATE DATA t_table TYPE TABLE OF (p_table).*
- *ASSIGN t_table->* TO <p_dyn_table>.*

CREATE DATA t_uniqueid TYPE TABLE OF (p_table).

ASSIGN t_uniqueid->* TO <t_id_unique>.

CREATE DATA new_line LIKE LINE OF <t_id_unique>.

ASSIGN new_line->* TO <l_id_unique>.

ASSIGN COMPONENT 'UNIQUEID' OF STRUCTURE <l_id_unique> TO <zuniqueid>.

***** Mise à jour des Status de 1 vers 2 pour*

UPDATE (p_table) SET status = 2 WHERE status = 1.

***** Alimentation des tables de travail.*
SELECT DISTINCT uniqueid FROM (p_table) 
INTO CORRESPONDING FIELDS OF TABLE <t_id_unique> 
WHERE status = 2 OR status = 4 .

LOOP AT <t_id_unique> INTO <l_id_unique>.