#TipADay: Day 1: Extract Reports in Microsoft AX2012

Today we will explore an informative feature in AX 2012. AX provides a feature of some reports based on data retrieve from transaction processing database for Microsoft Dynamics AX. These reports are easy to create and modify based on user’s requirement.

Some of the reports these kind of reports are as follows:

1. Management reporter

Management reporter (MR) tool will help users for financial reporting in a customized format which also offers function to update statement on rolling basis by adding rows and columns as required. It also provide hypertext which further extend to detail content of respective areas , like if user click Sales figure on Profit and loss account it extends into detail sales analysis.

2. Dynamics AX adds in Excel

MS Dynamics AX 2012 provide adds in excel which connects excel to database of AX Client. To extract new report just select required table and add lines and refresh the data, all fields are populated with data required. This feature also helps users to add new and update information in AX, like extract Main accounts from AX using adds in functionality.

Step: 1 Click Dynamics AX adds in in excel

yt1

Step: 2 Click Refresh

yt2

  • 3. Auto report wizard

Auto reports can easily extracted from many forms however they are preconfigured reports that users can generate by clicking File > Print > Print in a Microsoft Dynamics AX form but can be created, saved, modified, edit and deleted whenever required. These reports ca and can be re used in future.the reports are customized from wizard by adding required fields from tree add sum of quantity, prices and cost etc to reports from wizard.

Below is a sample of custom auto report for On hand

yt3

4. And finally an export to excel functionality

AX provides a functionality to export data from one form to excel and then users can easily make their own customized form of report by using pivots or just print them for tracing and recording. This feature is normally available on every form.

A sample of this report is as follows;

yt4

I hope this will help you to explore AX reports more. Keep exploring MS Dynamics AX 2012 and let me know your suggestions

Dynamics AX 2012: Textile Industry and Issues Solved!

This will be a series of posts in which we will learn about the Manufacturing Processes and solutions offered by Dynamics AX 2012. Most logical and frequently occurring issues include:

Inefficient purchase activities

Vendors tracking

Realizing savings in purchase

Outsourcing services

Maintaining minimum stock levels

Reservation of stock

Visibility of slow moving inventory

Pallet wise inventory management and transportation

Food and safety risks

Quality testing functionalities

Losing customer’s trust

Long lead time to develop new product

Poor sales and promotion

Traceability of customers

Growth rate

Price discounts to valued customers

Variable production demand on seasonal basis

Production on customers demand

Short lead time

Production yield

Poor sales and promotion

Traceability of customers

Growth rate

Price discounts to valued customers

 

Many of the complicated supply chain business requirements have been fulfilled by Dynamics AX 2012 through the following modules:

Product Management

Defining BOMs and Formula lines with costing effects

Demand, Supply and Inventory forecasting

Master Planning and Scheduling, Resource Planning, Machine Capacity Calculations

Procurement and Sourcing

Inventory and Warehouse Management

Quality Management

Production handling in critical scenarios like outsourcing of WIP products, inventory reservations

Pallet wise management of inventory using different locations, inventory picking methodologies, shipments, transportation management

In a series of blog posts, we will uncover the following areas that will help in defining how supply chain can be set up for an organization:

 

Adding company in Dynamics (Creating Legal entity for your organization)

Number sequences

Setting up Ledger

Charts of Accounts

Setting up Currency

Product Information Management

Creating Formula and BOMs

Setting up Locations, warehouse, sites, aisles etc.

How to Create and set up Vendors

Forecasting

Resource and Machine Capacity Calculations

Master Planning

Configuring Procurement and Sourcing Parameters

Setting up Procurement and Sourcing Work Flows

Procurements Setups

Business Cycle Mapping of Procurement

Creating of Purchase Orders of different types e.g. return, quotation, purchase and sales agreements etc.

Pallet wise Inventory Management

Pallet Transport

Production Control Parameters

Routes

Production Cycles with FMCG Scenarios

Configuring Customers / Sales Agreements

Business Process Mapping of Sales with using different Scenarios

Managing Return Orders

Creation of Sales and Purchase Invoices

Posting of Invoices in General Ledger

Our blogs will cover all the processes of FMCG industry from Purchasing of Raw Material till dispatch of Orders (Exports and Local) and their financial impacts as well.

Stay Tuned!

 

 

Pending Vendor Invoice Data Import Utility

Recently, I had to develop a data import utility as a part of one of the projects I was working on. One of the subparts of the data import utility is the Pending Vendor Invoices utility. The architecture of the data import utility is as follows:

  • Staging: Data is first import into staging table, where It can be viewed, validated or cleared by the user
  • Validate: Data can be validated in order to ensure the correctness of data
  • Import: Data in the staging tables are processed in the AX tables

I am sharing the Pending Vendor Invoice Import utility here.

Pending Vendor Invoice Import Utility UI:

Pending Vendor Invoice Import Utility UI

Pending Vendor Invoice Import Utility Staging Class:

Pending Vendor Invoice Import Utility Staging ClassPending Vendor Invoice Import Utility Validation Class:

Pending Vendor Invoice Import Utility Validation Class

Pending Vendor Invoice Import Utility Import Class:

Pending Vendor Invoice Import Utility Import Class

Code to Import:

private void ProcessData_Order()

