bpm'online Connector Versions
StarfishETL has two connector types for bpm'online.
OData: Allows for more complex querying. 4-6k records per hour
Data Services: Faster than OData. Approx 30k records per hour
BPM Online (OData) Advanced Filtering
Sometimes it is necessary to filter BPM Online in ways that are not possible through a SQL statement. You may use the 'Filter' virtual field to override the filter that is sent to the BPM OData web service. 'Filter' will show up as a field for all tables. It is possible to match on this column or perform a SmartLookup on it. In the value for this field you will supply the full filter in the OData Query format http://www.odata.org/documentation/odata-version-2-0/uri-conventions/#FilterSystemQueryOption.
This is an example of a query you would supply in the Filter column when matching on it.
Account/Id eq guid'1de420aa-9577-46ac-8326-c3a566a58c3b'
Coded SmartLookup Example
This example would filter Contacts on the Contact's related Account ID, returning the Surname field.
ScriptedField=SmartLookup("ContactCollection", "Surname", "Filter = Account/Id eq guid'1de420aa-9577-46ac-8326-c3a566a58c3b'")
SQL SELECT Example
This example would filter for Products related to a single Order. This example would be used as your SQL Selection Statement when using BPM as your Origin.
SELECT * FROM OrderProductCollection WHERE Filter = 'Order/Id eq guid''e1d0c2ab-7d41-4e23-b040-3ba524778063'''
500 Internal Server Error
If you receive this message while trying to create stages or work with mappings, there's a good chance your BPM metadata is corrupt. This can occur if you have a broken customization or have not completed a full compile within your BPM instance. To know for sure, in a browser go to the following URL: https://YOURINSTANCE.bpmonline.com/0/ServiceModel/EntityDataService.svc/$metadata (replacing YOURINSTANCE with the actual name of your company). If everything is working you should get back a giant XML stream. If there is something wrong with your metadata, you will see a message like "Internal Server Error. Unable to find property 'SomeFieldName' on type 'Terrasoft.Configuration.SomeTableName'. Please make sure that the property name is correct.". If you see this you will have to resolve this error before continuing to work within Starfish.
Indexing a Field
You can add an index to a field to speed up performance, especially if you have a large data migration matching on a custom field.
Open the object via Advanced Settings. Click the + button next to the Indexes header. Give your Index a name and then add the field to it. At least for migration purposes, you'll want to index just your matched field on it's own. Save and publish.
If you already have data in Creatio before creating the index, use the SQL Command console to re-index. The syntax below works for SQL databases:
ALTER INDEX IndexName ON TableName REBUILD
ALTER INDEX IndexUsrSLXId ON Activity REBUILD
In my scenario, indexing this field made my migration about 4 times faster.