[BusinessEvents(classStr(UTT_TransactionsBusinessEventContract),
"@UTLExtension:UTT_Trans",
"@UTLExtension:DTT_RetriveTrigger", ModuleAxapta::Ledger)]
public class UTT_TransactionsBusinessEvent extends BusinessEventsBase
{
private LedgerJournalTable ledgerJournalTable;
static public UTT_TransactionsBusinessEvent newFromLedgerJournalTable(LedgerJournalTable _ledgerJournalTable)
{
UTT_TransactionsBusinessEvent businessEvent = new UTT_TransactionsBusinessEvent();
businessEvent.parmLedgerJournalTable(_ledgerJournalTable);
return businessEvent;
}
private LedgerJournalTable parmLedgerJournalTable(LedgerJournalTable _ledgerJournalTable = ledgerJournalTable)
{
ledgerJournalTable = _ledgerJournalTable;
return ledgerJournalTable;
}
protected void new()
{
}
[Wrappable(true), Replaceable(true)]
public BusinessEventsContract buildContract()
{
return UTT_TransactionsBusinessEventContract::newFromLedgerJournalTable(ledgerJournalTable);
}
}
-------------------------------------------------------------------------
[DataContract]
public final class UTT_TransactionsBusinessEventContract extends BusinessEventsContract
{
private LedgerJournalId generalJournalNumber;
private DataAreaId legalEntity;
private void initialize(LedgerJournalTable _ledgerJournalTable)
{
generalJournalNumber = _ledgerJournalTable.JournalNum;
legalEntity = _ledgerJournalTable.DataAreaId;
}
private void new()
{
}
public static UTT_TransactionsBusinessEventContract newFromLedgerJournalTable(LedgerJournalTable _ledgerJournalTable)
{
var contract = new UTT_TransactionsBusinessEventContract();
contract.initialize(_ledgerJournalTable);
return contract;
}
[DataMember('GeneralJournalNumber'), BusinessEventsDataMember('GeneralJournalNumber')]
public LedgerJournalId parmGeneralJournalNumber(LedgerJournalId _generalJournalNumber = generalJournalNumber)
{
generalJournalNumber = _generalJournalNumber;
return generalJournalNumber;
}
[DataMember('LegalEntityId'), BusinessEventsDataMember('LegalEntityId')]
public DataAreaId parmLegalEntity(DataAreaId _legalEntity = legalEntity)
{
legalEntity = _legalEntity;
return legalEntity;
}
}
---------------------------------------------------------------------
Trigger:
[ExtensionOf(classStr(LedgerJournalCheckPost))]
final class LedgerJournalCheckPost_C_UTT_Extension
{
protected void updateJournalForPosted()
{
ledgerJournalTable ledgerJournalTable, ledgerJournalTablelocal;
next updateJournalForPosted();
ledgerJournalTablelocal = this.parmLedgerJournalTable();
select firstonly ledgerJournalTable
where ledgerJournalTable.Posted == NoYes::Yes
&& ledgerJournalTable.RecId == ledgerJournalTablelocal.RecId
&& ledgerJournalTable.JournalType == LedgerJournalType::Daily;
if (ledgerJournalTable.RecId)
{ if(BusinessEventsConfigurationReader::isBusinessEventEnabled(classStr(DTT_TransactionsBusinessEvent)))
{
DTT_TransactionsBusinessEvent::newFromLedgerJournalTable(ledgerJournalTable).send() ;
}
}
}
}
Reference : https://anithasantosh.wordpress.com/2020/09/18/business-events-to-trigger-outbound-from-d365-fo/
https://jatomas.com/en/2019/11/20/developing-business-events-with-x/
https://jsonformatter.org/
No comments:
Post a Comment