在两个系统之间放一条连接,本身并不能让两者以同一含义持有同一条记录。这一课您来填对接地图:哪个字段往哪个方向走,格式怎样转换,同一条记录怎样不被劈成两条,连接断开时活停在谁那里。
第五课里您搭起了第一条流程,而对接在搭建单上只占一行。这一课把那一行展开。两个系统彼此理解,并不等于在它们之间放一条连接;只有写下哪个字段往哪个方向走、格式怎样转换、连接断开时谁在等,这份约定才算立住。
这一课不去逐屏讲某个工具的连接器。讲的是对接地图:在搭建连接之前填好、搭完之后仍留在手里的记录。有了地图,无论用哪个工具搭建连接,同样的问题都能带着答案出现。
前置条件:第三课的字段词典和第五课搭好的流程。没有字段词典就写不出对应表,因为要配对的字段还没有定义。
对接的意思是两个系统以同一含义持有同一条记录。有一条连接本身给不出这一点;只有两边以同一含义读同一个字段时,记录才算真正共有。
在实务里这个分别用一个问题来量:把一条记录在两个系统里并排打开,两边说的是同一件事吗?如果答案是否,连接在跑,但对接没有立住。这种状态也不报错,因为每个系统在自己内部看起来都是自洽的。
字段彼此定义、方向选定、格式转换、同一条记录不被劈成两条。这些都是可以写下来的决定。
在两个系统之间放一条连接,然后看着数据流动。流动的数据是否被正确读取是另一个问题,它不会自己回答。
每当您在配对字段时停下来想「对面把这个算成什么」,那里就缺了地图上的一行。缺的那一行会在第一条异常记录上露出来。
地图放得下一页,每一行描述一对字段。六列对应搭建连接时会被问到的六个问题;某一列留空时,那个字段的行为就交给了工具。
在搭建连接之前填地图,和搭完之后再填是两种活。先填,缺口在纸面上显出来;后填,被记录下来的是工具产生出来的行为,而错误的行为也会以正确的样子进入地图。
最后两列通常最后才填,尽管它们值得最先问。空值和冲突,是对接产生无声错误的两个位置。
每一对字段里,一边是记录产生的地方,另一边是它的镜像。选来源不是偏好而是认定:字段第一次成形的地方就是来源。镜像承载记录,而不是改动记录。
双向也能搭,只是有代价:两边都能写之后,冲突的可能就出现了,而冲突规则若没有写下,最后写的一方胜出。谁最后写往往取决于时点,于是结果变得难以预料。
字段最先产生的地方。更正也在这里做;在镜像里做的更正,可能在下一次传输时被抹回去。
为了显示和推进自己的活而持有记录的一边。把镜像字段当作只读之后,团队里的争论会变短。
两边都能写的字段。只有在冲突规则写好时才搭;没有规则时,字段会被转成单向。
两个系统用不同的名字保存同一份信息。对应表把这些名字并排放好,但真正的活是配对定义而不是名字。同名的两个字段说的是不同的事,比不同名的两个字段说的是同一件事更常见。
第三课的字段词典在这里派上用场:因为字段的含义写下来了,对应的讨论就在定义上进行。没有词典,配对就变成把两个界面并排摆着,再把看起来相像的方框连起来。
对应表填满之后,两个系统之间不再留下没被谈到的字段。没被谈到的字段,就是在传输中悄悄空着过去的字段。
两个系统可能把同一个值写成不同的样子。日期的顺序、电话的前缀、金额的分隔符、姓名的大小写,是传输悄悄坏掉的经典位置。这种坏掉不报错,因为目标系统能按自己的规则去解读收到的值。
转换由谁来做,在地图上得到回答:来源一侧、传输过程中,还是目标一侧。三个位置都能用,但选择没写下时,转换会在两个地方各做一次,值也就因为转了两次而坏掉。
顺序和时区是两个不同的问题。同一天可能落到两天上;月和日换了位置时,记录看起来依然有效,因此不被察觉。
国家前缀、空格和分隔符。如果去重键是电话,格式差异会把同一个人劈成两条记录。
小数分隔、千分位分隔和币种。不带单位的金额,在目标里被解读时会落到默认值上。
如果一条转换规则能写进地图的一行,它就足够清楚。写不进一行的规则,通常是两条规则混在了一起。
传输最常产生的结果,是同一条记录在目标里被劈成两条。原因通常是这样:系统要看一个键,才知道收到的记录先前是否写过,而这个键要么没有选定,要么两边不是以同一形态保存的。
选键是第三课的题目;在这里要确认的是键在两个系统里以同一形态存在。如果键在来源里带着空格、在目标里不带空格,两条记录看起来就不同,目标里于是出现重复记录。
重复记录是一种无声的错误。报表把合计撑大,客户被联系两次,过一阵子就分不清两条记录里哪一条是现行的。
记录什么时候走,和走的是什么一样重要。即时传输是最显眼的选择,但不是每件活都要求即时搬运;在延迟可以被接受的地方,批量传输运转起来活动部件更少。
选节奏不是对速度的偏好,而是对等待的偏好:传输晚了,谁在等,那个人察觉得到这份延迟吗?没被察觉的延迟不会作为故障回来,而会作为「数据不对」回来。
记录一生成就走。若没有写下对面不回应时会怎样,记录可能悬在半空。
记录写进一条队列,按次序搬运。断开的那一刻队列在等,连接回来后从停下的地方接着走。
按固定间隔一起搬运。在接受延迟的地方是最朴素的选择;传输窗口要告知团队。
搭建连接时最常被跳过的问题是这个:到今天为止积下的记录会怎样?这里有两件不同的活,混在一起两件都只做一半。首次迁移是一次性的搬运;持续同步管的是从此以后。一个结束,另一个开始,两者的规则也不必相同。
搬历史数据并不是每种情形都需要。从「今天起」开始也是有效的选择,对多数试点来说已经够用;旧记录继续留在自己的系统里。一旦决定要搬,就写下范围:从哪个日期起、哪种状态的记录,已结案的要不要一起。
首次迁移是对去重键压力最大的时刻。逐条进来时看不出的格式差异,在成批搬运时会成批地造出重复记录,数量可能超过任何人愿意手工清理的限度。
所以首次迁移用真实数据而不是测试数据来做,并且最好可以回退:先搬一个窄的日期区间,把结果在两个系统里对照,没有出现重复就搬其余的。给搬过去的记录做上标记,才使得走偏的迁移能从目标里清出去。
每条连接都会时不时断开。这一课不打算取消这种可能,而是提议写下断开时活停在哪里。没写下来的断开,露面时不像故障,而像几天后才被注意到的缺口。
地图的断开行装三样东西:在等的人、人工替代和回退。这三样写下了,断开就能当作延迟来管;没写下,断开可能悄悄变成数据丢失。
搬了一半的记录比根本没搬的记录更难被察觉:目标里毕竟出现了一条记录,缺口只有在有人用它时才露出来。
连接是用某个账号搭起来的,那个账号看得到的一切都可能向对面敞开。搭建时用权限最大的账号会让活更快,也会留下一扇之后没人去收窄的门。
账号属于这份工作而不属于某个人,是另一件事。用个人账号搭起来的连接,会在那个人离开时悄悄停下,而停下的原因往往被到连接本身里去找。
第三课写下的访问规则在这里第二次受检:词典里写明了谁可以看的字段,可能正通过对接向另一个系统敞开。
连接搭好之后,检验不会因为搬了一条记录、看了一眼结果就结束。三次通过一起做,地图上的大多数行就得到了确认。
检验用测试数据来做,测试记录靠名字就能认出来。用真实记录做的检验,会在目标系统里留下必须清理的痕迹。
把非必填字段留空的记录。它显示空值在目标里变成什么:保持为空、写入默认值,还是记录被拒。
日常工作里典型的那条记录。用来把字段对应和格式转换并排打开来对照。
长姓名、格式不同的电话、同一个键下的第二条记录。这一次通过检验的是去重与冲突规则。
三次通过的结果写在地图旁边。没有检验过的行,不算搭好。
在前几课里,这家中介选了试点任务,写下了流程,做出了字段词典,选了工具,搭起了第一条流程。现在房源系统和跟进表看不见彼此,同一条咨询要用手输入两个地方。
中介从填地图开始,第一行就起了讨论:电话号码在哪个系统里产生?进到房源系统的咨询带着电话,跟进表里也有电话;两者的形态并不相同。
来源标为房源系统的咨询记录,跟进表被当作镜像。电话字段的格式转换放在传输过程中做,统一成一种形态。去重键选电话,因为同一个人可能从不同的房源写进来。
空值这一行这样写:电话为空时记录不写进跟进表,而是落到待办清单里,中介的负责人在一天结束时过一遍这份清单。冲突这一行里,来源一侧被放在上面;在跟进表里手工做的更正写进备注字段,而不是电话字段。
节奏选批量传输,因为咨询一天搬几次而不是来一条搬一条,对这份活已经够用。断开这一行里,在等的人写的是中介的负责人,人工替代则是把过去的录入方式继续开着。
跟进表里本来就有记录,于是首次迁移的决定也一并做出。中介没有搬全部历史,而是取了较近且仍然打开的咨询;已结案的留在外面,因为它们在跟进表里的对应本来就已关闭。迁移先在一个窄的日期区间上试,并把两个系统的行数对照。第一次试就出现了重复:电话的形态还没有对齐。转换被改正,迁移重做一遍,搬过去的记录打上一个标签,靠这个标签,走偏的迁移可以从目标里成批清出去。
在三次通过的检验里,异常通过抓到一个缺口:同一个电话来了第二条咨询时,跟进表里会新开一条记录。键的规则被改正,第二条咨询作为备注进到同一个人名下。
这一周把一条连接搬到地图上。不需要新搭一条连接;给一条已经在跑的传输画地图同样管用,而且通常会带出几行缺口。
下载对接地图(xlsx) · 一页纸的地图,带您填好字段对应、方向、格式转换、首次迁移和断开时的行为;三次通过的检验也在里面。
下面这些错误不是从连接本身来的,而是从地图没填完来的。它们的共同点是:全都在不产生错误提示的情况下运转。
两边都能写之后,最后写的一方胜出。手工做的更正可能在下一次传输时被抹回去,而原因会被到工具里去找。
同一个电话以两种形态存在时,目标里会出现两条记录。重复记录既弄坏报表,也弄坏与客户的联系。
空字段在目标里可能落到默认值上。默认值看起来像填好的值,之后就分辨不出来了。
传输停下时若没有指定谁在等,缺口可能在几天后随着客户的一句询问才露出来。
测试记录从真实数据里挑时,目标里会留下需要清理的痕迹,而清理往往只做了一半。
搭完之后写的地图,记下的是工具产生的行为。错误的行为也会顺着同一条路被记成正确的。
上线之前,如果这份清单上的每一条都答得上来,地图就算填完了。
对接谈话里会出现的词。和搭建连接的人说同一种话,会让填地图这件事变短。
这一课里您让两个系统说上了话:配对了字段、选定了方向、转换了格式、决定了历史数据搬不搬,也写下了断开时的行为。接下来的几课讲的是把这套秩序维持下去:处理例外、把团队带进流程、衡量结果。
如果想从已经发布的课接着往下走,接下来是讲传输没有按预期运转时该往哪里看的那一模块。
如果想在连接两个系统之前一起把地图填好,请与我们联系。
通过WhatsApp获取报价