Dynamics 365 Archives - Page 53 of 88 - - Page 53

Category Archives: Dynamics 365

Contract Invoice Schedule Status Change on Invoice Actions

Stages of Invoice Schedules are changed behind the scenes as you perform actions on the Invoice of the Contract. Let’s see what we have got here – So, when an Invoice Schedule is Ready for Invoicing, it will be considered in the Invoice you’ll end up creating. Now, if you create the Invoice for that Contract (shown below) The status now changes to Customer invoice created. And, when you mark that Invoice as Confirm, shown below – The Invoice schedule record’s Invoice Status will be changed to ‘Customer invoice posted’ Pretty straight forward!

Share Story :

Move Attachments from Tracked Email to SharePoint using Microsoft Flow

Introduction: Microsoft flows can be used to automate many workflows across multiple applications and services. This is basically designed for non-developers. To create a flow, the user specifies what action should take place when a specific event occurs. In this blog, we will have a look on how we can add the attachments from the emails that are tracked in Dynamics 365 CRM to SharePoint Systems included in Document Integration D365 App for Outlook SharePoint Dynamics CRM Online V9 Note: We have taken Opportunity tracked Emails for this example, you can work on any entity. Let’s start with the steps that should be undertaken to achieve the above requirement. Step 1: Create a blank Flow template. Choose the Dynamics 365 Connector and trigger as, “When a record is created”. Select your Organization Name, and the entity, in our case it is Email Messages. Step 2: Add condition to check whether the email is related to Opportunity and whether it has Status Reason as Received. By default, the condition you can specify is basic. Change in to Advance mode and add the below formula Formula used: @and ( equals(triggerBody()?[‘_regardingobjectid_type’], ‘opportunities’), equals(triggerBody()?[‘_statuscode_label’], ‘Received’) ) Step 3: For the true part of the condition, retrieve the Opportunity record to which the Email is tracked. The reason behind retrieving Opportunity Name is to create SharePoint Folders. Folders will be created on the format Topic_OPPORTUNITYGUID.   Step 4: Now let us retrieve all the Activity Mime Attachments associated with the Email Message that is created. There are two Attachments entities available for the selection. The first one is the Attachment entity The second one is the Activity Mime Attachment entity. Step 5: Retrieve Attachment related to the Activity Mime Attachment for the Body and File Name of the attachments. Now steps to check the presence of Document Location starts Step 6: Retrieve the Document Locations for the current opportunity record to see if there is an already defined path or not. Select “List Records” action and enter below fields Step 7: After retrieving the Document Location records, verify the length of the records in the collection. Formula used : length(body(‘Retrieve_Document_Locations’)?[‘value’]) Step 8: For the true part of the condition, follow the below steps: Step 8.1: Select connector as SharePoint and select Create file Action. Enter all the details listed below: 1) Site Address: The SharePoint Site Address 2) Folder Path: The path where the file need to be stored. i.e. /opportunity/Topic_ toUpper(replace(body(‘Get_record’)?[‘opportunityid’],’-‘,”)) For Example the folder Name will be : Topic_E608E808F4A1E811A977000D3A37051A 3) File Name: Name of the file 4) File Content: The attachment body Step 8.2: Delete the Attachment record from the Dynamics CRM Email message. Here you need to select the first option of Attachments from the list. Step 9: For the false part of the condition below are the steps you should follow: Step 9.1: Create a file in SharePoint. Refer Step 8.1 Step 9.2: Retrieve the Parent Document Location. This is needed as we are creating the document location by ourselves. Step 9.3: Create the Document Location record for the record that was just processed. Parent Site or Location: This is the GUID of the parent Doucument Location retrieved in Step 9.2 Relative URL formula: replace(replace(body(‘Create_file_3’)?[‘Path’],’/opportunity/’,”),concat(‘/’,body(‘Create_file_3’)?[‘Name’]),”) Step 10: Delete the Attachment record from the Dynamics CRM Email message. Here you need to select the first option of Attachments from the list. Now you can test by sending email and tracking to Opportunity in D365 App for Outlook in Dynamics CRM. Document will be uploaded to SharePoint with specified location.

Share Story :

Vendor Invoice Journal-Dynamics 365 Finance and Operations

Introduction: Vendor invoice journal helpful to post purchase invoices that are not associated with purchase orders. Examples of this type of invoice include expenses for supplies or services. Steps: Go to Accounts Payable > Invoices > Invoice journals Click on new button, select name of the journal and enter a description in description field. In the Date field, enter the posting date that will update General Ledger. Select Vendor account Specify invoice number in Invoice field. Enter Description in the field description In the Credit field, enter a number. In the Offset account field, enter the account number or click the drop down button to open the lookup Click on Validate to check the data are correct. Click on post to Post the Invoice

