GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Beitrag von sapdepp (Specialist / 230 / 40 / 2 ) »
Liebe Könner, bin auf der Suche nach einer Lösung für folgendes Problem:

Habe eine interne Tabelle über einen Join erstellt und möchte diese als ALV-Grid darstellen wie folgt (Auszug):

Code: Alles auswählen.

*--------------------*
...
TYPE-POOLS: slis.

DATA:	i_feldkatalog TYPE slis_t_fieldcat_alv,
      w_feldkatalog TYPE line of slis_t_fieldcat_alv,
      gs_layout TYPE slis_layout_alv,
      g_title type lvc_title,
      g_repid like sy-repid,
      w_aktuelle_zeile like line of i_tab.

data: gs_variant like TABLE OF DISVARIANT WITH HEADER LINE.
...
* ALV-Grid erstellen *
*--------------------*

* Feldkatalog fuellen.
  perform Feldkatalog_fuellen.

* Layout bestimmen.
  perform layout_allg_build USING gs_layout.

* Variante festlegen
  perform variant_build." using is_variant.

* ALV-Liste anzeigen
  perform alv_anzeigen.

*---------------------------------------------------------------------
*  Unterprogramm fuer das Fuellen des Feldkatalogs
*---------------------------------------------------------------------
form feldkatalog_fuellen.

  clear w_Feldkatalog.

  w_feldkatalog-fieldname  = 'PATIENTENNUMMER'.
  w_feldkatalog-ref_fieldname  = 'PATNR'.
  w_feldkatalog-ref_tabname  = 'NPAT'.
  w_feldkatalog-seltext_s  = 'Pat.nr.'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'FALLNUMMER'.
  w_feldkatalog-ref_fieldname  = 'FALNR'.
  w_feldkatalog-ref_tabname  = 'NFAL'.
  w_feldkatalog-seltext_s  = 'Fall.nr.'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'FALLART'.
  w_feldkatalog-ref_fieldname  = 'FALAR'.
  w_feldkatalog-ref_tabname  = 'NFAL'.
  w_feldkatalog-seltext_s  = 'FALAR'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'NACHNAME'.
  w_feldkatalog-ref_fieldname  = 'NNAME'.
  w_feldkatalog-ref_tabname  = 'NPAT'.
  w_feldkatalog-seltext_s  = 'Nachname'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'VORNAME'.
  w_feldkatalog-ref_fieldname  = 'VNAME'.
  w_feldkatalog-ref_tabname  = 'NPAT'.
  w_feldkatalog-seltext_s  = 'Vorname'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'GEBURTSTAG'.
  w_feldkatalog-ref_fieldname  = 'GBDAT'.
  w_feldkatalog-ref_tabname  = 'NPAT'.
  w_feldkatalog-seltext_s  = 'Geb.tag'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'LFDNR'.
  w_feldkatalog-ref_fieldname  = 'LFDNR'.
  w_feldkatalog-ref_tabname  = 'NBEW'.
  w_feldkatalog-seltext_s  = 'lfd. Nr.'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'BEWEGUNGSTYP'.
  w_feldkatalog-ref_fieldname  = 'BEWTY'.
  w_feldkatalog-ref_tabname  = 'NBEW'.
  w_feldkatalog-seltext_s  = 'Bew.typ'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'BEWEGUNGSART'.
  w_feldkatalog-ref_fieldname  = 'BWART'.
  w_feldkatalog-ref_tabname  = 'NBEW'.
  w_feldkatalog-seltext_s  = 'Bew.art'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'BEWEGUNGSDATUM'.
  w_feldkatalog-ref_fieldname  = 'BWIDT'.
  w_feldkatalog-ref_tabname  = 'NBEW'.
  w_feldkatalog-seltext_s  = 'Bew.dat.'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'BWIZT'.
  w_feldkatalog-ref_fieldname  = 'BWIZT'.
  w_feldkatalog-ref_tabname  = 'NBEW'.
  w_feldkatalog-seltext_s  = 'Bew.zeit'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'ORGFA'.
  w_feldkatalog-ref_fieldname  = 'ORGFA'.
  w_feldkatalog-ref_tabname  = 'NBEW'.
  w_feldkatalog-seltext_s  = 'fachl. OE'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'ORGPF'.
  w_feldkatalog-ref_fieldname  = 'ORGPF'.
  w_feldkatalog-ref_tabname  = 'NBEW'.
  w_feldkatalog-seltext_s  = 'pfleg. OE'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'ABRKZ'.
  w_feldkatalog-ref_fieldname  = 'ABRKZ'.
  w_feldkatalog-ref_tabname  = 'NFAL'.
  w_feldkatalog-seltext_s  = 'Abr.kennz.'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'UADAT'.
  w_feldkatalog-ref_fieldname  = 'UADAT'.
  w_feldkatalog-ref_tabname  = '/GSD/Z_NV2KSS01'.
  w_feldkatalog-seltext_s  = 'Uadat'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'BEHST'.
  w_feldkatalog-ref_fieldname  = 'BEHST'.
  w_feldkatalog-ref_tabname  = '/GSD/Z_NV2KSS01'.
  w_feldkatalog-seltext_s  = 'Behand.scheinstat.'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'AUFLS'.
  w_feldkatalog-ref_fieldname  = 'AUFLS'.
  w_feldkatalog-ref_tabname  = '/GSD/Z_NV2KSS01'.
  w_feldkatalog-seltext_s  = 'Aufls'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'KONSU'.
  w_feldkatalog-ref_fieldname  = 'KONSU'.
  w_feldkatalog-ref_tabname  = '/GSD/Z_NV2KSS01'.
  w_feldkatalog-seltext_s  = 'Konsu'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'MWBEH'.
  w_feldkatalog-ref_fieldname  = 'MWBEH'.
  w_feldkatalog-ref_tabname  = '/GSD/Z_NV2KSS01'.
  w_feldkatalog-seltext_s  = 'Mit- u. Weiterbeh.'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'DIATXT'.
  w_feldkatalog-ref_fieldname  = 'DIATXT'.
  w_feldkatalog-ref_tabname  = '/GSD/Z_NV2KSS01'.
  w_feldkatalog-seltext_s  = 'Diatxt'.
  APPEND w_Feldkatalog TO i_feldkatalog.

  w_feldkatalog-fieldname  = 'FIND_MED'.
  w_feldkatalog-ref_fieldname  = 'FIND_MED'.
  w_feldkatalog-ref_tabname  = '/GSD/Z_NV2KSS01'.
  w_feldkatalog-seltext_s  = 'Find_Med'.
  APPEND w_Feldkatalog TO i_feldkatalog.

