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