培训 · 第 6 课

您怎样让系统彼此对话?

在两个系统之间放一条连接,本身并不能让两者以同一含义持有同一条记录。这一课您来填对接地图:哪个字段往哪个方向走,格式怎样转换,同一条记录怎样不被劈成两条,连接断开时活停在谁那里。

这一课您会学到什么

第五课里您搭起了第一条流程,而对接在搭建单上只占一行。这一课把那一行展开。两个系统彼此理解,并不等于在它们之间放一条连接;只有写下哪个字段往哪个方向走、格式怎样转换、连接断开时谁在等,这份约定才算立住。

这一课不去逐屏讲某个工具的连接器。讲的是对接地图:在搭建连接之前填好、搭完之后仍留在手里的记录。有了地图,无论用哪个工具搭建连接,同样的问题都能带着答案出现。

本课目标

  • 用六列填好对接地图
  • 为每一对字段标出方向与来源
  • 把格式转换写下来,而不是留给猜测
  • 选定去重键并定下冲突规则
  • 把首次迁移与持续同步分开来决定
  • 写下连接断开时谁在等、人工替代是什么
  • 用三次通过检验连接:空值、寻常、异常

前置条件:第三课的字段词典和第五课搭好的流程。没有字段词典就写不出对应表,因为要配对的字段还没有定义。

对接是什么,不是什么

对接的意思是两个系统以同一含义持有同一条记录。有一条连接本身给不出这一点;只有两边以同一含义读同一个字段时,记录才算真正共有。

在实务里这个分别用一个问题来量:把一条记录在两个系统里并排打开,两边说的是同一件事吗?如果答案是否,连接在跑,但对接没有立住。这种状态也不报错,因为每个系统在自己内部看起来都是自洽的。

对接是

字段彼此定义、方向选定、格式转换、同一条记录不被劈成两条。这些都是可以写下来的决定。

对接不是

在两个系统之间放一条连接,然后看着数据流动。流动的数据是否被正确读取是另一个问题,它不会自己回答。

边界标记

每当您在配对字段时停下来想「对面把这个算成什么」,那里就缺了地图上的一行。缺的那一行会在第一条异常记录上露出来。

对接地图:六列

地图放得下一页,每一行描述一对字段。六列对应搭建连接时会被问到的六个问题;某一列留空时,那个字段的行为就交给了工具。

在搭建连接之前填地图,和搭完之后再填是两种活。先填,缺口在纸面上显出来;后填,被记录下来的是工具产生出来的行为,而错误的行为也会以正确的样子进入地图。

地图的六列

  • 来源系统与来源字段:记录在哪里产生
  • 目标系统与目标字段:记录写到哪里
  • 方向:单向还是双向
  • 格式转换:同一个值两边各自怎么写
  • 若来时为空:字段为空期间目标里放什么
  • 若发生冲突:两边不同时哪个值留下

最后两列通常最后才填,尽管它们值得最先问。空值和冲突,是对接产生无声错误的两个位置。

方向:来源系统与镜像系统

每一对字段里,一边是记录产生的地方,另一边是它的镜像。选来源不是偏好而是认定:字段第一次成形的地方就是来源。镜像承载记录,而不是改动记录。

双向也能搭,只是有代价:两边都能写之后,冲突的可能就出现了,而冲突规则若没有写下,最后写的一方胜出。谁最后写往往取决于时点,于是结果变得难以预料。

来源系统

字段最先产生的地方。更正也在这里做;在镜像里做的更正,可能在下一次传输时被抹回去。

镜像系统

为了显示和推进自己的活而持有记录的一边。把镜像字段当作只读之后,团队里的争论会变短。

双向

两边都能写的字段。只有在冲突规则写好时才搭;没有规则时,字段会被转成单向。

字段对应:同一件事,不同名字

两个系统用不同的名字保存同一份信息。对应表把这些名字并排放好,但真正的活是配对定义而不是名字。同名的两个字段说的是不同的事,比不同名的两个字段说的是同一件事更常见。

