Versions Compared

Key

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

...

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

You can view information on the host names Information about the hostname and ports of your Solution Manager can be viewed via transaction SICF by selecting the entry "Port Information" in from the "Goto" menu.

...

The endpoints can also be passed through the Connect application. The effective endpoints would then essentially look like thisthe following:

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

Path 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" “objectId” via the Connect application.

Table of Contents

Endpoint "Data

...

minLevel1
maxLevel7

Endpoint “Data”

Using the Data endpoint, Change objects can be read, updated, created, and status transitions to can be performed.

GET /data/objects/{object_id}

The GET /data/objects/{object_id} endpoint returns information about a change object using the object ID. Object ID means the ten-digit number of the object, for example, 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

InvestorsCreator

customFields

Object

All values of the defined user-defined custom fields

cycleInfo

Object

Data for on the assigned change cycle

description

Value

Brief descriptionTitle

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

externalCustomFields

Object

Values of defined external custom fields

externalId

Value

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

externalIds

Array

Contains all assigned external External IDs

externalIdsCount

Value

Number of assigned external External IDs

impact

Value

The value contains the effect Impact of the change object.

impactText

Value

Display text for impact.

longtext

Value

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

objectGuid

Value

Globally unique 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 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.

partnerparentProcessTypeDescr

ArrayValue

List Description 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.the document type of the parent object, if it exists

parentProcessTypeSdescr

Value

Short description of the document type of the parent object, if it exists

parentStatusText

Value

Description of the current status of the parent object, if it exists

parentUserStatus

Value

Current status of the parent object, if it exists

partner

Array

List with information of the assigned information including the number of the business partner, the function of the partner, the name of the business partner and its e-mail address

postingDate

Value

Creation date

priority

Value

Priority of the object

priorityText

Value

Display text of the selected priority

processType

Value

Documen type

processTypeDescr

Value

Description of the document type

processTypeDescrShort

Value

Short description of the document type

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.The configuration of the addon can be used to control which standard fields can be used

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) indicating whether the current status can no longer be changed.

userStatusProc

Value

Status scheme used

userStatusText

Value

Display text of the current status

Sample response for an amendmenta request for change:

Code Block
languagejson
{
      "changedAt": "20212022-0203-1825",
      "changedBy": "GALILEOXXX",
      "configurationItem":  {
           "productId": "71000001117100000011",
           "textIbComp": "G00S02 0020168246 300001"
      },
      "createdAt": "20212022-0103-2925",
      "createdBy": "GALILEOXXX",
      "customFields":  [
          {          "name": "CLIENT",
         "value": "100"
      },
      {
        {
        "name": "CUSTOMER_EXT",
        
        "value": ""
           },
      {
        
      {
        "name": "CUSTOMER_H_DUMMY",
                "value": ""
           },
      {
              {
        "name": "CUSTOMER_INT",
                "value": ""
           },
            {
        
        "name": "GUIDZZEXTERNAL_REF",
        
        "value": "00155DF935011EDB98C13B600E6760E0"
           },
       {
             {
        "name": "MODEZZEXTERNAL_URI",
                "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",
          ],
    "cycleInfo": {
      "projectTitle": "Maintenance S02",
      "releaseType": "O",
      "releaseTypeDescription": "Continual Cycle",
      "releaseCrmId": "8000000095",
      "tasklistId": "M000000001",
      "smiProject": "0000000001",
      "slanDesc": "SolutionManagerS02",
      "sbraName": "Maintenance",
      "goLiveDate": null,
      "goLiveTime": "00:00:00",
      "devStartDate": null,
      "devStartTime": "00:00:00",
      "devCloseDate": null,
      "devCloseTime": "00:00:00"
    },
    "description": "Test NC",
    "dueDate": "2022-04-08",
    "dueTimestamp": "2022-04-08T08:53:48Z",
    "endDate": "2022-03-28",
    "endTimestamp": "2022-03-28T08:53:47Z",
    "externalCustomFields": [],
    "externalId": "",
    "externalIds": [],
    "externalIdsCount": 0,
    "impact": "75",
    "impactText": "Low",
    "longtext": "Description of Change\r\n25.03.2022          10:52:47            XXX\r\n\r\nTest RFC",
    "objectGuid": "005056A496961EDCAB842EE5506292F5",
    "objectId": "8000000144",
    "parentDescription": "Test RFC",
    "parentObjectGuid": "005056A496961EDCAB828F60EA71F155",
    "parentObjectId": "8000000143",
    "parentProcessType": "ZMCR",
    "parentProcessTypeDescr": "Custom Request for Change",
    "parentProcessTypeSdescr": "Custom RFC",
    "parentStatusText": "Being Implemented",
    "parentUserStatus": "E0015",
    "partner": [
      {
        "partnerGuid": "005056A496961EDCAB843027865D52F7",
        "partnerNumber": "118",
        "partnerFct": "SDCD0004",
        
        "partnerFctTxt": "Current Processor",
                "partnerMain": "X",
                "partnerName": "Mr. XXXX",
        
        "partnerEmail": "XXX@XXXxxx@xxx.de",
        
        "partnerLookup": "",
                "deletionFlag": ""
           },
         {
        
        "partnerGuid": "00155DF935011EDB98C13B600E7140E0005056A496961EDCAB842EE55062F2F5",
         "partnerNumber": "102",
               "partnerNumber": "118",
        "partnerFct": "SDCR0001",
                "partnerFctTxt": "Requester",
                "partnerMain": "X",
        
        "partnerName": "Mr. YYYx",
                "partnerEmail": "xxx@xxx.de",
                "partnerLookup": "",
        
        "deletionFlag": ""
           },
           {
                "partnerGuid": "00155DF935011EDB98C13B600E7260E0005056A496961EDCAB842EE5506312F5",
                "partnerNumber": "151124",
        
        "partnerFct": "SDCR0002",
        
        "partnerFctTxt": "Change Manager",
                "partnerMain": "X",
        
        "partnerName": "Mr. XXXy",
        
        "partnerEmail": "XXX@XXXyyy@yyy.de",
                "partnerLookup": "",
        
        "deletionFlag": ""
           }
   ],
   "postingDate,
      {
        "partnerGuid": "2021-01-29005056A496961EDCAB84313384CA52F7",
          "prioritypartnerNumber": "3118",
  
        "priorityTextpartnerFct": "3: MediumSMCD0001",
          "processTypepartnerFctTxt": "ZMCRDeveloper",
   "requests": [],
   "requestsAsString        "partnerMain": "X",
          "standardFieldspartnerName": [
 "Mr. x",
    {          "namepartnerEmail": "/AICRM/EXT_TOKENxxx@xxx.de",
             "valuepartnerLookup": "TestValue"
   ,
  }    ],    "startDatedeletionFlag": "2021-01-29",
    "startTimestamp": "2021-01-29T08:13:32Z",
   "texts": [
      {
         "textId     },
      {
        "partnerGuid": "CR01005056A496961EDCAB84313384CA72F7",
        
        "textpartnerNumber": "124"This,
is the long text."
      },       {          "textIdpartnerFct": "ZZ01SMCD0002",
                "textpartnerFctTxt": "This is a technical problem description."
      },
      {
         "textIdTester",
        "partnerMain": "ZZ02X",
        
        "textpartnerName": "This is an impact analysis."
      }
   ],
   "urgencyMr. y",
        "partnerEmail": "00yyy@yyy.de",
          "urgencyTextpartnerLookup": "",
          "userStatusdeletionFlag": "E0015",
   "userStatusFinal"
      }
    ],
    "postingDate": "2022-03-25",
      "userStatusProcpriority": "ZMCRHEAD4",
      "userStatusTextpriorityText": "Being4: ImplementedLow"
}

Example response for the "requests" node:

Code Block
languagejson
   "requests": [
   {
         "tasklist": "I000000011",
         "trorderNumber": "G00K900630",
         "text": "",
         "ctsId": "G00_P00005",
         "transportTrack": "TR000005",
        ,
    "processType": "ZMMJ",
    "processTypeDescr": "Custom Normal Change",
    "processTypeDescrShort": "Custom Normal Change",
    "requests": [
      {
        "tasklist": "M000000001",
        "trorderNumber": "S01K900158",
        "sysName": "G00S01",
          "       "sysType": "ABAP",
                "sysClient": "100001",
                "respUserctsId": "DUMMYS01_P00001",
                "createdDatetransportTrack": "2021-01-28TR000000",
                "createdTimerespUser": "09:04:34XXX",
             "releasedDate": null,          "releasedTimetrfunction": "00:00:00W",
                "status": "@07@",
        
        "trfunctiontrorderCopy": "K",
         "originator        "target": "SS01.002",
        
        "originatorIdsmiProject": "00155DF935011EDB98A7322BD3F5C0E00000000001",
        
        "originatorKeyoriginator": "8000001744S",
        
        "trorderCopyoriginatorId": "005056A496961EDCAB842EE5506292F5",
                "projectNameoriginatorKey": "8000000144",
         "criticalObject": false,
         "abortExport": false,
         "csolConflict": false,
         "csolActivated": false,
         "tocNumber": "",
         "trfunctionText": "",
         "codeInspectChk": false,
         "tranpTargetChange": false,
         "openTask": false,
         "emptyRequest": false,
         "taskNumber": "",
         "statusText": "",
         "retrofitStatus        "createdDate": "2022-03-25",
        "createdTime": "10:54:34",
        "releasedDate": null,
        "releasedTime": "00:00:00",
        "description": "S 8000000144: Test NC",
        "trstatus": "",
         "collectionId": ""       },       {          "tasklisttypeDescription": "I000000011Customizing Request",
        
        "trorderNumberstatusDescription": "G00K900632Modifiable",
         "text": "",
         "ctsId": "G00_P00005",
         "transportTrack": "TR000005",
         "sysName      }
    ],
    "requestsAsString": "G00S01K900158",
         "sysType": "ABAP",          "sysClientstandardFields": "100"[],
         "respUser": "DUMMY",          "createdDatestartDate": "20212022-0103-2825",
            "createdTimestartTimestamp": "09:04:362022-03-25T09:53:47Z",
         "releasedDate": null,          "releasedTimetexts": "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 /data/external_ids/{external_id}

The GET /data/external_ids/{external_id} endpoint returns the same information as the GET /data/objects/{object_id} endpoint, except that the object is determined by the linked External ID.

GET /data/objects/{object_id}/children

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",
 [
      {
        "textId": "CD99",
        "text": "General Note\r\n25.03.2022          10:54:35            HOOGEN\r\n\r\n\r\nAction Create Transport Request in system S01~ABAP 001 of type Source\r\nSystems completed\r\n\r\nRequests  S01K900158 created\r\n____________________\r\nGeneral Note\r\n25.03.2022          10:54:18            HOOGEN\r\n\r\n\r\nThe status was set to the value 'In Development'\r\n____________________\r\nGeneral Note\r\n25.03.2022          10:53:48            HOOGEN\r\n\r\n\r\nThe status was set to the value 'Created'"
      },
      {
        "textId": "CR01",
        "text": "Description of Change\r\n25.03.2022          10:52:47            XXX\r\n\r\nTest RFC"
      }
    ],
    "urgency": "75",
    "urgencyText": "Medium",
    "userStatus": "E0002",
    "userStatusFinal": "",
    "userStatusProc": "ZMMJHEAD",
    "userStatusText": "In Development"
 }

Sample response for the "requests" node:

Code Block
languagejson
    "requests": [
      {
        "objectIdtasklist": "8000001761M000000001",
         "processTypetrorderNumber": "ZMMJS01K900158",

        "descriptionsysName": "Demo Change 1S01",
         "userStatussysType": "E0002ABAP",

        "userStatusTextsysClient": "In Development001",
         "userStatusFinalctsId": "S01_P00001",
      },   "transportTrack": "TR000000",
        {
"respUser": "XXX",
        "guidtrfunction": "00155DF935011EDB98C165411CA980E0W",

        "objectIdstatus": "8000001762@07@",

        "processTypetrorderCopy": "ZMMJ",
         "descriptiontarget": "Demo Change 2S01.002",
         "userStatussmiProject": "E00010000000001",
         "userStatusTextoriginator": "CreatedS",

        "userStatusFinaloriginatorId": "005056A496961EDCAB842EE5506292F5",
        "originatorKey": "8000000144",
   }    ]
}

GET /data/external_ids/{external_id}/children

This endpoint returns identical information as the GET /data/objects/{object_id}/children endpoint, except that the parent object is determined using the External ID.

GET /data/objects/{object_id}/action

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 à Operations à 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 à Activities à Actions à Assign Action Profile to Activity Type", you can also determine exactly what the action profile is for a particular activity type.

...

 "createdDate": "2022-03-25",
        "createdTime": "10:54:34",
        "releasedDate": null,
        "releasedTime": "00:00:00",
        "description": "S 8000000144: Test NC",
        "trstatus": "",
        "typeDescription": "Customizing Request",
        "statusDescription": "Modifiable"
      }
    ]

GET /data/external_ids/{external_id}

The GET /data/external_ids/{external_id} endpoint returns the same information as the GET /data/objects/{object_id} endpoint except that the object is determined based on the linked External ID.

GET /data/objects/{object_id}/children

This endpoint provides all associated linked objects based on an object ID, e.g., if the object ID corresponds to a change request ID, the endpoint provides information about the linked change documents.

The endpoint provides the following information in tabular form.

Name

Type

Description

actions

parentGuid

Array

This property returns a list with information about the PPF actions

Value

Global unique ID of the object

.description

whose children were requested

parentObjectId

Value

Brief description of the object.

externalID

Object ID

parentProcessType

Value

The assigned External ID of the object, if any.

objectGuid

Document type

totalChildren

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.

...

Number of child objects

children

Array

List of child objects, see next section

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

Name

Type

Description

guid

Value

Globally

Global unique ID

of the PPF actions

ttype

objectId

Value

PPF Action Name.

ttypedescr

Object ID

processType

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".

Document type

description

Value

Short description

userStatus

Value

Current status

userStatusText

Value

Text of the current status

userStatusFinal

Value

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

Sample Response:

Code Block
languagejson
 {
    "actionsparentGuid": ["005056A496961EDCAB828F60EA71F155",
    "parentObjectId": "8000000143",
      {"parentProcessType": "ZMCR",
         "guidtotalChildren": "00155DF935011EDB98C13B600E72E0E0"1,
    "children": [
   "ttype": "ZMCR_ON_CREATE",
   {
        "ttypedescrguid": "When First Saving005056A496961EDCAB842EE5506292F5",

        "contextobjectId": "ZMCR_ACTIONS8000000144",

        "executableprocessType": ""
      },
...
     {ZMMJ",
           "guiddescription": "00155DF935011EDBB1A1C59AA79780E1Test NC",

        "ttypeuserStatus": "ZMCR_EXTEND_SCOPEE0002",

        "ttypedescruserStatusText": "ExtendIn ScopeDevelopment",
         "contextuserStatusFinal": "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

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

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" or "false"

...

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

...

object_id

...

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

...

Object ID

...

configuration_item

...

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

...

Configuration item

...

product_id

...

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

...

Configuration item (alternative name)

...

posting_date

...

Date in the form YYYY-MM-DD

...

Posting or creation date.

...

object_type

...

The following fixed values are allowed:
RFC = Change request
CR = Change document
CCY = Change cycle
DEF = Defect

...

Object type

The response of the endpoint corresponds to the table below.

...

Name

...

Type

...

Description

...

totalObjects

...

Value

...

Number of objects determined.

...

objects

...

Array

...

Array with detailed information about the found objects.

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

...

Name

...

Type

...

Description

...

guid

...

Value

...

The value contains the globally unique ID of the object.

...

objectId

...

Value

...

The object ID of the object

...

processType

...

Value

...

The corresponding operation type of the object

...

postingDate

...

Value

...

Date on which the object was created.

...

description

...

Value

...

Property Description.

...

userStatus

...

Value

...

Current status

...

userStatusText

...

Value

...

Description of the current status

...

userStatusFinal

...

Value

...

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

...

configItem

...

Value

...

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

...

configItemText

...

Value

...

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

...

cycleId

...

Value

...

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

...

cycleText

...

Value

...

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

...

List with associated configuration items.

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

...

Name

...

Type

...

Description

...

configItem

...

Value

...

Configuration item.

...

configItemText

...

Value

...

Description of the configuration item.

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

This 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"

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"
}
Customer fields

All customer fields that exist in table CRMD_CUSTOMER_H and 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"
}
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"
}
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\""
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

An External ID, such as a Jira Issue ID or a ServiceNow Incident ID, can 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"
]
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"
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

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"
  }
]

Endpoint "Cycles

...

}

GET /data/external_ids/{external_id}/children

This endpoint returns identical information as the GET /data/objects/{object_id}/children endpoint with the difference that the parent object is determined using the External ID.

GET /data/objects/{object_id}/action

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 -> Transactions -> Actions -> Change Actions and Conditions -> Define Action Profiles and Actions”. The action profile for ChaRM operations is usually as follows <Transaction Type>_ACTIONS, z. B. ZMCR_ACTIONS. Via the customizing path “SAP Solution Manager -> Capabilities (Optional) -> Change Control Management -> Transactions -> Actions -> Assign Action Profile to the Business Transaction Type” can additionally determine exactly what the action profile is for a particular transaction type.

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

Name

Type

Description

actions

Array

List of available object actions

description

Value

Short description

externalID

Value

External ID

objectGuid

Value

Global unique ID

objectId

Value

Oject ID

processType

Value

Document type

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

Name

Type

Description

guid

Value

Global unique ID of the PPF action

ttype

Value

Name

ttypedescr

Value

Short description

context

Value

Action profile

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": "005056A496961EDCAB846CF67A1F132F",
        "ttype": "ZMMJ_CHECK_STATUS_MJ",
        "ttypedescr": "Checks Consistency",
        "context": "ZMMJ_ACTIONS",
        "executable": ""
      },
      ...
      {
        "guid": "005056A496961EDCAB846CF67A1F532F",
        "ttype": "ZMMJ_TO_BE_TESTED_MJ",
        "ttypedescr": "Pass Normal Change to Test",
        "context": "ZMMJ_ACTIONS",
        "executable": "X"
      },
      ...
      {
        "guid": "005056A496961EDCAB846CF67A1F932F",
        "ttype": "ZMMJ_WITHDRAW_MJ",
        "ttypedescr": "Withdraw Normal Change",
        "context": "ZMMJ_ACTIONS",
        "executable": "X"
      },
      {
        "guid": "00000000000000000000000000000000",
        "ttype": "ZMMJ_TESTED_AND_NOT_OK_MJ",
        "ttypedescr": "Reset Status to \"In Developmen",
        "context": "ZMMJ_ACTIONS",
        "executable": ""
      },
      ...
      {
        "guid": "00000000000000000000000000000000",
        "ttype": "ZMMJ_REQUEST_PRELIMINARY_MJ",
        "ttypedescr": "Request Preliminary Import",
        "context": "ZMMJ_ACTIONS",
        "executable": ""
      },
      {
        "guid": "005056A496961EDCAB846CF67A1FD32F",
        "ttype": "ZMMJ_TRANSPORT_TO_SANDBOX_W_MJ",
        "ttypedescr": "Transport into Sandbox System",
        "context": "ZMMJ_ACTIONS",
        "executable": "X"
      }      
    ],
    "description": "Test NC",
    "externalId": "",
    "objectGuid": "005056A496961EDCAB842EE5506292F5",
    "objectId": "8000000144",
    "processType": "ZMMJ"
}

