Extensibility changes in the Dynamics 365 for Finance and Operations, Enterprise edition (July 2017)

This is a list of extensibility features that were implemented in the Dynamics 365 for Finance and Operations, Enterprise edition (July 2017). This version was released in July 2017 and has a build number of 7.2.11792.56024. For more information about the schedule of changes that support extensibility, see Application extensibility plans.

Soft-sealed application models

The following application middle-tier models were soft-sealed in this release. Overlayered code in these models will generate warnings on compilation.

Category Model
Application Frameworks CaseManagement
Application Frameworks Dimensions
Application Frameworks Directory
Application Frameworks Organization
Application Frameworks Currency
Application Frameworks ApplicationCommon
HCM Core Models 3817938
Tax Models Tax
Tax Models Tax Books
Tax Models Tax Books Application Suite Integration
Tax Models Tax Engine Application Suite Integration
Tax Models Tax Engine Configuration
Tax Models Tax Engine Interface
Tax Models Tax Engine Runtime Generation
Tax Models TaxEngine
Source Document Models SourceDocumentation
Source Document Models SourceDocumentationTypes
Ledger Models GeneralLedger
Ledger Models Ledger
Ledger Models Subledger
Middle Tier SCM Models CostAccounting
Middle Tier SCM Models CostAccountingAX
Middle Tier SCM Models SCMControls
Middle Tier SCM Models SCMMobile
Middle Tier SCM Models UnitOfMeasure
Middle Tier SCM Models WMSAdvancedMigration
Middle Tier SCM Models InventoryDimensionConversion
Workspaces ApplicationWorkspaces
Finance Fiscalbooks
Management tools DataUpgrade

Hard-sealed application models

The following application middle-tier models were hard-sealed in this release. Overlayered code in these models will generate errors on compilation.

Category Model
Accounts Payable AccountsPayableMobile
Finance FinancialReportingEntityStore
Tools PerformanceTool
Expenses ExpenseMobile
GER ElectronicReporting
GER ElectronicReportingCore
GER Electronic Reporting Application Suite Integration

Enumerations that are now extensible

The following changes were made to support extending enumerations:

  • Many enumerations in the standard application have been made extensible. An enumeration is made extensible by setting two properties on the enumeration. The IsExtensible property is set to Yes, and the UseEnumValue property is set to No.
  • Some enumerations represent state. New fa├žade methods have been added to help enable adding enumeration values by extension. For information about how to extend an enumeration, see Add an enum value.
  • Some application code that uses enumerations was changed to support extensibility. Common changes include:
    • Removing throw exception statements in the default case of a switch to allow post-event subscription.
    • Adding SysExtension support for extension.
    • Adding explicit delegates.
