Archives: December 7, 2017

TCC – Subquery against another entity

So I was having to write an export that would mimic the results of and OBI report so that it could be automated. The logical entity to pull this information in was the application as it had candidate and requisition data that was needed for the report. Unfortunately, there was a filter in the OBI report saying that the requisition had to be posted. Now the problem here lies in the fact that you cannot access the SourcingRequest table from the application entity. So I’m like well, if I were writing this out, I would just make sure that:

ContestNumber in (select ContestNumber from SourcingRequest where PostingStatus = ‘posted’)

After monkeying around with it I finally got it to work and it’s done by putting in a subquery in the general filters:

<quer:filtering xmlns:quer="http://www.taleo.com/ws/integration/query">
	<quer:includedIn>
		<quer:field path="Requisition,ContestNumber"/>
		<quer:query projectedClass="SourcingRequest" alias="sqMotives" preventDuplicates="true" pagingsize="1">
			<quer:subQueries/>
			<quer:projections>
				<quer:projection>
					<quer:field path="Requisition,ContestNumber"/>
				</quer:projection>
			</quer:projections>
			<quer:filterings>
				<quer:filtering>
					<quer:equal>
						<quer:field path="SourcingRequestStatus,Number"/>
						<quer:string>2</quer:string>
					</quer:equal>
				</quer:filtering>
			</quer:filterings>
		</quer:query>
	</quer:includedIn>
</quer:filtering>

TCC – Finding Duplicate Emails (Having Clause)

In a perfect world, we would all have a 3 day work week, get 2 months of vacation a year, doughnut Friday would be every day and candidate databases wouldn’t have duplicate email addresses. Well that’s the hand we’re dealt and I can’t do anything about the first three but can at least try to give you some data on the latter.

If you’re looking to pull a list of email addresses and the count for them to give you an idea of what you’re up against use the process below.

Create an empty file called: CandidateEmailCountExport_sq.xml

Add the following code:


<?xml version="1.0" encoding="UTF-8"?>
<quer:query productCode="RC1501" model="http://www.taleo.com/ws/tee800/2009/01" projectedClass="Candidate" locale="en" mode="CSV" csvheader="true" largegraph="true" preventDuplicates="true" xmlns:quer="http://www.taleo.com/ws/integration/query">
	<quer:subQueries/>
	<quer:projections>
		<quer:projection>
			<quer:field path="EmailAddress"/>
		</quer:projection>
		<quer:projection alias="CNTEmail">
			<quer:count>
				<quer:field path="EmailAddress"/>
			</quer:count>
		</quer:projection>
	</quer:projections>
	<quer:projectionFilterings/>
	<quer:filterings/>
	<quer:sortings/>
	<quer:sortingFilterings/>
	<quer:groupings>
		<quer:grouping>
			<quer:field path="EmailAddress"/>
		</quer:grouping>
	</quer:groupings>
	<quer:groupingFilterings>
		<quer:groupingFiltering>
			<quer:greaterThan>
				<quer:count>
					<quer:field path="EmailAddress"/>
				</quer:count>
				<quer:string>1</quer:string>
			</quer:greaterThan>
		</quer:groupingFiltering>
	</quer:groupingFilterings>
	<quer:joinings/>
</quer:query>
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>

WARNING!!! This is one of those that if you open it in the GUI, make a change and save it, it will erase the groupingFilterings and groupingFiltering, any edits should be made in your favorite text editor.


TCC – Prevent Mass Emails by Integration

We’ve all been there, we’re loading something into a staging zone and then it all of a sudden hits us, we forgot to mask the email…

So to prevent any mass emailing from what we’re doing with in TCC there is a setting on the front end that we need to set, I know going into the GUI is a bit scary but sometimes we’ve got to fet an assist from front end settings.

This is chapter and verse from Doc ID 1047782.1 in the MOS:

The setting AllowIntegrationSendingEmail is used to prevent TCC imports from sending mass emails. It prevents or allows the zone to send the correspondences configured to be triggered automatically. If the setting is set to False, no emails are sent following a TCC import. If the setting is set to True, emails will be sent whenever the conditions for an automated correspondence are met.

The setting can be found here: Configuration > General Configuration – Settings > Allow Integration Sending Email.

Correspondences must be configured in the zone for them to be sent out.

 


TCC – Custom Function WM_CONCAT

We’ve all had those times when we want to export the user types or groups and return the selections on the same line as opposed to each type and group on a different line. Yes you could use csv-entity export but that’s never a sure thing.  You can use WM_CONCAT to pull the elements and stick them in the same column as comma separated value. This is a bit limited because you have include a grouping for every value not using WM_CONCAT.

Here is a functional demonstration:

Create an empty file named: UserExport-WM_CONCAT_sq.xml

Add this code to the file:

 
<?xml version="1.0" encoding="UTF-8"?>
<quer:query productCode="SO1704" model="http://www.taleo.com/ws/so800/2009/01" projectedClass="User" locale="en" mode="CSV" csvheader="true" largegraph="true" preventDuplicates="false" xmlns:quer="http://www.taleo.com/ws/integration/query">
	<quer:subQueries/>
	<quer:projections>
		<quer:projection>
            <quer:field path="UserAccount,Loginname"/>
        </quer:projection>
		<quer:projection>
            <quer:field path="FirstName"/>
        </quer:projection>
		<quer:projection>
            <quer:field path="LastName"/>
        </quer:projection>
		<quer:projection>
            <quer:field path="CorrespondenceEmail"/>
        </quer:projection>
		<quer:projection alias="UserTypeCode" projectedValueType="[C">
  <quer:customFunction name="wm_concat">
    <quer:field path="UserTypes,Code"/>
  </quer:customFunction>
