<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Script to transform data from SalesForce in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Script-to-transform-data-from-SalesForce/m-p/1292639#M27286</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think I figured this out.&amp;nbsp; Here is the modified script.&amp;nbsp; The trick was using the Peek function.&amp;nbsp; I also had some issues with the Load statement in the previous script which never executed previously.&amp;nbsp; I solved that with an Inline Load Statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;activity_data_raw:&lt;/P&gt;&lt;P&gt;Load&lt;/P&gt;&lt;P&gt;&amp;nbsp; RowNo() AS rownum&lt;/P&gt;&lt;P&gt;&amp;nbsp; , Lead.Id&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , Lead.ActivityHistories.Subject&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , Lead.ActivityHistories.ActivityType&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;SELECT &lt;/P&gt;&lt;P&gt;&amp;nbsp; Id, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT Subject, ActivityType FROM ActivityHistories) &lt;/P&gt;&lt;P&gt;&amp;nbsp; FROM Lead LIMIT 5&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;activity_data:&lt;/P&gt;&lt;P&gt;Let numRows = NoOfRows('activity_data_raw');&lt;/P&gt;&lt;P&gt;Let myId = 'Initialize';&lt;/P&gt;&lt;P&gt;For myRow = 0 to numRows&lt;/P&gt;&lt;P&gt;&amp;nbsp; Let currentId = Peek('Lead.Id', myRow, 'activity_data_raw');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let currentSubject = PurgeChar(Peek('Lead.ActivityHistories.Subject', myRow, 'activity_data_raw'),'[],');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let thisType = SubField(currentSubject, ':',1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let thisDesc = SubField(currentSubject,':',2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; If currentId &amp;lt;&amp;gt; null() then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let myId = Peek('Lead.Id', myRow, 'activity_data_raw');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Load * Inline &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; leadId, activityType, activityDescription&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(myId), $(thisType), $(thisDesc), $(currentActivityType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;Next myRow&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Drop Table activity_data_raw;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 22 Nov 2016 20:22:35 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2016-11-22T20:22:35Z</dc:date>
    <item>
      <title>Script to transform data from SalesForce</title>
      <link>https://community.qlik.com/t5/App-Development/Script-to-transform-data-from-SalesForce/m-p/1292638#M27285</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have some data that is being retrieved from SF using the Qlik SF connector.&amp;nbsp; When I do the initial load the data set I get looks like this...&lt;/P&gt;&lt;P&gt;&lt;IMG alt="SF Output.jpg" class="jive-image image-1" src="/legacyfs/online/144534_SF Output.jpg" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;So what I want to do is to replace nulls the Lead.Id field so I can do measures (counts, etc.) on the Subject field by lead&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the script I am trying to get working:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;activity_data_raw:&lt;/P&gt;&lt;P&gt;// this generates the data in the screen shot above&lt;/P&gt;&lt;P&gt;SELECT &lt;/P&gt;&lt;P&gt;&amp;nbsp; Id, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT Subject, ActivityType FROM ActivityHistories) &lt;/P&gt;&lt;P&gt;&amp;nbsp; FROM Lead LIMIT 5 ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;activity_data:&lt;/P&gt;&lt;P&gt;// here I am trying to loop through the rows and replace null values of Lead.Id with the last non-null value of Lead.Id&lt;/P&gt;&lt;P&gt;Let numRows = NoOfRows('activity_data_raw');&lt;/P&gt;&lt;P&gt;Let myId = 'Initialize';&lt;/P&gt;&lt;P&gt;For myRow = 1 to numRows&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // for debugging&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Let currentId = FieldValue('Lead.Id', myRow);&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; Let currentSubject = FieldValue('Lead.ActivityHistories.Subject', myRow);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; // set the value of myID&lt;/P&gt;&lt;P&gt;&amp;nbsp; If FieldValue('Lead.Id', myRow) &amp;lt;&amp;gt; null() then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let myId = FieldValue('Lead.Id', myRow);&lt;/P&gt;&lt;P&gt;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // replace null values of LeadId with the most recent non-null value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If FieldValue('Lead.Id', myRow) = null() Then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Load myID AS LeadId&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , Lead.ActivityHistories.Subject AS Subject&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; , Lead.ActivityHistories.ActivityType AS ActivityType&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resident activity_data_raw&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;Next myRow&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What happens here is that on the first pass the variable myID gets the value of Lead.Id in the screenshot.&amp;nbsp; On the second pass it gets a new value, the rows where Lead.Id is null are skipped.&amp;nbsp; Also, on the first pass, the value of Subject is not null as is it in the screenshot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So how should I go about this.&amp;nbsp; How do I do row by row processing of a loaded table?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2016 18:08:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Script-to-transform-data-from-SalesForce/m-p/1292638#M27285</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-11-22T18:08:28Z</dc:date>
    </item>
    <item>
      <title>Re: Script to transform data from SalesForce</title>
      <link>https://community.qlik.com/t5/App-Development/Script-to-transform-data-from-SalesForce/m-p/1292639#M27286</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think I figured this out.&amp;nbsp; Here is the modified script.&amp;nbsp; The trick was using the Peek function.&amp;nbsp; I also had some issues with the Load statement in the previous script which never executed previously.&amp;nbsp; I solved that with an Inline Load Statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;activity_data_raw:&lt;/P&gt;&lt;P&gt;Load&lt;/P&gt;&lt;P&gt;&amp;nbsp; RowNo() AS rownum&lt;/P&gt;&lt;P&gt;&amp;nbsp; , Lead.Id&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , Lead.ActivityHistories.Subject&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; , Lead.ActivityHistories.ActivityType&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;SELECT &lt;/P&gt;&lt;P&gt;&amp;nbsp; Id, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT Subject, ActivityType FROM ActivityHistories) &lt;/P&gt;&lt;P&gt;&amp;nbsp; FROM Lead LIMIT 5&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;activity_data:&lt;/P&gt;&lt;P&gt;Let numRows = NoOfRows('activity_data_raw');&lt;/P&gt;&lt;P&gt;Let myId = 'Initialize';&lt;/P&gt;&lt;P&gt;For myRow = 0 to numRows&lt;/P&gt;&lt;P&gt;&amp;nbsp; Let currentId = Peek('Lead.Id', myRow, 'activity_data_raw');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let currentSubject = PurgeChar(Peek('Lead.ActivityHistories.Subject', myRow, 'activity_data_raw'),'[],');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let thisType = SubField(currentSubject, ':',1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let thisDesc = SubField(currentSubject,':',2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; If currentId &amp;lt;&amp;gt; null() then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Let myId = Peek('Lead.Id', myRow, 'activity_data_raw');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Load * Inline &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; leadId, activityType, activityDescription&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(myId), $(thisType), $(thisDesc), $(currentActivityType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;Next myRow&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Drop Table activity_data_raw;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Nov 2016 20:22:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Script-to-transform-data-from-SalesForce/m-p/1292639#M27286</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-11-22T20:22:35Z</dc:date>
    </item>
  </channel>
</rss>