Enumeration
AgreementState
AssetAccountType
AssetTransTypeJournal
BankAccountType
BankFormat
BarcodeContentType
BarcodeCoverPageEntityType
BarcodeType
BOMCalcCostingVersionUpdate
BOMCalcCostPriceUsed
BOMCalcSalesPriceUsed
BOMCalcType
BOMCheckLevel
BOMCopyContext
BOMCopyMethod
BOMCopyType
BOMCostCalculationMethod
BOMExplode
BOMRouteCopyDataType
BOMVersionFilter
BudgetReservation_BusinessEvent_PSN
BudgetReservation_SourceDocument_PSN
BudgetReservation_SourceDocumentLine_PSN
CatCallMethod
CatContentType
CatImportStatus
CatMaintenanceRequestWfStatus
CatProcurementErrorCode
CatPurchaseStatus
CatUserReviewApprovalStatus
CatVendorCatalogFileUploadType
CatVendorCatalogTemplateCategory
CatVendorCategoryHierarchyType
CatVendorConfigurationForImport
CatVendorLegalEntityStatus
CatVendorSiteType
ConsignmentReplenishmentOrderLineStatus
ConsignmentReplenishmentOrderStatus
CostBreakdown
CostCalculationCompareProductType
CostCalculationRole
CostCalculationState
CostCalculationSurchargeSubtype
CostingActivationType
CostingVersionCompareTo
CostingVersionPriceType
CostPriceBase
CostProfitSet
CostSalesPriceDisplay
CostSheetNodeListType
CostSheetPanelView
CostSheetProdFlowMode
CostStatementCacheAggregationAfter
CostWIPStatementCategory
CustPaymentValidate
CustSpecTransOverviewFormMode
CustTransRefType
CustVendPaymentStatus
CustVendTransportPointTypeTransfer
DlvScheduleMarkupConversionMode
EcoResAttributeModifier
EcoResCategoryAttributeModifier
EcoResCategoryChangeStatus
EcoResCategoryHierarchyModifier
EcoResCategoryNamedHierarchyRole
EcoResProductImageUsage
EcoResProductListPage
EcoResProductPerCompanyListPageType
EcoResProductTemplateType
EcoResReleaseProductToCompany
EcoResVariantConfigurationTechnologyType
ECPsalesOrdersViewType
EPCSSProductViewType
EUSalesTransMethod
FormLetterType
GanttCallerWrkCtr
GanttSetupType
GanttTimeUnit
GanttWrkCtrDisplayColumnsType
IntercompanyGoodsInTransitLineType
InterCompanyGoodsInTransitOrigin
InventAccountType
InventAccountTypeStdCostVariance
InventAdjustmentBy
InventAgingView
InventBatchJournalType
InventCostBundleState
InventCostCostDistribution
InventCostTransactionCategory
InventCostTransRefType
InventCountCode
InventItemCostingType
InventItemLookupDefaultTab
InventItemOrderSetupCallerType
InventItemOrderSetupType
InventItemPriceCompareLevel
InventItemPriceFilterType
InventItemPriceType
InventJournalOwnershipChangeLineCreateQueryStatusIssue
InventJournalType
InventLedgerConflictModule
InventLocationType
InventMovSubType
InventNonConformanceApproval
InventNonConformanceHistoryType
InventNonConformanceType
InventParameters
InventPhysicalReduction
InventRefType
InventReleaseOrderPickingType
InventReportDimHistoryLogType
InventStdCostConvItemStatus
InventStdCostPeriodType
InventSumFields
InventSupplyDlvModeSelectCust
InventSupplyDlvModeSelectSupply
InventSupplyLeadTimeSource
InventSupplyTmpLeadtimeType
InventTestActionOnFailure
InventTestBlockProcess
InventTestCorrectionPriority
InventTestCorrectionStatus
InventTestDocumentStatus
InventTestOrderStatusDisplay
InventTestOutcomeStatus
InventTestQtySpecification
InventTestQuarantineType
InventTestReferenceType
InventTestReport
InventTestType
InventTrackingDimNodeType
InventTrackingProductType
InventTrackingRegisterTransRegStatus
InventTransChildType
InventTransferRemainStatus
InventTransferStatus
InventTransferUpdateType
InventTransPickRegisterLineStatus
InventTransType
InventUpdType
InventValueReportLedgerAccountCategory
InventValueReportLedgerLineType
InventValueReportResourceType
ItemGroupLedgerDimensionGroup
ItemReservation
JmgAbsenceColumnLayout
JmgAbsenceMethodEnum
JmgAttendanceRegistrationType
JmgAttendanceReportType
JmgBarCodeType
JmgBreakDropEnum
JmgClockStyle
JmgControlType
JmgDaysTotalWorkflowStatus
JmgEmployeeSignInStatus
JmgFeedbackButtonFunction
JmgFeedbackStyle
JmgFieldName
JmgGetRegistrationTimeFrom
JmgGridAppearance
JmgJobTableSynchronizationMode
JmgJournalRegWorkflowStatus
JmgMark
JmgMessageType
JmgPayAdjustType
JmgPayEventsExportType
JmgPaySpecTypeEnum
JmgPaySpecTypeEnumPick
JmgPostAutomatically
JmgProdStatusUpdate
JmgProdStatusUpdateReportFinished
JmgProfileSpecTypeEnum
JmgProfileStartCodeBlankPrev
JmgProjStatusUpdate
JmgRegistrationTouchJobStatus
JmgSecondPresentationEnum
JmgShopFloorServiceStatus
JmgSignInButtonFunction
JmgStoppedCompletedStatus
JmgTermBaudeRate
JmgTermComPort
JmgTermDataBit
JmgTerminalInsertMode
JmgTermStopBit
KanbanBoardRefreshCycle
KanbanBoardType
KanbanCardAssignmentType
KanbanControlActionState
KanbanControlLegendFormat
KanbanControlSelectionChanged
KanbanDemandOriginType
KanbanJobPeggingType
KanbanJobPickingListLineType
KanbanLineEventType
KanbanMultiMode
KanbanPrintInstructions
KanbanProdBOMLineEventType
KanbanQuantityCalculationStatus
KanbanSalesLineEventType
KanbanStockReplenishmentEventType
LeanBOMLineReservationMethod
LeanCostingUnusedQtyType
LeanHandlingUnitEmptyPolicy
LeanInventoryControl
LeanPeggedEventType
LeanPlanJobReferenceTypes
LeanProductionFlowCostingStatus
LeanProductionFlowVisualizationViewMode
LeanProductTypes
LeanTaktStatus
LedgerPostingType
LedgerTransTxt
MarkupAllocateAfter
MarkupCategory
MCRBrokerContractStatus
MCRCustSearchType
MCRFullTextSearchType
MCRInstallPlanApplyMiscCharge
MCRItemListGenerationType
MCRPickingPrompt
MCRPickingSessionStatus
MCRPickingWaveStatus
MCRPriceHistoryType
MCRRoyaltyLineBreakType
MCRRoyaltyTakenFrom
MCRRoyaltyTransactionType
MCRRoyaltyUnitType
MCRRoyaltyUOMOption
MCRSalesOrderDetailStatus
ModuleInventCustVend
ModuleInventPurchSales
OriginalDocument
PaymDocumentType
PCExpressionEditorSymbolType
PCLookupMethod
PCNewSelectComponent
PCRequirement
PCTableConstraintType
PDSAdjustmentPrinciple
PdsBatchAttribToleranceAction
PdsBatchAttribUpdateType
PDSCalcElementBase
PDSCompensationPrincipleEnum
PDSElementTypeEnum
PDSIngredientTypeEnum
PdsMRCDocumentStatus
PdsMRCEffectiveDateBasis
PdsMRCEventModule
PdsMRCEventType
PdsMRCListType
PdsPaymtType
PDSPotencyAttribRecordingEnum
PdsRebateCalcDateType
PdsRebateTakenFrom
PdsRebateUOMOption
PdsSameLotError
pdsTMAJournalPosting
PdsUpdateBatchDate
PdsUpdateDispositionStatus_Quality
PlanActivityCreateRelationType
PlanActivityProductionFlowActivityType
PlanTypes
PmfCostAllocationMethod
PmfOrderType
PmfOrderTypeFilter
PmfProdType
PMFSeqCalendarPeriod
PriceBase
PriceDiscPurchasePromptSystemSource
PriceDiscSalesPromptSystemSource
PriceGroupType
PriceSalesPurch
PriceType
ProcCategoryAdministrationActivity
ProdBOMConsumpProposal
ProdBOMJournalQty
ProdBOMJournalSplit
ProdErrorCause
ProdGanttJobColorType
ProdGanttLoad
ProdGanttRouteColorType
ProdJournalCleanUpMode
ProdMode
ProdNotificationLevel
ProdParamInventDimLookup
ProdParmType
ProdRefLookUp
ProdRouteJobCurrentFormTabId
ProdSchedDirection
ProdScrapMethod
ProdStandardCostVariance
ProdStatusAll
ProdStatusType
ProductionTransType
ProdUpdateJour
ProdWHSReleasePolicy
ProdWIPType_NA
PurchaseOrderResponseAction
PurchaseType
PurchasingTransactionType
PurchCORReceivingMethod
PurchCORRejectStatus
PurchCovRef
PurchDlvAddr
PurchLineBackOrderViews
PurchLineDeliveryFulfillment
PurchLineDeliveryPrecision
PurchMatchingPolicyOverrideOption
PurchPrepayApplicationPolicy
PurchPriceDateType
PurchPurchaseOrderCreationMethod
PurchReApprovalPolicyRuleViewType
PurchReqAuthorizationSpecificReporting
PurchReqAutoCreatePurch
PurchReqCatalogAllNon
PurchReqConsolidationActiveStatus
PurchReqConsolidationPriority
PurchReqConsolidationStatus
PurchReqCreationStatus
PurchReqItemDescriptionTransfer
PurchReqItemFilterType
PurchReqOnBehalfReports
PurchReqOriginationAuthorizationView
PurchReqProcessingState
PurchReqQuestionnaireAggregateStatus
PurchReqQuestionnaireStatus
PurchReqReportSortOrder
PurchReqReportStatus
PurchReqReviewStatus
PurchReqRFQRequirement
PurchReqRFQType
PurchReqSaveChanges
PurchReqStatus
PurchReqType
PurchReqWorkflowState
PurchRFQQuestionnaireStatus
PurchRFQStatusVendor
PurchRFQType
PurchTableFormId
PurchTableListPage
PurchTableMode
PurchTotalsCachingMethod
PurchUpdate
PurchVendorPortalShowResponseType
QuotationType
ReqBOMRouteCreated
ReqCurrentDaySchedFrom
ReqDemPlanDataSourceType
ReqDemPlanDemandCategory
ReqDemPlanForecastAttributeType
ReqDemPlanForecastingStrategy
ReqDemPlanForecastType
ReqDisplayDelay
ReqForecastReducedBy
ReqGanttColorType
ReqGanttShow
ReqItemJournalType
ReqItemTableWizardPurpose
ReqMarkUpdate
ReqPeggingAssignmentType
ReqPeggingType
ReqPlannedOrderLeveling
ReqPlanType
ReqPOStatus
ReqQtyAmount
ReqRefType
ReqRefTypeShort
ReqRefTypeTrunc
ReqTraceMessageType
ReqTransFuturesActionPartType
ReturnCodeType
ReturnCycleTimeScope
ReturnReasonCodeDispExtended
ReturnReasonDispCode
ReturnUpdateAction
RouteFormula
RouteOprPriority
SalesBasketType
SalesBatch
SalesCheckForPickup
SalesCheckQtyCachKey
SalesDeliveryTimeState
SalesDocumentTimezonePreference
SalesPriceDateType
SalesPriceModelBasic
SalesPurchCopy
SalesPurchCycleAction
SalesPurchGroup
SalesPurchParmCleanUpMode
SalesQuotationFilter
SalesQuotationLinkToProject
SalesQuotationListPage
SalesQuotationPriceConversion
SalesQuotationPriceSimResult
SalesQuotationTypeListPage
SalesShipping
SalesSourcingOrigin
SalesStatus
SalesTableFormId
SalesTableListPage
SalesTableMode
SalesType
SalesUpdate
ShipCarrierDlvType
ShipCarrierFreightApplied
ShipCarrierMkUpFreight
SMAInvoiceProjectSelection
SMAItemSetupType
SMAProjectSelection
SMAReasonType
SMAServiceBOMChangeAction
SMAServiceFunctionType
SMAServiceLevelAgreementLogType
SMAServiceOrderActionType
SMAServiceOrderFilter
SMAServiceOrderOrigin
SMAServiceOrderProgress
SMAServiceTaskTitleOption
SMASubscriptionPeriodType
SMAWizardCreateType
smmAccountNumToCreate
smmActivityParentType
smmAppointmentNThInstance
smmBusinessRelationsListFilter
smmBusRelTypeSourceTable
smmCampaignBroadcastType
smmCampaignProjectJournalType
smmCampaignResponse
smmCampaignsListFilter
smmContactsListFilter
smmCreateOpportunityOptions
smmDisplayEMailInOutlook
smmDragDropObjectType
smmDupMethods
smmEMailSMS
smmEntityToCreate
smmFieldDelimiters
smmLeadsListFilter
smmLogType
smmOpportunitiesListFilter
smmOpportunityAssociation
smmOutlookContactDeleteAction
smmOutlookRecurrenceType
smmOutlookSyncPrinciple
smmOutlookUpdateAction
smmProjectNewExisting
smmQuotationAccountType
smmQuotationStatus
smmRecordDelimiters
smmSalesUnitMemberRelation
SmmSourceTypeList
smmSwotType
smmTransLogUpdateAction
smmUpdateOpportunityOptions
smmWarningError
SMAActiveAll
SMAAgreementFilter
SMAAgreementTableListPageType
TAMCustRebateApprovalStatus
TAMFundStatus
TAMFundType
TAMPromoCustomerType
TAMPromoMerchEvent
TAMPromoMgmtApprovalStatus
TAMPromotionDate
TAMPromotionMode
TAMRebateCustInclusive
TAMRebateLineBreakType
TAMRebateStatus
TAMRebateUnitType
TAMRebateUOMOption
TAMVendRebateApprovalStatus
TAMVendRebateCalcDateType
TAMVendRebateTakenFrom
TAMVendRebateTransactionType
TaxModuleType
TaxSourceType
TMSAccessorialAssignmentLevel
TMSAccessorialAssignmentTarget
TMSAccessorialDeliveryType
TMSAccessorialType
TMSAppointmentAlert
TMSDiscountResultType
TMSDiscountType
TMSFeeType
TMSFreightBillMatchStatus
TMSFreightBillReconcileType
TMSFwkErrorType
TMSHubPosition
TMSInvoiceAccountType
TMSLineType
TMSLoadBuildSessionState
TMSLoadTender
TMSLookupType
TMSNumberSequenceType
TMSOverrideLocationType
TMSRecurrenceDays
TMSRecurrenceType
TMSRecurrenceWeeks
TMSResponsibleForPayment
TMSRouteStatus
TMSSalesPurchTransfer
TMSTableRef
TMSTransportationType
TMSTransportRefType
TMSTransportTypeFilter
TMSUOM
TMSZoneType
TradeCurencyConversion
TradeLineDlvType
TradeNonStockedConversionChangeType
TradeNonStockedConversionIssue
TradeNonStockedConversionResolveUndo
TradePrintType
TradeTable2LineUpdate
VendNotificationCategorySelection
VendNotificationStatus
VendPackingSlipTransTimeStatus
VendRequestCompanyType
VendRequestOriginatedByType
VendRequestQuestionnairesCompleted
VendRequestRoleType
VendReviewRatingScore
VersioningAction
WHSAllowMaterialOverPick
WHSApplicableDemand
WHSAutoReleaseContainerAtContainerClose
WHSAutoReleaseOrderType
WHSBreakCluster
WHSContainerizationQueryType
WHSContainerPackingStrategy
WHSContainerTableFormViewType
WHSCrossDockFulfillmentStrategy
WHSCustJourType
WHSCycleCountPlanStatus
WHSDefaultDataField
WHSFilterModule
WHSHistoryEvent
WHSLoadPlanning
WHSLoadPostMethodsBase
WhsLoadReplenishment
WHSLoadTable
WHSLocDirStrategy
WHSLPAssignment
WHSLPWFilterType
WHSManifestAt
WHSManifestRequirementContainerGroup
WHSMenuItemDirectedBy
WHSMixedLPReceivingMode
WHSMixingLogicTables
WHSMobileAppPagePattern
WHSOriginType
WHSPickOldestBatch
WHSPostMethodBaseKanban
WHSPostMethodBaseKanbanOptional
WHSPostMethodBaseOptional
WHSPostMethodBaseProd
WHSPostMethodBaseProdOptional
WHSPostMethodsBase
WHSQtyPct
WHSReleaseQuantitySpecification
WHSReplenishmentDependentWorkBlockingPolicy
WHSReservationHierarchyLevelStrategyType
WHSReservationStatus
WHSUseFixedLocations
WHSWorkActivity
WHSWorkClusterStatus
WHSWorkCreationProcess
WHSWorkExceptionLogStatus
WHSWorkExecuteMode
WHSWorkListPageFilter
WHSWorkPrintOption
WHSWorkPutFlow
WHSWorkTransType
WHSWorkType
WHSWorkTypePickPut
WMSAutoAddStop
WMSFreightChargeTerms
WMSFreightCounted
WMSHandlingType
WMSLocationType
WMSPackageType
WMSPalletMovementProcessing
WMSPhysicalUpdateStatus
WMSReceiptStatus
WMSReservationMethod
WMSReservationMethodInternal
WMSShipmentStatus
WMSShipmentType
WMSSpaceUtilInconsistencyGroup
WMSSpaceUtilShowBy
WMSSpaceUtilStorageLoadUnitType
WMSStoreAreaType
WMSTrailerLoaded
WrkCtrActivityType
WrkCtrBulkResReqSearchType
WrkCtrCapacityType
WrkCtrCapRefType
WrkCtrCommitState
WrkCtrGroupWrkCtr
WrkCtrSchedulerCommand
WrkCtrSchedulerConstraintType
WrkCtrSchedulerLoggerMode
WrkCtrType
WrkCtrTypeFilter

These enumerations were removed, and not made extensible.

Enumeration removed
BackorderLinesListPageMode
BackorderPurchLinesListPageMode
EcoResProductPerCompanyListPageType
ReturnTableListPageType
SMAAgreementTableListPageType

Foundation changes were made to improve support for extensible enumerations. The SysPlugin framework was enabled for enumerations where IsExtensible is set to Yes. Views were enabled with new name-based syntax for enumerations.

Data manipulation methods that do not raise DataEvents or missing insert, update, delete pre- and post-data events

As a general practice, you use data methods on tables to raise events that can be used for extending the application. The code base has not always followed this practice. For example, the doInsert, doUpdate, and doDelete data methods and certain table implementations did not make a call to super() in the data method.

The insert, update, and delete methods on the type classes have been refactored. Changes were made so that super() is called more consistently in data methods. These changes enable extensions to be added to these methods, so that pre- and post-events are now available for extension. The tables where the insert, update, and delete events were enabled for extension are listed in the following table.

Table
InventBlocking
InventTransferLine
Kanban
KanbanJob
KanbanJobPickingList
MCRRoyaltyVendTable
PdsRebateTable
PmfProdCoBy
ProdBOM
ProdRoute
ProdTable
PurchLine
PurchRFQCaseLine
PurchRFQCaseTable
PurchRFQLine
PurchTable
SalesLine
SalesQuotationLine
SalesQuotationTable
SalesTable
TAMVendRebateTable
WMSOrder
WMSOrderTrans

Exposing class members

Additional private members are now available for customization as a result of the changes to the access modifier or new parm methods. The chain of command platform feature enables extension class access to protected methods and members. For more information about chain of command, see Extensible X++: Chain of Command.

Member
AssetPost.ledgerJournalTrans
Class DimensionDerivationRule.ledgerDimensionAllocationList
Class PurchInvoiceJournalCreate.purchTable
Class PurchTableType.purchTable
Class SalesInvoiceJournalPost.salesLine
Class SalesQuotationLineType
Class SalesQuotationTableType
Class VendorInvoiceLineSourceDocLineItem.purchLine
CustCreditLimit.balanceTotalsCalculated
CustCreditLimit_SalesTable.salesTable
Form LedgerJournalTransCustPaym.ledgerJournalEngine
PurchLineType.purchLine
PurchLineType.purchLine_orig
SalesLineType.salesLine
SalesLineType.salesLine_orig
SalesTableType.checkSalesQty
SalesTableType.SalesTable_orig
WHSControl.data
WHSLocationDirective.targetLicensePlateId

Construct methods with throw statements

Some construct methods were implemented with throw statements if there was a missing implementation for a given type. This doesn't work well with extensibility, so to mitigate this, construct methods were changed so that they do not throw exceptions. These methods are now to open for extensibility through class augmentation or by post-event subscription.

Object
BarcodeEAN128.string()
CustCreditLimit.Construct
FormLetterReport
JournalStatic
MarkupAllocation
PurchTable2LineField
SalesCalcTax
SalesEditLinesForm
SalesFormLetter
SalesFormLetterContract.newFromPackedVersion
SalesFormletterParmData.newData
SalesQuantity
SalesQuotationEditLinesForm.construct
SalesSummaryFields
SalesTable2LineField
VendInvoiceTableToLineUpdate

Find methods with throw statements

Some find methods were implemented with throw statements if there was a missing implementation for a given type. This does not work well with extensibility, so to mitigate this, find methods were changed so that they do not throw exceptions. These methods are now to open for extensibility through class augmentation or by post-event subscription.

Methods
JournalStatic.findJournalTableFromTrans
JournalStatic.findJournalTableId

Methods made hookable

Extensibility support has been extended for some methods that were not public and were not hookable. The following methods have been explicitly decorated with hookable behavior.

Method
Class CustVendReversePosting.updateCustVendTrans
Class JournalTableData.construct
Class PriceDisc.makeKey
Class PurchInvoiceJournalCreate.initJournalHeader
Class SalesInvoiceJournalPost.checkSourceLine
Class SalesInvoiceJournalPost.postCustVend
Form LedgerTransVoucher.addDynaLink
ReqCalc.deleteItemRequirement
ReqCalc.initTransFromInventTrans
ReqCalcForecastItemTable.deleteRequirement
Table TmpCustVendTrans.createLineCreditLimit
Table TmpCustVendTrans.createLineCreditRemain
Table TmpCustVendTrans.createLineOrdered
Table TmpCustVendTrans.createLinePackingSlip
WHSLocationDirective.addRangeByTransType
WhsWorkCreate.createWorkLine