endform.  "feldkatalog_fuellen.

*---------------------------------------------------------------------
* Unterprogramm fuer Layoutangaben
*---------------------------------------------------------------------

FORM layout_allg_build USING ls_layout TYPE slis_layout_alv.
  ls_layout-zebra  = 'X'.
  ls_layout-colwidth_optimize = 'X'.
endform.  "layout_allg_build.


*&---------------------------------------------------------------------*
*&      Form  VARIANT_BUILD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_IS_VARIANT  text
*----------------------------------------------------------------------*
FORM VARIANT_BUILD."  USING    P_IS_VARIANT.

  gs_variant-variant = '/DEFAULT'.
  gs_variant-report = g_repid.
  append gs_variant.

ENDFORM.                    " VARIANT_BUILD

*-----------------------------------------------------------------------
* Unterprogramm fuer Ausgabe der ALV-Liste
*-----------------------------------------------------------------------
form alv_anzeigen.

  g_repid = sy-repid.
  g_title = 'IS-H: Auswertung Behandlungsscheine Vorerfassung'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
   I_CALLBACK_PROGRAM                = g_repid
     I_GRID_TITLE                    = g_title
     IS_LAYOUT                       = gs_layout
     IT_FIELDCAT                     = i_feldkatalog
     I_SAVE                          = 'A'
     IS_VARIANT                      = gs_variant
    TABLES
      T_OUTTAB                       = i_tab
   EXCEPTIONS
     PROGRAM_ERROR                   = 1
     OTHERS                          = 2
            .
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

