Este script nos proporciona una función de ayuda que nos permita encontrar información adicional acerca de la actual usuario con sesión iniciada.
if (typeof (OGBIT) == "undefined") { OGBIT = {}; }
OGBIT.UserInfo = {
Get: function () {
var userInfo = {};
if (self.userName == '') {
var serverUrl = window.location.protocol + "//" + window.location.host + "/" + Xrm.Page.context.getOrgUniqueName();
var userId = Xrm.Page.context.getUserId();
var req = serverUrl +"/xrmservices/2011/OrganizationData.svc/SystemUserSet(guid'{0}')?$select=EmployeeId,FullName,InternalEMailAddress,SystemUserId,DomainName".replace('{0}', userId);
try {
$.ajax({
type: "GET", contentType: "application/json; charset=utf-8", datatype:"json",async:false,
url: req,
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Accept","application/json");
},
success: function (data, textStatus, XmlHttpRequest) {
userInfo = data.d;
userInfo.status = true; //dynamic property
},
error: function (XmlHttpRequest, textStatus, errorObject) {
userInfo.status = false;
//add error handling
}
});
} catch (e) { }
}
return userInfo;
}
}
El script primero llama al método GetUserID del contexto de la página. Esto devuelve el id de sistema que podemos usar para hacer una solicitud ODATA para obtener la información adicional del usuario. La consulta ODATA para obtener la información de usuario tiene este formato:
SystemUserSet(guid'{0}')?$select=EmployeeId,FullName,InternalEMailAddress,SystemUserId,DomainName
El SystemUserSet nos permite consultamos la entidad Usuario del sistema. Ponemos en duda para el usuario actual con el '{0}' parámetro guid. La opción de consulta de selección $ se utiliza para indicar qué campos adicionales deben ser devueltos. Esos campos son los siguientes:
Parameters:
Field Name
|
Description
|
EmployeeId
|
Identificación del empleado
|
FullName
|
Nombre y apellido
|
InternalEMailAddress
|
Email
|
SystemUserId
|
ID Interno o GUID
|
DomainName
|
Nombre de usuario con el siguiente formato:
Dominio \ nombre de usuario
|
El siguiente fragmento de código se puede utilizar para probar el script. Con esta función, simplemente llamamos al método Get y asignamos el retorno de información en variables locales.
function GetUserInfo() {
if (typeof (OGBIT.UserInfo) != 'undefined') {
var info = OGBIT.UserInfo.Get();
if (info.status) {
var empId = info.EmployeeId;
var name = info.FullName;
var email = info.InternalEMailAddress;
var userName = info.DomainName;
var id = info.SystemUserId;
} else {
alert('Unable to find user');
}
}
}
Espero que este script les ayude a obtener una mayor comprensión sobre cómo interactuar con MS CRM.
Gracias por siguir me blog!