[Sitemap] Sitemap not getting configured
Thu Jun 21, 2018 2:46 pmAdmin
Nếu bạn nhận được thông báo lỗi The customized site map could not be used because it is configured incorrectly. The default site map has been applied instead. To resolve this issue, repair the customized site map and import it again.

Mở XRM Toolbox, cài SiteMap Editor, chọn Load Sitemap, tìm và xóa các chỗ có 2 title, nếu là 1066 và 1033 thì không sao nhưng 2 cái trùng 1033 (hoặc số khác) thì xóa 1 trong 2.

Thắng Trương - Dynamics 365 123123123123123123123
[Javascript] Kiểm tra các role của tài khoản
Tue Jun 12, 2018 4:13 pmAdmin
Code:
function _checkRoles() {
    var _getUserRoles = Xrm.Page.context.getUserRoles();
    _getUserRoles.forEach(function (item) {
        var req = new XMLHttpRequest();
        var clientUrl = Xrm.Page.context.getClientUrl();
        var _getUrlUserRoles = clientUrl + "/api/data/v9.0/roles(" + item + ")";
        req.open("GET", encodeURI(_getUrlUserRoles), true);
        req.setRequestHeader("Accept", "application/json");
        req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
        req.setRequestHeader("OData-MaxVersion", "4.0");
        req.setRequestHeader("OData-Version", "4.0");
        req.setRequestHeader("Access-Control-Allow-Origin", "*");
        req.onreadystatechange = function () {
    …
[Javascript] Nhập field phuongxa, xuất field quận huyện, tỉnh thành, quốc gia đã lookup từ trước
Mon Jun 11, 2018 10:06 amAdmin
Code:
/******************************************************************************************
VERSION     KEY                 NAME            DESCRIPTION
---------    ------------         -------------  --------------------
08062018                    ThangTCQ      Filter Địa chỉ theo quốc gia, tỉnh thành, quận huyện, phường xã, số nhà
******************************************************************************************/

function KhachhangDoanhnghiep_setDiachi() {
    /*Input: quốc gia, tỉnh thành, quận huyện, phường xã, số nhà
    Output: địa chỉ*/
    if (Xrm.Page.getAttribute("new_quocgia").getValue() != null) {
        var quocgia = Xrm.Page.getAttribute("new_quocgia").getValue()[0].name;
    } else if (Xrm.Page.getAttribute("new_tinhthanh").getValue() == null) {
        var quocgia = "";
    }

    if …
[Action] Javascript gọi action tăng số tự động
Fri Jun 15, 2018 11:14 amAdmin
Trước khi bắt đầu, các bạn phải có các đoạn code sau:

C# (Mở visual studio, tạo library class, nhớ add thư viện Xrm.Sdk bằng nuget hay reference cũng được, rồi tạo 1 class add code vào)

Code:
using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;

namespace ClassLibrary1
{
    public class Class1 : IPlugin
    {
        public void Execute(IServiceProvider serviceProvider)
        {
            ITracingService tracer = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = …
[Ribbon] Tạo button
Fri Jun 15, 2018 11:17 amAdmin
Thắng Trương - Dynamics 365 10c27c1183f9478d4

Thắng Trương - Dynamics 365 288e81ab8cf4a61c2

Thắng Trương - Dynamics 365 3f37acd68e8f8ede8
[Javascript] Thanh thông báo trạng thái
Tue Jun 12, 2018 4:26 pmAdmin
Code:
Xrm.Page.ui.setFormNotification("Success.", "INFO", "convertResult");
[Javascript] Check Email validate
Mon Jun 11, 2018 4:37 pmAdmin
Code:
function checkEmail() {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(Xrm.Page.getAttribute("emailaddress1").getValue())) {
        alert("Bạn nhập đúng rồi đó!");
        Xrm.Page.getAttribute("emailaddress1").setValue("");
    } else {
        alert("Bạn nhập sai định dạng rồi!");
    }
}
[HTML] Button Hide Show
Mon Jun 11, 2018 2:15 pmAdmin
Code:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
#myDIV {
    width: 100%;
    padding: 50px 0;
    text-align: center;
    background-color: lightblue;
    margin-top: 20px;
}
</style>
</head>
<body>

<p>Click the "Try it" button to toggle between hiding and showing the DIV element:</p>

<button onclick="myFunction()">Try it</button>

<div id="myDIV">
This is my DIV element.
</div>

<p><b>Note:</b> The element will not take up any space when the display property set to "none".</p>

<script>
function myFunction() {
    var x = document.getElementById("myDIV");
    if (x.style.display === "none") {
        x.style.display = "block";
  …
[Javascript] Khóa tất cả các field trên forum
Mon Jun 11, 2018 2:02 pmAdmin
Code:
Xrm.Page.ui.controls.forEach(function (control, i) {
                if (control && control.getDisabled && !control.getDisabled()) {
                    control.setDisabled(true);
                }
            });
[Javascript] Hàm kiểm tra xem form Create hay Update
Mon Jun 11, 2018 2:00 pmAdmin
Code:
Xrm.Page.ui.getFormType()


Giá trị trả về là 1 nếu là form Create, là 2 nếu là form Update
[Ứng dung] Sử dụng Alert.js cho alert Javascript
Mon Jun 11, 2018 10:10 amAdmin
[Form] Nhập quận huyện lookup field tới phường xã (filter)
Fri Jun 08, 2018 1:33 pmAdmin
Input: Quận huyện gồm quận 6 và quận 12, quận 6 có phường 01, quận 12 có phường An Phú Đông.

Output: Chọn quận 6, phường xã filter phường 01, chọn quận 12, phường xã filter phường An Phú Đông

Thắng Trương - Dynamics 365 12312312312312
[Javascript] Cộng chuỗi từ lookup field
Fri Jun 08, 2018 11:18 amAdmin
Input: số nhà (string), quốc gia (lookup), tỉnh thành (lookup), quận huyện (lookup), phường xã (lookup).

Output: địa chỉ (string)

Code:
function KhachhangDoanhnghiep_Diachi()
{
    var quocgia = Xrm.Page.getAttribute("new_quocgia").getValue()[0].name;

    if (Xrm.Page.getAttribute("new_tinhthanh").getValue() != null)
    {
        var tinhthanh = Xrm.Page.getAttribute("new_tinhthanh").getValue()[0].name + ", ";
    }
    else if (Xrm.Page.getAttribute("new_tinhthanh").getValue() == null)
    {
        var tinhthanh = "";
    }

    if (Xrm.Page.getAttribute("new_quanhuyen").getValue() != null)
    {
        var quanhuyen = Xrm.Page.getAttribute("new_quanhuyen").getValue()[0].name + ", ";
    }
  …
[Workflow] Nhập ngày sinh, xuất tuổi
Fri May 25, 2018 9:17 amAdmin
Mở Visual Studio lên, chọn File > New > Project


Thắng Trương - Dynamics 365 Picture1



Trong cửa sổ New Project, chọn Installed > Visual C# > Workflow > Activity Library


Thắng Trương - Dynamics 365 Picture2
Ở thời điểm tôi viết bài hướng dẫn này, framework nên sử dụng là 4.5.2.



Chuột phải vào Project > Manage NuGet Packages… > Cài các packages sau:


Code:
Microsoft.Xrm.Sdk.2016
Microsoft.CrmSdk.Workflow



Thắng Trương - Dynamics 365 Picture3
Ở thời điểm tôi viết bài hướng dẫn này, Microsoft.Xrm.Sdk phiên bản 2016
Phiên bản Microsoft.CrmSdk.Workflow nên gần với Microsoft.Xrm.Sdk, ví dụ, cùng là 8.x



Chuột phải vào Project > Add > Class…


Thắng Trương - Dynamics 365 Picture4
Ở đây, tôi đặt tên class là Workflow



Thay đổi toàn bộ code thành:


Code:
using System;
using Microsoft.Xrm.Sdk;
using System.Activities;
using …
[Javascript] Gán ngày tháng năm cho field
Sun May 20, 2018 4:45 pmAdmin
Code:
function ngaybatdau() {
    var b = window.parent.Xrm.Page.getAttribute("ngaybatdau").getValue();
    b.setDate(1);
    window.parent.Xrm.Page.getAttribute("ngaybatdau").setValue(b);
}

function ngayketthuc() {
    var y = window.parent.Xrm.Page.getAttribute("ngayketthuc").getValue().getFullYear();
    var m = window.parent.Xrm.Page.getAttribute("ngayketthuc").getValue().getMonth() + 1;
    var c = new Date(y, m, 0);
    window.parent.Xrm.Page.getAttribute("ngayketthuc").setValue(c);
}
[Javascript] Lấy ngày tháng hiện tại
Sun May 20, 2018 4:45 pmAdmin
Code:
function myFunction() {
    var getYearCurrent = new Date().getFullYear();
    var getMonthCurrent = new Date().getMonth();
    var getDateCurrent = new Date().getDate();
}
[HTML] Bói thầy phán
Sun May 20, 2018 4:43 pmAdmin
Code:
<html>

<head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
</head>

<body style="word-wrap: break-word;">
    <div class="container">
        <input …
[HTML] Lấy số ngẫu nhiên
Sun May 20, 2018 4:43 pmAdmin
Code:
<!DOCTYPE html>
<html>
<body>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
    var x = Math.floor((Math.random() * 10) + 1);
    if (x == 1)
    {
    document.getElementById("demo").innerHTML = "NGƯỜI CẦU TOÀN";
    }
    if (x == 2)
    {
    document.getElementById("demo").innerHTML = "NGƯỜI GIÚP ĐỠ";
    }
    if (x == 3)
    {
    document.getElementById("demo").innerHTML = "NGƯỜI CẦU TIẾN";
    }
    if (x == 4)
    {
    document.getElementById("demo").innerHTML = "NGƯỜI LÃNG MẠN";
    }
    if (x == 5)
    {
   …
[Javascript] RESTfull API coinmarketcap
Sun May 20, 2018 4:39 pmAdmin
Code:
<html>

<head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="html.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>

<body style="word-wrap: break-word;">
    <div class="container">
        <table class="table">
            <thead>
                <tr>
                    <th width="25%">
                       …
[Javascript] Lấy dữ liệu từ Lookup Field
Sun May 20, 2018 4:37 pmAdmin
Lấy dữ liệu nếu field statecode ở entity category là 0 thì khóa field quantity

Code:
function myFunction() {
    var req = new XMLHttpRequest();
    var clientUrl = window.parent.Xrm.Page.context.getClientUrl();
    var str = window.parent.Xrm.Page.getAttribute("category").getValue()[0].id;
    var len = str.length;
    var res = str.slice(1, len - 1);
    var url = clientUrl + "/api/data/v9.0/categories(" + res + ")"
    req.open("GET", encodeURI(url), true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
   …