GET /data/external_ids/{external_id}/action

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

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" or "false"

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

object_id

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

Object ID

configuration_item

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

Configuration item

product_id

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

Configuration item (alternative name)

posting_date

Date in the form YYYY-MM-DD

Creation date

object_type

The following fixed values are allowed:
RFC = Change request
CR = Change document
CCY = Change cycle
DEF = Defect

Object type

The response of the endpoint corresponds to the table below.

Name

Type

Description

totalObjects

Value

Number of objects found

objects

Array

Object list of the found objects

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

Name

Type

Description

guid

Value

Global unique ID

objectId

Value

Object ID

processType

Value

Document type

postingDate

Value

Creation date

description

Value

Short description

userStatus

Value

Current status

userStatusText

Value

Display text of the current status

userStatusFinal

Value

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

configItem

Value

Configuration item if the object is not a change cycle

configItemText

Value

Configuration item description, if object is not a change cycle

cycleId

Value

Object ID of the associated change cycle

cycleText

Value

Description of the associated change cycle

totalCycleConfigItems

Value

Number of assigned configuration items, if object is a change cycle

cycleConfigItems

Array

List of assigned configuration items, if objects is a change cycle

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

Name

Type

Description

configItem

Value

Configuration item

configItemText

Value

Description of the configuration item

Sample Response:

Code Block
languagejson
{
    "totalObjects": 1,
    "objects": [
      {
        "guid": "005056A496961EDCA88C33753EA41906",
        "objectId": "8000000095",
        "processType": "SMAI",
        "postingDate": "2022-03-10",
        "description": "Maintenance S02",
        "userStatus": "E0002",
        "userStatusText": "Active",
        "userStatusFinal": "",
        "configItem": "",
        "configItemText": "",
        "cycleId": "8000000095",
        "cycleText": "Maintenance S02",
        "totalCycleConfigItems": 1,
        "cycleConfigItems": [
          {
            "configItem": "7100000011",
            "configItemText": "S02 0020168246 001"
          }
        ]
      }
    ]
 }

POST /data

This endpoint can be used to create new objects in Solution Manager. The endpoint additionally accepts the query parameter "simulation" to simulate the creation of an object. To simulate the creation of an object, the parameter must be assigned either the value "True" or "X", e.g. "http(s)//: ... /data?simulation=True"

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

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

Configuration item

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

Code Block
languagejson
"configurationItem": {
  "productId": "7100000111"
}
Custom fields

All custom fields that exist in the CRMD_CUSTOMER_H table and begin with either ZZ or YY can be passed when creating an object.

For example, if the custom field ZZEXTERNAL_URI should contain the URL of a linked Jira issue, the following can be passed in the request. Basically, the customFields field is an array but it can also be addressed as an object if only one custom field needs to be updated. If the one custom field is passed like an object, the technical field name must be specified in camel case, i.e. all lowercase except for characters after an underscore; these must be specified in uppercase, see example below.

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

If more custom fields need to be filled, the request should look like this.

Code Block
languagejson
"customFields": [
  {
    "name": "ZZEXTERNAL_REF",
    "value": "IMPL-4712"
  },
  {
    "name": "ZZEXTERNAL_URI",
    "value": "https://my-jira-instance.com/projects/IMPL/issues/IMPL-4712"
  }
]
Change cycle

When assigning a change cycle, either its ID or the description of the cycle can be passed via the JSON object "cycleInfo". The property "releaseCrmId" corresponds to the ID of the cycle and "projectTitle" corresponds 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 supply either the ID or the description, provided that the description is unique.

Code Block
languagejson
"cycleInfo": {
  "projectTitle": "Release 2022-3"
},
"cycleInfo": {
  "releaseCrmId": "8000000211"
}
Short description/title of the object

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

Code Block
languagejson
"description": "New financial document type \"KR\""
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

An External ID, such as a Jira Issue ID or a ServiceNow Incident ID, can be set using the "externalId" property.

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

If the assignment of multiple external IDs is allowed for certain transaction types, a set of external IDs can be passed directly via the array property "externalIds".

Code Block
languagejson
"externalIds": [
  "IMPL-4712",
  "IMPL-4713"
]
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"
Priority

The priority of the document can be assigned via the "priority" property. Permissible priority values can be looked up in table SCPRIO.

