≡ Menu

In one of SSRS Report requirement, client wants to see Purchase order quantity, Invoice Quantity against items purchase requisition Quantity.


Instead of writing a query on ItemId and InventdimId, I found out of the box function In PurchReqLine table. This method return the reference of Purchline. With reference of Purchline, I can get Purchase order Number and get Item Invoiced quantity.


PurchLine       purchLine;

PurchReqLine reqline;


_purchLine = reqline.purchLine();



The relationship between Purchline and PurchReqline is RecId, Purchline contains the Reference RecId of PurchReqline.


PurchLine       purchLine;


if (this.PurchId && this.LineRefId)


select firstonly purchLine

where purchLine.PurchId           == this.PurchId    &&

purchLine.PurchReqLineRefId == this.LineRefId  &&




Do you want to introductory session, then this course is for you. Yes it is free any one can watch very basic level course on Microsoft Virtual Academy


Course contents are amazing.



  •  Course Introduction Time00:01:3701 | Overview
  •  Cloud-Based Solution Time00:02:02
  •  Workspaces Driving Productivity Time00:02:48
  •  Workflows in Your Business Processes Time00:03:34
  •  Reporting Time00:01:12
  •  Industry Focus Time00:02:2902 | Introduction to Functionality
  •  Overview Time00:02:55
  •  Order-to-Cash Time00:00:33
  •  Demo: Order-to-Cash Functionality Time00:07:38
  •  Procure-to-Pay Time00:00:32
  •  Demo: Procure-to-Pay Functionality Time00:08:16
  •  Plan-to-Produce Time00:00:42
  •  Demo: Plan-to-Produce Functionality Time00:05:19
  •  Recruit-to-Hire Time00:00:59
  •  Demo: Create Jobs, Positions, and Recruitment Projects Time00:10:21
  •  Complete an Application and Hire a Worker Time00:00:11
  •  Demo: Complete an Application and Hire a Worker Time00:08:08Post-Course Survey
  •  Post-Course Survey (Optional) Assessment: Full Course
  •  Assessment: Full Course

I was testing one scenario, I have created some main account wrongly. So I want to delete them quickly.

Secondly I want to explore the Office integration In D365 for finance and operations.

So I did following steps to delete the required records quickly.

 Organization administration > Setup > Office integration > Excel workbook designer


Select entity “MainAccount”

. Create workbook

and download it

Login in Excel

Open excel

Delete selected records



Records are successfully deleted.


I was experimenting with Office integration in Dynamics 365 for finance and operations. On Create Excel worksheet. I got following error

Could not upload to the storage location: Unable to connect to the remote server.

Later I found that on my onbox, Azure Emulator was not running.

So I did

  1. On OneBox VM, run command prompt as administrator.
  2. Navigate to “C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator\”
  3. Run “AzureStorageEmulator.exe start”

After running that service, Download options perfectly worked


Couple of days ago, I configure the Management Report on client machine. I found following links helps to install and reconfigure.


You can download Microsoft Management Report integration guide from here. It was last updated Feb 2017



For me the most important thing I found is user role in white paper.





A lot of useful time from My fellow MVP to Tommy Skaue






Important posts from Kaya Consultancy




Some other links







Dr. Ludwig Reinhardz











Every organization sold product or services to Customer. These Customer are main source of income to these organization. In Dynamics 365 for finance and operations we can create customer in Account receivable and sales and marketing modules.  Customer basic information is saved per legal entity but his Name, address and contact save in global address book. That can be reusable in different legal entity with new customer account.

We can define customer from Account Receivable => Customer => All Customer

Sales and Marketing => Customers => All customers



If we open the customer list page, similar page will be appear. This page can be used as inquiry too. The customer created here will be used for sales, payment, Invoices and ledger accounts. Customer information can be changed any time.



Every Customer is created with unique id in Customer Account.  Default size of Customer Account is 20.


By clicking on new button from top menu , on list page a dialog opens where we can enter basic information. boxes with red boundaries are mandatory. Customer can be organization or individual entry. As I already mentioned that Customer Name, address  and even contacts are global across  application.




There are multiple options  available on save . Default option is save and go in detail page.

Other options are as follow


-Sales Quotations : Where we create Sales Quotations and start to enter the Sales quotations send to Customer in response to its RFQ.

-Project Order: Where customer saved and Project Quotations detail form opens.

-Sales Order: Customer Record saved and new sale order created against Customer and it goes directly Sales order detail page.


On click at Edit button to leads customer detail page in edit mode. We can modify information and save. This edit mode can available on detail page also.

Out of the box Customer detail will be something similar


Customer Information and Contact:


Contact and Address can be added from Addresses and Contact information.



Invoice and delivery Information of Customer:


Some cases, we invoice the customer other then customer It self. Some times Same customer purchase things with different customer Account. In that case we invoiced shipment to another customer Id. For this purpose Dynamics 365 for finance provide Invoice Account in “Invoice and delivery” fast tab.

In the case of Invoice account not set in Invoice and Delivery fast tab then Invoice will be created against Customer Account as default.

The delivery terms, mode of delivery, receipt calendar can be specified in the Delivery area. This information will default to the sales order header.

If you want to calculate Sales tax against customer Invoice, you have to set Sales tax in Invoice and Delivery fat tab.


Customer Payment Information:


Payment management options can set in customer Payment fast tab


You can set

  • Terms of payment
  • Method of payment
  • Payment specification
  • Payment schedule.
  • Payment day
  • Cash discount. A cash discount is used as an incentive for customers that pay
  • before due date.
  • Bank account
  • Bank account number




Customer Financial Dimension:

Customer financial dimension can be set from  financial Dimension fast tab. These financial dimension automatically copied in sale order and customer invoices if they are set at customer level. These financial dimension can be modify and over right.

Sales order related default settings:


From Sale Order Defaults fast tab, you can set Preferred shipped from ware house and site and also Bill to customer. Bill to customer can be set in account number. This account number will be copied to Sale order header instead of customer own Account number. It means, we can set different Account for bill to customer .



Ware house management Fast tab.


Here we can set Ware house management level information. Fast tab related to Advance ware house management module.

Following options are here.

ASN : Means, Advance shipment notification generate for customer.

Fulfillment rate.  The threshold required before releasing to Warehouse.

Value Type:  Fulfillment rate apply to Price, Quantity or to None.

Fill entire shipment- shipment processing parameter to control fully shipment allocation during work creation.

Default status id – default status for inventory transaction.


Procurement and sourcing


Hi All I found very interesting video about Project Management and accounting module of Dynamics 2012 R3 by Santosh kumar Singh. Video is worth to share.






Today I have to record very small tip. During development of on SSRS report for Dynamics Ax 2012 R3, End user wants a row at the report footer for  analysis. he wants some kind of percentage  calculation with ‘%’.  A For this I have to use CStr ssrs expression function  like


Ctr(((sum(DataSet!field.Value) / sum(DataSet!field.Value)))*100)+”%”.


Now it is string and shows number of decimal as it result from division. For example  5.4356333. But end user wants formatting like 5.43 .

It is string or text value and SSRS textbox formatting is not apply on it.


Following SSRS expression works for me.







My Updated expression is something like this


Left(CStr(IIF(Parameters!ProductionReportBM2DS_ItemName.Value = “ITEM-00000420”,((sum(Fields!Scrap.Value)/sum(Fields!TotalConsumption.Value))*100),((sum(Fields!CutLength.Value)/sum(Fields!TotalConsumption.Value))*100))),instr(CStr(IIF(Parameters!ProductionReportBM2DS_ItemName.Value = “ITEM-00000420″,((sum(Fields!Scrap.Value)/sum(Fields!TotalConsumption.Value))*100),((sum(Fields!CutLength.Value)/sum(Fields!TotalConsumption.Value))*100))),”.”)+2) +”%”


Small tip, with reference at the end of post. I got small task, User want Last approval Name in grid at the result.

I wrote following code snippet as method in a required table and bind it to grid field.


display Name LastApprovalName()


WorkflowTrackingStatusTable workflowTrackingStatus;

WorkflowTrackingTable workflowTrackingTable;

WorkflowTrackingCommentTable workflowTrackingCommentTable;

UserInfo userInfo;

RecId _recId;

Name _name;


select firstFast RecId, User from workflowTrackingTable

order by RecId desc

join workflowTrackingCommentTable

where workflowTrackingCommentTable.WorkflowTrackingTable == workflowTrackingTable.RecId

join UserInfo

where UserInfo.id == WorkflowTrackingTable.User

exists join workflowTrackingStatus

where workflowTrackingTable.WorkflowTrackingStatusTable == workflowTrackingStatus.RecId

&& workflowTrackingStatus.ContextRecId == this.RecId

&& workflowTrackingStatus.ContextTableId == tableNum(MyTablelRequestTable) //PurchTable

&& workflowTrackingTable.TrackingType == WorkflowTrackingType::Approval;

if (workflowTrackingTable.RecId > 0)









return _name;





Original Code snippet is https://community.dynamics.com/ax/b/amazingax1/archive/2016/04/28/microsoft-dynamics-ax-2012-get-workflow-last-approver-name-and-approved-date