Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In diesem Kapitel werden die zur Verfügung stehenden Endpunkte des This chapter describes the available endpoints of the Connect Solution Manager Addons beschrieben. Die Basis-URL der Endpunkte setzt sich aus dem verwendeten Protokoll (http oder https), dem Hostnamen, des Ports und des Service wie folgt zusammenaddon. The base URL of the endpoints is composed of the protocol used (http or https), the hostname, the port and the service as follows:

http(s)://<sap_hostname>:<sap_port>/gal/solman/api/rest/1/

Informationen zu den Hostnamen und Ports Ihres Solution Managers können Sie über die Transaktion SICF einsehen, indem im Menü „Springen“ der Eintrag „Port Information“ ausgewählt wirdYou can view information on the host names and ports of your Solution Manager via transaction SICF by selecting the entry "Port Information" in the "Goto" menu.

...

Die Endpunkte können auch über die Connect Applikation durchgereicht werden. Die effektiven Endpunkte würden dann im Wesentlichen wie folgt aussehenThe endpoints can also be passed through the Connect application. The effective endpoints would then essentially look like this:

http(s)://<connect_hostname>:<connect_port>/repositories/<repository_name>/connections/<connection_name>/events/<event_name>.

Pfad- und Query-Parameter werden beim Aufruf von Webservices über die Connect Applikation als Query-Parameter übergeben. Die Query-Parameter müssen grundsätzlich im Camel Case Format übergeben werden. Existiert bei einem SAP-Endpunkt beispielsweise der Pfad-Parameter „object_id“, muss dieser über die Connect Applikation als Query-Parameter „objectId“ übergeben werden.

Endpunkt „Data“

Mithilfe des Endpunkts „Data“ können Change Objekte gelesen, aktualisiert, angelegt und Statusübergänge ausgeführt werdenPath and query parameters are passed as query parameters when calling web services via the Connect application. The query parameters must always be passed in the Camel Case format. For example, if the path parameter "object_id" exists for an SAP endpoint, this must be passed as the query parameter "objectId" via the Connect application.

Endpoint "Data

The Data endpoint allows Change objects to be read, updated, created, and status transitions to be performed.

GET /data/objects/{object_id}

Der Endpunkt The GET /data/objects/{object_id} liefert Informationen zu einem Change Objekt mithilfe der Objekt ID. Mit Objekt ID ist die zehnstellige Nummer des Objekts gemeint, z. B. die Änderungsantrags-ID oder die Dokument-ID eines Änderungsdokuments. Der Endpunkt liefert die folgenden Informationen in tabellarischer Form.

...

Name

...

Typ

...

Beschreibung

...

changedAt

...

Wert

...

Datum der letzten Änderung

...

changedBy

...

Wert

...

Letzter Änderer

...

configurationItem

...

Objekt

...

Konfigurationselement- und Beschreibung

...

createdAt

...

Wert

...

Erstellungsdatum

...

createdBy

...

Wert

...

Anleger

...

customFields

...

Objekt

...

Alle Werte der definierten kundeneigenen Felder

...

cycleInfo

...

Objekt

...

Daten zum zugeordneten Änderungszyklus

...

description

...

Wert

...

Kurzbeschreibung

...

dueDate

...

Wert

...

Fälligkeitsdatum

...

dueTimestamp

...

Wert

...

Fälligkeitsdatum als UTC-Zeitstempel

...

endDate

...

Wert

...

Datum des gewünschten Endes

...

endTimestamp

...

Wert

...

Das gewünschte Ende als UTC-Zeitstempel

...

externalId

...

Wert

...

Enthält den Wert der Externen ID bei einer 1:1 Zuordnung.

...

externalIds

...

Array

...

Enthält alle zugeordneten Externen IDs

...

externalIdsCount

...

Wert

...

Anzahl der zugeordneten Externen IDs

...

impact

...

Wert

...

Der Wert enthält die Auswirkung des Objekts.

...

impactText

...

Wert

...

Anzeigetext für die Auswirkung.

...

longtext

...

Wert

...

Enthält die Beschreibung des Objekts. Da Objekte aus dem Change-Request-Management mehrere Texte enthalten können, enthält dieses Feld den Text, der als Default im Customizing des Addons für die zugehörige Vorgangsart hinterlegt wurde.

...

objectGuid

...

Wert

...

Global eindeutige ID für das Objekt

...

objectId

...

Wert

...

Objekt ID des Objekts

...

parentDescription

...

Wert

...

Kurzbeschreibung des übergeordneten Objekts, falls eine Verknüpfung existiert.

...

parentObjectGuid

...

Wert

...

Global eindeutige ID für das übergeordnete Objekt, sofern existent.

...

parentObjectId

...

Wert

...

Objekt ID des übergeordneten Objekts, sofern existent.

...

parentProcessType

...

Wert

...

Dokumentart des übergeordneten Objekts, sofern existent.

...

partner

...

Array

...

Liste mit Informationen der zugeordneten Informationen inklusive der Nummer des Business Partners, die Funktion des Partners, der Name des Business Partners und dessen E-Mail-Adresse.

...

priority

...

Wert

...

Priorität des Objekts.

...

priorityText

...

Wert

...

Anzeigetext der ausgewählten Priorität.

...

processType

...

Wert

...

Die zugehörige Vorgangsart des Objekts.

...

requests

...

Array

...

Liste aller zugeordneten Transportaufträge mit vielen Detailinformationen.

...

requestsAsString

...

Wert

...

Die Transportauftragsnummern als einzelne Zeichenkette getrennt durch Zeilenumbrüche.

...

standardFields

...

Array

...

Eine Liste von Standard-Feldern, die mit kundenspezifischen Werten gefüllt sind. Welche Felder verwendet werden, kann über die Addon-Konfiguration festgelegt werden.

...

startDate

...

Wert

...

Datum des gewünschten Starts.

...

startTimestamp

...

Wert

...

Datum des gewünschten Starts als UTC-Zeitstempel.

...

texts

...

Array

...

Liste aller Objekt-Texte.

...

urgency

...

Wert

...

Dringlichkeit

...

urgencyText

...

Wert

...

Anzeigetext der ausgewählten Dringlichkeit.

...

userStatus

...

Wert

...

Aktueller Status

...

userStatusProc

...

Wert

...

Verwendetes Statusschema.

...

userStatusText

...

Wert

...

