Tag Archive for: #Dynamics365CE

Tibco Scribe vs Kingswaysoft and where lies PowerAutomate aka MS Flow

3rd party Integration Tools for Dynamics 365

After spending several years of building integration between Dynamics 365(CRM) and other systems, we thought of comparing these two widely used 3rd party integration tools.

(Beware of the publication dates because of the innovative nature of the IT industry)

Before comparing these 2 integration tools it is worth noting Microsoft’s power automate called MS Flow before rebranding.

Power Automate

Microsoft built this cloud tool to automate the process/data flow within a system or between systems, which are either connected through CDS (common data service) or provided connectors.
For integration, this tool can be considered for the simple flow of data between systems without complex if-else scenarios

Here are some of the reasons why it is not considered an integration tool:

  • No Upsert (UpdateInsert) functionality
  • No lookup/seek functionality (one must list records and handle them)
  • No parent-child relation (difficult to process transactions)
  • The trigger-based event cannot filter on fields (update trigger cannot be restricted to certain fields)
  • Data manipulation is difficult which requires complex expressions

Beside all these limitations PowerAutomate is still a handy cloud-based tool for automatic processing of functions and simple data flow.

Enough of PowerAutomate, let’s get to our main topic of comparing Tibco Scribe and Kingswaysoft with their respective pros/cons

Tibco Scribe vs Kingswaysoft



Tibco scribe (insight/online)

Requires SQL Server integration services No SQL or SSIS required works independently
Existing SQL server with SSIS can host kingswaysoft toolkit Requires separate server for scribe insight though not for online
No queue-based integration Requires windows MSMQ (message queuing) for queue-based integration
Requires development environment with Visual Studio, SSIS and kingawaysoft_toolkit Scribe online requires no installation or dev environment setup, though Scribe insight requires full server installation
No trigger-based integration
Though toolkit has a complex EntityChanges mechanism to achieve trigger-based integration which is based on Input/output token variables and DB tables
Trigger-based integration is very easy through the provided adapter using a publisher for scribe insight (on-premise)
For Scribe Online we must generate endpoint for event-based integration and then extend the source system to send data to the endpoint to achieve trigger-based integration.
Requires experience of SSIS for complex integration scenarios No SSIS or other such experience required
No standard/persistent mechanism for error logging Very persistent and intuitive mechanism for error logging including transactional errors
Free developer edition Not free, only one month’s trial
Much Better performance especially for large datasets because of SSIS based processing Not so efficient in performance when compared to SSIS based solutions
Can be very difficult to build DTS for complex integrations which require SSIS scripting, especially if one dosn’t have SSIS experience No coding or scripting required, though sometimes one must build strong logics using DTS steps and flow operations
A small set of source/target-system dependent functions and that’s why SSIS scripting comes into play to achieve certain requirements which can be cumbersome A large set of source/target-system dependent functions at our leverage
No integration centric database Has its own integration centric database (scribe insight)
Once the development environment is set with SSIS and kingswayssoft toolkit and Visual Studio. Development of integration maps is a seamless experience Scribe online sometime is very slow and irritating with long response time especially while building integration maps and debugging, but that is not the case for Scribe insight luckily
Very difficult error tracing Very easy error tracing due to the extensive error logging built-in mechanism
Much cheaper than Scribe Costly. At least 4 times more expensive than kingswaysoft



Tibco Scribe (insight) is great for complex integration where error tracing is very important, having no developer resources.

Kingswaysoft is great for companies with low budget for integration where error tracing is not so important and have some developer resources, though it will require more time to build integration maps.

We hope it will help someone in making the right choice and apologies if we missed something 🙂




Dynamics 365 (CRM) on-premise cannot login using Plugin Registration Tool or Custom App using Tooling connector.

If all of a sudden you are unable to login via PluginRegistrationTool or other apps, reason can be the recent windows security update on CRM Server.

2020-01 Cumulative Update for Windows Server 2016 for x64-based Systems (KB4534271)

Removing this update restored our connection 🙂

Dynamics 365 CRM update/upgrade error: The UPDATE statement conflicted with the FOREIGN KEY constraint “solution_base_dependencynode”

Recently while upgrading (import db) CRM deployment from 2016 to v9 we encountered this strange error. After trying everything including mentioned her and running short of time, we opened MS ticket and got a script to run on organisation’s DB, which actually resolved this issue.
Script actually drops foreign key constraints so should be used carefully and at your own risk.

IF OBJECT_ID(‘tempdb..#DropForeignKeysStatement’) IS NOT NULL DROP TABLE #DropForeignKeysStatement

SELECT DropStatement = ‘ALTER TABLE [dbo].[‘ + st.name + ‘] DROP CONSTRAINT [‘ + sfk.name + ‘]’
INTO #DropForeignKeysStatement
FROM sys.foreign_keys sfk
INNER JOIN sys.tables st ON sfk.parent_object_id = st.object_id
AND sfk.schema_id = st.schema_id
WHERE sfk.schema_id = schema_id(‘dbo’)

SELECT DropStatement FROM #DropForeignKeysStatement

DECLARE dropStatementCursor CURSOR FOR
(SELECT DropStatement FROM #DropForeignKeysStatement);

OPEN dropStatementCursor;

DECLARE @currentStatement NVARCHAR(max);

FETCH NEXT FROM dropStatementCursor INTO @currentStatement;

EXEC sp_executesql @currentStatement;

FETCH NEXT FROM dropStatementCursor INTO @currentStatement;

CLOSE dropStatementCursor;
DEALLOCATE dropStatementCursor;

IF OBJECT_ID(‘tempdb..#DropForeignKeysStatement’) IS NOT NULL DROP TABLE #DropForeignKeysStatement