We are creating OutboundMessages programmatically using the SOAP Metadata API.
We've discovered that not all returned sObjects are supported and some supported sObjects have fields which are not supported.
The SFDC New Outbound Message pages appears to automatically filter out the sObjects and fields that are not valid.
How can we programmatically filter out both sObjects themselves and the fields that are not compatible and match what is shown to the users in the site? We are unable to find any field attributes to differentiate them. Is there a known black-list that cannot be used?
For example, you cannot just use datatype. The "Fiscal" field on Opportunity is a String but isn't valid. Also, "BillingAddress" on Account is type Address is isn't valid.
Here are the two dropdowns that we're trying to match programmatically.