{

SL_StagingPurchInvoice  stagingInvoice,stagingInvoiceCheck;

InventDimId inventDimId;

int         Purchcounter,counter,header;

int64       purchLineRowCount,QuantityLeft;

str         parmId,invoiceAccount,orderAccount,deliveryName;

TradeLineRefId  tableRefId;

 

try

{

header=0;

Purchcounter=0;

ttsBegin;

 

while select sum(Quantity),maxOf(FromDate),maxof(unitcost) from stagingInvoice

group by stagingInvoice.InvoiceNumber,stagingInvoice.PurchaseOrderNumber,stagingInvoice.Site,stagingInvoice.Warehouse,stagingInvoice.productnumber,stagingInvoice.Color,stagingInvoice.Size

where stagingInvoice.RecordStatus == SL_Status::Created

{

QuantityLeft = stagingInvoice.Quantity;

purchTable = PurchTable::find(stagingInvoice.PurchaseOrderNumber);

 

if (header == 0)

{

select recid from vendInvoiceInfoTable where vendInvoiceInfoTable.PurchId == purchTable.PurchId && vendInvoiceInfoTable.Num == stagingInvoice.InvoiceNumber;

if (!vendInvoiceInfoTable.recid)

{

vendInvoiceInfoTable.clear();

vendInvoiceInfoTable.initFromPurchTable(purchTable);

vendInvoiceInfoTable.DocumentOrigin         = DocumentOrigin::Manual;

vendInvoiceInfoTable.CurrencyCode           = purchTable.CurrencyCode;

vendInvoiceInfoTable.DeliveryName           = purchTable.DeliveryName;

vendInvoiceInfoTable.Num                    = stagingInvoice.InvoiceNumber ;

vendInvoiceInfoTable.PurchName              = purchTable.PurchName;

vendInvoiceInfoTable.VendInvoiceSaveStatus  = VendInvoiceSaveStatus::Pending;

vendInvoiceInfoTable.TransDate              = stagingInvoice.FromDate;

vendInvoiceInfoTable.FixedDueDate           = stagingInvoice.FromDate;

vendInvoiceInfoTable.DocumentDate           = stagingInvoice.FromDate;

vendInvoiceInfoTable.Hold                   = NoYes::Yes;

vendInvoiceInfoTable.insert();

header++;

}

}

inventDimId = this.getInventDim(stagingInvoice.Color, stagingInvoice.Size,stagingInvoice.Warehouse,stagingInvoice.Site);

select count(RecId) from purchline where purchLine.PurchId == purchTable.PurchId && purchLine.InventDimId == inventDimId && purchLine.ItemId == stagingInvoice.productnumber;

purchLineRowCount = purchline.RecId;

 

counter=0;

 

while select purchline where purchLine.PurchId == purchTable.PurchId && purchLine.InventDimId == inventDimId && purchLine.ItemId == stagingInvoice.productnumber

{

vendInvoiceInfoLine = VendInvoiceInfoLine::findByPurchLineRefRecId(purchline.RecId);

counter++;

if (!vendInvoiceInfoLine.RecId)

{

if (purchline.QtyOrdered != purchline.calcPendingQtyPurch())

{

vendInvoiceInfoLine.clear();

vendInvoiceInfoLine.initFromPurchLine(purchLine);

vendInvoiceInfoLine.DeliveryName    = vendInvoiceInfoTable.deliveryName;

vendInvoiceInfoLine.ParmId          = vendInvoiceInfoTable.parmId;

vendInvoiceInfoLine.TableRefId      = vendInvoiceInfoTable.tableRefId;

vendInvoiceInfoLine.CurrencyCode    = purchLine.CurrencyCode;

vendInvoiceInfoLine.DeliveryName    = purchLine.DeliveryName;

vendInvoiceInfoLine.LineNum         = purchLine.LineNumber;

vendInvoiceInfoLine.InvoiceAccount  = vendInvoiceInfoTable.invoiceAccount;

vendInvoiceInfoLine.InventDimId     = inventDimId;

vendInvoiceInfoLine.OrderAccount    = vendInvoiceInfoTable.orderAccount;

vendInvoiceInfoLine.ItemId          = purchline.ItemId;

vendInvoiceInfoLine.InventTransId   = purchline.InventTransId;

vendInvoiceInfoLine.DocumentOrigin  = DocumentOrigin::Manual;

vendInvoiceInfoLine.PurchPrice      = stagingInvoice.UnitCost;

vendInvoiceInfoLine.PurchLineRecId  = purchLine.RecId;

vendInvoiceInfoLine.OrigPurchId     = purchTable.PurchId;

 if (purchline.calcPendingQtyPurch() == 0)

{

if (QuantityLeft == purchline.QtyOrdered)

{

QuantityLeft                        = QuantityLeft – purchline.QtyOrdered – purchline.invoicedInTotal();

vendInvoiceInfoLine.ReceiveNow      = purchline.QtyOrdered – purchline.invoicedInTotal();

}

else if (QuantityLeft < purchline.QtyOrdered)

{

vendInvoiceInfoLine.ReceiveNow      = QuantityLeft;

QuantityLeft                        = QuantityLeft – purchline.QtyOrdered – purchline.invoicedInTotal();

 

}

else if (QuantityLeft > purchline.QtyOrdered)

{

if (counter == purchLineRowCount)

{

vendInvoiceInfoLine.ReceiveNow      = QuantityLeft + purchline.calcPendingQtyPurch();

 

}

else

{

vendInvoiceInfoLine.ReceiveNow      = purchline.QtyOrdered – purchline.invoicedInTotal();

QuantityLeft                        = QuantityLeft – purchline.QtyOrdered – purchline.invoicedInTotal();

}

}

}

else

{

if (QuantityLeft == purchline.QtyOrdered)

{

QuantityLeft                        = QuantityLeft – purchline.QtyOrdered – purchline.invoicedInTotal();

vendInvoiceInfoLine.ReceiveNow      = purchline.QtyOrdered – purchline.invoicedInTotal();

}

else if (QuantityLeft < purchline.QtyOrdered)

{

if (purchline.calcPendingQtyPurch() == 0)

{

vendInvoiceInfoLine.ReceiveNow      = QuantityLeft;

QuantityLeft = 0;

}

else if (purchline.calcPendingQtyPurch() >0)

{

vendInvoiceInfoLine.ReceiveNow  = purchline.QtyOrdered – purchline.calcPendingQtyPurch();

QuantityLeft =0;

}

}

else if (QuantityLeft > purchline.QtyOrdered)

{

if (counter == purchLineRowCount)

{

vendInvoiceInfoLine.ReceiveNow      = QuantityLeft+purchline.calcPendingQtyPurch();

 

}

else

{

vendInvoiceInfoLine.ReceiveNow      = purchline.QtyOrdered – purchline.invoicedInTotal();

QuantityLeft                        = QuantityLeft – purchline.QtyOrdered;

}

}

if (counter != purchLineRowCount && vendInvoiceInfoLine.ReceiveNow > purchline.QtyOrdered)

{

vendInvoiceInfoLine.ReceiveNow = purchline.QtyOrdered;

                               }

}

vendInvoiceInfoLine.LineAmount = stagingInvoice.UnitCost*vendInvoiceInfoLine.ReceiveNow;

vendInvoiceInfoLine.insert();

Purchcounter++;

if (QuantityLeft<=0) break;

}

}

}

}

while select forUpdate stagingInvoiceCheck where stagingInvoiceCheck.RecordStatus == SL_Status::Created

{

stagingInvoiceCheck.RecordStatus = SL_Status::Completed;

stagingInvoiceCheck.update();

}

ttsCommit;

}

catch(Exception::Error)

{

Purchcounter=0;

ttsBegin;

while select forUpdate stagingInvoiceCheck where stagingInvoiceCheck.RecordStatus == SL_Status::Created

{

stagingInvoiceCheck.RecordStatus = SL_Status::Completed;

stagingInvoiceCheck.update();

}

ttsCommit;

 

info(strFmt(‘%1′,Exception::Error));

ttsAbort;

}

info(strFmt(‘%1 Lines Processed Created’,Purchcounter));

}

 

 

