2017-09-07 2 views
0

Je dois lire les valeurs des variantes du champ VARI-CLUSTD.Comment décoder les données VARI-CLUSTD

VARI est une table de cluster. Les données peuvent être décodées par FM RS_VARIANT_CONTENTS, mais j'ai besoin de lire les données pour les variantes créées automatiquement. Les noms des variantes commencent par le symbole '&' (par exemple, & 0000000000425). Les variantes sont créées une fois que vous avez planifié un travail d'arrière-plan à partir de se80/se38 ou de toute transaction sans choisir de variante existante. RS_VARIANT_CONTENTS fonctionne correctement pour les variantes normales (qui peuvent être vues via SE38/SE80), mais pas pour les versions créées automatiquement (commence par '&'). Je regardais dans le FM et a constaté que la table VARI a été lu par le code suivant:

IMPORT %_VARI40C TO P_VARI 
    %_VARI40 TO L_VARI_40 
    %_VARI  TO L_VARI 
    %_VARIVDAT TO P_VARIVDAT 
*   %_VARIDYN40 TO P_VARIDYN 
    %_VARIVDAT_DYN40 TO P_VDATDYN 
    DYNS_FIELDS TO OLD_DYNSFIELDS 
    DYNS_TEXPRI TO OLD_TEXPRI 
    DYNS_EXPR TO OLD_EXPR 
    DYNS_FIELD_TAB TO DYNS_FIELDS 
    DYNS_TEXPR TO DYN_SEL-TEXPR 
     FROM DATABASE VARI(VB) CLIENT L_CLIENT ID P_RKEY 
     ignoring structure boundaries 
     IGNORING CONVERSION ERRORS. 

Cependant l'importation ne renvoie rien pour les & variantes. Il semble que les valeurs des variantes & soient stockées dans un format différent du format utilisé par FM RS_VARIANT_CONTENTS. Existe-t-il un moyen de trouver une structure de format/de données appropriée pour les valeurs de variantes &?

UPD: J'ai le programme ZBC_TEST. J'ai prévu le programme comme un travail périodique. Je vois un record dans le tableau VARI:

MANDT RELID REPORT  VARIANT   SRTF2 
200  VB  ZBC_TEST &0000000000425 0 

Ainsi, la variante & 0000000000425 existe dans le tableau VARI. Le champ VARI-CLSUTD n'est pas vide pour l'enregistrement. J'appelle la FM:

CALL FUNCTION 'RS_VARIANT_CONTENTS' 
    EXPORTING 
    REPORT = 'ZBC_TEST' 
    VARIANT = '&0000000000425' 
    MOVE_OR_WRITE = 'W' 
    IMPORTING 
    SP = lv_sp 
    TABLES 
    VALUTAB = lt_valtab. 

Le FM a été effectuée sans aucune exception et sy-subrc = 0, mais la table est vide lt_valtab ...

+0

Je peux lire les variantes sans problèmes en utilisant le module de fonction - qu'avez-vous essayé exactement? Sachez également que ces variantes sont automatiquement supprimées par le planificateur de travaux - peut-être que cela fait partie de votre problème? – vwegert

+0

S'il vous plaît voir une mise à jour dans ma question ci-dessus. – Skalozub

+1

Je ne peux pas reproduire ce comportement. Est-ce que vous êtes sûr que ZBC_TEST a PARAMETERS ou SELECT-OPTIONS ...? – vwegert

Répondre

1

Le module de fonction fonctionne correctement: Depuis votre programme n'a aucun paramètre, l'ensemble de valeurs retournées est vide.