Codeunit 5342 "CRM Synch. Helper"
Base Application · Microsoft.Integration.Dataverse
Across versions
- BC23present
- BC241 events changed
- BC25unchanged
- BC261 procedures added, 1 procedures removed
- BC271 events added
- BC28-30unchanged
Neighbourhood 30 connected objects and pages
Base Application · Microsoft.Integration.Dataverse · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Permissions | TableData “Sales Invoice Header” = m |
Events published
OnAfterGetFieldRelation(RecRef: RecordRef; FldRef: FieldRef; var TableID: Integer)(integration)OnGetCDSBaseCurrencyId(var BaseCurrencyId: Guid; var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnGetCDSBaseCurrencyId
OnGetCDSOwnershipModel(var OwnershipModel: Option; var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnGetCDSOwnershipModel
OnGetCDSBaseCurrencySymbol(var BaseCurrencySymbol: Text[5]; var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnGetCDSBaseCurrencySymbol
OnGetCDSBaseCurrencyPrecision(var BaseCurrencyPrecision: Integer; var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnGetCDSBaseCurrencyPrecision
OnGetCDSCurrencyDecimalPrecision(var CurrencyDecimalPrecision: Integer; var handled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnGetCDSCurrencyDecimalPrecision
OnGetVendorSyncEnabled(var Enabled: Boolean)(integration)- subscribers: Codeunit 7205 “CDS Int. Table. Subscriber” HandleOnGetVendorSyncEnabled
OnGetIsContactBusinessRelationOptional(var Optional: Boolean)(integration)OnGetIsContactTypeCheckIgnored(var Ignored: Boolean)(integration)OnFindAndSynchRecordIDFromIntegrationSystemId(IntegrationSystemId: Guid; TableId: Integer; var LocalRecordID: RecordID; var IsHandled: Boolean)Δ BC24 (integration)- subscribers: Codeunit 7237 “Master Data Mgt. Subscribers” OnFindAndSynchRecordIDFromIntegrationSystemId
OnUpdateCRMInvoiceStatusFromEntryOnBeforeModify(var CRMInvoice: Record "CRM Invoice"; var NewCRMInvoice: Record "CRM Invoice"; CustLedgerEntry: Record "Cust. Ledger Entry")(integration)OnUpdateCRMInvoiceStatusFromEntryOnBeforeCheckFieldsChanged(var CRMInvoice: Record "CRM Invoice"; var NewCRMInvoice: Record "CRM Invoice"; CustLedgerEntry: Record "Cust. Ledger Entry"; var ChangeNeeded: Boolean)(integration)OnBeforeCalculateActualStatusCode(CustLedgerEntry: Record "Cust. Ledger Entry"; var CRMInvoice: Record "CRM Invoice"; var IsHandled: Boolean)(integration)OnConvertOptionToTableOnBeforeSetRangeForIntegrationFieldID(var CRMOptionMapping: Record "CRM Option Mapping"; SourceFieldRef: FieldRef; var IsHandled: Boolean)(integration)OnCancelCRMInvoiceOnBeforeModifyCRMInvoice(var CRMInvoice: Record "CRM Invoice"; var NewCRMInvoice: Record "CRM Invoice")(integration)OnCancelCRMInvoiceOnBeforeCheckFieldsChanged(var CRMInvoice: Record "CRM Invoice"; var NewCRMInvoice: Record "CRM Invoice"; var ChangeNeeded: Boolean)(integration)OnBeforeFulfillSalesOrder(var SalesOrderId: Guid)+ BC26 (integration)OnFailedFindContactByAccountId(DestinationContactRecordRef: RecordRef; var CompanyContact: Record Contact; AccountID: Guid; var OutOfMapFilter: Boolean; var Result: Boolean)+ BC27 (integration)
Procedures
ClearCache()GetDefaultPriceListName(): Text[100]CreateCRMPricelevelInCurrency(var CRMPricelevel: Record "CRM Pricelevel"; CurrencyCode: Code[10]; NewExchangeRate: Decimal)CreateCRMPriceList(SalesHeader: Record "Sales Header"; var CRMPricelevel: Record "CRM Pricelevel")UpdateCRMPriceList(SalesHeader: Record "Sales Header"; CRMPricelevelId: Guid)CreateCRMProductpricelevelForProductAndUom(CRMProduct: Record "CRM Product"; NewPriceLevelId: Guid; CRMUom: Record "CRM Uom")CreateCRMProductpriceIfAbsent(CRMInvoicedetail: Record "CRM Invoicedetail")FindCRMDefaultPriceList(var CRMPricelevel: Record "CRM Pricelevel")FindCRMPriceListByCurrencyCode(var CRMPricelevel: Record "CRM Pricelevel"; CurrencyCode: Code[10]): BooleanFindCRMProductPriceFromCRMInvoicedetail(CRMInvoicedetail: Record "CRM Invoicedetail"): BooleanFindNAVLocalCurrencyInCRM(var CRMTransactioncurrency: Record "CRM Transactioncurrency"): GuidGetBaseCurrencyPrecision(): DecimalGetCRMCurrencyDefaultPrecision(): IntegerGetCRMLCYToFCYExchangeRate(ToCurrencyISOCode: Text[10]): DecimalGetFCYtoFCYExchangeRate(FromFCY: Code[10]; ToFCY: Code[10]): DecimalGetUnitGroupName(UnitOfMeasureCode: Text): Text[200]GetUnitOfMeasureName(UnitOfMeasureRecordRef: RecordRef): Text[100]SetCRMDecimalsSupportedValue(var CRMProduct: Record "CRM Product")SetCRMDefaultPriceListOnProduct(var CRMProduct: Record "CRM Product"): BooleanSetCRMProductStateToActive(var CRMProduct: Record "CRM Product")SetCRMProductStateToRetired(var CRMProduct: Record "CRM Product")SetContactParentCompany(AccountID: Guid; DestinationContactRecordRef: RecordRef): BooleanSynchRecordIfMappingExists(TableNo: Integer; IntegrationTableNo: Integer; PrimaryKey: Variant): BooleanSynchRecordIfMappingExists(TableNo: Integer; IntegrationTableNo: Integer; PrimaryKey: Variant; var OutOfMapFilter: Boolean): BooleanUpdateCRMCurrencyIdIfChanged(CurrencyCode: Text; var DestinationCurrencyIDFieldRef: FieldRef): BooleanUpdateCRMInvoiceStatus(var CRMInvoice: Record "CRM Invoice"; SalesInvoiceHeader: Record "Sales Invoice Header")CancelCRMInvoice(var CRMInvoice: Record "CRM Invoice"): Integer(internal)UpdateCRMInvoiceStatusFromEntry(var CRMInvoice: Record "CRM Invoice"; CustLedgerEntry: Record "Cust. Ledger Entry"): IntegerUpdateCRMPriceListItem(var CRMProduct: Record "CRM Product"): BooleanUpdateCRMPriceListItems(var CRMProduct: Record "CRM Product"): BooleanUpdateCRMPriceListItemForUom(var CRMProduct: Record "CRM Product"; CRMUom: Record "CRM Uom"): BooleanUpdateCRMProductPriceIfNegative(var CRMProduct: Record "CRM Product"): BooleanUpdateCRMProductQuantityOnHandIfNegative(var CRMProduct: Record "CRM Product"): BooleanUpdateCRMProductTypeCodeIfChanged(var CRMProduct: Record "CRM Product"; NewProductTypeCode: Integer): BooleanUpdateCRMProductStateCodeIfChanged(var CRMProduct: Record "CRM Product"; NewBlocked: Boolean): BooleanUpdateItemBlockedIfChanged(var Item: Record Item; NewBlocked: Boolean): BooleanUpdateResourceBlockedIfChanged(var Resource: Record Resource; NewBlocked: Boolean): BooleanUpdateCRMProductUoMFieldsIfChanged(var CRMProduct: Record "CRM Product"; UnitOfMeasureCode: Code[10]): BooleanUpdateCRMProductUomscheduleId(var CRMProduct: Record "CRM Product"; SourceRecordRef: RecordRef): BooleanUpdateCRMProductVendorNameIfChanged(var CRMProduct: Record "CRM Product"): BooleanUpdateOwnerIfChanged(SourceRecordRef: RecordRef; DestinationRecordRef: RecordRef; SourceSalespersonCodeFieldNo: Integer; DestinationOwnerFieldNo: Integer; DestinationOwnerTypeFieldNo: Integer; DestinationOwnerTypeValue: Option): BooleanUpdateContactOnModifyCustomer(RecRef: RecordRef)UpdateContactOnModifyVendor(RecRef: RecordRef)FindOpportunityRelatedCustomer(SourceRecordRef: RecordRef; var ContactBusinessRelation: Record "Contact Business Relation"): Boolean(internal)FindContactRelatedCustomer(SourceRecordRef: RecordRef; var ContactBusinessRelation: Record "Contact Business Relation"): BooleanFindContactRelatedVendor(SourceRecordRef: RecordRef; var ContactBusinessRelation: Record "Contact Business Relation"): BooleanUpdateSalesPersonCodeIfChanged(SourceRecordRef: RecordRef; var DestinationRecordRef: RecordRef; SourceOwnerIDFieldNo: Integer; SourceOwnerTypeFieldNo: Integer; AllowedOwnerTypeValue: Option; DestinationSalesPersonCodeFieldNo: Integer): BooleanUpdateFieldRefValueIfChanged(var DestinationFieldRef: FieldRef; NewFieldValue: Text): BooleanGetValidCRMUnitOfMeasureRecords(var CRMUom: Record "CRM Uom"; var CRMUomschedule: Record "CRM Uomschedule"; UnitOfMeasureCode: Code[10])GetCRMTransactioncurrency(CurrencyCode: Text): GuidShowPage(RecordID: RecordID)FindNewValueForSpecialMapping(SourceFieldRef: FieldRef; var NewValue: Variant): BooleanFindPKByRecordID(RecID: RecordID; var PrimaryKey: Variant): BooleanFindRecordIDByPK(TableID: Integer; PrimaryKey: Variant; var RecID: RecordID): BooleanFindSourceIntegrationTableMapping(var IntegrationTableMapping: Record "Integration Table Mapping"; SourceFieldRef: FieldRef; DestinationFieldRef: FieldRef): BooleanIsClearValueOnFailedSync(SourceFieldRef: FieldRef; DestinationFieldRef: FieldRef): BooleanAreFieldsRelatedToMappedTables(SourceFieldRef: FieldRef; DestinationFieldRef: FieldRef; var IntegrationTableMapping: Record "Integration Table Mapping"): BooleanGetCoupledCDSUserId(SourceRecordRef: RecordRef): GuidConvertBaseUnitOfMeasureToUomId(SourceFieldRef: FieldRef; DestinationFieldRef: FieldRef; var NewValue: Variant)ConvertUomIdToBaseUnitOfMeasure(SourceFieldRef: FieldRef; DestinationFieldRef: FieldRef; var NewValue: Variant)PrefixUnitGroupCode(SourceFieldRef: FieldRef; var NewValue: Variant)ConvertTableToOption(SourceFieldRef: FieldRef; DestinationFieldRef: FieldRef; var OptionValue: Integer): Boolean− BC26ConvertOptionToTable(SourceFieldRef: FieldRef; DestinationFieldRef: FieldRef; var TableValue: Text): BooleanUpdateCDSOptionMapping(OldRecId: RecordId; NewRecId: RecordId)FindNewValueForSpecialMapping(SourceFieldRef: FieldRef; DestinationFieldRef: FieldRef; var NewValue: Variant): Boolean(internal)IsContactBusinessRelationOptional(): Boolean(internal)IsContactTypeCheckIgnored(): Boolean(internal)TransformValue(SourceRecordRef: RecordRef; DestinationRecordRef: RecordRef; TransformationRule: Record "Transformation Rule"; SourceFieldNo: Integer; DestinationFieldNo: Integer)FulfillSalesOrder(SalesOrderId: Guid)+ BC26 (internal)
Plus 42 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 5344 “CRM Product Name” (6 calls:
ConvertBaseUnitOfMeasureToUomId → SHORT,ConvertOptionToTable → CDSServiceName,ConvertTableToOption → CDSServiceName, …) - Codeunit 5340 “CRM Integration Table Synch.” (2 calls:
CoupleAndSyncItemUoM → SynchRecordsToIntegrationTable,CoupleAndSyncResourceUoM → SynchRecordsToIntegrationTable) - Codeunit 10 “Type Helper” (1 call:
SetDateField → Evaluate) - Codeunit 5056 “CustCont-Update” (1 call:
UpdateContactOnModifyCustomer → OnModify) - Codeunit 5057 “VendCont-Update” (1 call:
UpdateContactOnModifyVendor → OnModify) - Codeunit 5302 “Outlook Synch. Type Conv” (1 call:
UpdateSalesPersonCodeIfChanged → TextToOptionValue) - Codeunit 5330 “CRM Integration Management” (1 call:
ShowPage → GetCRMEntityUrlFromCRMID) - Codeunit 5334 “CRM Setup Defaults” (1 call:
SetCRMDecimalsSupportedValue → GetProductQuantityPrecision) - Codeunit 700 “Page Management” (1 call:
ShowPage → PageRun) - Codeunit 7201 “CDS Integration Impl.” (1 call:
FulfillSalesOrder → InitializeConnection)
Called by
- Codeunit 5341 “CRM Int. Table. Subscriber” (70 calls:
CheckCustPriceGroupForSync → FindNAVLocalCurrencyInCRM,CheckCustPriceGroupForSync → GetCRMTransactioncurrency,CheckPriceListHeaderForSync → FindNAVLocalCurrencyInCRM, …) - Codeunit 7205 “CDS Int. Table. Subscriber” (22 calls:
FindNewValueForCoupledRecordPK → FindNewValueForSpecialMapping,FindNewValueForCoupledRecordPK → FindPKByRecordID,FindNewValueForCoupledRecordPK → FindRecordIDByPK, …) - Codeunit 6276 “Sust. Int. Table Subscriber” (7 calls:
TransferAssessmentFieldDataFromAssessmentRequirement → SynchRecordIfMappingExists,TransferBaseUnitFieldDataFromUnit → SynchRecordIfMappingExists,TransferConceptFieldDataFromRequirementConcept → SynchRecordIfMappingExists, …) - Codeunit 5350 “CRM Statistics Job” (3 calls:
CreateOrUpdateCRMAccountStatistics → FindNAVLocalCurrencyInCRM,UpdateInvoice → CancelCRMInvoice,UpdateInvoice → UpdateCRMInvoiceStatusFromEntry) - Codeunit 7237 “Master Data Mgt. Subscribers” (2 calls:
ApplyTransformations → TransformValue,UpdateContactParentCompany → SetContactParentCompany) - Table 6610 “FS Bookable Resource” (2 calls:
GetBaseCurrencyCode → GetNavCurrencyCode,GetCurrencyCode → GetNavCurrencyCode) - Table 6611 “FS Bookable Resource Booking” (2 calls:
GetBaseCurrencyCode → GetNavCurrencyCode,GetCurrencyCode → GetNavCurrencyCode) - Table 6617 “FS Work Order” (2 calls:
GetBaseCurrencyCode → GetNavCurrencyCode,GetCurrencyCode → GetNavCurrencyCode) - Table 6619 “FS Work Order Product” (2 calls:
GetBaseCurrencyCode → GetNavCurrencyCode,GetCurrencyCode → GetNavCurrencyCode) - Table 6620 “FS Work Order Service” (2 calls:
GetBaseCurrencyCode → GetNavCurrencyCode,GetCurrencyCode → GetNavCurrencyCode) - Codeunit 5340 “CRM Integration Table Synch.” (1 call:
IgnoreCompanyContactOnQueryPostFilterIgnoreRecord → IsContactTypeCheckIgnored) - Codeunit 5343 “CRM Sales Order to Sales Order” (1 call:
CreateSalesOrderHeader → GetNavCurrencyCode) - Codeunit 5348 “CRM Quote to Sales Quote” (1 call:
CreateOrUpdateSalesQuoteHeader → GetNavCurrencyCode) - Codeunit 5397 “CDS Transformation Rule Mgt.” (1 call:
ApplyTransformations → TransformValue) - Codeunit 6610 “FS Int. Table Subscriber” (1 call:
HandleOnBeforeInsertRecord → FindRecordIDByPK) - Table 10 “Shipment Method” (1 call:
OnRename → UpdateCDSOptionMapping) - Table 291 “Shipping Agent” (1 call:
OnRename → UpdateCDSOptionMapping) - Table 3 “Payment Terms” (1 call:
OnRename → UpdateCDSOptionMapping) - Table 5373 “CRM Full Synch. Review Line” (1 call:
GenerateCRMSynchReviewLines → OnGetCDSOwnershipModel)
Countries that replace it
Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).
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 Synch. Helper"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.