endform.  "alv_anzeigen.
Mein Problem ist nun aber, dass bei Ausführung des Programms ein Dump o. g. Art (Feldsymbol <l_field_value> ist noch nicht zugewiesen) erzeugt wird, und zwar im SAP-Include LSLVCF36, Zeile 3267, macro_cell_data_get (Auszug):

Code: Alles auswählen.

        clear: lt_color_lvc, lt_color_slis.

        add 1 to ls_lvc_data-col_pos.

        if not <ls_fcat>-indx_field is initial.
          assign component <ls_fcat>-indx_field
                           of structure <ls_data> to <l_field_value>.
        else.
          assign component <ls_fcat>-fieldname
                           of structure <ls_data> to <l_field_value>.
        endif.

        macro_cell_data_get
          <ls_fcat>
          <ls_data>
          <l_field_value>
          ls_lvc_data-value.
Bin schon am Verzweifeln, da die Sache ziemlich eilt. Wo liegt mein Fehler?

Danke Euch!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
Hallo,

normalerweise tritt dieser Fehler auf, wenn der Feldkatalog nicht korrekt ist. Z.B. wenn im Feldkatalog dann ein Feld genannt wird, welches in der übergebenen Tabelle gar nicht drin ist.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Beitrag von ralf.wenzel (Top Expert / 4011 / 209 / 283 ) »
Richtig, ich tippe auch ganz verschärft darauf, dass etwas im Feldkatalog nicht stimmt.
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Beitrag von sapdepp (Specialist / 230 / 40 / 2 ) »
Hallo, und danke für Eure Antworten,

ich habe den Feldkatalog überprüft; alle Felder sind drin, die auch in der internen Tabelle definiert wurden. Natürlich sind bei Übergabe an den FuBa nicht alle Felder gefüllt, weil nicht überall Einträge drin stehen.
Die Tabelle lautet i_tab und ist wie folgt definiert:

Code: Alles auswählen.

TYPES: begin of t_tab,
        patnr like nfal-patnr,
        falnr like nfal-falnr,
        falar like nfal-falar,
        nname like npat-nname,
        vname like npat-vname,
        gbdat like npat-gbdat,
        lfdnr like nbew-lfdnr,
        bewty like nbew-bewty,
        bwart like nbew-bwart,
        bwidt like nbew-bwidt,
        bwizt like nbew-bwizt,
        orgfa like nbew-orgfa,
        orgpf like nbew-orgpf,
        abrkz like nfal-abrkz,
        uadat like /gsd/z_nv2kss01-uadat,
        behst like /gsd/z_nv2kss01-behst,
        aufls like /gsd/z_nv2kss01-aufls,
        konsu like /gsd/z_nv2kss01-konsu,
        mwbeh like /gsd/z_nv2kss01-mwbeh,
        diatxt like /gsd/z_nv2kss01-diatxt,
        find_med like /gsd/z_nv2kss01-find_med,
end of t_tab.

data: i_tab type TABLE OF t_tab WITH HEADER LINE,
      w_tab like LINE OF i_tab.

Anschließend selektiere ich meine Daten per Join in die i_tab. Die Daten hole ich mir aus den transparenten Tabellen NFAL, NBEW, NPAT und /GSD/Z_NV2KSS01. Allerdings benutze ich für die NFAL, NPAT, NBEW den View N_VBEWFAL. Sollte ich den im Feldkatalog statt der separaten NFAL, NBEW, NPAT angeben? Vielleicht liegt da der Fehler ... Danke und Gruß!

Re: GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Beitrag von a-dead-trousers (Top Expert / 4485 / 231 / 1205 ) »
hi!

Ja, diesen Fehler kenn ich! Der kommt auch bei einem korrekten Feldkatalog vor. Eine bestimmte Funktion im Feldkatalog bewirkt nämlich, dass ein nicht vorhandenes Feld selektiert wird. Am Besten ist, du schaust dir den Kurzdump genau an. Im Coding das dort aufscheint sollte kurz vorher auf den betroffenen Parameter abgefragt werden. Ich kann mich leider nur mehr ganz dunkel daran erinnern, aber ich glaube damals war einen Funktion schuld die eigentlich nur im ALV-Grid möglich war, die aber im REUSE_ALV_GRID_DISPLAY trotzdem verarbeitet wurde. (F4, Dropdown-Wertehilfe, Tooltip, ... irgendsowas)
Das wurde aber meines Wissens mit einem Patch bzw. Hinweis behoben.

