需求:将接报时间加上到期提醒时间后得到的值,更新到字段“到期截止时间”
Js调用:
//设置到期截止时间
function setDeadLine(){
var recordId = Xrm.Page.data.entity.getId();
var entityName = Xrm.Page.data.entity.getEntityName();
var reportedTime = Xrm.Page.getControl("hxcs_fdatetimeofrequesthelp").getAttribute().getValue().toLocaleString();
var remindTime =Xrm.Page.getControl("hxcs_fremindtime").getAttribute().getText();
$.post("/isv/Handlers/SetRemindHandler.ashx", { "recordId":recordId,"entityName":entityName,"reportedTime": reportedTime,"remindTime":remindTime}, function(data){});
}
一般处理程序SetRemindHandler.ashx,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using System.Net;
using System.ServiceModel.Description;
using System.Configuration;
namespace IsWaterWeb
{
/// <summary>
/// SetRemindHandler 的摘要说明
/// </summary>
public class SetRemindHandler : IHttpHandler
{
IOrganizationService _service = null;
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string recordId=context.Request["recordId"];
string entityName=context.Request["entityName"];
string reportedTime = context.Request["reportedTime"]; //接报时间
string remindTime = context.Request["remindTime"]; //到期提醒时间(h)
if(!string.IsNullOrEmpty(reportedTime)&&!string.IsNullOrEmpty(remindTime))
{
DateTime rTime = Convert.ToDateTime(reportedTime);
double hourCounts = Convert.ToDouble(remindTime);
DateTime deadline = rTime.AddHours(hourCounts);
_service = GetOrganization();
Entity entity = new Entity();
entity.Id=Guid.Parse(recordId);
entity.LogicalName=entityName;
entity.Attributes["hxcs_fdeadline"] = deadline;
_service.Update(entity);
}
}
public IOrganizationService GetOrganization()
{
String UserName = ConfigurationManager.AppSettings["LoginName"];
String Password = ConfigurationManager.AppSettings["LoginPwd"];
string url=ConfigurationManager.AppSettings["organizationServiceUrl"];
Uri uri = new Uri(url);
var cred = new ClientCredentials();
//cred.Windows.ClientCredential = new NetworkCredential("Xiaozhou", "Zhou123.");
cred.Windows.ClientCredential = new NetworkCredential(UserName, Password);
OrganizationServiceProxy _proxy = new OrganizationServiceProxy(uri, null, cred, null);
IOrganizationService _service = (IOrganizationService)_proxy;
return _service;
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
注意:记得将一般处理程序SetRemindHandler.ashx放到服务器目录:C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Handlers,如果没有Handlers目录,可以新建。