tut mir leid, wenn ich hier eingreifen muss...uh hat geschrieben:objectkey = mara-matnr
objecttable = 'MARA'
classnum = 'Name deiner Klasse'
classtype = '001' "Wenn du es richtig gemacht hast. Sonst deine Nummer..
Grüße
uh
Darfst du gerne aber beiereglam hat geschrieben:tut mir leid, wenn ich hier eingreifen muss...[..]uh hat geschrieben:objectkey = mara-matnr
objecttable = 'MARA'
classnum = 'Name deiner Klasse'
classtype = '001' "Wenn du es richtig gemacht hast. Sonst deine Nummer..
Grüße
uh
muss ich eingreifen. Der FuBa nennt sich: BAPI_OBJCL_GET_KEY_OF_OBJECTereglam hat geschrieben:BAPI_OBJCL_GET_KEY_FROM_OBJECT
uh hat geschrieben:Darfst du gerne aber beiereglam hat geschrieben:tut mir leid, wenn ich hier eingreifen muss...[..]uh hat geschrieben:objectkey = mara-matnr
objecttable = 'MARA'
classnum = 'Name deiner Klasse'
classtype = '001' "Wenn du es richtig gemacht hast. Sonst deine Nummer..
Grüße
uhmuss ich eingreifen. Der FuBa nennt sich: BAPI_OBJCL_GET_KEY_OF_OBJECTereglam hat geschrieben:BAPI_OBJCL_GET_KEY_FROM_OBJECT
Grüße
UH
Code: Alles auswählen.
start-of-selection.
SELECT
MATNR
FROM mara into table itab WHERE matnr in material.
end-of-selection.
loop at itab.
Data:
myStatus(20) type c,
mySTANDARDCLASS(20) type c.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY'
EXPORTING
CLOBJECTKEY = itab-MATNR
CLASSNUM = 'FARBIGE_UNTERLAGEN'
* KEYDATE = SY-DATUM
* LANGUAGE = SY-LANGU
IMPORTING
STATUS = myStatus
STANDARDCLASS = mySTANDARDCLASS.
* TABLES
* ALLOCVALUESNUM =
* ALLOCVALUESCHAR =
* ALLOCVALUESCURR =
* RETURN =.
endloop.
Die Fehlermeldung besagt doch, was der Fehler ist.danielandross hat geschrieben:Hallo zusammen,
danke für eure Unterstützung.
Wenn ich der BAPI jetzt die MATNR als Objectkey mitgebe bekomme ich eine debugger meldung wegen einem Typkonflikt an dieser Stelle:Also ich trage alle MATNR aus mara in eine interne tabelle ein. Dann rufe ich die bapi in ner schleife mit alle MATNRs auf. Muss ich das noch irgendwie casten oder wo ist sonst der Fehler?Code: Alles auswählen.
start-of-selection. SELECT MATNR FROM mara into table itab WHERE matnr in material. end-of-selection. loop at itab. Data: myStatus(20) type c, mySTANDARDCLASS(20) type c. CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY' EXPORTING CLOBJECTKEY = itab-MATNR CLASSNUM = 'FARBIGE_UNTERLAGEN' * KEYDATE = SY-DATUM * LANGUAGE = SY-LANGU IMPORTING STATUS = myStatus STANDARDCLASS = mySTANDARDCLASS. * TABLES * ALLOCVALUESNUM = * ALLOCVALUESCHAR = * ALLOCVALUESCURR = * RETURN =. endloop.
danke euch.[/code]
Code: Alles auswählen.
TYPES:
BEGIN OF ts_matnr,
matnr TYPE matnr,
objcl TYPE cuobj, "Typ hinter BAPI1003_KEY-OBJECT_GUID
END OF ts_matnr.
DATA:
gt_matnr TYPE STANDARD TABLE OF ts_matnr WITH DEFAULT KEY,
gs_amra TYPE mara. "für SELECT-OPTIONS
SELECT-OPTIONS:
pr_matnr FOR gs_mara-matnr.
START-OF-SELECTION.
SELECT matnr
matnr AS objct "Zusatz AS notwendig, wenn mit INTO CORRESPONDING verwendet wird
FROM mara
INTO TABLE gt_matnr WHERE matnr IN pr_matnr.
END-OF-SELECTION.
LOOP AT gt_matnr.
* Deklarationen gehören alle zusammen, meist im TOP-Inlcude
Data:
myStatus(20) type c,
mySTANDARDCLASS(20) type c.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY'
EXPORTING
CLOBJECTKEY = gt_matnr-objct "hat Typ OBJCT <=> BAPI1003_KEY-OBJECT_GUID
CLASSNUM = 'FARBIGE_UNTERLAGEN'
* KEYDATE = SY-DATUM
* LANGUAGE = SY-LANGU
IMPORTING
STATUS = myStatus
STANDARDCLASS = mySTANDARDCLASS.
* TABLES
* ALLOCVALUESNUM =
* ALLOCVALUESCHAR =
* ALLOCVALUESCURR =
* RETURN =.
ENDLOOP.
Code: Alles auswählen.
SELECT matnr
matnr AS objct "Zusatz AS notwendig, wenn mit INTO CORRESPONDING verwendet wird
FROM mara
INTO TABLE gt_matnr WHERE matnr IN pr_matnr.
entschuldige bitte. War mein Fehler.danielandross hat geschrieben:Hallo,
danke für den code.Da ist wohl noch ein Fehler im Select, weil jedesmal wenn gt_matnr gelesen werden soll erhalte ich die meldung dass die kopfzeile fehlt. Soweit ich weiß bedeutet das, dass die tabelle leer ist?Code: Alles auswählen.
SELECT matnr matnr AS objct "Zusatz AS notwendig, wenn mit INTO CORRESPONDING verwendet wird FROM mara INTO TABLE gt_matnr WHERE matnr IN pr_matnr.
edit: Ich habe schon versucht
tables: mara.
einzufügen. Das ist aber auch nicht das Problem. So wie ich das sehe scheint der Select in Ordnung zu sein. Könnt ihr einen Fehler finden?
Code: Alles auswählen.
DATA:
gt_matnr TYPE STANDARD TABLE OF ts_matnr WITH DEFAULT KEY,
gs_matnr LIKE LINE OF gt_matnr,
gs_mara TYPE mara. "für SELECT-OPTIONS
Code: Alles auswählen.
LOOP AT gt_matnr INTO gs_matnr.
* Deklarationen gehören alle zusammen, meist im TOP-Inlcude
Data:
myStatus(20) type c,
mySTANDARDCLASS(20) type c.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY'
EXPORTING
* CLOBJECTKEY = gt_matnr-objct "nicht Tabelle, sondern Arbeitsbereich
CLOBJECTKEY = gs_matnr-objct "hat Typ OBJCT <=> BAPI1003_KEY-OBJECT_GUID
CLASSNUM = 'FARBIGE_UNTERLAGEN'
* KEYDATE = SY-DATUM
* LANGUAGE = SY-LANGU
IMPORTING
STATUS = myStatus
STANDARDCLASS = mySTANDARDCLASS.
* TABLES
* ALLOCVALUESNUM =
* ALLOCVALUESCHAR =
* ALLOCVALUESCURR =
* RETURN =.
ENDLOOP.
nein, dass ist auch ein Fehler.danielandross hat geschrieben:Hallo,
erstmal ein großes Dankeschön für deine ausführliche Hilfe.
Er sagt immernoch etwas wegen einem Typfehler im Select. Diesmal aber eine andere Fehlermeldung. Ich glaube ich habe den Fehler gefunden: Du schreibst einmal objcl (bei types:)
und sonst verweist du ja auf objct. Ist das Absicht?
vielen dank nochmal.
*grmbl* benutze mal den Zusatz CORRESPONDING FIELDS OF hinter dem INTO des SELECT's.danielandross hat geschrieben: edit: nein das ändern hat auch nichts gebracht. Er sagt immernoch er konnte die das Feld nicht in das Zielfeld konvertieren.
danielandross hat geschrieben: edit2: danke für den Hinweis wegen alten und neuen Tabellen. Wie man sieht bin ich ein abap n00b. aber ich hatte gar kein occurs drin. Habe die tabelle wie in deinem beisiel mit types gemacht.