Compliance Bewertung
(Unterstützt AD-, RCD-, FMD-, gewichtete Strukturen und Mixed-Mode-Deklarationen)
Dieses Dokument beschreibt das Datenmodell und die JSON-Nutzdaten, die von der Compliance-Engine verwendet werden, um die Einhaltung globaler Vorschriften wie RoHS, REACH, POPs, TSCA, PROP65 und anderer zu bewerten.
Die API akzeptiert vier Deklarationstypen:
- AD – IPC-1752 Klasse A – Abstrakte Deklaration (nur Status / allgemeine Konformität)
- RCD – IPC-1752 Klasse C – Deklaration zur Einhaltung gesetzlicher Vorschriften (vorschriftspezifische Erklärung mit Stoffkategorien)
- FMD – IPC-1752 Klasse D – Vollständige Materialdeklaration (Materialzusammensetzung / CAS-basiert)
- Kombination aus RCD + FMD – beliebige Kombination der oben genannten Deklarationen über die gesamte Produkthierarchie hinweg
Die API gibt eine einheitliche Konformitätsbewertung für alle geltenden Vorschriften auf der Grundlage aller bereitgestellten Deklarationen zurück.
Grundbegriffe
Produktstruktur
Alle Nutzlasten – AD, RCD, FMD oder gemischte – weisen dieselbe Struktur auf:
{
"sbStructureObject": [...],
"partValidation": [...]
}
sbStructureObject — Produkt Hierarchie
sbStructureObject beschreibt die vollständige Stückliste (BOM):
- Produkt der obersten Ebene
- Unterkomponenten
- Materialien (FMD-Knoten)
Jeder Strukturobjektknoten kann Folgendes enthalten:
Beispiel (vom FMD_input.json): FMD_input „sbStructureObject“:
[{
"internalId": "65f42a1172f401408c564c54",
"structureObject": [
{ "internalId": "645a295c8937516841fb8ec5" },
{ "internalId": "645a71733a7b84089745d74b" }
]
}]
Beispiel mit weight + quantity (Ihre Ergänzung) „sbStructureObject“:
[{
"internalId": "65f42a1172f401408c564c52",
"weight": "262",
"unit": "g",
"quantity": 1,
"structureObject": [{
"internalId": "65f42a1172f401408c564c53",
"weight": "44",
"unit": "g",
"quantity": 1,
"structureObject": [{
"internalId": "645a295c8937516841fb8ec5",
"weight": "0.5",
"unit": "g",
"quantity": 1
}, {
"internalId": "645a718a3a7b84089745d7f6",
"weight": "23",
"unit": "g",
"quantity": 1
}]
}]
}]
Teilevalidierung
Jeder Knoten in der Struktur muss einen entsprechenden Teilvalidierungs-Eintrag haben.
Beispiel: RCD_input
{
"id": "65f42a1272f401408c564c68",
"part": { ... },
"declarations": [...]
}
Jeder Teil kann Folgendes enthalten:
- AD-Erklärungen
- RCD-Erklärungen
- FMD-Erklärungen
- Oder keine
Die Ausgabe enthält zusätzlich:
- Konformitätsergebnisse
- Abgeleitete regulatorische Zuordnungen in FMD
Die drei Eingabe Modelle
Aus FMD abgeleitete Regulierungsdaten erscheinen nur in der Ausgabe, niemals in der Eingabe.
AD – Abstrakte Deklarationen
AD ist eine Minimalerklärung, die dazu dient, die allgemeine Konformität zu bestätigen, ohne folgende Angaben zu machen:
- Stoffkategorien
- CAS-basierte Zusammensetzung
- Regulatorische Details
AD-Erklärungen wirken sich aus auf:
- den allgemeinen Konformitätsstatus
- Berichte zur Vollständigkeit der Dokumentation
Sie liefern keine Daten für die Bewertung auf Stoffebene.
RCD – Regulatorische Deklaration
Wird verwendet, wenn Lieferanten ausdrücklich die Einhaltung bestimmter Vorschriften erklären.
RCD Eingabe Format
Eine RCD-Meldung enthält immer:
- identity – Kennung der Verordnung (z. B. „EUROHS-1907“)
- regulationId – Interne Referenz
- declarationClass: „C“
- SubstanceCategoryList (erforderlich)
Beispiel: RCD_input
{
"identity": "EUROHS-1907",
"authority": "IPC",
"declarationClass": "C",
"containsDeclaration": "DEC",
"SubstanceCategoryList": {
"SubstanceCategory": [{
"name": "Lead/lead compounds",
"cas": "7439-92-1",
"Concentration": [{ "value": 2 }]
}]
}
}
Wichtige Regeln für die RCD-Eingabe:
- Nur RCD verwendet die SubstanceCategoryList
- Die Kategorien sind den Einträgen in der regulatorischen Liste zugeordnet
- Die Konzentrationen sind regulationsspezifisch und nicht auf die Zusammensetzung bezogen
RCD Ausgabeformat
Ausgabe:
- complianceValidationResult
- Per-substance-category results
Beispiel: RCD_output „complianceValidationResult“:
{
"resultCode": "F30",
"regulationName": "RoHS EU 2011/65/EU",
"messages": [{
"source": "Lead/lead compounds",
"resultCode": "F30"
}]
}
FMD – Vollständige Material Deklaration
FMD-Angaben beschreiben die tatsächliche chemische Zusammensetzung.
FMD Eingabe Format
Uses:
- declarationClass: „D“
- fmdSubstance[]: CAS + % concentration
Beispiel: FMD_input „fmdSubstance“:
[
{ "name": "Iron", "casNumber": "7439-89-6", "concentration": "98" },
{ "name": "Manganese", "casNumber": "7439-96-5", "concentration": "1" }
]
FMD Regeln:
- In der Eingabe sind keine regulatorischen Kategorien enthalten
- Die Zusammensetzung wird anhand von Gewicht × Menge berechnet
- Die CAS-Nummern werden den regulatorischen Stoffkategorien zugeordnet
FMD Ausgabeformat
Verwendet:
- Abgeleitete Regulierungserklärungen
- containsDeclaration: „FMD“
- complianceValidationResult
- Abgeleitete SubstanceCategoryList
Beispiel: FMD_output
{
"identity": "EUROHS-1907",
"containsDeclaration": "FMD",
"complianceValidationResult": { "resultCode": "P01" }
}
Gemischte RCD + FMD Strukturen
Es wird jede beliebige Kombination aus AD-, RCD- und FMD-Deklarationen innerhalb der Struktur unterstützt.
Beispiel gemischte Struktur
Top-Level Part (no declaration OR RCD)
│
├── Sub-component A (RCD declaration)
│
└── Sub-component B (FMD declaration)
│
└── Material C (FMD — contains substances)
Dieses Muster taucht in den bereitgestellten Daten häufig auf.
Beispiele aus der Praxis stammen aus:
- RCD-Knoten in RCD_input.json
- FMD-Knoten in FMD_input.json
- Gemischter Roll-up in FMD_output.json
Gemischter Modus Verarbeitungs Regeln
Regel 1 – RCD hat Vorrang vor FMD (bei gleicher Vorschrift am gleichen Knoten)
Wenn eine RCD-Deklaration für RoHS vorliegt →
Werden die aus FMD abgeleiteten RoHS-Daten an diesem Knoten ignoriert.
Regel 2 – FMD füllt Lücken in der Abdeckung
Wenn für eine Vorschrift keine RCD existiert →
Werden diese aus der CAS-Zusammensetzung abgeleitet.
Regel 3 – Die oberste Ebene erhält immer vollständige Konformitätsergebnisse
Selbst ohne Deklarationen wird das Folgende ausgegeben:
- RoHS
- REACH
- REACH Authorization
- POPs
- TSCA
- PROP65
- etc.
(Zu sehen in FMD_output.json)
Rule 4 — Zusammenfassung zur Einhaltung der Vorschriften für Gewichts- und Mengenkontrolle
Für jeden Knoten:
effectiveMass = weight × quantity
Verwendet in:
- FMD-Prozentanteilsberechnung
- Berechnung der Stoffkonzentration
- Grenzwertprüfungen, bei denen die Masse benötigt wird (z. B. ppm, Gew.-%)
Logik der Materialzusammenfassung
Material C → Unterkomponente B → Oberstes Teil
- Konzentrationen akkumulieren sich
- Regelungskategorien basierend auf der CAS-Nummer ausgewählt
- Fehler breiten sich nach oben aus
Beispiel (abgeleitet aus FMD): FMD_output
{
"name": "Reaction mass of DOTE and MOTE",
"Concentration": [{ "value": 42.857 }],
"result": { "resultCode": "F30" }
}
Output: Modell zur Bewertung der Einhaltung von Vorschriften
Alle Ausgaben umfassen: „complianceValidationResult“:
{
"resultCode": "P01",
"regulationName": "Battery Directive (2006/66/EC)",
"messages": [],
"resultStatistics": { ... },
"partList": { ... }
}
Häufige Fehlercodes:
P01 → Bestanden
ND10 → Keine Meldung, keine Probleme festgestellt
F30 → Nicht bestanden (Grenzwertüberschreitung)
Beispiele aus:
- RCD_output.json
- FMD_output.json








