Archive

Posts Tagged ‘ADX’

ADX Portals 7.x – ‘Page_Validators’ is undefined

Other day, while adding a custom validator using JScript on an Entity Form, I was getting ‘Page_Validators’ is undefined error, at below line of code.

// Add the custom validator to Web Page’s validators array
Page_Validators.push(spouseValidator);

Reason:

  • The dynamics CRM form, associated to the ADX Entity Form, does’t have any required field, hence ‘Page_Validators’ array is NULL as ADX did’t need to load any validators.

Fix:

  • ‘Page_Validators’ is a validator collection and we dont have control over this.
  • Below workaround worked for us:
    • Make one of the field as ‘Required’ by adding ‘Entity Form Metadata’. ADX instantiates ‘Page_Validators’ array, as there is Required field now.
    • You can make the field as Non-required in the JScript.

Metadata_1

Note:

  • This behavior is fixed in further versions of ADX and Dynamics Portals.

🙂

 

 

ADX/Dynamics Portals Issue – Missing Entity ‘Tab’ in ‘Web Form Step’

We have ADX portal 7.0 solution installed on our Dynamics 365 8.2 application. We got a requirement to create a Web Form steps on a Custom Entity ‘Employee’.

‘Employee’ entity has an OOB ‘Information’ of ‘Form Type’ Main, with a tab named ‘Personal Details’.

PWF_1

Issue:

  • While adding a Web Form step, there was no ‘Personal Details’ tab and could get only ‘general’ tab.
  • In the new ‘WEB FORM STEP’, select the ‘Form Name’

PWF_2

  • In the ‘Tab Name’ drop down, there is no ‘Personal Details’ tab and all it had was ‘general’ tab.

PWF_3

Reason:

  • As there were 2 OOB forms (i.e., Form Type ‘Main’, ‘Mobile – Express’) with the same name ‘Information’, ADX solution always picking ‘Mobile – Express‘ form which had a tab ‘general’

Fix:

  • Renamed ‘Information’ Main form to ‘Employee’.

PWF_4

  • Publish the solution
  • Refresh the ‘Web Form Step’ and you should see ‘Personal Details’ tab once you select the ‘Employee’ form.

PWF_5

🙂

Categories: ADX, Dynamics 365 Tags: , ,

ADX/Dynamics Portals – Date field custom validation using JScript

April 6, 2019 1 comment

Other day, In one of our Portal Web Form step, we got a requirement to validate ‘Date Of Birth’ where the value should not be  the future date.

We can achieve this by adding a custom validator using JScript and register in your ‘Web Form Step’.

Below is the JScript code snippet which you need to paste in your Web Form Step’s ‘Custom JavaScript’ control.

DOB_Validator_1

Note:

  • In below script replace the ‘new_dateofbirth’ with your field’s schema name.
  • ‘new_dateofbirth_label‘ is the label of the DOB field on your Web Form Step.

