CL_GNR_NAMESPACE - Namensraum Systemgenerierung

General Data in Customer Master   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Namensraum- und Paketkonzept (3.0)

Namensraumkonzept

Mit der Generierungskomponente der CRM Middleware wurde ein Namensraumkonzept für die generiertenObjekte 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-undKundenobjekte verschiedene Namensräume haben und diese Namensräume nur für generierteObjekte 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 Kundenobjekteangeben. Außerdem muß er eine neue Namensraumklasse angeben, die von der Super-KlasseCL_GNR_NAMESPACEabgeleitet wird. Dort kann er festlegen, wie er die neuen Namensräumefü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 eineReparaturaufgabe, wenn er transportierbare Objekte erzeugt, was darauf hinweist, daß er eineModifikation 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ürKunden- 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 generiertwird (Ursprungsprinzip). In einem Kundensystem erhält sie den Kundennamensraum, in einemSAP-Systemden SAP-Namensraum. Der Name der Nachrichtenstruktur wird in der Tabelle SMOG_MAPTR gespeichert. DerTabelleneintrag wird zusammen mit dem entsprechenden BDoc-Typ transportiert. Der Namensraum der Nachrichtenstrukturwird 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 bereitseine Struktur namens ABC und einen BDoc-Typ namens ABC angelegt hat. Nach der Generierung unterscheidensich 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_SEMANTin Tabelle SMOG_SEGM keinen Namensraum ein. Deshalb fügt die Generierungskomponente den Namensraumdes Systems, in dem das Objekte erstmalig generiert wird, zum Objektnamen hinzu. Dieser Objektname wirdmit dem Namensraum in der Tabelle SMOG_MAPSG gespeichert. Der neue BDoc Modeler trägt den Namenmit dem Namensraum im Feld TR_SEMANT ein und füllt auch die Tabelle SMOG_MAPSG. Wenn das Objektein zweites Mal generiert wird, wird der Objektname aus SMOG_MAPSG gelesen. Da der Tabelleneintrag zusammenmit 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 hatden Namen ZABC, und der Kunde hat bereits einen BDoc-Typ mit der Struktur /CRMGEC/ZABC. Vor Änderungdes BDoc-Typs haben die Strukturen verschiedene Namensräume: /PART/ZABC, /CRMGEC/ZABC. Da dieTabelleneinträ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-Objektabhängen. Diesen Objekten wird der Namensraum des lokalen Systems zugewiesen, d.h., im SAP-Systemerhalten 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 einenBDoc-Typ mit demselben Namen ABC, dann liefert SAP einen BDoc-Typ mit demselben Namen ABC. Im Kundensystemwerden 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: InTabelle TGN_PACKA ist jedem Namensraum ein transportierbares und ein nicht transportierbaresPaket 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/STRUCTURESund /CRMGEC/STRUCTURES werden von SAP geliefert. Der Kunde kann für /CRMGEC/ seinen eigenen Namensraumund 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.



PERFORM Short Reference   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 7707 Date: 20120527 Time: 154454     triton ( 295 ms )