Question

Change danish social security number


The danish social security number are build up like (ddmmyy-xxxx) where xxxx is a unique code.

I have a dataset from a xlsx-file, where the danish social security number are like (ddmmyyxxxx) AND if the date startes wtih 01, 02 ect, then it cut the zero of.

I need to make FME read the xlsx-file and change the danish social security number to this format (010180-1234) and write it to my PostGIS-DB.

I hope someone can help me with that.

Best regards,

Jacob Arpe

Kalundborg Municipalty


4 replies

Userlevel 4
Badge +25

Here's what I did:

  1. StringLengthCalculator to calculate the length of the number. If it's 9 characters it's missing a leading 0. Those features get routed through an AttributeCreator that adds the 0
  2. AttributeSplitter to split the first 6 characters (the ddmmyy) off from the rest, this results in a list with 2 elements (_list{0} = '010180' and _list{1} = '1234')
  3. AttributeCreator to create a new attribute which is _list{0}, a dash and then _list{1}

Hope this helps. You may want to consider adding some extra error checking, e.g. in the TestFilter to see if there's any numbers which are not 9 or 10 characters in length.

Badge +10

If it's a fixed length and it's always the leading zeros you are missing you can simply use a string padder to add 0 to the beginning of the field to make it up to the required length. Once it is the required length you can split and add the - using attribute manager/attributecreator

Here's what I did:

  1. StringLengthCalculator to calculate the length of the number. If it's 9 characters it's missing a leading 0. Those features get routed through an AttributeCreator that adds the 0
  2. AttributeSplitter to split the first 6 characters (the ddmmyy) off from the rest, this results in a list with 2 elements (_list{0} = '010180' and _list{1} = '1234')
  3. AttributeCreator to create a new attribute which is _list{0}, a dash and then _list{1}

Hope this helps. You may want to consider adding some extra error checking, e.g. in the TestFilter to see if there's any numbers which are not 9 or 10 characters in length.

It worked perfect. Some small modifications, but in general the workflow I need. Thanks.

If it's a fixed length and it's always the leading zeros you are missing you can simply use a string padder to add 0 to the beginning of the field to make it up to the required length. Once it is the required length you can split and add the - using attribute manager/attributecreator

Didn't try this one, but StingPadder is also new to me, but a great tool. Can use the in other workflows. Thanks.

Reply