CLAF_CLASSIFICATION_OF_OBJECTS

Getting started ... Alles für einen gelungenen Start.
22 Beiträge • Vorherige Seite 2 von 2 (current)
22 Beiträge Vorherige Seite 2 von 2 (current)

Beitrag von BabsiCSC (ForumUser / 86 / 0 / 0 ) »
Hallo,

Ja, die Zeilen ls_data gehören zur Struktur zrpmm_equipment_inspection_3
(das ganze geht bis ... _84 )

Ich vermute mal, dass ich da noch immer was bez. concatenate falsch mache!??

thx,
lg

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


Beitrag von uh (Specialist / 158 / 0 / 1 ) »
BabsiCSC hat geschrieben:
LOOP AT it_objectdata INTO ls_objectdata.

fieldname = sy-tabix.

CONCATENATE 'AUSP1_' fieldname INTO fieldname.
ASSIGN COMPONENT fieldname OF STRUCTURE ls_data TO <l_field>.

.......
Also, sy-tabix gibt dir beim Durchlauf der Tabelle immer die aktuelle Zeile (beginnend mit 1) an. Da man sy-tabix beim concatenate nicht direkt angeben kann, die Sache mit fieldname = sy-tabix. OK, damit bekommt fieldname die Werte '1', '2'... Damit ergibt sich für das concatenate bei jedem Durchlauf:
CONCATENATE 'AUSP1_' fieldname INTO fieldname. => AUSP1_1
CONCATENATE 'AUSP1_' fieldname INTO fieldname. => AUSP1_2
CONCATENATE 'AUSP1_' fieldname INTO fieldname. => AUSP1_3
....
Wir basteln also die Feldnamen 'AUSP1_1', 'AUSP1_2'....
Tue mir den Gefallen und benenne deine ersten AUSP1_-Felder entsprechend um. Also AUSP1_01 => AUSP_1...AUSP1_09 => AUSP1_9.

Dann mache einen Breakpoint an der IF .. is assigned. Nur wenn er da rein geht, gehen auch die Daten in deine Struktur.

Grüße

Udo

Beitrag von BabsiCSC (ForumUser / 86 / 0 / 0 ) »
Hallo,

