Page tree
Skip to end of metadata
Go to start of metadata

Process Management API

The information in this document is confidential and proprietary to SAP and may not be disclosed without the permission of SAP. Except for your obligation to protect confidential information, this
document is not subject to your license agreement or any other service or subscription agreement with SAP. SAP has no obligation to pursue any course of business outlined in this document or any related document, or to develop or release any functionality mentioned therein. This document, or any related document and SAP's strategy and possible future developments, products and or platforms directions and functionality are all subject to change and may be changed by SAP at any time for any reason without notice. The information in this document is not a commitment, promise or legal obligation to deliver any material, code or functionality. This document is provided without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. This document is for informational purposes and may not be incorporated into a contract. SAP assumes no responsibility for errors or omissions in this document, except if such damages were caused by SAP’s intentional or gross negligence.

Please be aware that the API will change and that you may have to re-develop your code.

 

Resource Model

The SAP Solution Manager Process Management API includes the following resources.

Basic Information

Here you will find basic information for configuration without any solution context.

Process Management

PathDescription
/ProcessManagement/?$format=json
Provides you with a list of all resources
/ProcessManagement/$metadata
Provides you with metadata of resources

Content Model

The content model is used to describe relations between element types and element attribute types. It consists of a set of objects with assigned attributes and several properties for objects and attributes. The content model is a media resource which exports the content model data in JSON format.

Content Model Version Set

Path
/ProcessManagement/ContentModelSet?$format=json
Description

The method provides a list with only one entry of the current content model version.

Object Properties

Property Name

Is key

Type

Description

ModelVersion   

X

String

Model Version

MimeType


Char (128)

Media Resource Mime Type (‘application/json’)

Content Model Data Set

Path
                  /ProcessManagement/ContentModelSet('<ModelVersion>')/$value               
Path

The method provides all available model data including elements, element relations element attributes.

Object Properties

Property Name

Type

Description

ELEMENT_TYPE_ID

Char (26)

Identifier of the object type

ELEMENT_TYPE_NAME

String

Name of the element type

IS_EXTERNAL

Boolean (‘X’|’’)

TRUE if object is external

IS_GROUP

Boolean

TRUE if group object. No attributes.

IS_STRUCTURE

Boolean

TRUE if structure object.

IS_NOT_UNIQUE

Boolean

TRUE if the object should be not unique even if key attributes are defined

REF_ELEMENT_TYPE

Char (26)

If the object type is a reference it contains the ELEMENT_TYPE_ID of the object type it can refer to.

CHILD_ELEMENTS

ELEMENT_TYPE_ID

Char (26)

Identifier of the child object type

ELEMENT_CARDINALITY

(“01”,”0N”)

Allowed number of child objects of same type

Set of child objects

ASSIGNED_ATTRIBUTES

ATTRIBUTE_TYPE_ID

Char (26)

Identifier of the attribute

ATTRIBUTE_TYPE_NAME

String

Name of the attribute type

IS_LANGUAGE_DEPENDENT

Boolean

TRUE if the attribute value is translatable

IS_SORTED

Boolean

TRUE if the values are sorted ascending by value and contain no duplicates

ATTRIBUTE_CARDINALITY

(“11”,”0N”,”01”,”1N”)

Defines how many values for the attribute are allowed.

IS_KEY

Boolean

Key attributes are used uniquely identify objects within a solution (except IS_NOT_UNIQUE is TRUE for the object)

NOT_MODIFIABLE

Boolean

TRUE if it is not possible to modify the value of this attribute

Set of attributes defined for this object

End User Role

Represents an end user role defined in the SAP Solution Manager system.

Path
/ProcessManagement/EndUserRoleSet?$format=json
Description

Returns a list of all end user roles defined in the SAP Solution Manager system.

Object Properties

Property Name

Is Key

Type

Description

RoleId

X

String

Role Identifier

RoleName


String

Name of the role

RoleType


String

Customized role type

RoleTypeName


String

Description of the role type  

Static Element Attribute

This resource represents an element attribute for which a static value list is available in SAP Solution Manager (e.g. ‘Country’ or ‘Language’).

Path
/ProcessManagement/StaticElementAttributeSet?$format=json



Description

Returns a list of available static attribute types.

Object Properties

Property Name

Is Key

Type

Description

AttributeTypeId

X

Char (26)

Attribute Type Identifier

Element Attribute Value

Value of a certain attribute.

Path
/ProcessManagement/StaticElementAttributeSet('<AttributeTypeId>')/ElementAttributeValueSet?$format=json
Description

Returns a list of values for a certain attribute type.

Object Properties

Property Name

Is Key

Type

Description

AttributeTypeId

X

Char (26)

Identifier of the attribute type

AttributeValue

X

Char (255)

Attribute Value

AttributeValueText


String

Display text for the attribute value

AttributeValueISO


String

Attribute value code according to ISO (if available)

Solution Administration

APIs to access to the Solutions and related information for the solution administration.

Solution

Represents a Solution entity in Solution Administration. 

List of Solutions

Path
/ProcessManagement/SolutionSet?$format=json
Description

The method provides a list of all Solutions in the system. 

Object Properties

Property Name

Is Key

Type

Description

SolutionId

X

Char (22)

Unique identifier of the solution

SolutionName


Char (30)

Technical Name

SolutionTitle  


Char (50)

Translatable title of the solution

PrimaryLanguage


Char (1)

Language in which the solution was created

Specific Solution

Path
/ProcessManagement/SolutionSet('<SolutionId>')?$format=json
Description

The method provides a single Solution.

Object Properties

Property Name

Is Key

Type

Description

SolutionId

X

Char (22)

Unique identifier of the solution

SolutionName


Char (30)

Technical Name

SolutionTitle  


Char (50)

Translatable title of the solution

PrimaryLanguage


Char (1)

Language in which the solution was created

Content Language

Represents Content Languages defined in Solution Administration.

The ContentImporter can handle multiple languages. You can use the mult-language attributes in the JSON, for e.g.:

{

        "occ_id": "051MZiix7jMTW8LkOgOa70",

        "obj_type": "REF_PROCSTEP",

        "reference": "051MZiix7jMTW8LkOgM470",

        "deleted": "",

        "attributes": [

            {

                "attr_type": "TCTYPE",

                "lang": "",

                "values": [

                    "N"

                ]

            },

            {

                "attr_type": "DESCRIPTION",

                "lang": "E",

                "values": [

                    "Process Step 1"

                ]

            },

           {

                "attr_type": "DESCRIPTION",

                "lang": "D",

                "values": [

                    "Prozessschritt  1"

                ]

            }


        ]

    }

The 3d-Party-API-Exporter exports only one language back based on login language (login language = content language).

UI-Exporter (in SOLADM) can exports all languages.


Path
/ProcessManagement/SolutionSet('<SolutionId>')/ContentLanguageSet?$format=json
Description

The method provides a list content languages defined for the solution. 

Object Properties

Property Name

Is Key

 

Type

Description

SolutionId

X


Char (22)

Identifier of the solution

Language

X


Char (1)

Content Language

IsPrimary



Boolean

TRUE for the Primary Content Language

Document Type

Represents Document Type defined in Solution Administration.

Path
/ProcessManagement/SolutionSet('<SolutionId>')/DocumentTypeSet?$format=json
Description

The method provides a list of document types defined for the solution. 

Object Properties

Property Name

Is Key

Type

Description

SolutionId

X

Char (22)

Identifier of the solution

DoctypeId

X

Char (8)

Identifier of the document type

DoctypeTitle


Char(128)

Translatable title of the document type

IsSignatureEnabled


Boolean

TRUE if the assigned status schema requires signatures


Logical Component Group

Represents Logical Component Group in System Landscape of Solution Administration.