第三课的字段词典在这里派上用场:因为字段的含义写下来了,对应的讨论就在定义上进行。没有词典,配对就变成把两个界面并排摆着,再把看起来相像的方框连起来。

对应表填满之后,两个系统之间不再留下没被谈到的字段。没被谈到的字段,就是在传输中悄悄空着过去的字段。

格式转换:日期、电话、金额、姓名

两个系统可能把同一个值写成不同的样子。日期的顺序、电话的前缀、金额的分隔符、姓名的大小写,是传输悄悄坏掉的经典位置。这种坏掉不报错,因为目标系统能按自己的规则去解读收到的值。

转换由谁来做,在地图上得到回答:来源一侧、传输过程中,还是目标一侧。三个位置都能用,但选择没写下时,转换会在两个地方各做一次,值也就因为转了两次而坏掉。

日期与时间

顺序和时区是两个不同的问题。同一天可能落到两天上;月和日换了位置时,记录看起来依然有效,因此不被察觉。

电话与标识

国家前缀、空格和分隔符。如果去重键是电话,格式差异会把同一个人劈成两条记录。

金额与单位

小数分隔、千分位分隔和币种。不带单位的金额,在目标里被解读时会落到默认值上。

如果一条转换规则能写进地图的一行,它就足够清楚。写不进一行的规则,通常是两条规则混在了一起。

去重键:同一条记录两次

传输最常产生的结果,是同一条记录在目标里被劈成两条。原因通常是这样:系统要看一个键,才知道收到的记录先前是否写过,而这个键要么没有选定,要么两边不是以同一形态保存的。

选键是第三课的题目;在这里要确认的是键在两个系统里以同一形态存在。如果键在来源里带着空格、在目标里不带空格,两条记录看起来就不同,目标里于是出现重复记录。

关于键的三个问题

  • 键在两个系统里是同一形态吗?
  • 键会随时间改变吗?改变之后旧记录会怎样?
  • 键为空的记录怎么处理:写入,还是先扣住?

重复记录是一种无声的错误。报表把合计撑大,客户被联系两次,过一阵子就分不清两条记录里哪一条是现行的。

节奏:即时、排队与批量

记录什么时候走,和走的是什么一样重要。即时传输是最显眼的选择,但不是每件活都要求即时搬运;在延迟可以被接受的地方,批量传输运转起来活动部件更少。

选节奏不是对速度的偏好,而是对等待的偏好:传输晚了,谁在等,那个人察觉得到这份延迟吗?没被察觉的延迟不会作为故障回来,而会作为「数据不对」回来。

1 即时传输

记录一生成就走。若没有写下对面不回应时会怎样,记录可能悬在半空。

2 排队传输

记录写进一条队列,按次序搬运。断开的那一刻队列在等,连接回来后从停下的地方接着走。

3 批量传输

按固定间隔一起搬运。在接受延迟的地方是最朴素的选择;传输窗口要告知团队。

历史数据:搬,还是不搬?

搭建连接时最常被跳过的问题是这个:到今天为止积下的记录会怎样?这里有两件不同的活,混在一起两件都只做一半。首次迁移是一次性的搬运;持续同步管的是从此以后。一个结束,另一个开始,两者的规则也不必相同。

搬历史数据并不是每种情形都需要。从「今天起」开始也是有效的选择,对多数试点来说已经够用;旧记录继续留在自己的系统里。一旦决定要搬,就写下范围:从哪个日期起、哪种状态的记录,已结案的要不要一起。

首次迁移这一行写什么

  • 范围:历史数据搬不搬,不搬的话从哪天起
  • 日期区间:从哪个日期起
  • 状态筛选:已结案、已取消、已归档的记录算不算
  • 重复排查:键的形态在两个系统里对齐了吗
  • 回退:迁移走偏时怎样从目标里清出去

首次迁移是对去重键压力最大的时刻。逐条进来时看不出的格式差异,在成批搬运时会成批地造出重复记录,数量可能超过任何人愿意手工清理的限度。

所以首次迁移用真实数据而不是测试数据来做,并且最好可以回退:先搬一个窄的日期区间,把结果在两个系统里对照,没有出现重复就搬其余的。给搬过去的记录做上标记,才使得走偏的迁移能从目标里清出去。

