Microsoft Dynamics CRM 2011 Web Resource简介

Microsoft Dynamics CRM 2011引入了Web Resource的概念,Web Resource可以理解为在solution中创建的“虚拟文件”,它是存储在数据库中,每个Web Resource被创建后,都会生成一个唯一的URL。用户可以使用Web Resource对CRM进行扩展。 

在Microsoft Dynamics CRM 2011中,可使用这些类型的Web Resource:  

类型

文件

应用举例

   文本

 

 

 

Web Page (HTML)

加到Form中作为Iframe

Style Sheet (CSS)

Web Page (HTML)Web Resource提供层叠样式

Style Sheet (XSL)

XML数据转换成你的solution所使用的数据

Script (JScript)

可被Form event(OnLoad, OnSave, OnChange), Ribbon或其他Jscript调用

Data (XML)

用来缓存数据

图像

 

 

PNG

 

JPG

自定义实体或按钮的图标,FormHTML上的美化图片,

GIF

CSS Web Resource使用的背景图片

ICO

 

应用

Silverlight (XAP)

各种Silverlight应用扩展

 Web Resource有很多优点。首先,它实现了代码重用,例如Jscript Web Resource可以在不同实体Form的Onload,OnSave中调用,而不用复制代码。其次,Web Resource存储在CRM数据库中,并且是solution的一个组件,它可以被导出/导入,在任何的CRM 2011环境中使用(OnPremise或Online)。而且它还能在Offline版本的Outlook Client上使用,因为它会被同步到Client本地数据库。最后,还能通过编程的方式来创建,获取和更新Web Resource,因为它们自身就是CRM中的实体。 

如何调用Web Resource

 

调用Web Resource主要有3种方法,下面会分别加以介绍:

     · "$webresource"指令

     · 相对地址

     · 绝对地址

$webresource指令

如果可能,尽量使用$webresource指令这种方法。因为在SiteMap或Ribbon中使用$webresource指令,系统会自动创建依赖性(防止其被删除后,调用失败)。Web Resource互相调用时不会产生依赖性。在XML允许使用URL的地方,都可以使用$webresource指令。$webresource指令的格式如下:

    

$webresource:<Web Resource的名称>

URL

在介绍后两种调用方法前,我们先来了解一下Web Resource URL的组成。下面为Web Resource HelloWorld.html的链接地址: 

https://crmserver/org/WebResources/13445/new_/myFolder/HelloWorld.html

     · https://crmserver/org/: 这部分为CRM Server加Organization的地址。分以下两种情况:

   Ø On premises: https://crmserver/org

   Ø CRM Online: https://org.crm.dynamics.com/

     · /WebResources:这部分是不变的。

     · /13445:自动生成的版本号。只有使用$webresource指令时,这个版本号才会自动生成。例如在Sitemap中使用了Web Resource,当Web Resource被更新时,这个版本号就会改变来迫使客户端IE的cache去更新。若URL中不包含这个版本号,则CRM会使用上一次的内容。

     · /new_:发布者的前缀。不同发布者使用不同的前缀,用来避免命名的冲突。

     · /myFolder/HelloWorld.html:这部分URL可作为相对地址使用。同时,它也是Web Resource实体记录的名字。 

相对地址 

在不能使用$webresource指令的地方,就可以使用相对地址。Web Resource相互调用应该使用相对地址。

使用相对地址,需要使用一个统一的命名规则来反映虚拟的文件结构。Solution发布者的前缀会出现在URL中代表这个发布者所创建所有Web Resource的根目录。你可以使用反斜线“/”来模拟文件结构。

 

例1: 在HTML Web Resource new_/MyContent/MyPage.htm中引用CSS Web Resource new_/Styles/styles.css,可像这样调用:        

  <link rel="stylesheet" type="text/css" href="../styles/styles.css" />

 

例2: 在HTML Web Resource new_/MyContent/MyPage.htm中引用网页Web Resource isv_/Folder/SubPage.htm,可像这样调用: 

      <a href="../../isv_/Folder/SubPage.htm">Sub Page</a> 

绝对地址

当创建Web Resource的时候,会生成一个URL。可直接使用这个URL来调用Web Resource。 

例1:On-Premise

https://crmserver/contoso/WebResources/new_/HTML/MyPage.html

例2:Online

https://contoso.crm.dynamics.com/WebResources/new_/test/test.htm

注:从URL上来看,在Web Resource命名时使用“/”是个很好的建议,如命名为/HTML/MyPage.html。

Step by Step

下面,我们通过一个例子来介绍Web Resource从创建到调用的整个过程。

创建一个PNG Web Resource

1. 下图为将要上传的PNG文件,将其保存为PNG文件。

2. 浏览到Settings->Customization->Customize the System.

3. 点击Componets->New->Web Resource.

4. 取名为/Image/CRMLogo.png,Type选择PNG format,Upload File浏览到第一步中所保存的文件。其他设置如图所示:

5. 点击Save后,将为此Web Resource生成一个URL.

创建一个HTML Web Resource

1. 点击Componets->New->Web Resource

2. 取名为/HTML/MyPage.htm,Type选择Web Page(HTML),点击Text Editor。在弹出的文本编辑框中输入任意文本信息,改变字体,颜色和大小。

3. 可点击Source页,查看代码已自动生成。在</P>和</BODY>之间加入以下文本来将图片加入到网页中。当然,也可以通过点击“Add Image”的方法来添加图片。

<IMG src="../Image/CRMLogo.png">

4. 完成编辑后点击OK。

5. 点击Save。可点击Preview来查看这个页面。

调用Web Resource

1. 浏览到Settings->Customization->Solution。

2. 新建一个Solution,取名为MySitemap。

3. 点击Componets->Add Existing->Site Map,将Site Map加入到solution中。

4. 点击Save and Close,并将Solution导出为unmanaged。

5. 在Site Map中加入一个新的SubArea,并使用刚才新建的Web Resource。

1) 解压MySitemap solution并打开customization.xml文件。

2) 定位到Workplace区域下的MyWork分组。

<Area Id="Workplace" ResourceId="Area_Workplace" ShowGroups="true" Icon="/_imgs/workplace_24x24.gif" DescriptionResourceId="Workplace_Description">
<Group Id="MyWork" ResourceId="Group_MyWork" DescriptionResourceId="My_Work_Description">

3) 将下述黄色部分代码加到上述代码之后,则变为:

<Area Id="Workplace" ResourceId="Area_Workplace" ShowGroups="true" Icon="/_imgs/workplace_24x24.gif" DescriptionResourceId="Workplace_Description">

<Group Id="MyWork" ResourceId="Group_MyWork" DescriptionResourceId="My_Work_Description">

<SubArea Id="nav_MyPage" Icon="$webresource:new_/Image/CRMLogo.png" Url="https://crm1srv:5555/AWC/WebResources/new_/HTML/MyPage.htm">

<Titles>

<Title LCID="1033" Title="My Page" />

</Titles>

</SubArea>

根据你的环境,对上述黄色部分代码做相应的更改。

5) 保存customization.xml,并将其与其他文件打包。将压缩包命名为MySitemap_modified.zip

6) 将MySitemap_modified.zip solution导入到AWC组织中,并Publish All Customizations。

7) 刷新该页,浏览到Workplace,可以看到我们新添加的My Page链接。

结束语

Web Resource为Microsoft Dynamics CRM 2011提供了丰富的“可扩展资源”,本文仅介绍一个简单的示例,若希望了解更多关于Web Resource的知识,可参考SDK文档。

谢谢

Jackie Chen(陈攀)