• Skip to main content
  • Skip to primary sidebar
  • Home
  • About
  • Recommended Readings
    • 2022 Book Reading
    • 2023 Recommended Readings
    • Book Reading 2024
    • Book Reading 2025
  • Supply Chain Management Guide
  • PKM
  • Microsoft Excel

Ali Raza Zaidi

A practitioner’s musings on Dynamics 365 Finance and Operations

Archives for 2016

New Android apps for Microsoft Dynamics 365.

November 13, 2016 by alirazazaidi

Microsoft release new apps for Dynamics 365

 

On searching I found two apps on Android store.

Dynamics 365 for Operations

Extraction form google App store

2016-11-14_3-13-20

The Microsoft Dynamics 365 for Operations mobile app empowers your organization to mobilize your business processes. Once your IT admin has enabled the mobile workspaces feature for your organization, you can login to the app and immediately begin executing your business processes from your mobile phone.

The Dynamics 365 for Operations mobile app includes the following productivity boosting features:

More detail

https://play.google.com/store/apps/details?id=com.microsoft.dynamics365.operations.mobile\

 

 

Dynamics 365 for Financials

 

Another app on Google App store is for Financials.

2016-11-14_3-25-23

Extraction form Google App store about the app as follow

Microsoft Dynamics 365 for Financials is a business management solution that’s connecting people and processes like never before. From day one, it makes ordering, selling, invoicing, and reporting easier and faster.

Turn your multiple disconnected systems into one. Boost efficiency with automated tasks and workflows—all from within familiar Office tools like Outlook, Word, and Excel. Get a complete picture

More detail please click on following link.

https://play.google.com/store/apps/details?id=com.microsoft.dynamics.ProjectMadeira

Introduction to New Dynamics 365 for operations in 90 seconds.

November 13, 2016 by alirazazaidi

Microsoft release a 90 seconds video as introduction to new Dynamics 365. More and less a advertisement video.  Video release with title

 

Increase the Speed of Doing Business with Microsoft Dynamics 365 for Operations

 

https://www.youtube.com/watch?v=MlxJRUN1EiI

Workflow resubmit code snippet dynamics ax 2012

November 3, 2016 by alirazazaidi

Recently I wrote the code for Custom workflow for resubmit.  It took me half an hour to explore out of box code for resubmit.

While working in ERP, we have to daily learn new things and handle new situation.

Most of resubmit functionality is done through a lot of inheritance and much complex way.  Finally I found simplest resubmit code from “LedgerJournalWFApprResubmitToWF” class. I modified that code snippet, that works for me. Here is complete resubmit code. You have to update the resubmit event handler class generated by Workflow Approval Wizard as follow

public static void main(Args _args)
{
recID recID = _args.record().RecId;
tableId tableId = _args.record().TableId;
tableName tableBuffer = _args.record();
WorkflowWorkItemTable workItem = _args.caller().getActiveWorkflowWorkItem();
WorkflowWorkItemActionDialog workflowWorkItemActionDialog;
if (workItem.RecId > 0)
{
try
{

workflowWorkItemActionDialog = WorkflowWorkItemActionDialog::construct( workItem,
WorkflowWorkItemActionType::Resubmit,
new MenuFunction(_args.menuItemName(),_args.menuItemType()));
workflowWorkItemActionDialog.run();

if (workflowWorkItemActionDialog.parmIsClosedOK())
{
if ( tableName.WorkflowStatus == WorkflowStatus::ChangeRequest)
{
workItem = _args.caller().getActiveWorkflowWorkItem();
WorkflowWorkItemActionManager::dispatchWorkItemAction( workItem,
workflowWorkItemActionDialog.parmWorkflowComment(),
workflowWorkItemActionDialog.parmTargetUser(),
WorkflowWorkItemActionType::Resubmit,
_args.menuItemName(),
false);

tableName.WorkflowStatus= WorkflowStatus::Submitted;
ttsbegin;
tableName.dataSource().write();

ttscommit;
}
else
{
throw Exception::Error;
}
}
}

catch(Exception::Error)
{
throw error(strfmt("Can not resubmit some error occur"));
}
}
// Make the form refresh its common workflow UI controls.
_args.caller().updateWorkflowControls();
}

 

New Dynamics Ax and Power BI Integration interactive Guided tour.

October 31, 2016 by alirazazaidi

