codeunitIntegration & APIsofficial - Microsoftderived - from the source, no model text

Codeunit 5330 "CRM Integration Management"

Base Application · Microsoft.Integration.Dataverse

Across versions

  1. BC23present
  2. BC2414 procedures added, 3 events added
  3. BC259 procedures removed, 6 procedures changed
  4. BC264 procedures removed
  5. BC27unchanged
  6. BC2810 procedures removed, 2 procedures added
  7. BC292 events added
  8. BC302 procedures added

Neighbourhood 158 connected objects and pages

Codeunit 7205 "CDS Int. Table. Subscriber" (event subscribers, 6 links)CDS Int. Table. SubscriberCodeunit 6610 "FS Int. Table Subscriber" (event subscribers, 4 links)FS Int. Table SubscriberCodeunit 5334 "CRM Setup Defaults" (calls, 31 links)CRM Setup DefaultsCodeunit 5341 "CRM Int. Table. Subscriber" (calls, 21 links)CRM Int. Table. SubscriberCodeunit 7201 "CDS Integration Impl." (calls, 15 links)Codeunit 5344 "CRM Product Name" (calls, 14 links)CRM Product NameTable 5330 "CRM Connection Setup" (calls, 13 links)Codeunit 7204 "CDS Setup Defaults" (calls, 12 links)CDS Setup DefaultsCodeunit 6615 "FS Integration Mgt." (calls, 9 links)FS Integration Mgt.Codeunit 5343 "CRM Sales Order to Sales Order" (calls, 8 links)CRM Sales Order to Sales OrderCodeunit 7205 "CDS Int. Table. Subscriber" (calls, 6 links)CDS Int. Table. SubscriberCodeunit 1291 "DotNet Exception Handler" (calls, 5 links)Codeunit 5331 "CRM Coupling Management" (calls, 5 links)CRM Coupling ManagementCodeunit 5336 "Integration Record Synch." (calls, 5 links)Codeunit 5340 "CRM Integration Table Synch." (calls, 5 links)CRM Integration Table Synch.Table 5335 "Integration Table Mapping" (calls, 5 links)Codeunit 49 "GlobalTriggerManagement" (calls, 4 links)GlobalTriggerManagementCodeunit 5350 "CRM Statistics Job" (calls, 4 links)CRM Statistics JobCodeunit 5360 "CDS Int. Table Couple" (calls, 4 links)Page 1817 "CRM Connection Setup Wizard" (calls, 4 links)CRM Connection Setup WizardPage 21 "Customer Card" (calls, 4 links)Page 495 "Currency Card" (calls, 4 links)Page 5050 "Contact Card" (calls, 4 links)Page 5116 "Salesperson/Purchaser Card" (calls, 4 links)Page 6612 "FS Connection Setup" (calls, 4 links)Table 5373 "CRM Full Synch. Review Line" (calls, 4 links)Codeunit 1990 "Guided Experience" (calls, 3 links)Codeunit 5345 "Integration Rec. Synch. Invoke" (calls, 3 links)Codeunit 5346 "CRM Sales Document Posting Mgt" (calls, 3 links)Codeunit 5365 "CDS Int. Option Couple" (calls, 3 links)Codeunit 6610 "FS Int. Table Subscriber" (calls, 3 links)Page 209 "Units of Measure" (calls, 3 links)Page 26 "Vendor Card" (calls, 3 links)Page 30 "Item Card" (calls, 3 links)Page 5329 "CRM Redirect" (calls, 3 links)Page 5330 "CRM Connection Setup" (calls, 3 links)Page 5341 "CRM Account List" (calls, 3 links)Page 5360 "CRM Statistics FactBox" (calls, 3 links)Page 6613 "FS Connection Setup Wizard" (calls, 3 links)Page 7209 "CDS Couple Salespersons" (calls, 3 links)

Open in the neighbourhood explorer

One hop out, from the extracted relations and call graph. Up to 40 shown; the sections below list them all.

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)
  • OnInitCDSConnection(var ConnectionName: Text; var handled: Boolean) (integration)
  • OnGetCDSIntegrationUserId(var IntegrationUserId: Guid; var handled: Boolean) (integration)
  • OnGetCDSServerAddress(var CDSServerAddress: Text; var handled: Boolean) (integration)
  • OnTestCDSConnection(var handled: Boolean) (integration)
  • OnCloseCDSConnection(ConnectionName: Text; var handled: Boolean) (integration)
  • OnAfterCRMIntegrationEnabled() (integration)
  • OnBeforeOpenRecordCardPage(RecordID: RecordID; var IsHandled: Boolean) (integration)
  • 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)
  • OnBeforeSynchronyzeNowQuestion(var AllowedDirection: Integer; var IsHandled: Boolean) (integration)
  • OnIsCRMIntegrationRecord(TableID: Integer; var isIntegrationRecord: Boolean) (integration)
  • 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)
  • OnBeforeOpenCoupledNavRecordPage(CRMID: Guid; CRMEntityTypeName: Text; var Result: Boolean; var IsHandled: Boolean) (integration)
  • OnBeforeFindCoupledToCRMField(TableNo: Integer; var IsHandled: Boolean; var CoupledFieldNo: Integer) + BC28 − BC28 (integration)
  • 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)
  • 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(): Boolean
  • IsCDSIntegrationEnabled(): Boolean
  • IsIntegrationEnabled(): Boolean
  • IsCRMSolutionInstalled(): Boolean
  • CheckSolutionVersionOutdated(): Boolean
  • SetCRMNAVConnectionUrl(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): Boolean
  • EnqueueOptionSyncJobToIntegrationTable(IntegrationTableMapping: Record "Integration Table Mapping"; LocalIdList: List of [Guid]; Direction: Integer; SynchronizeOnlyCoupledRecords: Boolean): Boolean
  • CreateNewRecordsFromCRM(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): Boolean
  • MatchBasedCoupling(TableID: Integer; SkipSettingCriteria: Boolean; IsFullSync: Boolean; InForeground: Boolean): Boolean
  • RemoveCoupling(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): Boolean
  • RemoveCoupling(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): Boolean
  • EnqueueFullSyncJob(Name: Code[20]): Guid
  • EnqueueSyncJob(IntegrationTableMapping: Record "Integration Table Mapping"; RecordID: RecordID; CRMID: Guid; Direction: Integer): Boolean Δ BC25 Δ BC25
  • EnqueueSyncJob(IntegrationTableMapping: Record "Integration Table Mapping"; SystemIds: List of [Guid]; CRMIDs: List of [Guid]; Direction: Integer; SynchronizeOnlyCoupledRecords: Boolean): Boolean Δ BC25 Δ BC25
  • AddIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping") Δ BC25 Δ BC25
  • AddIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping"; SynchOnlyCoupledRecords: Boolean) Δ BC25 Δ BC25
  • CloneIntegrationFieldMapping(SourceMappingName: Code[20]; DestinationMappingName: Code[20])
  • CreateOrUpdateCRMAccountStatistics(Customer: Record Customer)
  • ShowCRMEntityFromRecordID(RecordID: RecordID)
  • GetCRMEntityUrlFromRecordID(TargetRecordID: RecordID): Text
  • GetCRMEntityUrlFromCRMID(TableId: Integer; CRMId: Guid): Text + BC24
  • GetCRMEntityUrlFromCRMID(TableId: Integer; CRMTableId: Integer; CRMId: Guid): Text + BC24
  • OpenCoupledNavRecordPage(CRMID: Guid; CRMEntityTypeName: Text): Boolean
  • GetCRMEntityTypeName(TableId: Integer): Text + BC24
  • GetCRMEntityTypeName(TableId: Integer; CRMTableId: Integer): Text + BC24
  • DefineCoupling(RecordID: RecordID): Boolean
  • DefineOptionMapping(RecordID: RecordID): Boolean
  • ManageCreateNewRecordFromCRM(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): Integer
  • GetNoOfCRMQuotes(Customer: Record Customer): Integer
  • GetNoOfCRMCases(Customer: Record Customer): Integer
  • ClearState()
  • GetLastErrorMessage(): Text
  • ImportCRMSolution(ServerAddress: Text; IntegrationUserEmail: Text; AdminUserEmail: Text; AdminUserPassword: SecretText; AccessToken: SecretText; AdminADDomain: Text; ProxyVersion: Integer; ForceRedeploy: Boolean; var SolutionImportFailed: Boolean) Δ BC25 + BC25 − BC28
  • IsSolutionOutdated(TempConnectionString: SecretText; SolutionUniqueName: Text[65]): Boolean + BC24 + BC25 + BC25 − BC25 − BC25
  • CheckConnectRequiredFields(ServerAddress: Text; IntegrationUserEmail: Text)
  • CheckModifyCRMConnectionURL(var ServerAddress: Text[250])
  • CheckCRMConnectionURL(ServerAddress: Text[250]) + BC28
  • GetOrganizationFromUrl(ServerAddress: Text[250]): Text
  • ConstructConnectionStringForSolutionImport(ServerAddress: Text): Text
  • ProcessConnectionFailures() Δ BC24
  • DisableNotification(HostNotification: Notification)
  • GetCommonNotificationID(): Guid
  • GetSkippedNotificationID(): Guid
  • SendResultNotification(RecVariant: Variant): Boolean
  • OpenIntegrationSynchronizationJobsFromNotification(HostNotification: Notification)
  • ShowLog(RecId: RecordID)
  • ShowOptionLog(RecId: RecordId)
  • ShowSkippedRecords(SkippedSyncNotification: Notification)
  • CoupleCRMEntity(RecordID: RecordID; CRMID: Guid; var Synchronize: Boolean; var Direction: Option): Boolean
  • TestCRMConnection(var CRMHelper: DotNet CrmHelper) Δ BC24
  • InitializeProxyVersionList(var TempStack: Record TempStack temporary)
  • GetLastProxyVersionItem(): Integer
  • ClearConnectionDisableReason(var CRMConnectionSetup: Record "CRM Connection Setup")
  • GetCRMDisabledErrorReasonNotificationId(): Guid
  • IsWorkingConnection(): Boolean
  • SendConnectionDisabledNotification(DisableReason: Text[250])
  • IsItemAvailabilityEnabled(): Boolean
  • InitializeCRMSynchStatus()
  • InitializeCRMSynchStatus(var CRMSynchStatus: Record "CRM Synch Status") (internal)
  • HasUncoupledSelectedUsers(var SelectedCRMSystemuser: Record "CRM Systemuser"): Boolean
  • RegisterAssistedSetup()
  • IsCRMIntegrationRecord(TableID: Integer): Boolean
  • GetDatabaseTableTriggerSetup(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(): Boolean
  • FindCoupledToCRMField(var RecRef: RecordRef; var CoupledToCRMFldRef: FieldRef): Boolean (internal)
  • EnableUnitGroupMapping(): Guid
  • DisableUnitGroupMapping()
  • AdjustUnitGroupCRMConnectionSetup()
  • UpdateItemUnitGroup()
  • UpdateResourceUnitGroup()
  • IsUnitGroupMappingEnabled(): Boolean
  • MultipleCompanyLearnMore(var Notification: Notification) + BC24
  • IsIntegrationRecordChild(TableID: Integer): Boolean
  • IsFieldServiceIntegrationAppInstalled(): 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.

Called by

Recent changes

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.

Evidence 1 sources