D365 Finance and Operations Archives - Page 19 of 25 - - Page 19

Category Archives: D365 Finance and Operations

Vendor Invoice Journal-Dynamics 365 Finance and Operations

Introduction: Vendor invoice journal helpful to post purchase invoices that are not associated with purchase orders. Examples of this type of invoice include expenses for supplies or services. Steps: Go to Accounts Payable > Invoices > Invoice journals Click on new button, select name of the journal and enter a description in description field. In the Date field, enter the posting date that will update General Ledger. Select Vendor account Specify invoice number in Invoice field. Enter Description in the field description In the Credit field, enter a number. In the Offset account field, enter the account number or click the drop down button to open the lookup Click on Validate to check the data are correct. Click on post to Post the Invoice

Share Story :

Create Fixed Asset Journal using X++

In this blog article, we will see how we can create Fixed Asset Journal using X++. Write below code to create Journal Header in LedgerJournalTable Table and Lines record in LedgerJournalTrans and LedgerJournalTrans_Asset Tables. public void createFixedAssetJournal()     {                LedgerJournalTable ledgerJournalTable;         LedgerJournalTrans ledgerJournalTrans;         LedgerJournalTrans_Asset ledgerJournalTrans_Asset;         Assettable assetTable;         ledgerJournalTable.initValue();         ledgerJournalTable.JournalNum   = JournalTableData::newTable(ledgerJournalTable).nextJournalId();         ledgerJournalTable.Posted       = NoYes::No;         ledgerJournalTable.JournalName  = ‘ACQUI’;         ledgerJournalTable.JournalType  = LedgerJournalType::Assets;         ledgerJournalTable.initFromLedgerJournalName(ledgerJournalTable.JournalName);         ledgerJournalTable.insert();          ledgerjournalTrans.initValue();         ledgerJournalTrans.CurrencyCode      = Ledger::accountingCurrency(CompanyInfo::find().RecId);         ledgerJournalTrans.AccountType       = LedgerJournalACType::FixedAssets;         ledgerJournalTrans.TransactionType   = LedgerTransType::FixedAssets;         ledgerJournalTrans.Approved          = NoYes::Yes;         ledgerJournalTrans.Approver          = HcmWorker::userId2Worker(curuserid());             ledgerJournalTrans.LineNum                              = LedgerJournalTrans::lastLineNum(ledgerJournalTrans.JournalNum) + 1;         ledgerJournalTrans.TransDate                            = DateTimeUtil::getSystemDate(DateTimeUtil::getUserPreferredTimeZone());         ledgerJournalTrans.LedgerDimension                      = LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber(AssetTable.AssetId,LedgerJournalACType::FixedAssets);                   ledgerJournalTrans.accountName();                ledgerJournalTrans.AmountCurDebit                       = ’45’;         ledgerJournalTrans.OffsetAccountType                    = LedgerJournalACType::Ledger;         ledgerJournalTrans.OffsetLedgerDimension                = ledgerJournalTrans.getOffsetLedgerDimensionForLedgerType(AssetLedgerAccounts::assetOffsetLedgerDimension(AssetTable.AssetId, AssetTable.assetBookCurrent().BookId, AssetTransType::Acquisition),curExt());         ledgerJournalTrans.insert();         ledgerJournalTrans_Asset.initValue();         ledgerJournalTrans_Asset.RefRecId                       = ledgerJournalTrans.RecId;         ledgerJournalTrans_Asset.AssetId                        = assetTable.assetId;         ledgerJournalTrans_Asset.TransType                      = AssetTransTypeJournal::Acquisition;         ledgerJournalTrans_Asset.BookId                         = AssetTable.assetBookCurrent().BookId;         ledgerJournalTrans_asset.insert();         ttsbegin;         LedgerJournalTable.selectForUpdate(true);         LedgerJournalTable.numOfLines = LedgerJournalTable.numOfLines();         LedgerJournalTable.update();         ttscommit; }

Share Story :

Create Fixed Asset using X++

