Forum Discussion

Ray_Brosius's avatar
Ray_Brosius
Helper III
5 years ago
Solved

Transform some Audit trail data from JIRA

Hello, I have a question on how to transform an "audit" table to make it easier to utilize...   1) We have a table of "Issues" and their current values.     2) We have an audit table that ...
  • mahoneypat's avatar
    5 years ago

    Here is one way to do it, demonstrated with a similar set of data.  To see how it works, just create a blank query, go to Advanced Editor, and replace the text there with the M code below.

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUQpJTcwFUoYgrG+ob2RgZABkQiUMlWJ1UJQZgbC+MUwZRA2EjgCrdUKoNUZVi0uZCViZKbKREVDaWSk2FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Bug = _t, Field = _t, #"Change ID" = _t, #"Change Date" = _t, From = _t, To = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Bug", type text}, {"Field", type text}, {"Change ID", Int64.Type}, {"Change Date", type date}, {"From", type text}, {"To", type text}}),
        #"Sorted Rows" = Table.Buffer(Table.Sort(#"Changed Type",{{"Bug", Order.Ascending}, {"Change Date", Order.Ascending}})),
        #"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 0, 1, Int64.Type),
        #"Added Custom" = Table.AddColumn(#"Added Index", "Custom", each if [Bug] = #"Added Index"{[Index] + 1}[Bug] and [Field] = #"Added Index"{[Index] + 1}[Field] then #"Added Index"{[Index] + 1}[Change Date] else null, type date),
        #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"From", "Index"}),
        #"Replaced Errors" = Table.ReplaceErrorValues(#"Removed Columns", {{"Custom", null}}),
        #"Renamed Columns" = Table.RenameColumns(#"Replaced Errors",{{"To", "Value"}, {"Change Date", "Date From"}, {"Custom", "Date To"}})
    in
        #"Renamed Columns"

     

     

    Pat