Sample HTML Code
- 16 Oct 2024
- 11 Minutes to read
- DarkLight
- PDF
Sample HTML Code
- Updated on 16 Oct 2024
- 11 Minutes to read
- DarkLight
- PDF
Article summary
Did you find this summary helpful?
Thank you for your feedback
You may need to adjust the paths of the src
attributes in the <script>
and <img>
tags of the following example to make them to reflect the location of the associated resource.
For example, suppose a user has saved the resource /WebResources/new_/something.htm
. In this case, the relative paths would require the insertion of an extra ../
before each reference. Thus the first reference in the code example below would become:
<script src="../../ClientGlobalContext.js.aspx" type="text/javascript"></script>
We recommend that integrators favour relative paths over fixed or absolute paths.
The following example uses minimal error handling. Each integrator should ensure that the code they implement meets the error-handling standards they want to enforce.
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="../ClientGlobalContext.js.aspx" type="text/javascript"></script>
<script src="../esl_/scripts/jquery.js" type="text/javascript"></script>
<script src="../esl_/scripts/jquery_ui.js" type="text/javascript"></script>
<script src="../esl_/scripts/json.js" type="text/javascript"></script>
<script src="../esl_/scripts/XrmServiceToolkit.js" type="text/javascript"></script>
<style>
ul {
margin: -8px 0 0 0;
}
li {
float: left;
display: inline;
margin-left: 5px;
}
</style>
</head>
<body>
<div>
<ul>
<li><button id="btnCreate"><img src="../esl_/images/PackageCreateIcon.png" height="14" alt="Create Package" /><span>Create</span></button></li>
<li><button id="btnCreate2"><img src="../esl_/images/PackageCreateIcon.png" height="14" alt="Create Package with template" /><span>Create2</span></button></li>
</ul>
</div>
<script type="text/javascript">
$(function () {
"use strict";
function get (key) {
var attr = parent.Xrm.Page.getAttribute(key);
return attr.getValue();
};
function failedCall(error) {
try {
parent.Xrm.Utility.alertDialog(message);
} catch (e) {
alert(error.message);
}
}
function createOnCrm (item, entitySet, callback) {
XrmServiceToolkit.Rest.Create(item,
entitySet,
function (result1) {
if (callback)
callback(result1);
},
failedCall,
false);
}
function createSoapOnCrm (be, callback) {
var result1 = XrmServiceToolkit.Soap.Create(be);
if (callback)
callback(result1);
}
function addSignerToPackage (id, s, callback) {
XrmServiceToolkit.Rest.Associate(
id,
"esl_packageSet",
s,
"esl_signerSet",
"esl_package_signer ",
function (resp) {
callback(resp);
},
failedCall,
false);
}
function getTemplateByName (name) {
var result1 = {
Id: "00000000-0000-0000-000000000000",
Name: "",
LogicalName: "esl_template"
};
XrmServiceToolkit.Rest.RetrieveMultiple(
"esl_templateSet",
"?$top=1&$select=esl_templateId,esl_name&$filter=esl_name eq '" + name + "'",
function (result) {
result1.Id = result[0].esl_templateId;
result1.Name = result[0].esl_name;
},
failedCall,
function () {},
false);
return result1;
}
function getPackageSimple (name) {
var currentdate = new Date();
return {
esl_name: "test-" + name,
esl_description: "test " + name + " " + currentdate.toLocaleTimeString(),
esl_lookupobjecttype: parent.Xrm.Page.context.getQueryStringParameters().etc,
esl_loopkuprecordguid: parent.Xrm.Page.data.entity.getId(),
esl_lookuprecordname: name,
esl_lookupentitytype: parent.Xrm.Page.data.entity.getEntityName(),
};
}
function getPackageWithTemplate(name, templatename) {
var currentdate = new Date();
var templateRef = getTemplateByName(templatename);
return {
esl_name: "test-" + name,
esl_description: "test " + name + " " + currentdate.toLocaleTimeString(),
esl_lookupobjecttype: parent.Xrm.Page.context.getQueryStringParameters().etc,
esl_loopkuprecordguid: parent.Xrm.Page.data.entity.getId(),
esl_lookuprecordname: name,
esl_lookupentitytype: parent.Xrm.Page.data.entity.getEntityName(),
esl_basedontemplate: templateRef,
};
}
function getPrimaryContact(callback) {
var primarycontactid = get("primarycontactid");
if (!primarycontactid) return null;
var contactRef = primarycontactid[0];
var be = new XrmServiceToolkit.Soap.BusinessEntity("esl_signer", null);
be.attributes.esl_name = "Signer1";
be.attributes.esl_signingorder = 2;
be.attributes.esl_contactid = {
id: contactRef.id,
logicalName: contactRef.entityType,
name: contactRef.name,
type: "EntityReference",
};
XrmServiceToolkit.Rest.Retrieve(
contactRef.id,
"ContactSet",
"EMailAddress1,FirstName,LastName,JobTitle,MobilePhone",
null, /*expand*/
function (resp) {
if (resp) {
be.attributes.esl_emailaddress = resp.EMailAddress1;
be.attributes.esl_firstname = resp.FirstName;
be.attributes.esl_lastname = resp.LastName;
be.attributes.esl_title = resp.JobTitle;
be.attributes.esl_smsphone = resp.MobilePhone;
}
callback(be);
},
failedCall,
false);
}
function openPackage (packageId) {
parent.Xrm.Utility.openEntityForm("esl_package", packageId);
}
function addSigner(contact, packageId, callback) {
if (contact == null) openPackage(packageId);
createSoapOnCrm(contact,
function (result2) {
addSignerToPackage(
packageId,
result2,
function () {
callback(packageId);
});
});
}
function createPackage(eslPackage) {
createOnCrm(eslPackage,
"esl_packageSet",
function(p) {
getPrimaryContact(
function(contact) {
addSigner(
contact,
p.esl_packageId,
function(id) {
openPackage(id);
});
});
});
}
$("#btnCreate").click(function () {
var p = getPackageSimple(get("name"));
try {
createPackage(p);
} catch (e) {
failedCall(e);
}
});
$("#btnCreate2").click(function () {
var p = getPackageWithTemplate(get("name"), "template01");
try {
createPackage(p);
} catch (e) {
failedCall(e);
}
});
});
</script>
</body>
</html>
Was this article helpful?