Demo Integration Implementation – Synchronize an SAP Team-Calendar with a Lotus Notes Team-Calendar.
In the last part, I introduced the basic ideas of the integration between Lotus Notes and the SAP XI. If the HTML version of that part is not your favourite, you can download the PDF version here.
In this part, I’m going to show you an interesting integration implementation – synchronize the SAP Team-Calendar with the Lotus Notes Team-Calendar.
Background and Requirements: In some big companies, several departments are using the IBM Lotus Notes to manage their daily work and appointments. However, others are using SAP systems. It would be very convenient for the SAP/Notes users to check the calendar entries entered in the other systems. With the help from the SAP XI and our adapter, the colleagues can arrange their appointments efficiently across the heterogeneous systems.
Project description: In this demo project, we’ll just transfer the Team-calendar entries from Lotus Notes into the SAP R/3 system. A small ABAP program was created in the SAP R/3 system to receive the calendar entries from SAP XI and show them in a simple screen. On the other side, a Notes Team-Calendar program for development was constructed, which gathers the calendar entries from a productive Lotus Domino system.
In the first phase, we concentrate on the implementation on the SAP XI server.
Integration Repository, we will do the following:
1.Import the SWCV created for this project from the SLD.
Figure 1: Import SWCV into Integration Repository.
2.Create a namespace in the SWCV and activate the permission for importing RFC interfaces from SAP systems.
Figure 2: Create namespace and activate RFC import.
3.Import the RFC from the SAP R/3 Backend system, which was created by our ABAP developer.
Figure 3: Import the RFC from SAP R/3 system.
4.Import the XSD file for the Team-calendar document on the Domino side. This file was created by the “XSD-Maker”, which is a companion program of the XInotes adapter. We will show how to use it to accelerate your work with Lotus Notes/Domino in the last part. At this point, you can assume that this program will generate XSD file from the Notes documents for you. A lot of time can be saved from entering the field names from Notes into SAP XI message type definition.
Figure 4: Import the XSD file as External Definition.
5.Create message interfaces for the Notes and SAP R/3 directions.
Notes direction — > Outbound Asynchronous
Figure 5: Outbound Asynchronous message interface for Sender.
SAP R/3 direction — > Inbound Asynchronous
Figure 6: Inbound Synchronous message interface for Receiver.
6.Create Message Mapping for these two message types. The message mapping could be very complicated. It depends on your own implementation.
Figure 7: Message mapping between Notes documents and SAP RFC parameters.
7.Create the Interface Mapping.
Figure 8: Create interface mapping.
8.In the Chang List activate all the changes.
All the work in the Integration Repository has been done. The following steps will be constructed in the Integration Directory.
1.Create a new Configuration Scenario.
2.In the configuration scenario, create a new Business Service and import the message interfaces defined in the Integration Repository.
Figure 9: Import the message interfaces from Integration Repository.
3.Create two communication channels in the business service.
A sender channel to fetch the Notes documents from a Domino server. In this step, you can see the details of the sender part from the XInotes adapter.
Enter the technical parameters for a Notes database.
Figure 10: Technical parameters for XInotes adapter.
1). Enter the Domino server name. This could be an IP address or a DNS name, e.g. “domino02.dev-kon.mannheim.conet.de”.
2). Enter the port number, on which the DIIOP service is working.
3). Enter the database path and name.
Enter the user name and password:
Figure 11: User identification.
1). Enter the user name. This user can be technical user. The user name can also be a fully qualified Notes Client user, e.g. “Xiang Zhang/OU/conet”.
2). Enter the password for this user (case-sensitive).
Enter the processing parameters for the adapter:
Figure 12: Enter the processing parameters.
1). Enter the interval for the adapter. The Sender part of the XInotes adapter works a little like the SAP File adapter as a background process. It can fetch the Notes documents in a user-defined interval, e.g. “get the Notes documents from the server every 5 minutes (300 seconds).
2). Enter the Notes view name (optional). The most Notes developers organize their documents with views. It is very convenient for them to use the view again in the SAP XI. The view name supports all the valid view names defined in the Lotus Notes, inclusive the name starting with braces (hidden view in Lotus Notes), e.g. “(XI Output View)”.
3). Enter the Notes Form name (optional). In some cases, a Notes view contains a lot documents which are created with different Notes Forms. Every Notes Form defines its own fields. Maybe some fields are same in different forms, but most are not. For SAP XI and the XInotes adapter, only the documents created with the same Form can be correctly processed. Otherwise, there would be a problem in the message type definition and the message mapping.
4). Select what should the adapter transfer into the SAP XI. There’re four transfer options:
Figure13: Data transfer options.
5). Enter the maximal document number, which the XInotes adapter can work on a Domino server. This number builds an important protection mechanism for the Domino server. E.g. You want the adapter to fetch all the documents (10,000) contained in a view. This action needs a lot of resources (memory, CPU, network) on the Domino server. When the JavaMaxHeapSize in the Notes.ini file is not correctly specified, the JVM may reach its maximum size and an exception will be thrown. If this situation occurs, it could take the processes of other users into risk or even worse, the whole server does not response any longer. But if this parameter is entered correctly in the adapter (after carefully planned and tested on a development server), it can protect the Domino server from over-loading.
Enter the Search Parameters if they’re required:
Figure 14: Search parameters.
1). Enter the Notes Formula in the “Advanced Search”. This formula will be forwarded to the “Database.Search” method. This parameter is only considered when the View name is not entered.
2). Enter the Search Fields/Values if required. This action may fully load the Domino server and the maximal document number will be used again to protect the server. The adapter will first check the whole collection of documents, which will be search. If the count of this collection is bigger than the maximal document number, the adapter will refuse executing the search request in order to protect the Domino server.
3). If a view sorted through some columns, you can find your documents very quickly by using this option.
Enter the update parameters if required:
Figure 15: Update parameters.
1). Enter the field name, which will be updated. If the field does not exist in a document, a new field will be created.
2). Select the data type for this field. Available options are: “Integer”, “String”.
3). Enter the update value. The Notes @function can be entered, e.g- @Today, @Now, @Date.
Enter the transport parameter:
Figure 16: Transport parameter.
1). Enter the count of documents, which the adapter should transfer in a single XI message. E.g. there’re 800 Notes documents to be transferred. The document number is set to 300. The XInotes adapter will send 3 XI messages to the integration engine. The first two messages contain 300 Notes documents and the last one contains only 200. Between each XI message, the adapter will wait 2 seconds. This option can reduce the CPU-loading on the Domino server and help the user to find errors in Notes documents quickly.
Enter other parameters:
Figure 17: Other parameters.
1). Enter the name for the XML root element, which will be built by the adapter. This name should be the same as the Message type name defined in the Integration Repository.
2). Activating the “Document Refresh” option, will let the adapter to call the “NotesDocument.computeWithForm” method.
3). Activating the “Sort Function” option, will let the adapter to sort the field names alphabetically.
4). Activating the “Clean $-Fields” option, will cause the field “$UpdatedBy” NOT to be included in the XML message.
Now you have a view deep inside the sender part of the XInotes adapter. The adapter can transport all the Notes documents from the Team-Calendar database on the Domino server into the SAP XI.
4.Create a RFC channel as receiver.
Figure 18: Create RFC channel.
5.Create a Receiver Determination for the Business Service.
Figure 19: Create Receiver Determination.
6.Create a Sender Agreement for the Business Service.
Figure 20: Create Sender Agreement.
7.In the Chang List activate all the changes.
The scenario is now started. The XInotes adapter builds a DIIOP session with the Domino server, and goes to the view “XINON_Processed”. Just as its name indicates, this view contains all the documents to be processed by the adapter. After processing, the adapter will update a value for each document. Then they will be transferred to another view – “XIProcessed”.
1. In the Notes Team-Calendar, there are a lot of new entries will be created every day.
Figure 21: Entries in the Notes Team-Calendar
2. In the view “XINON_Processed”, all newly created Team-Calendar documents will be gathered for the XInotes adapter.
Figure 22: XINON_Processed view
3. After transporting into the SAP XI, a field “XI_FLAG” in these documents will be updated by the adapter with the value “1”.After updating, they will be switched into another view “XIProcessed”.
Figure 23: XIProcessed view
4. The new entries are transported into the SAP XI.
Figure 24: Team-Calendar entry in SAP XI.
5. The XInotes adapter reports the status in the Communication Channel Monitoring.
Figure 25: Status report in channel monitoring
6.In the SAP R/3 system, the corresponding entries are inserted.
Figure 26: Team-Calendar entries in the SAP R/3
How the Notes Team-Calendar will be transported, what in the Notes documents should be transported, how to handle the processed Notes documents? All these things will be solved by the XInotes adapter. The XI developers need concentrate themselves only on the business logic implementation.
The video record for this demo project you can download from our website.