Quantcast
Channel: Process Integration (PI) & SOA Middleware
Viewing all 741 articles
Browse latest View live

SAP PI Netweaver with your Additional Information: "Free web page" Information

$
0
0

Dear experts,

 

I share you the next interesting way to share important announcements for your PI Team, around the world just for who has access to the same Netweaver side:

 

Objective: if you need creating a web page with your logo, your company or personal information, whatever that you want to share in your SAP PI Netweaver side, SAP let you add your "Web page", with the next general steps:

 

1.- Open your PI, Netweaver side (trx code from stack abap: SXMB_IFR):

 

 

 

2.- As you can see below in your page, we have the next text, so please open your PI server and follow the path that your system indicate:

To add your content here create a file named

Docu.htm in the following directory:

G:\usr\sap\PID\SYS\global\xi\directory_server\extdocu

 

3.- While you go to your PI file path. You can create your first "Hello World" --> Docu.htm using html code (remember the correct name file and the type of your file):

 

 

 

<html>

  <head>

    <title>Hola Mundo en HTML</title>

  </head>

  <body>

    ¡Hello World!

  </body>

</html>

 

4.- Save all in one directory that you prefer or create a new folder just to save your new web pages:

 

 

 

5.- Then after you create your Docu.htm file in your computer, you can copy and paste the file in your PI server:

 

 

6.- Then refresh your SAP PI Netweaver (normally with F5 or other that you prefer), and you will see your first web page into your netweaver:



I hope you enjoyed it!!!...

 

Thanks..

 

Azael


Third-party Solutions for EDIFACT

$
0
0

Recently we got a requirement from our client to handle EDI messages using third party solutions available in the market. While doing R & D I found this information and thought of sharing. As per my knowledge it is not advisable to go for third-party EDI solutions because it has its own problems while implementing and monitoring etc.


I’m going to discuss some of the third-party EDI solutions available in the market and the common issues while using them in our landscape.We should get the professional license to use them in SAP NW PI. Some of the third-party vendors taking care of the deployment, maintenance and support if you have the license.


To handle B2B/EDI messages SAP is providing B2B Add-on which contains rich set of generic EDI adapters, we should have separate license to access these features. Some of the third-party tools which provide EDI solutions and support to SAP NW PI are listed below.


Vendor

Solutions

Remarks

AEDAPTIVe Solutions

EDI Adapter for SAP Net weaver

PI Adapters for EDIFACT,AS2 ,SFTP and PGP

Axway

ACTIS Automotive Package

PI adapters and content with focus on automotive industry including OFTP support

Corporate business solutions

cbs PI Industry Solution for EDIFACT

PI adapter and content covering AS2, EDIFACT and subsets

itelligence (de/en)

it.x-change

PI adapters and content covering AS2, SFTP, FTAM, X.400, EDIFACT and subsets

Resource Informatik

R-EDI Adapter

PI adapter module for generic EDI conversion including EDIFACT and subsets

 

Adaptive Solutions


AS2 Adapter for Netweaver


AEDAPTIVe’s AS2 Adapter for SAP NetWeaver® offers secure and reliable EDIINT AS2 capabilities to exchange EDI, XML or any text message format of choice via the Internet is supported without the need of additional software. The AEDAPTIVe AS2 Adapter for SAP NetWeaver® is certified and “Powered by NetWeaver”.


Features


  • Unlimited license!
  • Automatic document recognition. Using embedded correlation logic and recognition document can be easily tracked in a correlated matter.
  • Built-in AS2 support. No need for additional software or tools. Only a fixed Internet connection will be sufficient to reduce EDI networking costs.
  • Message Monitor for viewing native XML or EDI content.
  • Display EAN -numbers when available from message.
  • Included test scenarios for educational purposes. Safely play around with AS2 using guided procedures.


Support


  • HTTP(s).
  • AS2.
  • XML.
  • Flat Files.
  • 3DES encryption.
  • RC2 (40,64,128) encryption.
  • AES (128,192,256) encryption.
  • MD5 , SHA1 signing.

 

SFTP Adapter for Netweaver


The AEDAPTIVe SFTP Adapter client for SAP NetWeaver© was originately designed and written for a few industry leaders in the Retail and High Tech industry, to enable SAP Exchange Infrastructure to exchange files securely with other internal applications, as regular FTP did not meet the companies security policies. The adapter is able to push files to other SFTP applications or pull files using a listener mechanism. For authentication, the adapter supports three methods, which should cover basically any common security measure.


Like any other AEDAPTIVe solution, the SFTP Adapter is built on the SAP NetWeaver Adapter Framework. This ensures customers native integration with NetWeaver and existing monitoring tools such as SAP Solution Manager and the underlying CCMS. The adapter can be used in transparent conjunction with other adapters already available in SAP NetWeaver.


SFTP Adapter Features


Feature

Support

Remarks

SFTP version

Draft version 3

AEDAPTIVe SFTP supports draft version 3, which is the most commonly implemented

Supported data streams

SSH2 only

SFTP can be used over several data streams, notably SSH1 and SSH2. AEDAPTIVe SFTP only supports SSH2 which offers several security benefits over SSH1

Authentication Methods

PWD, Public Key and Host based

Supports Public Key authentication and Host Based authentication. The following SFTP servers have been tested with these authentication methods: OpenSSH and SSH Communications.

Proxy

HTTP, SOCKS4, and SOCKS5 proxy authentication

SFTP Sender and Receiver can access SFTP servers via a proxy server; authentication on the proxy server with user name and password is also supported

Archiving

Supported

Possibility to archive messages on the SFTP server or locally on the PI server

Setting file permissions on new files

Supported

The SFTP Receiver adapter can set the UNIX file permissions after writing the file to the SFTP server


SAP NW PI Features


Feature

Support

Remarks

SAP NetWeaver PI version support

SAP NetWeaver 2004 (XI 3.0), SP 12 or higherSAP NetWeaver 2004s (PI 7.0), SP 8 or higher. SAP NetWeaver 7.3

 

Adapter specific message attributes

Supported

SFTP Sender Adapter supports: File Name, Directory, File Type, Source File Size, Source File Timestamp, Source SFTP Host. SFTP Receiver Adapter supports: File Name, Directory.

Control via runtime workbench

Supported

The SFTP Sender and Receiver Adapter can be manipulated via SAP NetWeaver RTW just as any standard SAP Adapter

Type of Data Stream

Binary

SFTP draft version 3 is a binary only protocol. Inbound and outbound data can still be manipulated as text in SAP NetWeaver PI

Scheduler

Supported for SFTP sender adapter

In the SFTP Sender Adapter a scheduler is available that allows the configuration of the polling interval and polling times. With this polling mechanism it is possible to restrict polling to specific week days and/or times.

Variable Substitution

Supported

The SFTP Receiver Adapter support variable substitution options similar to those of the standard File Adapter

 

AEDAPTIVe’s EDI Adapter


The AEDAPTIVe EDI Adapter for SAP NetWeaver® is certified and “Powered by NetWeaver”. From an integration perspective native integration with the NetWeaver Adapter Framework (JCA compliant) is guaranteed. Creating the opportunity to use existing monitoring and management applications such as CCMS and SAP Solution Manager® out of the box.


Features


  • Competitive license structure. AEDAPTIVe’s EDI Adapter for SAP NetWeaver® comes with an unlimited per production seat license. Meaning no limitations to business partners, message volume or size or connected systems.
  • Cross-industry. The adapter is extended with industry specific adapter content when needed.
  • VAN Explorer. Extend your way of tracking messages in the event of failures. Use the VAN Explorer to see the content of the VAN-mailbox.
  • Automatic document recognition. Using embedded correlation logic and recognition document can be easily tracked in a correlated matter.
  • Configurable check for out-of-sequence message ID’s.
  • Batch mode configuration for outbound documents following a schedule per receiver communication channel.
  • Bundle multiple outbound documents following the same schedule in one EDI envelop.
  • Message Monitor for viewing native XML or EDI content.
  • Display EAN-numbers when available from message.
  • AS2 Adapter (optional adapter).
  • PGP Encryption / Decryption (optional module).
  • Included test scenarios for educational purposes. Safely play around with EDI using guided procedures.
  • Support UN/EDIFACT, EANCOM, TRADACOMS, ANSI X12.
  • Built-in X.400 support.

 

AXWay


Axway Automotive Supply Chain Ready-to-Run Package


The Axway Ready-to-Run package provides pre-configured standard scenarios, processes, and dashboards for all typical business processes in the automotive industry. The package includes typical workflows from order to payment, with connectivity (OFTP, FTP, etc.), ERP extension (e.g. SAP), any-to-any transformation, and mappings based on automotive standards.


Known Issues

  • Version compatibility:Some 3rd-party tools are compatible with SAP NW PI 7.3 and some of them are upto PI 7.1 only. If we are planning for SAP NW PI upgrade it will be a problem, because all your EDI interfaces are running on third-party EDI tools [You are dependent on third-part vendors] which may not have the higher SP NW PI version compatibility. In those cases we may need to move our EDI interfaces to Seeburger [it will be like a new implementation which needs more time and efforts] or wait until the compatible version release from third-party vendor. We will not face these kinds of issues if we use Seeburger B2B add-on, SAP will take care of the higher version compatibility.

 

  • Deployment:To use the third-party EDI features we should deploy the adapter and conversion module source files in SAP PI using NWDS or Eclipse and we should maintain the adapter URL to send and receive the EDI messages. Deploying is a big challenge for basis team.

 

  • Monitoring:Since it is not SAP based product we can’t monitor and set the alerts when the interface got failed. We should consistently monitor the system to find the issues.


Conclusion

Considering all these aspects it is better to go for Seeburger B2B add-on for SAP NW PI which contains rich set of B2B EDI adapters, converter modules and B2B infrastructure services.

 

Note:

 

All the information gathered from the net, please share your thoughts on this and correct me if im wrong.

SAP PI App's in Google playstore

$
0
0

Hi everyone I recently came across the apps related SAP NW PI in Google Play-store. There are three apps available namely “SAP PI Question “  “SAP PI Interview Guide “ and “ SAP XI interview Question “. Among these “SAP PI Interview Guide” is chargeable and the other two apps can be installed for free.By using these apps we can access the PI repository on finger tips.


You can see the available apps in the below screenshot.

Capture4.JPG

1) SAP PI Question [App]


I installed and gone through the app “SAP PI Question” i find it very interesting and helpful, in this the topics are segregated into three parts namely


1) PI Miscellaneous

2) Mappings

3) Adapters


By using this app we can view the topics on finger tips. I’m going to discuss the topics covered in each category.


PI Miscellaneous


  • Basics of PI and its releases
  • SLD
  • XPI inspector
  • Adapter Interface Framework [AIF]
  • ASAP implementation methodology
  • T-codes
  • Pipeline steps
  • Alerts and its configuration
  • Monitoring
  • BPM basics
  • Types of Caches
  • Transports
  • AAE
  • SAP NW PI [7.0, 7.1 features
  • Java mappings
  • TREX


Mappings

  • Message mapping and its functions
  • Java mapping
  • XSLT mapping
  • Value mapping
  • Parameterized Msg mapping
  • UDF


Adapters

  • Different types of adapters and its use
  • Quality Of Service
  • Common Adapter Issues


once you installed the app it will take you the below screen, just click on blue button to access the topics

cap1.jpg

cap2.jpg

Sample screen shots of PI Miscellaneous

Cap3.jpg

once you click on the question it will show the brief information related to that topic.

 

cap4.jpg

 

2) SAP PI interview guide [App]


SAP PI interview guide is a comprehensive list of 200 possible interview questions along with detailed answers, screenshots and links to relevant SAP help pages.it is a collection of questions along with development scenarios that help to test an individual’s actual work experience. Each question is categorized.

According to their difficulty level : easy, medium and difficult we can also take the quiz.


Capture7.JPG

It is very useful for

  • preparing for an interview or certification
  • Helpful to refresh your knowledge in SAP PI


I hope it will helpful for you guys..

Open source solutions for EDIFACT

$
0
0

Open Source Solutions for EDIFACT


In my previous blog “http://scn.sap.com/community/pi-and-soa-middleware/blog/2014/09/05/third-party-solutions-for-edifactI discussed about the third party solutions available with professional support for EDIFACT. In this blog I’m going to discuss the open source solutions available for EDIFACT and its known issues. While working on EDI interfaces it’s a common question from client to look for alternatives instead of using SAP B2B Add-on. In my case my client who want to implement the interfaces without investing in SAP B2B Add-on. I’m writing this blog as a result of my R&D on open source solutions for EDIFACT.


The community-driven approach offers developers and companies full access to the source code and the possibility to develop new functionality within the open source community. The source code is released and owned by the open source community, so that no additional license costs occur. Optional professional services and support are offered by software and consulting companies.


Name

Project Scope

Remarks

Open PI Initiative

Comprehensive open source initiative for SAP Net Weaver PI

PI adapter and conversion module for EDIFACT derived from certified cbs PI Industry Solution for EDIFACT

 

Open source initiative for SAP NW PI [OPI2]


It is offering adapters, conversion modules for SAP NW PI. It includes the following solutions for EDIFACT


  • Open PI Adapter for AS2
  • Open PI Adapter for EDIFACT
  • Open PI Conversion Module for EDIFACT
  • Open PI EDIX conversion module


All these solutions have limited functionality and capabilities to deliver and support for EDI interfaces and data exchange. Now I’m going to discuss each one briefly.


Open PI Adapter for AS2


The Open PI Adapter for AS2 offers communication via Internet based on the AS2 protocol. The solution originates from the AS2 functionality already offered in the Open PI Adapter for EDIFACT.


Features:


  • Adapter solution bases on the XI adapter framework
  • Secure internet-based communication via AS2 over HTTP(S) (EDIINT)
  • Supports encryption (3DES, RC2) and digital signatures (SHA1, MD5)
  • Central configuration in PI Integration Directory and monitoring in the Runtime Workbench
  • Compatible with releases from XI 3.0 SP17, PI 7.0 SP08, PI 7.1X and PI 7.3X on
  • Certificate-based authentication for receiver communication channels.
  • Dynamic configuration of connection parameters for receiver communication channels


Open PI Adapter for EDIFACT [Deprecated]


The Open PI Adapter for EDIFACT offers EDI communication via Internet based on the AS2 protocol.


Features:


  • Adapter solution bases on the XI adapter framework
  • Bidirectional conversion between EDIFACT and EDIFACT XML
  • Simple extension for additional EDIFACT releases and subsets (EANCOM, ODETTE ...)
  • Secure internet-based communication via AS2 over HTTP(S) (EDIINT)
  • Supports encryption (3DES, RC2) and digital signatures (SHA1, MD5)
  • Central configuration in PI Integration Directory and monitoring in the Runtime Workbench
  • Compatible with releases from XI 3.0 SP17, PI 7.0 SP08 and PI 7.1X         


Open PI conversion module for EDIFACT


The Open PI Initiative has published the Open PI EDIFACT Adapter. The full-blown PI adapter offers EDIFACT conversion as well as transport via AS2 protocol including encryption and https support. The solution bases on the XI Adapter Framework and is fully integrated into the PI Integration Directory and PI Run time Workbench.


Features:


  • Bidirectional conversion between EDIFACT and EDIFACT XML
  • Simple extension for additional EDIFACT releases and subsets (EANCOM, ODETTE ...)
  • Seamless integration in existing SAP PI standard adapters (File, JDBC, JMS...)
  • Full integration in XI Adapter Framework
  • Compatible with releases from XI 3.0 SP17, PI 7.0 SP08, PI 7.1X and PI 7.3X on


Open PI EDIX Conversion Module


The latest subproject of the Open PI Initiative offers a bidirectional conversion for multiple EDI formats like EDIFACT, ANSI X12 and TRADACOM.


Features:


  • Bidirectional conversion between EDIFACT and EDIFACT XML
  • Additional support for ANSI X12 and TRADACOM
  • Based on EDI XML structures created via GEFEG.FX (allows easy migration to/from other EDI solutions for PI)
  • Simple extension for additional EDI releases, subsets and messages without redeployment of the adapter module
  • Seamless integration in existing SAP PI standard adapters (File, JDBC, JMS...), based on PI Adapter Framework API compatible with releases from PI 7.1X on


Difference between SAP B2B Add-on and OPI2


Now I’m going to differentiate between SAP B2B Add-on and OPI2, as we know that we cannot expect the tight integration capabilities using third-party open source tools. If you say that in a straight way to the client he will not understand, we should convince them by explaining the integration capabilities, future support and issues of using third-party open source solutions for EDI integration.we should have the valid points to support our statement, so here I’m going to list out the points which I gathered to convince my client.


 

S.noSAP PI B2B Add-onOPI2
1Provided by SAPProvided by Open PI2
2Separate license required for SAP B2B Add-onAvailable under dual license with professional support and free version.
3Continous support from SAP for any technical issues.If we are using free version we should take the commercial support in case of any technical issues while doing implementation and for problem support.
4Released on March 30th 2012Released in 2008
5Compatible with versions from SAP PI 7.1 EHP1 SP08, SAP PI 7.3 SP05 and SAP PI 7.3 EHP1 SP03 and PI 7.4Compatible with versions from SAP PI 7.0 SP08, SAP PI 7.1 and SAP PI 7.3
6Tight integration with SAP NetWeaver Process Integration/OrchestrationCompatible with SAP NW PI, no felxibility and 100% integration
7In future we can upgrade to higher SAP NW PI versions at any time, we don't need to worry about our EDI interfaces, SAP will take care of version compatibilities and SP releases.If you are looking for upgrade SAP NW PI in future we should wait till the compatible version release from OPI2.Because we can't move all the scenarios untill and unless OPI2 is supported in the higher version of SAP NW PI.
8AS2,OFTP,X400 adapters are availableOPI2 AS2 and OPI2 EDIFACT adapters are available
9SFTP, AS2, OFTP, X400 Communication Protocols SupportedAS2 protocol supported over HTTP(s)
10Different EDI Formats support (EDIFACT, ANSI X.12, VDA, TRADACOMS,ODETTE,EANCOM Custom Formats)Supported EDI formats are EDIFACT,EANCOM and ODETTE.
11Message Level security [S/MIME based encryption and signing, PGP module support and compression]Encryption and signing available but PGP module not supported.
12AS2 adapter supports AES128, AES 192, AES 256,3DES, RC2 encyption alogorithms and digital signatures [MD5, RIPEMD (160), SHA1, SHA (224), SHA (256), SHA (384), SHA (512)]AS2 adapter supports 3DES and RC2 encyption alogorithms and digital signatures [SHA1]
13AS2 adapter supports Archive Incoming/Outgoing messages on File System.NA
14Synch and Asynch acknowledgement support [Message Delivery Notification]Synch acknowledgement support [Message Delivery Notification]
15Adapter specific message attributes can be used in the communication channelsNA
16Quality of service [exactly once, exactly once in order and best effort]NA
17Mapping functions and templates are available which are compatible to EDI standardsNo mapping functions
18Mapping Templates for EDIFACT, ANSI X.12, TRADCOMS, VDA and ODETTENA
19Multi Message handling SupportNA
20Content based routing [Message Identification] and split up messages according to interfaces based on message type and partner.NA
21Ready to use ESR Content (XSDs, Mapping Templates, Mapping Functions) it will reduce the development time, if the standard content meet our requirement.NA
22Underlying NetWeaver/PI technology framework for monitoring, channel scheduling, message splitting, configurations, administration etc.Central configuration in PI Integration Directory and monitoring in the Runtime Workbench.
23Modules for special B2B use cases (Archiving, Automatic Counters etc.)NA
24EDI XML Converter for maintaining B2B Content and extensions.Open PI conversion module for EDIFACT and Open PI EDIX conversion modules are available to convert the incoming data to EDIFACT XML and outgoing EDIFACT XML data are converted into EDIFACT messages.
25EDI Separator to split in-coming mass messages into one message.NA
26Number Range Objects [NRO] module provides the option to insert automatically continuous counters into the outgoing message. These numbers can be created and are oriented towards the defined intervals in the respective objects.NA


By considering all the above points, SAP B2B Add-on is more advanced than OPI2, i didn't see much progress in terms of new features for the existing content. so it is better to go for SAP B2B Add-on instead of OPI2, because of its tight integrated features and support from SAP.


I hope it will helpful for you guys..

Referred and related content


Open PI Initiative (OPI2) - Process Integration - SCN Wiki


http://sourceforge.net/p/opi2/news/

 

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70d603dd-e206-2b10-fd83-a1e43d4b2023?overridelayout=t…

 

OPI2 - The Open PI Initiative


FCC parameter reference for MessageTransformBean module

$
0
0

Performing File Content Conversion (FCC) is a common requirement when developing interfaces that deal with flat file formats. This can be easily accomplished in the File/FTP adapter. However, for other adapter types, this needs to be achieved by adding the MessageTransformBean (MTB) module with conversion class com.sap.aii.af.sdk.xi.adapter.Conversion into the module chain.

 

However, MTB is not feature-equivalent with the FCC functionality in the File/FTP adapter. Certain parameters that are available for configuration in the File/FTP adapter are not equally supported in MTB. Furthermore, the SAP Help Library online documentation does not fully list down all the available configuration parameters. Therefore, more often than not when working with MTB, it becomes a trial and error exercise.

 

This blog is an attempt to come up with a list (as comprehensive as possible) of the configuration options available when using MTB. This has been accomplished by decompiling the corresponding JAR package for MTB. Whilst this is on a PI 7.11 system, hopefully most of it will still be applicable for higher releases. Hopefully this will be a helpful reference for those who plan to use MTB in the future.

 

 

1) Conversion type: SimplePlain2XML

 

Parameter NameDefault value if parameter not configuredAdditional remarks
xml.skipEmptyFilefalse
xml.encodingUTF-8
xml.conversionTypeSimplePlain2XML
xml.structureTitlerow
xml.fieldFixedLengthsEither fieldFixedLengths or fieldSeparator must be populated
xml.fieldFixedLengthTypechar
xml.fieldSeparatorEither fieldFixedLengths or fieldSeparator must be populated
xml.endSeparatornl
xml.beginSeparator
xml.enclosureSign
xml.enclosureSignEndxml.enclosureSign
xml.enclosureSignEscape
xml.enclosureSignEndEscapexml.enclosureSignEscape
xml.enclosureConversionYES
xml.checkForXMLPredefinedEntitiesYES
xml.checkForISOControls
xml.lastFieldsOptionalNODeprecated and should not be used with missingLastFields or additionalLastFields
xml.missingLastFieldsignore
xml.additionalLastFields
xml.keepIncompleteFieldsNO
xml.addBeginSeparatorAsField
xml.addEndSeparatorAsField
xml.fieldContentFormattingtrim
xml.processFieldNamesRequired parameter
xml.documentName
xml.documentNamespace
xml.documentNamespaceScoperoot
xml.fieldNamesRequired parameter if xml.processFieldNames = fromConfiguration

 

 

2) Conversion type: StructPlain2XML

<StructureName> is per the structure names defined in xml.recordsetStructure. For each structure name listed, configure the corresponding xml.<StructureName>.* parameters.

 

Parameter NameDefault value if parameter not configuredAdditional remarks
xml.skipEmptyFilefalse
xml.encodingUTF-8
xml.conversionTypeStructPlain2XML
xml.recordsetStructureRequired parameter
xml.recordsetStructureOrderasc
xml.allowEmptyRecordsetsYES
xml.recordsetNameRecordset
xml.recordsetNamespace
xml.recordsetNamespaceScoperoot
xml.recordsetBeginSeparator
xml.recordsetEndSeparator
xml.documentName
xml.documentNamespace
xml.documentNamespaceScoperoot
xml.recordsetsPerMessage*
xml.documentSkipFirstRows0
xml.keyFieldNameRequired parameter if there is a structure with * in xml.recordsetStructure
xml.keyFieldTypeRequired parameter if there is a structure with * in xml.recordsetStructure
xml.<StructureName>.fieldFixedLengthsEither fieldFixedLengths or fieldSeparator must be populated
xml.<StructureName>.fieldFixedLengthTypechar
xml.<StructureName>.fieldSeparatorEither fieldFixedLengths or fieldSeparator must be populated
xml.<StructureName>.endSeparatornl
xml.<StructureName>.beginSeparator
xml.<StructureName>.enclosureSign
xml.<StructureName>.enclosureSignEnd
xml.<StructureName>.enclosureSignEscape
xml.<StructureName>.enclosureSignEndEscape
xml.<StructureName>.enclosureConversionYES
xml.<StructureName>.checkForXMLPredefinedEntitiesYES
xml.<StructureName>.checkForISOControls
xml.<StructureName>.lastFieldsOptionalNODeprecated and should not be used with missingLastFields or additionalLastFields
xml.<StructureName>.missingLastFieldsignore

 

