Kontekstinhallinta2 min luettavaa

Sama nimi teki kahdesta tuotteesta yhden

Neljä riviä oli kenttä kentältä samoja kuin kaksi muuta, eikä tuonti olisi valittanut siitä sanaakaan. Näin selvität ennen ajoa, mikä kenttä päättää, mitkä rivit ovat koneelle sama asia.

Sama nimi teki kahdesta tuotteesta yhden

Kun listalla on kaksi täysin samanlaista riviä, ensimmäinen ajatus on poistaa toinen.

Olin viemässä tuotelistaa verkkokauppaan. Listassa oli 59 riviä, ja tein niistä tuontitiedoston, joka luo tuotteet valmiiksi luonnoksina. Ennen ajoa laskin, montako eri tuotetta tiedostosta oikeasti syntyy. Luku ei täsmännyt rivimäärään.

Neljä riviä oli kenttä kentältä samoja kuin kaksi aiempaa riviä: Sama nimi, sama tuotekoodi, sama hinta, sama sävy. Niissä ei ollut yhtäkään kohtaa, joka olisi erottanut ne toisistaan.

Miksi kone ei olisi valittanut

Tuonti ei olisi kaatunut niihin. Se olisi onnistunut.

Alusta tunnistaa tuotteen tunnisteella, joka johdetaan tuotteen nimestä. Kaksi riviä, joilla on sama nimi, tarkoittavat sille samaa tuotetta, joten niiden tiedot kirjoitetaan päällekkäin yhteen tietueeseen. Lopputuloksessa ei näy virhettä eikä varoitusta, vaan kaksi tuotetta vähemmän kuin listalla oli rivejä. Ja koska kukaan ei laske valmiita tuotteita yksitellen, puuttuvat kaksi löytyvät vasta kun joku etsii niitä.

Sama mekanismi on toisaalla välttämätön. Yksi tuote vei tiedostossa jopa 13 riviä, koska jokainen koko ja jokainen kuva on oma rivinsä, ja juuri sama tunniste pitää ne yhtenä tuotteena koossa. Se kenttä, joka kokoaa tuotteen, on sama kenttä, joka hävittää sen.

En poistanut rivejä

Jätin ne pois tuonnista ja merkitsin ne erikseen ihmisen päätettäväksi. Ero on olennainen: Poistaminen olisi ollut päätös siitä, ettei niitä tarvita. Pois jättäminen oli päätös siitä, etten tiedä.

Täsmälleen samanlainen rivi on harvoin vahinko. Paljon useammin se on kaksi eri asiaa, joiden ero on jäänyt kirjaamatta. Näillä riveillä oli kyse samasta tuotteesta kahtena eri versiona, mutta yksikään kenttä ei kertonut, kummasta oli kumpi. Tieto oli listan tekijän päässä, ei listalla.

Loput 53 tuotetta menivät läpi ilman virheitä ja ilman varoituksia, ja tarkistin ne kaupasta itse enkä tuonnin omasta raportista. Tunteja en mitannut, joten en väitä säästöä. Muuttui se, että virhe näkyi ennen ajoa eikä kampanjan aikana.

Mitä tästä kannattaa ottaa omaan työhön

Jos sinulla on lista, joka menee johonkin järjestelmään, kolme asiaa kannattaa tarkistaa tällä viikolla.

  • Selvitä, mikä kenttä on tunniste. Katso järjestelmän ohjeesta, mistä se päättelee, että kaksi riviä ovat sama tietue. Se ei useinkaan ole se tunnus, jonka itse annat, vaan jokin nimestä johdettu.
  • Laske rivit ja tunnisteet erikseen. Jos rivejä on enemmän kuin eri tunnisteita, haluat tietää sen ennen ajoa etkä sen jälkeen. Se on yksi kaava, ei projekti.
  • Älä siivoa kaksoiskappaleita, kysy niiltä. Kun kaksi riviä on identtisiä, oikea kysymys ei ole kumpi poistetaan, vaan mikä niitä pitäisi erottaa. Se vastaus kuuluu omaan kenttään, ei nimeen.

Sama pätee kaikkeen, mitä annat mallille tai automaatiolle: Kone ei kysy, kumpi kahdesta samannäköisestä on se oikea. Se valitsee toisen ja jatkaa. Toistuvan tiedonsiirron voi hyvin ottaa pois nykyisten tekijöiden käsistä, mutta vasta kun data kestää sen nopeuden, jolla kone sitä käsittelee.