Showing posts with label Code. Show all posts
Showing posts with label Code. Show all posts
Wednesday, 30 August 2023
Download a xml file using Dynamics 365 to local folder
Hello All,
Today we are using a simple code to download a cml file to local folder using D365fo.I will skip all the steps where you create a xml file , because you can refer to number of blogs posts for this.
Here is sample code snippet for downloading xml file to local folder
File::SendStringAsFileToUser(XMLDoc, FileName);
Thanks,
Vivek Chirumamilla
Tuesday, 15 August 2023
Table Modified field using coc in D365fo
///
/// Extension of LedgerJournalTable
///
[ExtensionOf(tableStr(LedgerJournalTable))]
final class SCA_FS_LedgerJournalTable_Extension
{
///
/// Proccess the modified field events for LedgerJounal trans
///
/// reference to fieldId
public void modifiedField(FieldId _fieldId)
{
next modifiedField(_fieldId);
if (_fieldId == fieldNum(LedgerJournalTable, testfield) && this.JournalType == LedgerJournalType::Payment)
{
//if(this.WorkflowApprovalStatus == LedgerJournalWFApprovalStatus::Approved || this.WorkflowApprovalStatus == LedgerJournalWFApprovalStatus::Rejected)
{
WorkflowTrackingTable workflowTrackingTable;
WorkflowTrackingStatusTable workflowTrackingStatusTable;
select firstonly RecId from workflowTrackingStatusTable
order by workflowTrackingStatusTable.CreatedDateTime desc
where workflowTrackingStatusTable.ContextRecId == this.RecId
join User from workflowTrackingTable
where workflowTrackingTable.WorkflowTrackingStatusTable == workflowTrackingStatusTable.RecId
&& workflowTrackingTable.TrackingType == WorkflowTrackingType::Submission;
this.ReportedAsReadyBy = workflowTrackingTable.User;
//if(this.WorkflowApprovalStatus == LedgerJournalWFApprovalStatus::Approved)
{
select firstonly RecId from workflowTrackingStatusTable
order by workflowTrackingStatusTable.CreatedDateTime desc
where workflowTrackingStatusTable.ContextRecId == this.RecId
join User from workflowTrackingTable
where workflowTrackingTable.WorkflowTrackingStatusTable == workflowTrackingStatusTable.RecId
&& workflowTrackingTable.TrackingType == WorkflowTrackingType::Approval;
this.Approver = HcmWorker::userId2Worker(workflowTrackingTable.User);
}
if(this.WorkflowApprovalStatus == LedgerJournalWFApprovalStatus::Rejected)
{
select firstonly RecId from workflowTrackingStatusTable
order by workflowTrackingStatusTable.CreatedDateTime desc
where workflowTrackingStatusTable.ContextRecId == this.RecId
join User from workflowTrackingTable
where workflowTrackingTable.WorkflowTrackingStatusTable == workflowTrackingStatusTable.RecId
&& workflowTrackingTable.TrackingType == WorkflowTrackingType::Rejection;
this.RejectedBy = workflowTrackingTable.User;
}
}
}
}
}
Form Event Handler in D365fo
///
/// Event Hnadler Class For Ledger Journal Table Form
///
final class SCA_FS_LedgerJournalTableFormEventHandler
{
///
/// Approve Event For Approve
///
/// sender of event
/// Event Args
///
[FormControlEventHandler(formControlStr(LedgerJournalTable, Approve), FormControlEventType::Clicked)]
public static void Approve_OnClicked(FormControl sender, FormControlEventArgs e)
{
LedgerJournalTable journal = sender.formRun().dataSource('LedgerJournalTable').cursor();
WorkflowTrackingTable workflowTrackingTable;
WorkflowTrackingStatusTable workflowTrackingStatusTable;
select firstonly RecId from workflowTrackingStatusTable
order by workflowTrackingStatusTable.CreatedDateTime desc
where workflowTrackingStatusTable.ContextRecId == journal.RecId
join User from workflowTrackingTable
where workflowTrackingTable.WorkflowTrackingStatusTable == workflowTrackingStatusTable.RecId
&& workflowTrackingTable.TrackingType == WorkflowTrackingType::Submission;
journal.ReportedAsReadyBy = workflowTrackingTable.User;
}
///
/// Reject Event For Reject
///
/// sender of event
/// Event Args
///
[FormControlEventHandler(formControlStr(LedgerJournalTable, Reject), FormControlEventType::Clicked)]
public static void Reject_OnClicked(FormControl sender, FormControlEventArgs e)
{
LedgerJournalTable journal = sender.formRun().dataSource('LedgerJournalTable').cursor();
WorkflowTrackingTable workflowTrackingTable;
WorkflowTrackingStatusTable workflowTrackingStatusTable;
select firstonly RecId from workflowTrackingStatusTable
order by workflowTrackingStatusTable.CreatedDateTime desc
where workflowTrackingStatusTable.ContextRecId == journal.RecId
join User from workflowTrackingTable
where workflowTrackingTable.WorkflowTrackingStatusTable == workflowTrackingStatusTable.RecId
&& workflowTrackingTable.TrackingType == WorkflowTrackingType::Submission;
journal.ReportedAsReadyBy = workflowTrackingTable.User;
}
}
Wednesday, 7 June 2017
GST Tax Caluclation code for Ax 2009 /2012 and AX 7
Hi Friends,
You might be thinking of new code for Tax calculation for GST in INDIA. Here is the sample code snippet for printing Tax info on Reports and Forms.
ITaxableDocument taxableDocument;
ITaxDocument taxDocumentObject;
ITaxDocumentMeasurevalue totalTaxMeasureValue;
ITaxDocumentComponentLineEnumerator componentme;
ITaxDocumentComponentLine componentLine;
ITaxDocumentMeasureEnumerator measureenum;
ITaxDocumentComponentLineMetaData meta;
ITaxDocumentLineEnumerator sublines,sublines1;
ITaxDocumentLine line,line1;
Amount gstTotal ;
;
taxableDocument = TaxableDocumentObject::construct(TaxableDocumentDescriptorFactory::getTaxableDocumentDescriptor(PurchTable::find(526987556)));
taxDocumentObject = TaxBusinessService::calculateTax(taxableDocument);
if (taxDocumentObject)
{
totalTaxMeasureValue = taxDocumentObject.getTotalTax();
gstTotal = totalTaxMeasureValue.amountTransactionCurrency();
sublines = taxDocumentObject.subLines();
while(sublines.moveNext())
{
line = sublines.current();
sublines1 = line.lines();
while(sublines1.moveNext())
{
line1 = sublines1.current();
componentme =line1.componentLines();
while(componentme.moveNext())
{
componentLine= componentme.current();
meta = componentLine.metaData();
info(meta.taxComponent());
info(strfmt("%1",componentLine.getMeasure("Base Amount").value().value()));
info(strfmt("%1",componentLine.getMeasure("Rate").value().value()));
}
}
}
}
Vivek Chirumamilla
You might be thinking of new code for Tax calculation for GST in INDIA. Here is the sample code snippet for printing Tax info on Reports and Forms.
ITaxableDocument taxableDocument;
ITaxDocument taxDocumentObject;
ITaxDocumentMeasurevalue totalTaxMeasureValue;
ITaxDocumentComponentLineEnumerator componentme;
ITaxDocumentComponentLine componentLine;
ITaxDocumentMeasureEnumerator measureenum;
ITaxDocumentComponentLineMetaData meta;
ITaxDocumentLineEnumerator sublines,sublines1;
ITaxDocumentLine line,line1;
Amount gstTotal ;
;
taxableDocument = TaxableDocumentObject::construct(TaxableDocumentDescriptorFactory::getTaxableDocumentDescriptor(PurchTable::find(526987556)));
taxDocumentObject = TaxBusinessService::calculateTax(taxableDocument);
if (taxDocumentObject)
{
totalTaxMeasureValue = taxDocumentObject.getTotalTax();
gstTotal = totalTaxMeasureValue.amountTransactionCurrency();
sublines = taxDocumentObject.subLines();
while(sublines.moveNext())
{
line = sublines.current();
sublines1 = line.lines();
while(sublines1.moveNext())
{
line1 = sublines1.current();
componentme =line1.componentLines();
while(componentme.moveNext())
{
componentLine= componentme.current();
meta = componentLine.metaData();
info(meta.taxComponent());
info(strfmt("%1",componentLine.getMeasure("Base Amount").value().value()));
info(strfmt("%1",componentLine.getMeasure("Rate").value().value()));
}
}
}
}
Vivek Chirumamilla
Labels:
Ax 2009,
Ax 7,
Ax2012,
Code,
Dynamics 365,
GST,
India,
Legal Reports
Subscribe to:
Posts (Atom)