Anzeigetext des aktuellen Status.

...

userStatusFinal

...

Wert

...

Kennzeichen („X“ = True, „“ = False), ob der aktuelle Status nicht mehr geändert werden kann.

Beispiel-Response für einen Änderungsantragendpoint returns information about a change object using the object ID. Object ID means the ten-digit number of the object, such as the change request ID or the document ID of a change document. The endpoint provides the following information in tabular form.

Name

Type

Description

changedAt

Value

Date of last change

changedBy

Value

Last changer

configurationItem

Object

Configuration element and description

createdAt

Value

Creation date

createdBy

Value

Investors

customFields

Object

All values of the defined user-defined fields

cycleInfo

Object

Data for the assigned change cycle

description

Value

Brief description

dueDate

Value

Due date

dueTimestamp

Value

Due date as UTC timestamp

endDate

Value

Date of the desired end

endTimestamp

Value

The desired end as UTC timestamp

externalId

Value

Contains the value of the External ID for a 1:1 assignment.

externalIds

Array

Contains all assigned external IDs

externalIdsCount

Value

Number of assigned external IDs

impact

Value

The value contains the effect of the object.

impactText

Value

Display text for impact.

longtext

Value

Contains the description of the object. Since Change Request Management objects can contain several texts, this field contains the text that was defined as the default in Customizing for the add-on for the corresponding transaction type.

objectGuid

Value

Globally unique ID for the object

objectId

Value

Object ID of the object

parentDescription

Value

Short description of the parent object, if a link exists.

parentObjectGuid

Value

Globally unique ID for the parent object, if it exists.

parentObjectId

Value

Object ID of the parent object, if it exists.

parentProcessType

Value

Document type of the parent object, if it exists.

partner

Array

List of assigned information including the business partner number, the partner's function, the business partner's name, and the business partner's email address.

priority

Value

Priority of the object.

priorityText

Value

Display text of the selected priority.

processType

Value

The associated transaction type of the object.

requests

Array

List of all assigned transport requests with a lot of detailed information.

requestsAsString

Value

The transport request numbers as a single character string separated by line breaks.

standardFields

Array

A list of standard fields filled with custom values. Which fields are used can be defined via the addon configuration.

startDate

Value

Date of the desired start.

startTimestamp

Value

Date of the desired start as UTC timestamp.

texts

Array

List of all object texts.

urgency

Value

Urgency

urgencyText

Value

Display text of the selected urgency.

userStatus

Value

Current status

userStatusProc

Value

Status profile used.

userStatusText

Value

Display text of the current status.

userStatusFinal

Value

Flag ("X" = True, "" = False) whether the current status can no longer be changed.

Sample response for an amendment:

Code Block
languagejson
{
   "changedAt": "2021-02-18",
   "changedBy": "GALILEO",
   "configurationItem": {
      "productId": "7100000111",
      "textIbComp": "G00 0020168246 300"
   },
   "createdAt": "2021-01-29",
   "createdBy": "GALILEO",
   "customFields": [
      {
         "name": "CLIENT",
         "value": "100"
      },
      {
         "name": "CUSTOMER_EXT",
         "value": ""
      },
      {
         "name": "CUSTOMER_H_DUMMY",
         "value": ""
      },
      {
         "name": "CUSTOMER_INT",
         "value": ""
      },
      {
         "name": "GUID",
         "value": "00155DF935011EDB98C13B600E6760E0"
      },
      {
         "name": "MODE",
         "value": ""
      },
      {
         "name": "REF_GUID",
         "value": "00155DF935011EDB98C13B600E6760E0"
      },
      {
         "name": "ZZEXTERNAL_ID",
         "value": ""
      },
      {
         "name": "ZZEXTERNAL_REF",
         "value": ""
      },
      {
         "name": "ZZGXP_RISK",
         "value": ""
      },
      {
         "name": "ZZJIRA_ID",
         "value": "BIIMPL01-999"
      },
      {
         "name": "ZZJIRA_URL",
         "value": ""
      }
   ],
   "cycleInfo": {
      "projectTitle": "Phase Cylce (IF_CONIGMA)",
      "releaseType": "I",
      "releaseTypeDescription": "Phase Cycle",
      "releaseCrmId": "8000000211",
      "tasklistId": "",
      "smiProject": "0000000021",
      "slanDesc": "G00 - Solution Manager",
      "sbraName": "Wartung",
      "goLiveDate": "2017-10-02",
      "goLiveTime": "00:00:00",
      "devStartDate": "2017-08-22",
      "devStartTime": "00:00:00",
      "devCloseDate": "2017-08-31",
      "devCloseTime": "00:00:00"
   },
   "description": "Description",
   "dueDate": "2021-02-12",
   "dueTimestamp": "2021-02-12T08:13:33Z",
   "endDate": "2021-09-21",
   "endTimestamp": "2021-09-20T22:00:00Z",
   "externalId": "BIIMPL01-12",
   "externalIds": ["BIIMPL01-12"],
   "externalIdsCount": 1,
   "impact": "00",
   "impactText": "",
   "longtext": "This is the long text.",
   "objectGuid": "00155DF935011EDB98C13B600E6760E0",
   "objectId": "8000001760",
   "parentDescription": "",
   "parentObjectGuid": "00000000000000000000000000000000",
   "parentObjectId": "",
   "parentProcessType": "",
   "partner": [
      {
         "partnerGuid": "00155DF935011EDB98C13B600E7220E0",
         "partnerNumber": "151",
         "partnerFct": "00000001",
         "partnerFctTxt": "Sold-To Party",
         "partnerMain": "X",
         "partnerName": "Mr. XXX",
         "partnerEmail": "XXX@XXX.de",
         "partnerLookup": "",
         "deletionFlag": ""
      },
      {
         "partnerGuid": "00155DF935011EDB98C141D658A540E0",
         "partnerNumber": "151",
         "partnerFct": "SDCD0004",
         "partnerFctTxt": "Current Processor",
         "partnerMain": "X",
         "partnerName": "Mr. XXX",
         "partnerEmail": "XXX@XXX.de",
         "partnerLookup": "",
         "deletionFlag": ""
      },
      {
         "partnerGuid": "00155DF935011EDB98C13B600E7140E0",
         "partnerNumber": "102",
         "partnerFct": "SDCR0001",
         "partnerFctTxt": "Requester",
         "partnerMain": "X",
         "partnerName": "Mr. YYY",
         "partnerEmail": "",
         "partnerLookup": "",
         "deletionFlag": ""
      },
      {
         "partnerGuid": "00155DF935011EDB98C13B600E7260E0",
         "partnerNumber": "151",
         "partnerFct": "SDCR0002",
         "partnerFctTxt": "Change Manager",
         "partnerMain": "X",
         "partnerName": "Mr. XXX",
         "partnerEmail": "XXX@XXX.de",
         "partnerLookup": "",
         "deletionFlag": ""
      }
   ],
   "postingDate": "2021-01-29",
   "priority": "3",
   "priorityText": "3: Medium",
   "processType": "ZMCR",
   "requests": [],
   "requestsAsString": "",
   "standardFields": [
      {
         "name": "/AICRM/EXT_TOKEN",
         "value": "TestValue"
      }
   ],
   "startDate": "2021-01-29",
   "startTimestamp": "2021-01-29T08:13:32Z",
   "texts": [
      {
         "textId": "CR01",
         "text": "This is the long text."
      },
      {
         "textId": "ZZ01",
         "text": "This is a technical problem description."
      },
      {
         "textId": "ZZ02",
         "text": "This is an impact analysis."
      }
   ],
   "urgency": "00",
   "urgencyText": "",
   "userStatus": "E0015",
   "userStatusFinal": "",
   "userStatusProc": "ZMCRHEAD",
   "userStatusText": "Being Implemented"
}