Share Story :

Create Fixed Asset Journal using X++

In this blog article, we will see how we can create Fixed Asset Journal using X++. Write below code to create Journal Header in LedgerJournalTable Table and Lines record in LedgerJournalTrans and LedgerJournalTrans_Asset Tables. public void createFixedAssetJournal()     {                LedgerJournalTable ledgerJournalTable;         LedgerJournalTrans ledgerJournalTrans;         LedgerJournalTrans_Asset ledgerJournalTrans_Asset;         Assettable assetTable;         ledgerJournalTable.initValue();         ledgerJournalTable.JournalNum   = JournalTableData::newTable(ledgerJournalTable).nextJournalId();         ledgerJournalTable.Posted       = NoYes::No;         ledgerJournalTable.JournalName  = ‘ACQUI’;         ledgerJournalTable.JournalType  = LedgerJournalType::Assets;         ledgerJournalTable.initFromLedgerJournalName(ledgerJournalTable.JournalName);         ledgerJournalTable.insert();          ledgerjournalTrans.initValue();         ledgerJournalTrans.CurrencyCode      = Ledger::accountingCurrency(CompanyInfo::find().RecId);         ledgerJournalTrans.AccountType       = LedgerJournalACType::FixedAssets;         ledgerJournalTrans.TransactionType   = LedgerTransType::FixedAssets;         ledgerJournalTrans.Approved          = NoYes::Yes;         ledgerJournalTrans.Approver          = HcmWorker::userId2Worker(curuserid());             ledgerJournalTrans.LineNum                              = LedgerJournalTrans::lastLineNum(ledgerJournalTrans.JournalNum) + 1;         ledgerJournalTrans.TransDate                            = DateTimeUtil::getSystemDate(DateTimeUtil::getUserPreferredTimeZone());         ledgerJournalTrans.LedgerDimension                      = LedgerDynamicAccountHelper::getDynamicAccountFromAccountNumber(AssetTable.AssetId,LedgerJournalACType::FixedAssets);                   ledgerJournalTrans.accountName();                ledgerJournalTrans.AmountCurDebit                       = ’45’;         ledgerJournalTrans.OffsetAccountType                    = LedgerJournalACType::Ledger;         ledgerJournalTrans.OffsetLedgerDimension                = ledgerJournalTrans.getOffsetLedgerDimensionForLedgerType(AssetLedgerAccounts::assetOffsetLedgerDimension(AssetTable.AssetId, AssetTable.assetBookCurrent().BookId, AssetTransType::Acquisition),curExt());         ledgerJournalTrans.insert();         ledgerJournalTrans_Asset.initValue();         ledgerJournalTrans_Asset.RefRecId                       = ledgerJournalTrans.RecId;         ledgerJournalTrans_Asset.AssetId                        = assetTable.assetId;         ledgerJournalTrans_Asset.TransType                      = AssetTransTypeJournal::Acquisition;         ledgerJournalTrans_Asset.BookId                         = AssetTable.assetBookCurrent().BookId;         ledgerJournalTrans_asset.insert();         ttsbegin;         LedgerJournalTable.selectForUpdate(true);         LedgerJournalTable.numOfLines = LedgerJournalTable.numOfLines();         LedgerJournalTable.update();         ttscommit; }

Share Story :

New D365 Admin portal and new way to access Organization Insights

Introduction: Lot of D365 Administrators would have observed that we no longer see the Organization Insights solution on AppSource anymore. This is because you can now see the Organization Insights on the new Administration portal for D365. New D365 Admin Portal! There is new portal for D365 Administration which is in preview. You will see the option to go to new D365 Admin Portal from the Current Admin portal screen. Administrators can also access the portal from the URL: https://admin.powerplatform.microsoft.com The new portal is also called as the Power Platform since it now includes Administration of your Power Apps and CDS as well. You can manage the environments, do the analytics and lot more things. I am expecting this Portal will be upgraded and will have lot more features in future.

Share Story :

Create Fixed Asset using X++