</quer:projection>
	</quer:projections>
	<quer:projectionFilterings/>
	<quer:filterings/>
	<quer:sortings>
		<quer:sorting ascending="true">
			<quer:field path="LastName"/>
		</quer:sorting>
		<quer:sorting ascending="true">
			<quer:field path="FirstName"/>
		</quer:sorting>
	</quer:sortings>
	<quer:sortingFilterings/>
	<quer:groupings>
		<quer:grouping>
            <quer:field path="UserAccount,Loginname"/>
        </quer:grouping>
		<quer:grouping>
            <quer:field path="FirstName"/>
        </quer:grouping>
		<quer:grouping>
            <quer:field path="LastName"/>
        </quer:grouping>
		<quer:grouping>
            <quer:field path="CorrespondenceEmail"/>
        </quer:grouping>
	</quer:groupings>
	<quer:joinings/>
</quer:query>

TCC – Batch file for touchpoints

We always know what fun it is to crawl way back into the past when we knew and were fluent with DOS, ah it certainly brings back nostalgia and I can usually do everything that I need to do but some of it I barely remembered then let alone know. But the internet provides and when setting up batch files for the touchpoints I just need a template so here is the header and import and output samples.

Read More


TCC – UDSElement Delete

As we know there are a couple of keys that we need to consider when we’re creating or updating UDSElements, it turns out only one of these are needed for the delete operation.

Create a file named:  UDSElementDelete_ld.xml

Copy this source code to the file to make it work.

<?xml version="1.0" encoding="UTF-8"?>
<load:load productCode="RC1501" model="http://www.taleo.com/ws/tee800/2009/01" root="UDSElement" operation="delete" locale="en" header="true" delimiter="," quote="&quot;" xmlns:load="http://www.taleo.com/ws/integration/load">
	<load:columns>
		<load:column type="IDENTIFIER" header="Identifier" path=""/>
		<load:column parameter="1" type="DATA" path="Number" searchType="SEARCH" searchTarget="." localeType="NONE"/>
		<load:column parameter="1" type="DATA" path="UserDefinedSelection,Code" searchType="SEARCH" searchTarget=".." localeType="NONE"/>
	</load:columns>
	<load:processingInstructions/>
</load:load>

 


SSO – SP Metadata Generation

There is a URL you need to generate the service provider metadata in Taleo, it’s structured like this:

https://ZoneName/smartorg/sp/metadata.jss?target=EntityID

Where the EntityID is what’s in the “Entity ID or Issuer Identity” under Identity Provider Information in SSO Setup


TCC – Projection Subquery

I’m not sure why this gives me issues every time but I figured I’d put it here so I can find it next time I need it:


<quer:projection alias="CSWMotive" xmlns:quer="http://www.taleo.com/ws/integration/query">
	<quer:query projectedClass="Application" alias="sqMotives" preventDuplicates="true" pagingsize="1">
		<quer:projections>
			<quer:projection alias="Motive">
				<quer:field path="ProfileInformation,HistoryItems,ApplicationTrackingCSWItem.CSWMotives,Mnemonic"/>
			</quer:projection>
		</quer:projections>
		<quer:filterings>
			<quer:filtering>
				<quer:equal>
					<quer:field path="Number"/>
					<quer:field ownerQuery="MainQuery" path="Number"/>
				</quer:equal>
			</quer:filtering>
			<quer:filtering>
				<quer:equal>
					<quer:field path="ProfileInformation,HistoryItems,ApplicationTrackingCSWItem.Step,Mnemonic"/>
					<quer:field ownerQuery="MainQuery" path="CSWLatestStep,Mnemonic"/>
				</quer:equal>
			</quer:filtering>
			<quer:filtering>
				<quer:equal>
					<quer:field path="ProfileInformation,HistoryItems,ApplicationTrackingCSWItem.Status,Mnemonic"/>
					<quer:field ownerQuery="MainQuery" path="CSWLatestStatus,Mnemonic"/>
				</quer:equal>
			</quer:filtering>
			<quer:filtering>
				<quer:equal>
					<quer:field path="ProfileInformation,HistoryItems,ApplicationTrackingCSWItem.Reverted"/>
					<quer:boolean>false</quer:boolean>
				</quer:equal>
			</quer:filtering>
			<quer:filtering>
				<quer:equal>
					<quer:field path="Candidate,History,ApplicationTrackingCSWItem.Step,Mnemonic"/>
					<quer:string>step_mnemonic</quer:string>
				</quer:equal>
			</quer:filtering>
			<quer:filtering>
				<quer:equal>
					<quer:field path="Candidate,History,ApplicationTrackingCSWItem.Status,Mnemonic"/>
					<quer:string>status_mnemonic</quer:string>
				</quer:equal>
			</quer:filtering>
		</quer:filterings>
	</quer:query>
</quer:projection>