Path
/ProcessManagement/SolutionSet('<SolutionId>')/LogicalComponentGroupSet?$format=json
Description

The method provides a list of all logical component groups defined for the solution.

Object Properties

Property Name

Is Key

Type

Description

SolutionId

X

Char (22)

Identifier of the solution

LogicalComponentGroupId

X

Char (30)

Unique identifier of the logical component group

LogicalComponentGroupTitle


Char (30)

Title of the logical component group

Scope

Scope represents a filter to reduce the selected content in Solution Documentation.

Path
/ProcessManagement/SolutionSet('SolutionId')/ScopeSet?$format=json
Description

The method provides a list of all public Scopes defined for the Solution. 

The method does not provide private scopes.

Object Properties

Property Name

Is Key

Type

Description

SolutionId

X

Char (22)

Identifier of the solution

ScopeId

X

Char (22)

Scope ID

ScopeTitle


Char(50)

Scope Title

Site

Represents Site entity in Solution Administration.

Path
/ProcessManagement/SolutionSet('SolutionId')/SiteSet?$format=json
Description

The method provides a list of all Sites defined for the Solution.

Object Properties

Property Name

Is Key

Type

Description

SolutionId

X

Char (22)

Identifier of the solution

SiteId

X

Char (30)

Identifier of the site

SiteTitle


Char (50)

Translatable title of the site


Branch

Provides access to Branch attributes in Solution Administration. All three Methods have the same object properties.

Branch List

Path
/ProcessManagement/BranchSet?$format=json
Description

The method provides a list of all branches.

Branches of Solution

Path
/ProcessManagement/BranchSet?$filter= SolutionId eq '<SolutionID>' &$format=json
Description

Optional filters by SolutionId, BranchType, ParentBranchId, IsDataExchangeEnabled

Single Branch

Path
/ProcessManagement/BranchSet('BranchId')?$format=json
Description

The method provides single branch.

Object Properties

Property Name

Is Key

Type

Description

BranchId

X

Char (22)

Unique identifier of the branch

BranchName


Char (30)

Technical Name

BranchTitle


Char (50)

Translatable title of the branch

ParentBranchId


Char (22)

Unique identifier of parent branch

SolutionId


Char (22)

Identifier of the solution to which the branch belongs

BranchType


Char (10) (“MASTER”:”Production Branch” “MAINT”:”Maintenance Branch” “STD”:”Standard Branch”)

Type of the Branch:

->  Refer to Documentation

IsChangeCtrlEnabled


Boolean

TRUE if changes are only using change documents

IsDataExchangeEnabled


Boolean

TRUE if it is possible to write content changes back into this branch

Change Document

Provides access to Change Document properties.

Path
/ProcessManagement/BranchSet('BranchId')/ChangeDocumentSet?$format=json
Description

The method provides a list of change documents available for this branch and the user. 

Object Properties

Property Name

Is Key

Type

Description

BranchId

X

Char (22)

Identifier of the branch

ChangeDocumentId

X

Char (70)

Unique identifier of the change document

ChangeDocumentName


String

Change Document Name

ChangeDocumentTitle


String

Translatable title of the change document

Branch System Landscape

Branch System Landscape represents the System Landscape for a Branch in Solution Administration. Branch System Landscape is modeled as a media resource which exports the binary data in JSON format.

Path
/ProcessManagement/BranchSystemLandscapeSet('<BranchId>')/$value
Description

The method provides system landscape defined for the branch. 

Object Properties

Property Name

Type

Description

SiteId

Char (30)

Identifier of the site. '' for global.

LogicalComponentGroupId

Char (30)

Unique identifier of the logical component group

LogicalComponent

Int(4-Byte)

Logical component

Systems

Property Name

Type

Description

RoleId

Char (1)

Identifier of the role

RoleText

Char (80)

Translatable? Description of the role

SystemId

Char (8)

External system ID

SystemType

Char (10)

Type of the system?

Client

Numc (3)

Client number

List of assigned systems in roles

