Configuration Details
Overview
This extension enables REST-based integration between SmarTeam and SAP S/4HANA through the TIF Cloud platform.
SmarTeam interacts with TIF by invoking REST endpoints. Each request triggers a configured TIF job, which:
-
Receives the source data from the request payload
-
Processes, maps, and enriches the data
-
Creates the SAP S/4HANA payload required for the target operation
-
Sends the generated SAP payload to SAP S/4HANA
All services are exposed via:
POST {tif-base-url}/integration/api/v1/newjob/smarteam/<rest-mapping>
Most endpoints expect the request body to be a single JSON object. Send Document supports either:
|
-
application/zipwith apayload.jsonfile and one document file inside the ZIP -
application/jsonfor URL-based document references
Fields marked with callouts (e.g., 1, 2, …) are mandatory unless specified otherwise.
|
REST Endpoints
Each endpoint represents a specific business operation and triggers a corresponding TIF job.
The following REST mappings are included:
Send Material
REST Mapping : /material
{
"Product": "<name>", (1)
"ProductDesc": "<description>", (2)
"MaterialRevisionLevel": "<revision level>",
"ProductType": "<Prodtype eg: FERT or ROH>",
"Plant": "<plant number>",
"NetWeight": "<weight>",
"WeightUnit": "<weight unit>",
"BaseUnit": "unit",
"ProductGroup": "Prdgroup eg: ZFORK",
"Price": "<price>"
}
| 1 | Mandatory field |
| 2 | Mandatory field |
Send Change Action
REST Mapping : /change-action
{
"ChangeNumber": "<Change-number>", (1)
"ChangeNumberDescription": "<Description>", (2)
"ReasonForChangeText": "<reason for change>",
"ChangeNumberValidFromDate": "<DD-MM-YYYY>"
}
| 1 | Mandatory field |
| 2 | Mandatory field |
Associate CA
REST Mapping : /associate-ca
{
"Material": "<Product Name>", (1)
"ChangeNumber": "<Change Action Name>" (2)
}
| 1 | Mandatory field |
| 2 | Mandatory field |
Send BOM
REST Mapping : /bom
NOTE: Optional fields can defaulted from extension settings as well. if EngineeringChangeDocForEdit is not added, processed without CA.
{
"Material": "<name>", (1)
"HeaderValidityStartDate": "<DD-MM-YYYY>", (2)
"EngineeringChangeDocForEdit":"<Change Action Name>", (3)
"BOMHeaderBaseUnit": "<unit>",
"BillOfMaterialVariant": "<rev_level>",
"Plant": "<plant>",
"to_BillOfMaterialItem": [{
"ValidityStartDate": "<DD-MM-YYYY>", (4)
"BillOfMaterialItemCategory": "<category eg: L>",
"BillOfMaterialItemNumber": "<line number>",
"BillOfMaterialItemUnit": "<unit>",
"BillOfMaterialItemQuantity": "<qty>",
"BillOfMaterialComponent": "<material>" (5)
},
{
"ValidityStartDate": "<DD-MM-YYYY>", (4)
"BillOfMaterialItemCategory": "<category eg: L>",
"BillOfMaterialItemNumber": "<line number>",
"BillOfMaterialItemUnit": "<unit>",
"BillOfMaterialItemQuantity": "<qty>",
"BillOfMaterialComponent": "<material>" (5)
}]
}
( 1,2,4,5 ) Mandatory field
( 3 ) if EngineeringChangeDocForEdit is not added, processed without CA.
Send Document
REST Mapping : /document
This use case supports two attachment transfer modes for sending documents to SAP S/4HANA:
-
URL: Sends only a URL reference to the document, which SAP S/4HANA can access remotely
-
FILE: Uploads the actual document content to SAP S/4HANA as an attachment
When FILE mode is used, the connector can optionally convert Microsoft Office files (Word, Excel, PowerPoint) to PDF before sending them to SAP.
URL Mode
{
"documentName": "Material_Document.txt", (1)
"documentType": "text/plain",
"fileDownloadUrl": "https://host/documents/Material_Document.txt", (2)
"businessObjectTypeName": "BUS1001006",
"linkedSAPObjectKey": "409859", (3)
"sendAttachmentAs": "URL" (4)
}
| 1 | Mandatory field - the name of the document |
| 2 | Mandatory field - URL where SAP can download the document |
| 3 | Mandatory field - SAP object key to attach the document to |
| 4 | Mandatory field - specify URL |
FILE Mode
For direct file uploads, send a ZIP archive containing:
-
payload.json- JSON metadata file with document configuration -
The document file to attach (e.g.,
Material_Document.txt)
ZIP File Structure
The ZIP archive must contain exactly two files:
-
payload.json- Contains the metadata and configuration -
One document file (any supported format)
Example ZIP contents:
payload.json
Material_Document.pdf
payload.json Example
{
"documentName": "Material_Document.pdf", (1)
"documentType": "application/pdf",
"businessObjectTypeName": "BUS1001006",
"linkedSAPObjectKey": "409859", (2)
"sendAttachmentAs": "FILE", (3)
"convertToPdf": false
}
| 1 | Mandatory field - the name of the document file |
| 2 | Mandatory field - SAP object key (e.g., material number) to attach the document to |
| 3 | Mandatory field - specify FILE |
Configuration fields like businessObjectTypeName, convertToPdf, and sendAttachmentAs can be provided in the request body or defaulted from extension settings.
|
Supported File Types and Conversion
-
Direct Upload: All file types supported by SAP S/4HANA attachment service
-
PDF Conversion: Automatically converts
.doc,.docx,.xls,.xlsx,.ppt,.pptxto PDF whenconvertToPdf: true
Error Handling
Common error scenarios:
-
Missing mandatory fields in payload.json
-
Invalid ZIP structure (missing payload.json or multiple document files)
-
Unsupported file type for conversion
-
Invalid SAP object key or business object type
-
Network issues accessing URL in URL mode
Check TIF Cloud logs for detailed error messages.
Send Functional Location Structure
REST Mapping : /floc-structure
Optional fields such as MaintenancePlant and GrossWeight can be supplied in the request body or defaulted from extension settings.
|
This use case accepts a hierarchical JSON structure. The hierarchy is defined only by the nested child arrays in the request body.
For each node, TIF generates and sends a Functional Location payload to SAP S/4HANA.
If a node contains to_MaintBillOfMaterialItem, TIF also sends the corresponding Functional Location material assignment payload for that node.
The incoming FunctionalLocation value may be longer than the SAP target segment length.
TIF truncates each hierarchy segment using the same level-based logic as the SAP S/4HANA connector:
-
level 1: last 4 characters
-
level 2: last 3 characters
-
level 3: last 3 characters
-
level 4: last 5 characters
-
level 5: last 4 characters
For example, the generated hierarchy may look like:
-
level 1 →
1010 -
level 2 →
1010-378 -
level 3 →
1010-378-481 -
level 4 →
1010-378-481-02371 -
level 5 →
1010-378-481-02371-5689 -
sibling level 3 →
1010-378-568 -
sibling level 2 →
1010-525
{
"FunctionalLocation": "1010", (1)
"FunctionalLocationName": "Engine Assembly", (2)
"FuncnlLocLongText": "Complete engine assembly", (3)
"MaintenancePlant": "1010",
"GrossWeight": "500.000",
"child": [
{
"FunctionalLocation": "200378", (1)
"FunctionalLocationName": "Cylinder Head Assembly", (2)
"FuncnlLocLongText": "Assembly containing valves and camshaft", <3>,
"GrossWeight": "120.000",
"to_MaintBillOfMaterialItem": [
{
"ValidityStartDate": "20-05-2026", (4)
"BillOfMaterialComponent": "142065", (5)
"BillOfMaterialItemNumber": "0010"
},
{
"ValidityStartDate": "20-05-2026", (4)
"BillOfMaterialComponent": "142064", (5)
"BillOfMaterialItemNumber": "0020"
}
],
"child": [
{
"FunctionalLocation": "300481", (1)
"FunctionalLocationName": "Cylinder Head Gasket", (2)
"FuncnlLocLongText": "Sealing bw cylinder head and engine block", <3>,
"child": [
{
"FunctionalLocation": "402371", (1)
"FunctionalLocationName": "O-Ring Sealing System", (2)
"FuncnlLocLongText": "O-rings for sealing oil", <3>,
"child": [
{
"FunctionalLocation": "505689", (1)
"FunctionalLocationName": "O-Ring Support Components", (2)
"FuncnlLocLongText": "Support partsproper positioning of O-rings", <3>,
"child": [
{
"FunctionalLocation": "605645", (1)
"FunctionalLocationName": "Fasteners and Retainers", (2)
"FuncnlLocLongText": "Bolts, clips, and retainers" (3)
}
]
}
]
}
]
},
{
"FunctionalLocation": "300568", (1)
"FunctionalLocationName": "Piston Assembly", (2)
"FuncnlLocLongText": "Piston, piston rings, and connecting rod", (3)
}
]
},
{
"FunctionalLocation": "200525", (1)
"FunctionalLocationName": "Engine Cylinder Block", (2)
"FuncnlLocLongText": "Main engine block housing cylinder", (3)
}
]
}
( 1,2,3 ) Mandatory field
( 3, 5 ) Mandatory field only if material must be connected.
Send Functional Location
REST Mapping : /insert-floc
This use case sends one Functional Location item at a time.
You can send either a short identifier for a single level or a full hierarchical path such as
1010-378-481-02371-4567.
If a full path is provided, TIF preserves the hierarchy in the generated SAP Functional Location identifier.
Each path segment is truncated using the same level-based truncation logic described in Send Functional
Location Structure.
If to_MaintBillOfMaterialItem is present, TIF also sends the Functional Location material assignment
payload for the same node.
{
"FunctionalLocation": "1010-378-481-02371-4567", (1)
"FunctionalLocationName": "Other Accessories", (2)
"FuncnlLocLongText": "Accessory parts for engine Sub Assy", (3)
"MaintenancePlant": "1010",
"GrossWeight": "0.000",
"to_MaintBillOfMaterialItem": [
{
"ValidityStartDate": "20-05-2026", (4)
"BillOfMaterialComponent": "142065", (5)
"BillOfMaterialItemNumber": "0010"
}
]
}
( 1,2,3 ) Mandatory field
( 3, 5 ) Mandatory field only if material must be connected.