PI Development Process and Best Practices
© 2016 IBM Corpora Corporation tion
Globally Integrated Enterprise
IBM PI Development Process s i s y l a n A n g i s e D p o l e v e D
t s e T
Rework
Development Effort Accepted Interactive HighLevel Interface Estimation and Scenario Design Delivery Schedule
Rework
Accepted
FS Review
Accepted
TS/Design Review (On Site)
2
|
Interface Requirement Inventory
Rework
TS/Design Review (TAC)
Design, Define Maps and Technical Specification Development Rework
Code Development (ABAP & PI)
Integration Test
Code Review (TAC)
Accepted
Perform Unit test Cases
Release to QA
Review and Approve Development
Review All Deliverables
Accepted
Functional / Technical Acceptance Test Rework
Accepted
n i a t n i a M
Functional Specification Development
Release to Production
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
PI Design Templates and Standards Specification Document Template
Functional Specification Index
Complexity Determination Form
Complex Transformation Template
Communication Log Template
Download Link : 3
|
Template to capture requirement details o f interface including field mapping, transformation logic, detailed technical design, specification for non-SAP/legacy system. Captures process flow, unit test cases …etc
Checklist to be used prior to start of a PI interface estimation & development
Evaluates completeness completeness of a FS and provides development readiness check
Estimates development development effort effort required for PI - 7.0, 7.1x, 7.1x, & 7.3x development development Estimates each granular piece of development required to deliver a PI interface Provides ABAP development/configuration development/configuration effort for integration with SAP systems
Captures complex mapping requirement requirement , transformation logic, constants for PI value mapping tables. This is a supplement to interface specification document.
Captures the GAPs, development issues and resolutions. Log is updated by PI developer, developer, validated by SME , sent to process team to close the Gaps uncovered in the requirement. requirement.
https://w3.tap.ibm.com/w3ki2/display/ABAPT https://w3.tap.ibm.com/w3ki2 /display/ABAPTAC/3+-+PI+T AC/3+-+PI+Templates+and+Stand emplates+and+Standards ards - IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
PI Design Templates and Standards Development Standards
Provides guidelines and approach for PI interface Development
Contains recommended programming standards standards for development in PI & ABAP
Naming Standards
Ensures consistent naming procedure and standards across PI development
Covers standards to adhere for custom objects at SLD, design & configuration
Design Review Checklist
Captures findings and provides s uggestions for improvement to technical design
Used by SME to verify and ensure best of possible designs is approached
Code Review Checklist
Captures findings and provides s uggestions for coding improvement
Verifies Verifies correct programming standards, guidelines followed and fine tuned
Object Delivery Checklist
Download Link : 4
|
Ensures exit Criteria of the deliverable have been met, standards and guidelines are adhered across all development life cycle.
https://w3.tap.ibm.com/w3ki2/display/ABAPT https://w3.tap.ibm.com/w3ki2 /display/ABAPTAC/3+-+PI+T AC/3+-+PI+Templates+and+Stand emplates+and+Standards ards - IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Development Process
Analysis
Design
Develop
Test
Maintain
After requirements gathering, Functional consultant provides the functional specifications to the development lead.
Activities
The Development Lead
Based on the FSI (Functional Specification Index), reviews the FS and approve or reject it
On rejection, discuss the review points with the functional owner for revision
On approval, Estimates the amount of efforts involved in development phase using Estimation Model
Assigns the functional specification to one or more developers for analysis and design.
PMT to Adhere
5
Functional Specification Index
Estimation Tool
|
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Development Process
Analysis
Develop
Design
Test
Maintain
Activities
The Developer
Reviews the functional requirements requirements
Proposes a high level technical solution
Documents the above findings in the Specification Document using Interface Specification Template
Refers Refers the Naming standards while furnishing details in the Specification Document above.
The Development Lead
Performs design review to ensure consistency of design and technique using Design Review Template Template
Sends the Specification for approval to the onshore team (if present)
If the design i s not approved, coordinates with the developer to implement recommended changes
PMT to Adhere
6
Interface Specification Template
Naming standards
|
Design Review Template
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Development Process
Analysis
Design
Develop
Test
Maintain
Activities
The Developer
After approval of the Design- refers the the Development standards document to proceed for development. development.
Proceed with detailed design, development, unit testing until the object is reasonably complete
Update Technical Technical specification/documentation if necessary
Update the Delivery checklist and alls documentation related to the deliverable for the Lead/SME for review
The Development Lead
Performs development review to minimize downstream defects and ensure standards compliance
Recommends changes and update the Development tracker with development review in process
Reviews all the deliverables and release for Functional or Technical Acceptance test
Marks the object as Approved by process team and ready for integration test.
PMT to Adhere
7
Development standards
Delivery checklist
|
Development review checklist
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Development Process
Analysis
Design
Develop
Test
Maintain
Activities
The Developer
Creates transports for the development / configuration objects with proper naming convention to the QA
Supports functional resources during integration testing
Records defect information (using Defect Tracking Tracking tools)
Iterate through the development process from step necessary
Finalize object documentation (including transport history)
The Functional Consultant
8
Decides the test plan of interfaces (test scripts) in tandem with the development/integration lead.
Conducts integration and acceptance testing, records defects in a defect tracking tool
Provides sign-off when satisfied that development object(s) meet requirements
|
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Development Process
Analysis
Design
Develop
Test
Maintain
Activities
The Development Lead
Approves the object(s) for transport
The Basis Team member
9
Moves requested objects to Production
|
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Bes estt Prac acti tice cess Straight Ahead
10
|
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Developm Deve lopment ent Best Best Practi Practices ces – Mapp Mapping ing / Desi Design gn 1
2
3
4
5
6
7
11
|
For communicating with SAP systems, use standard IDOCs where available
Use function library in ESR to group UDFs. T he function library can be used across SWC by defining SWC dependency.
Graphical mapping is preferred mapping option. Evaluate ABAP , XSLT or Java mapping in case graphical mapping with UDFs is not able to meet the requirement.
Use folders in ID to organize data
Make use of parameterized parameterized mappings in case certain field values are likely to to change , do not hardcode in message mapping.
Always include a copy of source code (Java files in case of java mapping or sda files for custom adapter modules) in ESR along with interface objects
It is suggested to use Fault message in service interfaces to capture errors / exception. Especially with ABAP proxy
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Devel De velopm opment ent Best Best Pract Practice icess – BPM 1
2
12
Always evaluate/check alternates to ccBPM , with newer PI versions there are many workarounds available for scenarios that traditionally required ccBPM.
PI single stack (Java only) does not support ccBPM , instead Netweaver Netweaver BPM is available and needs to be used for designing processes.
3
Design ccBPM with correct correct exception exception handling and deadline (time out)
4
Keep mapping and receiver determination determination outside ccBPM where possible for better performance. performance.
5
Use local correlation where possible and ensure uniqueness of correlation.
|
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Developm Deve lopment ent Best Pract Practices ices – Writ Writing ing UDF UDFss 1
Give proper names to UDF and variables in UDF that describe their purpose / functionality
2
Include comments to explain UDF logic
3
4
5
6
7
13
|
Use value , context and queue option for UDF correctly (Value (Value – for single single values values , Context Context – all values values in a single single context context , queue – values values across across multiple multiple contex contexts) ts)
While using loops in UDF for a performance demanding interface, try avoiding nested loops.
For large string append operations inside a loop, make use of StringBuffer Class instead of String Class
For loops running for large number of iterations try commenting commenting debug traces , to avoid increase the trace size especially in the production environment. environment.
Use continue and break statements where possible, which will boost the performance by avoiding execution of unnecessary code. - IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Developm Deve lopment ent Best Practice Practicess – Writ Writing ing UDFs: UDFs: Exception Exception Handlin Handling g 1
Avoid empty catch blocks , as they will suppress the exception without being raised and captured.
2
Try to capture the stack trace trace as its extremely important important in finding the root cause of the exception.
3
4
14
|
Re-throw any exception exception caught in the catch block , so that it can be captured by PI mapping runtime and logged in the PI message trace.
When performing I/O operations in UDF, UDF, make sure the connections are closed/released in the finally block. To avoid blocking resources.
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Developm Deve lopment ent Best Pract Practices ices – Adapt Adapters ers General 1
Use hostnames instead of IPs in communication communication channels
2
Ensure non-expiring passwords for communication channels
3
Do not key in your own user id and password for communication channel
4
Configure availability availability time planning for communication channels , if interfaces interfaces need to be run only on specific days or at specific intervals
SOAP Adapter 1
2
15
|
For projects with large number of web service scenarios (Service oriented implementation) use service registry for better governance.
Design synchronous scenarios with care, check for optimized mapping design to avoid time out and performance issues at runtime.
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Developm Deve lopment ent Best Pract Practices ices – Adapt Adapters ers File Adapter 1
2
3
To read large binary data using file adapter, use file chunk mode (PI 7.3 onwards)
To read same file structure from multiple directories , use additional selection for source file option to list multiple directories instead of creating multiple communication communication channels.
For sender file adapter , instead of using * , use file name pattern where file naming convention convention is known
JDBC Adapter
16
1
Use Message size limited when polling a DB with huge amount of data. (PI 7.3 onwards)
2
When reading data from a table that is being constantly updated set isolation level to serialization
3
Update staging tables rather than direct updates to live tables for DB scenarios.
|
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Developm Deve lopment ent Best Pract Practices ices – Adapt Adapters ers JMS Adapter 1
Check “create “create connection on demand” for JMS receiver to ensure connection does not always remain active
2
Achieve transactional behavior behavior for JMS sender by checking transactional JMS session.
3
Use JMS message selector to read only specific messages from JMS queue. This is useful if a common queue includes messages for multiple interfaces.
IDOC Adapter 1
17
Do not hardcode IDOC sender and receiver values in PI mapping. Instead disable control record in mapping and use ID , header mapping feature to change sender / receiver values
2
From PI 7.3 onwards, use IDOC Java adapter to process IDOC messages on AAE
3
For IDOC sender, sender, use IDOC packaging to bundle multiple IDOC s together
|
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Developm Deve lopment ent Best Best Practices Practices – Stand Standard ard Adapter Adapter Modules Modules SAP PI includes a number of standard adapter modules that can be added to communication communication channels to provide additional functionality
1
2
3
18
|
Achieve Sync- Async functionality by using Request Response Response One bean in communication channel.
From PI 7.3 onwards , use SAP standard PGP Encryption module is case of requirement for encrypting and signing messages.
For zip functionality requirement , standard payload zip bean is available.
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Developm Deve lopment ent Best Pract Practices ices – Runti Runtime me 1
2
Use message packaging/IDOC packaging packaging for optimized message message processing
Design scenarios using Integrated Integrated Configuration for faster message processing. (Note : Adapters and development on ABAP stack and ccBPM not supported)
3
Use payload message search available PI 7.1 onwards to search for messages based on specific payload values
4
Configure alerts to notify team in case of errors in interfaces
5
6
19
|
While monitoring PI systems, Integration Engine (SXMB_MONI, SMQ1, SMQ2,SM58), Adapter Engine (RWB Message Monitor ,Communication Channel Monitor) needs to be monitored.
Actively monitor for the message which are stuck TBDL status for a long time than its usually takes and report it to the Team Lead/ Basis Admin to investigate further as this could a probable performance issue.
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
Additional PO Guidelines
1
2
3
4
5
6
20
|
Use CBMA alerting to capture interface interface errors. For generic alerting i.e. capture all interface failures failures use DEFAUL DEFAULT_ALERTRULE T_ALERTRULE option in Monitoring or NWA NWA -> Message Alert Configuration Configuration . (Using this you do not need to assign alert rule to each ICO)
For migration from SAP XI / PI to SAP AEX / PO use migration tool (Option via. Configuration and Monitoring) to convert classical scenarios to ICO. Note: it needs set of java roles assigned to user in order to use the tool
With existing dual stack PI installations installations , avoid developments using PI ABAP stack and design scenarios using ICOs and other AEX features. This will simplify future migration as well as improve performance for the interfaces With AEX / PO , evaluate options of value mapping (smaller data sets) sets) or Java tables in case cross reference reference values are required. In general it is recommended to avoid maintaining large cross reference reference tables in PI as far as possible and maintain it in application systems. For technical process design , first evaluate other design workarounds .If not possible then only go for NW BPM as NW BPM adds to interface performance
Enable message blacklisting via. NWA NWA to prevent problematic messages messages eg: large messages causing server overload / failure
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
ES/Standard Content Guidelines 1
2
3
4
5
21
|
Enhance ES services or any SAP standard structure by using data type enhancement. Do not create copy and change existing structure
Ensure PI standard content matches the corresponding SAP system version. Also the SAP backend system should have the required content content installed eg: TM content for PI PI is same version as SAP SAP TM system + component installed in the landscape
Always use the operations in Enterprise service, which are in released status. Avoid using the operations in status Deprecated or Revoked
It is recommended to wrap remote function calls (RFCs) or BAPI programming programming interfaces as web services where available over creating new structures and services
With PO 7.5 , cloud integration content content for HCI can be used in PO. Check for HCI content availability especially for cloud integrations as they may be more content available.
- IBM Confid Confident ential ial -
© 2016 IBM Corporation Corporation
Globally Integrated Enterprise
22
|
Confidential 22fident - IBM Con Confid ential ial -
© 2016 IBM Corporation Corporation