Nein :-( , das hast du richtig vermutet, er geht da in die IF-Bedingung gar nicht rein ...

IF <l_field> IS ASSIGNED.

<l_field> = ls_objectdata-ausp1.

ENDIF.

:-(

Die ersten Felder in der Struktur habe ich auch schon richtig umbenannt!

???

thx
lG

Beitrag von BabsiCSC (ForumUser / 86 / 0 / 0 ) »
Hallo,

Es wurden nun ein paar Änderungen durchgeführt, lt. debug schreibt er richtig , jedoch klappt es mit der Ausgabe noch nicht!
Woran liegt da der Fehler?

Danke!
lG


LOOP AT it_equi INTO wa_equi.


MOVE-CORRESPONDING t352r TO wa_data.


wa_data-revnr = zpmm_t352r_iflot-revnr.
wa_data-revtx = t352r-revtx.
wa_data-equnr = wa_equi-equnr.
wa_data-class = lw_ziappliclass-class.


l_object = wa_data-equnr.

CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
class = lw_ziappliclass-class
classtext = 'X'
classtype = '002'
clint = 0
features = 'X'
language = sy-langu
object = l_object
* OBJECTTABLE = ' '
key_date = sy-datum
* INITIAL_CHARACT = 'X'
* NO_VALUE_DESCRIPT =
change_service_clf = 'X'
* INHERITED_CHAR = ' '
* CHANGE_NUMBER = ' '
TABLES
t_class = it_class
t_objectdata = it_objectdata
* I_SEL_CHARACTERISTIC =
* T_NO_AUTH_CHARACT =
EXCEPTIONS
no_classification = 1
no_classtypes = 2
invalid_class_type = 3
OTHERS = 4
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.


LOOP AT it_objectdata INTO ls_objectdata.

fieldname = sy-tabix.


CONCATENATE 'WA_DATA-AUSP1_' fieldname INTO fieldname.
ASSIGN (fieldname) TO <l_field>.


IF <l_field> IS ASSIGNED.

<l_field> = ls_objectdata-ausp1.

ENDIF.


ENDLOOP.

* APPEND ls_data TO it_data.


APPEND wa_data TO it_data.

ENDLOOP.

Beitrag von uh (Specialist / 158 / 0 / 1 ) »
Hallo,

wenn du die Daten im ALV änderst, solltest du das mittels refresh_table_display auch dem ALV klar machen / mitteilen.

Grüße

Udo

Beitrag von BabsiCSC (ForumUser / 86 / 0 / 0 ) »
Hallo,

Danke für die Hilfe!
Mittlerweile lassen sich die Daten erfolgreich in meinem ALV ausgeben.
-> Der richtige Codeteil sieht dafür so aus:
" ...
LOOP AT it_equi INTO wa_equi.


MOVE-CORRESPONDING t352r TO wa_data.


wa_data-revnr = zpmm_t352r_iflot-revnr.
wa_data-revtx = t352r-revtx.
wa_data-equnr = wa_equi-equnr.
wa_data-class = lw_ziappliclass-class.


l_object = wa_data-equnr.

CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
class = lw_ziappliclass-class
classtext = 'X'
classtype = '002'
clint = 0
features = 'X'
language = sy-langu
object = l_object
* OBJECTTABLE = ' '
key_date = sy-datum
* INITIAL_CHARACT = 'X'
* NO_VALUE_DESCRIPT =
change_service_clf = 'X'
* INHERITED_CHAR = ' '
* CHANGE_NUMBER = ' '
TABLES
t_class = it_class
t_objectdata = it_objectdata
* I_SEL_CHARACTERISTIC =
* T_NO_AUTH_CHARACT =
EXCEPTIONS
no_classification = 1
no_classtypes = 2
invalid_class_type = 3
OTHERS = 4
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.


CLEAR counter.

LOOP AT it_objectdata INTO ls_objectdata.

ADD 1 TO counter.

CONCATENATE 'WA_DATA-AUSP1_' counter INTO fieldname.
ASSIGN (fieldname) TO <l_field>.


IF <l_field> IS ASSIGNED.

IF ls_objectdata-ausp1 = '?'.
<l_field> = ''.

ELSE.

<l_field> = ls_objectdata-ausp1.

ENDIF.

ENDIF.


ENDLOOP.


APPEND wa_data TO it_data.

ENDLOOP.
... "

Nun habe ich "das Problem", dass ich die Überschriften des SMBEZ dazu von Zeilen in den entsprechenden Spalten ausgeben möchte.
Einen Fkt.baustein gibt es doch dafür, den habe ich bereits eingebaut.
-> ein concatenate brauche ich in dem Fall doch nicht, oder???

** Überschriften zu den Texten lesen.
CALL FUNCTION 'BAPI_CLASS_GETDETAIL'
EXPORTING
classtype = '002'
classnum = lw_ziappliclass-class
* LANGUISO =
languint = sy-langu
* KEYDATE = SY-DATUM
* IMPORTING
* CLASSBASICDATA =
* CLASSDOCUMENT =
* CLASSADDITIONAL =
* CLASSSTANDARD =
* RETURN =
* TABLES
* CLASSDESCRIPTIONS =
* CLASSLONGTEXTS =
* classcharacteristics =
* CLASSCHARVALUES =
.

CLEAR counter.

LOOP AT it_objectdata INTO ls_objectdata.

ADD 1 TO counter.


READ TABLE it_fieldcat INTO lw_fieldcat WITH KEY fieldname = 'SMBEZ'.

IF sy-subrc = 0.

lw_fieldcat-seltext_s = lw_fieldcat-seltext_m =
lw_fieldcat-seltext_l = ls_objectdata-smbez.

MODIFY it_fieldcat FROM lw_fieldcat INDEX sy-tabix.

ENDIF.


ENDLOOP.

Bitte um Hilfe.

Danke!!
lG

Beitrag von BabsiCSC (ForumUser / 86 / 0 / 0 ) »
Hello nochmals,

moment - ich brauch ja in dem Fall dann auch die entsprechende Struktur d. neuen Fkt.bausteins, oder?
Oder lieg' ich da jetzt komplett falsch?

--> it_classchar TYPE TABLE OF bapi1003_charact_r,

** Überschriften zu den Texten lesen.
CALL FUNCTION 'BAPI_CLASS_GETDETAIL'
EXPORTING
classtype = '002'
classnum = lw_ziappliclass-class
* LANGUISO =
languint = sy-langu
* KEYDATE = SY-DATUM
* IMPORTING
* CLASSBASICDATA =
* CLASSDOCUMENT =
* CLASSADDITIONAL =
* CLASSSTANDARD =
* RETURN =
* TABLES
* CLASSDESCRIPTIONS =
* CLASSLONGTEXTS =
classcharacteristics = it_classchar
* CLASSCHARVALUES =
.

CLEAR counter.

LOOP AT it_objectdata INTO ls_objectdata.

ADD 1 TO counter.


READ TABLE it_fieldcat INTO lw_fieldcat WITH KEY fieldname = fieldname.

IF sy-subrc = 0.

lw_fieldcat-seltext_s = lw_fieldcat-seltext_m =
lw_fieldcat-seltext_l = ls_objectdata-smbez.

MODIFY it_fieldcat FROM lw_fieldcat INDEX sy-tabix.

ENDIF.


ENDLOOP.

Danke!!
lg

Vergleichbare Themen

4
Antw.
1994
Views
Classification (Project Summarization)
von AnnaM86 » 02.10.2017 10:30 • Verfasst in ABAP® für Anfänger
5
Antw.
5043
Views
Umstieg auf ABAP Objects
von ann_bine » 19.03.2016 10:54 • Verfasst in ABAP Objects®
1
Antw.
2093
Views
BUch ABAP Objects
von pit850 » 18.01.2016 11:32 • Verfasst in ABAP® für Anfänger
2
Antw.
5109
Views
create objects problem
von Thanatos82 » 18.09.2012 10:52 • Verfasst in ABAP Objects®
11
Antw.
13802
Views
Einführung in ABAP Objects
von jspranz » 01.10.2008 12:36 • Verfasst in ABAP Objects®

Aktuelle Forenbeiträge

BAPI zur ABSO?
vor einer Woche von DeathAndPain 2 / 1034
Materialstammerweiterung: Neuer Reiter
vor 3 Wochen von DeathAndPain gelöst 4 / 1719
Ermittlung der Arbeitstage (Mosid)
vor 3 Wochen von Radinator 11 / 47396
LSMW-Problem
vor 4 Wochen von DeathAndPain gelöst 6 / 5290

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.

Aktuelle Forenbeiträge

BAPI zur ABSO?
vor einer Woche von DeathAndPain 2 / 1034
Materialstammerweiterung: Neuer Reiter
vor 3 Wochen von DeathAndPain gelöst 4 / 1719
Ermittlung der Arbeitstage (Mosid)
vor 3 Wochen von Radinator 11 / 47396
LSMW-Problem
vor 4 Wochen von DeathAndPain gelöst 6 / 5290