连接断开时谁在等?

每条连接都会时不时断开。这一课不打算取消这种可能,而是提议写下断开时活停在哪里。没写下来的断开,露面时不像故障,而像几天后才被注意到的缺口。

地图的断开行装三样东西:在等的人、人工替代和回退。这三样写下了,断开就能当作延迟来管;没写下,断开可能悄悄变成数据丢失。

断开这一行写什么

  • 谁在等:活留着没做完的那个人的名字
  • 提醒发往哪里:发给人,还是发到公共信箱
  • 人工替代:没有连接时同样的活怎么走
  • 回退:搬了一半的记录怎样从目标里取回
  • 断开记事:断开和它的时长记在哪里

搬了一半的记录比根本没搬的记录更难被察觉:目标里毕竟出现了一条记录,缺口只有在有人用它时才露出来。

权限与访问:哪个账号看得到什么

连接是用某个账号搭起来的,那个账号看得到的一切都可能向对面敞开。搭建时用权限最大的账号会让活更快,也会留下一扇之后没人去收窄的门。

账号属于这份工作而不属于某个人,是另一件事。用个人账号搭起来的连接,会在那个人离开时悄悄停下,而停下的原因往往被到连接本身里去找。

访问这一行写什么

  • 连接用哪个账号搭的,这个账号属于谁
  • 账号能读哪些记录、能写哪些记录
  • 权限什么时候复核
  • 连接关闭时要收回哪些访问

第三课写下的访问规则在这里第二次受检:词典里写明了谁可以看的字段,可能正通过对接向另一个系统敞开。

检验对接:三次通过

连接搭好之后,检验不会因为搬了一条记录、看了一眼结果就结束。三次通过一起做,地图上的大多数行就得到了确认。

检验用测试数据来做,测试记录靠名字就能认出来。用真实记录做的检验,会在目标系统里留下必须清理的痕迹。

1 空值通过

把非必填字段留空的记录。它显示空值在目标里变成什么:保持为空、写入默认值,还是记录被拒。

2 寻常通过

日常工作里典型的那条记录。用来把字段对应和格式转换并排打开来对照。

3 异常通过

长姓名、格式不同的电话、同一个键下的第二条记录。这一次通过检验的是去重与冲突规则。

三次通过的结果写在地图旁边。没有检验过的行,不算搭好。

从头到尾的例子:房产中介开始对接

在前几课里,这家中介选了试点任务,写下了流程,做出了字段词典,选了工具,搭起了第一条流程。现在房源系统和跟进表看不见彼此,同一条咨询要用手输入两个地方。

中介从填地图开始,第一行就起了讨论:电话号码在哪个系统里产生?进到房源系统的咨询带着电话,跟进表里也有电话;两者的形态并不相同。

中介填下的头几行

来源标为房源系统的咨询记录,跟进表被当作镜像。电话字段的格式转换放在传输过程中做,统一成一种形态。去重键选电话,因为同一个人可能从不同的房源写进来。

空值这一行这样写:电话为空时记录不写进跟进表,而是落到待办清单里,中介的负责人在一天结束时过一遍这份清单。冲突这一行里,来源一侧被放在上面;在跟进表里手工做的更正写进备注字段,而不是电话字段。

节奏选批量传输,因为咨询一天搬几次而不是来一条搬一条,对这份活已经够用。断开这一行里,在等的人写的是中介的负责人,人工替代则是把过去的录入方式继续开着。

跟进表里本来就有记录,于是首次迁移的决定也一并做出。中介没有搬全部历史,而是取了较近且仍然打开的咨询;已结案的留在外面,因为它们在跟进表里的对应本来就已关闭。迁移先在一个窄的日期区间上试,并把两个系统的行数对照。第一次试就出现了重复:电话的形态还没有对齐。转换被改正,迁移重做一遍,搬过去的记录打上一个标签,靠这个标签,走偏的迁移可以从目标里成批清出去。

