TCC – Lower Child Entity Structure in the GUI

It would seem that you can progress further into an entity than indicated by the entity structure listed in TCC.  This is some really great news.  The issue is that I needed to return the Agency when the hire type was going to be contingent.  But when digging down the application entity, you’re halted at Candidate,TalentUser,Profile,RecruitmentSource as seen here:

It seems that if you know the path to a related entity (including child entities) you can dig in and show that information, for example:
Candidate,TalentUser,Profile,RecruitmentSource,ParentSource,Description will actually return the agency name.


TCC – Max Function

I killed myself for hours on this, still never got it but it was created for me by a smarter mind:

<quer:filtering xmlns:quer="http://www.taleo.com/ws/integration/query">
<quer:or>
<quer:equal>
<quer:field path="ProfileInformation,Experiences,DisplaySequence"/>
<quer:query projectedClass="Application" alias="expSubQuery">
<quer:projections>
<quer:projection>
<quer:maximum>
<quer:field path="ProfileInformation,Experiences,DisplaySequence"/>
</quer:maximum>
</quer:projection>
</quer:projections>
<quer:filterings>
<quer:filtering>
<quer:equal>
<quer:field ownerQuery="expSubQuery" path="Number"/>
<quer:field ownerQuery="mainQuery" path="Number"/>
</quer:equal>
</quer:filtering>
</quer:filterings>
</quer:query>
</quer:equal>
<quer:isNull>
<quer:field path="ProfileInformation,Experiences,DisplaySequence"/>
</quer:isNull>
</quer:or>
</quer:filtering>

TCC – Case by Value

So we’ve established that case can be done by criterion or value.  Criterion has been done previously in the blog, here is how to do it by value:


<quer:projection alias="testCase" xmlns:quer="http://www.taleo.com/ws/integration/query">
<quer:switchByValue>
<quer:baseValue>
<quer:field path="Requisition,JobInformation,HireType,Description"/>
</quer:baseValue>
<quer:cases>
<quer:case>
<quer:string>Contingent</quer:string>
<quer:string>This is temp work</quer:string>
</quer:case>
</quer:cases>
<quer:defaultValue>
<quer:string> </quer:string>
</quer:defaultValue>
</quer:switchByValue>
</quer:projection>

TCC – LessThanOrEqual (Expirience)

This is a less than or equal to X to return work experiences.

<quer:filtering xmlns:quer="http://www.taleo.com/ws/integration/query">
 <quer:or>
 <quer:lessThanOrEqual>
 <quer:field path="ProfileInformation,Experiences,DisplaySequence"/>
 <quer:integer>1</quer:integer>
 </quer:lessThanOrEqual>
 <quer:isNull>
 <quer:query projectedClass="Experience" alias="My_Exp_SubQuery">
 <quer:projections>
 <quer:projection alias="My_Exp_Alias">
 <quer:field path="DisplaySequence"/>
 </quer:projection>
 </quer:projections>
 <quer:filterings>
 <quer:filtering>
 <quer:equal>
 <quer:field path="Number"/>
 <quer:field ownerQuery="NewHire" path="ProfileInformation,Experiences"/>
 </quer:equal>
 </quer:filtering>
 </quer:filterings>
 </quer:query>
 </quer:isNull>
 </quer:or>
</quer:filtering>

 


TCC – LessThanOrEqual (study)

This is a query that returns the top X elements in the study class


<quer:filtering xmlns:quer="http://www.taleo.com/ws/integration/query">
 <quer:or>
 <quer:lessThanOrEqual>
 <quer:field path="ProfileInformation,Studies,DisplaySequence"/>
 <quer:integer>1</quer:integer>
 </quer:lessThanOrEqual>
 <quer:isNull>
 <quer:query projectedClass="Study" alias="My_Study_SubQuery">
 <quer:projections>
 <quer:projection alias="My_Study_Alias">
 <quer:field path="DisplaySequence"/>
 </quer:projection>
 </quer:projections>
 <quer:filterings>
 <quer:filtering>
 <quer:equal>
 <quer:field path="Number"/>
 <quer:field ownerQuery="NewHire" path="ProfileInformation,Studies"/>
 </quer:equal>
 </quer:filtering>
 </quer:filterings>
 </quer:query>
 </quer:isNull>
 </quer:or>
</quer:filtering>


TCC – Case by Criterion

Had a field that either needed to be an employee number or 777777 to signify that it’s not a rehire.  I had to use a case statement based on criterion, so I set the default value to 777777 and if it’s isNotNull then it’s the number, I was stoked when it finally worked.


<quer:projection alias="EmployeeID" xmlns:quer="http://www.taleo.com/ws/integration/query">
  <quer:switchByCriterion>
    <quer:cases>
      <quer:case>
        <quer:isNotNull>
          <quer:field path="Offers,Employee_20ID"/>
        </quer:isNotNull>
        <quer:field path="Offers,Employee_20ID"/>
      </quer:case>
    </quer:cases>
    <quer:defaultValue>
      <quer:string>999999</quer:string>
    </quer:defaultValue>
  </quer:switchByCriterion>
</quer:projection>


TCC – SUBSTRING Function

Here is an example of how to do the substring function in TCC:

</pre>
<quer:projection alias="JobCode">
 <quer:substring>
 <quer:field path="JobCode"/>
 <quer:integer>0</quer:integer>
 <quer:integer>20</quer:integer>
 </quer:substring>
 </quer:projection>
<pre>

TCC – Logical OR filtering

Writing SQL is kind of hard if your filtering is limited to and under the where clause.  Here’s an example of how to filter using OR, in this case we had 14 items:)


<quer:filterings>
 <quer:filtering>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712187</quer:string>
 </quer:containsIgnoreCase>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712188</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712186</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712865</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712183</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712386</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712063</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712063</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712084</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712089</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712185</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712604</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712657</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 <quer:containsIgnoreCase>
 <quer:field path="JobCode"/>
 <quer:string>712839</quer:string>
 </quer:containsIgnoreCase>
 </quer:or>
 </quer:filtering>
</quer:filterings>


TCC – DECODE Function

This is one that I’m not 100% familiar with the Oracle counterpart of the Decode function.  In this particular instance it’s used to parse out and assign the gender component of the EEO questions.  This is very hard to extract from the system and is only done so after a hire is made so that the information can be passed to the HRIS for hiring and payroll purposes.

<quer:projection id="idGender" alias="Gender">
 <quer:query projectedClass="Candidate" alias="CandGenderNo">
 <quer:projections>
 <quer:projection alias="EEOGender_AnswerNo">
 <quer:decode>
 <quer:field path="QuestionAnswers,Answer"/>
 <quer:string>-11</quer:string>
 <quer:string>M</quer:string>
 <quer:string>-12</quer:string>
 <quer:string>F</quer:string>
 <quer:string>Not Specified</quer:string>
 </quer:decode>
 </quer:projection>
 </quer:projections>
 <quer:filterings>
 <quer:filtering>
 <quer:equal>
 <quer:field path="QuestionAnswers,Question"/>
 <quer:integer>-3</quer:integer>
 </quer:equal>
 </quer:filtering>
 <quer:filtering>
 <quer:equal>
 <quer:field path="Number"/>
 <quer:field ownerQuery="MainQuery" path="Candidate"/>
 </quer:equal>
 </quer:filtering>
 </quer:filterings>
 </quer:query>
</quer:projection>