Beispiel-Response für den Knoten “requests”Example response for the "requests" node:

Code Block
languagejson
   "requests": [
   {
         "tasklist": "I000000011",
         "trorderNumber": "G00K900630",
         "text": "",
         "ctsId": "G00_P00005",
         "transportTrack": "TR000005",
         "sysName": "G00",
         "sysType": "ABAP",
         "sysClient": "100",
         "respUser": "DUMMY",
         "createdDate": "2021-01-28",
         "createdTime": "09:04:34",
         "releasedDate": null,
         "releasedTime": "00:00:00",
         "status": "@07@",
         "trfunction": "K",
         "originator": "S",
         "originatorId": "00155DF935011EDB98A7322BD3F5C0E0",
         "originatorKey": "8000001744",
         "trorderCopy": "",
         "projectName": "",
         "criticalObject": false,
         "abortExport": false,
         "csolConflict": false,
         "csolActivated": false,
         "tocNumber": "",
         "trfunctionText": "",
         "codeInspectChk": false,
         "tranpTargetChange": false,
         "openTask": false,
         "emptyRequest": false,
         "taskNumber": "",
         "statusText": "",
         "retrofitStatus": "",
         "collectionId": ""
      },
      {
         "tasklist": "I000000011",
         "trorderNumber": "G00K900632",
         "text": "",
         "ctsId": "G00_P00005",
         "transportTrack": "TR000005",
         "sysName": "G00",
         "sysType": "ABAP",
         "sysClient": "100",
         "respUser": "DUMMY",
         "createdDate": "2021-01-28",
         "createdTime": "09:04:36",
         "releasedDate": null,
         "releasedTime": "00:00:00",
         "status": "@07@",
         "trfunction": "W",
         "originator": "S",
         "originatorId": "00155DF935011EDB98A7322BD3F5C0E0",
         "originatorKey": "8000001744",
         "trorderCopy": "",
         "projectName": "",
         "criticalObject": false,
         "abortExport": false,
         "csolConflict": false,
         "csolActivated": false,
         "tocNumber": "",
         "trfunctionText": "",
         "codeInspectChk": false,
         "tranpTargetChange": false,
         "openTask": false,
         "emptyRequest": false,
         "taskNumber": "",
         "statusText": "",
         "retrofitStatus": "",
         "collectionId": ""
      }
   ]

 GET GET /data/external_ids/{external_id}Der

Endpunkt The GET /data/external_ids/{external_id} liefert dieselben Informationen wie der Endpunkt endpoint returns the same information as the GET /data/objects/{object_id} nur mit dem Unterschied, dass das Objekt anhand der verknüpften Externen ID ermittelt wirdendpoint, except that the object is determined by the linked External ID.

GET /data/objects/{object_id}/children

Dieser Endpunkt liefert anhand einer Objekt ID alle zugeordneten verknüpften Objekte, z. B. wenn die Objekt ID einer Änderungsantrag-ID entspricht, liefert der Endpunkt Informationen zu den verknüpften Änderungsdokumenten.

Der Endpunkt liefert folgende Informationen in tabellarischer Form.

...

Name

...

Typ

...

Beschreibung

...

parentGuid

...

Wert

...

Global eindeutige ID des Objekts, dessen verknüpfte Dokumente mithilfe der Objekt ID angefordert wurden.

...

parentObjectId

...

Wert

...

Objekt ID, die der Objekt ID aus dem Endpunkt entspricht.

...

parentProcessType

...

Wert

...

Die Vorgangsart des Objekts, dessen verknüpfte Dokumente mithilfe der Objekt ID angefordert wurden.

...

totalChildren

...

Wert

...

Anzahl der verknüpften Objekte.

...

children

...

Array

...

Liste an Objekten mit Details zu den verknüpften Objekten, siehe nachstehende Tabelle.

 Tabellarische Ansicht der Informationen innerhalb des „children“ Arrays.

...

Name

...

Typ

...

Beschreibung

...

guid

...

Wert

...

Global eindeutige ID des verknüpften Objekts.

...

objectId

...

Wert

...

Objekt ID des verknüpften Objekts.

...

processType

...

Wert

...

Die Vorgangsart des verknüpften Objekts.

...

description

...

Wert

...

Kurzbeschreibung des verknüpften Objekts.

...

userStatus

...

Wert

...

Aktueller Status

...

userStatusText

...

Wert

...

Die Beschreibung des aktuellen Status.

...

userStatusFinal

...

Wert

...

Kennzeichen („X“ = True, „“ = False), ob der aktuelle Status nicht mehr geändert werden kann.

Beispiel-This endpoint returns all associated linked objects based on an object ID, for example, if the object ID corresponds to a change request ID, the endpoint returns information about the linked change documents.

The endpoint provides the following information in tabular form.

Name

Type

Description

parentGuid

Value

Globally unique ID of the object whose linked documents were requested using the object ID.

parentObjectId

Value

Object ID that corresponds to the object ID from the end point.

parentProcessType

Value

The transaction type of the object whose linked documents were requested using the object ID.

totalChildren

Value

Number of linked objects.

children

Array

List of objects with details of the linked objects, see table below.

Tabular view of the information within the "children" array.

Name

Type

Description

guid

Value

Globally unique ID of the linked object.

objectId

Value

Object ID of the linked object.

processType

Value

The operation type of the linked object.

description

Value

Short description of the linked object.

userStatus

Value

Current status

userStatusText

Value

The description of the current status.

userStatusFinal

Value

Flag ("X" = True, "" = False) whether the current status can no longer be changed.

Sample Response:

Code Block
languagejson
{
   "parentGuid": "00155DF935011EDB98C13B600E6760E0",
   "parentObjectId": "8000001760",
   "parentProcessType": "ZMCR",
   "totalChildren": 2,
   "children":    [
            {
         "guid": "00155DF935011EDB98C164809CF420E0",
         "objectId": "8000001761",
         "processType": "ZMMJ",
         "description": "Demo Change 1",
         "userStatus": "E0002",
         "userStatusText": "In Development",
         "userStatusFinal": ""
      },
            {
         "guid": "00155DF935011EDB98C165411CA980E0",
         "objectId": "8000001762",
         "processType": "ZMMJ",
         "description": "Demo Change 2",
         "userStatus": "E0001",
         "userStatusText": "Created",
         "userStatusFinal": ""
      }
   ]
}

GET /data/external_ids/{external_id}/children

Dieser Endpunkt liefert identische Informationen wie der Endpunkt This endpoint returns identical information as the GET /data/objects/{object_id}/children mit dem Unterschied, dass das übergeordnete Objekt mithilfe der Externen ID ermittelt wirdendpoint, except that the parent object is determined using the External ID.

GET /data/objects/{object_id}/action

Dieser Endpunkt liefert anhand einer spezifizierten Objekt ID Informationen der verfügbaren PPF-Aktionen des zum Objekt gehörigen Aktionsprofils. Zusätzlich liefert der Endpunkt für jede PPF-Aktion ein Kennzeichen, ob die Aktion zum aktuellen Status ausgeführt werden kann.

Die PPF-Aktionen finden Sie im Customizing mithilfe der Transaktion SPRO über den Pfad „SAP This endpoint provides information of the available PPF actions of the action profile belonging to the object based on a specified object ID. In addition, the endpoint provides an indicator for each PPF action as to whether the action can be executed for the current status.

You can find the PPF actions in Customizing using transaction SPRO via the path "SAP Solution Manager à Capabilities (Optional) à Change - Control - Management à Vorgänge Operations à Aktionen à Aktionen und Bedingungen ändern à Aktionsprofile und Aktionen definieren“. Das Aktionsprofil für ChaRM Vorgänge lauten in der Regel <Vorgangsart>_ACTIONS, z. B. ZMCR_ACTIONS. Über den Customizing Pfad „SAP Actions à Change Actions and Conditions à Define Action Profiles and Actions". The action profile for ChaRM operations is usually <operation type>_ACTIONS, for example, ZMCR_ACTIONS. Using the Customizing path "SAP Solution Manager à Capabilities (Optional) à Change - Control - Management à Vorgänge Activities à Aktionen à Aktionsprofil der Vorgangsart zuordnen“ kann zusätzlich genau feststellen wie das Aktionsprofil eine bestimmten Vorgangsart lautet.

Der Endpunkt liefert ein paar Informationen zu der angeforderten Objekt ID und ein Array mit den PPF-Aktionen, die wie folgt aussehen.

...

Name

...

Typ

...

Beschreibung

...

actions

...

Array

...

Diese Eigenschaft liefert eine Liste mit Informationen zu den PPF-Aktionen des Objekts.

...

description

...

Wert

...

Kurzbeschreibung des Objekts.

...

externalID

...

Wert

...

Die zugeordnete Externe ID des Objekts, falls vorhanden.

...

objectGuid

...

Wert

...

Der Wert enthält die global eindeutige ID des Objekts.

...

objectId

...

Wert

...

Die Objekt ID des Objekts.

...

processType

...

Wert

...

Die Vorgangsart des Objekts.

Die Elemente des Arrays „actions“ enthalten folgende Informationen zu PPF-Aktionen.

...

Name

...

Typ

...

Beschreibung

...

guid

...

Wert

...

Global eindeutige ID der PPF-Aktionen

...

ttype

...

Wert

...

Name der PPF-Aktion.

...

ttypedescr

...

Wert

...

Der Wert enthält die Kurzbeschreibung der PPF-Aktion.

...

context

...

Wert

...

Das zugehörige Aktionsprofil der PPF-Aktion.

...

executable

...

Wert

...

Kennzeichen, ob die PPF-Aktion für den aktuellen Objektstatus ausgeführt werden kann. Der Wert „X“ entspricht „True“ und der Wert „“ entspricht „False“.

Bespiel-Actions à Assign Action Profile to Activity Type", you can also determine exactly what the action profile is for a particular activity type.

The endpoint returns some information about the requested object ID and an array of PPF actions, which look like this.

Name

Type

Description

actions

Array

This property returns a list with information about the PPF actions of the object.

description

Value

Brief description of the object.

externalID

Value

The assigned External ID of the object, if any.

objectGuid

Value

The value contains the globally unique ID of the object.

objectId

Value

The object ID of the object.

processType

Value

The operation type of the object.

The elements of the "actions" array contain the following information about PPF actions.

Name

Type

Description

guid

Value

Globally unique ID of the PPF actions

ttype

Value

PPF Action Name.

ttypedescr

Value

The value contains the short description of the PPF action.

context

Value

The associated action profile of the PPF action.

executable

Value

Flag indicating whether the PPF action can be executed for the current object status. The value "X" corresponds to "True" and the value "" corresponds to "False".

Sample Response:

Code Block
languagejson
{
   "actions": [
            {
         "guid": "00155DF935011EDB98C13B600E72E0E0",
         "ttype": "ZMCR_ON_CREATE",
         "ttypedescr": "When First Saving",
         "context": "ZMCR_ACTIONS",
         "executable": ""
      },
...
     {
         "guid": "00155DF935011EDBB1A1C59AA79780E1",
         "ttype": "ZMCR_EXTEND_SCOPE",
         "ttypedescr": "Extend Scope",
         "context": "ZMCR_ACTIONS",
         "executable": "X"
      },
     {
         "guid": "00155DF935011EDBB1A1C59AA79800E1",
         "ttype": "ZMCR_CREATE_PPM_TASK",
         "ttypedescr": "Create Project Management Task",
         "context": "ZMCR_ACTIONS",
         "executable": "X"
      }
   ],
   "description": "Test request for change",
   "externalId": "BIIMPL01-12",
   "objectGuid": "00155DF935011EDB98C13B600E6760E0",
   "objectId": "8000001760",
   "processType": "ZMCR"
}

GET /data/external_ids/{external_id}/action

Dieser Endpunkt liefert die selben Informationen anhand einer Externen ID zu PPF-Aktionen eines bestimmten Objekts wie der Endpunkt This endpoint returns the same information based on an External ID about PPF actions of a given object as the GET /data/objects/{object_id}/action endpoint.

GET /data/objects/search

Dieser Endpunkt dient zur Suche nach Objekten im Solution Manager anhand von vordefinierter Filterkriterien.

Die Filterkriterien werden bei diesem Endpunkt komplett als Query-Parameter übergeben. Folgende Query-Parameter können angegeben werden.

...

Name

...

Mögliche Werte

...

Beschreibung

...

description

...

Beliebiger Text ohne Berücksichtigung der Groß- und Kleinschreibung. Als Ersetzungszeichen für musterbasierte Suche können „*“ und „%“ verwendet werden.

...

This endpoint is used to search for objects in Solution Manager using predefined filter criteria.

The filter criteria are passed completely as query parameters for this endpoint. The following query parameters can be specified.

Name

Possible values

Description

description

Any case-insensitive text. *" and "%" can be used as replacement characters for pattern-based searches.

Object description

only_active_status

„true“ oder „false“

Kennzeichen, ob nur Objekte mit einem nicht finalen Status zurückgeliefert werden sollen"true" or "false"

Flag indicating whether only objects with a non-final status are to be returned.

object_id

10stellige Objektnummer. Eine Musterbasierte Suche ist unter Angabe von „*“ oder „%“ möglich.

Objekt-10-digit object number. A pattern-based search is possible by specifying "*" or "%".

Object ID

configuration_item

Das Konfigurations-Element als Zeichenkette. Eine Musterbasierte Suche für das Konfigurations-Element ist nicht möglich.

Konfigurations-ElementThe configuration item as a string. A pattern-based search for the configuration item is not possible.

Configuration item

product_id

Das Konfigurations-Element als Zeichenkette. Eine Musterbasierte Suche für das Konfigurations-Element ist nicht möglich.

Konfigurations-Element (alternativer NameThe configuration item as a string. A pattern-based search for the configuration item is not possible.

Configuration item (alternative name)

posting_date

Datumsangabe Date in der Form the form YYYY-MM-DD

Buchungs- bzw. ErstellungsdatumPosting or creation date.

object_type

Folgende Festwerte sind erlaubtThe following fixed values are allowed:
RFC = ÄnderungsantragChange request
CR = ÄnderungsdokumentChange document
CCY = ÄnderungszyklusChange cycle
DEF = Defekt

Objekt-Typ

...

Defect

Object type

The response of the endpoint corresponds to the table below.

Name

TypType

BeschreibungDescription

totalObjects

Wert

Anzahl der ermittelten ObjekteValue

Number of objects determined.

objects

Array

Array mit Detailinformationen zu den gefundenen Objekten.

...

with detailed information about the found objects.

The objects from the array "objects" contain the following values.

Name

TypType

BeschreibungDescription

guid

Wert

Der Wert enthält die global eindeutige ID des ObjektsValue

The value contains the globally unique ID of the object.

objectId

WertValue

Die Objekt ID des ObjektsThe object ID of the object

processType

Wert

Die zugehörige Vorgangsart des ObjektsValue

The corresponding operation type of the object

postingDate

Wert

Datum der Anlage des ObjektsValue

Date on which the object was created.

description

WertValue

ObjektbeschreibungProperty Description.

userStatus

WertValue

Aktueller StatusCurrent status

userStatusText

Wert

Beschreibung des aktuellen StatusValue

Description of the current status

userStatusFinal

WertValue

Kennzeichen Flag („X“ "X" = True, „“ "" = False) , ob der aktuelle Status nicht mehr geändert werden kannwhether the current status can no longer be changed.

configItem

WertValueKonfigurationselement. Dieser Wert ist bei Änderungszyklen nicht gefüllt

Configuration element. This value is not filled during change cycles.

configItemText

Wert

Beschreibung des Konfigurationselements. Dieser Wert ist bei Änderungszyklen nicht gefülltValue

Description of the configuration element. This value is not filled during change cycles.

cycleId

WertValueDie Objekt ID des zugehörigen Änderungszyklus. Dieser Wert ist identisch mit objectId, falls das Objekt einem Änderungszyklus entspricht

The object ID of the associated change cycle. This value is identical to objectId if the object corresponds to a change cycle.

cycleText

Wert

Die Beschreibung des zugehörigen Änderungszyklus. Dieser Wert ist identisch mit description, falls das Objekt einem Änderungszyklus entspricht.

totalCycleConfigItems

Wert

Anzahl an Konfigurationselementen, falls das Objekt einem Änderungszyklus entsprichtValue

The description of the associated change cycle. This value is identical to description if the object corresponds to a change cycle.

totalCycleConfigItems

Value

Number of configuration items if the object corresponds to a change cycle.

cycleConfigItems

Array

Liste mit zugehörigen Konfigurationselementen.

...

List with associated configuration items.

The items from the cycleConfigItems field conform to the following format:

Name

TypType

BeschreibungDescription

configItem

WertValue

KonfigurationselementConfiguration item.

configItemText

Wert

Beschreibung des KonfigurationselementsValue

Description of the configuration item.

Beispiel-Sample Response:

Code Block
languagejson
{
   "totalObjects": 1,
   "objects": [
      {
         "guid": "00155DF935011ED7A690FB3043D0E0C4",
         "objectId": "8000000260",
         "processType": "ZMCR",
         "postingDate": "2017-09-13",
         "description": "Demo Change Request",
         "userStatus": "E0011",
         "userStatusText": "Extend Scope",
         "userStatusFinal": "",
         "configItem": "7100000111",
         "configItemText": "G00 0020168246 300",
         "cycleId": "8000000211",
         "cycleText": "Phase cycle (IF_CONIGMA)",
         "totalCycleConfigItems": 0,
         "cycleConfigItems": []
      }
   ]
}

POST /data

Mithilfe dieses Endpunkts können neue Objekte im Solution Manager angelegt werden. Der Endpunkt akzeptiert zusätzlich den Query-Parameter „simulation“, um eine Anlage eines Objekts zu simulieren. Um eine Anlage zu simulieren, muss dem Parameter entweder der Wert “True” oder “X” zugeordnet werden, z. B. “httpThis endpoint can be used to create new objects in the Solution Manager. The endpoint also accepts the query parameter "simulation" to simulate an installation of an object. To simulate an installation, the parameter must be assigned either the value "True" or "X", e.g. "http(s)//: ... /data?simulation=True”

Der Request muss mindestens einen Wert für die Vorgangsart über die Eigenschaft “processType” enthalten, um ein Objekt anlegen zu können.

Die nachfolgenden Objektwerte werden aktuell unterstützt, wenn diese im Request enthalten sind.

Konfigurationselement

Das Konfigurationselement oder IBase-Komponente ist ein JSON Objekt mit Namen “configurationItem” mit den Eigenschaften “productId” für das Konfigurationselement und “textIbComp” für die Beschreibung des Konfigurationselements, wobei für die Anlage oder Änderung nur der Wert für “productId” relevant istTrue"

The request must contain at least one value for the process type via the "processType" property in order to create an object.

The following object values are currently supported if they are contained in the request.

Configuration element

The configuration item or IBase component is a JSON object named "configurationItem" with the properties "productId" for the configuration item and "textIbComp" for the description of the configuration item, where only the value for "productId" is relevant for the creation or modification.

Code Block
languagejson
"configurationItem": {
  "productId": "7100000111"
}
Kundeneigene Felder

...

Customer fields

All customer fields that exist in table CRMD_CUSTOMER_H existieren und entweder mit ZZ oder YY beginnen, können bei der Anlage eines Objekts übergeben werden.Wenn Beispielsweise das kundeneigene Feld YYJIRA_URL die URL eines verknüpften Jira Issue enthalten soll, kann folgendes im Request übergeben werden. Grundsätzlich muss der Feldname in Kleinbuchstaben im Objekt “customFields” übergeben werden. Sofern der Name ein Unterstrich enthält, muss der nächste Buchstabe nach dem Unterstrich in Großbuchstaben angeben werdenand begin with either ZZ or YY can be transferred when an object is created.

For example, if the custom field YYJIRA_URL should contain the URL of a linked Jira issue, the following can be passed in the request. Basically, the field name must be passed in lowercase in the object "customFields". If the name contains an underscore, the next letter after the underscore must be specified in upper case.

Code Block
languagejson
"customFields": {
  "yyjiraUrl": "https://my-jira-instance.com/projects/IMPL/issues/IMPL-4712"
}
Änderungszyklus

Bei der Zuordnung eines Änderungszyklus kann entweder dessen ID oder die Beschreibung des Zyklus über das JSON Objekt „cycleInfo“ übergeben werden. Die Eigenschaft „releaseCrmId“ entspricht der ID des Zyklus und „projectTitle“ der Beschreibung des Zyklus.

...

Change cycle

When assigning a change cycle, either its ID or the description of the cycle can be transferred via the JSON object "cycleInfo". The property "releaseCrmId" corresponds to the ID of the cycle and "projectTitle" to the description of the cycle.

If you want to assign a cycle with ID 8000000211 with description "Release 2022-3" to an object, you can either supply the ID or the description, provided that the description is unique.

Code Block
languagejson
"cycleInfo": {
  "projectTitle": "Release 2022-3"
},
"cycleInfo": {
  "releaseCrmId": "8000000211"
}
Kurzbeschreibung/Titel des Objekts

...

Short description/title of the object

The short description or title of the object can be passed via the property "description".

Code Block
languagejson
"description": "New financial document type \"KR\""
Gewünschter Beginn, Gewünschtes Ende, Fälligkeitsdatum

...

Desired start, Desired end, Due date

The date fields Desired start, Desired end or Due date can be passed via the properties "startDate", "endDate" and "dueDate". The date format corresponds to the pattern YYYY-MM-DD.

Code Block
languagejson
"dueDate": "2021-02-15",
"endDate": "2022-03-18",
"startDate": "2022-01-15"

...

External ID

Eine Externe ID wie beispielsweise eine An External ID, such as a Jira Issue ID oder eine or a ServiceNow Incident ID, kann über die Eigenschaft „externalId“ festgelegt werdencan be set using the "externalId" property.

Code Block
languagejson
"externalId": "IMPL-4712"
Multiple

...

External IDs

If the assignment of several external IDs is permitted for certain transaction types, a set of external IDs can be transferred directly via the array property "externalIds".

Code Block
languagejson
"externalIds": [
  "IMPL-4712",
  "IMPL-4713"
]
Auswirkung einer Anforderung, Änderung oder Problems

...

Impact of a requirement, change or problem

The impact of a requirement, change or problem can be assigned via the "impact" property. Permissible values for the impact can be found in table CRMC_SRQM_IMPACT.

Code Block
languagejson
"impact": "75"
Langtext

...

Long text

The long text of an object can be assigned with the property "longtext". Since the associated text type depends on the transaction type and customer-specific text types may be used, a text type must be assigned in advance in the configuration of the add-on for each transaction type that is to be used as long text, see chapter X.X.

Code Block
languagejson
"longtext": "This is a detailed description for the requirement.\n Following changes has to be implemented:\n"
Business Partner

Im Vorgang relevanten Business Partner können über die Eigenschaft „partner“ zugewiesen werden. Die Eigenschaft ist dabei ein Array mit Objekten, wobei bei einem Objekt mindestens die Partnerrolle „partnerFct“ und ein Suchtext „partnerLookup“ angegeben werden muss. Der Suchtext funktioniert dabei analog einer Eingabe eines Partners im Web Frontend des Solution Managers und es kann beispielsweise die Nummer oder der Nachname des Partners angegeben werden. Es besteht auch die Möglichkeit kundeneigene Mapping-Regeln für Business Partner zu implementieren.

...

business partner

Business partners relevant in the process can be assigned via the property "partner". The property is an array with objects, whereby at least the partner function "partnerFct" and a search text "partnerLookup" must be specified for an object. The search text works analogous to an entry of a partner in the web frontend of the Solution Manager and for example the number or the last name of the partner can be specified. It is also possible to implement customer-specific mapping rules for business partners.

Note that the partner function depends on the transaction type. You can find the available partner functions for an activity type in table AIC_PARTNER_FCT. In the following example, the role "Requester" is assigned to business partner 151 and the role "Change Manager" is assigned to business partner 102.

Code Block
languagejson
"partner": [
  {
    "partnerFct": "SDCR0001",
    "partnerLookup": "151"
  },
  {
    "partnerFct": "SDCR0002",
    "partnerLookup": "102"
  }
]

Endpunkt „Cycles“

...

Endpoint "Cycles

The Cycles endpoint can be used to retrieve change cycle information from Solution Manager.

GET /cycles

Dieser Endpunkt liefert ein Array mit folgenden Informationen über alle Änderungszyklen im System. Das Rückgabeformat wird noch von einem anderen Endpunkt verwendet, weswegen bei Änderungszyklen identische Werte in unterschiedlichen Feldern zurückgeliefert werden. Die Antwort des Endpunkts enthält folgende Felder.

...

Name

...

Typ

...

Beschreibung

...

totalObjects

...

Wert

...

This endpoint returns an array with the following information about all change cycles in the system. The return format is still used by another endpoint, which is why identical values are returned in different fields for change cycles. The response of the endpoint contains the following fields.

Name

Type

Description

totalObjects

Value

Number of change cycles determined.

objects

Array

Array mit Detailinformationen zu den Änderungszyklen.

...

with detailed information about the change cycles.

The objects from the array "objects" contain the following values.

Name

TypType

BeschreibungDescription

guid

Wert

Der Wert enthält die global eindeutige ID des ObjektsValue

The value contains the globally unique ID of the object.

objectId

WertValue

Die Objekt ID des ObjektsThe object ID of the object

processType

Wert

Die zugehörige Vorgangsart des ObjektsValue

The corresponding operation type of the object

postingDate

Wert

Datum der Anlage des ObjektsValue

Date on which the object was created.

description

WertValue

ObjektbeschreibungProperty Description.

userStatus

WertValue

Aktuelle StatusCurrent status

userStatusText

Wert

Beschreibung des aktuellen StatusValue

Description of the current status

userStatusFinal

WertValue

Kennzeichen Flag („X“ "X" = True, „“ "" = False) , ob der aktuelle Status nicht mehr geändert werden kannwhether the current status can no longer be changed.

configItem

WertValueKonfigurationselement. Dieser Wert ist bei Änderungszyklen nicht gefüllt

Configuration element. This value is not filled during change cycles.

configItemText

Wert

Beschreibung des Konfigurationselements. Dieser Wert ist bei Änderungszyklen nicht gefülltValue

Description of the configuration element. This value is not filled during change cycles.

cycleId

WertValueDie Objekt ID des zugehörigen Änderungszyklus. Dieser Wert ist identisch mit objectId, falls das Objekt einem Änderungszyklus entspricht

The object ID of the associated change cycle. This value is identical to objectId if the object corresponds to a change cycle.

cycleText

Wert

Die Beschreibung des zugehörigen Änderungszyklus. Dieser Wert ist identisch mit description, falls das Objekt einem Änderungszyklus entsprichtValue

The description of the associated change cycle. This value is identical to description if the object corresponds to a change cycle.

totalCycleConfigItems

Wert

Anzahl an Konfigurationselementen, falls das Objekt einem Änderungszyklus entsprichtValue

Number of configuration items if the object corresponds to a change cycle.

cycleConfigItems

Array

Liste mit zugehörigen Konfigurationselementen.

...

List with associated configuration items.

The items from the cycleConfigItems field conform to the following format:

Name

TypType

BeschreibungDescription

configItem

WertValue

KonfigurationselementConfiguration element

configItemText

Wert

Beschreibung des KonfigurationselementsValue

Description of the configuration item.

Beispiel-Sample Response:

Code Block
languagejson
{
   "totalObjects": 2,
   "objects": [          
      {
         "guid": "00155DF935011ED7A1E4396415E380C3",
         "objectId": "8000000211",
         "processType": "SMIM",
         "postingDate": "2017-08-22",
         "description": "Phase cycle (IF_CONIGMA)",
         "userStatus": "E0004",
         "userStatusText": "Build",
         "userStatusFinal": "",
         "configItem": "",
         "configItemText": "",
         "cycleId": "8000000211",
         "cycleText": "Phase cycle (IF_CONIGMA)",
         "totalCycleConfigItems": 1,
         "cycleConfigItems": [
            {
               "configItem": "7100000111",
               "configItemText": "G00 0020168246 300"
            }
         ]
      },
      {
         "guid": "00155DF935011EDB95E11001AEB600E0",
         "objectId": "8000001677",
         "processType": "SMIM",
         "postingDate": "2021-01-15",
         "description": "Cycle for defects",
         "userStatus": "E0005",
         "userStatusText": "Test",
         "userStatusFinal": "",
         "configItem": "",
         "configItemText": "",
         "cycleId": "8000001677",
         "cycleText": "Cycle for defects",
         "totalCycleConfigItems": 1,
         "cycleConfigItems": [  
            {
               "configItem": "7100000111",
               "configItemText": "G00 0020168246 300"
            }
         ]
      }
   ]
}

GET /cycles/transaction_types/{transaction_type}

Dieser Endpunkt liefert alle Änderungszyklen, die für eine bestimmte Dokumentenart, z. B. SMCR verwendet werden dürfen. Der Response ist identisch aufgebaut wie der Response des Endpunkts GET /cycles.

Endpunkt „Partner“

Mithilfe des Endpunkts „Partner“ können Informationen zu Geschäftspartnern aus dem Solution Manager abgerufen werdenThis endpoint returns all change cycles that may be used for a specific document type, e.g. SMCR. The response is structured identically to the response of the GET /cycles endpoint.

Endpoint "Partner

The Partner endpoint can be used to retrieve business partner information from Solution Manager.

GET /data/partner?email={emailAddress)

Dieser Endpunkt liefert Detailinformationen zu einem Geschäftspartner anhand dessen E-Mail Adresse aus dem Solution Manager im Rückgabefeld „partner“This endpoint provides detailed information about a business partner based on their email address from Solution Manager in the return field "partner".

Name

TypType

BeschreibungDescription

number

WertValueGeschäftspartnernummer

Business partner number

guid

WertValue

Eindeutige GUID des GeschäftspartnersUnique GUID of the business partner.

firstname

Wert

Vorname des GeschäftspartnersValue

First name of the business partner.

lastname

Wert

Nachname des GeschäftspartnersValue

Last name of the business partner.

email

WertValue

E-Mail-Adresse des Geschäftspartnersmail address of the business partner.

validFrom

WertValue

Gültig-Von-Datum des GeschäftspartnersValid-from date of the business partner.

validTo

WertValue

Gültig-Bis-Datum des Geschäftspartners.

...

Valid-to date of the business partner.

Sample Response:

Code Block
languagejson
{
   "partner": {
      "number": "0000000151",
      "guid": "00155DF935011ED7A5DA18356AC4E0C4",
      "firstname": "Frank",
      "lastname": "Dummy",
      "email": "frank.dummy@dummy.de",
      "validFrom": "0001-01-01",
      "validTo": "9999-12-31"
   }
}

Endpunkt „Ping“

...

Endpoint "Ping

The "Ping" endpoint is used to test connections.

GET /ping

Dieser Endpunkt dient im Wesentlichen zum Testen von Verbindungen und liefert folgende Informationen zum gerufenen SAP-Systems zurück und beinhaltet die folgenden FelderThis endpoint is mainly used for testing connections and returns the following information about the called SAP system and contains the following fields.

Name

TypType

BeschreibungDescription

serverInfo

Objekt

Informationen zum SAP-Object

Information on the SAP Server

systemTime

Wert

Aktuelle Systemzeit

...

Value

Current system time

The object "serverInfo" contains the following information.

Name

TypType

BeschreibungDescription

name

WertValue

Server - Name.

host

WertValue

Name des Host-Serversof the host server

serv

WertValue

Service

msgtypes

WertValue

Services des of the SAP -ServersServer

hostadr

WertValue

Host IP -Adresseaddress

servno

WertValue

Port -Nummer des Servicesnumber of the service

state

WertValue

Server -Statusstatus

hostnamelong

WertValue

Name des Host-Serversof the host server

hostaddrV4Str

WertValue

IPv4 Adresseaddress

hostaddrV6Str

WertValue

IPv6 Adresseaddress

sysservervice0

WertValue

Registrierte Registered System -DiensteServices

sysservervice1

WertValue

Registrierte Registered System -DiensteServices

sysservervice2

WertValue

Registrierte Registered System -DiensteServices

sysservervice3

WertValue

Registrierte Registered System -DiensteServices

Beispiel-Sample Response:

Code Block
languagejson
{
   "serverInfo":
   {
      "name": "GAL-MCH-116_G00_00",
      "host": "GAL-MCH-116",
      "serv": "sapdp00",
      "msgtypes": "BB",
      "hostadr": "C0A80174",
      "servno": "0C80",
      "state": "01",
      "hostnamelong": "GAL-MCH-116",
      "hostaddrV4Str": "192.168.1.116",
      "hostaddrV6Str": "192.168.1.116",
      "sysservice0": "80",
      "sysservice1": "00",
      "sysservice2": "00",
      "sysservice3": "00"
   },
   "systemTime": "2021-06-04T09:14:45.159Z"
}

Endpunkt „Tables“

...

45.159Z"
}