lg
ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
Ich hab das kurz mal in ein Testprogramm gesetzt und meine ursprüngliche Vermutung ist korrekt.
Dein Feldkatalog ist falsch.

Code: Alles auswählen.

  w_feldkatalog-fieldname  = 'PATIENTENNUMMER'.
  w_feldkatalog-ref_fieldname  = 'PATNR'.
  w_feldkatalog-ref_tabname  = 'NPAT'.
  w_feldkatalog-seltext_s  = 'Pat.nr.'.
  APPEND w_feldkatalog TO i_feldkatalog.
Die erste Zeile ist jeweils falsch. Das Feld der internen Tabelle heißt "PATNR" und nicht "PATIENTENNUMMER". Analog für die folgenden Felder.

Und der Hinweis von ADT ist auch korrekt. Wenn du nur den Feldkatalog für das Feld Patientenummer änderst wird das Programm nicht mehr dumpen, obwohl es das /eigentlich/ tun müsste wegen des fehlerhaften Restfeldkatalogs. Aber da SAP vergessen hat ein "Unassign" zu machen werden Daten zwar falsch übertragen aber es dumpt nicht mehr, solange die Daten in das Zielfeld konvertiert werden können.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Beitrag von black_adept (Top Expert / 4159 / 136 / 960 ) »
Und noch ein Hinweis, wie du dieses Problem im Allgemeinen umgehen kannst.
Lege dir im DDIC eine Struktur an, die genau deine Ausgabefelder beinhaltet und lass dann SAP selber den Feldkatalog aufbauen mittels dem jeweils zugehörigen "....FIELDCATALOG*MERGE"-Funktionsbaustein.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Beitrag von sapdepp (Specialist / 230 / 40 / 2 ) »
Vielen Dank euch beiden; es klappt. Jippi. In der Tat hatte voller Absicht die Feldnamen nicht so benannt wie in der i_tab, weil ich dachte, der 'ref_fieldname' müsse den korrekten Spaltennamen enthalten. Irren ist männlich, und wer lesen kann, ist klar im Vorteil. Mein Username ist Programm.
Das mit dem Bug im ALV-Grid verfolge ich nochmal. Evtl. kommt noch was hoch innerhalb der ALV-Liste. To be continued ...

Nochmals besten Dank für die schnelle Reaktion!

Re: GETWA_NOT_ASSIGNED bei REUSE_ALV_GRID_DISPLAY

Beitrag von sapdepp (Specialist / 230 / 40 / 2 ) »
black_adept hat geschrieben:Und noch ein Hinweis, wie du dieses Problem im Allgemeinen umgehen kannst.
Lege dir im DDIC eine Struktur an, die genau deine Ausgabefelder beinhaltet und lass dann SAP selber den Feldkatalog aufbauen mittels dem jeweils zugehörigen "....FIELDCATALOG*MERGE"-Funktionsbaustein.
Ja, danke, das hatte ich mir auch schon überlegt, da es mit dem Merge-FuBa und einer DDIC-Tabelle, z. B. NBEW, ohne Sorgen klappte.

Seite 1 von 1

Vergleichbare Themen

6
Antw.
9375
Views
Checkbox-Inhalt bei REUSE-ALV-GRID-DISPLAY-LVC
von Ucke » 19.11.2006 21:18 • Verfasst in ABAP® Core
1
Antw.
5244
Views
Page up and down im REUSE-ALV-Grid
von sapdepp » 24.08.2011 12:11 • Verfasst in ABAP® Core
2
Antw.
4505
Views
Loop cannot be assigned to any field.
von Buerger » 12.09.2009 23:03 • Verfasst in ABAP® für Anfänger
1
Antw.
4497
Views
Business Object IMAGE Event ASSIGNED
von MErbe » 02.10.2017 12:52 • Verfasst in Sonstige Module
3
Antw.
3635
Views
Fehlermeldung auf Dynpro: Field ... not assigned to a loop
von khb » 16.09.2016 10:04 • Verfasst in ABAP® für Anfänger

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.