CN1744120A - 应用程序对象与智能客户机对象之间的转换 - Google Patents

应用程序对象与智能客户机对象之间的转换 Download PDF

Info

Publication number
CN1744120A
CN1744120A CNA2005101036660A CN200510103666A CN1744120A CN 1744120 A CN1744120 A CN 1744120A CN A2005101036660 A CNA2005101036660 A CN A2005101036660A CN 200510103666 A CN200510103666 A CN 200510103666A CN 1744120 A CN1744120 A CN 1744120A
Authority
CN
China
Prior art keywords
data
smart client
crm
data item
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005101036660A
Other languages
English (en)
Other versions
CN1744120B (zh
Inventor
J·M·埃利奥特
V·瓦德拉马尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1744120A publication Critical patent/CN1744120A/zh
Application granted granted Critical
Publication of CN1744120B publication Critical patent/CN1744120B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Abstract

企业应用程序(例如客户关系管理系统)的智能客户机解决方案包括一基本应用程序(例如,Microsoft Outlook)和与该基本应用程序交互的内插式软件。内插式软件允许基本应用程序用于访问企业应用程序的数据和功能。内插式软件包括用于访问基本应用程序的数据存储中项(对应于企业应用程序的数据)的接口管理器、与企业应用程序通信(通过web服务)的通信代理、以及与接口管理器和通信代理通信的同步管理器,用于在基本应用程序与企业应用程序的数据存储之间同步数据。除了同步之外,智能客户机数据还可以与基本应用程序的数据相互转换。

Description

应用程序对象与智能客户机对象之间的转换
交叉引用
本申请与下列美国专利申请有关:Vadlamani和Silat的“Smart Client Add-InArchitecture(智能客户机内插附件体系结构)”,该申请与本申请同日提交,代理案卷MSFT-01009USO;以及Vadlamani、Elliott和Silat的“Synchronization For SmartClients(智能客户机的同步)”,该申请与本申请同日提交,代理案卷MSFT-01010USO。以上列出的两个专利申请通过引用整体结合于此。
技术领域
本发明涉及使用智能客户机与另一应用程序接口。
背景技术
客户关系管理(“CRM”)是一种标识、获取和保留客户的综合方法。通过使组织能够管理和协调跨多个渠道、部门、业务线和地理的客户交互,CRM帮助组织最大化客户交互的价值,并且推动出众的公司业绩。
当今的组织必须管理跨多个信道一包括web、呼叫中心、区域销售、经销商和合作伙伴网络—的客户交互。许多组织还具有拥有许多重叠客户的多条业务线。难题是让客户能够容易地以他们希望的任何方式与组织贸易—在任何时间、通过任何渠道、以任何语言或货币—并且让客户感到他们正在与在每一接触点识别他们的单个、统一的组织进行交易。
通过使过程流水线化并且为销售、营销和服务人员提供更好的、更完整的客户信息,CRM使组织能够建立更有利润的客户关系,并且减少操作成本。销售组织能缩短销售周期,并且提高关键的销售业绩度量,诸如每个销售代表的收入、每个客户的平均订货大小和收入。营销组织能提高活动回报率和市场驱动的收入,而同时减少客户开发和客户获取成本。客户服务组织能提高服务代理生产力和客户保持力,而减少服务成本、响应时间和请求解决时间。产生令人满意的忠诚客户的公司很有可能具有重复的业务、较低的客户获取成本并且建立更强的品牌价值,所有这些将转换成更好的业绩。
为实现CRM方法,组织使用了CRM软件。例如,一个组织可能建立了关于其客户的数据库,该数据库以不够充分的细节来描述关系,因此管理、销售人员、服务人员和合作伙伴能直接访问信息、将客户需求与产生计划和供应进行匹配、提醒客户的服务要求、了解客户已经购买过的其它产品、理解不同客户的服务历史以及协调销售和营销工作。因而,CRM软件系统可包括(但不限于)数据结构,它存储客户的联系信息、销售历史、服务历史、销售客户信息、代表客户执行的各种活动、销售时机和/或其它数据。
尽管CRM软件系统可以在组织的投资上提供实质回报,但不是所有实现CRM系统的组织都已经适当地从CRM系统中获利。例如,许多职员通常不登录到CRM系统。当开发一个特定的销售客户或者计划或执行其它活动时,通常没有便利的方式来寻求对CRM系统的访问以记录数据。在某些情况下,组织的职员没有受到适当的培训来使用CRM软件系统。有些职员可能根本不知道如何来访问CRM系统。许多CRM系统是自定义的解决方案,它要求对个人进行大量的培训。因而,许多CRM系统不足以用来最大化对投资的回报。
另外,CRM数据和过程可驻留在多个没有组合起来的数据存储或系统中。这给CRM用户产生组合所有这种事务、契约和概况概况信息以完整地理解客户的完整关系的障碍。
发明内容
对上述有关CRM问题的一个建议的解决方案是使用众所周知和常规使用的软件应用程序,诸如CRM系统的智能客户机(Smart Client)。由于应用程序是众所周知的,因此组织将招致较少的培训职员的负担。如果应用程序是经常使用的应用程序,诸如执行时间安排和消息通信的正常运行的桌面应用程序,则职员能够更方便地访问CRM系统(例如,通过智能客户机),并且因此,职员将更多地通过使用智能客户机来使用系统。
在一个例子中,来自微软公司的Outlook和内插式软件一起,可以用作CRM系统的智能客户机。然而,在此描述的技术也可以更一般地使用。即,除了CRM系统之外,在此描述的技术也可以用作各种类型企业应用程序的智能客户机解决方案。类似地,在此描述的技术还应用于基于除Outlook之外的应用程序的智能客户机。
在一个实施例中,一种企业应用程序(例如,CRM系统)的智能客户机解决方案包括基本应用程序(例如,Microsoft Outlook)和与基本应用程序接口的内插式软件。内插式软件允许使用基本应用程序来访问企业应用程序的数据和功能。内插式软件包括用于访问基本应用程序数据存储中的项(对应于企业应用程序中的数据)的接口管理器、与企业应用程序通信(通过web服务)的通信代理、以及与接口管理器和通信代理两者通信、用于同步基本应用程序与企业应用程序的数据存储之间数据的同步管理器。除了同步之外,智能客户机数据也可以被转换成基本应用程序的数据,反之亦然。
附图说明
图1描述了智能客户机的图形用户界面的一个例子。
图2描述了智能客户机的图形用户界面的一部分。
图3是描述使用智能客户机来查看、编辑和/或创建帐号的过程的一个实施例的流程图。
图4是描述使用智能客户机来查看、编辑和/或创建各种数据项的过程的一个实施例的流程图。
图5是描述用于从智能客户机访问应用程序的过程的一个实施例的流程图。
图6是描述用于从智能客户机访问CRM应用程序的一个实施例的流程图。
图7是描述将智能客户机用于如CRM软件系统等外部应用程序的体系结构的一个实施例的框图。
图8是描述智能客户机的体系结构的一个实施例的框图。
图8A是描述应用程序接口的体系结构的一个实施例的框图。
图9是描述类分层结构的一个例子的框图。
图10是描述用于转换数据项的过程的一个实施例的流程图。
图11是描述用于转换数据项的过程的一个实施例的流程图。
图12是描述用于同步数据的过程的一个实施例的流程图。
图13是描述在同步域数据时使用的过程的一个实施例的流程图。
图14是描述在同步域数据时使用的过程的一个实施例的流程图。
图15是描述在同步帐号数据时使用的过程的一个实施例的流程图。
图16是描述用于删除不再需要的帐号文件夹的过程的一个实施例的流程图。
图17是描述用于从其它应用程序获得数据的过程的一个实施例的流程图。
图18是描述用于同步事务数据的过程的一个实施例的流程图。
图19是描述用于同步事务数据的过程的一个实施例的流程图。
图20是描述在服务器端执行并且用于同步事务数据的过程的一个实施例的流程图。
图21是描述在同步活动数据时使用的过程的一个实施例的流程图。
图22是描述当正在访问的帐号列表被改变时执行的过程的一个实施例的流程图。
详细说明
I.用户界面
为使CRM系统能够更被接受和使用,建议使用智能客户机来与CRM系统交互。可以通过将用户已经感到适合和熟悉的现有应用程序与该应用程序的内插附件相组合,来创建智能客户机的一个例子。用户感到适应和熟悉的应用程序的一个例子是合作、收发通信和/或时间安排应用程序。合作、消息通信和/或时间安排应用程序一个例子是来自微软公司的Outlook。然而,在此描述的各个方面可以使用其它合作、消息通信和/或时间安排应用程序以及其它应用程序来实现。
Outlook可以与智能客户机内插附件相组合,以创建能访问CRM系统中数据的智能客户机。智能客户机内插附件包括能通过各种方法与如Outlook等基本应用程序接口的软件。例如,内插附件可使用库、应用程序接口、软件开发工具包或其它接口。
在一个实施例中,智能客户机是帮助处理用户工作流内丰富的应用程序数据的一种应用程序(或应用程序集合),它在本地机器上,具有丰富的胖客户机用户界面经验,并且具有与基于web的计算相关联的瘦客户机的灵活性。在某些实施例中,智能客户机可以“消费(consume)”基于可扩展标记语言(XML)的web服务或与其交互,XML是一种广泛接受的计算机行业标准,它允许在全异的计算机系统、编程语言和软件应用程序之间交换数据。智能客户机能利用客户机设备的本地处理能力,从而提供在纯基于Web的计算(例如,诸如Web浏览器等瘦客户机)中经常缺少的额外的性能度量,它高度依赖于特定网络带宽的性能。许多智能客户机(包括在此描述的智能客户机)可以在线或离线使用,从而保证生产力即使在没有连接时也不受到损害。智能客户机还提供经由因特网、本地客户机或任何移动设备的宽广的可访问性和可用性。
在此描述的技术可以用于许多不同的智能客户机和许多不同的目标应用程序。为了示例的目的,下面的讨论将使用一个包括结合内插式软件的Outlook的智能客户机的实现。在这个例子中的目标应用程序是来自Siebel Systems公司的CRM系统。智能客户机内插附件将使用户能够使用Outlook来访问Siebel CRM系统中的CRM数据。由智能客户机内插附件提供的大多数功能将被Siebel数据和功能环绕。并非CRM系统的每一个功能都将由智能客户机内插附件来实现。相反,智能客户机试图使那些专业人员天天要执行的最普通的功能可用,然而更深层的CRM功能可通过瘦在线客户机获得。CRM数据也将在处于离线模式的Outlook中可用。
图1提供由Outlook内的智能客户机内插附件提供的图形用户界面(GUI)的例子。该GUI包括顶层菜单10、工具栏12、导航窗格14、列表窗格16和细节窗格18。顶层菜单10包括标题,如File(文件)、Edit(编辑)、View(视图)、Go(去往)、Tools(工具)、Actions(动作)、MyCRM(我的CRM)和Help(帮助)。菜单项File、Edit、View、Go、Tools、Actions和Help是Outlook菜单项。菜单MyCRM是由智能客户机内插附件添加到Outlook的新菜单。在其它实施例中,可使用不同于“MyCRM”的其它标签用于顶层菜单(例如,“Customer Explorer(客户资源管理器)”)。点击菜单项MyCRM展现下列选项:CreateNewOpportunity(创建新机会)、CreateNewActivity(创建新活动)、CreateNewContact(创建新联系人)、SyncManager(同步管理器)、About(关于)和Help(帮助)。
工具栏12提供智能客户机内各种功能的快捷方式。导航窗格14示出通过智能客户机可用的数据项的各种文件夹。某些文件夹,包括Calendar(日历)、Contacts(联系人)、Deleted Items(移删除的项)、Drafts(草稿)、Inbox(收件箱)、Journal(期刊)、Junk E-mail(垃圾电子邮件)和Notes(笔记)是核心Outlook功能的一部分。其它文件夹,诸如MyCRM(我的CRM),是由智能客户机内插附件提供的智能客户机功能的一部分。当用户在一个文件夹上单击时,列表窗格16将用与该文件夹相关联的项列表填充。下面将提供更多的细节。如果用户单击列表窗格16中列出的一项,则在细节窗格18中提供关于该特定数据项的更多细节。如果用户在列表窗格16中的一项上双击时,则一个包括关于该项的详细信息的新窗口弹出。图2提供一个响应于在列表窗格16中一项上双击时弹出的新窗口的例子。弹出窗口中的信息与细节窗格18中所示的信息相似。然而,图2的弹出窗口使用户能够编辑信息。
智能客户机内插附件具有它自己的文件夹分层结构,表示在导航窗格14的文件夹结构中的CRM数据。当用户在CRM数据分层结构的顶部处的文件夹(标签为MyCRM的文件夹)上双击时,或者当用户点击紧邻于该文件夹的“+”符号时,将显示该文件夹的子文件夹。在一个实施例中,子文件夹包括包括Links(链接)、My Accounts(我的帐号)、My Activities(我的活动)、My Opportunities(我的机会)、My Contacts(我的联系人)、Siebel和System(系统)。文件夹My Accounts(我的帐号)包括用于每个帐号的一个子文件夹,对于每个帐号,CRM数据可用于该特定用户。每个帐号文件夹(例如,Bechtel Corporation,Bechtel Nevada Corp.,Bechtel PlantMachinery,Levi Strauss & Co.)具有Activities(活动)、Contacts(联系人)和Opportunities(机会)的子文件夹。
CRM应用程序包括许多不同类型的数据项。在CRM应用程序中三个可用的数据项包括活动、联系人和机会。活动是数据记录,它存储关于正在执行的与客户有关的某个正在进行的活动的信息。这可以是销售活动、营销活动、服务活动等。联系人项包括联系人数据,诸如名字、地址等。机会项包括关于与客户有关的各种机会的数据。这可以包括营销机会、销售机会等。对于在此描述的技术,不要求这些数据项的特定格式。各种机会数据项,活动数据项和联系人数据项存在于CRM应用程序中。另外,其它类型的数据项也存在于CRM应用程序中。如上所述,在一个实施例中,智能客户机没有被设计成访问每一类型的数据项。因而,在一个实施例中,选择这三个数据项来访问。
在每个帐号下的Activity文件夹存储与该帐号相关联的活动数据项。每个帐号的Contacts文件夹存储与该帐号相关联的所有联系人数据项。每个账号的Opportunities文件夹存储与该帐号相关联的所有机会数据项。文件夹My Activities存储与用户相关联的所有活动数据项。文件夹My Opportunities存储与用户相关联的所有机会数据项。My Contacts文件夹(或者My Seibel Contacts(我的Siebel联系人))存储与特定用户相关联的所有联系人数据项。在许多情况下,一个特定的数据项既可以在一个帐号之下的文件夹中显示,也可以在My[Activities/Contacts/Opportunities]文件夹中显示。
通过鼠标单击选择My Opportunities文件夹引起在列表窗格中列出机会清单,其中用户是该活动团队的一部分。在任何机会项上双击弹出自定义的机会表单。这个表单包含选项卡,使用户能够在机会细节信息之间切换。
选择My Activities文件夹在列表窗格中显示一个活动列表。这些活动或者为用户所拥有,或者用户是这些活动的职员组的成员。用户将能够通过在列表窗格中的任何活动上双击来启动客户活动编辑表单。
My Seibel Contacts文件夹包含具有与CRM系统中相同可见性规则的联系人。这些联系人与其团队是用户所在或者用户是该联系人团队的成员的帐号相关联。在联系人项上双击引起具有更多细节的弹出窗口。
在图1的Siebel 4.0文件夹上点击会在在Outlook上下文中打开Siebel CRM系统的一个实例,并导航到机会管理视图。在Links文件夹上双击(或者在紧邻于Links文件夹的“+”符号上单击),展现预定义的可定制链接。在任何这些链接上点击,在Outlook的上下文内打开一浏览器实例,并且导航到由该链接定义的相关网站。
为系统管理功能提供System文件夹。该文件夹包含标题为SyncErrors(同步错误)的子文件夹。SyncErrors子文件夹包含下列子文件夹:OpportunitySyncErrors(机会同步错误)、ActivitySyncErrors(活动同步错误)和ContactSyncErrors(联系人同步错误)。这些文件夹将包含已经涉及同步过程中的冲突的记录。用户将能够读取这些文件夹的每一个内的记录。这些记录是只读的。然而,允许用户删除SyncErrors文件夹内的这些记录。
在Outlook中的列表窗格可以为CRM文件夹定制。Outlook提供一种为列表窗格关联基于XML的视图定义的方法。该定义允许指定要显示的列和列表中的行的格式化。下面是一个示例XML定义:
<?xml version=″1.0″?>
<view type=″table″>
<viewname>AccountListView</viewname>
    <viewstyle>table-layout:fixed;width:100%;font-family
    :Tahoma;
              font-style:normal;font-weight:normal;
              font-size:8pt;color:Black;font-charset:0
    </viewstyle>
<viewtime>0</viewtime>
<linecolor>8421504</linecolor>
<linestyle>3</linestyle>
<usequickflaqs>0</usequickflaqs>
<rowstyle>background-color:#FFFFFF</rowstyle>
<headerstyle>background-color:#D3D3D3</headerstyle>
<previewstyle>color:Blue</previewstyle>
<arrangement>
   <autogroup>1</autogroup>
   <collapsethreads>1</collapsethreads>
   <collapseclient></collapseclient>
</arrangement>
<column>
   <heading>Subject</heading>
   <prop>urn:schemas:httpmail:subject</prop>
   <type>string</type>
   <width>344</width>
   <style>padding-left:3px;;text-align:left</style>
</column>
<multiline>
   <width>0</width>
</multiline>
<groupbydefault>2</groupbydefault>
<previewpane>
   <visible>1</visible>
   <markasread>0</markasread>
 </previewpane>
</view>
II.工作流
图3是流程图,描述使用智能客户机来查看、编辑和创建帐号的一个实施例。在步骤102,用户将双击导航窗格14的“My Accounts”文件夹。这将引起所有单独帐号的子文件夹在步骤104中被展现。例如,图1的GUI示出四个独立的帐号(Bechtel Corporation,Bechtel Nevada Corp.,Bechtel Plant Machinery,and Levi Strauss& Co.)的各个文件夹。在另一个实施例中,用户可以在紧邻于文件夹的“+”上单击。在步骤106,选择这些子文件夹之一。即,用户选择一个特定的帐号。如果用户在该文件夹上双击(或者在紧邻于该文件夹的“+”上单击),则该帐号文件夹的子文件夹在步骤108被展现。在一个实施例中,一组子文件夹可以包括该帐号的活动、联系人和机会的文件夹。例如,图1示出Levi Strauss & Co.的子文件夹。在其它实施例中,也可以使用其它子文件夹。在步骤110中,显示特定帐号的列表窗格16。例如,图1示出具有以下三个项的列表窗格:帐号概况、PSS事件和MS销售历史。注意,如果在步骤106通过在一个文件夹上单击来选择它,则系统将显示该列表窗格(步骤110),而不必展现子文件夹。显示在列表窗格中的帐号概况项存储帐号信息。列表窗格中的PSS事件项存储与关联于该帐号的客户的服务事件相关的信息。销售历史项提供关于该特定帐号的销售历史的信息。在其它实施例中,在列表窗格中可以有其它的不同项。
在步骤112,选择列表窗格中的一项。如果用单击选择该项(步骤114),则与列表窗格中的该项相关联的信息在细节窗格18中揭示。(例如,见图1。)通常,在细节窗格18中显示的信息是只读的。尽管有可能编辑该信息,但在细节窗格18中该信息是不可编辑的。如果用户想要编辑它,则用户可在列表窗格中双击该项(步骤112),它将引起系统提供一个弹出表单116。图2是弹出表单的一个例子。在弹出表单中可以编辑部分或全部信息。在步骤118,系统可以从用户接收数据,在弹出表单中编辑部分或全部信息。在步骤120存储该信息。通常,用户可通过点击保存按钮来存储信息。注意,图2的窗口包括一个关闭按钮和一个“Viewin Siebel(在Siebel中查看)”按钮。如果用户点击“close(关闭)”按钮,则图2的窗口将在不保存信息的情况下被关闭。如果用户点击“View in Siebel”按钮,则将显示一个弹出浏览器窗口,并且做出与Siebel CRM系统的连接(在该浏览器窗口内),以便显示直接来自Siebel CRM系统的信息。
在与图1的GUI交互的任何时候,用户可以选择“MyCRM”菜单。从该菜单,选择之一是“create an account(创建一个帐号)”。如果用户选择“create an account”选项(步骤140),则将在步骤116向用户提供弹出表单。可以将数据插入到该弹出表单中(步骤118)并且保存数据(步骤120)。如可以看到的,在图2中显示的弹出表单,它是响应于用户双击列表窗格中的“account profile(帐号概况)”而显示的,包括下列字段:site(地点)、address1(地址1)、address2(地址2)、address3(地址3)、city(城市)、state(州)、ZIP code(邮政编码)、country(国家)、main phone number(主要电话号码)、main fax number(主要传真号码)、website(网站)、parent organization(父组织)、market sub-segment(市场子段)、parenting level(起源层)、industry(工业)、subsidiary(子公司)、sales region(销售区域)、sales district(销售地区)、sub district(子地区)、ID、parent site(父地点)、vertical position(垂直位置)、category(类别)、accountowner(帐号所有者)、annual revenue(年收入)和IT budget(IT预算)。图2的表单具有多个选项卡。上述字段全部都在帐号概况选项卡中。该选项卡可以提供所有其它选项卡的概要。“address(地址)”选项卡存储特定的地址是否为主要地址的指示,并且存储下列字段:site、address1、address2、address3、city、state、ZIP code和country。“team(团队)”选项卡列出该帐号的特定团队中的所有人员。对于每个人,该选项卡列出first name(名)、last name(姓)和alias(别名)。
当用户点击“hierarchy(分层结构)”选项卡时,他们将看见所选择帐号的分层描述,以及与该帐号相关的其它帐号。那些属于用户的帐号可通过双击该帐号名字来访问。当用户在分层窗口中的可访问帐号上执行鼠标单击时,导航窗格的“MyAccounts”文件夹中的活动焦点应转移到该帐号,并且弹出屏幕将刷新以显示该帐号(这是用户用单击选择的)的数据,默认到information(信息)选项卡。通过点击“IT budge(IT预算)”选项卡,系统将按会计年度显示IT预算,包括预算总量、与CRM系统所有者相关联的所花费的数量以及货币。
在列表窗格中而不是帐号概况中选择一项将使系统访问外部系统来获得与列表窗格中该特定项相关的数据。该外部系统有可能在远程机器上。因而,可以有独立的系统来存储关于服务事件的信息。通过选择列表窗格中的“PSS incidents(PSS事件)”,系统将访问该外部系统,并且在弹出菜单中或者在细节窗格18中提供数据。在某些实施例中,所提供的信息总是只读的。在其它实施例中,弹出表单是可读写访问的。同样,外部系统可存储销售历史信息,该信息可通过选择列表窗格16中的销售历史项来访问。
图4是流程图,描述查看、编辑和创建机会、联系人、活动和/或其它项的过程的一个实施例。在步骤160,选择My Accounts文件夹,使各个帐号的子文件夹在步骤162展现。在步骤164,通过点击特定文件夹或者单击紧邻于该文件夹的“+”来选择特定帐号之一。在步骤166,展现帐号的每个特征的子文件夹,包括机会、活动和联系人的子文件夹。在其它实施例,可以有CRM系统的其它特征的子文件夹。在步骤168中,选择特征的子文件夹之一。响应于选择该子文件夹,在列表窗格16中显示适当的信息(步骤170)。例如,如果选择Opportunity子文件夹,则列表窗格将显示机会项的列表。如果选择Contacts子文件夹,则列表窗格将显示联系人项的列表。如果选择Activities子文件夹,则列表窗格将显示活动的列表。
上面参考选择一个帐号且随后选择该帐号的一个子文件夹的过程描述了步骤160至170。可替换地,在步骤192用户可以选择My Activities文件夹,MyOpportunities文件夹,MyCRM文件夹。响应于该选择,系统将在列表窗格中显示与当前正在使用系统的用户的别名相关联的所有适当的活动、联系人或者机会。在步骤172,选择列表窗格中的一项。如果通过单击列表窗格中的该项来执行选择,则细节窗格18将在步骤174显示该特定项的细节。如果在步骤172通过双击该项来选择该项,则将在步骤176显示一弹出表单。用户将有机会在步骤178编辑部分或全部数据。在步骤180,在步骤178接收的数据将被存储。
另外,在操作图1的GUI时,用户可以选择“MyCRM”菜单并且请求创建一个新的项(活动,联系人,机会等)。响应于步骤190中的该选择,系统将在步骤176提供弹出表单。用户随后将被允许提供数据,该数据将在步骤178中被接收并且在步骤180中被存储。当创建一个新的项时,系统将本地标识(LocalID))分配给这个新的项。该LocalID(本地ID)将由系统用于标识该项,直到将该项与CRM系统同步并且CRM系统提供一个CRM标识(ServerID)。在接收ServerID(服务器ID)之后,该项就由ServerID来标识。
在一个实施例中,Opportunities的弹出表单将包括一个“Save”按钮、一个“Close”按钮、一个“View in Siebel”按钮和各种选项卡。在一个实施例中,选项卡包括下列:Opportunity Information(机会信息)、Team(团队)、Activities(活动)、Contacts(联系人)、Notes(笔记)、Products(产品),Services(服务)和Partners(合作伙伴)。“Opportunity Information”选项卡包括下列字段:opportunity name(机会名字)、company name(公司名称)、created date(创建日期)、sales stage(销售阶段)、due date(到期日)、opportunity type(机会类型)、opportunity owner(机会所有者)、status(状态)、currency code(货币代码)、licensing program(许可程序)、licensing subtype(许多子类型)、表示是否有该客户机的预告的标志、表示这是否是关键交易的标志、closingdate(截止日期)和description(描述)。“Team”选项卡将包括在与该机会相关联的帐号的团队中的人员。“Activities”选项卡将具有与该机会相关联的所有活动的列表。“Contacts”选项卡将具有与该机会相关联的所有联系人的列表。“Notes”可以包括由与该机会相关联的任何用户编写的笔记。“Services”表示与该机会相关联的服务。以及“Partners”表示与涉及该特定机会的CRM的所有者相关联的任何业务合作伙伴。
当双击列表窗格中的“Acitivity”时(图4的步骤172),所显示的弹出表单将包括下列字段(除了“Save”按钮,“Close”按钮和“View in Siebel”按钮之外):description(描述)、owner(所有者)、type(类型)、category(类别)、purpose(目的)、company name(公司名称)、contact name(联系人名称)、opportunity(机会)、duedate(到期日)、status(状态)和comments(注释)。在某些实施例中,活动可以与联系人和机会相关联。在这种情况下,在Activities表单中可以有表示所关联的Contacts或者Opportunities的ServerID的字段。
当双击列表窗格中的“Contact”项时(步骤172),在步骤176中所显示的弹出表单将包括五个选项卡:General(常规)、Details(细节)、Activities(活动)、Certificates(证书)、All Fields(全部字段)。General选项卡将包括下列字段:firstname(名)、last name(姓)、job title(职别)、company(公司)、file as(文件为)、phonenumbers(电话号码)、address(地址)、e-mail address(电子邮件地址)、display as(显示为)、web page address(网页地址)、instant messaging address(即时消息通信地址)和description(描述)。“Details”选项卡将包括下列字段:department(部门)、office(办公室)、profession(职业)、manager′s name(经理名字)、assistant′s name(助理名字)、nickname(绰号)、title(头衔)、suffix(后缀)、spouse′s name(配偶名字)、birthday(生日)、anniversary(周年纪念日)、directory server(目录服务器)、e-mail alias(电子邮件别名)和address(地址)。“Activities”选项卡将包括与该联系人相关联的所有活动的列表。“Certificates”选项卡将包括与该联系人相关联的所有证书的列表。“All Fields”选项卡包括用户定义字段的列表。在一个实施例中,这可以包括与CRM系统中数据相关联的用户定义字段,包括:department(部门)、用于访问CRM系统中关于该特定人员的URL、以及表示各种属性的各种标志。这些标志中的一些的例子包括该人员是否为关键联系人、填了满意调查表的人员、允许发送电子邮件给该人员、允许给该人员发送定期邮件、允许打电话、允许发传真和其它适当数据的指示。
图1还示出名为“Links(链接)”的文件夹。该文件夹包括一组子文件夹。每个子文件夹与一个独立的链接相关联。在这些子文件夹(具有嵌入的URL)的任何一个上单击鼠标将打开一个单独的浏览器窗口并且导航到所嵌入的URL中指定的站点。在一个实施例中,这些链接可以在初始设置过程期间建立。一旦建立了这些链接,用户就可以对所嵌入的URL作出改变。用户也可以对URL列表作出添加。由用户创建的附加链接在同步期间不被更新。在一个实施例中,只预先配置的链接将在同步过程期间被刷新。
图5是描述使用这些链接的过程的流程图。在步骤200,用户通过双击“Links”文件夹或者点击紧邻于该文件夹的“+”来选择这个文件夹。在步骤202,响应于在步骤200中选择“Links”文件夹,展现子文件夹。在步骤204,通过单击这些子文件夹之一来选择它。在步骤206,打开一个浏览器窗口。在步骤208,与所选择的文件夹相关联地存储的URL被用于访问该URL的目标。在步骤210,运行目标站点处的应用程序,或者与其交互。例如,目标站点可以包括关于用户、活动、机会、联系人、帐号、CRM系统(例如,Help(帮助))和有关客户关系管理的其它数据的各种信息。
图6是描述使用智能客户机内的链接来直接访问CRM系统的过程的一个实施例的流程图。例如,图1示出名为“Seibel 4.0”的文件夹。在其它实施例中,可以使用其它名称用于该文件夹。在图6的步骤260,选择该特定的CRM应用程序文件夹(例如,“Siebel 4.0”)。在步骤262,打开一个浏览器窗口。在步骤264,与该特定文件夹相关联的URL被用于直接访问CRM系统。通常为用户提供一个登录页面来登录,并且用户可以访问CRM系统的任何可用功能。在某些实施例中,登录信息可以存储在智能客户机中,因此,使用户能够绕过登录页面并且可以自动地登录到CRM系统中。
III.组件
图7是描述用于实现在此描述的系统的体系结构的一个实施例的框图。图7示出智能客户机300,它实现图1和2的GUI和由图3-6描述的过程。智能客户机300可以用于创建、编辑和删除CRM系统的活动对象、机会对象和联系人对象。这些对象存储在智能客户机上并且与CRM系统同步。关于智能客户机300的更多信息将在下面提供。智能客户机300与网络服务302通信。
web服务是离散的代码单元,其每一处理一组不同的任务。通常(但并不总是),web服务基于XML,并且可以跨平台和操作系统调用,无论使用什么编程语言。web服务让应用程序共享数据,并且调用其它应用程序的能力,而不管那些应用程序是如何构建的、它们在什么操作系统或平台上运行、以及使用什么设备来访问它们。尽管web服务可以保持彼此独立,但它们可以将它们自己松散地链接到一个执行特定任务的合作组中。web服务还使开发者有可能在构建其应用程序的所有部分或者消费(使用)由其它人创建的web服务之间进行选择。这意味着一个单独的公司不必提供一个完整的解决方案的每一部分。展示(宣布和提供)web服务的能力为一个特定的实体创建新的收入流。在某些实施例中,在因特网上通过工业标准协议来调用web服务,这些协议包括SOAP;XML;以及通用描述、发现和集成(UDDI)。它们通常可以通过如环球网协会(W3C)等公共标准组织来定义。SOAP是基于XML的、由W3C标准化的消息通信技术,它指定了用于定位web服务、将它们集成到应用程序中以及在它们之间通信的必要规则。UDDI是免费提供的公共注册中心,在这里可以发布和查询web服务。
在一个实施例中,web服务302是构建和管理可升级的web服务的魔力公共平台(Alchemy Common Platform)(ACP)。在智能客户机300的环境内,ACP提供各种CRMweb服务,它们展示来自后端CRM系统的CRM数据操作。在一个实施例中,当CRM系统是Siebel系统时,Siebel数据和操作通过两组服务来揭示。一组用于检索Siebel对象,而另一组用于创建和修改Siebel对象。它们是读服务310和写服务312。由于性能原因,Siebelweb服务被设计为两个独立的服务。读web服务310直接(通过因特网)与Siebel OLTP数据库320(或者其它数据存储)通信,以保证检索数据的最佳性能。写服务312与Siebel应用程序服务器322通信,以便利用在创建和修改Siebel对象期间调用的所有商业规则。Siebel应用程序服务器322与数据存储320通信。另外,取决于实施例,其它服务314可以用于与其它后端中间件324通信,以从各种数据库(或者其它类型的数据存储)326读写。例如,存在上述各种链接,可以用于访问其它第三方系统。
在一个实施例中,智能客户机300通过因特网或者其它类型的网络与web服务302通信。web服务302通过因特网或其它网络解决方案与数据存储、应用程序服务器322和中间件324通信。通信可以通过陆线、无线或者其它合适的技术。另外,通信可以使用TCP/IP或适合于特定应用程序的其它协议来实现。
在一个实施例中,包括数据存储320和应用程序服务器322的CRM系统是预先存在的软件系统。在此描述的技术是用于实现与预先存在的web服务302和预先存在的CRM系统交互的智能客户机300。智能客户机300还包括通过与其它后端中间件324和数据库326通信的其它服务314,将来自CRM系统和其它系统的数据集合起来的能力。CRM系统只是可以与智能客户机一起使用的业务线应用程序的一个例子。在此描述的智能客户机可以与CRM系统以外的应用程序一起使用。
在一个实施例中,智能客户机300正在本地机器上操作,而CRM系统(包括应用程序服务器322和数据存储320)在远离本地机器的一个或多个不同的机器上。web服务302可以在除智能客户机和CRM系统之外的一个或多个不同机器上运行。在其它实施例中,部分或者全部web服务302可以在与智能客户机或者CRM系统相同的机器上运行。某些实施例将不使用web服务;相反,代理372将直接联系CRM系统(或者其它应用程序)。
图8是描述智能客户机300的体系结构的一个实施例的框图。图8描述了与应用程序接口362、web服务302和配置数据存储384通信的智能客户机内插附件360。应用程序接口362与应用程序364(基本应用程序)通信,后者包括应用程序存储366。智能客户机可以用许多不同类型的基本应用程序来实现。在一个实施例中,图8的智能客户机是用合作、消息通信和/或时间应用程序来实现的。这一合作、消息通信和/或时间安排应用程序的一个例子是来自微软公司的Outlook。在这个例子中,存储366是Outlook对象存储。智能客户机也可以用其它合作、消息通信和时间安排系统或者其它类型的系统来实现。另外,执行仅合作、仅消息通信、仅时间安排或者这三者的某种其它组合的应用程序也可以与智能客户机一起使用。智能客户机插件用作软件的最后路程,使用户能够更有效地使用CRM系统。智能客户机内插附件允许Outlook能够用作CRM系统的入口。
应用程序接口362提供到应用程序364的接口。例如,应用程序接口可以是软件开发工具包、库、应用程序编程接口(API)或者其它接口。应用程序接口362应该提供对由应用程序364使用的对象和对应用程序364内发生的事件的访问。因而,响应于应用程序364内的事件,应该将这个事件通知给使用应用程序接口362的实体,并且该实体应该能够取得或者设置如数据对象和用户界面对象等对象。
在一个实施例中,应用程序接口362是软件开发工具包,它是在Outlook对象模型之上的.NET包装器。应用程序接口362向内插附件360展示对象和事件。智能客户机内插附件360使用应用程序接口362与Outlook通信/接口。应用程序接口362提供创建表单和将表单与数据相关联的能力。使用应用程序接口362的实体可以设置和检索Outlook内的标准和自定义属性、创建/删除/编辑对象、被通知(或俘获)Outlook内的事件、创建/改变/管理用户界面(例如,大小、颜色、字体、标题、按钮、字段等)、创建和改变菜单、创建和改变工具栏、创建和管理文件夹、以及执行Outlook内的其它活动。另外,为提供线程安全性,事件是从主UI线程调用的,并且集合类展示一个同步根(syncroot)。
智能客户机内插附件360包括三个主要组件:同步管理器370、服务代理372和用户界面(UI)管理器374。服务代理372与web服务302一起工作,以与在服务器端的企业应用程序(例如,CRM系统)通信来设置和取得数据。UI管理器374与应用程序接口362通信,它利用Windows编程模型的标准来定制必要的用户界面对象。在内插附件商业逻辑的上下文中,在适当的时候,UI管理器372还用作导管来俘获通过应用程序接口362展示的所有必要事件来与Outlook对象一起工作。
同步管理器370提供如何将由Outlook存储的CRM数据与在CRM系统处的数据同步的逻辑。同步管理器370可以被配置为用于优先级(例如,后台/前台)和时序。同步管理器370与服务代理372、数据类380和配置类382通信。服务代理372和UI管理器374两者也都与配置类382通信。同步管理器370使用服务代理372来访问在CRM系统处(数据存储320)的活动、机会和联系人记录。同步管理器370使用接口管理器374(通过数据类380)来访问存储在数据存储366处并且对应于CRM系统处的数据(例如,活动、机会和联系人记录)的活动、机会和联系人对象。
配置类382是一组面向对象的软件类,用于与配置数据存储384通信以管理智能客户机内插附件360的配置数据。同步管理器370、服务代理372和UI管理器374将通过配置类382来读取配置数据384,以便执行在此描述的各种功能。
数据类380与UI管理器374、同步管理器370和应用程序接口362通信。在一个实施例中,数据类380用于与在此描述的各种数据项一起工作。
在一个实施例中,同步管理器370、服务代理372、数据类380和配置类382都是在一或多个计算设备上操作的软件组件。
图8A是描述应用程序接口362的一个示例性实施例的体系结构的框图。图8A示出应用程序364,它包括Outlook应用程序386、命令栏模块387、名字模块388、地址簿模块389和表单模块390。Outlook应用程序386是核心合作、消息通信和时间安排软件应用程序。命令栏模块387是实现工具栏和菜单的代码。名字模块388提供用于访问Outlook应用程序386中的代码的名字列表。全局地址簿389提供用于访问全局地址簿的API。表单模块390包括用于Outlook应用程序386的各种表单的定义。
应用程序接口362包括COMAddInShim(COM内插附件填补)模块、加载器模块393、核心模块394和诊断模块395。COMAddInShimf模块392与Outlook应用程序386和加载器模块393通信。在一个实施例中,通信是双向的。在其它实施例中,COMAddInShim模块392从Outlook应用程序386接收信息,并且为加载器模块393提供Outlook应用程序的实例。COMAddInShim模块392通过Outlook应用程序286的API将智能客户机内插附件360加载到存储器中。
加载器模块393初始化智能客户机内插附件360、在智能客户机内插附件360的主入口点开始执行、并且向智能客户机内插附件360提供Outlook应用程序的实例。加载器模块393还与核心模块394通信(到核心模块394的通信或者是双向的通信)。
核心模块提供与Outlook交互的功能。核心394提供具有方法重载、标准事件和诊断处理的Outlook对象的类;实现具有公共接口(邮件、联系人、任务等)的对象继承链;实现Outlook集合的可绑定数据集合;提供对全局地址簿的访问;以及允许为任何项创建自定义.NET表单和Outlook表单的定制。核心模块394与命令栏模块387、名字模块388、地址簿模块389和表单模块390通信(到它们的通信或者是双向的通信)。
应用程序接口对象将所有变化传给本机对象,因而(在某些实施例中)消除了同步需求。自定义枚举器允许通过如MAPIFolder(MAPI文件夹)项等本机集合的枚举。系统被设计成当本机对象不再由应用程序接口对象使用时释放本机对象。本机对象用作散列关键字来保持所有引用应用程序接口对象的引用计数。应用程序接口对象通知高速缓存,它们已经被最终化(或者被处置),来减少计数,并且一旦不再有引用,全局注册表调用一个对象来释放本机对象。本机对象的直接释放,释放了存储器资源并且提高了性能。应用程序接口包装器用可任选的参数实现Outlook对象方法的方法重载,并且用标准样式事件来包装Outlook引发的事件。
诊断模块395与核心模块394通信,它提供诊断服务,包括出错报告和异常处理。
在一个实施例中,智能客户机(包括智能客户机内插附件360、应用程序接口362和应用程序364)可以使用硬件、软件或者软硬件两者的组合来实现。例如,智能客户机可以在诸如台式计算机、膝上型计算机、移动计算设备或者其它计算设备等计算设备中实现。智能客户机技术不限于任何特定类型的计算设备。用于实现智能客户机内插附件360、应用程序接口362和应用程序364的数据和软件存储在一个或多个处理器可读存储设备上,包括硬盘驱动器、CD-ROM、DVD、光盘、软盘、磁带驱动器、RAM、ROM、闪存或者其它合适的存储设备。在另一实施例中,部分或者全部软件可以由专用硬件来代替,包括自定义集成电路、门阵列、FPGA、PLD和专用处理器。在一个实施例中,实现上述组件的软件用于对一个或多个处理器编程,以实现在此描述的功能/过程。一个或多个处理器可以与一个或多个存储设备(硬盘驱动器、CD-ROM、DVD、光盘、软盘、磁带驱动器、RAM、ROM、闪存或者其它合适的存储设备)、外设(打印机、监示器、键盘、定点设备)和/或通信接口(例如、网卡、无线发射器/接收器等)通信。智能客户机将通过通信接口与CRM系统通信。
图9描述用于智能客户机的各种数据类380的类分层结构。BaseCRMObject(基本CRM对象)400是封装跨所有事务对象的公共功能的基类。该公共功能是使用下列字段/属性来实现的:CurrentState(当前状态)、IsDirty(是否为脏)、IsShadowed(是否有阴影)、LocalID(本地ID)、ServerID(服务器ID)和ServerTimeStamp(服务器时间标记)。字段CurrentState(当前状态)存储对象的当前状态。该字段/属性将由同步管理器370使用来确定是否需要将对象与服务器同步。该属性可具有四个可能值:New(新)、InSync(正在同步)、Updated(已更新)和InEdit(正在编辑)。如果CurrentState值为New,则刚才创建的记录需要与服务器同步。对该记录的后续编辑将不改变该记录的状态。一旦在客户机上创建了记录,它就保持在New状态中,直到将它与服务器同步。当该记录的CurrentState是InSync时,则当前正在将当前记录与服务器同步。当处在这个状态中时,该记录应该是只读的。如果当前的状态是Updated,则记录是最新的并且不需要执行同步。如果当前状态是“InEdit”,则该记录当前正在被编辑,并且此时不应该同步它。
字段/属性IsDirty是布尔值,它确定自上次同步起客户机上的记录是否已经被改变。同步管理器370将使用该字段/属性来确定记录是否需要与服务器同步。如果字段/属性IsDirty被置位,则忽略CurrentState字段,并且在下一个同步周期内同步该记录。
字段/属性IsShadowed确定记录是否具有阴影副本。智能客户机中的许多项将在Outlook中具有重复的存储。例如,活动可以既出现在一个帐号之下的Acitivity文件夹中,也能出现在“My Activities”文件夹中,这取决于该活动的所有权。这些项将具有需要在同步和用户编辑期间以特殊方式处理的多个副本。该标志向系统告警要更新该数据的全部副本。或者,系统可以维护数据的一个副本,并且存储指向该数据的多个指针。因而,正在被处理(例如,同步或编辑)的数据项的IsShadowed(是否有阴影)被置位,它将需要确认所有副本被更新。
LocalID字段/属性保存由客户机为在客户机上创建的新记录生成的临时本地标识。ServerID是保存由CRM系统使用的记录的标识的串。ServerID是由CRM系统创建的,并且用于唯一地标识每个对象日期。ServerTimeStamp字段/属性保存记录的服务器时间标记。该ServerTimeStamp表示在服务器更新记录的最后日期/时间。
BaseCRMObject类400使用下列方法来封装公共功能:Edit(编辑)、Update(更新)、Save(保存)和Reset(复位)。Edit方法设置用于在客户机上编辑的对象。如果记录此时不能被编辑,则该方法返回假。这将是记录的同步正由同步管理器370进行时的情况。Update方法适当地更新记录状态,因此将记录标记为用于同步(例如,IsDirty字段置位)。Save方法修改在客户机上创建的新记录的记录状态。Reset方法用于将记录的状态复位到前一日期。这是在用户取消更新或者创建新记录时使用的。
BaseCRMPostItem(基本CRM发送项)类410、BaseCRMTaskItem(基本CRM任务项)类412和BaseCRMContactItem(基本CRM联系人项)类414从BaseCRMObject类400继承,并且通过适当地重写基类来实现专用于对象的必要功能。这三个类的主要目的是为从它们导出的实际数据类提供必要的框架。例如,Activity(活动)类424被实现为Outlook任务项,它将从BaseCRMTaskItem类412继承。Account(帐号)类420和Opportunities(机会)类422从BaseCRMPostItem类410继承,因为机会和帐号都被映射到Outlook发送项。最后,Contact(联系人)类426是从BaseCRMContactItem414导出的。在类分层结构中引入这一层,允许在将来创建在适当位置具有必要的框架的其它事务类。这些类在内部聚合对应的Outlook项,并且提供在运行时将Outlook项粘附和解除粘附到数据类对象的方法。BaseCRMObject400、BaseCRMPostItem410、BaseCRMTaskItem412、BaseCRMContactItem414、Account420、Opportunity422、Acitivity424和Contact类426都在智能客户机内插附件名字空间450中。
Account类420和Opportunity类422聚合Post(发送)类430。Acitivity类424聚合Task(任务)类432。Contacts类426聚合Contact(联系人)类434。Post类430、Task类和Contact类434都在Outlook名字空间452中。Post类430用于创建将帐号和机会记录存储在Outlook对象数据存储366中的对象。Task类432用于创建将活动记录存储在Outlook数据存储366中的对象。Contact类434用于创建将联系人信息存储在Outlook对象数据存储中的对象。这些对象的主要数据字段是使用Outlook数据对象中的自定义属性来实现的。即,对于CRM系统对象(例如,Account、Opportunity、Acitivity和Contact)中的每个字段,在Outlook对象中创建自定义属性(例如,Post 430,Task 432和Contacts 434)。与这些项相关联的数据集也被存储为自定义属性;然而,在这种情况下,所有数据被序列化为XML串,并且随后存储在自定义属性中。例如,IT预算信息被序列化为XML串。
在一个实施例中,可用于Account对象的一组字段(例如,Post对象430中的自定义字段)包括:地址1(address1)、地址2(address2)、地址3(address3)、城市(city)、州(state)、邮政编码(ZIP code)、国家(country)、站点(site)、名字(name)、子地区(subdistrict)、子段(sub-segment)、起源层(parenting level)、父组织(parent organization)、父站点(parent site)、子公司(subsidiary)、销售区域(sales region)、销售地区(salesdistrict)、垂直工业(vertical industry)、类别(category)、电话(phone)、传真(fax)、网站(website)、帐号团队(account team)、销售ID(sales ID)、年收入(annual revenue)和IT预算(IT budget)。也可包括其它字段,包括上面相对于用户界面以及创建/编辑/查看帐号数据所讨论的任何字段。
在一个实施例中,Opportunity对象的字段(例如,Post对象430中的自定义字段)包括机会名字(opportunity name)、公司名字(company name)、描述(description)、销售阶段(sales stage)、到期日(due date)、状态(status)、货币代码(currency code)、许可程序(licensing program)、许可子类型(licensing subtype)、团队领导(team leader)、预报标志(forecast flag)、关键交易标志(critical deal flag)、关闭日期(closing date)以及创建日期(create date)。也可以包括其它字段,包括上面相对于用户界面以及创建/编辑/查看机会数据所讨论的任何字段。
在一个实施例中,Acitivity对象的字段(例如,Task对象432中的自定义字段)包括描述(description)、所有者(owner)、类型(type)、类别(category)、目的(purpose)、到期日(due date)、联系人名字(contact name)、公司名字(company name)、帐号所有者(account owner)、状态(status)和注释(comments)。也可以包括其它字段,包括上面相对于用户界面以及创建/编辑/查看活动数据所讨论的任何字段。
Contact对象(例如,Contact对象434中的自定义对象)可以包括前缀(prefix)、名(first name)、姓(last name)、头衔(title)、职位角色(job role)、部门(department)、电子邮件(e-mail)、电话号码(telephone number)、移动电话号码(mobile phonenumber)、传真(fax)、关键联系人(key contact)、公司名字(company name)、客户满意调查标志(customer satisfaction survey flag)、工作地址(work address)以及表示是否允许邮件、电子邮件、传真和电话呼叫的指示。也可以包括其它字段,包括上面相对于用户界面以及创建/编辑/查看联系人数据所讨论的任何字段。
本发明不限于任何特定的字段集合。各种实施例可以使用不同的字段集合,只要适合于特定的实现。
还有一个Domain(域)类442,它在智能客户机内插附件名字空间内。该Domain类用于存储域信息。在一个实施例中,域信息可以包括配置信息和用户不能改变的系统信息。系统信息的例子可以包括关于链接的信息、关于不能改变的帐号的信息、关于用户界面的信息和关于各种菜单的信息等等。Domain类442扩展了Obiect(对象)类444,后者在.NET框架内的名字空间454中。
IV.转换数据
提高生产力的一个特征是允许CRM(或者其它应用程序)平台与智能客户机平台(例如,合作、消息通信和时间安排应用程序平台—Outlook平台)之间的转换。例如,能够将CRM数据项转换成Outlook数据项和/或将Outlook数据项转换成CRM数据项是有用的。
图10是描述将数据项从Outlook转换成CRM系统(例如Siebel CRM系统)的过程的一个实施例的流程图。在步骤502,用户请求将一个特定的数据项从Outlook数据项转换成CRM数据项。在一个实施例中,用户将从顶层菜单10的“MyCRM”下拉菜单中选择“convert to CRM(转换成CRM)”。这个请求将用于列表窗格中选中的当前数据对象。或者,当用户打开一个对象(例如,通过双击列表窗格16中的对象),可以有下拉菜单项、按钮、语音识别工具或者其它用户界面项,以选择让特定的Outlook对象转换成特定的CRM应用程序对象。用户界面项将提供按照系统允许的可能性来选择要创建的CRM对象类型的能力。在选择了应该要转换成CRM数据项的Outlook项之后,提供选取列表菜单来将该项与帐号相关联。将提供可能帐号的列表。用户可以选择帐号来与新CRM数据项相关联。
在步骤504,创建Outlook名字空间452中的CRM对象。因而,如果CRM对象是联系人,则创建Contact对象434。如果要创建的CRM对象是活动对象,则创建Task对象432。如果CRM对象是帐号对象或者机会对象,则创建Post对象430。在步骤506,从Outlook对象访问Outlook对象中的相关数据。在某些实施例中,不是所有的数据将被转换成CRM对象。一组规则将定义哪些数据应该或者不应该被转换,如下面将讨论的。在步骤508,将在步骤506中访问的数据自动地填充到在步骤504中创建的新CRM对象中的各种字段中。在步骤510,附加的默认数据被自动添加到新CRM对象。注意,在某些实施例中,步骤510可以在步骤508和/或在步骤506之前执行。默认数据可以基于用户别名来选择。即,当用户通过提供凭证(用户名/别名和密码)登录到计算机时,系统知道用户是谁。基于用尸的身份,系统可以确定某个默认数据。
在步骤512,将呈现具有来自新创建的CRM对象的数据的弹出表单(与上面针对行动、机会和联系人所述的弹出表单相似)。在步骤514,用户将有一个编辑该数据的机会。在步骤516,响应于用户请求保存该数据,在步骤516中将新对象保存在Outlook数据存储中。在步骤518中,将Outlook数据存储与CRM数据存储同步,因此新创建的对象(基于从Outlook对象的转换)被存储在CRM系统中。注意,同步可立即发生,或者在以后的时间发生(例如,在一个已调度的同步时间)。
图11是描述将CRM对象转换成Outlook对象的过程的一个实施例的流程图。例如,用户想将CRM系统中的联系人添加到用户的Outlook联系人中。要这么做,将执行图11的过程。
在图11的步骤542,用户请求将当前的CRM对象转换成Outlook项。例如,用户可选择列表窗格16中的CRM对象。用户可以从“MyCRM”顶层菜单510中的下拉菜单选择转换成Outlook的选项。另外,如果用户正在访问弹出表单,则该弹出表单可包括转换成Outlook的下拉菜单、按钮或其它用户界面项。该用户界面项将按照所允许的可能性,提供关于要转换成哪种类型的Outlook项的选择。
在步骤544,响应于步骤542中的请求,将创建一个新的Outlook对象。所创建的Outlook对象将是用于Outlook软件应用程序的标准Outlook对象,并且存储在Outlook数据存储366中。在步骤546,将访问要转换的相关数据。注意,并非所有来自CRM系统对象的数据将被转换成Outlook。将预先定义要转换哪些特定的字段,如下面所解释的。在步骤546,访问那些预先定义的字段。在步骤548,在步骤546中访问的那些字段被自动地填充到Outlook对象的适当字段中。在步骤550,将默认的数据自动地添加到Outlook对象。在某些实施例中,部分或全部默认数据可以基于用户别名、CRM中的对象所相关的帐号、或者其它准则。在步骤552,新创建的Outlook的日期在可编辑表单中显示。在步骤554,向用户提供编辑新创建的Outlook对象中的数据的能力。在步骤556,用户可以保存新的Outlook项,它将使GUI更新。
在一个实施例中,CRM机会可以被转换成Outlook日历约会。Outlook电子邮件和Outlook日历约会都可以被转换成CRM机会。CRM活动可以被转换成Outlook日历约会或Outlook任务。Outlook日历约会和Outlook任务都可以被转换成CRM活动。CRM联系人可以被转换成Outlook联系人。Outlook联系人、Outlook电子邮件消息和Outlook日历约会可以被转换成CRM联系人。这些转换的每一个将在下面更详细地讨论。注意,执行比上面所列的转换更少的转换或者执行附加/不同的转换的系统也在本发明的范围内。
当将Outlook日历约会转换成CRM机会时,下面的字段基于从Outlook对象读取(步骤506)被自动地填充到新的CRM机会对象(步骤508)。首先,约会的主题行被存储在机会对象的机会名字字段中。其次,Outlook约会的文本或者描述字段被存储在机会对象的机会描述字段中。第三,将操作Outlook系统的用户的用户别名添加到CRM机会对象的机会所有者字段。另外,下面的字段接收默认的数据(步骤510):类型、状态、销售阶段、货币代码、机会团队主记录和机会团队“活动”标志。用串“standard(标准)”来加载类型字段。状态字段被加载为活动的。销售阶段被选择为“期望(prospect)0%”。货币代码被设置为美元。机会团队主记录包括用户别名。机会团队活动标记设置为True(真)。另外,在某些实施例中,向用户提供一个对话框,其中将新创建的机会与该用户的现有帐号相关联。
当Outlook中的电子邮件项被转换成CRM系统中的机会对象时,电子邮件主题行变成机会名字,电子邮件文本变成机会描述,而Outlook别名变成机会所有者。另外,类型、销售阶段、货币代码、机会团队主记录和机会团队“活动”标志被设置为如上相对于日历约会所述的默认数据。
当CRM机会项被转换成Outlook日历约会时,机会名字被加载到约会的主题字段中,将机会描述加载到约会的描述或者文本字段中,并且将机会到期日加载到日历约会的开始时间日期和结束时间日期。另外,将Outlook对象中的整天事件(all-day-event)标志置位,来表示一个整天事件。
当将CRM活动转换成Outlook日历约会时,活动描述字段被映射到Outlook主题字段,活动到期日被映射到日历约会日期,以及活动注释被映射到日历约会文本。当将CRM活动转换成Outlook任务时,活动描述被映射到Outlook任务主题字段,活动到期日被映射到任务到期日,以及活动注释字段被映射到任务文本。
当将Outlook日历约会转换成新的CRM活动时,日历约会的主题行被映射到活动描述,日历约会日期被映射到活动到期日,日历约会文本被映射到活动注释字段,且操作Outlook的用户的别名被映射到活动所有者字段。另外,活动类型字段默认为“会议(meeting)”。
当Outlook电子邮件项被转换成CRM活动时,电子邮件主题行被映射到活动描述字段,电子邮件文本被映射到活动注释字段,且电子邮件用户的Outlook别名被映射到活动所有者。
当将Outlook任务转换成CRM活动时,任务主题字段被映射到活动描述字段,任务到期日字段被映射到活动到期日字段,文本被映射到活动注释,且Outlook别名被映射到活动所有者。
当从Outlook日历约会转换到CRM联系人时,日历约会的标题被映射到CRM联系人的前缀,Outlook约会的发自(姓)字段被映射到CRM联系人的姓,Outlook约会的发自(名)字段被映射到CRM联系人的名,发送者的电子邮件地址被映射到CRM联系人的主要电子邮件,且Outlook别名被映射到CRM联系人对象的联系人团队主字段。另外,CRM联系人的关键联系人字段默认为“是(Yes)”。
当从Outlook电子邮件转换到CRM联系人时,电子邮件的标题被映射到联系人的前缀,发自字段(姓)被映射到联系人的姓,发自字段(名)被映射到联系人的名,发送者的电子邮件地址被映射到联系人的主要电子邮件地址,且Outlook别名被映射到联系人团队主名字。另外,关键联系人字段被设置为“是(Yes)”值。
当在Outlook联系人与CRM联系人之间转换时,应用下列映射:Outlook联系人中的标题被映射到CRM联系人的前缀,Outlook联系人的姓被映射到CRM联系人的姓,Outlook联系人中的名被映射到CRM联系人对象中的名,Outlook联系人的电子邮件地址被映射到CRM联系人的主要电子邮件地址,Outlook联系人的业务电话被映射到CRM联系人的电话号码字段,Outlook用户的用户别名被映射到CRM联系人的联系人团队主字段,Outlook联系人的移动电话字段被映射到CRM联系人的移动电话字段,且Outlook联系人的传真字段被映射到CRM联系人的传真字段。当创建CRM联系人时,关键联系人字段默认为“是(Yes)”。另外,如果子公司为空(基于用户的帐号选择),则该数据默认地可以被自动填充。
注意,在一个实施例中,所有被转换成CRM对象的Outlook对象是智能地加标签的。即,当Outlook电子邮件、日历约会、联系人和任务已经被转换成带有表示“该Outlook项按照下列别名被转换成在下列日期的Siebel记录”的消息的Siebel记录之后,智能客户机内插附件将一个智能标签(例如,描述字段中的自定义字段或文本)添加到它们之上。在一个实施例中,智能标签将标识Siebel记录的ServerID。
类似地,智能标签可被添加到从Siebel记录创建的Outlook项。智能标签可以包括Siebel记录的ServerID。
V.同步
智能客户机可以与多个系统同步,以便将来自各种系统的数据集合起来并更新它们。同步管理器370负责Outlook存储366与CRM系统(以及其它系统)之间使用代理372(通过web服务302通信)的该同步过程。同步管理器370将作为已定义时间表上一个独立的工作者线程运行。时间表将在智能客户机内插附件360启动时从配置文件(存储在配置数据存储384中)中检索。对于不同类型的数据可以有不同的时间表。例如,事务CRM数据的时间表可以要求比域数据的时间表更频繁的同步。同步管理器370也将支持按需同步,这意味着用户通过用户界面可以请求同步周期立即执行。例如,用户可以从下拉菜单10选择“MyCRM”,以选择立即执行同步过程。用户也可以使用下拉菜单来改变配置数据并且强迫新的配置数据与一个不同的同步时间表一起加载。
在一个实施例中,同步配置信息包括至少三个数据项:domainfrequency(域频率)、transactionfrequency(事务频率)、和syncofflinefrequency(同步离线频率)。domainfrequency是以分钟为单位的时间,在上次同步之后经过这个时间需要同步域数据。transactionfrequency是以分钟为单位的时间,在上次同步之后经过这个时间需要同步事务数据。syncofflinefrequency是以分钟为单位的时间,在经过这个时间之后同步线程唤醒以确定Outlook的在线/离线状态。在一个实施例中,智能客户机内插附件的配置将使用XML文件来注入。下面是一个示例配置文件:
<?xml version=″1.0″encoding=″utf-8″?>
<CEConfig>
   <Agent>
      <SWSServerName>ju24nm</SWSServerName>
      <SecureHttp>0</SecureHttp>
<AccountReadUrl>/SiebelRead/Account.asmx</AccountReadUrl>
<AccountWriteUrl>/SiebelWrite/Account/AccountWrite.asmx</AccountWriteUrl>
<DomainReadUrl>/siebelread/Domain.asmx</DomainReadUrl>
</Agent>
  <!--频率值将以分钟为单位,例如10分钟、120分钟、2小时-->
<Sync Frequency>
   <DomainFrequency>120</DomainFrequency>
   <TransactionFrequency>5</TransactionFrequency>
   <SyncOfflineFrequency>1</SyncOfflineFrequency>
      <LastServerSyncSchedule>2004-01-14T11:45:39.0000000-08:00
</LastServerSyncSchedule>
   </Sync Frequency>
   <LocalData>
      <DomainData>
      <Products>Domain/Products.xml</Products>
      <Services>Domain/Services.xml</Services>
      …
       </DomainData>
    </LocalData>
</CEConfig>
在上面的XML代码中,<Agent>(代理)部分将包含代理组件所要求的配置项。这包括Siebel web服务的服务器名字和到各种Siebel web服务的相对URL端点。<Sync Frequency>(同步频率)部分将包含与配置信息有关的同步时间表。<localdata>(本地数据)部分将联系与客户机器中本地存储有关的配置项,如通道(pass-through)域文件。在某些实施例中,帐号数据的同步是预设的(例如30天)。在其它实施例中,配置文件将包括用于设置帐号数据的同步周期的条目。
同步管理器将检查上述文件来确定执行同步的各种时间。鉴于该配置信息,同步管理器370将执行同步循环。在一个实施例中,同步循环被定义为执行一个向上同步操作,随后是向下同步操作。向上同步操作是将对智能客户机上的CRM数据所做的改变和/或添加与服务器同步的过程。向下同步操作是从服务器检索经更新和新的记录并且更新这些记录的智能客户机副本的过程。
图12是描述用于执行同步循环的过程的一个实施例的流程图。在步骤580,同步线程启动/唤醒。在步骤582,同步线程确定Outlook是否在线。如果Outlook没有在线,则同步线程在步骤584回到睡眠。如果Outlook在线,则同步线程确定web服务302是否可用。这是使用代理372来完成的。如果web服务不可用,则同步线程在步骤584回到睡眠。如果web服务可用,则在步骤588确定域数据是否需要同步。域数据是用户一般不会改变的系统数据。在一个实施例中,域数据每30天同步一次。在其它实施例中,可以使用其它时间周期。如果域数据要同步,则在步骤590同步该域数据。在步骤592,同步帐号数据。帐号数据是关于各种帐号的每一个的信息,并且用户一般不会改变帐号数据。如果在步骤588确定不需要同步域数据,则过程在步骤592继续同步需要同步的的帐号数据(如果这是同步帐号数据的时间)而不同步域数据。在同步帐号数据之后,在步骤594同步需要同步的事务数据(如果这是同步事务数据的时间)。事务数据是关于联系人、机会和活动的可变数据,它们一般可以由用户改变。在步骤596,确定同步线程应该睡眠多少时间。这基于上述配置信息。在步骤598,系统存储为事务数据、帐号数据和/或域数据进行最后一次同步的时间。随后,在步骤584,同步线程进入睡眠。某些帐号数据可能是只读的。
图13和14是描述同步域数据(图12的步骤590)的更多细节的流程图。图13和14的过程是独立的线程,它们可以串行地或者并发地运行。在图13的步骤620,确定是否存在更多域数据要处理。当首次运行该步骤时,有可能有域数据。当处理了所有域数据时,图13的方法完成。如果还有更多的域数据要处理,则在步骤622访问下一个域数据文件。在一个实施例中,域数据存储在域数据文件中。通常,系统将具有一个域数据文件列表以供查找。在步骤624,如果系统查找的特定文件存在,则确定域数据是否需要同步。如果域数据不要同步,则过程循环回到步骤620。如果域数据需要同步,则在步骤628将特定文件标记为用于同步,并且过程随后循环回到步骤620。如果在步骤624确定文件不存在,则将文件标记为用于同步。通常,通过域数据同步,存储在CRM服务器上的域数据被写到智能客户机。没有从智能客户机到服务器的向上同步。因而,如果文件不存在,则文件必须从服务器中检索。如果文件太旧并且需要同步,则该文件由仍在服务器上的当前文件覆写。
图14的过程包括从服务器检索数据的步骤。系统循环通过需要同步的所有域数据文件。在步骤650中访问一个数据文件。在步骤652从服务器检索该数据文件的新域数据。在步骤654将检索到的域数据存储在所访问的文件中。如果没有更多文件要考虑,则图14的过程完成。如果有更多的文件要考虑,则过程循环返回到650,使得其它数据可以被检索。
图15,16和17提供同步帐号数据过程(图12的步骤592)的更多细节。图15提供同步帐号数据的整个过程。图16描述删除旧帐号文件夹的过程。图17提供关于从其它应用程序访问数据过程的细节。在一个实施例中,图15,16和17的每个过程是并发或者顺序地运行的独立线程。在某些实施例中,这些线程可以彼此相互依赖。
在图15的步骤670,同步管理器370向代理372作出从CRM应用程序获得帐号数据的请求。同步管理器370具有一个帐号列表。这称为帐号列表。对于帐号列表上的每个帐号,对web服务302作出获得该帐号的帐号数据的请求。在步骤672,从web服务302检索帐号数据。另外,自从上次同步起在服务器上创建的任何新帐号被发送回同步管理器370。在步骤674,将呈现一个对话框(也称为选取列表),它带有其中有数据的所有帐号的列表。这将包括先前由用户选取的帐号、新帐号以及过去用户没有选择过的帐号。用户随后可以选择从帐号列表中添加或者减去智能客户机将对其跟踪记录的帐号。在用户选择要处理的帐号之后,相应地更新帐号列表。在后面的步骤中将更新这些帐号每一个的数据,并且将更新图1的GUI上的文件夹。在步骤676,确定是否还有更多的帐号需要处理。如果这是第一次执行步骤676,则会有帐号要处理。如果没有更多的帐号要处理,则图15的方法完成。如果有更多的帐号要处理,则在步骤678访问下一个帐号。
在步骤680,系统确定在“My Accounts”文件夹之下是否存在子文件夹。如果存在,则在步骤684将新帐号数据存储在适当的文件夹中。如果不存在,则在步骤682创建适当的文件夹并且在步骤684存储帐号数据。在一个实施例中,在步骤682中创建的适当文件夹包括帐号文件夹,以及活动、机会和联系人的子文件夹。在步骤684中,过程循环返回到步骤676,以确定是否还有更多的帐号(即用户在步骤674所选择的帐号)还没有被处理过。如果有,则过程继续步骤678。否则,图15的方法完成。
考虑图16的过程,在步骤690,线程确定是否有更多的帐号文件夹需要用该方法来处理。即,线程查看“My Accounts”文件夹下的每个帐号文件夹。如果所有帐号文件夹都已被处理了,则图16的方法完成。如果还有要处理的帐号文件夹,则在步骤692访问下一个要处理的帐号文件夹。线程确定该帐号文件夹是否对应于在帐号列表中存在的帐号。记住,用户能够在步骤674调整帐号列表。如果帐号文件夹存在于帐号列表中,则系统循环回到步骤690。如果在帐号列表中没有帐号,则帐号文件夹(例如,帐号文件夹和联系人、机会和活动的子文件夹)在步骤696中被删除。在步骤696之后,方法循环回到步骤690。
图17描述从除CRM软件系统以外的应用程序获得数据的过程的流程图。例如,在一个实施例中,如果用户选择帐号列表窗格中除Account Profile(帐号概况)之外的项,则系统将显示来自除CRM系统以外的另一个外部系统的信息。图17的过程描述如何同步该数据。在一个实施例中,通过从外部应用程序获得最新的数据并且使用该数据来覆写存储在客户机端的任何数据来同步该数据。在步骤706,对于每个帐号,同步管理器370将发送向web服务302发送从特定的应用程序获得数据的请求。在步骤708,将从web服务302检索回数据。在步骤710,将该数据存储在智能客户机上。其它应用程序的例子包括服务事件应用程序,它存储和跟踪公司以及跟踪销售历史的应用程序的服务事件。在一个实施例中,作为使用web服务的替代,同步管理器(通过代理372)可以直接联系外部应用程序。
图18-21提供同步事务数据的过程(图12的步骤594)的更多细节。图18描述向上同步过程。图19描述向下同步过程。图20描述在CRM应用程序的服务器上执行的过程。图21提供为活动执行的特殊步骤的细节。
在图18的步骤750,系统确定是否有更多的数据项要处理。数据项可以是任何帐号的任何事务项。例如,数据项可以是活动、机会或联系人。当没有更多的项要处理(所有要同步的项已经被同步)时,图18的过程随后完成。如果有更多的项要处理,则在步骤752,系统访问下一个数据项。在步骤754,系统将查看所访问对象的IsDirty字段来确定数据是否为脏。如果数据不为脏并且不是新的,则它不需要同步并且过程循环到750。如果数据为脏或者它是新的(CurrentState=New),则该数据项需要同步。在步骤756,锁定数据项,不能编辑它。在步骤758,将数据项更新到服务器。即,将数据项通过代理372和web服务302发送到服务器。在步骤760,线程从代理(通过web服务302)接收回是否有冲突的指示。是否有冲突的判定是由服务器(CRM软件系统)执行的,并且从服务器送回到web服务302。如果没有冲突,则智能客户机将向服务器请求该同步的时间标记。服务器将发送一个时间标记,并且它将由智能客户机在步骤762接收。如果要同步的数据项是新的数据项,则在步骤704向服务器请求ServerID并且接收它。该ServerID将被存储在对象中。在接收ServerID之前,智能客户机将通过LocalID来引用对象。在接收ServerID之后,智能客户机将用ServerID来引用对象。在步骤766,解锁数据项并且过程循环回到步骤750,使得下一个数据项可以被处理。
如果在步骤760确定有冲突,则在步骤770将数据项移动到错误文件夹。回头看图1,在导航窗格中有一个标记为“System(系统)”的文件夹。在该系统文件夹之下是一组错误文件夹。数据项的副本将被存储在错误文件夹之一中以供用户查看。在步骤772,线程将向服务器请求和从服务器接收该数据项。该数据项将与数据项中的ServerID和时间标记一起来到。在步骤774,从服务器接收的数据项通过替换客户机上的数据项而被更新。在步骤776,解锁数据项。在步骤778,通知用户,数据已被改变并且存在冲突。在一个例子中,向用户发送电子邮件。在步骤778之后,过程循环回到步骤750,使得下一个数据项可以被访问。
图19提供向下同步过程的更多细节。在图19的步骤800,同步管理器将请求和接收自从上次同步起在服务器上已经更新过或者创建的事务项的列表。如果在列表中有更多的项要考虑,则在步骤804,将访问下一个数据项。在步骤806,智能客户机中的数据项将被锁定。在步骤808,同步管理器将在服务器检索该项的数据并且用该新数据更新智能客户机上的项。如果这是新的数据项,则在步骤808,在智能客户机上创建该项。在步骤810,解锁数据项并且过程循环回到步骤802,以确定是否还有更多的数据项要处理。当所有数据项都被处理时,图19的方法完成。
在一个实施例中,先执行向上同步过程,再执行向下同步过程。在其它实施例中,这两个过程可以重叠或者以其它时序来执行。
图20是描述在服务器端执行的过程的一个实施例的流程图。在步骤830,要更新的记录由CRM应用程序服务器接收。在步骤832,确定记录是新记录还是现有的记录。如果是新记录,则服务器将步骤834生成一个新ServerID,并且在步骤836生成一个时间标记。在步骤838存储该新记录以及时间标记和ServerID。在稍后的时间(如由虚线表示的),响应于步骤762和764,在步骤840,服务器将发送新的ServerID和时间标记。
如果在步骤830接收的记录是现有记录,则在步骤852,比较所接收记录与现有记录的时间标记。如果时间标记相匹配(例如,它们相同),则在步骤854基于从智能客户机接收的数据更新服务器上的记录。在步骤856,在服务器上更新该记录的时间标记。在稍后的时间(如由虚线表示的),响应于步骤762,服务器将在步骤858将更新的时间标记发送给智能客户机。
如果时间标记不相匹配(步骤852),则在步骤860拒绝更新,并且从智能客户机接收的记录将不用于更新服务器上相应记录。稍后(如由虚线表示的),在步骤862,响应于来自客户机的请求(例如,图18的步骤772),服务器将它的记录的副本发送到客户机。
如可以看到的,智能客户机不改变时间标记。时间标记表示服务器更新其记录的最后时间。因而,如果服务器上的时间标记比智能客户机上的时间标记晚,则服务器具有比客户机更新近的数据。如果服务器上的时间标记与客户机上的时间标记相匹配,则客户机上的数据与服务器上的相同,或者客户机上数据比服务器上的更新。如果客户机上的数据与服务器相同,则数据不是脏的,并且不用被发送以供同步。因而,从客户机接收的具有与服务器相同的时间标记的任何数据被假定为是需要在服务器上更新的已更新数据。如果从客户机发送的用于同步的记录对应于服务器上也已经被更新过的记录,则存在冲突,并且不更新服务器上的记录。相反,服务器上的记录用于覆写智能客户机上的记录。
图21包括描述对有关活动与联系人之间的关联和/或活动与机会之间的关联的活动所执行的附加步骤。在一个实施例中,图21的过程可以作为图18的步骤758的一部分来执行。在某些(但非全部)情况下,在图21的过程开始之前,创建(并存储)一个新活动,并且创建(并存储)一个新机会或者联系人。通过将新机会或者联系人的LocalID存储在新活动的对象中,将新机会或联系人与新活动相关联。
在图21的步骤900,确定活动数据项是否为新的。如果否,则在步骤902如上所述地更新活动项。如果是新的,则在更新该活动之前可执行各种步骤906-926。在步骤906,确定活动是否与一个机会相关联。如果否,则确定活动是否与任何联系人相关联。如果不与活动或者联系人相关联,则如上所述地更新该活动。
如果活动与机会相关联(步骤906),则在步骤908确定该机会是否是新的。如果该机会是新的,则在步骤910同步该机会。作为同步过程的一部分,将接收和存储该机会的ServerID。在活动对象中,用在机会对象的同步期间接收的机会对象的ServerID来更新用于标识机会的ServerID字段(步骤912)。
在步骤912之后,过程在步骤920继续,其中确定特定的活动是否与联系人相关联。如果它与联系人相关联,则在步骤922确定联系人是否为新的。如果联系人不是新的,则在步骤902更新活动。如果联系人是新的,则在步骤924同步该联系人。作为同步过程的一部分,将接收和存储该联系人的ServerID。在活动对象中,用在联系人对象的同步期间接收的联系人对象的ServerID来更新的用于标识联系人的ServerID(步骤926)。在步骤926之后,随后在步骤902更新活动(使用机会和联系人的ServerID)。
图22示出描述用于安装智能客户机内插附件360的过程的流程图。在步骤950,在客户机器上安装软件。在步骤952,启动Outlook应用程序。在步骤954,同步管理器370(通过代理372和web服务302)通过实时查询从CRM软件的MyAccounts视图取来所有帐号,来获得与特定别名相关联的帐号列表。在步骤956,在帐号选择表单(例如,选取列表)中显示帐号列表。用户随后可以从该选择表单中选择或者取消选择各种帐号。接收那些选择并储存为帐号列表(步骤958)。在步骤960,执行同步过程。由于这是第一次执行同步,因此有可能在智能客户机上没有事务数据;因此,数据是从客户机向下同步的。
在安装和初始同步之后,用户随后可以执行上述任何功能。如果用户从顶层菜单10选择“MyCRM”并且用户选择改变帐号选择表单(步骤970),则在步骤956将向用户提供帐号选择表单。在用户作出选择或者取消选择各种帐号之后,在步骤958将更新新的帐号列表。系统随后将在步骤916中在存储新的帐号列表之后立即同步,或者可以按照基于配置数据的时间表稍后执行同步。
已经为了说明和描述的目的提供了本发明的上述详细描述。其目的不是要穷举本发明或者将本发明限制在所揭示的精确形式中。鉴于上面的教导,许多修改和变体是可能的。选择所描述的实施例以便最佳地解释本发明的原理及其实践应用程序,从而使本领域的其它技术人员能够最好地使用各种实施例中的本发明,并且在适合于构想的特定用途时可以使用本发明的各种修改方案。本发明的范围是由所附的权利要求书定义的。

Claims (38)

1.一种用于转换数据的方法,包括:
访问一应用程序平台的第一数据项;以及
将所述应用程序平台的所述第一数据项转换成一智能客户机平台的第二数据项。
2.如权利要求1所述的方法,其特征在于,还包括:
将所述智能客户机平台的第三数据项转换成所述应用程序平台的第四数据项。
3.如权利要求1所述的方法,其特征在于:
所述智能客户机包括合作、时间安排和消息通信应用程序。
4.如权利要求1所述的方法,其特征在于:
所述智能客户机包括一时间安排和消息通信应用程序,以及一智能客户机内插附件。
5.如权利要求1所述的方法,其特征在于:
所述智能客户机平台的所述第二数据项包括对所述应用程序平台的所述第一数据项的引用。
6.如权利要求1所述的方法,其特征在于:
所述第一数据项是机会对象、活动对象或者联系人对象。
7.如权利要求1所述的方法,其特征在于:
所述第二数据项是联系人对象或者日历对象。
8.如权利要求1所述的方法,其特征在于,所述转换包括:
创建所述智能客户机平台的一个对象;
访问所述第一数据项中的信息;
自动地将所述信息插入到所述智能客户机平台的所述对象中;以及
存储所述智能客户机平台的所述对象。
9.如权利要求8所述的方法,其特征在于,所述转换还包括:
将默认数据添加到所述智能客户机平台的所述对象。
10.如权利要求9所述的方法,其特征在于,所述转换还包括:
向用户提供编辑所述智能客户机平台的所述对象中的所述信息的机会。
11.如权利要求1所述的方法,其特征在于:
所述第一数据项是智能客户机数据存储中的第一对象;以及
所述第二数据项是所述智能客户机数据存储中的第二对象。
12.如权利要求11所述的方法,其特征在于,还包括:
将来自所述应用程序平台的信息存储在所述第一数据项中。
13.如权利要求1所述的方法,其特征在于:
所述应用程序平台相应于CRM系统;
所述CRM系统使用CRM数据;以及
所述第一数据项包括CRM数据。
14.如权利要求13所述的方法,其特征在于,还包括:
查看和修改来自所述智能客户机平台的CRM数据,所述智能客户机平台包括一用作所述CRM系统入口的合作、消息通信和/或时间安排应用程序。
15.如权利要求14所述的方法,其特征在于:
使用所述智能客户机平台来访问来自除所述CRM系统以外的一或多个系统的帐号数据,所述帐号数据属于与所述第一数据项相关联的所述CRM系统中的一个帐号。
16.如权利要求14所述的方法,其特征在于:
所述第一数据项是一智能客户机数据存储中的第一对象;
所述第二数据项是所述智能客户机数据存储中的第二对象;
所述转换包括创建所述第二对象、访问所述第一对象中的信息、以及将所述信息插入到所述第二对象;以及
所述方法还包括将来自所述应用程序平台的信息存储在所述第一数据项中。
17.如权利要求16所述的方法,其特征在于,还包括:
将所述智能客户机平台的第三数据项转换成所述应用程序平台的第四数据项。
18.如权利要求17所述的方法,其特征在于:
所述第一数据项是一智能客户机数据存储中的第一对象,所述第二数据项是所述智能客户机数据存储中的第二对象,所述第三数据项是所述智能客户机数据存储中的第三对象,以及所述第四对象是所述智能客户机数据存储中的第四对象。
19.一种用于转换数据的方法,包括:
访问一智能客户机平台的第一数据项;以及
将所述智能客户机平台的所述第一数据项转换成一应用程序平台的第二数据项。
20.如权利要求19所述的方法,其特征在于:
所述智能客户机包括一合作、时间安排和消息通信应用程序,以及一智能客户机内插附件;以及
所述应用程序平台对应于CRM系统。
21.如权利要求19所述的方法,其特征在于:
所述应用程序平台的所述第二数据项包括对所述智能客户机平台的所述第一数据项的引用。
22.如权利要求19所述的方法,其特征在于:
所述第一数据项是一智能客户机数据存储中的第一对象;以及
所述第二对象是所述智能客户机数据存储中的第二对象。
23.如权利要求22所述的方法,其特征在于,所述转换包括:
创建所述第二对象;
访问所述第一对象中的信息;
将所述信息添加到所述第二对象;
将默认数据添加到所述第二对象;
允许用户编辑所述第二对象;以及
将所述第二对象存储在所述智能客户机数据存储中。
24.如权利要求22所述的方法,其特征在于,还包括:
在所述转换之后将所述第二对象与一CRM系统同步。
25.如权利要求19所述的方法,其特征在于:
所述应用程序平台对应于CRM系统;
所述CRM系统使用CRM数据;
所述第二数据项包括CRM数据;以及
所述方法还包括查看和修改来自所述智能客户机平台的CRM数据,所述智能客户机平台包括一用作所述CRM系统入口的消息通信和时间安排应用程序。
26.一个或多个处理器可读存储设备,具有在所述处理器可读存储设备上包含的处理器可读代码,所述处理器可读代码用于将一个或多个处理器编程为执行一种方法,所述方法包括:
在一应用程序平台与一智能客户机平台之间转换数据项。
27.如权利要求26所述的一个或多个处理器可读存储设备,其特征在于,所述转换包括:
将来自所述应用程序平台的第一数据项集合转换到所述智能客户机平台;以及
将来自所述智能客户机平台的第二数据项集合转换到所述应用程序平台。
28.如权利要求27所述的一个或多个处理器可读存储设备,其特征在于:
所述第一数据项集合包括机会、活动和联系人;以及
所述第二数据项集合包括联系人和约会。
29.如权利要求27所述的一个或多个处理器可读存储设备,其特征在于:
所述第一数据项集合是一智能客户机数据存储中的对象;以及
所述第二数据项集合是所述智能客户机数据存储中的对象。
30.如权利要求26所述的一个或多个处理器可读存储设备,其特征在于:
所述智能客户机平台包括一合作、时间安排和消息通信系统。
31.如权利要求30所述的一个或多个处理器可读存储设备,其特征在于:
所述应用程序平台对应于CRM系统;
所述CRM系统使用CRM数据;以及
所述数据项包括CRM数据。
32.如权利要求31所述的一个或多个处理器可读存储设备,其特征在于,所述方法还包括:
使用所述智能客户机平台作为所述CRM系统的入口,以便查看和修改CRM数据。
33.如权利要求26所述的一个或多个处理器可读存储设备,其特征在于:
所述转换数据项包括在一新创建的目标数据项中添加对源数据项的引用。
34.一个或多个处理器可读存储设备,具有在所述处理器可读存储设备上包含的处理器可读代码,所述处理器可读代码用于对一个或多个处理器编程,所述处理器可读代码包括:
第一代码,所述第一代码实现用作一外部应用程序的入口的智能客户机;以及
第二代码,所述第二代码在所述应用程序与所述智能客户机之间转换数据项。
35.如权利要求34所述的一个或多个处理器可读存储设备,其特征在于:
所述外部应用程序是CRM系统。
36.一种能够转换数据的装置,其特征在于,包括:
存储设备;
通信接口;以及
与所述存储设备和所述通信接口通信的一个或多个处理器,所述一个或多个处理器实现一用于与所述装置外部的应用程序交互的智能客户机,所述一个或多个处理器能够在所述应用程序与所述智能客户机之间转换数据项。
37.如权利要求36所述的装置,其特征在于:
所述第一数据项集合是所述存储设备中一智能客户机数据存储中的对象;以及
所述第二数据项集合是所述存储设备中所述智能客户机数据存储中的对象。
38.如权利要求37所述的设备,其特征在于:
所述智能客户机包括一时间安排和消息通信系统;
所述装置外部的所述应用程序是一CRM系统的一部分;
所述CRM系统使用CRM数据;
所述数据项包括CRM数据;
所述一个或多个处理器实现所述时间安排和消息通信系统的内插附件,使得所述时间安排和消息通信系统作为所述CRM系统的入口来执行,以便查看和修改CRM数据;以及
所述时间安排和消息通信系统通过所述通信接口与所述CRM系统通信。
CN2005101036660A 2004-09-03 2005-09-05 应用程序对象与智能客户机对象之间的转换 Expired - Fee Related CN1744120B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/934,523 US7558783B2 (en) 2004-09-03 2004-09-03 Conversion between application objects and smart client objects
US10/934,523 2004-09-03

Publications (2)

Publication Number Publication Date
CN1744120A true CN1744120A (zh) 2006-03-08
CN1744120B CN1744120B (zh) 2013-09-18

Family

ID=35501104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101036660A Expired - Fee Related CN1744120B (zh) 2004-09-03 2005-09-05 应用程序对象与智能客户机对象之间的转换

Country Status (4)

Country Link
US (1) US7558783B2 (zh)
EP (1) EP1632894A1 (zh)
JP (1) JP4965097B2 (zh)
CN (1) CN1744120B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102422275A (zh) * 2009-03-12 2012-04-18 霍尼韦尔国际公司 用于使得任务能够在企业环境中聚合的方法、计算机程序产品及设备
CN103065211A (zh) * 2011-11-09 2013-04-24 微软公司 从电子邮件客户端应用提供企业资源规划功能的技术

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707255B2 (en) 2003-07-01 2010-04-27 Microsoft Corporation Automatic grouping of electronic mail
US7703036B2 (en) 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US8146016B2 (en) 2004-08-16 2012-03-27 Microsoft Corporation User interface for displaying a gallery of formatting options applicable to a selected object
JP5112613B2 (ja) * 2004-10-15 2013-01-09 エスアーペー アーゲー 活動管理システム及び方法、活動管理装置、クライアント端末、ならびに、コンピュータプログラム
US8239882B2 (en) 2005-08-30 2012-08-07 Microsoft Corporation Markup based extensibility for user interfaces
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US7877797B2 (en) 2006-02-23 2011-01-25 Microsoft Corporation Non-intrusive background synchronization when authentication is required
US7599861B2 (en) 2006-03-02 2009-10-06 Convergys Customer Management Group, Inc. System and method for closed loop decisionmaking in an automated care system
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US9727989B2 (en) 2006-06-01 2017-08-08 Microsoft Technology Licensing, Llc Modifying and formatting a chart using pictorially provided chart elements
US8150798B2 (en) 2006-10-10 2012-04-03 Wells Fargo Bank, N.A. Method and system for automated coordination and organization of electronic communications in enterprises
US20080183822A1 (en) * 2007-01-25 2008-07-31 Yigang Cai Excluding a group member from receiving an electronic message addressed to a group alias address
US20080228853A1 (en) * 2007-03-15 2008-09-18 Kayxo Dk A/S Software system
US8060892B2 (en) 2007-04-27 2011-11-15 Microsoft Corporation Executing business logic extensions on a client computing system
US20090006162A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Workflows Leveraging Process Stages and Cross-Entity Records
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
US9588781B2 (en) 2008-03-31 2017-03-07 Microsoft Technology Licensing, Llc Associating command surfaces with multiple active components
US20090259725A1 (en) * 2008-04-14 2009-10-15 Case Western Reserve University Email consumer reputation
US9665850B2 (en) 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
GB2463028A (en) * 2008-08-28 2010-03-03 Cr Systems Ltd A method of operating an offline mobile sales service logistics system
WO2010036983A1 (en) 2008-09-25 2010-04-01 Rockliffe Systems, Inc. (Dba Mailsite) Personal information management data synchronization
US8543945B2 (en) * 2009-01-22 2013-09-24 Oracle International Corporation Software user interface using H-grid navigation in human resource management or customer relationship management applications
US20100250322A1 (en) * 2009-03-27 2010-09-30 Michael Roy Norwood Simplified user interface and method for computerized task management systems
US8799353B2 (en) 2009-03-30 2014-08-05 Josef Larsson Scope-based extensibility for control surfaces
US8195741B2 (en) * 2010-05-28 2012-06-05 Microsoft Corporation Cached and server views with automatic caching and smooth scrolling
US8302014B2 (en) * 2010-06-11 2012-10-30 Microsoft Corporation Merging modifications to user interface components while preserving user customizations
US8544075B2 (en) 2010-06-15 2013-09-24 Microsoft Corporation Extending a customer relationship management eventing framework to a cloud computing environment in a secure manner
US9390399B2 (en) * 2010-06-22 2016-07-12 Microsoft Technology Licensing, Llc Integrating a web-based CRM system with a PIM client application
WO2012043899A1 (ko) * 2010-09-29 2012-04-05 정보통신산업진흥원 자동차용 앱스토어 서비스 시스템 및 방법
US8533258B2 (en) * 2010-10-20 2013-09-10 Microsoft Corporation Bidirectional synchronization with CRM applications
US11341166B2 (en) 2011-09-01 2022-05-24 Full Circle Insights, Inc. Method and system for attributing metrics in a CRM system
US10621206B2 (en) * 2012-04-19 2020-04-14 Full Circle Insights, Inc. Method and system for recording responses in a CRM system
US20130117056A1 (en) * 2011-11-09 2013-05-09 Microsoft Corporation Techniques to provide enterprise resource planning functions from a customer relations management client application
US20140108091A1 (en) * 2012-04-19 2014-04-17 FullCircle CRM Method and System for Attributing Metrics in a CRM System
US9916592B2 (en) * 2012-05-18 2018-03-13 Oracle International Corporation Method and system for implementing implicit follow and automatic unfollow
US20140095237A1 (en) * 2012-10-02 2014-04-03 Stefan Ehrler Organizing and Managing Employee Information for a Manager
US9684880B2 (en) 2013-03-15 2017-06-20 Connectwise.Com, Inc. Project scheduling and management system that uses product data with product classes
US11429913B2 (en) 2013-08-02 2022-08-30 Connectwise, Llc Systems and methods for converting sales opportunities to service tickets, sales orders, and projects
US9658837B1 (en) 2015-11-06 2017-05-23 Sentry Insurance a Mutual Company Integration of independent platforms

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US44766A (en) * 1864-10-18 Improvement in artificial legs
US5999938A (en) 1997-01-31 1999-12-07 Microsoft Corporation System and method for creating a new data structure in memory populated with data from an existing data structure
US6477543B1 (en) 1998-10-23 2002-11-05 International Business Machines Corporation Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
US6983308B1 (en) 1998-11-19 2006-01-03 Openwave Systems, Inc. Mail synchronization of remote and local mail systems
EP1093061A1 (de) 1999-10-14 2001-04-18 SAP Aktiengesellschaft Integriertes Datenbank-Verbundsystem
AU1104501A (en) 1999-10-29 2001-05-14 Contact Networks, Inc. Method and system for updating user information maintained by another user system
US20010056422A1 (en) 2000-02-16 2001-12-27 Benedict Charles C. Database access system
US6636873B1 (en) 2000-04-17 2003-10-21 Oracle International Corporation Methods and systems for synchronization of mobile devices with a remote database
JP2002041781A (ja) * 2000-07-25 2002-02-08 Oki Electric Ind Co Ltd 顧客データベース及びデリバリチャネル接続システム
US6993522B2 (en) 2001-06-27 2006-01-31 Microsoft Corporation System and method for resolving conflicts detected during a synchronization session
CN100478943C (zh) 2002-05-31 2009-04-15 国际商业机器公司 访问不同类型后端数据存储器的系统和方法
US7277940B2 (en) 2002-08-29 2007-10-02 Sap Ag Managing uneven authorizations in a computer data exchange
US20050222931A1 (en) * 2003-08-27 2005-10-06 Ascential Software Corporation Real time data integration services for financial information data integration
CA2542330A1 (en) * 2003-10-10 2005-04-21 Accenture Global Services Gmbh Tool for synchronization of business information

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102422275A (zh) * 2009-03-12 2012-04-18 霍尼韦尔国际公司 用于使得任务能够在企业环境中聚合的方法、计算机程序产品及设备
CN102422275B (zh) * 2009-03-12 2015-10-21 霍尼韦尔国际公司 用于使得任务能够在企业环境中聚合的方法、计算机程序产品及设备
CN103065211A (zh) * 2011-11-09 2013-04-24 微软公司 从电子邮件客户端应用提供企业资源规划功能的技术
CN103065211B (zh) * 2011-11-09 2016-12-21 微软技术许可有限责任公司 用于从电子邮件客户端应用提供企业资源规划功能的方法和设备

Also Published As

Publication number Publication date
JP4965097B2 (ja) 2012-07-04
US7558783B2 (en) 2009-07-07
EP1632894A1 (en) 2006-03-08
CN1744120B (zh) 2013-09-18
US20060069684A1 (en) 2006-03-30
JP2006099759A (ja) 2006-04-13

Similar Documents

Publication Publication Date Title
CN1744120A (zh) 应用程序对象与智能客户机对象之间的转换
CN1744121A (zh) 智能客户机内插附件体系结构
CN1744122A (zh) 智能客户机的同步
CN1419675A (zh) 用于自上而下的企业过程定义和执行的方法和系统
US7197740B2 (en) Pattern-based software design
US7765166B2 (en) Compiling user profile information from multiple sources
CN1987912B (zh) 为电子邮件消息的附加文档提供版本控制的方法和系统
US20050228790A1 (en) Coherent categorization scheme
US7711694B2 (en) System and methods for user-customizable enterprise workflow management
US8255260B2 (en) System and method for filtering exceptions generated by forecasting and replenishment engine
CN1554046A (zh) 用于具有事务特性特征的事务处理的系统和方法
US9582806B2 (en) Customer relationship management system with hierarchical tagging
CN1856790A (zh) 使用本体的信息访问
US20070100857A1 (en) Computer-implemented method, tool, and program product for storing a business document in an enterprise software application environment
US20060036641A1 (en) System and method for using social networks for the distribution of communications
US20080276218A1 (en) Metadata driven user interface system and method
CN1293780A (zh) 创建个人化的监督和控制数据获取系统的方法和装置
US20130297371A1 (en) System and method for an integrated workflow process, social, contact and web marketing solution
CN1828527A (zh) 用于跨不同应用程序框架的数据服务的平台
EP1687744A1 (en) Systems and methods for retrieving data
US20080104501A1 (en) Cross-tier intelligent document generation and management
CN1959724A (zh) 泛在计算环境中工作流上下文信息的获取方法和系统
CN1591444A (zh) 整合应用服务和应用程序之间的资源管理的系统和方法
CN1766835A (zh) 用于在设计和运行时间无缝制作和编辑工作流的框架
CN1615628A (zh) 用于移动用户的网络应用接口

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130918

Termination date: 20140905

EXPY Termination of patent right or utility model