Hi All, I wrote a proxy service to get development support hours from salesforce . In here I got the data from two tables Line_Item__c and Opportunity. Because in salesforce Line_Item__c table keeps the records before January and Opportunity table keeps the records January onwards. In the proxy first I wrote a SOQL query to get the data from Line_Item__c table and published to DAS through the data stream "SALESFORCE_DATA_STREAM_1". Then I wrote another SOQL query to get the data from Opportunity table and published to DAS through the same datastream.
The Proxy is as shown below. <?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" name="SalesForceProxy" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"> <target> <inSequence> <!--SOQL query to get data from the table Line_Item__c--> <salesforce.query configKey="SF"> <batchSize>200</batchSize> <queryString>SELECT LastModifiedDate, Support_Account_ID__c, Dev_Support_Hours__c FROM Line_Item__c WHERE Support_Account_ID__c != 'NULL' AND Support_Account_ID__c != '' AND Support_Account_ID__c LIKE '%DEV' ORDER BY LastModifiedDate DESC NULLS FIRST</queryString> </salesforce.query> <log level="full" separator=","/> <iterate xmlns:sfn="urn:partner.soap.sforce.com" continueParent="true" id="Iterator_line_item" expression="//sfn:records" sequential="true"> <target> <sequence> <publishEvent> <eventSink>UD_DAS</eventSink> <streamName>SALESFORCE_DATA_STREAM_1</streamName> <streamVersion>1.0.1</streamVersion> <attributes> <meta/> <correlation/> <payload> <attribute xmlns:sf="urn: sobject.partner.soap.sforce.com" name="SupportAccountKey" type="STRING" defaultValue="" expression="//sf:Support_Account_ID__c"/> <attribute xmlns:sf="urn: sobject.partner.soap.sforce.com" name="DevelopmentSupportHours" type="STRING" defaultValue="" expression="//sf:Dev_Support_Hours__c"/> <attribute xmlns:sf="urn: sobject.partner.soap.sforce.com" name="LastModifiedDate" type="STRING" defaultValue="" expression="//sf:LastModifiedDate"/> </payload> <arbitrary/> </attributes> </publishEvent> </sequence> </target> </iterate> <!--SOQL query to get data from the table Opportunity--> <salesforce.query configKey="SF"> <batchSize>200</batchSize> <queryString>SELECT Development_Support_Account_Key__c,Development_Support_Hours__c,LastModifiedDate from Opportunity WHERE Development_Support_Account_Key__c !='NULL' AND Development_Support_Account_Key__c !=''AND Development_Support_Account_Key__c LIKE '%DEV' ORDER BY LastModifiedDate DESC NULLS FIRST</queryString> </salesforce.query> <log level="full" separator=","> <property xmlns:sf="urn:sobject.partner.soap.sforce.com" name="valueyy" expression="//sf:Development_Support_Hours__c"/> </log> <iterate xmlns:sfn="urn:partner.soap.sforce.com" id="RecordsIterator" expression="//sfn:records" sequential="true"> <target> <sequence> <publishEvent> <eventSink>UD_DAS</eventSink> <streamName>SALESFORCE_DATA_STREAM_1</streamName> <streamVersion>1.0.1</streamVersion> <attributes> <meta/> <correlation/> <payload> <attribute xmlns:sf="urn: sobject.partner.soap.sforce.com" name="SupportAccountKey" type="STRING" defaultValue="" expression="//sf:Development_Support_Account_Key__c"/> <attribute xmlns:sf="urn: sobject.partner.soap.sforce.com" name="DevelopmentSupportHours" type="STRING" defaultValue="" expression="//sf:Development_Support_Hours__c"/> <attribute xmlns:sf="urn: sobject.partner.soap.sforce.com" name="LastModifiedDate" type="STRING" defaultValue="" expression="//sf:LastModifiedDate"/> </payload> <arbitrary/> </attributes> </publishEvent> </sequence> </target> </iterate> </inSequence> </target> <description/> </proxy> Is it ok to get data from these two tables like this or are there any better solutions to do this? Any suggestions are highly appreciated. Thanks & Regards. Lakmini.
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev