Codeunit 5330 "CRM Integration Management"
Base Application · Microsoft.Integration.Dataverse
Across versions
- BC23present
- BC2414 procedures added, 3 events added
- BC259 procedures removed, 6 procedures changed
- BC264 procedures removed
- BC27unchanged
- BC2810 procedures removed, 2 procedures added
- BC292 events added
- BC302 procedures added
Neighbourhood 158 connected objects and pages
Base Application · Microsoft.Integration.Dataverse · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| SingleInstance | true |
| Permissions | tabledata “Sales Invoice Header” = rm, tabledata “CDS Connection Setup” = r, tabledata “CRM Connection Setup” = r |
Events published
OnIsCDSIntegrationEnabled(var isEnabled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnIsCDSIntegrationEnabled
OnInitCDSConnection(var ConnectionName: Text; var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnInitCDSConnection
OnGetCDSIntegrationUserId(var IntegrationUserId: Guid; var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnGetCDSIntegrationUserId
OnGetCDSServerAddress(var CDSServerAddress: Text; var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnGetCDSServerAddress
OnTestCDSConnection(var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnTestCDSConnection
OnCloseCDSConnection(ConnectionName: Text; var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnCloseCDSConnection
OnAfterCRMIntegrationEnabled()(integration)OnBeforeOpenRecordCardPage(RecordID: RecordID; var IsHandled: Boolean)(integration)- subscribers: Codeunit 6610 “FS Int. Table Subscriber” OnBeforeOpenRecordCardPage
OnBeforeGetIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping"; TableID: Integer)(integration)OnBeforeGetIntegrationTableMappingFromCRMRecord(var IntegrationTableMapping: Record "Integration Table Mapping"; RecRef: RecordRef)(integration)OnBeforeHandleCustomIntegrationTableMapping(var IsHandled: Boolean; IntegrationTableMappingName: Code[20]; var IntegrationTableMapping: Record "Integration Table Mapping"; EnqueueJobQueEntries: Boolean)+ BC25 − BC25 (integration)- subscribers: Codeunit 6277 “Sust. Setup Defaults” OnBeforeHandleCustomIntegrationTableMapping, Codeunit 6611 “FS Setup Defaults” OnBeforeHandleCustomIntegrationTableMapping
OnBeforeSynchronyzeNowQuestion(var AllowedDirection: Integer; var IsHandled: Boolean)(integration)OnIsCRMIntegrationRecord(TableID: Integer; var isIntegrationRecord: Boolean)(integration)- subscribers: Codeunit 5341 “CRM Int. Table. Subscriber” HandleOnIsCRMIntegrationRecord, Codeunit 6610 “FS Int. Table Subscriber” HandleOnIsCRMIntegrationRecord
OnEnabledDatabaseTriggersSetup(TableID: Integer; var Enabled: Boolean)(integration)OnGetTableIdFromCRMOption(RecRef: RecordRef; var TableId: Integer)(integration)OnIsCRMTable(TableID: Integer; var IsCRMTable: Boolean; var Handled: Boolean)(integration)OnIsIntegrationRecordChild(TableID: Integer; var Handled: Boolean; var ReturnValue: Boolean)(integration)- subscribers: Codeunit 5341 “CRM Int. Table. Subscriber” HandleOnIsIntegrationRecordChild
OnBeforeFindCoupledToCRMField(TableNo: Integer; var IsHandled: Boolean; var CoupledFieldNo: Integer)+ BC28 − BC28 (integration)- subscribers: Codeunit 6610 “FS Int. Table Subscriber” HandleOnBeforeFindCoupledToCRMField
OnAfterGetCRMEntityUrlFromCRMID(CRMEntityUrlTemplateTxt: Text; NewestUIAppIdParameterTxt: Text; TableId: Integer; CRMId: Guid; var CRMEntityUrl: Text; CRMTableId: Integer)+ BC24 − BC24 (integration)OnGetIntegrationTableMappingFromCRMIDOnBeforeFindTableID(var IntegrationTableMapping: Record "Integration Table Mapping"; var TableID: Integer; CRMID: Guid; var IsHandled: Boolean)Δ BC24 (integration)OnBeforeGetIntegrationTableMappingWithRecordId(var IntegrationTableMapping: Record "Integration Table Mapping"; BCRecordId: RecordId; var TableID: Integer)(integration)OnAfterGetIntegrationTableMappingFromCRMRecordBeforeFindRecord(var IntegrationTableMapping: Record "Integration Table Mapping"; RecRef: RecordRef)(integration)OnAfterAddExtraFieldMappings(IntegrationTableMappingName: Code[20])+ BC24 (integration)- subscribers: Codeunit 5369 “Manual Int Mapping Events” AddExtraFieldMappings
OnBeforeRescheduleJobQueueEntries(TableNo: Integer; var RescheduleOffSetInMs: Integer)+ BC24 (integration)OnRemoveCouplingOnBeforeGetIntegrationTableMappingForUncoupling(var IntegrationTableMapping: Record "Integration Table Mapping"; LocalRecordRef: RecordRef)+ BC29 (integration)OnMatchBasedCouplingOnBeforeGetIntegrationTableMappingForMatchBasedCoupling(var IntegrationTableMapping: Record "Integration Table Mapping"; LocalRecordRef: RecordRef)+ BC29 (integration)
Event subscriptions
- HandleOnUpdateConflictDetected subscribes to Codeunit “Integration Rec. Synch. Invoke” OnUpdateConflictDetected
- HandleOnDeletionConflictDetected subscribes to Codeunit “Integration Rec. Synch. Invoke” OnDeletionConflictDetected
- HandleCRMRegisterServiceConnection subscribes to Table “Service Connection” OnRegisterServiceConnection
- HandleOnGetIntegrationSolutions subscribes to Codeunit “CDS Integration Mgt.” OnGetIntegrationSolutions
- HandleOnGetIntegrationRequiredRoles subscribes to Codeunit “CDS Integration Mgt.” OnGetIntegrationRequiredRoles
- OnInitializingNotificationWithDefaultState subscribes to Page “My Notifications” OnInitializingNotificationWithDefaultState
- IsDataIntegrationEnabled subscribes to Table “Integration Synch. Job Errors” OnIsDataIntegrationEnabled
- DisableConnectionOnAfterLongSynchError subscribes to Table “Integration Synch. Job Errors” OnAfterLogSynchError
- ForceSynchronizeDataIntegration subscribes to Table “Integration Synch. Job Errors” OnForceSynchronizeDataIntegration
- ForceSynchronizeRecords subscribes to Table “Integration Synch. Job Errors” OnForceSynchronizeRecords
- HandleOnOptionDeletionConflictDetected subscribes to Codeunit “Int. Option Synch. Invoke” OnDeletionConflictDetected
Procedures
IsCRMIntegrationEnabled(): BooleanIsCDSIntegrationEnabled(): BooleanIsIntegrationEnabled(): BooleanIsCRMSolutionInstalled(): BooleanCheckSolutionVersionOutdated(): BooleanSetCRMNAVConnectionUrl(WebClientUrl: Text[250])RemoveCRMNAVConnectionUrl(WebClientUrl: Text[250]): Boolean(internal)UpdateMultipleNow(RecVariant: Variant)UpdateMultipleNow(RecVariant: Variant; IsOption: Boolean)UpdateOneNow(RecordID: RecordID)UpdateSkippedNow(var CRMIntegrationRecord: Record "CRM Integration Record")UpdateSkippedNow(var CRMIntegrationRecord: Record "CRM Integration Record"; var CRMOptionMapping: Record "CRM Option Mapping")UpdateSkippedNow(var CRMIntegrationRecord: Record "CRM Integration Record"; SkipNotification: Boolean)UpdateSkippedNow(var CRMIntegrationRecord: Record "CRM Integration Record"; var CRMOptionMapping: Record "CRM Option Mapping"; SkipNotification: Boolean)UpdateAllSkippedNow()CheckOrEnableCRMConnection()CreateNewRecordsInCRM(RecVariant: Variant)CreateNewOptionsInCRM(RecVariant: Variant)CreateNewOptionsInCRM(var LocalIdListDictionary: Dictionary of [Code[20], List of [Guid]])CreateNewRecordsInCRM(var LocalIdListDictionary: Dictionary of [Code[20], List of [Guid]])CreateNewRecordsFromSelectedCRMOptions(RecVariant: Variant)EnqueueOptionSyncJobFromIntegrationTable(IntegrationTableMapping: Record "Integration Table Mapping"; CRMOptionIds: List of [Integer]; Direction: Integer; SynchronizeOnlyCoupledRecords: Boolean): BooleanEnqueueOptionSyncJobToIntegrationTable(IntegrationTableMapping: Record "Integration Table Mapping"; LocalIdList: List of [Guid]; Direction: Integer; SynchronizeOnlyCoupledRecords: Boolean): BooleanCreateNewRecordsFromCRM(RecVariant: Variant)CreateNewRecordsFromCRM(var CRMIdListDictionary: Dictionary of [Code[20], List of [Guid]])CreateNewRecords(var LocalIdListDictionary: Dictionary of [Code[20], List of [Guid]]; var CRMIdListDictionary: Dictionary of [Code[20], List of [Guid]])CreateNewRecordsFromSelectedCRMRecords(RecVariant: Variant)MarkLocalDeletedAsSkipped()(internal)RepairBrokenCouplings()RepairBrokenCouplings(UseLocalRecordsOnly: Boolean)RemoveCoupling(TableID: Integer; CRMTableID: Integer)MatchBasedCoupling(TableID: Integer): BooleanMatchBasedCoupling(TableID: Integer; SkipSettingCriteria: Boolean; IsFullSync: Boolean; InForeground: Boolean): BooleanRemoveCoupling(var LocalRecordRef: RecordRef)MatchBasedCoupling(var LocalRecordRef: RecordRef)RemoveCoupling(LocalTableID: Integer; var LocalIdList: List of [Guid])RemoveCoupling(LocalTableID: Integer; var LocalIdList: List of [Guid]; Schedule: Boolean)RemoveCoupling(LocalTableID: Integer; IntegrationTableID: Integer; var IntegrationIdList: List of [Guid])RemoveCoupling(var LocalRecordRef: RecordRef; Schedule: Boolean)(internal)RemoveOptionMapping(var RecRef: RecordRef)CreateOptionMapping(RecordID: RecordID; CRMOptionId: Integer; CRMOptionValue: Text[250])GetMappedCRMOptionId(RecordID: RecordID; var CRMOptionId: Integer): BooleanRemoveCoupling(LocalTableID: Integer; IntegrationTableID: Integer; var IntegrationIdList: List of [Guid]; Schedule: Boolean)(internal)RemoveCoupling(RecordID: RecordID)RemoveCoupling(RecordID: RecordID; Schedule: Boolean): Boolean(internal)RemoveCoupling(TableID: Integer; CRMTableID: Integer; CRMID: Guid)RemoveCoupling(TableID: Integer; CRMTableID: Integer; CRMID: Guid; Schedule: Boolean): Boolean(internal)GetIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping"; RecId: RecordId)GetIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping"; TableID: Integer)IsCRMTable(TableID: Integer): BooleanEnqueueFullSyncJob(Name: Code[20]): GuidEnqueueSyncJob(IntegrationTableMapping: Record "Integration Table Mapping"; RecordID: RecordID; CRMID: Guid; Direction: Integer): BooleanΔ BC25 Δ BC25EnqueueSyncJob(IntegrationTableMapping: Record "Integration Table Mapping"; SystemIds: List of [Guid]; CRMIDs: List of [Guid]; Direction: Integer; SynchronizeOnlyCoupledRecords: Boolean): BooleanΔ BC25 Δ BC25AddIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping")Δ BC25 Δ BC25AddIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping"; SynchOnlyCoupledRecords: Boolean)Δ BC25 Δ BC25CloneIntegrationFieldMapping(SourceMappingName: Code[20]; DestinationMappingName: Code[20])CreateOrUpdateCRMAccountStatistics(Customer: Record Customer)ShowCRMEntityFromRecordID(RecordID: RecordID)GetCRMEntityUrlFromRecordID(TargetRecordID: RecordID): TextGetCRMEntityUrlFromCRMID(TableId: Integer; CRMId: Guid): Text+ BC24GetCRMEntityUrlFromCRMID(TableId: Integer; CRMTableId: Integer; CRMId: Guid): Text+ BC24GetCRMEntityTypeName(TableId: Integer): Text+ BC24GetCRMEntityTypeName(TableId: Integer; CRMTableId: Integer): Text+ BC24DefineCoupling(RecordID: RecordID): BooleanDefineOptionMapping(RecordID: RecordID): BooleanManageCreateNewRecordFromCRM(TableID: Integer)CreateNewContactFromCRM()CreateNewCustomerFromCRM()CreateNewVendorFromCRM()ShowCustomerCRMOpportunities(Customer: Record Customer)ShowCustomerCRMQuotes(Customer: Record Customer)ShowCustomerCRMCases(Customer: Record Customer)ResetIntTableMappingDefaultConfiguration(var IntegrationTableMapping: Record "Integration Table Mapping")AddExtraFieldMappings(IntegrationTableMapping: Record "Integration Table Mapping")(internal)GetNoOfCRMOpportunities(Customer: Record Customer): IntegerGetNoOfCRMQuotes(Customer: Record Customer): IntegerGetNoOfCRMCases(Customer: Record Customer): IntegerClearState()GetLastErrorMessage(): TextImportCRMSolution(ServerAddress: Text; IntegrationUserEmail: Text; AdminUserEmail: Text; AdminUserPassword: SecretText; AccessToken: SecretText; AdminADDomain: Text; ProxyVersion: Integer; ForceRedeploy: Boolean; var SolutionImportFailed: Boolean)Δ BC25 + BC25 − BC28IsSolutionOutdated(TempConnectionString: SecretText; SolutionUniqueName: Text[65]): Boolean+ BC24 + BC25 + BC25 − BC25 − BC25CheckConnectRequiredFields(ServerAddress: Text; IntegrationUserEmail: Text)CheckModifyCRMConnectionURL(var ServerAddress: Text[250])CheckCRMConnectionURL(ServerAddress: Text[250])+ BC28GetOrganizationFromUrl(ServerAddress: Text[250]): TextConstructConnectionStringForSolutionImport(ServerAddress: Text): TextProcessConnectionFailures()Δ BC24DisableNotification(HostNotification: Notification)GetCommonNotificationID(): GuidGetSkippedNotificationID(): GuidSendResultNotification(RecVariant: Variant): BooleanOpenIntegrationSynchronizationJobsFromNotification(HostNotification: Notification)ShowLog(RecId: RecordID)ShowOptionLog(RecId: RecordId)ShowSkippedRecords(SkippedSyncNotification: Notification)CoupleCRMEntity(RecordID: RecordID; CRMID: Guid; var Synchronize: Boolean; var Direction: Option): BooleanTestCRMConnection(var CRMHelper: DotNet CrmHelper)Δ BC24InitializeProxyVersionList(var TempStack: Record TempStack temporary)GetLastProxyVersionItem(): IntegerClearConnectionDisableReason(var CRMConnectionSetup: Record "CRM Connection Setup")GetCRMDisabledErrorReasonNotificationId(): GuidIsWorkingConnection(): BooleanSendConnectionDisabledNotification(DisableReason: Text[250])IsItemAvailabilityEnabled(): BooleanInitializeCRMSynchStatus()InitializeCRMSynchStatus(var CRMSynchStatus: Record "CRM Synch Status")(internal)HasUncoupledSelectedUsers(var SelectedCRMSystemuser: Record "CRM Systemuser"): BooleanRegisterAssistedSetup()IsCRMIntegrationRecord(TableID: Integer): BooleanGetDatabaseTableTriggerSetup(TableID: Integer; var Insert: Boolean; var Modify: Boolean; var Delete: Boolean; var Rename: Boolean)OnDatabaseInsert(RecRef: RecordRef)OnDatabaseModify(RecRef: RecordRef)OnDatabaseRename(RecRef: RecordRef; XRecRef: RecordRef)ReactivateJobForTable(TableNo: Integer)(internal)UserCanRescheduleJob(): BooleanFindCoupledToCRMField(var RecRef: RecordRef; var CoupledToCRMFldRef: FieldRef): Boolean(internal)EnableUnitGroupMapping(): GuidDisableUnitGroupMapping()AdjustUnitGroupCRMConnectionSetup()UpdateItemUnitGroup()UpdateResourceUnitGroup()IsUnitGroupMappingEnabled(): BooleanMultipleCompanyLearnMore(var Notification: Notification)+ BC24IsIntegrationRecordChild(TableID: Integer): BooleanGetFieldServiceIntegrationAppSourceLink(): Text+ BC24IsFieldServiceIntegrationAppInstalled(): Boolean+ BC24
Plus 72 local procedures.
Triggers
OnRun
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 5334 “CRM Setup Defaults” (24 calls:
EnqueueFullSyncJob → CreateJobQueueEntry,EnqueueOptionSyncJob → CreateJobQueueEntry,EnqueueOptionSyncJobFromIntegrationTable → CreateJobQueueEntry, …) - Codeunit 5344 “CRM Product Name” (14 calls:
CheckOrEnableCRMConnection → CDSServiceName,CheckOrEnableCRMConnection → SHORT,ConstructConnectionStringForSolutionImport → SHORT, …) - Codeunit 7204 “CDS Setup Defaults” (11 calls:
EnqueueCouplingJob → CreateCoupleJobQueueEntry,EnqueueUncoupleJob → CreateUncoupleJobQueueEntry,ResetIntTableMappingDefaultConfiguration → ResetContactContactMapping, …) - Codeunit 7201 “CDS Integration Impl.” (10 calls:
CheckOrEnableCRMConnection → RegisterAssistedSetup,ImportCRMSolution → ActivateConnection,ImportCRMSolution → AssignTeamRole, …) - Codeunit 1291 “DotNet Exception Handler” (5 calls:
ProcessConnectionFailures → CastToType,ProcessConnectionFailures → Collect,ProcessConnectionFailures → GetMessage, …) - Codeunit 5336 “Integration Record Synch.” (5 calls:
EnqueueOptionSyncJob → GetTableViewForRecordID,EnqueueOptionSyncJobToIntegrationTable → GetTableViewForSystemIds,EnqueueSyncJob → GetTableViewForRecordIDAndFlowFilters, …) - Codeunit 1990 “Guided Experience” (3 calls:
CheckOrEnableCRMConnection → Run,RegisterAssistedSetup → Exists,RegisterAssistedSetup → InsertAssistedSetup) - Codeunit 5331 “CRM Coupling Management” (2 calls:
DefineCoupling → DefineCoupling,DefineOptionMapping → DefineOptionMapping) - Codeunit 5345 “Integration Rec. Synch. Invoke” (2 calls:
GetSelectedSingleSyncDirection → WasModifiedAfterLastSynch,WasRecordModifiedAfterLastSynch → WasModifiedAfterLastSynch) - Codeunit 5350 “CRM Statistics Job” (2 calls:
CreateOrUpdateCRMAccountStatistics → CreateOrUpdateCRMAccountStatistics,CreateOrUpdateCRMAccountStatistics → UpdateStatusOfPaidInvoices) - Codeunit 7200 “CDS Integration Mgt.” (2 calls:
CheckSolutionVersionOutdated → GetSolutionVersion,ResetIntTableMappingDefaultConfiguration → IsTeamOwnershipModelSelected) - Page 5341 “CRM Account List” (2 calls:
CreateNewCustomerFromCRM → (object),CreateNewVendorFromCRM → (object)) - Codeunit 2504 “Extension Management” (1 call:
IsFieldServiceIntegrationAppInstalled → IsInstalledByAppId) - Codeunit 453 “Job Queue - Enqueue” (1 call:
EnableUnitGroupMapping → (object)) - Codeunit 5335 “Integration Table Synch.” (1 call:
GetSelectedSingleSyncDirection → CheckTransferFields) - Codeunit 5360 “CDS Int. Table Couple” (1 call:
PerformCoupling → PerformScheduledCoupling) - Codeunit 700 “Page Management” (1 call:
OpenRecordCardPage → PageRun) - Codeunit 8703 “Feature Telemetry” (1 call:
CheckOrEnableCRMConnection → LogUptake) - Codeunit 9900 “Data Upgrade Mgt.” (1 call:
ReactivateJobForTable → IsUpgradeInProgress) - Page 209 “Units of Measure” (1 call:
OpenRecordCardPage → (object)) - Page 21 “Customer Card” (1 call:
OpenRecordCardPage → (object)) - Page 26 “Vendor Card” (1 call:
OpenRecordCardPage → (object)) - Page 30 “Item Card” (1 call:
OpenRecordCardPage → (object)) - Page 495 “Currency Card” (1 call:
OpenRecordCardPage → (object)) - Page 5050 “Contact Card” (1 call:
OpenRecordCardPage → (object)) - Page 5116 “Salesperson/Purchaser Card” (1 call:
OpenRecordCardPage → (object)) - Page 5342 “CRM Contact List” (1 call:
CreateNewContactFromCRM → (object)) - Page 5343 “CRM Opportunity List” (1 call:
ShowCustomerCRMOpportunities → (object)) - Page 5349 “CRM Case List” (1 call:
ShowCustomerCRMCases → (object)) - Page 5351 “CRM Sales Quote List” (1 call:
ShowCustomerCRMQuotes → (object)) - Page 7 “Customer Price Groups” (1 call:
OpenRecordCardPage → (object)) - Page 76 “Resource Card” (1 call:
OpenRecordCardPage → (object))
Called by
- Codeunit 5341 “CRM Int. Table. Subscriber” (21 calls:
ChangeSalesOrderStateCode → IsCRMIntegrationEnabled,FindCRMUoMIdForSalesPrice → IsUnitGroupMappingEnabled,HandleContactQueryPostFilterIgnoreRecord → IsCDSIntegrationEnabled, …) - Table 5330 “CRM Connection Setup” (13 calls:
DeployCRMSolution → CheckCRMConnectionURL,DeployCRMSolution → ImportCRMSolution,DeployCRMSolution → IsCRMSolutionInstalled, …) - Codeunit 6615 “FS Integration Mgt.” (9 calls:
ImportFieldServiceIntegrationSolution → IsSolutionOutdated,ImportFieldServiceIntegrationSolution → ProcessConnectionFailures,ImportFSSolution → CheckConnectRequiredFields, …) - Codeunit 5343 “CRM Sales Order to Sales Order” (8 calls:
CRMIsCoupledToValidRecord → IsCRMIntegrationEnabled,GetCoupledCRMSalesorder → RemoveCoupling,GetCoupledSalesHeader → RemoveCoupling, …) - Codeunit 5334 “CRM Setup Defaults” (7 calls:
GetTableIDCRMEntityNameMapping → IsUnitGroupMappingEnabled,ResetConfiguration → IsCRMSolutionInstalled,ResetConfiguration → IsUnitGroupMappingEnabled, …) - Codeunit 7205 “CDS Int. Table. Subscriber” (6 calls:
HandleOnAfterInsertOption → IsCRMIntegrationEnabled,HandleOnAfterModifyOption → IsCRMIntegrationEnabled,OnTransferFieldData → IsUnitGroupMappingEnabled, …) - Codeunit 5340 “CRM Integration Table Synch.” (5 calls:
CloseConnection → OnCloseCDSConnection,CreateCRMIntegrationRecordClone → RepairBrokenCouplings,GetIntegrationUserId → OnGetCDSIntegrationUserId, …) - Codeunit 7201 “CDS Integration Impl.” (5 calls:
GetCRMEntityUrlFromCRMID → GetCRMEntityTypeName,ShowIntegrationUser → GetCRMEntityUrlFromCRMID,ShowOwningTeam → GetCRMEntityUrlFromCRMID, …) - Table 5335 “Integration Table Mapping” (5 calls:
DisableMultiCompanySynchronization → (object),EnableMultiCompanySynchronization → (object),EnableMultiCompanySynchronization → CheckSolutionVersionOutdated, …) - Codeunit 49 “GlobalTriggerManagement” (4 calls:
GetDatabaseTableTriggerSetup → GetDatabaseTableTriggerSetup,OnDatabaseInsert → OnDatabaseInsert,OnDatabaseModify → OnDatabaseModify, …) - Page 1817 “CRM Connection Setup Wizard” (4 calls:
FinalizeSetup → ImportCRMSolution,FinalizeSetup → InitializeCRMSynchStatus,InitializeDefaultProxyVersion → GetLastProxyVersionItem, …) - Page 6612 “FS Connection Setup” (4 calls:
InitializeDefaultProxyVersion → GetLastProxyVersionItem,OnInit → RegisterAssistedSetup,OnOpenPage → SendConnectionDisabledNotification, …) - Table 5373 “CRM Full Synch. Review Line” (4 calls:
GenerateCRMSynchReviewLines → (object),GenerateCRMSynchReviewLines → IsCRMIntegrationEnabled,Start → EnqueueFullSyncJob, …) - Codeunit 5331 “CRM Coupling Management” (3 calls:
DefineOptionMapping → CreateOptionMapping,RemoveCoupling → RemoveCoupling,RemoveSingleCoupling → RemoveCoupling) - Codeunit 5346 “CRM Sales Document Posting Mgt” (3 calls:
CheckShippedOrders → (object),PostCRMSalesDocumentOnAfterPostSalesDoc → (object),SetSalesOrderIdsOnSalesHeaderDeletion → IsCRMIntegrationEnabled) - Codeunit 5360 “CDS Int. Table Couple” (3 calls:
CoupleRecords → CreateNewRecordsInCRM,CoupleRecords → FindCoupledToCRMField,SynchronizeCoupledRecords → EnqueueSyncJob) - Codeunit 5365 “CDS Int. Option Couple” (3 calls:
CoupleRecords → CreateNewOptionsInCRM,SynchronizeCoupledRecords → EnqueueOptionSyncJobFromIntegrationTable,SynchronizeCoupledRecords → EnqueueOptionSyncJobToIntegrationTable) - Codeunit 6610 “FS Int. Table Subscriber” (3 calls:
HandleOnAfterApplyUsage → (object),HandleOnAfterPostJnlLines → (object),OnEnsureConnectionSetupIsDisabled → CheckCRMConnectionURL) - Page 21 “Customer Card” (3 calls:
OnAfterGetCurrRecordFunc → SendResultNotification,OnOpenPageFunc → IsCDSIntegrationEnabled,OnOpenPageFunc → IsCRMIntegrationEnabled) - Page 495 “Currency Card” (3 calls:
OnAfterGetCurrRecord → SendResultNotification,OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 5050 “Contact Card” (3 calls:
OnAfterGetCurrRecord → SendResultNotification,OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 5116 “Salesperson/Purchaser Card” (3 calls:
OnAfterGetCurrRecord → SendResultNotification,OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 5329 “CRM Redirect” (3 calls:
OnFindRecord → OpenCoupledNavRecordPage,OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 5330 “CRM Connection Setup” (3 calls:
InitializeDefaultProxyVersion → GetLastProxyVersionItem,OnInit → RegisterAssistedSetup,OnOpenPage → SendConnectionDisabledNotification) - Page 5360 “CRM Statistics FactBox” (3 calls:
GetNoOfCRMCases → GetNoOfCRMCases,GetNoOfCRMOpportunities → GetNoOfCRMOpportunities,GetNoOfCRMQuotes → GetNoOfCRMQuotes) - Page 6613 “FS Connection Setup Wizard” (3 calls:
FinalizeSetup → CheckCRMConnectionURL,InitializeDefaultProxyVersion → GetLastProxyVersionItem,OnOpenPage → CheckCRMConnectionURL) - Page 7209 “CDS Couple Salespersons” (3 calls:
OnInit → (object),ScheduleSalespersonsCoupling → CoupleCRMEntity,ScheduleUncoupledUsersSynch → CreateNewRecordsFromSelectedCRMRecords) - Table 5374 “CRM Synch. Conflict Buffer” (3 calls:
RestoreDeletedRecords → CreateNewRecords,UncoupleIntegrationRecords → RemoveCoupling,UncoupleLocalRecords → RemoveCoupling) - Codeunit 5350 “CRM Statistics Job” (2 calls:
InitializeCustomerStatisticsSynchronizationTime → InitializeCRMSynchStatus,UpdateStatusOfPaidInvoices → InitializeCRMSynchStatus) - Codeunit 5352 “CRM Order Status Update Job” (2 calls:
FindCoupledCRMAccount → IsCRMIntegrationEnabled,FindCoupledCRMSalesOrder → IsCRMIntegrationEnabled) - Codeunit 5356 “CRM Item Availability Job” (2 calls:
CheckItemLedgerEntries → EnqueueSyncJob,CheckItemLedgerEntries → IsCRMIntegrationEnabled) - Codeunit 5367 “CRM Update Unit Group Mapping” (2 calls:
OnRun → UpdateItemUnitGroup,OnRun → UpdateResourceUnitGroup) - Codeunit 6277 “Sust. Setup Defaults” (2 calls:
ResetConfiguration → IsCDSIntegrationEnabled,ResetConfiguration → IsCRMIntegrationEnabled) - Page 132 “Posted Sales Invoice” (2 calls:
OnAfterGetCurrRecord → SendResultNotification,OnOpenPage → IsCRMIntegrationEnabled) - Page 14 “Salespersons/Purchasers” (2 calls:
OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 209 “Units of Measure” (2 calls:
OnOpenPage → IsCRMIntegrationEnabled,OnOpenPage → IsUnitGroupMappingEnabled) - Page 210 “Resource Units of Measure” (2 calls:
OnOpenPage → IsCRMIntegrationEnabled,OnOpenPage → IsUnitGroupMappingEnabled) - Page 22 “Customer List” (2 calls:
OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 26 “Vendor Card” (2 calls:
OnOpenPageFunc → IsCDSIntegrationEnabled,OnOpenPageFunc → IsCRMIntegrationEnabled) - Page 27 “Vendor List” (2 calls:
OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 30 “Item Card” (2 calls:
OnAfterGetCurrRecordFunc → SendResultNotification,OnOpenPageFunc → IsCRMIntegrationEnabled) - Page 5 “Currencies” (2 calls:
OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 5052 “Contact List” (2 calls:
OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 5333 “CRM Skipped Records” (2 calls:
LoadData → IsCDSIntegrationEnabled,LoadData → IsCRMIntegrationEnabled) - Page 5335 “Integration Table Mapping List” (2 calls:
SetCDSIntegrationEnabledState → IsCDSIntegrationEnabled,SetCRMIntegrationEnabledState → IsCRMIntegrationEnabled) - Page 5339 “Integration Synch. Error List” (2 calls:
OnOpenPage → IsCDSIntegrationEnabled,OnOpenPage → IsCRMIntegrationEnabled) - Page 5340 “CRM Systemuser List” (2 calls:
LinkUsersToSalespersons → CoupleCRMEntity,OnInit → (object)) - Page 5362 “CRM UnitGroup List” (2 calls:
OnAfterGetRecord → IsUnitGroupMappingEnabled,OnInit → (object)) - Page 5400 “Item Unit Group List” (2 calls:
OnOpenPage → IsCRMIntegrationEnabled,OnOpenPage → IsUnitGroupMappingEnabled) - Page 5403 “Resource Unit Group List” (2 calls:
OnOpenPage → IsCRMIntegrationEnabled,OnOpenPage → IsUnitGroupMappingEnabled) - and 91 more: data/code/graph/29/calls.json
Recent changes
- 2026-10-06 #12261 Stop repeated rescheduling of Dataverse synch jobs on bulk changes (main, BC30, fix)
- 2026-09-22 #11171 [Security][Hardening] Validate integration URLs stored in setup tables (main, BC30, fix)
- 2026-08-28 #10578 [Extensibility Request] issue 30429: add events to disambiguate CRM integration table mappings (main, BC30, feature)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "CRM Integration Management"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.