IBM® SPSS® Data Collection 系列产品是市场调研分析领域的一个领先产品。它提供了一套完整的数据建立、收集、分析、发布的解决方案。同时具有开放、易扩展、可定制化等特点。全球顶尖的大型市场调研公司几乎都在使用此产品或服务。
这里先简单介绍一下客户如何使用 IBM® SPSS® Data Collection 系列产品。一般来讲客户在确定了自己需要调研的项目需求后,会首先使用 Data Collection 的项目编辑工具(Professional 或 Author)创建一个项目文件(.mdd)。这个项目文件包含了所要调研的问题和问题之间的路由。然后编辑好的项目文件会被发布到服务器端产品 IBM® SPSS® Data Collection Interviewer Server,并且通过邮件或电话通知被访问对象。当调查采访结束后再使用 Data Collection 的相关产品进行数据分析得出结论。相关产品介绍可以参考用户文档 Data Collection Developer Library 。
本文将探讨如何创造使用一种新型的向导模板来缩短创建项目文件的时间并简化发布项目至服务器端的流程。因此我们先来了解一下 Data Collection 产品里的模板。
回页首
在 Data Collection 客户端项目编辑工具中(Professional,Author),项目模板是我们预先定义好的一个 ptz 文件,里面包括了我们最常用的、最基本的问题信息和路由信息,他可以简化新建一个项目的工作,使我们从重复性劳动中解放出来。但是每个项目都不会完全相同,因此固定的项目模板又会无法满足每个项目的特别需求。请看以下示例:
我们有一个固定模板 A。它的定义为:
模板问题 1:你喜欢下雨吗?
模板问题 2:你喜欢在下雨的时候干什么?
模板问题 3:您喜欢以下哪种天气?
模板问题 4:请问您的年龄?
模板路由:在问题 1 上
如果用户选择 A,跳转到问题 2;
如果选择 B,跳转到问题 3;
如果选择 C,跳转到问题 4。
假设我们需要完成以下两个项目:
项目 A包含有以下问题定义:
问题 1:你觉得博物馆好玩吗?
问题 2:你最喜欢博物馆里的哪个主题?
问题 3:你觉得哪些地方我们可以改进呢?
问题 4:请问您以前来过博物馆吗?
路由:在问题 1 上
如果用户选择 A,跳转到问题 2;
如果选择 B,跳转到问题 3;
如果选择 C,跳转到问题 4。
项目 B需要的问题定义是:
问题 1:你觉得吃零食好吗?
问题 2:请问您食用以下零食的频率?
每天 | 每周两到三次 | 每周一次 | 每月两到三次 | 偶尔食用 | 从不食用 | |
碳酸饮料 | | | | | | |
酒精饮料 | | | | | | |
油炸食品 | | | | | | |
腌制食品 | | | | | | |
问题 3:您觉得自己的健康状况好吗?
路由:在问题 1 上
如果用户选择 A,跳转到问题 2;
如果选择 B,跳转到问题 3;
如果选择 C,跳转到问题 2。
当我们创建项目 A 的时候,模板 A 可以很好的满足我们的需求,问题和路由都只需要很小的改动即可。但是当我们创建项目 B 的时候,我们就需要对模板 A 进行较大的改动。模板只能有固定的问题和路由,当我们需要创建不同问题的时候就需要再进一步的编辑。而工作量也难以衡量。那么有没有什么方法可以在我们第一次使用项目模板创建项目的时候就立即把问题和路由按照需求编辑好呢?这时候我们需要试试向导模板了。向导模板会在使用的时候与用户产生交互,并根据用户的要求生成最终的问题和路由。
我们可以在 Professional 中找到许多向导模板,我们先选择一个较为简单的向导模板来学习一下。请尝试以下操作:
图 1. 库
3. 选择"Questions" -> "Ranking Wizard" -> "插入"。
图 2. RankingWizard
4. 按照界面提示完成本向导:
图 3. 向导模板
点击查看大图
关闭 [x]
5. 完成向导后,会有一个提示框询问如何插入数据。我们先在项目文件上选择"元数据"页面,然后在"插入库资产"对话框中选择"插入元数据"。
图 4. 插入元数据
6. 在项目文件上选择路由页面:"web"(或者其他你创建的路由),然后在"插入库资产"对话框中选择"插入路由"。
图 5. 插入路由
完成后你会发现当前正在编辑的项目文件自动添加了许多问题定义和路由。仔细观察你会发现这些添加的问题正是你在向导模板中的输入内容。我们可以在 Professional 中预览一下最终的结果。在 Professional 中选择菜单"调试->启动",在最下方的"浏览器"页面会显示项目预览:
图 6. 项目预览
Ranking Wizard 是一个简单的关于排序问题的向导模板,用户可以设置问题选项,允许尝试错误的次数。同时在路由中程序还会自动验证答案是否合法。向导模板既可以满足用户定制的需求又可以简化重复劳动,这无疑会极大提高创建新项目的效率。
Data Collection 服务器端的产品(Interviewing Server Administration)也包含了项目编辑工具,如(Web Deployed) Author,(Web Deployed)Survey Reporter。他们的使用方法和桌面版 Author,Survey Reporter 完全相同。所以它们也同样支持普通模板和向导模板的使用。此处不再赘述。
回页首
以上介绍的普通模板和向导模板都需要在特定的项目编辑工具中使用。传统流程中一般也会要求在这些编辑工具中创建好项目文件然后再发布到服务器上。这样做有优点也有缺点。优点是,项目编辑工具一般都很专业,功能强大,可以帮助用户创建出高质量的项目。缺点是普通用户需要培训学习后才能熟练掌握,上手速度较慢。对于一个仅仅想创建简单项目而不愿花费很多时间去了解产品操作的客户来讲,太过专业的工具就是一个噩梦。
如果我们将向导模板和在线调查问卷结合起来,使用户在完成一个在线向导问卷之后就帮助用户创建完成项目。这样是不是可以大大简化用户的项目创建流程?同时可以使项目编辑工具对用户隐藏,使用户能更加方便快捷的创建新项目?我们将在下文中一起探讨如何实现这个构想。这里暂且将这种向导模板和在线调查问卷的结合产物叫做在线向导模板,以方便称呼。
在线向导模板的原理和项目编辑工具中的向导模板异曲同工。我们先看看 Professional 中向导模板是如何工作的(请参考上一节中向导模板示例):
向导模板就是新建问卷问题的向导,它在 Data Collection Professional 中通过三个不同的"问卷问题定义文件"(mdd 文件)之间的交互完成工作。在这里,我们将这三个文件定义为以下名称:
这里再详细讲述一下向导文件的工作流程,因为它是整个向导模板的核心。在向导文件中获得的用户答案会被用来修改"源文件",这个被修改的"源文件"通常是一份存储在内存中的拷贝。它会在向导界面结束后更新真正的"源文件"。向导界面开始运行时向导程序引擎会自动在向导文件中插入两个变量:source_mdm, target_mdm。
source_mdm 就是源文件在内存中的拷贝,所有更新操作都会在这个对象上完成。
target_mdm 是对项目文件的一个拷贝,这个变量通常用于提供一些项目文件信息,比如已有的问题名称,回答选项名称。这样就可以检测新插入的问卷问题是否和已有的重名。对 target_mdm 对象的修改不会影响到实际的项目文件内容。
如果我们需要创建一个向导模板,那就需要定义一个"源文件"和相应的"向导文件"。并且将这个向导模板放到系统中的相应目录中。这样在 Professional 中新建项目时,我们就可以从"库"中找到并且使用。至于如何创建这两个 mdd 文件,请参考 Data Collection Developer Library 中的关于如何创建 Wizard 的章节。
根据以上向导模板的工作原理,我们将尝试把它使用到在线调查问卷中。这样用户就可以通过完成在线问卷中的向导问题而生成最终的项目。在线调查问卷中所使用的向导模板就是我们的"在线向导模板"了。
在线项目是指已经发布到 Data Collection 服务器端的项目,已经发布的项目会有一个问卷调查的网络链接(URL),通过这个链接被调查的用户就能在线访问到项目中的问题并且完成问卷。
根据我们的设想,我们需要在这个在线调查问卷中显示我们的向导,然后由用户输入需要编辑的问题信息,比如问题名称、问题选项、路由信息。当向导结束后自动生成新的项目文件并且将项目发布到服务器。这里有两种解决方案,第一种是在向导结束后让新生成的项目文件覆盖刚才的向导项目。第二种是通过代码把新生成的项目文件发布到服务器。第一种解决方案的实现相对简单,因为向导项目已经被发布到服务器上了,我们只需要进行一些修改,新生成的项目就可以使用。第二种解决方案较复杂,我们需要写额外的代码来将新生成项目发布到服务器端,有兴趣的读者可以参考 DevelopWorks 中国上的相关文章实现:" 深入浅出自动化激活及定制 IBM SPSS Data Collection 调查问卷激活 "。
下面我们将完成一个简单示例,为大家演示如何创建在线向导模板。我们将使用第一种解决方案并且基于 Professional 中已有的向导模板 Ranking Wizard 来改造实现在线向导模板。如果读者需要从零开始创建在线向导模板请参考 Data Collection Developer Library 中如何在项目编辑工具(Professional)中创建向导模板的相关文章。
在线向导模板是一个问卷形式的向导,因此我们需要将向导模板做为一个项目文件发布到服务器端让用户可以访问。因为向导模板的特殊性,它不能直接被当做项目文件发布。我们需要将 Ranking Wizard 向导文件拷贝出来进行编辑。向导文件路径(Windows 7 环境下):C:/ProgramData/IBM/SPSS/DataCollection/7/Author/Library/Questions/QWzd/Ranking Wizard.mdd,请注意在这个文件路径的上一层"Qustions"目录下也有一个名为 Ranking Wizard.mdd,这个文件是源文件。我们将向导文件拷贝粘贴到你的工作文件夹中,将它重命名为 RankingWizard.mdd,并在它的同级目录下创建一个名为 RankingWizard_Files 的文件夹。为了将向导文件和源文件区分开,将源文件 C:/ProgramData/IBM/SPSS/DataCollection/7/Author/Library/Questions/Ranking Wizard.mdd 拷贝进 RankingWizard_Files 文件夹并改名为 RankingWizard.mdd。RankingWizard_Files 文件夹是特定项目文件夹,一般用来放置在所编辑文件里使用的模板和资源文件。因为向导文件会和源文件有交互,所以我们将源文件放在里面。
我们在项目编辑工具 Professional 中打开向导文件开始编辑。向导文件里的用户答案是用来为源文件服务的,因此我们需要在向导文件里完成对源文件的更新,这在以前是系统自动完成的。但是我们在没有项目编辑工具的情况下需要通过代码完成了。向导文件主要通过 source_mdm, target_mdm 来完成与源文件和项目文件的交互的。所以我们将以下代码加入刚才打开的向导文件中。
请将以下代码加入到向导文件中路由的第一行开始处:
' 仅供测试使用 Dim source_mdm, target_mdm Set source_mdm = CreateObject("MDM.Document") ' 打开源文件,源文件将会被向导修改 source_mdm.Open(IOM.MDM.ProjectDirectory + "/RankingWizard_Files/Ranking Wizard.mdd" , , openConstants.oNOSAVE)
在向导文件中的向导问题回答结束后,源文件已经被同时更新了,这就是新的项目文件。在打开的向导文件中它就是 source_mdm 对象。如果使用解决方案一,我们就需要用这个新的项目文件覆盖当前的项目文件(即当前打开的向导文件)。如果使用解决方案二,我们则需要将新的项目文件保存,并且通过添加新的代码将它发布到服务器端。此处以解决方案一为例:
请将以下代码加入到向导文件中路由的最后一行:
' 仅供测试使用 ' 用更新后的源文件(新项目文件)覆盖向导文件(当前项目文件) source_mdm.Save("//<ServerName>/spssmr_fmroot/Shared/Projects/ RANKINGWIZARD/RankingWizard.mdd")
请用你的服务器名替换上面代码中的<ServerName>,这个文件路径是项目更新后在服务器上的存储路径。在重新发布项目时系统会把这个路径下的项目文件当做是最新版本进行发布。
在 RankingWizard.mdd 中 target_mdm 对象主要用于检查新插入的问卷问题是否和已有项目中的问题重名。我们的向导模板将要创建一个新的项目,所以不需要进行检查。我们可以将和 target_mdm 对象相关的代码注释掉:
图 7. 编辑 mdd
这样向导文件就修改完成了,将它保存好,这就是我们的第一个在线向导模板。下一步将这个在线向导模板发布到服务器。让我们看看它将如何在线工作。
从 Data Collection Interview Server Administration 激活你的在线向导模板
图 8. 压缩包
2. 登陆到 Data Collection Interview Server Administration 并创建新项目 RankingWizard。
图 9. 创建新项目
3. 在 RankingWizard 项目的管理面板上选择"文件"。
4. 在管理文件的界面上选择"操作"-> "上载"-> 选择上载刚才的压缩包 RankingWizard.zip -> "上载"。
当系统提示是否重名名 RankingWizard_Source.mdd 时选择"否"
5. 退出文件管理,选择"启动"。
6. 在项目管理界面,使用默认设置,点击"启动"。
启动结束后,本项目即发布成功。我们会得到一个 URL 用来测试本项目:
图 10. 发布项目
打开 URL,开始测试我们的在线向导模板。我们可以看到一个在 Professional 中插入向导模板 Ranking Wizard 时曾经看到过的界面:
图 11. 向导项目
将这个向导完成,新的项目文件已经生成并保存好了。因为新的项目文件覆盖了当前向导项目的项目文件。因此需要重新将 RankingWizard 发布,这样才能看到新项目的内容。如果我们使用解决方案二,是不需要这一步的。在方案二中新项目生成后会自动发布并且不会覆盖当前向导项目。
请参考执行上面章节"从 Data Collection Interview Server Administration 激活你的在线向导模板"中的第四步直到发布完成。我们将新项目的 URL 链接打开,看看我们在在线向导模板中配置的问卷问题。
图 12. 新项目预览
至此我们的在线向导模板测试完毕,并且达到了我们的要求。无论用户在什么地方只要可以访问在线向导模板的 URL 链接,就可以定制自己的新项目。
回页首
通过上面的实例我们可以看出在线向导模板的简单与便捷。对于毫无项目编辑工具使用经验的用户, 它同样可以创建出定制化的项目。Data Collection 的服务器端产品可定制化程度很高,因此我们可以将许多其他功能加入在线向导模板中来满足不同需求。比如我们可以创建一个向导来获取服务器端各个项目的状态,然后将不需要的项目删除。可以再向导中将需要的项目数据导出。可以在向导中获取指定项目的数据,并且生成报表(需要使用 Data Collection Survey Reporter wizards)。由于在线向导模板向导界面的灵活性和可定制化,用户在使用过程中可以轻松快捷的完成各项任务,同时它可以在任何有网络的环境中使用,解除了用户对复杂、专业工具的依赖。这种方法很值得我们去研究使用和推广。
回页首
关于在线向导模板的介绍这里就结束了,我们从中可以看到 Data Collection 系列产品具有很强的扩展性,用户可以设计出各式各样的应用来满足不同的需求。这也是他深受全球各大市场调研公司所青睐的原因之一。读者可以参考本文中提到的各类文档继续学习,设计出更多更好的产品应用!
说明:本文章所有内容仅代表个人观点。