Microsoft CRM Customization- Software Closed Email Activity > 자유게시판

본문 바로가기
자유게시판

Microsoft CRM Customization- Software Closed Email Activity

페이지 정보

작성자 Nichole 작성일24-08-06 00:54 조회10회 댓글0건

본문

Microsoft's CRM is a Salesforce replacement and an attempt to capture market share from Siebel, Oracle, and other standard Client Relationship Management System vendors. Microsoft CRM uses all the range of Microsoft new solutions:. Online, MS Exchange, MS Outlook, MS SQL Server, Replication, Indexing, Active Directory, Windows 2000/2003 safety design, C#, VB. Online, HTML, XML Web Service, XLTP, Script to name a few.

Exercise of email type programming is the topic of yesterday's discussion; you typically deal with these customizations when you improve Microsoft Exchange CRM connector. This is the main conversation topic, and how do you create closed activities? We'll apply C#. Online scripting

One of our Exchange Event Handler/Sink's jobs involves creating MS CRM Closed Activity, which handles bothincoming and outgoing internet communications. Using the MS CRM SDK ( handling inbound and outbound XML messages ) and direct access to the MS CRM Database, the interaction with Microsoft CRM takes two forms. This first look at the Shut Action design engine:

1. First we need to know the object we need to make activity for: customization Account, Lead or Contact. The choice may use a particular set of criteria, such as email address, in our event:

if ( ( crmAccount = crmConnector. GetAccount( mailbox From ) )! = null )

}

else if ( ( crmContact = crmConnector. GetContact( mailbox From ) )! = null )

}

else if ( ( crmLead = crmConnector. GetLead( mailbox From ) )! = null )

}

2. Then we have to find GUID of MS CRM users, who owns this object, C# script like this:

crmUser = crmConnector. GetUser( crmAccount. GetOwnerId( ) );

3. Next stage is closed Action development:

emailId = crmConnector. CreateEmailActivity (

crmUser.GetId(),

Microsoft. Crm. Program. Forms. ObjectType. otAccount, crmAccount. GetId( ),

Microsoft. Crm. Program. Forms. ObjectType. otSystemUser, crmUser. GetId( ),

crmAccount. GetEmailAddress( ), crmUser. GetEmailAddress( ), sSubject, sBody );

4. The process to create closed action:

public Guid CreateEmailActivity( Guid userId, int fromObjectType, Guid fromObjectId, int toObjectType, Guid toObjectId, string mail From, string mailTo, string subject, string body )

try

register. Debug(" Prepare for Mail Activity Creating" );

// BizUser proxy image

Microsoft. Crm. System. Surrogate. BizUser bizUser = fresh Microsoft. Crm. Program. Surrogate. BizUser( );

ICredentials credentials = new NetworkCredential(sysUserId, sysPassword, sysDomain );

bizUser. Url = crmDir+" BizUser. converter";

bizUser. Qualifications = qualifications;

Microsoft. Crm. Software. Surrogate. CUserAuth userAuth = bizUser. WhoAmI( );

// CRMEmail proxy image

Microsoft. Crm. Program. Vpn. CRMEmail email = fresh Microsoft. Crm. Software. Surrogate. CRMEmail( );

message. Qualifications = qualifications;

contact. Url = crmDir + "CRMEmail. fs";

// Laid up the XML series for the task

strActivityXml ="";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

strActivityXml + ="";

strActivityXml + ="" )+" ] ] >";

strActivityXml + ="";

strActivityXml + = userId. ToString (" B" ) +"";

strActivityXml + ="";

// Laid up the XML series for the task parties

strPartiesXml ="";

strPartiesXml + ="";

strPartiesXml + ="" + mailTo +"";

if ( toObjectType = = Microsoft. Crm. System. Forms. ObjectType. otSystemUser )

strPartiesXml + ="" + Microsoft. Crm. System. Forms. ObjectType. otSystemUser. ToString( ) +"";

}

else if ( toObjectType = = Microsoft. Crm. System. Forms. ObjectType. otAccount )

strPartiesXml + ="" + Microsoft. Crm. Program. Forms. ObjectType. otAccount. ToString( ) +"";

}

else if ( toObjectType = = Microsoft. Crm. System. Forms. ObjectType. otContact )

strPartiesXml + ="" + Microsoft. Crm. Software. Forms. ObjectType. otContact. ToString( ) +"";

}

else if ( toObjectType = = Microsoft. Crm. System. Forms. ObjectType. otLead )

strPartiesXml + ="" + Microsoft. Crm. Software. Forms. ObjectType. otLead. ToString( ) +"";

}

strPartiesXml + ="" + toObjectId. ToString (" B" ) +"";

strPartiesXml + ="";

strPartiesXml + = Microsoft. Crm. System. Forms. ACTIVITY_PARTY_TYPE. ACTIVITY_PARTY_TO_RECIPIENT. ToString( );

strPartiesXml + ="";