Setting up Intercompany Trade in Dynamics AX 2012

You all must be familiar with what intercompany is. Here I am going to tell about the setups that are required to run the intercompany trade and the intercompany trade process.

I will be using a scenario throughout this blog and I will map it on Contoso.

For intercompany scenario, we will be needing two companies. CEU is a company that is involved in production of finished goods and CEE is a company that sells the product to the end consumer. So in order to sell it to the end consumers, CEE has to purchase the finished goods from CEU Company.

Let’s have a look at how we can map this in AX.

The first step is to build a trading relationship between the two companies.

For this first create CEU Company as a Vendor in CEE Company.

Then create CEE Company as a Customer in CEU Company.

To set trading relationship, go to the CEE Company

Navigate to Procurement & Sourcing > Common > Vendors > All Vendors

1

Select CEU Vendor, click the General tab and then click Intercompany in the set up on the Action Pane

 

2

 

Click Trading Relationship

 

3

 

In Sales Relation, select CEU Company and select the Customer account that is CEE in my account

 

4

Click Activate to activate the relationship between the two companies.

5

 

This makes the relationship to be activated in both the companies,

Now to record the sales and purchases i.e. the trade between the two companies, following procedure will be followed:

An Intercompany Purchase Order will be created in CEE Company to procure Finished Goods from CEU Company

In CEE, Open Procurement and sourcing > Common > Purchase orders > All purchase orders.

 

6

 

 

Click Purchase order in the New group on the Action Pane to create a new purchase order.

 

7

 

In the Create purchase order form, select the CEU Vendor. Click Yes to copy the details mentioned on the vendor form to the purchase order.

 

8

 

Click OK, an Infolog will appear that an Intercompany Sales Order has been created.

 

9

 

In the Purchase Order Lines, Select the Item number and Quantity information, if required select Product Dimensions, Site and Warehouse.

 

10

Note: only Released Products can be used in intercompany orders.

After the Intercompany purchase order is created, Click Confirm on the Action Pane to save and Confirm the purchase order.

 

11

 

 

Purchase Order Status at Confirmation will be of an Open Order

 

12

Note: when the Purchase Order is Created, the Intercompany Sales Order is automatically Created in the vendor company

On Purchase Order form, in the Manage Tab, in Intercompany Tracing Click Intercompany Sales Order to view Intercompany sales order:

 

13

 

