2016-06-22 14 views
1

So verweist ich habe folgende SOQL Abfrage, die die ActivityHistories Beziehung des Account Objekts beinhaltet:Wie Unterobjekte in Talend Schema

SELECT Id, Name, ParentId, (SELECT Description FROM ActivityHistories) 
    FROM Account 
    WHERE Name = '<some client>' 

Diese Abfrage nur in in SOQLXplorer funktioniert und gibt 5 verschachtelte Zeilen unter dem ActivityHistories Schlüssel. In Talend, verfolge ich die Anweisungen von this page die Unter Objekte zuzugreifen (obwohl das Beispiel die Abfrage „nach oben“ Syntax verwendet, nicht der Abfrage „down“ Syntax Mein Schema-Mapping wie folgt:. Talend schema mapping

Die Abfrage gibt die Mutter Account Reihen aber nicht die ActivityHistory Zeilen, die in der Unterabfrage sind:

Starting job GetActivities at 15:43 22/06/2016. 
[statistics] connecting to socket on port XXXX 
[statistics] connected 
0X16000X00fQd61AAC|REI|| 
[statistics] disconnected 
Job GetActivities ended at 15:43 22/06/2016. [exit code=0] 

ist es möglich, die Unterzeilen mit Talend referenzieren Wenn ja, was die Syntax für das Schema so zu tun ist, wenn nicht? , wie kann ich diese Daten in einigen ay entpacken, um auf die Description Felder für jede Account? Any Hel zu bekommen p wird sehr geschätzt.

Update: Ich habe eine kleine python script geschrieben, um die ActivityHistory Datensätze zu extrahieren und sie in einer Datei Dump, verwendet dann eine tFileInput die CSV und dann weiter durch mein Verfahren zu sich zu nehmen. Aber das scheint sehr Kludsey. Gibt es bessere Möglichkeiten?

+0

Wir lösten ähnliche Problem mit zwei separaten Salesforce Input-Komponente und tMap-Komponente –

+0

Dank @LastKhajiit, ich versuchte, dass auch, aber das Unterobjekt (ActivityHistory) sagt "Abfrage wird nicht auf diesen Typ unterstützt" und Fehler aus. – Deano

+0

hm, gerade ActivityHistory in Talend Salesforce Metadata überprüft, sieht es wie andere SF-Objekte (nicht versucht, ActivityHistory Datensätze zu extrahieren). –

Antwort

2

Ich habe einige Debugging aus der Code-Perspektive gemacht und es scheint, dass Sie die richtige Antwort erhalten, wenn Sie den richtigen Spaltennamen angeben. Für Ihr Beispiel sollte es sein: Account_ActivityHistories_records_Description

Die Ausgabe von tLogRow wird ähnlich sein:

00124000009gSHvAAM|Account1|tests;Lalalala 

Wie Sie sehen können, ist die Beschreibung von allen untergeordneten Elementen gespeichert als 1 string, durch das Semikolon getrennt . Sie können das Trennzeichen in der Ansicht "Erweiterte Einstellungen" in SalesforceInput ändern.

+0

hmmm hinzufügen '_records_' ist nirgendwo erwähnt, danke für das Debugging @ Vladykx das scheint für mich zu arbeiten! – Deano

0

Ich habe einen kleinen Python-Skript geschrieben (source gist here) die ActivityHistory Datensätze zu extrahieren und steckt sie in einer Datei (Befehlszeilenargument), verwendete dann ein tFileInput die CSV aufnehmen und dann durch meinen Prozess fortzusetzen.