xml.<StructureName>.additionalLastFields
xml.<StructureName>.keepIncompleteFieldsNO
xml.<StructureName>.addBeginSeparatorAsField
xml.<StructureName>.addEndSeparatorAsField
xml.<StructureName>.fieldContentFormattingtrim
xml.<StructureName>.processFieldNamesfromConfiguration
xml.<StructureName>.keyFieldValueRequired parameter if there is a structure with * in xml.recordsetStructure
xml.<StructureName>.keyFieldInStructureadd
xml.<StructureName>.fieldNamesRequired parameter if xml.<StructureName>.processFieldNames = fromConfiguration

 

 

3) Conversion type: SimpleXML2Plain

 

Parameter NameDefault value if parameter not configuredAdditional remarks
xml.skipEmptyFilefalse
xml.encodingUTF-8
xml.conversionTypeSimpleXML2Plain
xml.fieldFixedLengthsEither fieldFixedLengths or fieldSeparator must be populated
xml.fieldFixedLengthTypechar
xml.fieldSeparatorEither fieldFixedLengths or fieldSeparator must be populated
xml.endSeparatornl
xml.beginSeparator
xml.checkForXMLPredefinedEntitiesYES
xml.checkForISOControls
xml.addHeaderLineRequired parameter
xml.headerLineRequired parameter if xml.addHeaderLine = 3 or 4
xml.absoluteRowWidth0
xml.fixedLengthTooShortHandlingError

 

 

4) Conversion type: StructXML2Plain

<StructureName> is per the structure names defined in xml.recordsetStructure. For each structure name listed, configure the corresponding xml.<StructureName>.* parameters.

 

Parameter NameDefault value if parameter not configuredAdditional remarks
xml.skipEmptyFilefalse
xml.encodingUTF-8
xml.conversionTypeStructXML2Plain
xml.recordsetStructureRequired parameter
xml.<StructureName>.fieldFixedLengthsEither fieldFixedLengths or fieldSeparator must be populated
xml.<StructureName>.fieldFixedLengthTypechar
xml.<StructureName>.fieldSeparatorEither fieldFixedLengths or fieldSeparator must be populated
xml.<StructureName>.endSeparatornl
xml.<StructureName>.beginSeparator
xml.<StructureName>.checkForXMLPredefinedEntitiesYES
xml.<StructureName>.checkForISOControls
xml.<StructureName>.absoluteRowWidth0
xml.<StructureName>.fixedLengthTooShortHandlingError

 

 

References:

For details about the functionality & values related to each parameter, refer to the corresponding parameter listed in the FCC section of the File/FTP adapter below:-

Converting Text Format in the Sender File/FTP Adapter to XML

 

Converting XML in the Receiver File/FTP Adapter to Text Format

HTML MultiPart Form upload using HTTP Plain adapter with Java mapping

$
0
0

In this blog, I would like to generate an HTML Form based request from SAP PI HTTP adapters. In the new java based HTTP adapter, SAP has made it easier to create form based request using extra features in the communication channel. For example in HTTP_AAE adapter, you can now specify that the HTTP request is a multi-part form request and you can also send attachments for a file upload.

 

HTTP_AAE.png

 

However in this blog, I will be solving this problem by manually creating Multipart request in JAVA Mapping. This way you can even use plain HTTP adapter if you are using lower versions of PI.

First thing we need to understand is how a multipart request actually looks like. You should visit this URL http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2 for official specification on multipart upload. In the section 13.4.2 you will find the specification for multipart request.

 

specification.JPG

 

I will explain how the PI HTTP request should look like. Basically If your HTML request(for web page testing) is like this:

html request.JPG

 

 

Then multipart request(body) which you should generate from PI should be like this:(This should also be the output of java mapping)

 

multipart request.JPG

 

Here boundary is very important. I have used a constant boundary value. This boundary value is specified in java mapping while generating such request and also the same boundary is specified in HTTP Receiver communication channel in the content type field.

CC.JPG

 

Now let’s look at the java mapping code which is used to generate such a request. The code, I have used is pretty simple.

 

package com.test.sap.pi.file;

 

 

import java.io.*;

 

 

@SuppressWarnings("deprecation")

public class CreateForm implements StreamTransformation {

 

     private String boundary;

     private static final String LINE_FEED = "\r\n";

     private HttpURLConnection httpConn;

     private String charset;

     private String body;

     private OutputStream outputStream;

     private PrintWriter writer;

 

 

     public void execute(InputStream arg0, OutputStream arg1)

  throws StreamTransformationException {

  // TODO Auto-generated method stub

 

         // creates a unique boundary based on time stamp

        // boundary = "===" + System.currentTimeMillis() + "===";

         boundary = "--ejjeeffe1";

         body = "Content-Type: multipart/form-data; boundary=";

         body = body + boundary + LINE_FEED + LINE_FEED;

//        body.concat(boundary);

         addFormField("event","Import File" );

         addFormField("Filename","TestFile.zip" );

  

         body = body + boundary;

  

         body = body + LINE_FEED + "Content-Disposition: form-data; name=\"" + "content" +

         "\"" + ";" + "filename=\"" + "TestFile.zip" + "\"" +

          LINE_FEED + "Content-Type: application/zip" + LINE_FEED +

          "Content-Transfer-Encoding: binary" + LINE_FEED + LINE_FEED;

 

         byte[] buffer = new byte[4096];

         byte[] message = body.getBytes();

     //    int bytesRead = -1;

         ByteArrayOutputStream outbody = new ByteArrayOutputStream();

   

         try {

  arg1.write(message);

  int len = -1;

  while ((len = arg0.read(buffer)) != -1) {

 

 

  arg1.write(buffer, 0, len);

  }

  } catch (IOException e) {

  e.printStackTrace();

  }

  

        String endchar = LINE_FEED + boundary;

 

  try {

  arg1.write(endchar.getBytes());

  } catch (Exception e) {

  e.printStackTrace();

  }

 

 

  }

 

 

  public void setParameter(Map arg0) {

  // TODO Auto-generated method stub

 

 

  }

 

 

    /**

     * Adds a form field to the request

     * @param name field name

     * @param value field value

     */

    public void addFormField(String name, String value) {

    body = body + boundary + LINE_FEED + "Content-Disposition: form-data; name=\"" + name + "\""

    + LINE_FEED + "Content-Type: text/plain" + LINE_FEED + LINE_FEED

    + value + LINE_FEED;

    }

}

 

The contents of the file in this case are directly supplied in the input message. In my test case, sender is an FTP which picks up ‘zip’ file from FTP. However we can also use support scenarios where file is supplied as an attachment (for example if the sender is SOAP etc.). In that case java mapping code will be slightly changed to read file binary data from attachment.

 

Hopefully this gives you an idea of how to create multipart form request. I would still recommend to use standard feature in HTTP_AAE adapter to create form upload where ever possible. This way, system will generate request for you. Use this method of java mapping only when standard feature is not possible.

 

This blog tries to explain in simple way, how a multipart HTML request looks like, how it can be easily generated from XI and provides java code to achieve a simple scenario.

 

Reference:  http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2

                    http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/08/12/http-test-tool-for-sap-pi-73

A brief history of SAP PI

$
0
0


Below is a brief description of the names and release dates of the different versions of SAP's middleware product. This also includes the Maintenance schedule and provides handy links where you can find more details about each of the releases including release dates of Support Package Stacks.

ReleaseRelease to Customer (General Release)End of MaintenanceMore Product Information

Exchange Infrastructure - XI 2.0

16.12.2002 (16.05.2003)31.12.2006General Information on PAM
Exchange Infrastructure - XI 3.031.03.2004 (01.01.2005)31.03.2010*General Information on PAM
Process Integration - PI 7.024.10.2005 (06.06.2006)31.12.2017General Information on PAM
Process Integration - PI 7.1014.12.2007 (25.07.2008)31.12.2020General Information on PAM
Process Integration - PI 7.11 (EHP1)20.03.2009 (31.07.2009)31.12.2020General Information on PAM
Process Integration - PI 7.30**29.11.2010 (30.05.2011)31.12.2020General Information on PAM
Process Orchestration 7.31 (EHP1)**21.11.2011 (16.05.2012)31.12.2020General Information on PAM
Process Orchestration 7.4**10.05.2013 (10.05.2013)31.12.2020General Information on PAM

 

*Extended Maintenance ended 31.03.2013
**Dual Stack and Single Stack (AEX) installation options available

So Long, and Thanks for All the Fish

$
0
0

It is said that enduring happiness is not in serving ones own needs but in serving others with compassion. It is in helping bring a positive change that is most rewarding. Take the example of those in the profession of healthcare. I believe that doctors have the best opportunity to experience what it is to be professionally content and rewarded. The tears of joy, of patients in distress who have received a remedy from their treacherous medical conditions - The Doctor becomes the Godhead. I cant fathom that in the profession that I am in. But well, not everyone is a doctor. The world does needs others such as me, say an engineer.

 

A fresh graduate who had somehow managed to make it through 4 years of Software Engineering, I had not heard SAP mentioned even once. On Day One of my first real job, being trained on ABAP and asking to write a report was like asking a baby to spell 'Czechoslovakia'. But during the early days of my career, I was lucky to have had some very supportive seniors who helped me traverse this new ocean that was SAP. Soon enough I found myself surrounded by discussion on Netweaver and how things were changing. Within a year, I got the opportunity to work on XI 3.0. It was a time where there were a handful of customers implementing SAP XI and consultants with this skill was rare. It was imperative that one needed a good amount of help in delivering on time. That is when I has stumbled upon SDN (SAP Developer Network - Yeah that was it was called before it became SCN). I found myself posting questions and waiting for answers. Since it was a new technology, the replies came in late. But most times, it was worth the wait. Soon I found myself answering questions. And then one day I started blogging!

 

Its 10 years (Member since Sep 30, 2004) since I first logged onto this wonderful platform that has taken me through one of the best professional journeys I have had. In 2009, I was awarded the Mentor status by the community and in that process for the last 5 years SAP has rewarded and taken care of the SAP Mentors. Kudos to some of the champions of this cause (Mark Finnern, Marilyn Pratt, Craig Cmehil - To name a few) and may I say that this amazing platform and its ever growing membership is a testimonial to what collaboration can achieve.

 

In life, we go through various roles, both personally and professionally. A lot has changed and will keep changing. Over the last couple of years, in the new career roles demanded out of me, I realized that I was finding it difficult to spend time on SCN. Even though 5 days at work was keeping me busy, I used to browse through the various content areas (Process Integration (PI) & SOA Middleware, SAP Gateway , SAP Process Orchestration, SAP for Mobile, B2B Integration with SAP Process Orchestration and SAP APIs and API Management being personal favorites) to keep me updated about what was happening in this brave new world. Old habits die hard! From being one of the most active members of this platform, I slowly became a casual browser.

 

One of the Mentor group emails from Mark Finnern got me thinking. It was about the Mentor Magic. I realized that I wasn't doing enough to keep that magic alive. So I had to do what I had to do. I put in a request to go Alumni.

 

So what does this mean? It means that while I am busy with the demands of my new career role, I will continue to be logged in to this community. Over the years I have seen so many new members, extremely resourceful and very innovative who have been putting up great content. It is my time to learn again. SAP themselves have brought in so much of technological innovation and there is a lot of reading I need to catch up on. The day your stop learning, you become obsolete.

 

sap_mentor_lemon[1].jpg

( I will miss the lemon though )

 

 

This is not a goodbye but a note of thanks for all these wonderful years on SDN/SCN. To every one who takes time out of their busy schedules to put out content, answer questions in forums, create collaborative documents - to those who are here, not for the reward but for the bliss of being helpful, you are a star!

 

 

PS: 'So Long, and Thanks for All the Fish' is the fourth book of the 'Hitchhiker's Guide to the Galaxy' trilogy written by Douglas Adams. Its title is the message left by the dolphins when they departed Planet Earth just before it was demolished to make way for a hyperspace bypass, as described in the book.


How to get a CSV file from Web page using ABAP Code in SAP PI

$
0
0

Summary:

 

The purpose of this document is to explain and provide a step-by-step walkthrough to implement Exchange rate files (CSV) Scenario using ABAP code in PI. Also this would give a clear picture how to write the ABAP code in PI.

 

Introduction: This document will gives clear idea about How to get a CSV file from Web page using ABAP Code in SAP PI. At sender side Customer bank team is updating Exchange rate file in their web page then PI will pick the data and send to ECC.

For this interface, there is no need of creating any sender adapter while there is a need of creation of receiver XI (Proxy) adapter..

 

Business Scenario: We need to retrieve daily exchange rates from the web page and upload them into
SAP ECC using Proxy communication

 

Fi.png

 

Pre-Requisites:

 

Basic knowledge of XI/PI, XML and ABAP etc…

