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.
- 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 () {
… - 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 … 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 = … - Code:
Xrm.Page.ui.setFormNotification("Success.", "INFO", "convertResult"); - 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!");
}
} - 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";
… - Code:
Xrm.Page.ui.controls.forEach(function (control, i) {
if (control && control.getDisabled && !control.getDisabled()) {
control.setDisabled(true);
}
}); - Code:
Xrm.Page.ui.getFormType()
Giá trị trả về là 1 nếu là form Create, là 2 nếu là form Update 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
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 + ", ";
}
… Mở Visual Studio lên, chọn File > New > Project
Trong cửa sổ New Project, chọn Installed > Visual C# > Workflow > Activity Library
Ở 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ờ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…
Ở đâ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 … - 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);
}
- Code:
function myFunction() {
var getYearCurrent = new Date().getFullYear();
var getMonthCurrent = new Date().getMonth();
var getDateCurrent = new Date().getDate();
} - 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 … - 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)
{
… - 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%">
… 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");
… |