In this blog article, we will see how we can create a Fixed Asset using code based on AssetGroupID. Add below code in class to create a Fixed Asset, public void createFixedAsset(AssetGroupId assetGroupId) {         AssetTable assetTable;         NumberSeq numberSeq;         assetTable.initValue();         assetTable.assetGroup = AssetGroupId;         //Initialize Number Seq for Asset Id         numberSeq = assetTable.initAssetNumberSeq(assetTable.Assetgroup);         AssetTable.AssetId = NumberSeq.num();           //Initialize other fields based on Asset Group assetTable.initFromAssetGroupId(assetTable.Assetgroup);         //Initialize name and Name Alias fron Item Id         assetTable.Name = InventTable::find(‘ITM1104’).itemName();         assetTable.NameAlias = assetTable.Name;         //Validate and Insert Fixed Asset. On insertion asset book is also created         assetTable.validateWrite();         assetTable.insert();     }

Share Story :

Resolve “The Team member position has already been filled” error

Introduction: You might receive alert “The Team member position has already been filled” while submitting a request for an actual resource. Description: I was working on a project and we use PSA solution for resource management. Some Team Members was already added in project with “Generic Resource” and we wanted to replace resource with actual team member. But whenever I try to submit Resource request in PSA in “Project Team Member” I Receive alert message with “The Team member position has already been filled“. Solution: When you are adding a Project Team Member, are you choosing “Generic Resource” on Bookable Resource lookup for that team member? When you do this, you’re setting a Bookable Resource to team and thus can’t request for one anymore. When adding a Project Team Member, leave the Bookable Resource lookup unpopulated. This way a Bookable Resource is not assigned on the project team and you can submit a request against the created generic. When adding the Architect (Role), I have chosen Generic Demo Resource in the Bookable Resource lookup on the Quick Create. When adding the Consultant, I have left the Bookable Resource lookup unpopulated. Conclusion: So, this can be avoided if you are adding Resource from “Project Team member Associated view”.

Share Story :

D365 Unified Interface: Enabling embedded legacy dialogs

Introduction: Quite simply put, some of the embedded dialogs like the Advanced Find, Merge Records, Assign & Edit record windows which are not by default visible on the Unified Client Like when you multi-select records, you can’t see the typical Merge, Edit buttons on the ribbon. Here’s how you enable them. System Settings: In your Web Application’s system settings, you have an option under general where you can enable these buttons in the Unified Interface. Now, you can retain those buttons in the Unified Interface as well. Have a great time exploring Unified Interface!

Share Story :

Activate Order button is not working on Order Entity in UCI

Posted On October 10, 2018 by Admin Posted in

Introduction: This blog explains an alternative approach to Activate an Order in UCI. Scenario: We are using Prospect to Cash solution to integrate Sales Order from Sales to Operations (CRM To Operations). In UCI Activate Order button is not working which is used for Order Integration. In this blog we will see an alternative approach to achieve this. Pre-Requisites:    D365 Sales    Microsoft Flow Steps to be followed: Dynamics 365 – 1. Create Custom “Activate Order” button in UCI. 2. Add below JavaScript code which will trigger on Click of “Activate Order” Button. (This code will take the Order Guid and pass it to the http post request) Refer this blog to understand more about HTTP Post Request using Microsoft Flows: https://www.cloudfronts.com/http-post-requests-using-microsoft-flows/ // JavaScript source code CallMSFlowsToActivateOrder: function () { var entityGuid = Xrm.Page.data.entity.getId(); entityGuid = entityGuid.replace(“{“, “”).replace(“}”, “”); var data = JSON.stringify({ “OrderID”: entityGuid }); var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener(“readystatechange”, function () { if (this.readyState === 4) { console.log(this.responseText); } }); var xhr = new XMLHttpRequest(); xhr.open(“POST”, “URL Created From MS Flow”, true); xhr.setRequestHeader(‘Content-Type’, ‘application/json’); xhr.send(JSON.stringify({ “OrderID”: entityGuid })); } Microsoft Flow: 1. Create Flow from Blank. 2. Select the Http request is received trigger. 3. Add below in Request body JSON Schema 4. Add Get Record Trigger of Dynamics 365. In Item identifier pass the OrderId from the Dynamic Content. 5. List all related Sales Order Product of that Order. 6. Add apply to each control and update the value of Order is Active field. 7. Update the Processing state field of Order entity. Overall Flow:

Share Story :

Run Report in UCI Form for Web Browser

Introduction: This blog details steps for Run Report button in UCI Form via Web Browser in D365 Sales. Scenario: Client requires Run Report button in UCI Form for Order Entity in D365 Sales Steps: Below are steps to be performed for enabling Report button on Order Entity Create WebResource with below javascript function. Create a button on Form and call function “PrintSalesOrderDetails”. Conclusion: Hope this blog helps you to run report in UCI browser.

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange