Followers

14 December 2016

Sale Order and Purchase Order Tables and Classes

Sale Order classes and Tables:

SalesTableType and SaleslineType classes will get called while creating the Sales Orders.
SalesFormLetter_Confirm
SalesFormLetter_PickingLlst

SalesFormLetter_PackingSlip
SalesFormLetter_Invoice
Classes used to post the sales order at various document status (packing, invoice etc).
Tables:


Sales Table contains all Sales Order headers regardless whether they have been posted or not.
The SalesParmTable and SalesParmLine contains detailed information regarding posting sales headers and Lines.
CustConfirmJour and CustConfirmTrans tables contains all Sales Confirmation headers and Lines posted in Dynamic Ax originating from Sales Orders and Lines.
CustPackingSlipJour and CustPackingSlipTrans tables contains all sales Packing Slip headers and Lines posted in Dynamic Ax originating from Sales Orders and Lines.
CustInvoiceJour and CustInvoiceTrans tables contains all sales all Sales Invoice headers and Lines posted in Dynamic Ax originating from Sales Orders and Lines.

Purchase Order classes and Tables:


PurchTableType and PurchTableLine classes will get called while creating the PurchaseOrders.
PurchFormLetter_PurchOrder
PurchFormLetter_PackingSlip
PurchFormLetter_ReceiptsList

PurchFormLetter_Invoice
classes will be used to post the PurchaseOrder at various document status (packing, invoice etc).
Tables:
PurchTable contains all purchase order headers regardless whether they have been posted or not.
PurchParmTable and PurchParmLine contains detailed information regarding posting Purchase headers and Lines.
VendPackingSlipJour and VendPackingSlipTrans tables contains posted packingslip headers and lines.
VendInvoiceJour and VendInvoiceTrans tables contains all invoiced purchase order headers and Lines.
VendReceiptsJour and VendReceiptsTrans tables contains posted receipt header and lines.
VendPurchOrderJour and VendPurchOrderTrans tables contains Purchase requisition headers and lines.

Joins concept

Joins:

In ax 4 types of joins is there:

1) Inner join : Select the record from Main Table that have matching record form child table. These two records together and gives single record.

2) Outer join : select all records from Main Table and select the related records from child table. If there is no match ,it gives empty value

3)Exist join : select the records from Main table if there is any records matching in child table. It should return only main table not child table records.

4)Not Exist join : select the records from Main Table if there is no matching records in Child Table. opposite of Exist join.




30 November 2016

While generating the report BI Services problem.


   While running the SSRS report  got following error

    " BI Services problem"


Solution:


1)  Full CIL Compilation( if not started BI service) then process 2nd step
2) Stop AOS services
3) Delete the XPPIL folder
4) Start the AOS services


Check the BI services as below path

System Administrator> Setup>Application Integration Framework Services>Inbound>BI Servciesl

No report data table with name exists in report schema for data provider


   I was getting the  error message  when  running the report

   "No report data table with name exists in report schema for data provider"

Solution:

     1)  Restart the reporting services
     2)  Clear cache and the usage data
     3)  Restart the AOS
  


Parameter is missing a value" error running a customized report in Microsoft Dynamics AX 2012


whenever I added new parameter to the contract may fail with the following error:

The ‘Parameter Name’ parameter is missing a value

 Solution:


Recreate the parameter in Visual Studio and set the properties as required before deploying the report

1) In AOT, expand the SSRS Reports node, expand the Reports node and locate the report.

2) Right click on the report and select Delete. This will remove all customizations to the report from the current model/layer so make sure you create a backup if you think you might want to return to them.

3) Right click on the report and select Deploy element. You should now be at the point where you did not receive this error.

4) Open the report for editing in Visual Studio and refresh the dataset. The parameter will be created under the Parameters node. 

 5) Set Allow Blank and Nullable to True.

6.)Deploy the report.



 

Error while setting server report parameters. error message: the permissions granted to user 'Domain\User name' are insufficient for performing this operation.


For some user when you open the existing or default reports it may show some error which I mentioned below,

Error:

Error while setting server report parameters. error message: the permissions granted to user 'Domain\User name' are insufficient for performing this operation. (rsaccessdenied)


Solution:


Go to the web Reporting Services, navigate to the path http://ssrsreportservername/Reports/Pages/Folder.aspx, Go to Folder setting, then click New Role Assignment. The add the user or else group. Finally give the permission rights like, DynamicsAXBrowser, Reports., etc to the specific user and click OK button.
(or)

Else if the User is already created then delete that user and create the user again and assign the as it is.

A call to the Microsoft dynamics AX SSRS framework services failed


  while deploying the SSRS report  got following error

"A call to the Microsoft dynamics AX  SSRS framework services failed.An existing connections was forcibly closed by remote host".


Solution: 

> Stop Reporting Services
> Stop AOS Services
C:\Users\\App Data\Local\
> Take the backup of all AUC files.
> Remove the AUC files from Step3 path
> Start Reporting Services
> Start the AOS Services
> Run report through Power Shell

        publish-AXReport -ReportName *

    Reports are successfully deploy on my machine


5 March 2016

Custom Reference Group in Dynamics AX

Microsoft Dynamics AX 2012 introduced a new form control type as Reference Group

So go to your form data source and find the reference field for which you want to perform the lookup. override the lookupReference method.

    We can construct a query,add data sources and ranges  and then pass it to SysReferenceTableLookup, like the below code :


public Common lookupReference(FormReferenceControl _formReferenceControl)
{
    SysReferenceTableLookup     sysRefTableLookup;
    Query                       lookupQuery = new Query();
    QueryBuildDataSource        lookupQueryDataSource;
 
    // Construct the SysRefTableLookup object
    sysRefTableLookup = SysReferenceTableLookup::newParameters(tableNum(MyTable), _formReferenceControl)
 
    // Add the field list that will be displayed on the lookup form
    sysRefTableLookup.addLookupfield(fieldNum(MyTable, MyFirstField));
    sysRefTableLookup.addLookupfield(fieldNum(MyTable, MySecondField));
 
    // Construct the query's data source
    lookupQueryDataSource = lookupQuery.addDataSource(tableNum(MyTable));
 
    // Add ranges to the query data source
    lookupQueryDataSource.addRange(fieldNum(MyTable, MyFirstField)).value(queryValue(''));
    lookupQueryDataSource.addRange(fieldNum(MyTable, MySecondField)).value(queryNotValue(''));
 
    // Pass the query to the lookup object
    sysRefTableLookup.parmQuery(lookupQuery);
 
    return sysRefTableLookup.performFormLookup();
}

4 January 2016

Today Am exploring the new aspect related to financial dimensions in ax2012


Earlier version AX2009, 4.0 :

  • In  older version system used to create the limited dimensions.
  • By default system is available 3 dimensions such as  cost center,Department and purpose. These dimensions are referred as dimension[0],dimension[1],dimension[2]..
New version AX2012, 6.0 :

  •   In new version ,their is no limit to create the dimensions. Create N no.of  dimensions as   per the organization requirements.
  •  Financial dimensions master table dimension is replaced with DimensionAttribute and DimensionValueDetails. 
  • To store these dimensions on customized table insted of  EDT should add DimensionDefault EDT.
How to access the Financial dimensions values in AX2012:

             access the dimensions values in ax2009,  for example

               SalesTable.dimension[0] == Department  value
               SalesTable.dimension[1] == Costcenter  value
               SalesTable.dimension[2] == purpose value
               

        
                             
 code:

    public DimensionValue getDefaultDimensionValue(DimensionDefault _dimensionDefault,Name        _dimensionName)
{
   DimensionAttributeValueSetItemView    dimAttrsetView;
   DimensionAttribute                                   dimensionattr;
   ;
       

  select dimAttrsetView where dimAttrsetView.DimensionAttributeValueSet
          == _dimensionDefault   
    
       join dimensionattr where dimensionattr.RecId == dimAttrsetView.DimensionAttribute
                                && dimensionattr.Name == _dimensionName;
  
                           return dimAttrsetView.DisplayValue;

       }