Inline delegates

Inline delegates are now available. The most common way to use inline delegates is to split the method into more granular methods and enable extensibility events in the smaller methods.

Method
AxClass - ChequeDP - Method - insertChequeTmp
AxClass - VendInvoiceTableToLineUpdate - Method - convertPurchTableFieldToVendInvoice
class JournalStatic.findJournalTableFromTrans
class JournalStatic.findJournalTableId
Class WhsLocationDirective.findLocationMultiSKU
EcoResReleasedProductVariantEntity.insertEntityDataSource
ForecastSales.ForecastSales_ds.updateForecastSalesFields
Form SalesTable - method updateDesign
ReqTransPoMarkFirm.firmSelectedPlannedOrders
SalesLineType.insert
SalesLineType.update
SalesTable2LineUpdatePrompt.dialog
table ExtCodeTable
table InventItemGroup.getGroupForAccountType
table InventItemGroup.ledgerDimensionDescription
table InventTestAssociationTable
Table LedgerJournalName - method validateWrite
Table PaymTerm - method due
TaxCalculation.newForSourceType
TaxCalculation.newForSourceTypeWithTaxUncommitted
WHSLoadLine.getOrderCommonFromLoadLine
WhsLocationDirective.findLocation
WHSRFControlData.populateData
WHSRFControLData.processControl
WHSRFMenuItemTable.getWHSWorkExecuteMode