strPartiesXml + ="";

strPartiesXml + ="";

strPartiesXml + ="" + mailFrom +"";

if ( fromObjectType = = Microsoft. Crm. System. Forms. ObjectType. otSystemUser )

strPartiesXml + ="" + Microsoft. Crm. System. Forms. ObjectType. otSystemUser. ToString( ) +"";

}

else if ( fromObjectType = = Microsoft. Crm. System. Forms. ObjectType. otAccount )

strPartiesXml + ="" + Microsoft. Crm. Program. Forms. ObjectType. otAccount. ToString( ) +"";

}

else if ( fromObjectType = = Microsoft. Crm. System. Forms. ObjectType. otContact )

strPartiesXml + ="" + Microsoft. Crm. Software. Forms. ObjectType. otContact. ToString( ) +"";

}

else if ( fromObjectType = = Microsoft. Crm. Software. Forms. ObjectType. otLead )

strPartiesXml + ="" + Microsoft. Crm. Software. Forms. ObjectType. otLead. ToString( ) +"";

}

strPartiesXml + ="" + fromObjectId. ToString (" B" ) +"";

strPartiesXml + ="";

strPartiesXml + = Microsoft. Crm. System. Forms. ACTIVITY_PARTY_TYPE. ACTIVITY_PARTY_SENDER. ToString( );

strPartiesXml + ="";

strPartiesXml + ="";

strPartiesXml + ="";

log.Debug(strPartiesXml);

// Create the e-mail image

Guid emailId = fresh Guid(email. Create(userAuth, strActivityXml, strPartiesXml ) );

gain emailId;

}

find ( System. Web. Services. Techniques. Exception e )

logs. Debug( "ErrorMessage:" + electronic. Communication +"" + e. Detail. OuterXml+" Supply:" + e. Supply );

}

catch ( Excuse e )

logs. Debug(e. Information+" \r

" + electronic. StackTrace );

}

return new Guid( );

}

5. You must set up the activity's flags in accordance with MS CRM standards to make it display the action you merely created correctly:

public void UpdateActivityCodes( Guid emailId )

try

OleDbCommand order = con. CreateCommand( );

demand. CommandText = "UPDATE ActivityBase SET DirectionCode = ( )" ), StateCode = (? ), PriorityCode = (? ) WHERE ActivityId = (? )";

command.Prepare();

order. Guidelines. Add( new OleDbParameter (" DirectionCode", Microsoft. Crm. Program. Forms. EVENT_DIRECTION. ED_INCOMING) );

control. Criteria. Add( new OleDbParameter (" StateCode", Microsoft. Crm. System. Forms. ACTIVITY_STATE. ACTS_CLOSED) );

order. Criteria. Add( new OleDbParameter (" PriorityCode", Microsoft. Crm. System. Forms. PRIORITY_CODE. PC_MEDIUM) );

demand. Criteria. Add( new OleDbParameter ("ActivityId", emailId ) );

register. Debug(" Prepare to update action code" + emailId. ToString (" B" )+" in ActivityBase" );

command.ExecuteNonQuery();

}

catch( Exception e )

logs. Debug(e. Information+" \r

" + electronic. StackTrace );

}

}

public void UpdateActivity QueueCodes( Guid emailId, Guid queueId )

try

OleDbCommand order = con. CreateCommand( );

order. SET Priority = ( )" SET CommandText = "UPDATE QueueItemBase SET Priority = ( )" ), State = (? ), QueueId = (? ) WHERE ObjectId = (? )";

command.Prepare();

demand. Guidelines. Add( new OleDbParameter (" Priority", Microsoft. Crm. Software. Forms. PRIORITY_CODE. PC_MEDIUM) );

control. Criteria. Add( new OleDbParameter (" State", Microsoft. Crm. System. Forms. ACTIVITY_STATE. ACTS_CLOSED) );

control. Criteria. Add( new OleDbParameter (" QueueId", queueId ) );

control. Criteria. Add( new OleDbParameter ( "ObjectId", emailId ) );

logs. Debug(" Prepare to update task queue password" + emailId. ToString (" B" )+" in QueueItemBase" );

command.ExecuteNonQuery();

}

catch( Exception e )

logs. Debug(e. Information+" \r

" + electronic. StackTrace );

}

}

Happy customizing, implementing and modifying! If you want us to do the task- give us a call 1-866-528-0577! support @albaspectrum. web

댓글목록

등록된 댓글이 없습니다.

회사명 방산포장 주소 서울특별시 중구 을지로 27길 6, 1층
사업자 등록번호 204-26-86274 대표 고광현 전화 02-2264-1339 팩스 02-6442-1337
통신판매업신고번호 제 2014-서울중구-0548호 개인정보 보호책임자 고광현 E-mail bspojang@naver.com 호스팅 사업자카페24(주)
Copyright © 2001-2013 방산포장. All Rights Reserved.

상단으로