$(document).ready(function () {
try{
if (typeof (Page_Validators) == ‘undefined’) return;
// Create new DOB validator
var dobValidator = document.createElement(‘span’);
dobValidator.style.display = “none”;
dobValidator.id = “dobValidator”;
dobValidator.controltovalidate = “new_dateofbirth”;
dobValidator.errormessage = “<a href=’#new_dateofbirth_label’>Date of birth should be in past.</a>”;
dobValidator.validationGroup = “”;
dobValidator.initialvalue = “”;
dobValidator.evaluationfunction = function () {
var dobValue = $(“#new_dateofbirth”).val();
var dob=new Date(dobValue);
var today = new Date();
if (dob > today) {
return false;
}
return true;
};
// Add the dobValidator to Web Page’s validators array
Page_Validators.push(dobValidator);
// Attach event handler of the validation summary link
$(“a[href=’#new_dateofbirth_label’]”).on(“click”, function () {  scrollToAndFocus(‘new_dateofbirth_label’,’new_dateofbirth’);

});
}
catch(e)
{
alert(“Error during DOB validation  – “+e.description);
}
});

  • Save the Web Form Step and test in portal.
  • If you try to save DOB with future date. It shows warning in the banner as below:

DOB_Validator_2

  • Click on the message and it will take you to the DOB control.

Refer my other article to get familiar with Portal syntax’s.

🙂

 

 

Dynamics Portals – Entity List – Configure custom view names

February 16, 2019 Leave a comment

With the Dynamics Portals ‘Entity List’, its easy and seamless to port the Dynamics entity views to Portal.

In below screen, I configured ‘Active Contacts’ and ‘Inactive Contacts’ views in my Entity List and if you notice, the view names are defaulted to Dynamics view names (i.e.,Active Contacts, Inactive Contacts)

Portal_EL_1

What if we have to show custom labels for views in portal? its simple

  • Open ‘Entity List’ form from your Dynamics application
  • Views -> Advance settings
  • Set your desired text in ‘Display Name’ field

Portal_EL_2

  • Save
  • Go to Portal and refresh the Entity list web page

Portal_EL_3

🙂

 

Dynamics Portals – SaaS – Refer helper files in Web Templates

In my portal, I got a requirement to build a ‘Search Screen’, which pulls the data from CRM and render the results.

To achieve this, I configured a ‘Web Template’ with ‘Search Screen’ using HTML and decided to use Data Tables  table control to bind the results.

The challenge is, to use ‘Data Table’ control, I must refer the helper files (i.e., datatable.min.js, jquery.datatable.css) in my ‘Search Screen’ Web Template.

One way to solve is to copy the content from the helper files (i.e., datatable.min.js, jquery.datatable.css) and paste within the Web Template. This is a crude way as the single Web Template size enormously grows and would become unmanageable.

Optimal way:

  • Create a separate Web Templates for Helper files (i.e., datatable.min.js, jquery.datatable.css)
  • Make sure you wrap the script file’s content in <script> tag, while pasting to Web Template.

WT - JS

  • Make sure you wrap the style sheet (i.e., css) files content in <style> tag, while pasting to Web Template.

WT - CSS

  • Refer the helper file Web Templates in the ‘Search Screen’ Web Template.
    • Syntax is {% include ‘Your helper file Web Template Name‘ %} 

Refer files 3

Notes:

  • Using Web  Files is one approach but you cannot attach JScript file to your Web File as the .js file extension is restricted.

🙂

Dynamics Portals – How to get the configured Portal’s URL

December 19, 2017 1 comment

There was a question posted in my blog on how to get the configured Portal’s URL as someone else configured the portal.

Below are the steps to get your Portal URL.

From your Dynamics 365 Instance:

  • Connect to your Dynamics 365 instance
  • Navigate to Portals -> Website Bindings
  • Open the record and read the URL from “Site Name” field

Portal - URL 3

From your Dynamics 365 Admin Center:

  • Connect to your “Dynamics 365 Admin Center” (i.e., Login to Portal.office.com)
  • Select your “Dynamics 365” instance
  • Click on “Applications” tab
  • Select “Portal Add-on” and click “MANAGE” button

Portal - URL 1

  • You would be redirected to “Portal” configuration page
  • Copy the URL

Portal - URL 2

Note:  You can access your Portal configurations page, only if your Admin granted access to your login Account. If you don’t have permission, you would end up getting below error message:

You don’t have permission to perform this action. Contact your global administrator to get owner permission for Application ID

🙂

Categories: ADX, CRM Tags: , ,

Dynamics 365 Portal – Troubleshoot errors hosted in Azure

September 3, 2017 Leave a comment

Recently we got internal server error while we were accessing Portal hosted in Azure.

Microsoft Azure is providing simple and quick way to troubleshoot the errors.

There are few options to troubleshoot like ‘Log Stream’ and ‘Diagnostic Dumps’. In this Article, I am going to show how to use them.

Pre-requisite:

  • Connect to your Azure account and open the Web App from ‘App Services’
  • Make sure you enable “Application Logging” from ‘Diagnostics logs’ section

Azure - Diagnostics logs

Log Stream:

  • ‘Log Stream’ is helpful to track the ongoing exceptions and track the live Request and Response.

Azure - Log Stream

Diagnostic Dump:

  • Connect to KUDU services by clicking on ‘Advanced Tools –> Go’

Azure - Connect to KUDU Service

  • Click on Tools –> Diagnostic Dump

Azure KUDU - Diagnostic Dump

  • Download and extract the .zip folder
  • Go to ‘LogFiles’

Diagnostic Dump - Eventlog

  • Open the ‘eventlog.xml’ using any file editor

Diagnostic Dump - Open Eventlog

‘Application Insights’ is another option which helps you detect and diagnose quality issues in your web apps and web services.

🙂

ADX Portal – Configure views to fetch Logged In Partner owned records

As we know, ADX portal would be accessed by external Partners and they get created as Contacts in the CRM. 

We got a requirement to configure “My Opportunities” view in Portal to show the Opportunities owned by logged in Partner. 

In CRM, this type of requirement is straight forward as the filter will be “Opportunity.owner=Logged in User”

How to configure similar view in Portal, as the Partner will be ‘Contact’? 

When you Install/Enable Portal solution in CRM,

  • It creates below Contact records. 

  • Also it adds a new field “Partner Owner’ (i.e., msa_partneroppid) in all OOB entities.

To configure ‘My Opportunities’ view in ADX: 

  • Choose ‘Portal Customer’ as filter criteria. This would be replaced with logged in partner.

  • Create the view and configure as ‘Entity List’ and publish to ADX.

🙂

Categories: ADX Tags: , ,

The specified organization already has an active Website Binding for this site – Dynamics 365 Portals

We have 2 Portal solutions (i.e., Partner Portal and Custom Portal) enabled in our CRM organization and when I tried to configure ‘Custom Portal’ in a Web App, I could not, as the “Adxstudio Portals Website” drop down was disabled and defaulted to ‘Partner Portal’.

Active Website Binding

Reason:

  • ‘Partner Portal’ solution configured first, and it created a record in ‘Website Bindings’.
  • As design, portals defaults to ‘Partner Portal’ solution, if there was an active Website Binding.

Fix:

  • Go to the ‘Website Bindings’ in CRM, by navigating to “Advance Find -> Website Bindings”.

Website Bindings

  • Delete the website binding record

🙂

ADX Web Site Compilation Error – The type ‘System.Object’ is defined in an assembly that is not referenced.

Recently while compiling my ADX web site, I was getting below compilation exception from all my .ascx (Views) files.

Compiler Error Message: CS0012: The type ‘System.Object’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’

Issue was bit strange as I already had “System.Runtime’ dll referred in the website

Fix:

  • Open the Web.config file and add below tag inside the <compilation> tag

<assemblies>

<add assembly=”System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />

</assemblies>

  • Your <compilation> tag should look as below

<compilation debug=”true” targetFramework=”4.5″>

<assemblies>

<add assembly=”System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />

</assemblies>

</compilation>

Note:

  • If your <compilation> tag already had <add assembly=”…”> tags, add only <add assembly=”System.Runtime…> tag to the existing tags.

🙂

Categories: ADX, CRM, Uncategorized Tags: ,