Other changes

The following table lists additional changes that have been made for extensibility.

Change
Add indirection for existing product dimensions
Class FormLetterParmDataOutputContract is not extensible
Create an instantiation strategy for the SysExtensionFramework that supports one or more arguments
Customization: TableField: Extension Model: Change EDT type of on a table field
CustVendOpenTransBalances - initAccountNumCurrencies() switch statement
CustVendOpenTransBalances - new() switch statement
CustVendOutPaym (Class) needs extensibility improvement
CustVendPaymReconciliationSetStatus (Class) needs extensibility improvement
CustVendSumForPaym (Class) needs extensibility improvement
Decouple AddressCountyId and AddressStateId EDTs from SysGroup
Document Management event handling needs improved extensibility support
Exchange rate provider framework requires custom built providers to be placed in the Currency Model
Extending GS-128
Extension model: Allow customizations on the CountryRegionCodes property.
Form extension - Extension of "extended" form elements with new controls are not working
InventDim: Condition with throw
InventDimRenameDimValue
Method overlayering - Class VendInvoiceTableToLineUpdate.convertPurchTableFieldToVendInvoice
Method overlayering: class Markup - method delete
Method overlayering: class McrPriceHistoryForm.insertPotentialTradeAgreements
Method overlayering: Class OffsetVoucher - method markTransaction
Method overlayering: Form LedgerJournalTransDimension.init
Method overlayering: Form LedgerTransVoucher - method init
Method overlayering: Table CustInvoiceTable - method validateWrite
Method signature changed: RetailCreateLinesFromProductsToAdd.parmCallerCommon
Method signature changed: WHSInvent.getCommonFromWorkTransType
Method signature changed: WHSPoolProdBom.movementBuffer
Missing construct method: class SMAServiceOrderTableButtonStateProvider
Number sequence scope extensibility needed
Runbase needs a way for class extensions to pack/unpack their members
String EDT size extension issues
Support opening Inventory on-hand form based on custom InventDim
SysExtension framework: SysExtensionIInstantiationStrategy and SysExtensionIAttribute are not compatible
Variations of EventHandlerResult are requested to ensure that delegates used in Request/response scenarios are more robust
WHS Mobile Framework: passes
WhsLocationDirectiveLine To/FromQty not extensible
WHSMobileApp Extensibility
WHSMobileAppAttachedImageDetails.removeLabelFromDimValue() is not generic enough about Product dimensions
WHSMobileAppAttachedImageDetails.removeLabelFromDimValue() is not generic enough about Product dimensions
WhsRFControlData.processControl must reference WhsControl.data instead of _data in the switch block