Customization Tips for D365 for Finance and Operations
Dynamics 365 Finance and Operation 10.0.24 vhd available for download
How to configure Excel Add in D365 Finance and Operations
I recorded how to configure Excel Addin for D365 finance and operations.
How to configure Power BI out of the box dashboard on local VM Dynamics 365 for Finance and Operations
Hi friends, here is video, which I recording during configuring Dynamics 365 Finance and operations out of the box dashboard on local VM. My session is held on Urdu Hindi User group on 1 August. For this I need to configure it. During development we need to configure these dashboards and some times we need to extend these dashboard. Hope this video will helpful to you.
How hide SSRS Parameter RDP Menu Name Dynamics 365 Finance and Operations
Again documentation
class XYZUIBuilder extends SrsReportDataContractUIBuilder
{
public void build()
{
RecId hcmWorkerRecId;
str name, menuItemName;
FormBuildGroupControl grp;
//Dialog dialogLocal = this.dialog();
XYZDC rdpContract = this.dataContractObject();
DialogField workerfieldDiff;
DialogField _FromDate,_Todate;
// Add the pay cycle field.
menuItemName = this.controller().parmArgs().menuItemName();
workerfieldDiff = this.addDialogField(methodStr(XYZDC ,parmworkerrecid),rdpContract);
// hcmWorkerRecId = HcmWorker::userId2Worker(curUserId());
if (menuItemName =="ESSReport")
{
workerfieldDiff.visible(false);
workerfieldDiff.value(0);
}
_FromDate= this.addDialogField(methodStr(BEKenyaP9DC,parmFromDate),rdpContract);
_Todate = this.addDialogField(methodStr(BEKenyaP9DC,parmToDate),rdpContract);
}
}
How to create a legal Entity In Dynamics 365 for finance and Operations.
Hi Everyone, Welcome to this session. In this session, going to create a legal Entity.
Legal Entity creation is very simple.
Before that we go let’s discuss what a legal entity is.
•A legal entity is an organization that has a registered or legislated legal structure.
•They have to go into a legal contract with another organization and are required to prepare reports on their performance.
•In D365 Country/region is the most important factor while creating a new legal entity. All localization in Dynamics 365 for finance and operations depend on Country and region. It activates with respect to selection of Region.
•Form inquiries, reports enable disabled with respect to region or country selection.
Every legal entity is associated with Company Id, which is 4 character value. Once it created can not be modify. Rest of things we can modify.
Indentation short cut keys Dynamics 365 for finance and operations Visual Studio
D365 finance and operations used Visual studio as development environment. Yes I know that is old story, whats new here. I just document here, Just document not create.
I faced problem to indent code in visual studio. I found following keyboard command
CTRL+K and after CTRL+D
How to restore a Production database to the DevBox environment Dynamics 365 For Finance and Operations
This blog post is for my notes, you can find more details on Microsoft link.
There are some extra steps in the Microsoft link, which I never used. I usually follow only these steps and it works for me. So Instead I need to search on Microsoft link. I wrote this post for my future use.
Step 1: You have to restore production database to UAT and then from uat to export it to Asset library
Step 2: Download Backpac file in specific location
Step 3: Open Command prompt with run as administrator for locally hosted VM and go to following location
Cd C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin
Step 4: run the following command
SqlPackage.exe /a:import /sf:D:\Exportedbacpac\my.bacpac /tsn:localhost /tdn:<target database name> /p:CommandTimeout=1200
I modified the above statement as
SqlPackage.exe /a:import /sf:C:\Temp\hsauatbackup.bacpac /tsn:localhost /tdn:AxDb_6 /p:CommandTimeout=1200
Step 5: run the following command.
After the database is restored. Run the following command in SQL Server management
CREATE USER axdeployuser FROM LOGIN axdeployuser
EXEC sp_addrolemember 'db_owner', 'axdeployuser'
CREATE USER axdbadmin FROM LOGIN axdbadmin
EXEC sp_addrolemember 'db_owner', 'axdbadmin'
CREATE USER axmrruntimeuser FROM LOGIN axmrruntimeuser
EXEC sp_addrolemember 'db_datareader', 'axmrruntimeuser'
EXEC sp_addrolemember 'db_datawriter', 'axmrruntimeuser'
CREATE USER axretaildatasyncuser FROM LOGIN axretaildatasyncuser
EXEC sp_addrolemember 'DataSyncUsersRole', 'axretaildatasyncuser'
CREATE USER axretailruntimeuser FROM LOGIN axretailruntimeuser
EXEC sp_addrolemember 'UsersRole', 'axretailruntimeuser'
EXEC sp_addrolemember 'ReportUsersRole', 'axretailruntimeuser'
CREATE USER axdeployextuser FROM LOGIN axdeployextuser
EXEC sp_addrolemember 'DeployExtensibilityRole', 'axdeployextuser'
CREATE USER [NT AUTHORITY\NETWORK SERVICE] FROM LOGIN [NT AUTHORITY\NETWORK SERVICE]
EXEC sp_addrolemember 'db_owner', 'NT AUTHORITY\NETWORK SERVICE'
UPDATE T1
SET T1.storageproviderid = 0
, T1.accessinformation = ''
, T1.modifiedby = 'Admin'
, T1.modifieddatetime = getdate()
FROM docuvalue T1
WHERE T1.storageproviderid = 1 --Azure storage
DROP PROCEDURE IF EXISTS SP_ConfigureTablesForChangeTracking
DROP PROCEDURE IF EXISTS SP_ConfigureTablesForChangeTracking_V2
GO
-- Begin Refresh Retail FullText Catalogs
DECLARE @RFTXNAME NVARCHAR(MAX);
DECLARE @RFTXSQL NVARCHAR(MAX);
DECLARE retail_ftx CURSOR FOR
SELECT OBJECT_SCHEMA_NAME(object_id) + '.' + OBJECT_NAME(object_id) fullname FROM SYS.FULLTEXT_INDEXES
WHERE FULLTEXT_CATALOG_ID = (SELECT TOP 1 FULLTEXT_CATALOG_ID FROM SYS.FULLTEXT_CATALOGS WHERE NAME = 'COMMERCEFULLTEXTCATALOG');
OPEN retail_ftx;
FETCH NEXT FROM retail_ftx INTO @RFTXNAME;
BEGIN TRY
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Refreshing Full Text Index ' + @RFTXNAME;
EXEC SP_FULLTEXT_TABLE @RFTXNAME, 'activate';
SET @RFTXSQL = 'ALTER FULLTEXT INDEX ON ' + @RFTXNAME + ' START FULL POPULATION';
EXEC SP_EXECUTESQL @RFTXSQL;
FETCH NEXT FROM retail_ftx INTO @RFTXNAME;
END
END TRY
BEGIN CATCH
PRINT error_message()
END CATCH
CLOSE retail_ftx;
DEALLOCATE retail_ftx;
Delete the AXDB. Create backup.
Rename current database to AXDB
How to enabled document attached on processed records Dynamics 365 for finance and operations
In many cases, document attachment disabled on processed records. Usually this happened with respect to business requirements. For example when Purchased order invoiced and settled in ledger, attachment add, edit and delete can be disabled. Only existing attachment can be view on these documents.But some cases we have to forcefully enabled document attachment on these processed records.
I used following code snippet to enable the document attachment.
/ <param name="args"></param>
[PostHandlerFor(formStr(DocuView), formMethodStr(DocuView, setEnabled))]
public static void DocuView_Post_setEnabled(XppPrePostArgs args)
{
FormRun formRun;
//= sender;
formRun =Args.getThis();
formrun.design().controlName("ctrlAdd").enabled(true);
FormDataSource DocuRef_DS =formRun.dataSource("DocuRef");
DocuRef_DS.allowEdit(true);
DocuRef_DS.allowCreate(true);
DocuRef_DS.allowDelete(true);
}
Custom lookup UIBuilder SSRS RDP Dynamics 365 for finance and operations
Hi, Today I have simple code snippet to create a custom lookup in SSRS Reports in Dynamics 365 for finance and operations.
public class MyUIBuilder extends SrsReportDataContractUIBuilder
{
private DialogField vendordf,dialogbranch;
MyDC contract;
public void postBuild()
{
super();
contract = this.dataContractObject();
// binding dialogs with contract fields
vendordf = this.bindInfo().getDialogField(this.dataContractObject(),
methodStr(MyDC, parmHcmPerfPeriodId));
dialogbranch = this.bindInfo().getDialogField(this.dataContractObject(),
methodStr(MyDC, parmOMOperatingUnitNumber));
dialogbranch.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(BEHCMReviewUIBuilder,divisionCodeLookup),this);
vendordf.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(BEHCMReviewUIBuilder,PerfPeriodIdLookup),this);
}
public void postRun()
{
}
private void PerfPeriodIdLookup(FormStringControl divisionCodeLookup)
{
Query query = new Query();
QueryBuildDataSource qbd, qbdPerson;
QueryBuildDataSource qbds;
QueryBuildDataSource qbdsJoin;
SysTableLookup sysTableLookup = sysTableLookup::newParameters(tableNum(HcmPerfPeriod), divisionCodeLookup);
qbds= query.addDataSource(tableNum(HcmPerfPeriod));
sysTableLookup.parmQuery(query);
sysTableLookup.addLookupfield(fieldNum(HcmPerfPeriod, PerfPeriodId), true);
sysTableLookup.parmQuery(query);
sysTableLookup.parmUseLookupValue(False);
sysTableLookup.performFormLookup();
}
private void divisionCodeLookup(FormStringControl divisionCodeLookup)
{
Query query;
QueryBuildDataSource qbds,qbds1;
SysTableLookup sysTableLookup;
DimensionAttribute dimAttr;
;
sysTableLookup = SysTableLookup::newParameters(tablenum(OMOperatingUnit),divisionCodeLookup);
sysTableLookup.addLookupfield(fieldnum(OMOperatingUnit, OmoperatingunitNumber));
sysTableLookup.addLookupfield(fieldNum(OMOperatingUnit,Name));
query = new Query();
qbds = query.addDataSource(tableNum(OMOperatingUnit));
qbds.addRange(fieldNum(OMOperatingUnit, OMOperatingUnitType)).value(queryvalue(OMOperatingUnitType::OMDepartment));
sysTableLookup.parmQuery(query);
sysTableLookup.parmUseLookupValue(False);
sysTableLookup.performFormLookup();
}
}