Read/Write/Update Dataset Tag using Sparkplug B

Ok I'm not 100% sure what I did differently today from yesterday but I have figured it out. For one, in Ignition you can look at the raw data for a tag, which can give you an idea of what the payload should look like though it's not a one for one translation to Sparkplug B.

With 1 row of data in the dataset this is what the raw data looks like specifically looking at the value property.
image

Values Property

{
    "columns": [
        {
            "name": "Item",
            "type": "java.lang.String"
        },
        {
            "name": "Quantity",
            "type": "java.lang.Float"
        },
        {
            "name": "Unit of Measure",
            "type": "java.lang.String"
        },
        {
            "name": "Operation",
            "type": "java.lang.Short"
        },
        {
            "name": "Type",
            "type": "java.lang.String"
        }
    ],
    "rows": [
        [
            "Some Item",
            1.588,
            "LB",
            10,
            "RESN"
        ]
    ]
}

From Node-RED this is the payload I sent to get it to update.
image

{
    "metrics": [
        {
            "name": "Job/BOM",
            "datatype": 16,
            "dataset_value": {
                "num_of_columns": 5,
                "columns": [
                    "Item",
                    "Quantity",
                    "Unit of Measure",
                    "Operation",
                    "Type"
                ],
                "types": [
                    12,
                    9,
                    12,
                    2,
                    12
                ],
                "rows": [
                    {
                        "elements": [
                            {
                                "string_value": "Some Item"
                            },
                            {
                                "float_value": 1.588
                            },
                            {
                                "string_value": "LB"
                            },
                            {
                                "int_value": 10
                            },
                            {
                                "string_value": "RESN"
                            }
                        ]
                    }
                ]
            }
        }
    ]
}

Hope this can help someone else in the future