In this chapter, we will discuss all about what an Infoset is, how to create and edit them, and what are its different types.
Infosets are defined as a special type of InfoProviders where the data sources contain a join rule on the DataStore objects, standard InfoCubes or InfoObject with master data characteristics. Infosets are used to join data and that data is used in the BI system.
When an InfoObject contains time dependent characteristics, then that type of a join between data sources is called as a temporal join.
These temporal Joins are used to map a period of time. At the time of reporting, other InfoProviders handle time-dependent master data in such a way that the record that is valid for a pre-defined unique key date is used each time. You can define a Temporal join as a join that contains at least one time-dependent characteristic or a pseudo time-dependent InfoProvider.
An InfoSet can also be defined as a semantic layer over the data sources.
Infosets are used to analyze the data in multiple InfoProviders by combining master data characteristics, DataStore Objects, and InfoCubes.
You can use the temporal join with InfoSet to specify at a particular point of time when you want to evaluate the data.
You can use reporting using the Business Explorer BEx on DSO’s without enabling the BEx indicator.
As Infoset is defined where data sources contain the join rule on DataStore objects, standard InfoCubes or InfoObject with the master data characteristics. The data joined using Infosets are available to use in BEx queries for reporting. The joins can be divided into the following queries −
This join returns rows when there is a complete match in both the tables.
Table - 1
OrderID | CustomerID | OrderDate |
---|---|---|
1308 | 2 | 18-09-16 |
1009 | 17 | 19-09-16 |
1310 | 27 | 20-09-16 |
Table - 2
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Andy | Maria | Germany |
2 | Ana | Ana T | Canada |
3 | Jason | Jason | Mexico |
The Inner join result on Table 1 and Table 2 on the CustomerID column will produce the following result −
OrderID | CustomerName | OrderDate |
---|---|---|
1308 | Ana | 09-18-16 |
A left outer join, or left join, results in a set where all of the rows from the first, or left hand side, table are preserved. The rows from the second, or right hand side table only show up if they have a match with the rows from the first table.
Table – 1
gid | first_name | last_name | birthday | favorite_tool |
---|---|---|---|---|
1 | Albert | Einstein | 1879-03-14 | mind |
2 | Albert | Slater | 1973-10-10 | singlet |
3 | Christian | Slater | 1969-08-18 | spade |
4 | Christian | Bale | 1974-01-30 | videotapes |
5 | Bruce | Wayne | 1939-02-19 | shovel |
6 | Wayne | Knight | 1955-08-07 | spade |
Table – 2
pid | gardener_id | plant_name | fertilizer | planting_date |
---|---|---|---|---|
1 | 3 | rose | yes | 2001-01-15 |
2 | 5 | daisy | yes | 2020-05-16 |
3 | 8 | rose | no | 2005-08-10 |
4 | 9 | violet | yes | 2010-01-18 |
5 | 12 | rose | no | 1991-01-05 |
6 | 1 | sunflower | yes | 2015-08-20 |
7 | 6 | violet | yes | 1997-01-17 |
8 | 15 | rose | no | 2007-07-22 |
Now, if you apply Left Outer Join on gid = gardener_id, the result will be the following table −
gid | first_name | last_name | pid | gardener_id | plant_name |
---|---|---|---|---|---|
1 | Albert | Einstein | 6 | 1 | sunflower |
2 | Albert | Slater | null | null | null |
3 | Christian | Slater | 1 | 3 | rose |
4 | Christian | Bale | null | null | null |
5 | Bruce | Wayne | 2 | 5 | daisy |
6 | Wayne | Knight | 7 | 6 | violet |
In the same way, you can use the right outer join where all the rows from the right tables are preserved as common rows.
Temporal Joins are used to map a period of time. At the time of reporting, other InfoProviders handle time-dependent master data in such a way that the record that is valid for a pre-defined unique key date is used each time. You can define Temporal join that contains at least one time-dependent characteristic or a pseudo time-dependent InfoProvider.
When a table is joined to itself, which is like you are joining a table twice.
Go to RSA Workbench and use the Transaction Code: RSA1
Under Modeling → Go to InfoProvider tab → Right click → Create InfoSet.
In next window that comes up, you can fill in the following fields −
Start with the InfoProvider section − Here you can define the object that you want to use while defining an InfoSet. You can select from following object types −
In the next window, change how the InfoSet screen appears. Click on Select InfoProvider option. This will allow you to select the InfoProvider to which data is joined.
The following screen will appear with two InfoProviders selected.
To activate this InfoSet, click on the Activate button.
To edit an Infoset, please use T-Code: RSISET
The Edit InfoSet: Initial Screen appears as shown in the following screenshot −
Make the changes to the InfoSet. Select Join type, etc. and then Click on the Activate icon as shown in the following screenshot.