Structure and Assignement synchronization

APIs to synchronize (bi-directional) libraries and processes.

Branch Content

BranchContent represents a “Read API” to the branch elements. BranchContent is modeled as a media resource which exports the binary data in the internal JSON file format containing branch elements. 

2715447 - Filter options in Process Management API

Path
/ProcessManagement/BranchContentSet(BranchId='BranchId',
ScopeId='ScopeId',SiteId='SiteId',SystemRole='SystemRole')/$value
Description

The returned JSON data contains a list of all elements belonging to the branch and the view. The selected Scope represents a filter to reduce the selected content. Site and System Role are used to determine a system to get external element texts. 

Note: Original elements which are referenced by elements in Scope will not be filtered, in spite of the fact that they are not configured in Scope.

Query Properties

Property Name

Is Key

Type

Description

BranchId

X

Char (22)

Identifier of the branch

ScopeId

X

Char (22)

Identifier of the Scope should be exported

SiteId

X

Char (30)

Identifier of the site

SystemRole

X

Char (1)

System Role ('P'-Production System, 'D' – Demo System, etc.)

MimeType


Char (128)

Media Resource Mime Type ('application/json')

Object Properties

You can find the result data format and example data here.

Branch Content Importer

Branch Content Importer represents a “Write API” to a branch content. Branch Content Import is modeled as a media resource which imports the binary data in the internal JSON file format containing branch elements. This is in contrast to all APIs above a PUT request instead of a GET request and returns nothing on success.

Path
/ProcessManagement/BranchContentImporterSet(BranchId='BranchId',
ChangeDocumentId='ChangeDocumentId')/$value
Description

The method to change the branch content. The requested JSON data should contains changed elements of the branch. Elements to be deleted shall be explicitly flagged with deleted = X. New elements created outside shall contain GUIDs . The section “NODES-STRUCTURE” shall contain the hierarchy information about all new elements up to an already existing parent element. The method uses the following logic to import node data. First we try to identify the existing nodes by the supplied semantic object key. For all nodes that are not identified by the semantic key we try the GUID. This process divides the input into a set of already existing node and not existing nodes.   The set of not existing nodes is sorted by sub trees for an existing parent node and created. For existing nodes we determine whether they should be deleted, moved or modified. After that the corresponding function is execute for the determined sets of nodes. 

Notice:

1) From SP09, for creating new node, all the required mandatory attributes of nodes(e.g DESCRIPTION) must be added.

    That means if you have invalid nodes(missing attributes) in your payload, these nodes will be ignored.  However the valid nodes can still be created. You get no error message about that.  

2) Deletion of element (e.g Process Original) which has a reference  will not be performed. It is strongly recommended to check that all the references should be deleted firstly. 


Query Parameters

Property Name

Is Key

Type

Description

BranchId

X

Char (22)

Identifier of the branch

ChangeDocumentId

X

Char (70)

Identifier of the change document

MimeType


Char (128)

Branch content Mime Type (application/json)


Document Synchronization

APIs to synchronize (bi-directional) KW documents in a Branch.

Document

Document represents a “Read API” to a KW document. Document is modeled as a media resource which exports document content as binary data depending on the document mime type.

Document Properties

Path
/ProcessManagement/DocumentSet(BranchId='BranchId',DocumentId ='DocumentId')?$format=json
Description

The method provides document properties (type, title).

Object Properties

Property Name

Is Key

Type

Description

BranchId

X

Char (22)

Branch Identifier

DocumentId

X

Char (32)

Document Identifier(LOIO)

IsDocumentURL


Boolean

TRUE if the document is Document URL’

DoctypeId


Char (8)

Document Type

DocTitle


Char (64)

Document Name

Language


Char (1)

Language of the document content

MimeType


Char (128)

Document Content Mime Type

Document Content

Path
/ProcessManagement/DocumentSet(BranchId='BranchId',DocumentId ='DocumentId')/$value
Description

The method provides a content of the requested document.

Object Properties

Content of the requested document as binary data depending on the document content mime type.

Document Content Importer

Document Content Importer represents a “Write API” to a KW document content. Document Content Importer is modeled as a media resource which imports document content as binary data depending on the document mime type. This is also a PUT request and returns nothing on success.

Path
/ProcessManagement/DocumentContentImporterSet(BranchId='BranchId',
DocumentId='DocumentId',ChangeDocumentId='ChangeDocumentId')/$value
Description

The method to change the document content. The method modifies the document content in the master language of the solution. All available attributes of the document, which assigned as an element in Branch content, may be changed via resource BranchContentImporter. Document Identifier (LOIO) of the assigned document corresponds the value of attr_type “KWOBJID” in the Branch content JSON.

Query Parameters

Property Name

Is Key

Type

Description

BranchId

X

Char (22)

Branch Identifier

DocumentId

X

Char (32)

Document Identifier(LOIO)

ChangeDocumentId

X

Byte (16)

Change Document Identifier

MimeType


Char (128)

Document Content Mime Type


Create Document

Create Document is used to create a document in KW. It is modeled as a Function Import (Action). This is a POST request.

Path
/ProcessManagement/CreateDocument?BranchId='BranchId'&DoctypeName='DoctypeName'&DocTitle='DocTitle'
&ChangeDocumentId='ChangeDocumentId'&DocumentURL=''&Language='E'
Description

The method to create a document. The method creates a document header with requested document type, title and content language. The new document is initially created with a content of the document template associated with the provided document type. The actual document content may be imported using the DocumentContentImporter afterward. The document may be assigned as an element to the Branch content via resource BranchContentImporter. Document Identifier (LOIO) of the assigned document corresponds the value of attr_type “KWOBJID” in the Branch content JSON.

Function Import Parameters

Name

Type

Description

BranchId

Char (22)

Branch Identifier

ChangeDocumentId

Char (70)

Change Document Identifier

DocumentURL

Char (max. 4.096)

URL if the document should be created as ‘Document URL’

DoctypeName

Char (8)

Document Type

DocTitle

Char (64)

Document Title

Language

Char (1)

Content language of the document

Object Properties

Properties of the newly created document incl. Document Identifier (LOIO).

 Error Response


HTTP status codes indicate whether an operation is successful or not. A response code of 2xx indicates the operation was successful. Other HTTP status codes indicate an error. SAP Solution Manager Solution Open API may return the following HTTP status codes for errors:

HTTP Status Code

Name

Description

400

Bad Request

The request cannot be fulfilled due to bad syntax

403

Forbidden

The request was a legal request, but the server is refusing to respond to it

404

Not Found

The requested resource could not be found but may be available again in the future

405

Method Not Allowed

A request was made of a resource using a request method not supported by that resource

409

Conflict

Indicates that the request could not be processed because of conflict in the request, such as an edit conflict

415

Unsupported Media Type

The request entity has a media type which the server or resource does not support.


Furthermore the response body of a request causing an error contains the following artifacts:

  • Error code
    The T100 message class and number or OTR concept of the error message.
  • Error message
    The text of the error message.

The error codes and error messages are to be defined.


Error Response Example:

{

  "error" : {

    "code" : "SMUD_INTERFACE_GW_AUTH/121",

    "message" : {

      "lang" : "en",

      "value" : "No authorization for Object xxx of type xxx"

    },

    "innererror" : {

 …

      }

    }

  }

}

Language Handling

All translatable content is read in the logon language. The logon language is set by the HTTP Accept-Header. Modification of translatable are done in the master language of the solution. The consumer of the API should read the translatable contents in the master language of the solution before modifying the content


NoteDescription
2715447Filter options in Process Management API
Useful LinkDescription
BLOG

Developing a REST API in ABAP

BLOG

Process Management API in SAP Solution Manager

BLOG

Process Management API — Branch Content timeout

BLOG

Preparation for incident due to Process Management API

  • No labels