It was in 2010 when I first came across Component Interface and honestly I tried everything possible to get the mystery solved as to what is the rationale behind having such an entity in the first place. But, when the things started unfolding every passing day, I began realizing that life in PeopleSoft would have lot tougher had the CI not been there.
So lets cut to the chase and understand what is this component interface that we are talking about. Before we go any further I would like to share a word of advice to all PeopleSoft techies that if you guys aren't comfortable with CI then go through this article and get the concepts clear because its gonna make your life hell lot easier.
Please also see
Simplified Way to Provide a Page Access in PeopleSoft
Understanding Dynamic prompts in PeopleSoft
Implementing parallel processing using Application Engine in PeopleSoft
Adding and Maintaining Person Of Interest in PeopleSoft
PeopleSoft Set Control Field
Peoplesoft Row Level Security Search Records
SQL Query for Max Effective (MAX (EFFDT) dated row from JOB table
PeopleSoft Set Control Field Concept and Tableset Sharing
Understanding Future dated security in PeopleSoft
PeopleSoft 9.1 Person Model
PeopleSoft HRMS Online Training
Let's suppose, one fine day business sent you an excel sheet containing pay increase data of 200 employees and asked to load them into PeopleSoft through Job Data page, what would you do to complete the task ?
We essentially have only two options:
Looking at the diagram above, one can easily understand how the data flows up to database tables through both of these methods so lets try to determine which method is better.
According to first method, we need to just login into PIA, open the Job Data component and do the transaction for each of the 200 employees one by one which is gonna take forever however, its more reliable and there is no room for the data to be corrupt because when we do the transaction through PIA, the underlying business logic associated with the component is executed which ensures that the data is ultimately loaded into desired tables correctly.
The second method however says that we can directly run an SQL update on the desired tables (JOB, COMPENSATION etc...) for each employees which will ultimately load the data into database. But, this method is highly unreliable as there are great chances of data becoming corrupt and inconsistent since as you can see in the diagram also, its bypassing the business logic which is mandatory here.
Now what ? we are left with the method 1 but as we already saw that doing the transaction for each of the 200 employees one by one is gonna take several hours and moreover, there is a little room for human error due to which data might be wrongly updated, But, if we can somehow automate this manual work then nothing could be better than this.
To automate this we need an entity to which the required field values for the component can be passed and then that entity subsequently can pass those field values to the Job Data component which will ultimately execute the transaction and load the data into database. The entity which we just talked about is nothing but Component Interface.
To understand a component interface let's first understand what is a Component in PeopleSoft?
Please also see
'Override Position Data' and 'Use Position Data' Option in Job Data Page
Hiring a Person in PeopleSoft
How to find the List of Users Assigned to a Role
How the Various Date Fields on Employment Data Page are Updated
PeopleSoft 9.1 Person Model
How to Resolve a Row Level Security Issue in PeopleSoft
Part Time/Full Time, Regular/Temporary and Contingent Workers in PeopleSoft
SQL Query to Find Direct Reports for a Manager in PeopleSoft
FTE For Multiple Jobs in PoeopleSoft
How the FTE is Calculated in PeopleSoft
Business Unit, Company and Regulatory Region in PeopleSoft
A Component represents a complete business transactions and is made up of pages. For example, the Job Data component represents various organizational transactions (Rehire, Transfer, Data Change etc...). In order for a component to carry out a business transaction we must execute it through PIA manually.
But what if we have a requirement where the component need to be called from another application (PeopleCode, Excel to CI, Java, XML etc...) yet the underlying business logic built for component can also be executed to carry out a safe business transaction ?
That's exactly what the CI does, it works as a mediator between these applications and the component by taking the field values from these applications and passing them to the respective component which ultimately completes the business transaction.
The Component Interface encapsulates all the fields of the component its created for, and exposes them to the other applications as shown in the diagram above. But, the fields which are not needed to be exposed can be removed so that only the required fields are left. For example, in our case since we need to update the Compensation Rate for employee hence values only for the key fields, action/action reason, compensation rate need to be provided to the Job Data component but if we create a CI for Job Data component then by default the CI will contain all the fields of the component. Hence, we can remove all the non-required fields from CI and keep only the required fields,
Let's get back to the requirement at hand, I believe by now you would have certainly understand that the data of 200 employee should loaded only with the use of CI. As I already mentioned that the CI needs to be called from another application but which one will be the most appropriate one that we need to figure out. Since the data has been sent in an excel sheet and moreover its a one time activity so the use of Excel to CI will be most suitable and efficient.
Excel to CI is nothing but, as name suggests, the input values for the selected fields can be passed to CI from MS Excel and then CI reads the input, pass it to the component for further processing.
So now we will pass all the 200 rows of data for the required fields to component interface through MS Excel at once. The CI will then read the data row by row on its own and pass the field values to Job Data component which will ultimately do the transaction. Note that, the way the transactions are done automatically for all 200 rows one by one is the same as if we are doing the transaction through PIA for 200 rows one by one manually.
So if we just include this third method in our first diagram then it will look like:
I have a complete session in two parts which explains:
CI Part 1
CI Part 2
Click here to know how it works
However, if you want to save money by purchasing whole module instead of in parts then visit this page to get more details PeopleSoft Functional and technical online training
So lets cut to the chase and understand what is this component interface that we are talking about. Before we go any further I would like to share a word of advice to all PeopleSoft techies that if you guys aren't comfortable with CI then go through this article and get the concepts clear because its gonna make your life hell lot easier.
Please also see
Simplified Way to Provide a Page Access in PeopleSoft
Understanding Dynamic prompts in PeopleSoft
Implementing parallel processing using Application Engine in PeopleSoft
Adding and Maintaining Person Of Interest in PeopleSoft
PeopleSoft Set Control Field
Peoplesoft Row Level Security Search Records
SQL Query for Max Effective (MAX (EFFDT) dated row from JOB table
PeopleSoft Set Control Field Concept and Tableset Sharing
Understanding Future dated security in PeopleSoft
PeopleSoft 9.1 Person Model
PeopleSoft HRMS Online Training
Let's suppose, one fine day business sent you an excel sheet containing pay increase data of 200 employees and asked to load them into PeopleSoft through Job Data page, what would you do to complete the task ?
We essentially have only two options:
- Load each employee one by one through Job Data component in PIA
- Run a SQL update to directly load the data into database
Looking at the diagram above, one can easily understand how the data flows up to database tables through both of these methods so lets try to determine which method is better.
According to first method, we need to just login into PIA, open the Job Data component and do the transaction for each of the 200 employees one by one which is gonna take forever however, its more reliable and there is no room for the data to be corrupt because when we do the transaction through PIA, the underlying business logic associated with the component is executed which ensures that the data is ultimately loaded into desired tables correctly.
The second method however says that we can directly run an SQL update on the desired tables (JOB, COMPENSATION etc...) for each employees which will ultimately load the data into database. But, this method is highly unreliable as there are great chances of data becoming corrupt and inconsistent since as you can see in the diagram also, its bypassing the business logic which is mandatory here.
Now what ? we are left with the method 1 but as we already saw that doing the transaction for each of the 200 employees one by one is gonna take several hours and moreover, there is a little room for human error due to which data might be wrongly updated, But, if we can somehow automate this manual work then nothing could be better than this.
To automate this we need an entity to which the required field values for the component can be passed and then that entity subsequently can pass those field values to the Job Data component which will ultimately execute the transaction and load the data into database. The entity which we just talked about is nothing but Component Interface.
To understand a component interface let's first understand what is a Component in PeopleSoft?
Please also see
'Override Position Data' and 'Use Position Data' Option in Job Data Page
Hiring a Person in PeopleSoft
How to find the List of Users Assigned to a Role
How the Various Date Fields on Employment Data Page are Updated
PeopleSoft 9.1 Person Model
How to Resolve a Row Level Security Issue in PeopleSoft
Part Time/Full Time, Regular/Temporary and Contingent Workers in PeopleSoft
SQL Query to Find Direct Reports for a Manager in PeopleSoft
FTE For Multiple Jobs in PoeopleSoft
How the FTE is Calculated in PeopleSoft
Business Unit, Company and Regulatory Region in PeopleSoft
A Component represents a complete business transactions and is made up of pages. For example, the Job Data component represents various organizational transactions (Rehire, Transfer, Data Change etc...). In order for a component to carry out a business transaction we must execute it through PIA manually.
But what if we have a requirement where the component need to be called from another application (PeopleCode, Excel to CI, Java, XML etc...) yet the underlying business logic built for component can also be executed to carry out a safe business transaction ?
That's exactly what the CI does, it works as a mediator between these applications and the component by taking the field values from these applications and passing them to the respective component which ultimately completes the business transaction.
The Component Interface encapsulates all the fields of the component its created for, and exposes them to the other applications as shown in the diagram above. But, the fields which are not needed to be exposed can be removed so that only the required fields are left. For example, in our case since we need to update the Compensation Rate for employee hence values only for the key fields, action/action reason, compensation rate need to be provided to the Job Data component but if we create a CI for Job Data component then by default the CI will contain all the fields of the component. Hence, we can remove all the non-required fields from CI and keep only the required fields,
Let's get back to the requirement at hand, I believe by now you would have certainly understand that the data of 200 employee should loaded only with the use of CI. As I already mentioned that the CI needs to be called from another application but which one will be the most appropriate one that we need to figure out. Since the data has been sent in an excel sheet and moreover its a one time activity so the use of Excel to CI will be most suitable and efficient.
Excel to CI is nothing but, as name suggests, the input values for the selected fields can be passed to CI from MS Excel and then CI reads the input, pass it to the component for further processing.
So now we will pass all the 200 rows of data for the required fields to component interface through MS Excel at once. The CI will then read the data row by row on its own and pass the field values to Job Data component which will ultimately do the transaction. Note that, the way the transactions are done automatically for all 200 rows one by one is the same as if we are doing the transaction through PIA for 200 rows one by one manually.
So if we just include this third method in our first diagram then it will look like:
You can gain in-depth knowledge on CI with a live example by just paying below amount
I have a complete session in two parts which explains:
- How CI works - Overview, all the elements of CI etc..
- Creating an Inbound interface, that loads data on a multi level component using CI and App Engine
CI Part 1
CI Part 2
Click here to know how it works
Understanding Componenet Interface in PeopleSoft.............you may want to check your spelling first!
ReplyDeleteNice explanation on PeopleSoft CI. Thank you!
ReplyDeleteCan you please share study material for Application engine and App packages..Please send it to erpoojadhall@gmail.com
ReplyDeleteI would be highly obliged..
Hi Pooja,
DeleteHonestly i don't have have any study material on app engine which by just reading you could get a good hold on app engine. What i believe is that if someone actually shows u all the things that we do in app designer and explain them along then you learn the things much much quicker than if you only read it through peoplebooks or any other material for that matter.
If at all you are interested in learning app engine or peoplesoft for that matter then i can train you. We can discuss on it further.
If at all you or any of your friends are interested then you can give me a call on 8800648297 to discuss further.
A great online marketing company for tech support inbound calls, Inbound Technical Support call by osiel web
ReplyDelete