Anda di halaman 1dari 22

PI Development Process and Best Practices

2016 IBM Corporation


Globally Integrated Enterprise

IBM PI Development Process

Rework
Analysis

Development Effort Accepted Interactive High- Accepted


Functional Interface
Estimation and Level Interface FS Specification Requirement
Delivery Schedule Scenario Design Review Development Inventory

Rework
Rework
Design

Design, Define TS/Design Accepted TS/Design


Maps and Technical Review Review
Specification (TAC) (On Site)
Development

Rework
Develop

Code Accepted Perform Unit Review All


Code Development Review
(ABAP & PI) test Cases Deliverables
(TAC)

Accepted
Functional /
Integration Test Release to QA Technical
Test

Acceptance Test

Rework
Accepted
Maintain

Review and Release to


Approve Production
Development

2 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

PI Design Templates and Standards


Specification Template to capture requirement details of interface including field mapping,
Document transformation logic, detailed technical design, specification for non-SAP/legacy
Template system. Captures process flow, unit test cases etc

Functional Checklist to be used prior to start of a PI interface estimation & development


Specification
Index Evaluates completeness of a FS and provides development readiness check

Complexity Estimates development effort required for PI - 7.0, 7.1x, & 7.3x development
Determination Estimates each granular piece of development required to deliver a PI interface
Form Provides ABAP development/configuration effort for integration with SAP systems

Complex
Transformation Captures complex mapping requirement , transformation logic, constants for PI
Template value mapping tables. This is a supplement to interface specification document.

Captures the GAPs, development issues and resolutions. Log is updated by PI


Communication
Log Template developer, validated by SME , sent to process team to close the Gaps uncovered in
the requirement.

Download Link : https://w3.tap.ibm.com/w3ki2/display/ABAPTAC/3+-+PI+Templates+and+Standards

3 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

PI Design Templates and Standards

Development Provides guidelines and approach for PI interface Development


Standards Contains recommended programming standards for development in PI & ABAP

Naming Ensures consistent naming procedure and standards across PI development


Standards Covers standards to adhere for custom objects at SLD, design & configuration

Design Review Captures findings and provides suggestions for improvement to technical design
Checklist Used by SME to verify and ensure best of possible designs is approached

Code Review Captures findings and provides suggestions for coding improvement
Checklist Verifies correct programming standards, guidelines followed and fine tuned

Object Delivery Ensures exit Criteria of the deliverable have been met, standards and guidelines are
Checklist adhered across all development life cycle.

Download Link : https://w3.tap.ibm.com/w3ki2/display/ABAPTAC/3+-+PI+Templates+and+Standards

4 | - IBM Confidential - 2016 IBM 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

Functional Specification Index


Estimation Tool

5 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development
Process Analysis Design Develop Test Maintain

Activities

The Developer
Reviews the functional requirements
Proposes a high level technical solution
Documents the above findings in the Specification Document using Interface Specification Template
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
Sends the Specification for approval to the onshore team (if present)
If the design is not approved, coordinates with the developer to implement recommended changes

PMT to Adhere

Interface Specification Template Design Review Template


Naming standards

6 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development
Process Analysis Design Develop Test Maintain

Activities

The Developer
After approval of the Design- refers the Development standards document to proceed for development.
Proceed with detailed design, development, unit testing until the object is reasonably complete
Update 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

Development standards Development review checklist


Delivery checklist

7 | - IBM Confidential - 2016 IBM 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 tools)
Iterate through the development process from step necessary
Finalize object documentation (including transport history)
The Functional Consultant
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

8 | - IBM Confidential - 2016 IBM 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
Moves requested objects to Production

9 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Best Practices
Straight Ahead

10 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development Best Practices Mapping / Design

1 For communicating with SAP systems, use standard IDOCs where available

Use function library in ESR to group UDFs. The function library can be used across SWC by defining SWC
2
dependency.

Graphical mapping is preferred mapping option. Evaluate ABAP , XSLT or Java mapping in case graphical
3
mapping with UDFs is not able to meet the requirement.

4 Use folders in ID to organize data

Make use of parameterized mappings in case certain field values are likely to change , do not hardcode in
5
message mapping.

Always include a copy of source code (Java files in case of java mapping or sda files for custom adapter
6
modules) in ESR along with interface objects

7
It is suggested to use Fault message in service interfaces to capture errors / exception. Especially with ABAP
proxy

11 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development Best Practices BPM


Always evaluate/check alternates to ccBPM , with newer PI versions there are many workarounds available for
1
scenarios that traditionally required ccBPM.

PI single stack (Java only) does not support ccBPM , instead Netweaver BPM is available and needs to be used
2
for designing processes.

3 Design ccBPM with correct exception handling and deadline (time out)

4 Keep mapping and receiver determination outside ccBPM where possible for better performance.

5 Use local correlation where possible and ensure uniqueness of correlation.

12 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development Best Practices Writing UDFs

1 Give proper names to UDF and variables in UDF that describe their purpose / functionality

2 Include comments to explain UDF logic

Use value , context and queue option for UDF correctly


3
(Value for single values , Context all values in a single context , queue values across multiple contexts)

4 While using loops in UDF for a performance demanding interface, try avoiding nested loops.

5 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 debug traces , to avoid increase the trace size
6
especially in the production environment.

Use continue and break statements where possible, which will boost the performance by avoiding execution
7
of unnecessary code.
13 | - IBM Confidential - 2016 IBM Corporation
Globally Integrated Enterprise

Development Best Practices Writing UDFs: Exception Handling

1 Avoid empty catch blocks , as they will suppress the exception without being raised and captured.

2 Try to capture the stack trace as its extremely important in finding the root cause of the exception.

Re-throw any exception caught in the catch block , so that it can be captured by PI mapping runtime and
3
logged in the PI message trace.

When performing I/O operations in UDF, make sure the connections are closed/released in the finally block.
4
To avoid blocking resources.

14 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development Best Practices Adapters


General

1 Use hostnames instead of IPs in communication channels

2 Ensure non-expiring passwords for communication channels

3 Do not key in your own user id and password for communication channel

Configure availability time planning for communication channels , if interfaces need to be run only on specific
4
days or at specific intervals

SOAP Adapter

For projects with large number of web service scenarios (Service oriented implementation) use service
1
registry for better governance.

Design synchronous scenarios with care, check for optimized mapping design to avoid time out and
2
performance issues at runtime.

15 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development Best Practices Adapters


File Adapter

1 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
2
multiple directories instead of creating multiple communication channels.

3 For sender file adapter , instead of using * , use file name pattern where file naming convention is known

JDBC Adapter

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.

16 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development Best Practices Adapters


JMS Adapter

1 Check create connection on demand for JMS receiver to ensure connection does not always remain active

2 Achieve transactional behavior for JMS sender by checking transactional JMS session.

Use JMS message selector to read only specific messages from JMS queue. This is useful if a common queue
3
includes messages for multiple interfaces.

IDOC Adapter

Do not hardcode IDOC sender and receiver values in PI mapping. Instead disable control record in mapping
1
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, use IDOC packaging to bundle multiple IDOC s together

17 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development Best Practices Standard Adapter Modules


SAP PI includes a number of standard adapter modules that can be added to communication channels to provide
additional functionality

1 Achieve Sync- Async functionality by using Request Response One bean in communication channel.

From PI 7.3 onwards , use SAP standard PGP Encryption module is case of requirement for encrypting and
2
signing messages.

3 For zip functionality requirement , standard payload zip bean is available.

18 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Development Best Practices Runtime

1 Use message packaging/IDOC packaging for optimized message processing

Design scenarios using Integrated Configuration for faster message processing. (Note : Adapters and
2
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

While monitoring PI systems, Integration Engine (SXMB_MONI, SMQ1, SMQ2,SM58), Adapter Engine (RWB
5
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
6
it to the Team Lead/ Basis Admin to investigate further as this could a probable performance issue.

19 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

Additional PO Guidelines
Use CBMA alerting to capture interface errors. For generic alerting i.e. capture all interface failures use
1 DEFAULT_ALERTRULE option in Monitoring or NWA -> Message Alert 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)
2
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 , avoid developments using PI ABAP stack and design scenarios using
3 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) or Java tables in case cross reference
4 values are required. In general it is recommended to avoid maintaining large cross 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
5
BPM as NW BPM adds to interface performance

Enable message blacklisting via. NWA to prevent problematic messages eg: large messages causing server
6
overload / failure

20 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

ES/Standard Content Guidelines


Enhance ES services or any SAP standard structure by using data type enhancement. Do not create copy and
1
change existing structure

Ensure PI standard content matches the corresponding SAP system version. Also the SAP backend system
2 should have the required content installed eg: TM content for PI is same version as 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
3
status Deprecated or Revoked

It is recommended to wrap remote function calls (RFCs) or BAPI programming interfaces as web services
4
where available over creating new structures and services

With PO 7.5 , cloud integration content for HCI can be used in PO. Check for HCI content availability especially
5
for cloud integrations as they may be more content available.

21 | - IBM Confidential - 2016 IBM Corporation


Globally Integrated Enterprise

22 | Confidential
- IBM Confidential
22 - 2016 IBM Corporation

Anda mungkin juga menyukai