Simple example for a business events
Requirement :- Here we are calling a business event whenever there is update in sales quantity. We are using
Contract class :- To give message to user
Business event class :- Which is called whenever it is needed
Extension class :- Overriding update() of SalesLine table.
This code will help you to create business event and calles the same whenever there is change in sales quantity.
Contract class :-
/// <summary>
/// The data contract for a <c>HFGIOMSalesLineUpdateBusinessEvent</c>.
/// </summary>
[DataContract]
public final class HFGIOMSalesLineUpdateBusinessEventContract extends BusinessEventsContract
{
private SalesIdBase salesId;
private LineNum lineNumber;
private ItemIdSmall itemId;
private InventQty qtyOrdered;
private SalesQty qtyDelivered;
private SalesQty remainSalesPhysical;
private TransDate receiptDateConfirmed;
private TransDate receiptDateConfirmedIso;
/// <summary>
/// Creates a <c>HFGIOMSalesLineUpdateBusinessEventContract</c> from a <c>salesLine</c> record.
/// </summary>
/// <param name = "_SalesLine">A <c>CustInvoiceJour</c> record.</param>
/// <returns>A <c>HFGIOMSalesLineUpdateBusinessEventContract</c>.</returns>
public static HFGIOMSalesLineUpdateBusinessEventContract newFromSalesLine(SalesLine _salesLine)
{
var contract = new HFGIOMSalesLineUpdateBusinessEventContract();
contract.initialize(_salesLine);
return contract;
}
private void initialize(SalesLine _salesLine)
{
//CustParameters custParameters = CustParameters::find();
salesId = _salesLine.SalesId;
lineNumber = _salesLine.LineNum;
itemId = _salesLine.ItemId;
qtyOrdered = _salesLine.QtyOrdered;
qtyDelivered = _salesLine.deliveredInTotal();
remainSalesPhysical = _salesLine.RemainInventPhysical;
receiptDateConfirmed = _salesLine.ReceiptDateConfirmed;
receiptDateConfirmedIso = _salesLine.ReceiptDateConfirmed;
}
private void new()
{
}
[DataMember('SalesOrder'), BusinessEventsDataMember("Sales order")]
public SalesIdBase parmSaleOrderId(SalesIdBase _salesId = salesId)
{
salesId = _salesId;
return salesId;
}
[DataMember('LineNumber'), BusinessEventsDataMember("Line number")]
public LineNum parmLineNum(LineNum _lineNumber = lineNumber)
{
lineNumber = _lineNumber;
return lineNumber;
}
[DataMember('ItemId'), BusinessEventsDataMember("Item number")]
public itemId parmItemId(itemId _itemId = itemId)
{
itemId = _itemId;
return itemId;
}
[DataMember('qtyOrdered'), BusinessEventsDataMember("Quautity ordered")]
public InventQty parmqtyOrdered(InventQty _qtyOrdered = qtyOrdered)
{
qtyOrdered = _qtyOrdered;
return qtyOrdered;
}
[DataMember('qtyDelivered'), BusinessEventsDataMember("Quantity delivered")]
public SalesQty parmqtyDelivered(SalesQty _qtyDelivered = qtyDelivered)
{
qtyDelivered = _qtyDelivered;
return qtyDelivered;
}
[DataMember('RemainingPhysicalQty'), BusinessEventsDataMember("@AccountsReceivable:qtyDelivered")]
public SalesQty parmRemainingPhysical(SalesQty _remainSalesPhysical = remainSalesPhysical)
{
remainSalesPhysical = _remainSalesPhysical;
return remainSalesPhysical;
}
[DataMember('ReceiptDateConfirmed'), BusinessEventsDataMember("Receip date confirmed")]
public TransDate parmReceiptDateConfirmed(TransDate _receiptDateConfirmed = receiptDateConfirmed)
{
receiptDateConfirmed = _receiptDateConfirmed;
return receiptDateConfirmed;
}
[DataMember('ReceiptDateConfirmedISO'), BusinessEventsDataMember("Receipt date confirmed ISO")]
public TransDate parmReceiptDateConfirmedIso(TransDate _receiptDateConfirmedIso = receiptDateConfirmedIso)
{
receiptDateConfirmedIso = _receiptDateConfirmedIso;
return receiptDateConfirmedIso;
}
}
Business event class :-
/// <summary>
/// Sales line update business event.
/// </summary>
[BusinessEvents(classStr(HFGIOMSalesLineUpdateBusinessEventContract),
'HFGIOMSalesLineUpdateBusinessEventDescription',
'AccountsReceivable:HFGIOMSalesLineUpdateBusinessEventDescription', ModuleAxapta::SalesOrder)]public final class HFGIOMSalesLineUpdateBusinessEvent extends BusinessEventsBase
{
private SalesLine salesLine;
private SalesLine parmSalesLine(SalesLine _SalesLine = SalesLine)
{
SalesLine = _SalesLine;
return SalesLine;
}
/// <summary>
/// Creates a <c>HFGIOMSalesLineUpdateBusinessEvent</c> from a <c>CustInvoiceJour</c> record.
/// </summary>
/// <param name = "_SalesLine"> A <c>CustInvoiceJour</c> record.</param>
/// <returns>A <c>HFGIOMSalesLineUpdateBusinessEvent</c>.</returns>
public static HFGIOMSalesLineUpdateBusinessEvent newFromSalesLine(SalesLine _SalesLine)
{
HFGIOMSalesLineUpdateBusinessEvent businessEvent = new HFGIOMSalesLineUpdateBusinessEvent();
businessEvent.parmSalesLine(_SalesLine);
return businessEvent;
}
private void new()
{
}
[Wrappable(true), Replaceable(true)]
public BusinessEventsContract buildContract()
{
return HFGIOMSalesLineUpdateBusinessEventContract::newFromSalesLine(SalesLine);
}
}
Comments
Post a Comment