Purpose

The guiding principle for programming standards and guidelines at Syensqo is to use what is generally accepted by the industry as “best-practice”, rather than defining a bespoke set of rules. By adopting this approach, it is more likely that developers engaged by Syensqo are already familiar with the “best-practice” approach and can work effectively in the Syensqo environment immediately.

This document’s purpose is to provide developers with the standards and guidance required to develop in Syensqo’s landscape.


Assumptions

All tools required to develop best-practice based are available.

Since SAP development tools and approaches are evolving so does this document.

The SAP Development Approach has been understood.



SAP Cloud Integration/SCPI/HCI

Design Principles and Modularization

Design integration flows with simplicity, modularity, and maintainability in mind. Key principles include:

By adhering to these design principles, you enhance the scalability and maintainability of integrations. The goal is to build flows that are easy to understand, modify, and extend, following solid software design practices adapted to integration scenarios.


Mapping and Transformation

Integrations often require transforming data between formats (XML, JSON, CSV, etc.) or structures. Here are best practices for message mappings and transformations:

By following these guidelines, you ensure that data mappings are efficient, transparent, and easy to maintain. The key is to use SCPI's rich palette of transformation tools to their strengths and keep custom code to a minimum.


Tools (pending figaf)

automated testing

itelliJ integrated with SCPI/eclipse integration

inline iflow editor


Error handling/Alerting (FEH ? AIF ?)

Pending Business requirements/NFR's, standard alerting should be in place


MPL Attachements  are bad - DO NOT LOG ENTIRE PAYLOADS.

Async 

Retry based on business requirements and data/message criticality

IDOC post ALEAUDIT with error messages

Catch exceptions for alerting (if not posting  error to another application system).

Sync

All return appropriate errors to calling system - be as informative as possible

Security

Authentication (endpoints)

Certificates > oAuth > Basic

Data at Rest

Integration should NOT maintain data at rest

Credentials Storage

Stored in secure store

Web based tools and LLMS

DO NOT ! including JSON/XML formatter of data, LLM based coding agents (is there a co-pilot sanctioned by Syensqo ?).

AI tools need to be used as per current IT policy - https://thehub.syensqo.com/en/syensqoai/introducing-syensqos-ai-usage-policy-key-milestone-our-ai-journey?check_logged_in=1







Documentation

Inline

ALWAYS document Iflow sender and receivers


ALWAYS Iflow Description


ALWAYS give descriptive name to flow steps, including sender and receiver default system and internal integration processes (do not leave as default)- 

example

should be

Confluence

As build with reference to MAPPING/FUNC SPEC/TECH OBJECT in SCPI


Logging

MUST use logging -     messageLog.addCustomHeaderProperty("LABEL", "INFO like IDOC_NUM/MATNR/KUNNR");


Naming Standards

Iflow

Externalised Variables


General Integration Principles




API Management

Policy Design/Minimum security standard

When Authentication is available -

oAuth + api-key


When oAuth or basic auth isnt available -  

ipwhitelist + api-key