In this blog article, we will see how we can create a Fixed Asset using code based on AssetGroupID. Add below code in class to create a Fixed Asset, public void createFixedAsset(AssetGroupId assetGroupId) {         AssetTable assetTable;         NumberSeq numberSeq;         assetTable.initValue();         assetTable.assetGroup = AssetGroupId;         //Initialize Number Seq for Asset Id         numberSeq = assetTable.initAssetNumberSeq(assetTable.Assetgroup);         AssetTable.AssetId = NumberSeq.num();           //Initialize other fields based on Asset Group assetTable.initFromAssetGroupId(assetTable.Assetgroup);         //Initialize name and Name Alias fron Item Id         assetTable.Name = InventTable::find(‘ITM1104’).itemName();         assetTable.NameAlias = assetTable.Name;         //Validate and Insert Fixed Asset. On insertion asset book is also created         assetTable.validateWrite();         assetTable.insert();     }

Share Story :

Features of Business Central October Release

Introduction: In this blog I’ll be demonstrating few features of Business Central October Release[RC3]. Pre-requisite: Microsoft Dynamics 365 Business Central October Release[RC3]. Demonstration: 1.Refreshed User Experience Improved Card Page Layout. Improved List Page Categorized Actions. Changed position of New,Edit, Delete as well as Previous andNext buttons. 2. Improved Productivity Advanced filtering with multiple column filtering: Limit Totals: Row-based column copy past: Actual Data: Data in Excel Keyboard shortcuts: The October release, also consists the shortcut F8 that copies the value of the cell above. Thus, you can fill the new rows by moving across cells and selecting F8 on the cells where you want to copy the values from cell above. List of Keyboard Shortcuts : https://docs.microsoft.com/en-us/dynamics365/business-central/keyboard-shortcuts 3. Improved Search The search option has also been enhanced and categorized where previous search results were only related to pages and reports. In the upcoming release with the improvement in logic, the search results will also include the actions on the current page and the documentation along with the reports and pages. From the search itself you can check and perform the tasks that you want (for example: Create a contact for customer) Enter the contact details for the customer and click on OK 4. Permission Sets are Editable In Business Central October Release, the Permission Sets are Editable. New Permission Sets can be created as well as Permission Sets can be modified and also indented as well. Click on More Options to get the details. Changing the Permisison Sets in Business Central: Added an execute permission: Conclusion: These are few features of the Business Central. In the next blog I’ll demonstrate about the AL Language extension improvements.

Share Story :

Item cross reference Dynamics 365 Business Central

Introduction: Item Cross reference is useful to quickly identify the items that were ordered by a customer or that you are purchasing from a vendor on the basis of item numbers other than your company. You can use Item Cross reference on Purchase Order, Sales Order, Purchase Quote and Sales Quote Steps: Following are steps to setup Item cross reference. Open the Item list Click on edit button to Open Item Card. In Navigate tab click on Cross References button. Select Vendor, Customer or Bar Code in the Cross-Reference field. In the Cross-Reference Type No. field, select Vendor No, Customer No. or Bar Code Enter Vendor, Customer Item No. or Bar code no in the Cross-Reference No. field. Enter Unit of Measure Enter description for the Item. This description will be automatically copied in Purchase or Sales order line when you enter cross reference in Sales or Purchase order line Create a new Purchase Order/ Sales order. By default, the Cross-Reference No. field is not shown in the Order Line. Use Personalization and add it. In Cross-Reference No. field to select a cross reference no. System will automatically fill the Item No. and other information in the order line.

Share Story :

Fetch FormControl and value of different type in Event Handler of D365 Operations

Introduction: In this blog article, we will see how we can fetch Form Control and its value which is of different datatype in EventHandler in D365 Operations Scenario: I am working on Global Address Book functionality for checking Duplicate values for PartyID (String), Tax Id (CheckBox) and Tax Id Type (ComboBox). I am using Event Handler of form method to enable a button based on value of above three fields. Steps: Create Event Handler with below code: [PostHandlerFor(formStr(DirPartyCheckDuplicate), formMethodStr(DirPartyCheckDuplicate, enableSearch))] public static void DirPartyCheckDuplicate_Post_enableSearch(XppPrePostArgs args) { FormRun formRun = args.getThis() as FormRun; FormCheckBoxControl TaxId = formRun.design(0).controlName(“TaxId”) as FormCheckBoxControl; FormStringControl PartyNumber = formRun.design(0).controlName(“DirPartyTable_PartyNumber”) as FormStringControl; FormComboBoxControl TaxIdType = formRun.design(0).controlName(“TaxIdType”) as FormComboBoxControl; FormControl searchBtn = formRun.design(0).controlName(“searchBtn”); if(TaxId.value() || PartyNumber.valueStr() || TaxIdType.valueStr()) { searchBtn.enabled(true); } else { searchBtn.enabled(false); } }

Share Story :

Stocked Product in Item Model Group: Dynamics 365 for Finance & Operations

Introduction: If Stocked product checkbox is selected, then inventory transaction will be generated, and product inventory will be tracked. If this checkbox is not selected(Mainly for service items), then Inventory transaction will be not generated, and product inventory will be not tracked. Scenario 1: If Stoked Product Checkbox is not selected Posted purchase invoice for product for which stock product checkbox was unchecked. Inventory transaction has not been generated. This setting mainly uses for service type of products. Scenario 2: If Stoked Product Checkbox is selected Posted purchase invoice for product for which stock product checkbox was checked. Inventory transaction has been generated. This setting mainly uses for those products for which you want to track the inventory. Conclusion: This functionality is helpful to take decision for the product for which you want to track the inventory, or you want to book directly as an expense for service item without tracking inventory.

Share Story :

Modifying a report query based on the input data in AX 2012R3

Introduction: Controller class is used to control the report execution as well as pre processing of the report data. The SSRS reporting framework uses this class to modify the report dialog, calling the SQL Server reporting services, as well pre processing parameters for the report. How to do? Create a new class. Open AOT –> Classes Open the class declaration and select on View Code Now write the following code: class SSRSDemoController extends SrsReportRunController { } Create a new method and write the following code: public static client void main(Args args) { //define the new object for controller class SSRSDemoController ssrsDemoController; ssrsDemoController = new SSRSDemoController(); //pass the caller args to the controller ssrsDemoController.parmArgs(args); //set the report name and report design to run ssrsDemoController.parmReportName(ssrsReportStr(SSRSSessionQuery,Design)); //execute the report ssrsDemoController.startOperation(); } Conclusion: Reports that are opened from a form – Controller class is also used when reports are opened fro a form and are needed to show selected records details. Use preRunModifyContract method to achieve this.

Share Story :

Reading more then 10K records in D3FOE OData API

Introduction: We all know Dynamics 365 Finance and Operations has limitation of 10K records to be fetched at a time using Data Entity. While reading records from D3FOE for CRUD operations in OData API you will face issue if you want to process more than 10K records at a time. You can resolve this issue by using query parameter ‘skip’ and ‘top’. Use the below syntax to query records while reading from D3FOE: DataServiceQuery<[EntityName]> EntityObject = context.[EntityName].AddQueryOption(“$skip”, 10000).AddQueryOption(“$top”, 10000); where, EntityName = Name of data entity from where you want to read records Skip = it will skip the number of records you specified from the fetched records Top = It will select the number of records specified after skipping the records Example: If there are 30K records in CustCustomers then above line will skip 10K records and then pick the next top 10K records. So records selected will be from 10001 to 20000. DataServiceQuery<CustCustomers> EntityObject= context.[CustCustomers].AddQueryOption(“$skip”, 10000).AddQueryOption(“$top”, 10000); You can also get the total count of records and then run a loop until max count of records and increment the skip with 10K on each loop and top with 10K. Using this you can read ‘n’ number of records.

Share Story :

Creating Custom Fields

Introduction: This blog articles explains the ability to add custom fields is available in platform update 13 and later. Creating Custom Fields: Process for creating a custom field and placing that field on a form: Navigate to the form where the new field is needed.  Click on Options and then Personalize this form  Click Insert and then Field Select the region of the form where you want to expose the new field. After selection, the Insert fields dialog box will display a list of existing fields that can be inserted into the selected region of the form. Click the Create new field button above the list to initiate the process of creating a custom field. This will open the Create new field dialog box. Enter all the relevant details for the new field Click save and insert the new field Note that there is currently a limit of 20 custom fields per table.

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange