5Using TCC
Using TCC
Hierarchical Entities
Hierarchical Entities
Hierarchical entities are organized in a tree structure. They are composed of parents and children. The root entity has no parent and is the ancestor of all the other entities.
Types
There are two types of hierarchical entities. The rigid type such as Organization, Location and JobField in SmartOrg and the flexible type such as Department in Professional.
Rigid hierarchical entities require special attention in import operations. To create a rigid type entity you must specify its Parent. To delete a rigid type entity you must first delete all its children or move them to a new Parent.
Flexible type entities pretty much behave as regular entities in import operations. They can be created individually without a parent or structured in a hierarchy. To delete a flexible type entity its dependencies, if any, must be reassigned to another entity.
Model
We will use the Organization entity to illustrate various import operations on hierarchical entities. We will create an Organization, update its multilingual fields, reorganize it, and delete parts of it.
Here is the top of the organization:
To keep the model manageable we have only expanded the sales division. Here is the sales division:
Once the Organization has been created and updated, the sales division will be restructured. Here is the restructured sales division:
Fields
We will use the following fields and relations from the Organization entity to perform our operations:
Code: Unique identifier that provides a meaningful key. Unilingual string.
CustomerID: Customer identifier used to reference the organization in an external system for integration purposes. Unilingual string.
Name: Name of the organization instance. Multilingual string.
Parent, Organisation.Code: Unique identifier that provides a meaningful key. Unilingual string.
Industry.Number: Associated industry number that is pre-loaded in the Taleo application. Integer.
Sequence: Specified sorting order that overrides the default sorting order when viewing the entity in the Taleo application. Integer.
Finding Root Code
To find the root code, we will extract it from the entity. The root code value will be the parent code of the first record of the hierarchical entity we will create.
Taleo Connect Client is running and ready for use.
Taleo application is available for integration.
Click File, New to open the New Export Wizard.
In Product pull down menu, Select SmartOrg [Version].
In Filter, enter letter o.
Click Organization.
Select Create new export.
Click Finish. A New Export editor opens.
In General tab, select CSV header present. We will use default values for the CSV attributes.
Select Projections tab.
Drag and Drop Code, Name, and Level from Entity view to Projections list.
Select Filters tab.
Drag Level from Entity view to Filters list and select it.
In the bottom Data type drop down menu select Integer.
In value, Enter 0. Level 0 is the root level.
Save as OrgRoot-export_sq.xml in organization-export folder. Level 0 is the root level.
Click File, New to open the New Configuration Wizard.
Select Based on an export specification.
Click the Browse icon.
Navigate to organization-export folder.
Select OrgRoot-export_sq.xml.
Click on Open.
Click on Next.
Select Endpoint.
Click on Finish. A New Configuration editor opens.
In General tab, under Request, select Pre-defined value.
Click the Browse icon. A Select file window opens.
Navigate to organization-export folder.
Select OrgRoot-export_sq.xml.
Click Open. The file path and name are displayed in the dialog box.
In General tab, under Response, select Generated using an identifier.
Click the Browse icon.
Navigate to organization-export folder.
Click OK. The file path is displayed in the dialog box.
Click the Browse icon.
In the Template dialog box enter [FILE]-[NOW].
Click OK. [FILE]-[NOW] is displayed in the dialog box.
Save as OrgRoot-Extract_cfg.xml in organization-export folder.
Click the Execute the configuration icon. and wait for the workflow to complete the extraction.
Open organization-export folder.
Open CSV result file OrgRoot-export_sq-yyyyMMddTHHmmss.csv in a csv editor or notepad
The root code, organization name, and level are displayed below the header.
Code,Name,Level ROOT-ORGANIZATION,[en]=New Millenium,0
Creating an Organization
Taleo Connect Client is running and ready for use.
Taleo application is available for integration.
Updating an Organization
Updating organisation multilingual fields with the specific locale method.
Taleo Connect Client is running and ready for use.
Taleo application is available for integration.
Taleo application has more than one active language.
Modifying an Organization
Taleo Connect Client is running and ready for use.
Taleo application is available for integration.
Moving an Organization
Taleo Connect Client is running and ready for use.
Taleo application is available for integration.
Deleting an Organization
Taleo Connect Client is running and ready for use.
Taleo application is available for integration.
Filters
Last Run Date
The Last Run Date (LRD) is used in export specifications to filter records based on the value of a date field. This feature facilitates the extraction of records created or modified since the last execution of the workflow.
The LRD is set after the extract is completed and only if there were no errors during the process. The Last Run Date that is saved will be the one captured at the beginning of the process.
Files
The date and time of a successful export workflow is stored as a *.lrd file in the ...\Taleo Connect Client\lastrundates folder. The LRD file name is based on the configuration file that creates and updates it. For example: Candidate_export_cfg.xml creates or updates Candidate_export.lrd.
Because the LRD value is associated to a specific configuration file, each export specification that uses LRD filtering must be paired with its own configuration file. For example: Candidate_export_sq.xml is matched exclusively to Candidate_export_cfg.xml. Using multiple LRD export specifications with a single configuration file will cause saved LRD conflicts.
Delay
By default, LRD filtering uses the current zone time minus 5 minutes to set the LRD filter value. The default LRD minute adjustment can be modified with the following system property: com.taleo.integration.client.lrd.filtering.minute.adjustment.zone=[minute value]
Setting Last Run Date
Setting Last Run Date will create the *.lrd file with an LRD value for first time use.
The corresponding export specification file that uses the LRD filter exists.
Strip Non Numeric Characters
Non numeric characters can be removed quickly from a projection with the REGEXP_REPLACE function.
Phone numbers are commonly entered in multiple formats:
(123)456-7890
(123) 456-7890
123-456-7890
123 456-7890
This projection removes non numeric characters to output the results in the same format (1234567890) with the REGEXP_REPLACE function.
<quer:projection alias="HomePhone"> <quer:customFunction name="REGEXP_REPLACE"> <quer:field path="Candidate,HomePhone"/> <quer:string>\D</quer:string> <quer:string/> </quer:customFunction> </quer:projection>
Regular expressions are a powerful tool that can also be used for other data transformations.
Filtering vs ProjectionFiltering
<filterings> and <projectionsFilterings> have different semantics. This is to disambiguate where the filter should be applied: the driving table or a joined table.
For example, we want to create a query for the following model: Requisition -> CieLocation. This is an N relation where there are many CieLocation for one Requisition.
We create a query for Requisition and add a projection for CieLocation. If we have a <filtering> on CieLocation, it filters out Requisition that doesn’t satisfy the filter. If we have a <projectionfiltering> on CieLocation, it filters out CieLocation that doesn’t satisfy the filter.
In other words, <filtering> is a filter on an inner join and <projectionfiltering> is a filter on an outer join.
Miscellaneous
Removing Element From Collection
Taleo Connect Client can remove a specific element from a collection. When updating a record, the user can remove a specific element from a collection before adding new ones.
Taleo Connect Client is running and ready for use.
Taleo application is available for integration.
This operation is only available for removable relations. Please refer to the data dictionary entity relation summary table for documentation about removable relations.
Exporting Language Codes
Language codes can be exported in CSV-report format. The user can identify the language code associated to multilingual fields, allowing the exported string to be matched to the locale.
Taleo Connect Client is running and ready for use.
Taleo application is available for integration.
ParentName,Parentcode,ChildName,ChildLocale Corporate Headquarters,CPCORP0,Research & Development,en Corporate Headquarters,CPCORP0,Investigatiión y desarrollo,es Corporate Headquarters,CPCORP0,Recherche et développement,fr Corporate Headquarters,CPCORP0,Human Ressources,en Corporate Headquarters,CPCORP0,Recursos humanas,es Corporate Headquarters,CPCORP0,Ressources humaines,fr Corporate Headquarters,CPCORP0,Production,en Corporate Headquarters,CPCORP0,Producción,es Corporate Headquarters,CPCORP0,Production,fr Corporate Headquarters,CPCORP0,Finance,en Corporate Headquarters,CPCORP0,Finanzas,es Corporate Headquarters,CPCORP0,Finance,fr Corporate Headquarters,CPCORP0,Sales,en Corporate Headquarters,CPCORP0,Ventas,es Corporate Headquarters,CPCORP0,Ventes,fr
CSV Multilingual Field Support
The Language Token
A specialized token that contains an instruction to apply on the column definition is added to a multilingual CSV column header. It is used to support the addition of new languages by adding multilingual field columns to an existing CSV file without having to modify the corresponding load file.
To use the CSV multilingual field support in TCC-TCB:
The properties section of the CSV file MUST contain the "csv.multilingual=true" property. The property name is case sensitive and MUST be lowercase.
The CSV header MUST be present. It means that the load file MUST have "Header present" checked, and that the first row of the CSV input file data is the header.
All the CSV file header names MUST match the column path or the column alias (header) specified in the load file.
To add new multilingual field columns, at least one column of this multilingual field MUST already exist in the load file. The new column header added to the CSV file MUST be placed after all the existing column headers defined in the load file for that field. It is not mandatory to put the new header right after the last existing header, it could be placed at the end of the row.
To specify a locale, the token [locale=xx] MUST be used at the end of the header name (where xx is a specified locale for example "fr"). The "locale" token is case sensitive and MUST be lowercase.
Example
Original CSV file:
Identifier,"UserLoginname","Title","ManagerLoginname" abc123,abc123,architect,manager123
CSV file with additional multilingual fields:
#BEGINPROPERTIES csv.multilingual=true .... #ENDPROPERTIES Identifier,"UserLoginname","Title","Title [locale=fr]", "Title [locale=es]","ManagerLoginname" abc123,abc123,architect,architecte,arquitecto,manager123
Note:The locale information is optional for the initial multilingual field columns defined in the load file.
-
When the locale is NOT specified in the CSV file, the locale information is retrieved from the load file.
-
When the locale is specified in the CSV file and the "csv.multilingual=true" property is set, it always overrides the locale information from the load file.
CSV file using specific locale:
#BEGINPROPERTIES csv.multilingual=true .... #ENDPROPERTIES Identifier,"UserLoginname","Title [locale=fr]","ManagerLoginname" abc123,abc123,architecte,manager123
Internal Load File
When TCC loads a set of additional multilingual columns, it creates an internal load file that matches the structure of the CSV file. The attribute values for the new columns are copied from the first multilingual column defined in the load file. The locale token value sets the locale attribute value for each new column.
Original Load File
<load:column parameter="1" type="DATA" path="CorrespondenceEmail" ignoreEmpty="true" localeType="NONE"/> <load:column parameter="1" type="DATA" path="Title" ignoreEmpty="true" localeType="DEFAULT"/> <load:column parameter="1" path="Department,CostCenter" searchType="NONE" localeType="DEFAULT" type="DATA"/>
New CSV File
#BEGINPROPERTIES csv.multilingual=true #ENDPROPERTIES CorrespondenceEmail,Title,"Title [locale=fr]", "Department,CostCenter","Department,CostCenter [locale=fr]" abc123@xyz.com,plumber,plombier,plumbing,plomberie
Internal Load File
<load:column parameter="1" type="DATA" path="CorrespondenceEmail" ignoreEmpty="true" localeType="NONE"/> <load:column parameter="1" type="DATA" path="Title" ignoreEmpty="true" localeType="DEFAULT"/> <load:column parameter="1" type="DATA" path=" Title" ignoreEmpty="true" localeType="SPECIFIC" localeValue="fr"/> <load:column parameter="1" path="Department,CostCenter" searchType="NONE" localeType="DEFAULT" type="DATA"/> <load:column parameter="1" path="Department,CostCenter" searchType="NONE" localeType="SPECIFIC" localeValue="fr" type="DATA"/>
Note that only the locale attributes are different for the new columns, all the others are the same.
UDF with Standard Name Export
How to export a UDF that has the same name as a standard field using TCC without any XML modification.
When a UDF and a standard field share the same name, the standard field is exported. If the UDF is a selection, you get an error message when trying to export the description of the code.
The workaround for this problem is adding "CustomField:" in the field name.
For example, "Candidate,Prefix" is a standard field. To extract the UDF, you must use "Candidate,CustomField:Prefix".
The same is true for a selection UDF, "Candidate,CustomField:Prefix,Description".
Integration with RSOFFER module
When a candidate selection workflow includes the RSOFFER, there are various integration restrictions/limitations using TCC.
The following tasks can be done using TCC:
TCC can export draft offers and import them back using Offer number as key. Example would be to update Salary, Pay Basis and Pay Frequency Basis.
After few manual steps, TCC can export the "approval pending" data and import them back as "offer approved" based on the approval list thats pre-defined.
The following tasks cannot be done using TCC:
Cannot create a new offer record.
Cannot use CSW MOVE operation to move from a step and status to another with in RSOFFER module.
Cannot request for offer approval using TCC. It has to be a manual process.
Temporary File Compression
The compression feature for temporary files is now activated by default. The compressed temporary files now have a "zip"extension instead of a "tmp" extension.
This feature:
-
Reduces the risk of reaching the 4 gigabyte maximum file size limitation due to the 32 bit JDK.
-
Increases communication speed between each work-flow step.
-
Saves disc space.
You can deactivate the compression mode by adding the following parameter in your TaleoConnectClient.ini file available under your TCC installation path.
-Dcom.taleo.integration.compress.tempfile=false(or FALSE)