lunes, 22 de octubre de 2007

Get User Role For CRM from .Net App.

//Para obtener el Guid Id del usuario que ejecuta el WS.
WhoAmIRequest userRequest = new WhoAmIRequest();
WhoAmIResponse userResp = (WhoAmIResponse)
oCrmService.Execute(userRequest);
userResp.UserId; string
UserRole=GetRole(userResp.UserId;)

private String GetRole(Guid UserID) {
//Guid userid = new Guid(UserID);
CrmService oCrmService = new CrmService();
oCrmService.Credentials = System.Net.CredentialCache.DefaultCredentials;
QueryExpression qe = new QueryExpression();
qe.EntityName = "role";
qe.ColumnSet = new AllColumns();
LinkEntity le = new LinkEntity();
le.LinkFromEntityName = "role";
le.LinkFromAttributeName = "roleid";
le.LinkToEntityName = "systemuserroles";
le.LinkToAttributeName = "roleid";
LinkEntity le2 = new LinkEntity();
le2.LinkFromEntityName = "systemuserroles";
le2.LinkFromAttributeName = "systemuserid";
le2.LinkToEntityName = "systemuser";
le2.LinkToAttributeName = "systemuserid";
ConditionExpression ce = new ConditionExpression();
ce.AttributeName = "systemuserid";
ce.Operator = ConditionOperator.Equal;
ce.Values = new object[]{UserID};
le2.LinkCriteria = new FilterExpression();
le2.LinkCriteria.Conditions = new ConditionExpression[]{ce};
le.LinkEntities = new LinkEntity[]{le2};
qe.LinkEntities = new LinkEntity[]{le};
BusinessEntityCollection bec = oCrmService.RetrieveMultiple(qe);
if (bec.BusinessEntities.Length > 0)
{
return ((role)bec.BusinessEntities[0]).name.ToString();
}
else throw new Exception("User not found");
// return "";
}

How to do a Read Only Form into CRM

How to do a Read Only Form into CRM, this sample was designed for the validation of the field oStatus, but you can change this validation for other :

Para Hacer una Forma de solo lectura para CRM, este ejemplo fue hecho en base a una validación de oStatus, pero se puede hacer para cualquier otra validación:

var oStatus = crmForm.all.gicsa_statusultimus;
if (typeof(oStatus) != "undefined" && oStatus != null)
{
if (oStatus.value > 2 && crmForm.FormType != 3)
{ window.navigate("

VbCurrency Words en español para RMS.

Amigos, he tratado de cambiar el idioma del VbCurrencyWords a español, pero no he podido saber cómo agregar una dll a RMS, pero tan pronto lo sepa, seguro se los comparto.

I had been trying to change the english lenguage to spanish of de vbCurrencyWords but I can't and, Microsoft support said this:

SCOPE:I understand that you wanted to covert the amount in English to Spanish and you're looking for ways to have this done.

ENVIRONMENT:Product Line: Microsoft Retail Management

Topic: Point Of Sale or Store Operations

Version: 2.0

Application Language: English (US)

Database: SQL Server 2005Server

OS: Windows Server 2003



ASSESSMENT:Customization and/or dealing with *.dll files is already beyond our support boundaries. In addition to that, the only supported language version is English. I do hope you understand our situation on this one. The best thing I could do for you is to provide you the following information that might point you to the right direction:

viernes, 5 de octubre de 2007

Por una mejor cultura,programación en 3 capas

Hola mis queridos lectores, como no compartir esto que se vuelto una cultura, un standar, parte de las mejores prácticas de Desarrollo y es esto conocido como la programación en 3 capas.
Al igual que con aplicaciones de dos capas, una aplicación de tres capas se puede actualizar de manera vertical o de manera horizontal y a mi parecer es mucho mejor por la facilidad que nos da para darle mantenimiento.
Al seleccionar una estrategia horizontal, se puede actualizar toda o parte de una capa y dejar las otras capas como están. El código actualizado puede utilizar características de interoperabilidad para accesar el código que no se ha cambiado. Después, se pueden actualizar las otras capas gradualmente e integrarlas a la aplicación.

Otra característica que es importante mencionar de una arquitectura de tres capas es que nos permite aprovechar las habilidades especializadas que podamos tener los desarrolladores involucrados en el proyecto, y podemos trabajar paralelamente. Por ejemplo, un desarrollador o equipo pueden trabajar en los componentes modulares de interfaz de usuario mientras que otros desarrolladores actualizan y ajustan componentes en las capas de lógica de negocios y acceso a datos.
Aquí les dejo una imágen de una arquitectura de programación en 3 capas.

Saludos espero les halla quedado claro la ventaja de esto.