Klassifizierungsmerkmale eines Materials auslesen

Rund um Java und SAP®.

Klassifizierungsmerkmale eines Materials auslesen

Postby Damien1810 » Wed Jun 30, 2010 2:22 am

Ich habe eine Klasse (Klassenart 001) inkl. Merkmalen angelegt und Materialien dieser Klasse zugeordnet.
Eigentlich will ich jetzt nur das Material inkl. vergebenen Klassifizierungsmerkmalen über eine BAPI anzeigen aber ich komme seit Stunden nicht weiter!

BAPI_CLASS_SELECT_OBJECTS gibt mir zu Suchkriterien den Materialnamen.
BAPI_MATERIAL_GET_DETAIL generelle Materialeigenschaften
BAPI_OBJCL_GETDETAIL_KEY scheint schon richtiger zu sein aber ich komme mit BAPI_OBJCL_GET_KEY_OF_OBJECT nicht an den internen Schlüssel meines Materials.

Wen ich dort folgende Werte setze:
OBJECTNAME: Materialname
OBJECTTABLE: mara
CLASSTYPE: 001
CREATE_MISSING_KEY: X
kommt als Fehlermeldung immer "Zur Klassenart 001 müssen zusätzlich Objekte angegeben sein". Und diese Fehlermeldung hat scheinbar sonst keiner auf der Welt...

Ist mein Vorgehen total falsch?
Damien1810
.
.
 
Posts: 3
Joined: Wed Jun 30, 2010 2:22 am

Postby ewx » Wed Jun 30, 2010 8:17 am

Wichtig ist in jedem Fall Großschreibung!! mit mara anstelle von MARA erhältst du ziemlich sicher einen Fehler.
Ansonsten hiflt dir das hier bestimmt weiter: http://tricktresor.de/content/index.php ... 23&aID=150
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Postby Tron » Wed Jun 30, 2010 8:29 am

Moin,
versuch es doch mal mit CLAF_CLASSIFICATION_OF_OBJECTS (ist dokumentiert)

Auszug aus SD_BATCH_CLASSIFICATION_DATA
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
  2.            EXPORTING
  3.                  CLASSTYPE    = CH_CLASSTYPE
  4.                  FEATURES     = 'X'
  5.                  OBJECT       =  CH_OBJECT
  6.                  OBJECTTABLE  = CH_TABLE
  7.            TABLES
  8.                  T_CLASS      =  I_CLASS
  9.                  T_OBJECTDATA =  I_CLOBJDAT
  10.            EXCEPTIONS
  11.                  NO_CLASSIFICATION = 1
  12.                  NO_CLASSTYPES     = 2.
  13.  
  14.   CASE SY-SUBRC.
  15.     WHEN 1.
  16.       RAISE NO_CLASSIFICATION.
  17.     WHEN 2.
  18.       RAISE NO_CLASSTYPES.
  19.  
GeSHi ©

gruß TRon
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Postby Damien1810 » Wed Jun 30, 2010 9:23 am

Danke erstmal für die guten Antworten. Mein Problem ist, dass KEINE der BAPIs unter http://tricktresor.de/content/index.php ... 23&aID=150 und auch nicht CLAF_CLASSIFICATION_OF_OBJECTS bei meinem SAP im BAPI-Explorer freigegeben sind.

Auch MARA ändert nichts. Allerdings vermute ich auch nur, dass meine Klassifizierungsmerkmale in dieser Tabelle liegen...
Damien1810
.
.
 
Posts: 3
Joined: Wed Jun 30, 2010 2:22 am

Postby ewx » Wed Jun 30, 2010 9:39 am

Di BAPIs müssen aber freigegeben sein. Das ist ja ein wichtiges Merkmal von BAPIs..., oder?
Auf jeden Fall kannst du die BAPIs direkt im SAP System testen. Da ist es wahrscheinlich einfacher. Prüfe evtl. auch mal, ob die Materialnummer auf der DB anders aussieht, als im Ausgabefeld (Konvertierungsexit!!)
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Postby Hedwig3597 » Wed Jun 30, 2010 1:57 pm

Eigentlich sollte die gewünschte Information über den BAPI_MATERIAL_GET_DETAIL zu holen sein, sofern die Materialnummer bekannt ist, werden die Daten in der Tabelle ALLOCVALUESCHAR zurückgeliefert. Der BAPI wird wie folgt aufgerufen:

data: OBJECTKEY like BAPI1003_KEY-OBJECT,
OBJECTTABLE like BAPI1003_KEY-OBJECTTABLE,
CLASSNUM like BAPI1003_KEY-CLASSNUM,
CLASSTYPE like BAPI1003_KEY-CLASSTYPE.

objectkey = MARA-MATNR.
objecttable = 'MARA'.
classnum = 'MKGHWV'. "Klasse
classtype = '001'.

CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
objectkey = objectkey
objecttable = objecttable
classnum = classnum
classtype = classtype
TABLES
ALLOCVALUESNUM = ALLOCVALUESNUM
ALLOCVALUESCHAR = ALLOCVALUESCHAR
ALLOCVALUESCURR = ALLOCVALUESCURR
RETURN = RETURN.

Ich hoffe das hilft weiter

Gruß
Onkelsascha
Hedwig3597
..
..
 
Posts: 30
Joined: Wed May 11, 2005 11:31 pm

Postby Damien1810 » Wed Jun 30, 2010 2:11 pm

Ich teste ja schon die ganze Zeit im SAP. ;-) Und ich musste den Admin auch erstmal sagen, dass er für meinen Benutzer das Klassensystem "freischaltet"- vorher konnte ich nämlich überhaupt keine Klassen anlegen.

"Meine" BAPIS OBJCL_*** haben hinten noch ein KEY vgl. Screenshot

Aber mittlerweile glaube ich, dass der Fehler ganz woanders liegt. Es ist nämlich egal, welchen Materialnamen ich eingeben- immer kommt "Zur Klassenart 001 müssen zusätzlich Objekte angegeben sein".
Was heißt denn Objekte zu Klassenart angeben?!
Damien1810
.
.
 
Posts: 3
Joined: Wed Jun 30, 2010 2:22 am


Return to Java & SAP®

Who is online

Users browsing this forum: No registered users and 1 guest

cron