I’ve inherted an SSIS package where the data source is salesforce.com, using the Pragmatic Works controls TFSalesForce Source / Destination.
Ten tables, some of these tables have 700+ columns, and my client tells me that these change every once in awhile whenever users add/edit columns.
Question: What’s the salesforce.com SOQL to ‘find all tables and columns’, similar to SQL Server sys.tables and sys.columns?
There’s so such equivalent in salesforce. Fields and tables are exposed through metadata describe calls, not through the platform’s query language. However, there are app exchange apps that can convert metadata into custom tables that you can query normally. Note that this is essentially cached data, so you’ll have to periodically run a process that updates this cache.
App Exchange Apps are apps hosted on the site http://appexchange.salesforce.com/, which can be installed by administrators into any organization that the package supports, possibly for an additional one-time or per-month fee.
The query you could use would be dependent on the package being used, but it would probably look something like this:
SELECT PKG__FieldType__c, PKG__FieldLength__c, PKG__DefaultValue__c, ... FROM PKG__Field__c
The exact semantics will vary by type, so you’ll have to read the documentation or look at the data structures installed post-installation.
Updating the cache also varies by package. For example, one such app I tested had a Visualforce page with a button that a user could click to kick off the process. Other apps might use some scheduled process to update records every night or use some other process.