Endpoint "Tables

This endpoint can be used to request contents from "any" SAP tables. The tables whose contents may be read must, however, be specified beforehand via the configuration program /GAL/SM_API_CONFIG spezifiziert werden.

GET /tables/{table_name}

Dieser Endpunkt ist der Basis-Endpunkt, um Inhalte von SAP-Tabellen zu lösen. Der Endpunkt hat folgende Variationen, um bis zu 4 Filterkriterien angeben zu können. Als Filter-Option wird derzeit nur der Prüfung auf Gleichheit bzw. auf ein Muster unterstützt. Soll eine Muster-Prüfung erfolgen, können die Ersetzungszeichen „*“ und „%“ angegeben werden.

Folgende Endpunkt-Varianten existierenThis endpoint is the base endpoint for resolving contents of SAP tables. The endpoint has the following variations to specify up to 4 filter criteria. As a filter option, only the check for equality or for a pattern is currently supported. If a pattern check is to be performed, the replacement characters "*" and "%" can be specified.

The following endpoint variants exist:

/tables/{table_name}/filter/column/{filter_column}/value/{filter_value}

/tables/{table_name}/filter/column/{filter_column}/value/{filter_value}/column2/{filter_column2}/value2/{filter_value2}

/tables/{table_name}/filter/column/{filter_column}/value/{filter_value}/column2/{filter_column2}/value2/{filter_value2}/column3/{filter_column3}/value3/{filter_value3}

