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
Path | Description |
---|---|
/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
/ProcessManagement/ContentModelSet?$format=json
The method provides a list with only one entry of the current content model version.
Property Name | Is key | Type | Description |
---|---|---|---|
ModelVersion | X | String | Model Version |
MimeType | Char (128) | Media Resource Mime Type (‘application/json’) |
Content Model Data Set
/ProcessManagement/ContentModelSet('<ModelVersion>')/$value
The method provides all available model data including elements, element relations element attributes.
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 |
| Set of child objects | |||||||||||||||||||||
ASSIGNED_ATTRIBUTES |
| Set of attributes defined for this object |
End User Role
Represents an end user role defined in the SAP Solution Manager system.
/ProcessManagement/EndUserRoleSet?$format=json
Returns a list of all end user roles defined in the SAP Solution Manager system.
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’).
/ProcessManagement/StaticElementAttributeSet?$format=json
Returns a list of available static attribute types.
Property Name | Is Key | Type | Description |
AttributeTypeId | X | Char (26) | Attribute Type Identifier |
Element Attribute Value
Value of a certain attribute.
/ProcessManagement/StaticElementAttributeSet('<AttributeTypeId>')/ElementAttributeValueSet?$format=json
Returns a list of values for a certain attribute type.
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
/ProcessManagement/SolutionSet?$format=json
The method provides a list of all Solutions in the system.
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
/ProcessManagement/SolutionSet('<SolutionId>')?$format=json
The method provides a single Solution.
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.
/ProcessManagement/SolutionSet('<SolutionId>')/ContentLanguageSet?$format=json
The method provides a list content languages defined for the solution.
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.
/ProcessManagement/SolutionSet('<SolutionId>')/DocumentTypeSet?$format=json
The method provides a list of document types defined for the solution.
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.
/ProcessManagement/SolutionSet('<SolutionId>')/LogicalComponentGroupSet?$format=json
The method provides a list of all logical component groups defined for the solution.
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.
/ProcessManagement/SolutionSet('SolutionId')/ScopeSet?$format=json
The method provides a list of all public Scopes defined for the Solution.
The method does not provide private scopes.
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.
/ProcessManagement/SolutionSet('SolutionId')/SiteSet?$format=json
The method provides a list of all Sites defined for the Solution.
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
/ProcessManagement/BranchSet?$format=json
The method provides a list of all branches.
Branches of Solution
/ProcessManagement/BranchSet?$filter= SolutionId eq '<SolutionID>' &$format=json
Optional filters by SolutionId, BranchType, ParentBranchId, IsDataExchangeEnabled
Single Branch
/ProcessManagement/BranchSet('BranchId')?$format=json
The method provides single branch.
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.
/ProcessManagement/BranchSet('BranchId')/ChangeDocumentSet?$format=json
The method provides a list of change documents available for this branch and the user.
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.
/ProcessManagement/BranchSystemLandscapeSet('<BranchId>')/$value
The method provides system landscape defined for the branch.
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 |
| 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
/ProcessManagement/BranchContentSet(BranchId='BranchId',
ScopeId='ScopeId',SiteId='SiteId',SystemRole='SystemRole')/$value
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.
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') |
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.
/ProcessManagement/BranchContentImporterSet(BranchId='BranchId',
ChangeDocumentId='ChangeDocumentId')/$value
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.
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
/ProcessManagement/DocumentSet(BranchId='BranchId',DocumentId ='DocumentId')?$format=json
The method provides document properties (type, title).
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
/ProcessManagement/DocumentSet(BranchId='BranchId',DocumentId ='DocumentId')/$value
The method provides a content of the requested document.
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.
/ProcessManagement/DocumentContentImporterSet(BranchId='BranchId',
DocumentId='DocumentId',ChangeDocumentId='ChangeDocumentId')/$value
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.
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.
/ProcessManagement/CreateDocument?BranchId='BranchId'&DoctypeName='DoctypeName'&DocTitle='DocTitle'
&ChangeDocumentId='ChangeDocumentId'&DocumentURL=''&Language='E'
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.
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 |
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
Links
Note | Description |
---|---|
2715447 | Filter options in Process Management API |