在三次通过的检验里,异常通过抓到一个缺口:同一个电话来了第二条咨询时,跟进表里会新开一条记录。键的规则被改正,第二条咨询作为备注进到同一个人名下。

练习:这一周

这一周把一条连接搬到地图上。不需要新搭一条连接;给一条已经在跑的传输画地图同样管用,而且通常会带出几行缺口。

下载对接地图(xlsx) · 一页纸的地图,带您填好字段对应、方向、格式转换、首次迁移和断开时的行为;三次通过的检验也在里面。

常见错误

下面这些错误不是从连接本身来的,而是从地图没填完来的。它们的共同点是:全都在不产生错误提示的情况下运转。

不写方向就连起来

两边都能写之后,最后写的一方胜出。手工做的更正可能在下一次传输时被抹回去,而原因会被到工具里去找。

把键留在原来的形态

同一个电话以两种形态存在时,目标里会出现两条记录。重复记录既弄坏报表,也弄坏与客户的联系。

把空值交给工具

空字段在目标里可能落到默认值上。默认值看起来像填好的值,之后就分辨不出来了。

不写下断开

传输停下时若没有指定谁在等,缺口可能在几天后随着客户的一句询问才露出来。

用真实数据检验

测试记录从真实数据里挑时,目标里会留下需要清理的痕迹,而清理往往只做了一半。

事后才填地图

搭完之后写的地图,记下的是工具产生的行为。错误的行为也会顺着同一条路被记成正确的。

检查清单

上线之前,如果这份清单上的每一条都答得上来,地图就算填完了。

上线之前

  • 每一行都写着来源、目标和方向
  • 需要格式转换的字段已标出,转换的位置已选定
  • 去重键在两个系统里是同一形态
  • 首次迁移的范围、日期区间和回退路径已写下
  • 每个字段在空值时的行为都写下了
  • 冲突规则写下了,团队也知道
  • 搭建连接的账号属于这份工作,不属于某个人
  • 在等的人、人工替代和回退路径写下了
  • 三次通过已用测试数据做过,结果已记下
  • 测试记录已从目标系统里清掉

术语

对接谈话里会出现的词。和搭建连接的人说同一种话,会让填地图这件事变短。

接下来是什么

这一课里您让两个系统说上了话:配对了字段、选定了方向、转换了格式、决定了历史数据搬不搬,也写下了断开时的行为。接下来的几课讲的是把这套秩序维持下去:处理例外、把团队带进流程、衡量结果。

如果想从已经发布的课接着往下走,接下来是讲传输没有按预期运转时该往哪里看的那一模块。

第 7 课:当您说自动化不工作时

无声故障、故障单、二分法和持久的修正。

第 5 课:搭出第一个自动化

搭建单与五个部件。这一课展开的对接那一行就在那里。

全部课程

培训部分的全部内容以及此后新增的模块。

如果想在连接两个系统之前一起把地图填好,请与我们联系。

通过WhatsApp获取报价

常见问题

做对接需要写代码吗?
取决于您选的工具。这一课的地图不写代码也能填;讲的不是连接器怎么用,而是两个系统之间应当写下什么。有了地图,无论用哪条路搭建连接,同样的问题都已经有了答案。
已经有现成的连接器,还需要地图吗?
现成的连接器按它自己的假设配对字段,而这些假设不会显示在屏幕上。地图显示这些假设是否合您的活;不合的地方通常出现在空值行和冲突行上。
两个系统可以互相写入吗?
可以,前提是冲突规则写下了。没有规则时,两边更新同一个字段,最后写的一方留下,手工做的更正可能在下一次传输时被抹回去。如果规则写不出来,把字段转成单向通常意外更少。
同一条记录为什么在目标里被劈成两条?
通常是去重键没有选定,或者在两个系统里形态不同。一边带空格、另一边不带空格的电话号码,会把同一个人显示成两条独立记录。把键的形态对齐,可以让大多数重复记录消失。
连接断开时数据会丢吗?
取决于传输的节奏。排队传输里记录在队列中等待,连接回来后从停下的地方接着走;即时传输里,如果没有写下对面不回应时会怎样,记录可能悬在半空。地图的断开行正是为此而填。