/tables/{table_name}/filter/column/{filter_column}/value/{filter_value}/column2/{filter_column2}/value2/{filter_value2}/column3/{filter_column3}/value3/{filter_value3}/column4/{filter_column4}/value4/{filter_value4}

Wenn die angegebene Tabelle existiert und über den Endpunkt gelesen werden darf, werden enthält die Rückgabe die folgenden zwei FelderIf the specified table exists and is allowed to be read via the endpoint, the return contains the following two fields.

Name

TypType

BeschreibungDescription

totalRecords

Wert

Anzahl der gelesenen DatensätzeValue

Number of records read.

records

Array

Array der gelesenen Datensätze, wobei die Feldnamen den Spaltennamen der Tabelle entsprechen of the read records, where the field names correspond to the column names of the table (in Camel Case).

Beispiel-Sample Response:

Code Block
languagejson
{
   "totalRecords": 1,
   "records": [
      {
         "mandt": "100",
         "productId": "7100000111",
         "configItem": "AS-SAP-SOLMAN",
         "gxpClass": "GXP",
         "processTeam": "Defect Mngmt. 7.2",
         "scrReviewerDl": ""
      }
   ]
}

Das obige Beispiel liefert die Feldwerte einer Tabelle mit den Spalten The above example returns the field values of a table with the columns MANDT, PRODUCT_ID, CONFIG_ITEM, GXP_CLASS, PROCESS_TEAM und and SCR_REVIEWER_DL zurück.