Code Block
languagejson
"priority": "3"
Urgency

The urgency of a document will be assigned via the "urgency" property. The CRMC_SRQM_URGENC table contains the allowed values of this field.

Code Block
languagejson
"urgency": "75"
Long text

The long text of an object can be assigned with the "longtext" property. 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 https://galileogroup.atlassian.net/wiki/spaces/CONNECTDOCEN/pages/712343577/REST+API+Configuration+REST+API+for+Solution+Manager#Default-text-objects-for-a-transaction-type .

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

The "texts" array can be used to transfer further texts in addition to the long text via the web service. You must look up the required text IDs in Customizing for the "CRM_ORDERH" object beforehand.

Code Block
languagejson
"texts": [
  {
    "textId": "CD01",
    "text": "Test report"
  },
  {
  "textId": "CD02",
  "text": "Test instructions: \n sample instruction"
  }
]
Business Partner

Business partners relevant in the process can be assigned via the "partner" property. 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 in the same way as entering 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.

Please note that the partner function depends on the transaction type. The available partner functions for a transaction type can be found 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"
  }
]

PUT/data/objects/{object_id}

This endpoint is used to update an object based on its object ID. Which values can be updated can be found in the previous chapter POST /data.

PUT/data/external_ids/{external_id}

This endpoint corresponds to the previous one with the difference that the object is addressed via its External ID. This endpoint can only be used if External IDs is always uniquely associated with a Solution Manager object.

