Ich habe leider die letzten Tage mit folgendem Problem verbracht und konnte zu keiner Lösung kommen. Ich hoffe Ihr habt eine Idee!
Ich habe eine Merkmalsklasse (022) die mehrere Merkmale besitzt. Ein Merkmal der Klasse steuert dabei über Beziehungswissen, welche Merkmale gepflegt werden können und welche nicht.
Mein Problem ist, dass ich kein Coding finde das mir die gültigen Merkmale zurück gibt.
*** Lade alle Merkmale der Klasse
CALL FUNCTION 'BAPI_OBJCL_GETCLASSES'
Hierüber lese ich die Informationen ein zu der aktuellen Charge + Matnr + Werk. Mit Hilfe der Tabelle 'cabn' lese ich die nicht gepflegten Merkmale der Klasse aus. An einigen Merkmalen werden nun durch Beziehungswissen / pre conditions Merkmale aktiv bzw. inaktiv gesetzt. Genau dieser Schritt fehlt mir...
Ich verstehe das so das ihr die Merkmle über die Struktur SCREN_DEP_ dynamisch über eine Prozedur im Konfigurationsprofil ändert.
Eventuell kannst du dein BZW so umbauen das du dies über eine Variantentabelle abbildest. In deinem Code könntest du dann die Variantentabelle einlesen. Danach nochmals ein Match aller Merkmale auf true/false und die nicht benötigten Merkmale aus deiner Liste löschen.
Ich hoffe das dir meine Antwort weiterhilft.
folgende Lösung habe ich nun gefunden.
Durch verwenden eines Dynpros der Funktionsgruppe CTMS (4000, 5000, 5100 oder 5110) von SAP und den folgenden Funktionen kann man die Merkmale anzeigen und ändern (analog msc2n) und die Object Dependecies werden automatisch berücksichtigt.
CALL FUNCTION 'CTMS_CLASS_DDB'
CALL FUNCTION 'CTMS_INIT_USER_PARAM'.
CALL FUNCTION 'CTMS_DDB_OPEN'
CALL FUNCTION 'CLO0_DDB_OBJ_VALUATION_OPEN'
CALL FUNCTION 'CTMS_DDB_OBJECT_EXTENSION'
PAI
CALL FUNCTION 'CTMS_DDB_CLOSE'
Mit dieser Lösung befindet man sich im Standard und meine Anforderungen sind alle erstmal Erfüllt!