Skip to content

Scribe Package Deep Dive: Publishers & Connections

This document analyzes the publishers-bridges-connections.spkg package. The package captures the Scribe Insight publishers that feed the DTS integrations documented elsewhere in this project. It includes two SQL "update source" query publishers for Dynamics GP history tables and two real-time publishers that listen to Dynamics CRM and Dynamics GP change tracking.

1. Package Snapshot

  • File: publishers-bridges-connections.spkg
  • Created For: Dynamics GP to Dynamics CRM 2011 template (v5.1 lineage)
  • Components: 4 publishers, shared connection profiles, and adapter prerequisites
  • Primary Objective: Surface business events (CRM account/address updates, GP master data changes) as queues that downstream DTS jobs subscribe to.

2. Query Publishers (Update Source Pattern)

This section previously documented query publishers for Invoice Posted and Sales Order Transferred, which have been removed from scope.

3. Dynamics CRM Real-Time Publisher

MSCRM Publisher

  • Adapter: Scribe.DynamicsCrm5.Adapter.DynamicsCrmDatabase
  • Frequency/Timeout: polls every 1 second with a 25 second processing timeout.
  • Authentication: Active Directory against http://crm15/ for organization BioCat, running as domain user keel.
  • Ignore User: Rows created or updated by the CRM integration user INTEGRATION are suppressed to avoid infinite sync loops.
  • Published Entities:
  • account → Message label FromCRM_Customer; only records with customertypecode = 3 are included. The publisher retrieves the full entity to enrich downstream processing.
  • customeraddress → Message label FromCRM_Address with full entity payload.
  • Queues: Rejected queue is enabled, providing operational visibility into failures.
  • Downstream Consumers: CustomerToERP.dts and AddressToERP.dts subscribe to these message labels.

4. Dynamics GP Real-Time Publisher

MSGP Publisher

  • Adapter: OpenAdapter.Database against SQL Server dynamics15, database BIO, user ScribeGP.
  • Ignore User: ScribeGP is listed in both IgnoreUserId and IgnoreUserName, aligning with the SCRIBESHADOW triggers that skip integration changes.
  • Published Entities and Labels:
  • CustomerFromERP_Customer
  • Customer AddressFromERP_Address
  • Logging-only entities (Internet Information, Item price list header/line, Item currency, SOP line) emit messages that flag parent updates without their own labels.
  • Data Enrichment: Several entities use custom SQL queries to include CRM-required columns (email/web site from SY01200, pricing data from IV00105/IV00108, and SOP detail repeats). These enrichments prevent extra lookups inside the DTS jobs.
  • Downstream Consumers: CustomerToCRM.dts and AddressToCRM.dts rely on these message feeds.

5. Connection Profiles

Connection ID Adapter Target Notes
24 OpenAdapter.Database SQL Server dynamics15 / BIO Used by both GP update-source publishers. Credentials align with the GP service account ScribeGP.
25 Scribe.DynamicsCrm5.Adapter.DynamicsCrmDatabase http://crm15/ CRM real-time publisher connection, flagged for Active Directory auth and organization BioCat.
26 OpenAdapter.Database (Unicode off) SQL Server dynamics15 / BIO Dedicated to the GP real-time publisher (MSGP Publisher) to separate polling settings from the update-source jobs.

6. Prerequisites and Operational Notes

  • Required Versions:
  • Scribe Insight 7.8.0.46558
  • Dynamics CRM Adapter 5.5.0.40736
  • Open Database Adapter 4.3.2.38801
  • Retry Strategy: Rejected queues are enabled for the CRM and GP publishers, providing a place to reprocess failures after issues are resolved.
  • Scheduling: The real-time publishers poll every second. These intervals should be mirrored in any replacement tooling to maintain near-real-time behavior.
  • Change Tracking Dependency: All GP-facing publishers assume the SCRIBESHADOW trigger infrastructure described in DocsAndScripts/CRMGP_TemplateConfig.sql is active, because SYNCSTATUS1 drives the polling logic.