POST /data/objects/{object_id}/action/{action_id}/execute

This endpoint can be used to trigger a status transition of an object. The path parameter object_id is the object ID of the object for which the status transition is to be executed and the path parameter action_id must be a valid PPF action name. A list of available PPF actions for an object is provided by the GET /data/objects/{object_id}/action endpoint.

If the action can be executed without errors, the object for which the action was executed is returned. The scheme here corresponds to the endpoint GET /data/objects/{object_id}.

POST /data/external_ids/{external_id}/action/{action_id}/execute

This endpoint works analogously to the previous one with the difference that the object is identified by the External ID.

Endpoint “Cycles”

Using the Cycles endpoint, information about change cycles can be retrieved from Solution Manager.

GET /cycles

...

Name

Type

Description

totalObjects

Value

Number of change cycles determined.found

objects

ArrayArray

with detailed information about List with details of the change cycles .found

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

Name

Type

Description

guid

Value

The value contains the globally Global unique ID of the object.

objectId

Value

The object Object ID of the object

processType

Value

The corresponding operation type of the objectDocument type

postingDate

ValueDate

on which the object was created.Creation date

description

ValueProperty

Description.Object description

userStatus

Value

Current status

userStatusText

Value

Description Display text of the current status

userStatusFinal

Value

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

configItem

Value

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

configItemText

Value

Description of the configuration element. This value is not filled during change cycles.Will not be filled at this endpoint!

configItemText

Value

Will not be filled at this endpoint!

cycleId

Value

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

cycleText

ValueThe

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

totalCycleConfigItems

Value

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

cycleConfigItems

Array

List with associated of assigned configuration items.

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

Name

Type

Description

configItem

Value

Configuration elementitem

configItemText

Value

Description of the configuration item.

...

This 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”

Using the "Partner

...

The Partner endpoint can be used to retrieve business partner information " endpoint, information on business partners can be retrieved from Solution Manager.

GET /data/partner?email={emailAddress)

This endpoint provides detailed information about a business partner based on their the email address from Solution Manager in the return field "partner" return field.

Name

Type

Description

number

Value

Business partner number

guid

Value

Unique GUID of the business partner.

firstname

Value

First name of the business partner.

lastname

Value

Last name of the business partner.

email

Value

E-mail address of the business partner.

validFrom

Value

Valid-from date of the business partner.

validTo

Value

Valid-to date of the business partner.

Sample Response:

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

Endpoint

...

“Ping”

The "Ping" endpoint is used to test connections.

...

This endpoint is mainly used for testing connections and returns the following information about the called SAP system and contains includes the following fields.

Name

Type

Description

serverInfo

Object

Information on the SAP Server

systemTime

Value

Current system time

...

Name

Type

Description

name

Value

Application Server Name.Instance

host

Value

Name of the host server

serv

Value

Service

msgtypes

Value

Services of the SAP Application Server Instance

hostadr

Value

Host IP address

servno

Value

Port number of the service

state

Value

Server status

hostnamelong

ValueName

of the host serverHost name

hostaddrV4Str

Value

IPv4 address

hostaddrV6Str

Value

IPv6 address

sysservervice0

Value

Registered System Services Registered on Message Server

sysservervice1

Value

Registered System Services Registered on Message Server

sysservervice2

Value

Registered System Services Registered on Message Server

sysservervice3

Value

Registered System Services Registered on Message Server

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"
}

Endpoint

...

“Tables”

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

GET /tables/{table_name}

This endpoint is the base basic endpoint for resolving to resolve 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 substitution 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}

If the specified table exists and is allowed to be read via the endpoint, the return contains will contain the following two fields.

Name

Type

Description

totalRecords

Value

Number of records read.

records

Array

Array of the read records, where the field names correspond to the column names of the table (in Camel Case).

Sample Response:

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

...