Assumption      SLD configuration is with Technical System and Business System is done. Product and SWC is created in SLD.

  •     SWC is imported in ESR.
  •     Communication between webpage to ABAP Program and ABAP program to PI need to create.
  •   Create the RFC destination to connect to Web page:

Using Tr Code: SM58 to create the RFC Destination (BANK to PI)

              Provide the details below:

    •   Connection type: G
    • Target host: specify the bank host name
    • Path prefix: Specify the bank path prefix

fo1.png

  • Create the one more RFC Destination to connect to ABAP program to PI and specify the below details
    • Connection type: G
    • Target Host: SAP PI host
    • Service No  : SAP PI Service No
    • Path perfix : /sap/xi/adapter_plain?namespace=XXXXXXXXX&interface=XXXX&service=XXXX&qos=EO       

 

fo2.png

ABAP Code


REPORT ZTRIGGER_CNB_INTERFACE.

tables RFCDES.data w_rc like sy-subrc.data w_message type string.data w_client type ref to if_http_client.data w_subrc type sy-subrc.data w_wsubrc(10).data w_sytabix(4).data w_errortext type string.data w_timeout type i.data w_response type ref to cl_HTTP_RESPONSE.data w_xrdata type xstring.data w_pclient type ref to if_http_client.
PARAMETERS: p_dest  like rfcdes-rfcdest  obligatory default 'RFC Destination'
                               
matchcode object HTTPDESTINATION.PARAMETERS: p_ldest like rfcdes-rfcdest  obligatory default 'RFC Destination'
                               
matchcode object HTTPDESTINATION.
*at selection-screen on p_dest.
 
select single * from RFCDES where RFCDEST = p_dest
                               
and RFCTYPE = 'G'.
 
if sy-subrc <> 0.
   
message i001(am) with 'HTTP destination' p_dest 'is not correct!'.
 
endif.
at selection-screen on p_ldest.
 
select single * from RFCDES where RFCDEST = p_ldest
                               
and RFCTYPE = 'G'.
 
if sy-subrc <> 0.
    message i001(am) with 'HTTP destination' p_ldest 'is not correct!'.

 
endif.
*start-of-selection.
  w_timeout
= 300.
* If the HTTP connection to CNB website failes, try again => max 10 times
 
do 10 times.
   
write sy-index to w_sytabix.
   
concatenate 'GETTING DATA FROM CNB WEBSITE. Attempt:-' w_sytabix
   
into w_message.
   
write:/ w_message.
   
perform get_data_from_CNB.
   
IF w_rc = 0.
      w_message
= 'XML data from CNB web is fetched successfully'.
     
write:/ w_message.
     
exit.
   
else.
      w_message
= 'XML data from CNB web could not be fetched'.
     
write:/ w_message color col_negative.
     
exit.
   
ENDIF.
 
enddo.

   
write sy-index to w_sytabix.
   
concatenate 'POSTING DATA TO HTTP ADAPTER. Attempt:-' w_sytabix
   
into w_message.
   
write:/ w_message.
   
perform send_data_to_http.
   
IF w_rc = 0.
      w_message
= 'XML data is successfully sent to HTTP adapter'.
     
write:/ w_message.
     
exit.
   
else.
      w_message
= 'XML data could not be sent to HTTP adapter'.
     
write:/ w_message color col_negative.
     
exit.
   
ENDIF.
 
enddo.

form get_data_from_CNB.

 
clear w_rc.* open connection
 
call method cl_http_client=>create_by_destination
   
EXPORTING
      destination             
= p_dest
   
IMPORTING
     
client                  = w_client
   
EXCEPTIONS
      destination_not_found   
= 1
      internal_error         
= 2
      argument_not_found     
= 3
      destination_no_authority
= 4
      plugin_not_active       
= 5
     
others                  = 6.

 
if sy-subrc <> 0.
    w_rc
= sy-subrc.
   
write sy-subrc to w_wsubrc.
   
concatenate
   
'HTTP Connection with CNB website failed. Return code = ' w_wsubrc
     
into w_message separated by space.
   
write:/ w_message color col_negative.
   
exit.
 
else.
    w_message
= 'HTTP Connection with CNB website established'.
   
write:/ w_message.
 
endif.
* Send request - empty
 
call method w_client->send
   
EXPORTING
      timeout                   
= w_timeout
   
EXCEPTIONS
      http_communication_failure
= 1
      http_invalid_state       
= 2
      http_processing_failed   
= 3
     
others                    = 4.

 
if sy-subrc <> 0.
   
call method w_client->get_last_error
     
IMPORTING
       
code    = w_subrc
       
message = w_errortext.

   
write w_subrc to w_wsubrc.
   
concatenate
   
'Communication error while sending request. Return code = ' w_wsubrc
     
'message: ' w_errortext
     
into w_message separated by space.
   
write:/ w_message color col_negative.
    w_rc
= w_subrc.
   
exit.
 
else.
    w_message
= 'Communication with CNB website established'.
   
write:/ w_message.
 
endif.

 
call method w_client->receive
   
EXCEPTIONS
      http_communication_failure
= 1
      http_invalid_state       
= 2
      http_processing_failed   
= 3
     
others                    = 4.

 
if sy-subrc <> 0.
   
call method w_client->get_last_error
     
IMPORTING
       
code    = w_subrc
       
message = w_errortext.

   
write w_subrc to w_wsubrc.
   
concatenate
   
'Communication error while receiving response from CNB website.'
    ' Return code = ' w_wsubrc
      'message: '
w_errortext
     
into w_message separated by space.
   
write:/ w_message color col_negative.
    w_rc
= w_subrc.
   
exit.
 
else.
    w_message = 'Data from CNB website is fetched'.

   
write:/ w_message.
 
endif.
* access response
 
call method w_client->response->if_http_entity~get_data
    RECEIVING
     
DATA = w_xrdata.
* close connection
 
call method w_client->close
   
EXCEPTIONS
      http_invalid_state
= 1
     
others            = 2.

 
if w_xrdata is initial.
    w_rc
= 4.
    w_message
= 'Exchange rate data from CNB website could not be fetched'.
   
write:/ w_message color col_negative.
   
exit.
 
endif.
endform.                    "get_data_from_CNB
FORM send_data_to_http .

 
clear w_rc.
 
call method cl_http_client=>create_by_destination
   
EXPORTING
      destination             
= p_ldest
   
IMPORTING
     
client                  = w_pclient
   
EXCEPTIONS
      destination_not_found   
= 1
      internal_error         
= 2
      argument_not_found     
= 3
      destination_no_authority
= 4
      plugin_not_active       
= 5
     
others                  = 6.

 
IF SY-SUBRC <> 0.
    w_rc
= sy-subrc.
   
write sy-subrc to w_wsubrc.
   
concatenate
   
'HTTP Connection to post data to adapter failed. Return code = ' w_wsubrc
     
into w_message separated by space.
   
write:/ w_message color col_negative.
   
exit.
 
else.
    w_message
= 'Connection with HTTP adapter to post data established'.
   
write:/ w_message.
 
ENDIF.
* request
 
call method w_pclient->REQUEST->if_http_entity~set_data
   
EXPORTING
     
DATA = w_xrdata.
* send data
 
CALL METHOD w_pclient->SEND
   
EXPORTING
      TIMEOUT                   
= w_timeout
   
EXCEPTIONS
      HTTP_COMMUNICATION_FAILURE
= 1
      HTTP_INVALID_STATE       
= 2
      HTTP_PROCESSING_FAILED   
= 3
      HTTP_INVALID_TIMEOUT     
= 4
     
others                    = 5.

 
IF SY-SUBRC <> 0.
   
call method w_pclient->get_last_error
     
IMPORTING
       
code    = w_subrc
       
message = w_errortext.

    w_rc
= w_subrc.
   
write w_subrc to w_wsubrc.
   
concatenate
   
'Communication error while posting data to HTTP adapter. Return code = ' w_wsubrc
     
'message: ' w_errortext
     
into w_message separated by space.
   
write:/ w_message color col_negative.
   
exit.
 
else.

   
COMMIT WORK AND WAIT.

    w_message
= 'Data successfully posted to HTTP adapter'.
   
write:/ w_message.
 
ENDIF.
* close connection
 
call method w_pclient->close
   
EXCEPTIONS
      http_invalid_state
= 1
     
others            = 2.
ENDFORM.                    " send_data_to_http

 

Integration Repository (IR):

 

Sender DT: create the DT as per the CSV file

 

fo3.png

 

Create the MT and assign the DT type to message type

fo4.png

Create the SI and assign the MT type to Service interface

 

fo5.png

 

Create the Target DT, MT and SI

Note: If you need to convert from CSV to XML in the mapping than create the JAVA mapping.

 

Create the Mapping:

 

fo6.png

 

Create the OM

 

fo7.png

Save and active the IR

ID :

Go to ID part and create the Scenario name and create the Receiver Agreement, Receiver Determination and Interface Determination and receiver channel

Note: no need to create the sender CC ( communication channel and sender agreement ) data is comming directly in to SXMB_MONI inbound messages.

Receiver Agreement:Create this corresponding to Receiver Business service and inbound interface combination and specify communication channel.

 

Receiver Determination: Configure Receivers for corresponding Sender Service and Outbound Interface combination.

Interface Determination: Specify corresponding Inbound Interface and Interface Mapping for combination of Sender Service and Outbound Interface w.r.t specified Receiver in Receiver Determination.

Go to change list and activate all the ID objects. Integration Directory part is completed

Sender Axis adapter to create response message for sender.

$
0
0

Hello friends,


I was involved in recent scenario:

 

Sender system  : Hi SAP PO, I am sending order request message.

SAP PO: Yes I will receive it with soap sender axis adapter

Sender system: Listen, but I need below message in acknowledgement saying that “you received my order” in the same session opened
by me:

  <?xml version="1.0" encoding="UTF-8"?>

<cXML payloadID="xxxx-XXXX-xxx" xml:lang="en" timestamp="2002-03-12T18:39:09-08:00">

       <Response>

            <Status code="200" text="OK"/>

       </Response>

</cXML>

 

and also you have to send my order request message to SAP ECC system,ok?

 

SAP PO: Oh ok. In that case I have to create response (acknowledgement) message for you since SAP ECC – the receiver will not send me
any message back. SAP ECC has inbound asynchronous proxy. The creation of response message for you will be achieved by custom handler – a basic java
class and I will add it to sender axis communication channel.

Sender system: Looks good, all d best .

 

It is like:

 

  • Ariba is sending order request message to SAP PO via soap sender axis adapter with Qos "EO"
  • SAP PO will do mapping and send the message to SAP ECC
  • SAP PO need to generate/ create  and send order response
    message below in the same session – opened by Ariba while sending order request
    message.

 

<?xml version="1.0" encoding="UTF-8"?>

<cXML payloadID="xxxx-XXXX-xxx" xml:lang="en" timestamp="2002-03-12T18:39:09-08:00">

       <Response>

            <Status code="200" text="OK"/>

       </Response>

</cXML>

EndtoEndFlow.JPG

 

 

Intention behind this blog:


I must say that I found some blogs on custom handler, but I wanted to share one of the way to create response within SAP PO and send to sender
with QoS =”EO”. As ideally response message can be simulated by file adapter or receiver system, in our case receiver is SAP ECC - asynchronous one.

Also I could not find end to end process : writing Axis custom handler, packaging them and deploy process. So I thought to document my end to end scenario, which will be helpful to anyone who has to write custom handler.

 

Alternatives considered before adopting this approach:

 

RequestoneWaybean : Can not be used as we can not have
synchronous scenario with multiple receivers. As here we need to send one
response message to Ariba and we have to send order request message to CRM.

 

 

Adapter module: May be we could have achieved, but I was not
sure in which direction(sender/ receiver) I have to use it…

 

 

Final approach:

 

Finally I went to Axis custom handler approach, where using
custom handler we can intercept soap messages and modify them before it reaches
to messaging system. Custom handler is supported in soap with axis framework.

 

What is handler:

 

It is kind of simple java class extended from BasicHandler–where you will override “invoke” method to change soap request / responsemessage.


I have come across two types of handler:

Request handler : handler which is invoked by adapter
framework before it goes to SAP PO messaging system(in short you can write this
request handler if you want to modify soap request messages)

Response handler:  handler which is invoked after
messaging system sends response(in case you want to modify response message)


We will be using response handler.

 

Tools required:


Eclipse(to write code)

sdaMakerTool(refer link: scn.sap.com/docs/DOC-47124) for packaging SDA file for deployment

SoapUI(to test)

 

SAP PO development:


Please note that I will not go much detail in to SAP PO to SAP
ECC flow, as the intention of this blog is the showcase usage of custom handler
in creating sending response from SAP PO via soap axis framework and it can be
referred for anyone who wanted to edit soap messages.

 

ESR design:

Data type, Message type and service interface of type
outbound “Asynchronous” for order request outbound message.(Ariba to SAP PO
flow)

 

Data type, Message type and service interface of type
inbound “Asynchronous” for order request inbound  message (for SAP PO to SAP CRM  flow)

 

Note: Here you can create any data type, message type
considering any XML structure. I had used Order request cXML order request
structure. You can test this scenario end to end with any XML structure
provided you refer to custom handler code – which actually constructs message.

 

No need to create design objects – Data type,
message type, service interface for custom response message – as this is
generated by custom handler.

 

ID configuration:


ICO object :

One ICO object required from Ariba to SAP ECC.


Sender communication channel:

SenderCC.JPG

SenderCC.JPG

Note: highlighted is the complete class name along with package which is deployed using sdaMakertool.

 

Receiver adapter:

SOAP adapter with XI 3.0 protocol(to pass message to
receiver SAP ECC via server proxy – inbound async proxy)

 

No channel required to send custom response back to sender, as it is achieved by custom handler code using sender axis channel as above.

 

Eclipse - adding Axis jar files :

Download Axis jar files from Apache Download Mirrors  and extract them and add below jars to project build path. This will make sure eclipse recognize imports mentioned in the class and build the class file.

Eclipse_path.JPG

Finally source code for custom handler -

 

package mycomp.axis.handlers;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringReader;
import java.io.StringWriter;
import java.nio.charset.Charset;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
import java.util.TimeZone;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.apache.axis.AxisFault;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
import org.apache.axis.handlers.BasicHandler;
import org.apache.axis.message.SOAPBodyElement;
import org.apache.axis.message.SOAPEnvelope;
import org.apache.axis.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSSerializer;

public class ResponseHandler extends BasicHandler {
    public void invoke(MessageContext msgContext) throws AxisFault
    {
       /** Response handler to write custom Ariba response
             */
            try {
             String respTxt = createResponseText();
           
             /**
                 * Getting response soap message envelop and add
                 * response message to soap body
                 */
               
             SOAPMessage curMsg =  getSoapMessageFromString(respTxt);
             msgContext.setMessage(curMsg);
               
            } catch (Exception e) {
                throw AxisFault.makeFault(e);
            }
        }

private String createResponseText()

        {

         String payloadID = "1234";

 

         // Get time stamp in GMT-800 format.

         String ts = getTimeStamp();

   

         String respText = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"+

        "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"><SOAP-ENV:Header/>\r\n" +

           "<SOAP-ENV:Body>"+

            "<cXML payloadID=\""+payloadID+"\" xml:lang=\"en\" timestamp=\""+ts+"\">\r\n" +

           "<Response>\r\n" +

           "<Status code=\"200\" text=\"OK\"/>\r\n" +

           "</Response>\r\n" +

           "</cXML>\r\n" +

           "</SOAP-ENV:Body>\r\n" +

           "</SOAP-ENV:Envelope>";

        

         return respText;

        }

 

private String getTimeStamp()

        {

         Date today = new Date();

         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");

            //root.setAttribute("timestamp","2002-03-12T18:39:09-08:00");

         sdf.setTimeZone(TimeZone.getTimeZone("GMT-08:00"));

        // String[] zone = TimeZone.getAvailableIDs();

         /*

         for(int i =0;i<zone.length;i++)

         {

          System.out.println(zone[i]);

         }*/

         String timeStamp = sdf.format(today);

        // System.out.println(timeStamp);

         return timeStamp;

        }

}

That is it... and here is the result... :

SoapUIResp.JPG

 

People who suppoted me :

Raghavendra Basavaraj, Piotr Podkowinski and my laptop.. .

Renaming Email Attachment with input File Name Without Module

$
0
0

Hi All,

 

I once had a similar requirement as mentioned in Renaming Email Attachment with input File Name by madhav poosarla .

 

Here is the requirement:

 

Pick a CSV file from FTP location and mail it to external team without any changes to the content and file name. Subject of the mail should be based on the input file name. Also, in the body of the mail mention the directory where the file is archived once it is picked by PI.

 

I was able to achieve this without module and I would like to discuss how.

 

Sender File Channel Configurations:

 

CSV file has to be picked from a FTP Location and has to be archived. ASMA parameters have to be checked.

 

1.png

 

In the message mapping, I had a dummy message type as the source and mail package as the target. No graphical mapping has been done. Everything is handled by the Java Code.

 

This Java Code is written in Attributes and Methods in the Functions tab.

 

1.png

 

Four Parameters From_id, To_id1, To_id1 and Directory are defined in the Operation Mapping.

 

Initially, we declared only one To_id. Later, we realized that we cannot mention more than 99 characters in the ICO for a parameter. We were unable to see the characters after 99th character in the payload.

 

Issue with parameterized mapping using ICO

 

Below is the Java Code:

 

public void transform(TransformationInput arg0, TransformationOutput arg1) throws StreamTransformationException {
String inputPayload = convertInputStreamToString(arg0.getInputPayload().getInputStream()); // Calls convertInputStreamToString function
Map mapParameters = (Map) arg0.getInputHeader().getAll();
String Directory =  arg0.getInputParameters().getString("Directory"); // Assigns value of 'Directory' - Parameterized mapping
String From =  arg0.getInputParameters().getString("From_id"); // Assigns value of 'From_id' - Parameterized mapping
String To1 =  arg0.getInputParameters().getString("To_id_1"); // Assigns value of 'To_id' - Parameterized mapping
String To2 =  arg0.getInputParameters().getString("To_id_2"); // Assigns value of 'To_id' - Parameterized mapping
String newSubject="";
/*<<<Dynamic File Name Configuration>>>*/
DynamicConfiguration conf = (DynamicConfiguration) mapParameters.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey  KEY_FILENAME = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
String SourceFileName = conf.get(KEY_FILENAME); // Assigns file name to String SourceFileName
if(SourceFileName.contains(".ABC"))
newSubject= "ABC File is received";
else  if(SourceFileName.contains(".EFG"))
newSubject= "EFG File is received";
else  if(SourceFileName.contains(".HIJ"))
newSubject= "HIJ File is received";
/* <<< Output payload structure>>>*/
String outputPayload = "";
outputPayload = outputPayload .concat("<?xml version=\"1.0\" encoding=\"UTF-8\"?>").concat("\r\n");
outputPayload = outputPayload .concat("<ns1:Mail xmlns:ns1=\"http://sap.com/xi/XI/Mail/30\"><Subject>").concat(newSubject).concat("</Subject><From>").concat(From).concat("</From><To>").concat(To1).concat(To2).concat("</To><Content_Type>multipart/mixed;boundary = --AaZz</Content_Type><Content>----AaZz");
outputPayload = outputPayload .concat("\r\nContent-Type: text/plain; charset=UTF-8").concat("\r\n");
outputPayload = outputPayload .concat("Content-Disposition: inline").concat("\r\n").concat("\r\n");
outputPayload = outputPayload .concat(Directory+SourceFileName+" is attached.").concat("\r\n");
outputPayload = outputPayload .concat("----AaZz").concat("\r\n");
outputPayload = outputPayload .concat("Content-Type: application/xml; name="+SourceFileName).concat("\r\n");
outputPayload = outputPayload .concat("Content-Disposition: attachment; filename="+SourceFileName).concat("\r\n").concat("\r\n").concat(inputPayload).concat("\r\n");
outputPayload = outputPayload .concat("</Content></ns1:Mail>");
try {
/*
* Output payload is returned using the TransformationOutput class           
* arg1.getOutputPayload().getOutputStream(
*/
arg1.getOutputPayload().getOutputStream().write(outputPayload.getBytes("UTF-8"));
} catch (Exception exception1) {
getTrace().addWarning("Exception caught in Transform: " + exception1.toString());
}
}
/* <<< Reads input payload>>>*/
public String convertInputStreamToString(InputStream in) {
StringBuffer sb = new StringBuffer();
try {
InputStreamReader isr = new InputStreamReader(in);
Reader reader = new BufferedReader(isr);
int ch;
while ((ch = in.read()) > -1) {
sb.append((char) ch);
}
reader.close();
} catch (Exception exception) {
getTrace().addWarning("Exception caught in convertInputStreamToString: "+ exception.toString());
}
return sb.toString();
}

Receiver Mail Channel Configurations:

 

1.png

 

ASMA parameters were checked.

 

1.png

 

Integrated Configuration:

 

In the inbound processing tab, SWCV of sender interface is not selected. If it is selected we were getting content not allowed in prolog error.

 

1.png

 

Archive Directory, From ID and To IDs are mentioned in the Receiver Interfaces tab.

 

1.png

 

And that's all.. CSV file was picked from FTP and was archived using File Channel. Mail was sent with as-is attachment. No changes to the filename or the content in the file. Archive directory was mentioned in the body of the E-mail.

A step by step to apply Netweaver PI(dual-stack) https service

$
0
0

    Perspective of information security should be considered during system integration, especially for B2B integration scenario, Now we can turn on https service port and provide security service if you chosen SAP PI to realize system integration,at this post i'll demonstrate how to  configure PI https service and apply SOAP Sender and receiver adapter for dual stack PI installation,


ICM https configuration


1. Installing the SAP Cryptographic Library for SSL

     Download SAP Cryptographic Library from sap marketplace, file:SAPCRYPTOLIB_XXX.SAR

downloadCryptographic.png

2.     Extract sar file

        sapcar –xvf SAPCRYPTOLIB_XXX.SAR(include sapgenpse.exe,sapcrypto.dll,ticket)

        copy file sapgenpse.exe,sapcrypto.dll into PI's $DIR_CT_RUN for example /usr/sap/<SID>/SYS/exe/uc/NTAMD64, and then restart the system.

        copy file ticket o the $(DIR_INSTANCE)/sec directory

 

3.      Maintain ICM parameters for using SSL.

 

          Default profile C:\usr\sap\<SYSID>\SYS\profile

     profile.png


         open profile add below setting:

          # SSL Configuration: Location of the SAP Cryptographic Library

          ssl/ssl_lib = $(DIR_EXECUTABLE)$(DIR_SEP)$(FT_DLL_PREFIX)sapcrypto$(FT_DLL)

          # https port configuration

          icm/server_port_5 = PROT=HTTPS,PORT=5$(SAPSYSTEM)01,VCLIENT=1


4.  then goto smicm you will find https service is actived

smicm.png


Create certificate


1.     Goto NWA,  http://<host>:<port>/nwa , configuration -> security -> certificates and keys

             Select key storage views: ICM_SSL_<XXX> ,

             Delete old certificatesand create new.

keyviews.png



Configure soap https sender adapter

         

     1.  configure https without client authentication

           soap sender adapter.png

      2. distribute PI's certificate to consumer

         before partner can consume your web service, you need to distribute PI's certificate and wsdl to service consumer, to get pi's  certificate, you can                     perform as below

           export.png


SOAP receiver adapter

1. import certificate to certificate to views

     you need to get certificate file from service provider,also you can get it as above. and then import this certificate to views :TrustedCAs,in this          example      certificate is mesdev.

import certificate.png



2.    Configuration soap receiver adapter using view TrustedCAs and key mesdev

soap reciver adapter.png

Part1:Step By Step Approach to Use of Picking the file from multiple folders, PGP encryption, Java Mapping using NWDS, Dynamic Receiver folder creation in PI/PO Single Stack 7.31 sp7.

$
0
0

Hello Friends,

Today I got a Chance to work in the following requirement hope this will help to you also.

Requirement is like that I have to Pick the file from multiple folders, encrypt them and put in the Encrypt folders under the same folder.

For that we have tried multiple options to do without ESR object but at not find any suitable options.

Like we tried to do this using Dynamic Configuration bean with variable substitution but problem with variable substitution is that it will automatic convert the special character like, : ;< >/ \ etc. with underscore(_). So it not work when you referring to the current directory in Variable substitution.

 

One other option that we didn’t try is Run OS command if you like that one you can try but this will not work when you talking about FTP/SFTP

Finally do this with JAVA mapping using...

 

I divided this blog with 2 Parts because the length of the blog:

Part1: JAVA mapping & ESR Part

Part2 : PGP configuration & ID part

.

 

  

 

Open NWDS->

File->New->Java Project

 

 

 

 

                                                                                                                

 

 

Give Name Like: Dynamic_Directory

Then Next

 

Click on Libraries then Add External Jar’s

 

 

Click on Libraries then Add External Jar’s

Select the Library files for mapping .

You can download the libaray files from server refer following blog for that:

http://scn.sap.com/community/pi-and-soa-middleware/blog/2013/02/12/another-way-to-get-the-libraries-for-xi-development-for-71-for-java-mapping

 

                                                  

Then Finish.

Now right click on src folder and select New file

 

 

 

Give Name Like Dynamic_Directory.java

And write the following code in this file

 

 

import com.sap.aii.mapping.api.*;

 

import java.io.*;

 

importjava.text.*;

 

import java.util.*;

 

 

 

publicclass Dynamic_Directory implementsStreamTransformation {

 

 

 

    privateMapparam;

 

 

 

    publicvoid setParameter(Map map1) {

 

        this.param = map1;

 

    }

 

 

 

    publicvoid execute(InputStream inputstream, OutputStream outputstream) throws StreamTransformationException {

 

        try {

 

              AbstractTrace  trace = null;

 

 

 

            String directory=null;

 

              trace = (AbstractTrace)param.get(StreamTransformationConstants.MAPPING_TRACE );

 

            param.put(DynamicConfigurationKey.create("http://sap.com/xi/XI/Dynamic", StreamTransformationConstants.DYNAMIC_CONFIGURATION), "");

 

            DynamicConfiguration conf = (DynamicConfiguration) param.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);

 

 

 

          DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "Directory");

 

            String directory_name =conf.get(key1);

 

 

 

              trace.addInfo("Directory is "+directory_name);

 

 

            directory = directory_name+"/Ency";

 

      

 

      

 

              trace.addInfo("Directory after update "+directory);

 

              conf.put(key1, directory);

 

            // b) Just copy input file to output file

 

            byte[] b = newbyte[inputstream.available()];

 

            inputstream.read(b);

 

            outputstream.write(b);

 

 

 

        } catch (Exception exception) {

 

            exception.printStackTrace();

 

        }

 

    }}

 

Now Create Jar file for that Goto

File->Export->Java->jar File.

 

 

 

 

 

 

 

Select your project file you can also select java source file by click export java source file.

 

 

 

 

 

Following jar file will created on you Disk

 

It’s Time for ESR

In ESR we just need two objects

  1. Operation Mapping and
  2. Java Mapping

Create Name Space:

Create Imported Archive: IA_Dynamic_Directory

 

 

Import the Jar File

 

 

Create opetration Mapping with dummy interface name:

:OM_Dynamic_Directory

And refer the java mapping as below:

 

 

Part 2: Part2: Step By Step Approach to Use of Picking the file from multiple folders, PGP encryption, Java Mapping using NWDS, Dynamic Receiver folder creation in PI/PO Single Stack 7.31 sp7.

 

Regards

GB

 

Part2: Step By Step Approach to Use of Picking the file from multiple folders, PGP encryption, Java Mapping using NWDS, Dynamic Receiver folder creation in PI/PO Single Stack 7.31 sp7.

$
0
0

Hello Friends,

 

This is the 2nd part of blog :Part1:Step By Step Approach to Use of Picking the file from multiple folders, PGP encryption, Java Mapping using NWDS, Dynamic Receiver folder creation in PI/PO Single Stack 7.31 sp7.

For PGP configuration & ID part:

 

It’s Time for PGP :

You can use any tool to generate the public private key, I am using the following to encrypt ;

 

https://wp2pgpmail.com/pgp-key-generator/

 

 

Create a two text files and copy the above into file and save

Like PG_Private_WB.ppk for private key

PG_Public_WB.pub for public key

Place these file on server folder

 

 

Sender Channel:

Pick the file from 3 folders

Use ASMA

Receiver Channel:

 

 

                                          

 

Use ASMA: here also

 

 

 

 

 

 

 

 

 

Use PGP Standard module to encrypt the files:

 

 

ICO:

 

 

I place the file in three folders input folder and It create the encrypted files in input\Ency folders

 

 

 

 

Additional note for Decrypt the file use following channel configuration

 

 

 

 

Regards

GB

Standalone testing of Adapter Module in NWDS

$
0
0
Update 2 Oct 2014: Added section regarding usage of Audit Log

 

Background

While custom adapter module development is becoming more common, there is still no functionality built into the NWDS/Eclipse IDE to perform basic testing of the module logic. As described by threads like this, it is a pain to redeploy the module into the server each time there are code changes. The adapter module can only be tested in an end-to-end scenario. Even for Proof-Of-Concept developments, a full integration scenario needs to be configured in order to test the module.

 

This blog attempts to help to reduce the pain in adapter module development by providing an approach to easily perform basic/unit testing prior to server deployment.

 

This is achieved by introducing a testing class with a static Main method as a wrap-around of the module class. This testing class can then be executed in the IDE directly.

 

 

Limitations

Please be aware that there are limitations to this approach as it is meant for basic/unit testing only. Certain scenario examples in the non exhaustive list below still require end-to-end testing.

- scenarios with dependencies on output of prior module in the module chain

- scenarios with dependencies on actual payload generated by sender adapter

- scenarios that requires connectivity to certain resources (HTTP, FTP, etc) that are not available from the local PC

- scenarios with attachments

 

 

Source code

The full source code can be found in the following public repository on GitHub.

GitHub repository for PI_Module_Testing

 

 

Details and Usage

Below are the details of this approach and also an explanation on the different sections, and how those could be changed so that standalone testing can be performed in NWDS.

 

Testing class with Main method

Create a new testing class with a main method. Ideally put this in a separate package, so that this can be excluded when generating the files for deployment. Copy the source code provided above into the new class - take note of any package renaming as necessary.

NWDS.png

 

Local implementation classes

Several interfaces do not have corresponding implementation classes in the PI JAR library files. In order to be able to compile the test class, the following classes shown below are local classes implementing those interfaces. These only provide basic implementation for testing and are not the same as the full implementation classes in the Adapter Engine.

local_class.png

 

Module class and message details

Below shows the portion of the code where the module bean is instantiated. This should be changed according to the name of the module bean being developed.

The message details (sender/receiver details, protocol, etc) can also be changed accordingly.

name.png

 

Input file

Location of input file in the local machine running NWDS should be changed accordingly.

input.png

 

Dynamic configuration

Optionally, dynamic configuration can be simulated by adding the entries in the test class using static method addDynCfg(namespace, attribute, value).

dyncfg.png

 

Module parameters

Optionally, module parameters can be entered to simulate entries in the module chain by using method put(parameterName, parameterValue).

module_parameters.png

 

Module processing and output file

Actual processing logic of the module is executed by the call to the process method of the bean.

Location of output file in the local machine running NWDS should be changed accordingly.

output.png

 

Example Module

Below is a simple example of a custom module (the full code is found in the GitHub repository above) to demonstrate unit testing in NWDS.

 

The module changes the name of the root element and also adds a prefix to the dynamic configuration filename if module parameter PARAM1 is configured.

 

Logic

 

public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData) throws ModuleException {  try {   // Get input stream   Message msg = (Message) inputModuleData.getPrincipalData();   XMLPayload payload = msg.getDocument();   InputStream inStr = payload.getInputStream();   // Get the text content   BufferedReader br = new BufferedReader(new InputStreamReader(inStr));    ArrayList<String> contents = new ArrayList<String>();   String lineContent;   while ((lineContent = br.readLine()) != null) {    contents.add(lineContent);   }   br.close();   // Modify the root element name   StringBuilder sb = new StringBuilder();   for( String line: contents ) {    if ( line.contains("MT_Calculator_Input")) {     line = line.replace("MT_Calculator_Input", "New_Root");     sb.append(line);    } else {     sb.append(line);    }    sb.append("\n");   }    // Set changed content   payload.setContent(sb.toString().getBytes());   // If PARAM1 is configured in the module parameters, add that as a prefix to the file name   String param1 = moduleContext.getContextData("PARAM1");   if (param1 != null) {    // Get Dynamic Configuration    MessagePropertyKey fileNameKey = new MessagePropertyKey("FileName", "http://sap.com/xi/XI/System/File");    String fileName = msg.getMessageProperty(fileNameKey);    // Set new value Dynamic Configuration    msg.removeMessageProperty(fileNameKey);    msg.setMessageProperty(fileNameKey, param1 + "_" + fileName );   }   // Update the message   inputModuleData.setPrincipalData(msg);  } catch (Exception e) {   throw new ModuleException(e.getClass() + ": " + e.getMessage());  }  return inputModuleData;
}

Input and results

 

Input FileOutput File
input.pngoutput.png

 

Dynamic configuration values displayed in Console output

console1.png

 

 

Audit Log Usage

Audit log is an important logging functionality to provide accurate status of the processing of module. However, audit log is not available during standalone testing in NWDS. Execution of method getPublicAPIAccess of PublicAPIAccessFactory will raise a MessagingException. In order to workaround this, the exception can be caught in a try-catch block, and adding to the audit log is only performed if the audit log object is instantiated. Optionally, for testing in NWDS, the message can be sent to the console output.

 

Below is the snippet of the logic to handle audit log instantiation and message entry.

   // Get audit log   MessageKey key = new MessageKey(msg.getMessageId(), msg.getMessageDirection());   try {    audit = PublicAPIAccessFactory.getPublicAPIAccess().getAuditAccess();        } catch (MessagingException e) {    System.out.println("WARNING: Audit log not available in standalone testing");   }     addLog(key, AuditLogStatus.SUCCESS, "CustomFunctionBean: Module Called");

Logic for private method addLog.

 

private void addLog (MessageKey msgKey, AuditLogStatus status, String message) {  if (audit != null) {   audit.addAuditLogEntry(msgKey, status, message);  } else {   System.out.println( "Audit Log: " + message);  }
}

 

 

Additional Reference

Official step-by-step guides by SAP on how to create custom modules

How to Create Modules for the J2EE Adapter Engine (NW2004)

How to Create Modules for the J2EE Adapter Engine (NW7.0)

How to Create Modules for the JEE Adapter Engine 7.1

Developing User Enhancement Modules in the Adapter Engine

 

Location of JAR library files for Module development

Where to get the libraries for XI development - Process Integration - SCN Wiki

For NWDS 7.3, JAR files are automatically provided by NWDS, so just need to include the XPI Library as shown in the thread below

Issue in Excel to XML Conversion

 

Links for downloading different versions of NWDS

NWDS Download Links - Java Development - SCN Wiki


Remove Namespace by XMLAnonymizer Bean in communication channel-Example step by step

$
0
0

We may have to nurture with the namespaces in the payload before posting to the end system.The requirement could be to remove namespace prefix in XML Payload.This module then can help the developer without writing long XSLT codes to achieve the result.

 

First let us understand the basics of Namespace.

 

What is a namespace?

Ans:XML namespaces are used for providing uniquely named elements and attributes in an XML document.

Use?

Ans:XML namespace is to avoid naming conflicts when using and re-using multiple times.

How we use it in the XML?

Ans:Example below.

 

<ns0:tablexmlns:ns0="http://www.w3.org/TR/html4/">



In the attribute xmlns:ns0, xmlns is a reserved word, used to declare a namespace. That is the above example is read as binding the prefix ‘ns0’ with the namespace ‘http://www.w3.org/TR/html4/

 

Now let us see the use of the XML Anonymizer Bean in real case.

 

We had a scenario where the output was like below after the mapping in PI.


<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  
<soap:Body>
  
<ns1:ImportStringxmlns:ns1="http://xyz.com/">
  
<ns1:filename>test.xml</ns1:filename>
  
<ns1:payload>xxx</ns1:payload>
  
</ns1:ImportString>
  
</soap:Body>
</soap:Envelope>


However the customer wanted us to remove the prefix of ns1 without removing the namespace.However they wanted the soap,xsd and xsi prefix and namespace both to be there at the output. So they wanted a structure  like below.


<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  
<soap:Body>
  
<ImportStringxmlns="http://xyz.com/">
  
<filename>test.xml</filename>
  
<payload>xxx</payload>
  
</ImportString>
  
</soap:Body>
</soap:Envelope>


To do this we had to use the XML Anonymizer Bean like below

Anonymizer.jpg

Here is the configuration procedure:

 

  • Add the Module in the Processing Sequence.Insert this Anonymizer module before the adapter module as shown above.

 

 

Module Name : AF_Modules/XMLAnonymizerBean

Module Type:Local Enerprise Bean

Module Key: 0

The module name ‘CallSapAdapter’ is default one that can be left as it is

 

 

  • Add Parameters in the Module Configuration.

 

Module Key: 0

Parameter Name: anonymizer.acceptNamespaces

Parameter Value: http://www.w3.org/2001/XMLSchema-instance xsi http://www.w3.org/2001/XMLSchema xsd http://schemas.xmlsoap.org/soap/envelope/ soap http://xyz.com/ ''

 

Enter a list of namespaces and their prefixes that are to be kept in the target XML document and to result a namespace without a prefix, enter '' (two single quotation marks). 

 

 

 

Module Key: 0

Parameter Name: anonymizer.quote

Parameter Value:

 

Here specify the character to be used to enclose the attribute values.  The default value is ‘. 

 

Once we activate all the above configurations and execute the scenario we get the desired output as below.


<soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  
<soap:Body>
  
<ImportStringxmlns="http://xyz.com/">
  
<filename>test.xml</filename>
  
<payload>xxx</payload>
  
</ImportString>
  
</soap:Body>
</soap:Envelope>

Don’t miss out on the SAP Middleware sessions at SAP TechEd && d-Code 2014 in Las Vegas

$
0
0

NEW, EXCITING, GAME-CHANGING

 

middleware_blog.jpg

SAP Middleware will be prominently covered at SAP TechEd && d-Code 2014.

Join the SAP Middleware Experts to learn collectively and individually how SAP is revolutionizing Middleware.


To make it easier for you, we created an overview below of all SAP Middleware-related sessions that will be held in Las Vegas (we will publish separate blogs for Berlin and Bangalore).

The sessions have been grouped into four main product areas:


  • Orchestration & Gateway: covering our SAP Process Orchestration portfolio, including SAP Process Integration, SAP Business Process Management (SAP BPM), SAP Business Rules Management (SAP BRM), and the SAP B2B Add-On. Learn for example where we are heading in the areas of mobilizing business processes, B2B and how SAP Process Orchestration benefits from SAP HANA. Also hear the latest and greatest about SAP Gateway and SAPApplication Interface Framework-..…
  • Operational Process Intelligence: powered by SAP HANA enabling you to act and react in real time providing lets you control situations before and as they are happening.  Using Operational Process Intelligence you can foresee an inventory running low before the incident, handle a customer complaint in real time, ensure pharmaceuticals are rerouted in times of crisis.
  • API Management allowing you to control not only your software but lets you connect to unprecedented devices. We recently announced our partnership with Apigee and the first release of SAP API Management, so there will be a lot to talk about…
  • HANA Cloud Integration: facilitating the integration of business processes on data across on-premise and cloud applications (cloud-cloud and cloud-on-premise integration). Learn about the latest catalog in SAP HANA Cloud Integration with newly developed content and experience how to discover, develop, and share ready-to-run integration content. and the cloud.
  • PowerDesigner: helping over 50,000 customers worldwide address their Enterprise Modeling and Documentation needs.  Now, as part of SAP’s Middleware portfolio, PowerDesigner is a critical component needed to capture, design and communicate the different aspects of your enterprise architecture before orchestrating and executing it.


Get to know why SAP Middleware is assuming leadership positions by analysts worldwide - learn about the current Middleware offerings, strategy, roadmap, hear success stories and help influence the direction.


Finally make sure to keep an eye out for these super special and game-changing themes, being promoted by our Middleware team: Intelligent Business Operations and Internet of Things


We encourage you to take part of our sessions and to schedule a 1-on-1 meeting where we can guide you on the ideal Middleware strategy for your organization.

 

To schedule a one-on-one meeting with our topic experts send an email here(please indicate your name, contact details and any specific topics you would like to discuss).


Looking forward to seeing you there!

Smadar Ludomirski on behalf of the SAP Middleware team


LAS VEGAS SESSIONS


Session ID

Title

Session Type

Day and Hour

ORCHESTRATION & GATEWAY

INT800

Road Map Q&A: SAP Process Orchestration

Product Road Map Q&A (1hr)

Tue 11:00 AM - 12:00 PM
  Wed 12:00 PM - 1:00 PM

INT803

Road Map Q&A: Intelligent Business Operations

Product Road Map Q&A (1hr)

Tue 2:00 PM - 3:00 PM
  Wed 10:00 AM - 11:00 AM

INT200

Cloud Integration – An Update on Our Strategy

Lecture (1hr)

Tue 2:00 PM - 3:00 PM
  Thur 9:15 AM - 10:15 AM

INT361

Error Handling in BPM-Based Processes Using SAP Process Orchestration

Hands-On Workshop (2hr)

Wed 10:30 AM - 12:30 PM
  Thur 8:00 AM - 10:00 AM

INT360

Best Practices to Implement SAP Process Orchestration, B2B Add-On Solution

Hands-On Workshop (4hr)

Wed 2:15 PM - 6:15 PM
  Thur 2:15 PM - 6:15 PM

INT300

L'Oreal - Purpose-Specific Dual Landscape - SAP PI & Overall Experiences

Lecture (1hr)

Tue 11:00 AM - 12:00 PM

INT264

Use SAP Process Orchestration for On-Premise to Cloud Integration

Hands-On Workshop (2hr)

Wed 8:00 AM - 10:00 AM
  Thur 10:30 AM - 12:30 PM

INT208

Experiences with SAP Cloud for Customer and SAP Process Orchestration

Lecture (1hr)

Thur 2:00 PM - 3:00 PM

INT207

Customer Connection for SAP Workflow – And How You Can Benefit

Lecture (1hr)

Thur 9:15 AM - 10:15 AM

INT206

Integrating Shop-Floor with Enterprise in Real-Time – SAP MII In Action

Lecture (1hr)

Wed 5:45 PM - 6:45 PM

INT205

Ariba Network Integration with SAP Leveraging Process Orchestration

Lecture (1hr)

Wed 8:00 AM - 9:00 AM

INT203

Solution Architectures for Process-, Data-, and User-Centric Integration

Lecture (1hr)

Tue 3:15 PM - 4:15 PM
  Wed 8:00 AM - 9:00 AM

INT202

SAP Process Orchestration as B2B Gateway – Business Partners Integration

Lecture (1hr)

Tue 5:45 PM - 6:15 PM
  Thurs 11:45 AM - 12:45 PM

INT802

Road Map Q&A: SAP Gateway – On Premise and in the Cloud

Product Road Map Q&A (1hr)

Tue 1:00 PM - 2:00 PM
  Wed 2:00 PM - 3:00 PM

INT108

Microsoft and SAP: Innovating for Your Success

Lecture (1hr)

Wed 10:30 AM - 11:30 AM

INT100

Integration and Orchestration – Overview and Outlook

Lecture (1hr)

Tue 11:00 AM - 12:00 PM
  Thurs 10:30 AM - 11:30 AM

EXP17707

Streamline and Simplify B2B Integration with an Advisor Tool

Networking Session (30min)

Wed 1:00 PM – 1:30 PM
  Thurs 1:00 PM - 1:30 PM

EXP17561

Enforce Reliability and Compliance with Redwood Financial Close Automation

Networking Session (30min)

Wed 11:30 AM - 12:00 PM

EXP17510

IFG Survey Results on SAP Process Integration and SAP Process Orchestration

Networking Session (30min)

Wed 11:00 AM - 11:30 AM

EXP17507

Running SAP Solutions on OpenStack Powered by SUSE Cloud

Networking Session (30min)

Tue 1:30 PM - 2:00 PM

EXP17476

SAP Application Interface Framework 3.0 – Preprocessing Function

Networking Session (30min)

Tue 4:00 PM - 4:30 PM

EXP17408

SAP Integration and Orchestration Solutions: Customer Showcase

Networking Session (30min)

Wed 4:00 PM - 4:30 PM

EXP17406

Innovate with SAP Gateway and SAP API Management

Networking Session (30min)

Tue 3:30 PM - 4:00 PM

CJ602

Modeling and Composing OData Services for Mobile and Cloud

CodeJam mini-editions (1hr)

Tue 4:00 PM - 5:00 PM

CJ600

Integrate SAP Data in Microsoft Outlook via SAP Gateway for Microsoft

CodeJam mini-editions (1hr)

Tue 12:15 PM - 1:15 PM

INT103

OData in SAP Process Orchestration

Lecture (1hr)

Tue 5:45 PM - 6:45 PM
  Thur 4:30 PM - 5:30 PM

OPERATIONAL PROCESS INTELLIGENCE

INT102

SAP Operational Process Intelligence powered by SAP HANA

Lecture (1hr)

Tue 12:15 PM - 1:15 PM
  Wed 11:45 AM - 12:45 PM

INT803

Road Map Q&A: Intelligent Business Operations

Product Road Map Q&A (1hr)

Tue 2:00 PM - 3:00 PM
  Wed 10:00 AM - 11:00 AM

INT105

The Internet of Everything: How it Will Transform the Way Business is Done

Lecture (1hr)

Tue 2:00 PM - 3:00 PM

INT261

Build SAP Fiori-Style User Interfaces for Mobile Usage of SAP BPM

Hands-On Workshop (2hr)

Tue 2:00 PM - 4:00 PM
  Thurs 2:00 PM - 4:00 PM

INT162

Building a Business Scenario in SAP Operational Process Intelligence

Hands-On Workshop (4hr)

Tue 2:15 PM - 6:15 PM
  Thurs 8:00 AM - 12:00 PM

INT164

SAP BPM – Build and Run a Simple Business Process End-to-End

Hands-On Workshop (2hr)

Wed 8:00 AM - 10:00 AM
  Wed 2:00 PM - 4:00 PM

INT201

Unified Inbox with SAP Fiori

Lecture (1hr)

Wed 10:30 AM - 11:30 AM
  Thur 8:00 AM - 9:00 AM

EXP17536

Intelligent Business Operations with the SAP HANA Platform

Networking Session (30min)

Wed 1:00 PM - 1:30 PM
  Wed 1:30 PM - 2:00 PM

EXP17712

How to Implement Automated Business Process Validation in Your Organization

Networking Session (30min)

Wed 3:30 PM - 4:00 PM

EXP17787

Before Big Data, Did Your SAP Software Do Little Data?

Networking Session (30min)

Tue 1:00 PM - 1:30 PM

EXP17786

BMC Control-M: Das Batch

Networking Session (30min)

Thur 11:00 PM – 11:30 PM

INT163

Building Smart Process Apps with SAP Operational Process Intelligence

Hands-On Workshop (2hr)

Wed 4:30 PM - 6:30 PM
  Thurs 4:30 PM - 6:30 PM

API MANAGEMENT

INT263

Consuming SAP Data in Google Apps by Leveraging SAP Gateway

Hands-On Workshop (2hr)

Tue 11:15 AM - 1:15 PM
  Wed 4:30 PM - 6:30 PM

CJ601

Secure OData – How Customers Leverage OAuth for Secure Integration

CodeJam mini-editions (1hr)

Tue 2:45 PM - 3:45 PM

INT103

OData in SAP Process Orchestration

Lecture (1hr)

Tue 5:45 PM - 6:45 PM
  Thur 4:30 PM - 5:30 PM

INT260

Develop an E2E Integration Scenario with SAP Gateway, SAP HANA, and SAPUI5

Hands-On Workshop (4hr)

Wed 8:00 AM - 12:00 PM
  Thur 2:15 PM - 6:15 PM

INT204

Cutting-Edge SAP API Management Leveraging REST

Lecture (1hr)

Wed 3:15 PM - 4:15 PM
  Thur 10:30 AM - 11:30 AM

EXP17713

Cutting-Edge SAP API Management and REST

Networking Session (30min)

Tue 2:30 PM - 3:00 PM

HANA CLOUD INTEGRATION

INT800

Road Map Q&A: SAP Process Orchestration

Product Road Map Q&A (1hr)

Tue 11:00 AM - 12:00 PM
  Wed 12:00 PM - 1:00 PM

INT160

Integration of SuccessFactors Applications Using SAP HANA Cloud Integration

Hands-On Workshop (2hr)

Tue 11:15 AM - 1:15 PM
  Tue 4:30 PM - 6:30 PM

INT802

Road Map Q&A: SAP Gateway – On Premise and in the Cloud

Product Road Map Q&A (1hr)

Tue 1:00 PM - 2:00 PM
  Wed 2:00 PM - 3:00 PM

EXP17711

Effectively Managing Change as SAP Applications Expand into the Cloud

Networking Session (30min)

Tue 1:30 PM - 2:00 PM

INT200

Cloud Integration – An Update on Our Strategy

Lecture (1hr)

Tue 2:00 PM - 3:00 PM
  Thur 9:15 AM - 10:15 AM

INT803

Road Map Q&A: Intelligent Business Operations

Product Road Map Q&A (1hr)

Tue 2:00 PM - 3:00 PM
  Wed 10:00 AM - 11:00 AM

INT801

Road Map Q&A: SAP HANA Cloud Integration

Product Road Map Q&A (1hr)

Tue 3:00 PM - 4:00 PM
  Wed 1:00 PM - 2:00 PM

INT104

Integrate with SAP Financial Services Network and Ariba

Lecture (1hr)

Wed 9:15 AM - 10:15 AM
  Thur 5:45 PM - 6:45 PM

INT262

OData in SAP HANA Cloud Integration

Hands-On Workshop (2hr)

Wed 10:30 AM - 12:30 PM
  Thur 8:00 AM - 10:00 AM

INT161

Provide and Discover Content with SAP HANA Cloud Integration

Hands-On Workshop (2hr)

Wed 2:00 PM - 4:00 PM
  Thur 10:30 AM - 11:30 AM

INT101

Integrate Existing Systems and Replicate Data to SAP HANA Cloud Platform

Lecture (1hr)

Thur 3:15 PM - 4:15 PM
  Wed 4:30 PM -5:30 PM

POWER DESIGNER

DMM208

An Applied Enterprise Architecture Approach with SAP PowerDesigner

Lecture (1hr)

Tue 4:30 PM - 5:30 PM
  Thur 9:15 AM -10:15 AM

DMM810

Road Map Q&A: SAP PowerDesigner Future Directions

Product Road Map Q&A (1hr)

Tue 6:00 PM - 7:00 PM
  Thur 12:00 PM -1:00 PM

DMM215

Looking for an ARIS Alternative?

Lecture (1hr)

Wed 8:00 AM - 9:00 AM
  Thur 4:30 PM -5:30 PM

DMM216

SAP PowerDesigner Future Directions

Lecture (1hr)

Wed 9:15 AM - 10:15 AM
  Thur 5:45 PM -6:45 PM

EXP17588

Evolving Your Data Warehouse for Big Data

Networking Session (30min)

Wed 10:00 AM - 10:30 AM

DMM226

SAP PowerDesigner Tips, Tricks, and Customizations

Lecture (1hr)

Wed 2:00 PM - 3:00 PM
  Fri 8:00 AM -9:00 AM

EA303

Using SAP PowerDesigner to Simplify and Expedite Data and Analytics Challenges

Lecture (1hr)

Wed 3:15 PM - 4:15 PM

DMM272

Making SAP PowerDesigner Work for You

Hands-On Workshop (2hr)

Wed 4:30 PM - 6:30 PM
  Fri 10:30 AM -12:30 PM


Can I get rid of conversion agent for PI?

$
0
0

As a quick introduction to SAP conversion agent by Informatica, a very well-known and widely used parser/ serialize is will no longer be sold by EHP 1 for SAP NetWeaver 7.3. This puts any upgrade projects heavily dependent on conversion agent in a state of limbo. This article deals with the shortcomings of PI’s out of the box concepts vis-à-vis conversion agent and looks at possible alternative approaches. The scope of this document is limited to dealing with data streams/ flat files (fixed length or CSV). It can be extrapolated to PDF or Excel sheets, but not all arguments are valid in those cases.

 

Conversion Agent is a data conversion system that enables you to create interfaces between any data formats and XML-based systems. The Conversion Agent can convert unstructured, semi-structured, and structured formats to XML, and the other way around. Prior to SAP NetWeaver 7.3 EHP1, Conversion engine module could be used on any of PI’s Java based Adapter’s.

 

However with SAP not supporting conversion agent anymore it’s imperative to find an alternate solution to Conversion Agent. In a way the projects that never used conversion agent find themselves in a safe zone. At times it’s easier for a PI architect to put forth a limitation and have connected systems deal with it. However in many instances where conversion agent has been implemented and one needs to migrate them to the newer platforms PI 7.3 EHP1 onwards.

 

Following are easy to understand decision tree:

DecisionTree.png

 

Some of consideration that goes above is as follows:

 

1.0: Cost

Lot of costs already factors it in a SAP PI upgrade project. Some of these costs  are not only limited to PI development/ support team alone, but are also applicable for PMO, process teams, infrastructure teams, connected systems, test teams and business representatives. If any of the interfaces marked for upgrade use CA, the decision on how much would it cost for these systems to change the format to match up PI’s expected format vs. having PI to do look for alternate approaches is a vital one.

 

2.0: Is the upgrade imperative?

Evaluate if your organization really needs to upgrade. Per the Project Evaluation Matrix, for NetWeaver PI 7.1 or NetWeaver PI 7.4 end of mainstream maintenance is up until 12/31/2020. Is it just the development team fancies an upgrade? Has anyone prototyped using the new PI server and it does what you expect it to do? If it does, would you spend the amount you are for those features? Do you have a migration and support strategy in place for the new PI environment? Do you see any other roadblocks? It’s important to look at upgrade holistically. If you are missing any of this information, it’s time to go back to the table and weigh them in before making your decision.

 

3.1: Are there alternate tools/ modules that can replace CA?

Check if there are any alternate tools that can give similar results like conversion agent. The risk of doing this is that you may quickly get dependent on that too and just like conversion agent you may want to define a replacement strategy for that in the future. Using this approach we would merely procrastinate the decision of living with an external conversion tool and also pay for the additional licensing cost of the new tool.

 

3.2 Dual PI environment

One easy way of achieving an upgrade is to keep the conversion engine based communication channels on a decentralized PI 7.1 adapter engine and upgrade everything else. By that way your conversion agent based communication channels still continue to work as they are supposed to. They decentralized adapter engine keeps exchanging information with the integration engine seamlessly. The flip side to this approach is that you will need to keep maintaining a decentralized adapter engine, which is actually not much.

 

3.3 In house replacement for Conversation Engine

This is the most recommended of all the approaches. However one needs to know how to replace the conversion agent. For once I wanted to understand what the conversion agent (CA here on) provides in flat file based scenarios that the normal built-in messageTransformationBean  (MTB here on) does not:

 

Here is a list

01. CA could handle files a single line file with header and items graciously. However for MTB, the segment should start with key field.

The following cannot parse correctly on MTB

HDR,HDRFLD1,HDRFLD2,ITM,ITMFLD1,ITMFLD2,ITMFLD3,ITM,ITMFLD1,ITMFLD2,ITMFLD3


02. CA also handles fields that don’t start with a Key whereas MTB does not.

HDR,HDRFLD1,HDRFLD2,ITMFLD1,ITMFLD2,ITMFLD3,ITMFLD1,ITMFLD2,ITMFLD3

 

In this case since ITM is not a key that you see in the data, MTB does not recognize item node. However CA has a way of understanding that if a key field is not present, then it can insert a key field (conditions applied).

 

 

03. CA understands keys that have spaces under towards the end whereas MTB does not.

                    HDR  HDRFLD1HDRFLD2

                    HDRCRHDRFLD3HDRFLD4


TS recognizes both the above lines as HDR. Where as CA is able to identify HDR from HDRCR. Even if spaces are configured in the MTB, they get truncated when read by the actual module.


04. CA supports calling of other CAs. MTB does not. Just assume the case of a data coming in as a flat file with characters 3-5 determining the segments/ fields that follow afterwards.


05. Nesting of depth greater than 3 is not supported in the MTB, but is every well supported in CA.

 

 

A good solution would be to implement custom modules that you can control rather than depending on 3rd party applications. Not a difficult thing to do. The main effort is expended towards development and support of the custom modules. Most of the modules developed on these lines are at the least supported on version 7.1, 7.1 EhP1, 7.3 and 7.4 and will be supported going forward unless SAP changes it architecture drastically.

Enhancing CBMA Alerts and Message Monitoring with UDS Attributes

$
0
0

It is very difficult to understand the SAP PI alert JSON message sent to functional/business users. Business users keep asking about the key attributes for alert is generated. This requirement normally takes some custom development for earlier PI versions but for new CBMA alerts we have UDS attributes, which takes cares of this requirement.

At least, adding these attributes will let business/functional team know that for which key values errors occurred and they can contact technical team or by looking into alert error text, can take further action.

 

Business requirement

  1. Alert messages are not readable or very technical
  2. Not sure for which key fields error occurred
  3. PI Admin takes time to find messages for particular key
  4. Key/Payload based search of messages
  5. Message Monitoring Enhancement

For example– If we are sending PO information to our partner and mapping error occurred, then alert message should contain PO number as UDS attribute so that business and functional team should be aware of PO in error and take further action.

 

How UDS attributes will look like in CBMA alert message?

After setting up UDS attributes in NWA, alert messages will contain additional field at end of the message called UDSAtrrs {}.

"UDSAttrs": {"PO Number": "12345678"}

 

How to setup UDS attributes in NWA and enhance message monitoring?

Below are the steps to setup UDS attributes in NWA.

Step 1 – In NWA, goto SOA->Monitoring-> User-Defined Message Search Configuration

UDS1.PNG

Step 2 – Click on new in next page.

UDS2.PNG

Fill all details in next page – Name and description – you can fill anything to identify this UDS attributes.

Click on create to make it editable and then fill with relevant values for Sender party, Component, receiver party and component, with interface and Namespace. Select status as active and save it.

UDS3.PNG

After saving this, we need to define search criteria.

Step 3 – Click on new to create search criteria

UDS4.PNG

In Create search criteria provide Name, Description and XPath. Save it once done.

UDS5.PNG

It will look like below.

UDS6.PNG

 

You are done here with UDS configuration.

 

Benefits of UDS configuration –

 

1. A simplified monitoring in Message Monitoring

Go to Message Monitoring – You will see an additional tab for the interface you configured UDS attributes as below –

UDS7.PNG

When you go to this tab, you will see the values from Payload for which you have defined the search criteria. In above case, the PO number.

UDS8.PNG

2. User Defined search criteria and reduced search time for messages

In message monitoring, now you can use user defined search criteria to find particular PO number from all messages processed for the day or any other time variations.

UDS9.PNG

You can use User-Defined Search Criteria as below – Check User-Defined Search Criteria and click on Add Predefined to select Interface and provide User-Defined Search Criteria for interface and then value and select Ok. It will look like this and then you can click on go, to find message in particular time-frame.

UDS10.PNG

UDS11.PNG

udsmissed.PNG

UDS12.PNG

How UDS attributes will look in CBMA alerts?

Below is the screenshot of the UDS attribute in CBMA alerts sent to users/admins mailbox once UDS configuration is done.

UDS13.PNG

 

Reference:

Michal's PI tips: How to trigger an alert for Component Based Message Alerts (CBMA) via "API" ?

IFG meeting and Survey results at Teched Las Vegas

$
0
0

Normally, when blogging, you should have only one message to share. However, in this post I will share some different experiences with the IFG and SAP PI development. I hope that you can bear with me.

 

I’m just on my way home from the International Focus Group for Integration. Previously, the name was IFG for PI, but SAP integration is much broader than PI/PO. Gateway and HANA Cloud Integration and likely other integration products are available from SAP.

 

IFG for Integration - 2014 Annual Meeting in Paris.jpg.JPGWe had our annual meeting in Paris, so it was a great time to get to take some pictures with the Eiffel Tower in the background and walk around in the great evening weather.

 

IFG is a collective of members from all the different user groups on integration topics in the world. It is the different user groups /Special Interest groups (SIG) around the world that nominate members to join the IFG. If you wish to join, talk with your local user group.

 

We discussed SAP product management with Udo and Sindhu Gangadharan present at the meeting. They were sharing the roadmap session on what was delivered and what will be their future deliveries on the PI/PO/HCI. I will not be posting it here, but the roadmap will be shared during the upcoming TechEd/d-code. A lot of new features and enhancements have been added. These will be interesting to use in the customer landscape, since they solve a lot of problems for the customers. I did like what I saw, but there is always room for improvement and I’d like to see some more features and smaller changes. We may never be able to satisfy everybody with the changes, therefore this is a good common ground.

 

The interesting thing about many of the delivered innovations was something that was coming from the surveys and requirements sessions that the IFG has performed over the last few years. It will be interesting if the current survey, which has been recently performed, will lead to some new features in the upcoming releases of SAP PI/PO.

 

IFG for Integration has performed a survey during the past 6 years, to figure out what SAP customers think of about the SAP product offerings. This year we did perform the survey, with great results.

 

I’ll be sharing the information during the SAP TechEd Las Vegas Expert Networking session. Networking sessions are normally very interesting discussions that involve a lot of dialogue. I hope that you will join us at the survey discussion.

 

I’ll be presenting the results of the 2014 survey and I will reveal my interpretation of the results. Come and join me and learn about the survey. Just add the session EXP17510 to your agenda

http://sessioncatalog.sapevents.com/go/agendabuilder.sessions/?l=84&sid=17510_45605&locale=en_US

See you in Las Vegas!

Viewing all 741 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>