I found very interesting and interactive guided tour provided by Microsoft at Dynamics.com. I feel its worth to share.

Enjoy and say welcome to 365 degree change in the world of ERP.

 

RegisterOverrideMethod was called twice for the same object for method Dynamics Ax 2012

October 28, 2016 by alirazazaidi

I was developing the report by adding UI Class and building the drop down list to select multiple customer.

 

When I try to bind, DataSet of SSRS report to data provider class, it shows following error.

 

RegisterOverrideMethod was called twice for the same object for method ‘textChange’. You can only override a method once per instance.

error

On Exploring I found that I used the Same dialog field in two lookup methods.

 

SysLookupMultiSelectCtrl::constructWithQuery(this.dialog().dialogForm().formRun(), dlgCustAccount.control(), query, false, selectedFields);

Time field on SSRS shows time format Report Dynamics Ax 2012

October 28, 2016 by alirazazaidi

Today is another small tip,

I was developing a custom report. Queried table stored the date and time in separate fields ie. Transdate and transtime. On  mapping the transtime to report, its showed time format. Instead of time value.

2016-10-28_19-18-27

For it solution, I added the string field on report temp table and then convert the time with time2str function and map to the field.

Complete statement is below.

TableTmp.StransTime  = time2Str(_Trans.transTime, TimeSeparator::Colon, TimeFormat::AMPM);

 

As result, report will display the trans time instead of its format.

2016-10-29_1-56-07

Customization in New Dynamics Ax (Aka AX 7)- Part 6 Custom Workflow

October 19, 2016 by alirazazaidi

Customization in New Dynamics Ax (Aka AX 7)- Part 6 Custom Workflow

 

Hi, every one, Let’s explore the custom workflows in new Dynamics Ax commonly known as AX 7.

This blog post is part of series.

In this post, I build a custom workflow based on table and form build in pervious posts.

Below links leads you to older posts.

 

http://tech.alirazazaidi.com/customization-in-new-dynamics-ax-ax-7-part-1-creating-new-model/

 

http://tech.alirazazaidi.com/customization-in-new-dynamics-ax-aka-7-create-new-module/

 

http://tech.alirazazaidi.com/customization-in-new-dynamics-ax-ak-7-part-3-form-and-table-extensions/

 

http://tech.alirazazaidi.com/customization-in-new-dynamics-ax-ak-7-part-4-custom-tables/

 

http://tech.alirazazaidi.com/customization-in-new-dynamics-ax-aka-ax-7-part-5-custom-forms-simple-list-page/

 

 

As per Microsoft Documentation Custom workflow development is very similar to Dynamics Ax 2012.

 

Let’s do this in in following steps.

Custom Enum type.

 

We need Custom enum type for defining the States or status of Workflow. In Current Example I am using Al as naming convention for development.

 

Right click on Solution explorer and then add a new from ax artifacts. Name it AlDocumentWorkflowState.

new-enumtype

When new AlDocumentWorkflowState enum is added in Solution explorer then double click on it to open it in designer mode. And then Add following Elements in it.

Add following elements in Enum

2016-09-20_22-56-56

 

Now drag this enum to required table and it will create a new field other wise you have to create a new field in table and set extended data type / base enum. For current example I used the AlEarningCodeGroup table which I created in my previous post.

workflowdrag

 

 

Table methods:

We need two methods in Table, first method is CanSubmitToWorkFlow.  This table help us to enable workflow based on specific condition, For example if table row has workflow state draft or not submitted, then workflow will processing will enable.

canworkflow

 

A new class is added in and update with logic, The condition on which Workflow enabled in class

public boolean canSubmitToWorkflow(str _workflowType = '')

{

boolean ret;

ret = super(_workflowType);

if (this.AlDocumentWorkflowState  == AlDocumentWorkflowState::NotSubmitted)

{

ret = boolean::true;

}

else

{

ret = boolean::false;

}

return ret;

}

 

Now add one more method in class We pass recId of current row and update its workflow state.

Public static void UpdateWorkFlow(RefRecId _RecId,AlDocumentWorkflowState _Status)

{

AlEarningCodeGroup _Group;

select forupdate * _Group where _Group.RecId == _RecId;

ttsbegin;

_Group.AlDocumentWorkflowState = _Status;

_Group.update();

ttscommit;

 

}

 

Custom Query:

Workflow uses the query to define the tables and fields that will be used by the workflow to define the data set available.

Again right click on solution explorer and add new Item and then select Query.

Now create a Query so we can build Document on that Query.

newquery

 

 

Name it AlEarningCodeGroupQuery .

Double click on Query and open it into Design mode and drag table in Data source. Save

querydetail

Now right click on Table and press Now F4 or open property window and set dynamics Field

fields

You find fields details.

query-building

 

Workflow Category:

A workflow category is used to determine the module in which the workflow will be available

Right click on project in solution explorer and add new Item.  From dialog window select workflow category.

workflowcategorydailog

 

 

Double click on workflow category created in previous step and open in designer view, press F4   to property window. set Module Property to HumanResource and Label to “AlEarningcodeGroupWFCategory” and save it.

categoryproperty

 

 

 

Workflow type.

Now to go to Solution explorer and add new item and from new Item dialog select

earncodetypewf

 

Name it AlEarningGrpWFType. A wizard will start and there you have to select Query , Workflow category and the link from which required form will be open. We build all these three things in previous steps.

ddde

When Wizard finish, number of classes, Workflow type and classes will be generated and added in Visual studio, you can find them in solution explorer.

menuee

 

 

Update label of workflow type open them in designer window and set its label.

earning-code-type

Similarly update labels of menu items to something good.

cancel

 

Similarly update the label of submit button.

 

Now expand the Submit Manager Class “AlEarnGrpWFTypeSubmitManager”  and update event handlers as follow.

/// <summary>

/// The AlEarnGrpWFTypeSubmitManager menu item action event handler.

/// </summary>

public class AlEarnGrpWFTypeSubmitManager

{

public static void main(Args _args)

{

AlEarningCodeGroup                           EarningCodeGroup;

AlEarnGrpWFTypeSubmitManager     submitManger;

recId _recId =                      _args.record().RecId;

WorkflowCorrelationId               _workflowCorrelationId;

 

 

workflowTypeName                    _workflowTypeName = workFlowTypeStr(“AlEarnGrpWFType”);

WorkflowComment                     note = “”;

WorkflowSubmitDialog                workflowSubmitDialog;

submitManger =                      new AlEarnGrpWFTypeSubmitManager();

 

 

 

 

 

//Opens the submit to workflow dialog.

workflowSubmitDialog = WorkflowSubmitDialog::construct(_args.caller().getActiveWorkflowConfiguration());

workflowSubmitDialog.run();

 

 

if (workflowSubmitDialog.parmIsClosedOK())

{

EarningCodeGroup = _args.record();

// Get comments from the submit to workflow dialog.

note = workflowSubmitDialog.parmWorkflowComment();

 

 

try

{

ttsbegin;

// Activate the workflow.

_workflowCorrelationId = Workflow::activateFromWorkflowType(_workflowTypeName, EarningCodeGroup.RecId, note, NoYes::No);

 

 

EarningCodeGroup.AlDocumentWorkflowState = AlDocumentWorkflowState::Submitted;

EarningCodeGroup.update();

ttscommit;

 

 

// Send an Infolog message.

info(“Submitted to workflow.”);

}

catch (Exception::Error)

{

error(“Error on workflow activation.”);

}

}

 

 

_args.caller().updateWorkFlowControls();

}

 

}

 

Now double click on event class “AlEarnGrpWFTypeEventHandler”  in solution explorer edit its events with table method call, We create this static method in one of above step.

/// <summary>

/// The AlEarnGrpWFTypeEventHandler workflow event handler.

/// </summary>

public class  AlEarnGrpWFTypeEventHandler implements WorkflowCanceledEventHandler,

WorkflowCompletedEventHandler,

WorkflowStartedEventHandler

{

public void started(WorkflowEventArgs _workflowEventArgs)

{

AlEarningCodeGroup::UpdateWorkFlow(_workflowEventArgs.parmWorkflowContext().parmRecId(),AlDocumentWorkflowState::Submitted);

}

 

public void canceled(WorkflowEventArgs _workflowEventArgs)

{

AlEarningCodeGroup::UpdateWorkFlow(_workflowEventArgs.parmWorkflowContext().parmRecId(),AlDocumentWorkflowState::PendingConcellation);

}

 

public void completed(WorkflowEventArgs _workflowEventArgs)

{

AlEarningCodeGroup::UpdateWorkFlow(_workflowEventArgs.parmWorkflowContext().parmRecId(),AlDocumentWorkflowState::Completed);

}

 

}

 

Workflow Approval:

 

 

Add new item and select Workflow Approval like in previous steps

approval

 

In wizard select Workflow document this will be generated by Workflow element step. Also select the field group from table on which we are building workflow. Also select form menu item which will open when user click on notification.

 

earaninggroupcodeapprovalwizard

 

earninggroupapprovalwizarddetails

 

 

 

 

In Solution explorer new menu items and classes are added.

new-items

 

 

Now double click and open the approval class and update it as AlEarningGroupWFApprEventHandler

And update workflow dates

/// <summary>

/// The AlEarningGroupWFApprEventHandler workflow outcome event handler.

/// </summary>

public final class AlEarningGroupWFApprEventHandler implements WorkflowElementCanceledEventHandler,

WorkflowElemChangeRequestedEventHandler,

WorkflowElementCompletedEventHandler,

WorkflowElementReturnedEventHandler,

WorkflowElementStartedEventHandler,

WorkflowElementDeniedEventHandler,

WorkflowWorkItemsCreatedEventHandler

{

public void started(WorkflowElementEventArgs _workflowElementEventArgs)

{

 

}

 

public void canceled(WorkflowElementEventArgs _workflowElementEventArgs)

{

AlEarningCodeGroup::UpdateWorkFlow(_workflowElementEventArgs.parmWorkflowContext().parmRecId(), AlDocumentWorkflowState::PendingConcellation);

}

 

public void completed(WorkflowElementEventArgs _workflowElementEventArgs)

{

AlEarningCodeGroup::UpdateWorkFlow(_workflowElementEventArgs.parmWorkflowContext().parmRecId(), AlDocumentWorkflowState::Approved);

}

 

public void denied(WorkflowElementEventArgs _workflowElementEventArgs)

{

AlEarningCodeGroup::UpdateWorkFlow(_workflowElementEventArgs.parmWorkflowContext().parmRecId(), AlDocumentWorkflowState::Reject);

}

 

public void changeRequested(WorkflowElementEventArgs _workflowElementEventArgs)

{

AlEarningCodeGroup::UpdateWorkFlow(_workflowElementEventArgs.parmWorkflowContext().parmRecId(), AlDocumentWorkflowState::ChangeRequest);

}

 

public void returned(WorkflowElementEventArgs _workflowElementEventArgs)

{

AlEarningCodeGroup::UpdateWorkFlow(_workflowElementEventArgs.parmWorkflowContext().parmRecId(), AlDocumentWorkflowState::Returned);

}

 

public void created(WorkflowWorkItemsEventArgs _workflowWorkItemsEventArgs)

{

// TODO:  Write code to execute once work items are created.

}

 

}

 

Now double click on workflow type and open in designer

workflow-type

 

workflowapproval

 

Update it workflow approval with name

approva

Form Properties to enable Workflow.

 

Now expand the form, double click on designer and set following properties.

 

Workflow data source, enable for workflow and workflow Type.

worktypedetial

Now save Compile And Run with Ctrl F5 to run without debugging to open Dynamics Ax web client

workflow-setup

 

Now we have to configure workflow.

We set workflow category is Human Resource Management, and you will find Human resource workflows

setupworkflow

 

Create a new workflow and select the workflow type we created in above step.

login

 

Enter credentials.

 

 

 

From designer window select and configure workflow.

setup

 

Save and activate.

 

Now when you open the client in browser. You will find workflow menu item you can run the workflow from here.

 

workflow-setss

 

Design/Controls/Filtergrp’ is missing child ‘Quick Filter new Dynamics Ax 7

October 18, 2016 by alirazazaidi

While building Dynamics Ax 7 simple list page, I got following error on compiling.

 

Severity                Code      Description         Project  File         Line

Error                     Path: [AxForm/AXEarningCodeGroup/Design/Controls/Filtergrp]:Control ‘AxForm/AXEarningCodeGroup/Design/Controls/Filtergrp’ is missing child ‘Quick Filter’ required by pattern ‘Custom and Quick Filters’.   CustomPayroll (USR) [CustomPayroll] C:\AOSService\PackagesLocalDirectory\ApplicationSuite\CustomPayroll1\AxForm\AXEarningCodeGroup.xml               0

 

In short

Design/Controls/Filtergrp’ is missing child ‘Quick Filter

 

Something different then Dynamics Ax 2012. Yes, just right click on add a group and the add Quick Filter.

2016-10-18_20-37-22

 

pattern

 

No other property I found, After solution compiled without any error.

6 new courses for Dynamics 365 on Dynamics learning Portal

October 13, 2016 by alirazazaidi

Just open then dynamics learning portal, two new menus or classification found on top menu.

Dynamics 365 enterprise and Dynamics 365 Business.

interesting-new-courses

I found that Microsoft just upload 6 new courses for Dynamics Enterprise on Dynamics Learning Portal.

 

If you have time and passion and more importantly Dynamics Learning Portal access credentials, you must enjoy the 365 degree change in World of ERP.

operations

List of courses are as below.

80731AE: Architecture of Microsoft Dynamics 365 for Operations

80777AE: Monitoring and Diagnostic Tools in Microsoft Dynamics 365 for Operations

80794AE: Deploying and Servicing Environments in Microsoft Dynamics 365 for Operations by using LCS

80773AE: System Administration in Microsoft Dynamics 365 for Operations

80774AE: Managing Users and Security in Microsoft Dynamics 365 for Operations

80795AE: Managing Users and Security in Microsoft Dynamics 365 for Operations

 

 

 

Dynamics Ax 7 Vm configuration on Windows 8.1 and Windows 10 -Urdu -Hindi My video on Channel 9

October 10, 2016 by alirazazaidi

I created a video and posted on Channel 9 . It is my native language. There is sound quality problem, But I made it. This is my second video on Channel 9.

 

 

« Previous Page
Next Page »

Primary Sidebar

About

I am Dynamics AX/365 Finance and Operations consultant with years of implementation experience. I has helped several businesses implement and succeed with Dynamics AX/365 Finance and Operations. The goal of this website is to share insights, tips, and tricks to help end users and IT professionals.

Legal

Content published on this website are opinions, insights, tips, and tricks we have gained from years of Dynamics consulting and may not represent the opinions or views of any current or past employer. Any changes to an ERP system should be thoroughly tested before implementation.

Categories

  • Accounts Payable (2)
  • Advance Warehouse (2)
  • Asset Management (3)
  • Azure Functions (1)
  • Books (6)
  • Certification Guide (3)
  • Customization Tips for D365 for Finance and Operations (62)
  • D365OF (59)
  • Data Management (1)
  • database restore (1)
  • Dynamics 365 (58)
  • Dynamics 365 for finance and operations (135)
  • Dynamics 365 for Operations (165)
  • Dynamics AX (AX 7) (134)
  • Dynamics AX 2012 (274)
  • Dynamics Ax 2012 Forms (13)
  • Dynamics Ax 2012 functional side (16)
  • Dynamics Ax 2012 Reporting SSRS Reports. (31)
  • Dynamics Ax 2012 Technical Side (52)
  • Dynamics Ax 7 (65)
  • Exam MB-330: Microsoft Dynamics 365 Supply Chain Management (7)
  • Excel Addin (1)
  • Favorites (12)
  • Financial Modules (6)
  • Functional (8)
  • Implementations (1)
  • Lifecycle Services (1)
  • Logseq (4)
  • Management Reporter (1)
  • Microsoft Excel (4)
  • MS Dynamics Ax 7 (64)
  • MVP summit (1)
  • MVP summit 2016 (1)
  • New Dynamics Ax (19)
  • Non Defined (9)
  • Note taking Apps (2)
  • Obsidian (3)
  • Personal Knowledge Management (2)
  • PKM (13)
  • Power Platform (6)
  • Procurement (5)
  • procurement and sourcing (5)
  • Product Information Management (4)
  • Product Management (6)
  • Production Control D365 for Finance and Operations (10)
  • Sale Order Process (10)
  • Sale Order Processing (9)
  • Sales and Distribution (5)
  • Soft Skill (1)
  • Supply Chain Management D365 F&O (3)
  • Tips and tricks (278)
  • Uncategorized (165)
  • Upgrade (1)
  • Web Cast (7)
  • White papers (4)
  • X++ (7)

Copyright © 2025 · Magazine Pro On Genesis Framework · WordPress · Log in