PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite...

94

Transcript of PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite...

Page 1: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 2: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 3: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 4: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 5: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 6: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

Eliminate overlayering Support continuous updateImprove implementation /

update speed and quality

Page 7: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 8: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

App Suite

Hard seal

Hard seal (Nov 2016)

Soft seal (Spring release 2017)

Soft seal(Fall release 2017)

Hard seal (Nov 2016)

Hard seal

Hard seal (Nov 2016)

Hard seal (Fall release 2017)

Hard seal(Spring release 2018)

Extension based customizations only!

Hard seal (Nov 2016)

Page 9: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 10: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 11: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 12: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 13: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 14: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 15: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 16: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 17: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 18: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 19: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

• Form events

• DataSource events

• Control events

Page 20: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

• Form events

• DataSource events

• Control events

Page 21: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

• Chain of Command

• Wrap methods

• Add pre/post logic

• New capabilities in PU20

Page 22: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 23: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 24: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 25: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 26: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

Published Table method Preceding event Succeeding event

validateWrite ValidatingWrite ValidatedWrite

validateDelete ValidatingDelete ValidatedDelete

validateField ValidatingField ValidatedField

validateFieldValue ValidatingFieldValue ValidatedFieldValue

modifiedField ModifyingField ModifiedField

modifiedFieldValue ModifyingFieldValue ModifiedFieldValue

Insert Inserting Inserted

Update Updating Updated

Delete Deleting Deleted

Initvalue InitializingRecord InitializedRecord

DefaultField DefaultingField DefaultedField

DefaultRow DefaultingRow DefaultedRow

Page 27: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 28: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 29: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 30: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 31: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 32: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 33: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 34: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 35: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 36: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 37: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 38: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 39: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 40: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 41: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 42: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 43: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

Decimals

8.1 Decimal Extensibility EDTs:

• AmountQty

• AssetDepreciationAmountUnit

• AssetDepreciationAmountUnitReportingCurrency

• BOMProductQuantity

• CostAmountNonMonetary

• CostPriceNonMonetary

• CostQuantity

• InventTestLowerLimit

• InventTestLowerTolerance

• InventTestStandardValue

• InventTestUpperLimit

• InventTestUpperTolerance

• MarkupValue

• MCRRoyaltyValue

• PdsRebateValue

• PmfCostAllocationPct

• PriceDiscAmount

• PriceQty

• PriceUnit

• ProductQuantityHourValue

• smmAmountMSTSalesTarget

• TAMRebateValue

Page 44: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 45: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 46: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 47: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 48: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 49: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 50: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 51: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 52: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 53: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 54: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 55: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 56: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 57: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 58: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 59: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 60: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

https://docs.microsoft.com/en-us/dynamics365/unified-

operations/dev-itpro/extensibility/customization-

overlayering-extensions

Page 61: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[FormEventHandler(formStr(FMRental), FormEventType::PostRun)]public static void FMRental_OnPostRun(xFormRun sender, FormEventArgs e){

sender.design().controlName(formControlStr(FMRental, CopyOfFMRental_StartDate1)).setFocus();}

Page 62: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(formStr(FMRental))]final class FMRentalDMO_Extension{

protected FormDateTimeControl getStartDateControl(){

return CopyOfFMRental_StartDate1;}

[FormEventHandler(formStr(FMRental), FormEventType::PostRun)]public static void FMRental_OnPostRun(xFormRun sender, FormEventArgs e){

FormRun formRun = sender;formRun.getStartDateControl().setFocus();

}}

Page 63: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[FormControlEventHandler(formControlStr(FMRental, btnValidate), FormControlEventType::Clicked)]public static void btnValidate_OnClicked(FormControl sender, FormControlEventArgs e){

FormDataSource FMRental_DS = sender.formRun().dataSource(formDataSourceStr(FMRental,FMRental));FMRental rental = FMRental_DS.cursor();

info(int2Str(rental.EndMileage));}

Page 64: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 65: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 66: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 67: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 68: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 69: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 70: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 71: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 72: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(classStr(FMTotalsEngine))]