Sales Order form will pop up, which is the auto generated order. The Sales Order will be generated in CEU Company

 

14

 

 

To Confirm an Intercompany Sales Order, In the Sell tab of the Action Pane, click Sales Order Confirmation in the Generate group.

 

15

Click OK to generate the order confirmation.

16

 Note: Confirming the sales order is optional

Sales Order Status on confirmation will be of an Open Order

 

17

 

 

To generate a packing slip, In the Pick and Pack tab of the Action Pane, click Packing slip in the Generate group. The Packing slip posting form opens.

 

18

 

In the Posting Packing Slip form, in the Quantity field, select the All option. Select the Print Packing Slip check box to Print the packing slip and then Click OK on the Posting dialog box.

19

 

Sales order Status will now change to Delivered

 

20

 

Note: Sales order status will change to delivered only if the quantities on the packing slip equals the ordered quantities

On the posting of the pakcing slip, physical on-hand inventory gets reduced. But this of course depends on the setups that we have done for the item model group that we are using.

Now to generate an invoice, In the Invoice tab of the Action Pane, click Invoice in the Generate group

 

21

Note: On product receipt number and the invoice number, packing slip number will automatically get updated.

Sales Order status will now change to Invoiced

 

22

Note: Sales order Status will change to Invoiced only if the full ordered quantity is Invoiced.

Invoice form will appear, in Quantity field, select the Packing Slip option to generate invoice of the quantity mentioned in the Packing Slip and click OK.

Note: you can select other available options as well depending on your process and requirement.

 

23

 

Now generate product receipt to confirm that intercompany item is received in the purchasing company i.e. CEE

In the Receive tab of the Action Pane, click Product Receipts in the Generate group. The Product Receipt form opens.

 

24

 

In the Product receipt form, in the Quantity field, select the Ordered Quantity or any other available option according to your requirement. Select the Print Product Receipt check box to print the product receipt and then Click OK on the Posting dialog box.

 

25

Note: The packing slip number gets automatically appeared on the product receipt

When the item is received, In the Invoice tab on the Action Pane click Invoice in the Generate group

 

26

 

 

A Vendor Invoice form will appear in which Invoice Number will automatically get updated.

 

27

 

Click Post to post the Invoice.

 

28

Purchase Order Status will now change to Invoiced

29

I hope this will be useful for you, thanks for reading it.

I will get back to you with another topic soon :)

 

Questionnaires: How to create Questionnaires in Dynamics AX 2012

This is the second post in the series related to Questionnaires in Microsoft Dynamics AX 2012.

Questionnaires are not difficult; they are just extremely flexible. In an ERP solution, you may think that standard and/or best practices should be part and parcel; but Microsoft Dynamics AX 2012 offers some features that are not only extremely flexible, but they allow for a huge amount of creativity as well!

Do you realize that questionnaires could be used for literally anything? One such example is the little case we had talked about last time; a customer opening form. In a real life scenario, a Sales Person sends a request to an Accounts Receivables Manager to create a customer within Dynamics AX 2012. Some preliminary information is requested from this Sales Person as part of the standard operating procedures.

Let us now see how a questionnaire is formulated:

Step 1: Plan your questions for the questionnaire.

We have three questions we need to ask: Customer Name, Customer Contact Number, Payment Terms.

Step 2: Decide on the Types of Answers that will be received.

Customer Name and Customer Contact Number are simple text fields; Payment Terms would be a radio button.

Step 3: Take the “Choice” Type of questions and formulate your answer groups:

Home > Common > Questionnaires > Design > Answer Groups

Create a New Answer Group: Payment Terms

answer group

Now click on Answers and create your answer list:

We created two answers: Cash, Credit:

Answers

 

Step 4: Now, create your questions and select the different answer groups where applicable:

Home > Common > Questionnaires > Design > Questions

Questions

You’re almost done!

The deal with questions, answers, answer groups and questionnaires is that you create standard solutions for each and then mix and match where required. Say for example, you have several trainings or courses that your company offers. You could create questions that could be mixed/matched as necessary, on several questionnaires to assess these trainings. Makes sense?

