If you regularly work with Integration Flows and related objects in the NWDS SAP Integration Designer, then earlier or later you will come across the search functionality. The Search PI Objects view offers a search which relies on a local client-based index. The index is built each time after the login if the property “Enable content indexing for object references in search and system landscape” is enabled. The search shows findings in object keys as well as findings in referenced objects.
If the property is disabled or index can’t be created, you will get only reduced result set which is based on object keys only:
Unfortunately, the indexing of content is slow. I guess, your coffee consumption after login to the Integration Flow tooling increased in the past months where you worked from home with a slower network – login, and wait, and wait, and wait… until content indexing run is ready.
But a local client-based index has another major drawback – it is never updated (… unless you press “Update Search Index” and go for another cup of coffee). That means, if your colleague made a change, created a new object, deleted an object, transported an object in the meantime – your search does not reflect those changes and you cannot rely on the shown search results.
PI Configuration Search
These reasons brought us to rework the search functionality and we are happy to introduce a new PI Configuration Search which is available in the NWDS SAP Integration Designer starting with 7.50 SP22. The major differentiator of the new search is that it is executed on the server and so always reflects the latest content.
PI Configuration Search is integrated into standard Eclipse search dialog. Use Search -> PI Configuration… menu or the search menu in the toolbar to get there.
In contrast to the old search, the PI Configuration Search is object type specific and attribute-based. As first step of the search, select a value from the Object Type combo box. Your last selection is memorized by the dialog. You can select any object type which is supported by Integration Flow tooling.
The content of the Attributes table is updated dependent on the selected object type and shows all key fields and in some cases also other useful attributes (e. g. agency, schema for Value Mappings) by default.
In case the standard selection doesn’t fit you needs you can select a different attribute from the combo box available in each cell in the Attribute column. Beside key attributes, you can search for some object-type specific attributes, description and administrative information like responsible person, date of last change and others.
You can add more attribute lines by pressing ‘+’ button below the table or remove a selected line by selecting ‘-‘ button.
Different attributes are combined with AND in the resulting search query. Same attributes are combined with OR. You can formulate complex queries containing several attributes. Search pattern preview helps you to understand how the attributes are combined with each other.
The column Operation in the Attributes table allows you to select a different operation if the default operation doesn’t fit your needs. The list of available operations depends on attribute type. If you want to search using a wildcard (supported wildcards are ‘*’ meaning any string and ‘?’ meaning any character) use operation like or not like.
Finally enter a value which you want to search for. Be aware that search is case-sensitive. That means, that a search for “xipattern” and “XiPattern” will lead to different result sets! This fact is probably a bit unusual nowadays, but it is a toll which we have to pay if the basis framework underneath is getting a bit older.
For most attributes you can type a value directly into the cell, or use an offered F4 help, or select the value from a combo box.
Once you hit the “Search” button the search query is executed on the server. This guarantees that search operates on up-to-date data and always returns current results. The results are shown in PI Configuration Search Result view, which opens automatically when search is executed (alternatively you can open it via menu Window -> Show View -> PI Configuration Search Result).
The view shows for which object type the query was executed and the search query pattern. In the right lower corner, you can see how many objects were found for the given query.
Sometimes the number of lines in the result and the number of unique objects can deviate. This happens when an attribute has multiple values. One prominent example are the module names in communication channels. Usually, multiple modules are assigned to the module chain. Therefore, in some cases multiple lines are shown for the same object, like in this example:
Per default, the search result view shows like search dialog only the key attributes. However, you can always adjust the set of visible columns using the “Show/hide columns” button in the upper right corner. It offers you same set of columns as the search dialog. You can decide which columns to display and in which order. The last filter selection per object type is memorized and will be used also for subsequent search queries. For the above example with module names the “Show/hide columns” filter is defined as following:
You can open an object from the result view by double clicking on a line, pressing enter on your keyboard when a line is selected or using right mouse context menu ‘Open’.
Where-Used List
In the context menu you will also find another new functionality which was made available during the same development – it is the “Where-Used List”, also known as cross-reference search.
Even if the old Search PI Object view combines search and some kind of where-used functionality in one view, it was not possible to trigger “where-used” query explicitly for an object so far. With SP22 we make cross-reference search, which you probably know form the old Swing tools also available in the NWDS SAP Integration Designer.
You can trigger the “Where-Used List” from context menu for a selected object in the PI Explorer, from PI Configuration Search Result view or from Where-Used List view.
The results of cross-reference search are shown in the Where-Used List view. The view opens automatically when the functionality is triggered. Or you can alternatively open it via Window -> Show View -> Where-Used List.
The view is showing all objects which are referencing the given object. Objects, which are generated during deployment, like Integrated Configuration or embedded communication channels are shown underneath the corresponding Integration Flow node and marked with an overlay icon.
You can open the objects using right mouse click context menu or via double click (alternativly press enter on the keyboard). Or you can trigger further where-used list operations if you need to find cross-reference over multiple objects.
The view allows you to show the history of last five queries in order to access these results quickly and allows you to navigate back and force between the queries in the history:
Sometimes “Link with editor” functionality of this view can be interesting for you. When the button is toggled (means “Link with editor” is on), the view will react on the changes to the open editors and will update the content of the view and show the cross-references for currently selected object on the fly.
‘Where-Used in Configuration’ for NWDS ESR
You probably are now asking, and what is about the ESR objects – can I find out if an operation mapping is used in Integration Flow? The good news is – yes, it is now possible as well!
The existing NWDS ESR Where-Used functionality supported so far only cross-reference between ESR objects. Now we go one step forward and offer “Where-Used in Configuration” for ESR objects like operation mapping, service interfaces, IDoc, RFC and Adapter Metadata – objects which can be directly used by the configuration. The functionality is integrated into ESR Search Result view, Enterprise Service Browser tree and ESR Where-Used result view and will help you to find, whether a design object is used by any configuration object.
The result of this query is shown in the Where-Used List view, as described above for configuration objects: