为什么我回答了那么多问题都没有一步一步解决问题或完成任务的方法


我最近和当地用户组的某个人一起工作他正在处理缓慢的数据导入过程。用例要求任何用户能够将excel文件中的数据导入自定义应用程序然后使用该数据。而且很慢我們一起看了看,并一起讨论几个小时后,导入流畅而快速导入完成后不久,所有用户都可以使用该数据我们来看看FileMaker数据导入的最佳實践。

在这篇文章中我们将讨论目标表:将从FileMaker数据导入接收数据的表。在以后的文章中我们将讨论实际导入过程的最佳实践:如何编寫脚本以便任何用户都可以执行导入。

我们应该问的第一个问题:数据导入哪个表看起来很明显:保存数据的表。如果我要将新学生添加到学生信息系统中我似乎应该直接将它们导入到学生表中。

但情况并非总是如此我们希望首先避开包含数据的表格,这有几个原因:

  • 包含许多计算字段的表将减慢导入到爬网的速度即使未显示计算字段,导入也会强制运行计算
  • 数据可能有误。在导入期间可能会忘記某些列或重新排列列
  • 数据可能需要额外的处理。计算字段不应处理数据但有时需要进行处理。

因此FileMaker(和其他系统)开发人员将指礻FileMaker数据导入发生在临时表中,而不是实际数据表(将学生导入学生表)

临时表的想法值得探讨,我们将在此深入探讨

  • 它是您的自定义應用程序或其他文件中的表格。
  • 此表中的字段是静态字段:数字日期,文本字段没有计算字段。
  • 此表中的字段与导入源中的列匹配
  • 腳本指示导入源在此处导入数据。

由于表和字段很简单每个用例可以有一个表。如果您必须导入学生和测试分数而不是问题,则每个嘟可以有一个临时表

临时表只接受数据,因此具有很大的优势

导入到没有计算字段的表中很快。数据只是添加到表中

将数据导入临時表后,可以在将数据放入实际表之前对其进行验证这是使用临时表的一个很好的理由。我们不希望导入的数据不正确

学校管理员需偠将测试分数导入他的学生信息系统。当然这些分数是他当前学生使用学生区ID的分数。某种程度上导入搞砸了管理员意外地干扰了导叺的顺序:不是将“学号”列导入到匹配字段中,而是将此列导入到分数字段中验证过程可以通过临时表的数据来确保该字段中的所有學生ID与现有学生匹配。如果不是则不应将记录放入“分数”表中。

数据可能有误可能缺少字段或缺少数据,列中可能存在不正确的数據一大堆事情可能会出错。由于我们作为系统的开发人员可能无法控制数据源因此我们必须确保数据没有错误

在任何一种情况下,我們都希望编写流程脚本以处理每列和每行的验证然后,我们的脚本化流程可以生成一个报告向导入者显示哪些记录被拒绝以及原因。

驗证数据在转移到正确的表时可能会进一步处理以下是一些可能的处理:

  • 电话号码,电子邮件地址可以添加到“联系人”表中
  • 可以进荇脚本计算,并将结果放入静态字段中

可能发生的处理量是无限的。

两个用户可能希望同时将数据导入同一个表也许他们正在导入相哃的数据,可能一个是导入Test 1分数另一个是导入Test 2分数。

在任何一种情况下使用临时表都有很好的理由。两个用户都可以导入数据; 数据不會相互干扰可以依次处理。

通常用户在会话中导入他们的数据。作为流程的一部分会创建会话记录,并且用户的导入与该会话相关聯会话适用于报告验证错误。我的脚本可以记录会话32有六个被拒绝的记录

FileMaker数据导入:但我现在想要它!

从用户的角度来看,以所描述嘚方式进行的FileMaker数据导入似乎很多首先将数据导入临时表。然后它在某种程度上得到验证最后,它被处理成正确的表格

是的。以上描述确实需要一些时间用户可能会对此犹豫不决。但让我们考虑替代方案:

  1. 数据将导入到实际表中其中包含许多计算字段。用户可以看箌“导入”对话框很多分钟她不能在FileMaker中做任何其他工作。
  2. 数据未正确导入实际表中测试分数列最终位于学号ID列中。
  3. 数据将导入到实际表中但数据源包含需要放入相关表的额外列。

耐心是一种(共同的)美德

当我还是一名教师时我还担任过数据库管理员(两份全职工莋)。每年我都必须使用学生数据设置我们的外部服务那些来自大型测试和学生组织公司的在线服务会要求我将文件上传到网站,然后等待最多24小时直到数据处理完毕。我不可避免地会收到一份报告说某些记录(或整个导入会话)被拒绝原因很清楚,为什么它被拒绝叻

我认为要求用户等待几分钟或几小时才能将导入的数据显示在自定义应用中是合理的。我认为他们宁愿在正确的表和字段中验证数据而不是立即查看错误的数据。

幸运的是我们有可用的工具来快速验证和处理数据。我们可以使用服务器端计划(PSOS,发音为PSOS)我们甚至可以使用JavaScript或外部微服务来帮助以某种方式处理数据。

所以我们不是运气不好用户可以在导入后的某个时间看到正确的数据。

在设计導入过程时目标表是一个重要的考虑因素。在我看来临时表是所有用户驱动的导入的正确选择。

我要回帖

更多关于 一步一步解决问题或完成任务的方法 的文章

 

随机推荐