Step 5: Now, create your questionnaire for use:

Home > Common > Questionnaires > Design > Questionnaires

Questionnaire

Now click on Questions and add the ones that you had created in step 4.

You’re done!

I used these questionnaires in the Cases that Dynamics AX 2012 has; you could use them for any other purpose.

The above tutorial is very simplistic in nature because of the nature of the work that was needed in the questionnaires. More complicated questionnaires can be created as well to add conditional questions, scoring and evaluation criteria; but more on that later!

Was this tutorial of help? Do leave some comments in case you have any questions.

 

 

Dynamics AX 2012: Questionnaires, what are they and why you should use them

In this two part tutorial, we shall explore and evaluate the true potential of the questionnaires in AX2012. Even though Microsoft Dynamics AX 2012 offers a wide variety of mainstream features in relevant modules apt for a tier one ERP solution; some little known features can help you explore the little nooks and crannies that will make your life a little easier. One such feature is questionnaires in Dynamics AX 2012.

Questionnaires are not lengthy pages of questions that your user will have to fill out. Rather, small checklists, one off questions, evaluations, and even scripts for standardized attendance towards service can be made part of, and through questionnaires. Literally anything can be set up in this tiny function:

  1. Evaluation of a course attended by trainees
  2. Employee performance appraisals
  3. Employee satisfaction surveys
  4. Customer surveys
  5. Vendor evaluation or assessment questionnaire

When designing a questionnaire, some key elements required include:

  1. The type of questionnaire for the question – the area where this question will be used (such as employee evaluation, procurement, etc.) – questions and questionnaires are set up separately and then combined before distribution
  2. Input Type: the type of input such as integer– questions and questionnaires are set up separately and then combined before distribution
  3. Answer Groups: Answer groups are the groups based on which questions can be answered
  4. Instruction: You can guide your user to fill out questionnaires according to some specific instructions (example: script for the person who provides troubleshooting service on phone)
  5. Media Type: type of media that can be attached the question
  6. Rights: You can restrict the questionnaire to a particular group of people (Employees, Contacts – Vendor or Customer, Applicants).

Based on the results gathered, statistics can be calculated and you can generate reports for the answers received on the questionnaires.

This was a little overview on how questionnaires function in Microsoft Dynamics AX 2012. In the next blog post, we shall evaluate a little scenario where the Sales Department fills out a questionnaire for customer evaluation.

This scenario includes the following elements:

  1. New Customer Opening Request
  2. Sales Department generates request
  3. Sales Department fills out questionnaire
  4. Finance Department evaluates request and questionnaire before opening new customer.

We shall only see the questionnaire part of the above scenario.

Alternate of displayOption Method on List Page.

Sometimes, you may require doing the record color coding on the list pages.

Record color coding can be easily achieved by overriding the displayOption method on the form data source and writing the certain color code statements based on the required conditions in AX.

It is not possible with the list page as you cannot override the displayOption method on the query data source used to show data on list page grid, neither this can be done in the ListPageInteraction class.

We can use an alternative to fulfill our requirement, in which we can set an indicator on the first column of the grid of the list page.

This indicator can be the colorful small icon images. Which can be returned by display method of that particular table based on the conditions.

taim

Happy DAXing!

Developing a form using Date Effective framework

Introduction:

In order to cater the scenarios where organizations need to keep track of or analyze data which keeps changing over time, Date effective framework was introduced in Microsoft Dynamics AX 2012.

One of the main requirements of an organization could be to keep track of an exchange rate.  What is the exchange rate today? What was the exchange rate on the day a particular invoice was posted? What was the exchange rate a month ago? In order to cater such needs of an organization, Date effective framework is used which provides ease and consistency for date effective scenarios.

Terminology:

Term Definition
Valid Time State Table A table that tracks the records over time using the fields ValidFrom and ValidTo
Valid Time State Key An Alternate key that enforces the valid time state semantics
Gap A condition in which a record can have a gap between its’ certain date ranges
Overlap A condition where a record has more than one occurrence
Current Record A record effective at the present time
Past Record A record effective in an earlier time
Future Record A record effective in a future time
Create New Time Period Creates a new time period updating the date effective table and closing the initial record
Effective Based When updating a valid time state table in Effective Based mode, if the record being updated is a current record, the record is updated in CreateNewTimePeriod mode. If the record being updated is a future record, the record is updated in Correction mode. If the record is a past record, the record cannot be updated. 

Tutorial – Developing a form using Date Effective fram

Introduction:

In order to cater the scenarios where organizations need to keep track of or analyze data which keeps changing over time, Date effective framework was introduced in Microsoft Dynamics AX 2012.

One of the main requirements of an organization could be to keep track of an exchange rate.  What is the exchange rate today? What was the exchange rate on the day a particular invoice was posted? What was the exchange rate a month ago? In order to cater such needs of an organization, Date effective framework is used which provides ease and consistency for date effective scenarios.

Terminology:

Term Definition
Valid Time State Table A table that tracks the records over time using the fields ValidFrom and ValidTo
Valid Time State Key An Alternate key that enforces the valid time state semantics
Gap A condition in which a record can have a gap between its’ certain date ranges
Overlap A condition where a record has more than one occurrence
Current Record A record effective at the present time
Past Record A record effective in an earlier time
Future Record A record effective in a future time
Create New Time Period Creates a new time period updating the date effective table and closing the initial record
Effective Based When updating a valid time state table in Effective Based mode, if the record being updated is a current record, the record is updated in CreateNewTimePeriod mode. If the record being updated is a future record, the record is updated in Correction mode. If the record is a past record, the record cannot be updated. 

Tutorial – Developing a form using Date Effective framework

Step 1:

Create a new form and add the date effective table SL_ExchangeRate in its data source. Select the CurrencyPairIdx in the index property of the form data srouce SL_ExchangeRate.

Creating a date effective form
Creating a date effective form

Step 2:

Add a grid in the design node of the form and set its data source to SL_ExchangeRate

Here is the data displayed in the form. It can be noticed that data which is effective as of date is only displayed in the form grid.

Date effective framework

BI Implementation in Microsoft Dynamics AX 2012 for Retail Industry – An informative webinar by Visionet on March 19, 2014

Cranbury, NJ – February 25, 2014 – Visionet Systems, Inc. is arranging an informative webinar entitled Fast Track Retail BI implementation in Dynamics AX, to take place on Wednesday, March 19, 2014 at 02:00pm EST.

This webinar will focus and elaborate on how retail organizations of all sizes can transform their businesses into a high-performance workplace with BI implementation and its rich features.

With over 37 years of experience in the Retail industry, Visionet experts will share their knowledge about BI features that assure maximum and immediate ROI along with its integration with CRM, Big Data and other syndicated sources. Attendees will also be acquainted with scenarios and strengths of the BI capabilities in Dynamics AX 2012 and the tools best suited for particular scenarios.

Register now to learn how other companies have used innovative strategies, combined with these powerful, easy-to-implement business solutions, to gain a competitive advantage, improve financial performance, and solve everyday business challenge.

Here is the link to register for this event:

https://clicktoattend.microsoft.com/en-us/Pages/EventDetails.aspx?EventID=180256

About Visionet Systems, Inc.

Cranbury, NJ based – Visionet Systems, Inc. is a full-service technology consulting and business process outsourcing company. Visionet delivers software solutions, services, and technology-led BPO products, which are built on the best-of-breed philosophy to help our customers increase business agility, drive down their costs, and reduce risks. Over the years, Visionet has engineered high performing and cost-effective solutions for its customers across diverse industries including, banking, retail, insurance, distribution and manufacturing, while building deep competencies in the IT Industry. We are focused on delivering value and exceeding customer expectations. For more information, visit us online at www.visionetsystems.com