Ansicht
Dokumentation

CL_GNR_NAMESPACE - Namensraum Systemgenerierung

CL_GNR_NAMESPACE - Namensraum Systemgenerierung

General Material Data   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Namensraum- und Paketkonzept (3.0)

Namensraumkonzept

Mit der Generierungskomponente der CRM Middleware wurde ein Namensraumkonzept für die generierten Objekte eingeführt, um Konflikte zu vermeiden. Ohne Namensraumkonzept würden bei der Generierung SAP-, Partner- oder Kundenobjekte überschrieben.

Namenskonflikte zwischen SAP- und Kundenobjekten können nur dann vermieden werden, wenn SAP-und Kundenobjekte verschiedene Namensräume haben und diese Namensräume nur für generierte Objekte verwendet werden. Deshalb sind zwei Namensräume für die Generierung vorgesehen: Ein SAP-Namensraum und ein Kundennamensraum. Die Bezeichnungen dieser Namensräume sind in der Tabelle TGN_NSenthalten:

Namensraum-ID

SAP-Namensraum

Kundennamensraum

CRMMW

/1CRMG0/

/CRMGEC/

Wenn ein Entwickler einen neuen Generator anlegen möchte, der einen anderen Namensraum verwendet, muß er eine neue Namensraum-ID und die neuen Namensraumbezeichnungen für SAP- und Kundenobjekte angeben. Außerdem muß er eine neue Namensraumklasse angeben, die von der Super-Klasse CL_GNR_NAMESPACEabgeleitet wird. Dort kann er festlegen, wie er die neuen Namensräume für die Repository-Objekte verwenden will. Dann muß die neue Namensraumklasse mit dem Generator Builder einem Generator zugeordnet werden.

Der Kunde oder Partner kann anstelle von /CRMGEC/ eine eigene Namensraumbezeichnung angeben.

Anmerkung:Da der Namensraum /CRMGEC/ von vSAP geliefert wird, erzeugt der Kunde eine Reparaturaufgabe, wenn er transportierbare Objekte erzeugt, was darauf hinweist, daß er eine Modifikation durchführt. Wenn der Kunde einen eigenen lizensierten Namensraum verwendet, wird eine normale Entwicklungsaufgabe erzeugt.

Konzept für Objekte, die transportiert werden

Für Objekte, die transportiert werden, fügen wir verschiedene Namensräume für Kunden- und SAP-Objekte hinzu. Kundenobjekten wird der Kundennamensraum zugewiesen, SAP-Objekten der SAP-Namensraum.

Nachrichtenstruktur

Die Nachrichtenstruktur erhält den Namensraum des Systems, in dem sie ursprünglich generiert wird (Ursprungsprinzip). In einem Kundensystem erhält sie den Kundennamensraum, in einemSAP-System den SAP-Namensraum. Der Name der Nachrichtenstruktur wird in der Tabelle SMOG_MAPTR gespeichert. Der Tabelleneintrag wird zusammen mit dem entsprechenden BDoc-Typ transportiert. Der Namensraum der Nachrichtenstruktur wird auch als BDoc-Typ-Namensraum bezeichnet, da dieser Namensraum auf den Ursprung des BDoc-Typs hinweist.

Wird die Nachrichtenstruktur ein zweites Mal generiert, wird der Name in der Tabelle in der Tabelle SMOG_MAPTR verwendet, die auch den Namensraum enthält.

Beispiel:SAP liefert den BDoc-Typ ABC an ein Kundensystem, in dem der Kunde bereits eine Struktur namens ABC und einen BDoc-Typ namens ABC angelegt hat. Nach der Generierung unterscheiden sich SAP- und Kunden-Nachrichtenstruktur durch den Namensraum (/1CRMG/ABC und /CRMGEC/ABC) und unterscheiden sich von der Struktur ABC.

Segmentstruktur und Tabellentyp für Segmentstruktur

SAP-Objekten wird immer der Namensraum /1CRMG0/ zugewiesen:Der BDoc Modeler trägt in einem SAP-System den Namen mit dem Namensraum /1CRMG0/ in der Tabelle SMOG_SEGM ein.

Kundenobjekten wird der Kundennamensraum zugewiesen: Der alte BDoc Modeler trägt im Feld TR_SEMANT in Tabelle SMOG_SEGM keinen Namensraum ein. Deshalb fügt die Generierungskomponente den Namensraum des Systems, in dem das Objekte erstmalig generiert wird, zum Objektnamen hinzu. Dieser Objektname wird mit dem Namensraum in der Tabelle SMOG_MAPSG gespeichert. Der neue BDoc Modeler trägt den Namen mit dem Namensraum im Feld TR_SEMANT ein und füllt auch die Tabelle SMOG_MAPSG. Wenn das Objekt ein zweites Mal generiert wird, wird der Objektname aus SMOG_MAPSG gelesen. Da der Tabelleneintrag zusammen mit dem BDoc-Typ transportiert wird, wird das Objekt mit demselben Namensraum in verschiedenen Systemen generiert.

Beispiel: Der Kunde ändert ein Segment eines Partner- BDoc. Das Segment hat den Namen ZABC, und der Kunde hat bereits einen BDoc-Typ mit der Struktur /CRMGEC/ZABC. Vor Änderung des BDoc-Typs haben die Strukturen verschiedene Namensräume: /PART/ZABC, /CRMGEC/ZABC. Da die Tabelleneinträge in SMOG_MAPSG bei der Änderung des BDoc-Typs kopiert werden, wird das geänderte Segment mit dem alten Namen /PART/ZABC generiert..

Konzept für Objekte, die nicht transportiert werden

  1. BDoc-Typ-Objekten wird der BDoc-Typ-Namensraum zugewiesen (CL_GNR_BDOC_NAMESPACE).
  2. Replikationsobjekten wird der entsprechende BDoc-Typ-Namensraum zugewiesen (CL_GNR_REPLI_NAMESPACE).
  3. Für Publikationsobjekte wird der Namensraum aus der Tabelle SMOHPUBL ermittelt(CL_GNR_PUBLI_NAMESPACE).

Anmerkung:Es gibt Objekte, die von mehr als einem BDoc-Typ oder mehr als einem BDoc-Objekt abhängen. Diesen Objekten wird der Namensraum des lokalen Systems zugewiesen, d.h., im SAP-System erhalten sie denSAP-Namensraum, im Kundensystem den Kundennamensraum und im Partnersystem den Partnernamensraum. Das ist kein Problem, da verschiedene Namensräume in einem nicht transportierbaren Paket zulässig sind und der Kunde keine eigenen Funktionsbausteine mit dem Generierungsnamensraum anlegt.

Beispiel: Der Kunde hat einen BDoc-Typ ABC angelegt. Dann liefert der Partner einen BDoc-Typ mit demselben Namen ABC, dann liefert SAP einen BDoc-Typ mit demselben Namen ABC. Im Kundensystem werden die Objekte vom Kunden, Partner und von SAP, die nicht transportiert werden, in den verschiedenen Namensräumen generiert (/CRMGEC/, /PART/ und /1CRMG0/).

Paketkonzept

Das Paket, in das die Laufzeitobjekte generiert werden, wird über den Namensraum ermittelt: In Tabelle TGN_PACKA ist jedem Namensraum ein transportierbares und ein nicht transportierbares Paket zugeordnet. Wenn das Laufzeitobjekt transportiert wird, wird es in das transportierbare Paket generiert, wenn es nicht transportiert wird, in das nicht transportierbare Paket.

Namensraum

Transportierbares Paket

Nicht transportierbares Paket/1CRMG0/

/1CRMG0/STRUCTURES

$SAP_MSAGEN

/CRMGEC/

/CRMGEC/STRUCTURES

$SAPMSAGEN

Hinweis: Der Namensraum der Objekte muß mit dem Namensraum des transportierbaren Pakets identisch sein.

Die zwei Namensräume /1CRMG0/ and /CRMGEC/ und die transportierbaren Pakete /1CRMG0/STRUCTURES und /CRMGEC/STRUCTURES werden von SAP geliefert. Der Kunde kann für /CRMGEC/ seinen eigenen Namensraum und für /CRMGEC/STRUCTURES sein eigenes Paket angeben. Das ist insbesondere für Partner relevant, die eigenentwickelte BDoc-Typen an Kunden liefern möchten.

Hinweis:Wenn der Partner eigene Namensräume verwendet, müssen die geänderten Einträge in den Tabellen TGN_NS and TGN_PACKA zum Kunden transportiert werden.






Addresses (Business Address Services)   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8127 Date: 20240426 Time: 114044     sap01-206 ( 183 ms )