final class FMTotalsEngineDemo_Extension

{

public NoYes customerInLoyaltyProgram(FMRental _rental)

{

FMCustomer customer;

NoYes returnValue = NoYes::No;

select customer where customer.RecId == _rental.Customer;

if(customer)

{

returnValue = customer.LoyaltyProgram;

}

return returnValue;

}

}

Page 73: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(classStr(FMTotalsEngine))]

final class FMTotalsEngineDemo_Extension

{

public NoYes customerInLoyaltyProgram(FMRental _rental)

{

FMCustomer customer;

NoYes returnValue = NoYes::No;

select customer where customer.RecId == _rental.Customer;

if(customer)

{

returnValue = customer.LoyaltyProgram;

}

return returnValue;

}

}

Page 74: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 75: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(classStr(FMTotalsEngine))]final class FMTotalsEngineDemo_Extension{

private int CustomTotals;

public int calculateCustomTotals(){

CustomTotals = this.chargesTotals() * this.RentalRate();

return CustomTotals;}

}

Page 76: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(classStr(FMTotalsEngine))]final class FMTotalsEngineDemo_Extension{

private int CustomTotals;

public int calculateCustomTotals(){

CustomTotals = this.chargesTotals() * this.RentalRate();

return CustomTotals;}

}

Page 77: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

class SalesPackingSlipJournalPost extends FormletterJournalPost{

SalesParmTable salesParmTable;SalesParmLine salesParmLine;

CustPackingSlipVersion previousCustPackingSlipVersion;CustPackingSlipTransHistory previousCustPackingSlipTransHistory;

CustPackingSlipVersion custPackingSlipVersion;CustPackingSlipJour custPackingSlipJour;CustPackingSlipTrans custPackingSlipTrans;SalesLine salesLine;SalesTable salesTable;

Page 78: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(classStr(SalesPackingSlipJournalPost))]final class SalesPackingSlipJournalPostDMO_Extension{

public boolean checkSalesLine(){

boolean retValue = this.salesLine.checkActivity();

return retValue;}

}

Page 79: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(classStr(ReqCalc))]final class ReqCalcDMO_Extension{

protected ReqTrans initTransFromInventSum(ReqTrans _reqTrans,ReqSetup _setup,ReqSetupDim _setupDim,InventSum _inventSum)

{_reqTrans = next initTransFromInventSum(_reqTrans, _setup, _setupDim, _inventSum);

_reqTrans.qty = _reqTrans.qty >= 0 ? _reqTrans.qty : 0;

return _reqTrans;}

}

Page 80: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(formStr(InventTransferOrders))]final class InventTransferOrdersDMO_Extension{

public boolean canSubmitToWorkflow(){

boolean returnValue = next canSubmitToWorkflow();

return returnValue;}

}

Page 81: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(formDataSourceStr(InventTransferOrders, InventTransferLine))]final class InventTransferOrdersInventTransferLineDS_Extension{

public boolean validateWrite(){

boolean ret = next validateWrite();

//custom logicreturn ret;

}

}

Page 82: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

[ExtensionOf(FormDataSourceStr(FormToExtend, DataSource1))]

[ExtensionOf(FormDataFieldStr(FormToExtend, DataSource1, Field1))]

[ExtensionOf(FormControlStr(FormToExtend, Button1))]

[ExtensionOf(formControlStr(InventTransferOrders,MainTab))]final class InventTransferOrdersControlMainTabDMO_Extension{

public boolean tabChange(int _FromTab){

boolean ret = next tabChange(_FromTab);

//Custom logic

return ret;}

}

Page 83: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 84: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 85: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 86: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 87: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 88: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 89: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 90: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 91: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 92: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField
Page 93: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField

https://blogs.msdn.microsoft.com/mfp/2018/09/15/tips-for-logging-extensibility-requests/

Page 94: PowerPoint Presentation · Published Table method Preceding event Succeeding event validateWrite ValidatingWrite ValidatedWrite validateDelete ValidatingDelete ValidatedDelete validateField