File Definition Rule to parse NetSuite Invoice JSON to EDI format

{

 “_id”: “66ebff0507368eaa45cc3eba”,

 “lastModified”: “2024-09-27T07:48:31.520Z”,

 “name”: “Samios”,

 “sandbox”: true,

 “description”: “Invoice”,

 “version”: “1”,

 “format”: “delimited/edifact”,

 “skipEmptyEndColDelimiter”: true,

 “delimited”: {

  “rowSuffix”: “‘”,

  “rowDelimiter”: “n”,

  “colDelimiter”: “+”

 },

 “rules”: [

  {

   “maxOccurrence”: 1,

   “required”: true,

   “skipRowSuffix”: true,

   “elements”: [

    {

     “name”: “UNA”,

     “value”: “UNA:+.?”

    }

   ]

  },

  {

   “maxOccurrence”: 2,

   “required”: true,

   “elements”: [

    {

     “name”: “UNB”,

     “value”: “UNB”

    },

    {

     “name”: “SYNTAX IDENTIFIER”,

     “value”: {

      “delimiter”: “:”,

      “elements”: [

       {

        “name”: “Syntax identifier”,

        “value”: “{{{[SYNTAX IDENTIFIER].[Syntax identifier]}}}”

       },

       {

        “name”: “Syntax version number”,

        “value”: “{{{[SYNTAX IDENTIFIER].[Syntax version number]}}}”

       }

      ]

     }

    },

    {

     “name”: “INTERCHANGE SENDER”,

     “value”: {

      “delimiter”: “:”,

      “elements”: [

       {

        “name”: “Sender identification”,

        “value”: “{{{[INTERCHANGE SENDER].[Sender identification]}}}”

       },

       {

        “name”: “Partner identification code qualifier”,

        “value”: “{{{[INTERCHANGE SENDER].[Partner identification code qualifier]}}}”

       }

      ]

     }

    },

    {

     “name”: “INTERCHANGE RECIPIENT”,

     “value”: {

      “delimiter”: “:”,

      “elements”: [

       {

        “name”: “Recipient identification”,

        “value”: “{{{[INTERCHANGE RECIPIENT].[Recipient identification]}}}”

       },

       {

        “name”: “Partner identification code qualifier”,

        “value”: “{{{[INTERCHANGE RECIPIENT].[Partner identification code qualifier]}}}”

       }

      ]

     }

    },

    {

     “name”: “DATE/TIME OF PREPARATION”,

     “value”: {

      “delimiter”: “:”,

      “elements”: [

       {

        “name”: “Date of preparation”,

        “value”: “{{{[DATE/TIME OF PREPARATION].[Date of preparation]}}}”

       },

       {

        “name”: “Time of preparation”,

        “value”: “{{{[DATE/TIME OF PREPARATION].[Time of preparation]}}}”

       }

      ]

     }

    },

    {

     “name”: “Interchange control reference”,

     “value”: “{{{[Interchange control reference]}}}”

    },

    {

     “name”: “UNB060”,

     “value”: “”

    },

    {

     “name”: “UNB070”,

     “value”: “”

    },

    {

     “name”: “UNB080”,

     “value”: “”

    },

    {

     “name”: “UNB090”,

     “value”: “”

    }

   ],

   “children”: [

    {

     “maxOccurrence”: 1,

     “required”: true,

     “elements”: [

      {

       “name”: “UNH”,

       “value”: “UNH”

      },

      {

       “name”: “MESSAGE REFERENCE NUMBER”,

       “value”: “{{{[MESSAGE REFERENCE NUMBER]}}}”

      },

      {

       “name”: “MESSAGE IDENTIFIER”,

       “value”: {

        “delimiter”: “:”,

        “elements”: [

         {

          “name”: “Message type identifier”,

          “value”: “{{{[MESSAGE IDENTIFIER].[Message type identifier]}}}”

         },

         {

          “name”: “Message type version number”,

          “value”: “{{{[MESSAGE IDENTIFIER].[Message type version number]}}}”

         },

         {

          “name”: “Message type release number”,

          “value”: “{{{[MESSAGE IDENTIFIER].[Message type release number]}}}”

         },

         {

          “name”: “Controlling agency”,

          “value”: “{{{[MESSAGE IDENTIFIER].[Controlling agency]}}}”

         }

        ]

       }

      }

     ],

     “children”: [

      {

       “maxOccurrence”: 1,

       “required”: true,

       “elements”: [

        {

         “name”: “BGM”,

         “value”: “BGM”

        },

        {

         “name”: “DOCUMENT/MESSAGE NAME”,

         “value”: {

          “delimiter”: “:”,

          “elements”: [

           {

            “name”: “Document/message name, coded”,

            “value”: “{{{[DOCUMENT/MESSAGE NAME].[Document/message name, coded]}}}”

           }

          ]

         }

        },

        {

         “name”: “DOCUMENT/MESSAGE NUMBER”,

         “value”: “{{{[DOCUMENT/MESSAGE NUMBER]}}}”

        }

       ],

       “children”: [

        {

         “name”: “DTM”,

         “maxOccurrence”: 2,

         “relativeDataPath”: “DTM”,

         “required”: true,

         “elements”: [

          {

           “name”: “DTM”,

           “value”: “DTM”

          },

          {

           “name”: “DATE/TIME/PERIOD”,

           “value”: {

            “delimiter”: “:”,

            “elements”: [

             {

              “name”: “Date/time/period qualifier”,

              “value”: “{{{[DATE/TIME/PERIOD].[Date/time/period qualifier]}}}”

             },

             {

              “name”: “Date/time/period”,

              “value”: “{{{[DATE/TIME/PERIOD].[Date/time/period]}}}”

             },

             {

              “name”: “Date/time/period format qualifier”,

              “value”: “{{{[DATE/TIME/PERIOD].[Date/time/period format qualifier]}}}”

             }

            ]

           }

          }

         ]

        },

        {

         “name”: “Segment Group 1”,

         “maxOccurrence”: 99,

         “relativeDataPath”: “Segment Group 1”,

         “required”: false,

         “elements”: [

          {

           “name”: “RFF”,

           “value”: “RFF”

          },

          {

           “name”: “REFERENCE”,

           “value”: {

            “delimiter”: “:”,

            “elements”: [

             {

              “name”: “Reference qualifier”,

              “value”: “{{{[REFERENCE].[Reference qualifier]}}}”

             },

             {

              “name”: “Reference number”,

              “value”: “{{{[REFERENCE].[Reference number]}}}”

             }

            ]

           }

          }

         ],

         “children”: [

          {

           “name”: “DTM”,

           “maxOccurrence”: 1,

           “relativeDataPath”: “Segment Group 1.DTM”,

           “required”: false,

           “elements”: [

            {

             “name”: “DTM”,

             “value”: “DTM”

            },

            {

             “name”: “DATE/TIME/PERIOD”,

             “value”: {

              “delimiter”: “:”,

              “elements”: [

               {

                “name”: “Date/time/period qualifier”,

                “value”: “{{{[DATE/TIME/PERIOD].[Date/time/period qualifier]}}}”

               },

               {

                “name”: “Date/time/period”,

                “value”: “{{{[[DATE/TIME/PERIOD].[Date/time/period]}}}”

               },

               {

                “name”: “Date/time/period format qualifier”,

                “value”: “{{{[DATE/TIME/PERIOD].[Date/time/period format qualifier]}}}”

               }

              ]

             }

            }

           ]

          }

         ]

        },

        {

         “name”: “Segment Group 25”,

         “maxOccurrence”: 9999999,

         “relativeDataPath”: “Segment Group 25”,

         “required”: true,

         “elements”: [

          {

           “name”: “LIN”,

           “value”: “LIN”

          },

          {

           “name”: “LINE ITEM NUMBER”,

           “value”: “{{{[LINE ITEM NUMBER]}}}”

          },

          {

           “name”: “ACTION REQUEST/NOTIFICATION, CODED”,

           “value”: “{{{[ACTION REQUEST/NOTIFICATION, CODED]}}}”

          },

          {

           “name”: “ITEM NUMBER IDENTIFICATION”,

           “value”: {

            “delimiter”: “:”,

            “elements”: [

             {

              “name”: “Item number”,

              “value”: “{{{[ITEM NUMBER IDENTIFICATION].[Item number]}}}”

             },

             {

              “name”: “Item number type, coded”,

              “value”: “{{{[ITEM NUMBER IDENTIFICATION].[Item number type, coded]}}}”

             },

             {

              “name”: “Code list responsible agency, coded”,

              “value”: “{{{[ITEM NUMBER IDENTIFICATION].[Code list responsible agency, coded]}}}”

             }

            ]

           }

          }

         ],

         “children”: [

          {

           “name”: “PIA”,

           “maxOccurrence”: 25,

           “relativeDataPath”: “PIA”,

           “required”: false,

           “elements”: [

            {

             “name”: “PIA”,

             “value”: “PIA”

            },

            {

             “name”: “PRODUCT ID. FUNCTION QUALIFIER”,

             “value”: “{{{[PRODUCT ID. FUNCTION QUALIFIER]}}}”

            },

            {

             “name”: “ITEM NUMBER IDENTIFICATION”,

             “value”: {

              “delimiter”: “:”,

              “elements”: [

               {

                “name”: “Item number”,

                “value”: “{{{[ITEM NUMBER IDENTIFICATION].[Item number]}}}”

               },

               {

                “name”: “Item number type, coded”,

                “value”: “{{{[ITEM NUMBER IDENTIFICATION].[Item number type, coded]}}}”

               }

              ]

             }

            }

           ]

          },

          {

           “name”: “QTY”,

           “maxOccurrence”: 25,

           “relativeDataPath”: “QTY”,

           “required”: true,

           “elements”: [

            {

             “name”: “QTY”,

             “value”: “QTY”

            },

            {

             “name”: “QUANTITY DETAILS”,

             “value”: {

              “delimiter”: “:”,

              “elements”: [

               {

                “name”: “Quantity qualifier”,

                “value”: “{{{[QUANTITY DETAILS].[Quantity qualifier]}}}”

               },

               {

                “name”: “Quantity”,

                “value”: “{{{[QUANTITY DETAILS].[Quantity]}}}”

               },

               {

                “name”: “Measure unit qualifier”,

                “value”: “{{{[QUANTITY DETAILS].[Measure unit qualifier]}}}”

               }

              ]

             }

            }

           ]

          },

          {

           “name”: “MOA”,

           “maxOccurrence”: 5,

           “relativeDataPath”: “MONETARY AMOUNT”,

           “required”: true,

           “elements”: [

            {

             “name”: “MOA”,

             “value”: “MOA”

            },

            {

             “name”: “MONETARY AMOUNT”,

             “value”: {

              “delimiter”: “:”,

              “elements”: [

               {

                “name”: “Monetary amount type qualifier”,

                “value”: “{{{[Monetary amount type qualifier]}}}”

               },

               {

                “name”: “Monetary amount”,

                “value”: “{{{[Monetary amount]}}}”

               },

               {

                “name”: “Currency, coded”,

                “value”: “{{{[Currency, coded]}}}”

               },

               {

                “name”: “Currency qualifier”,

                “value”: “{{{[Currency qualifier]}}}”

               }

              ]

             }

            }

           ]

          },

          {

           “name”: “Segment Group 28”,

           “maxOccurrence”: 25,

           “relativeDataPath”: “PRICE INFORMATION”,

           “required”: true,

           “elements”: [

            {

             “name”: “PRI”,

             “value”: “PRI”

            },

            {

             “name”: “PRICE INFORMATION”,

             “value”: {

              “delimiter”: “:”,

              “elements”: [

               {

                “name”: “Price qualifier”,

                “value”: “{{{[Price qualifier]}}}”

               },

               {

                “name”: “Price”,

                “value”: “{{{[Price]}}}”

               },

               {

                “name”: “Price type, coded”,

                “value”: “{{{[Price type, coded]}}}”

               },

               {

                “name”: “Price type qualifier”,

                “value”: “{{{[Price type qualifier]}}}”

               }

              ]

             }

            }

           ]

          },

          {

           “name”: “Segment Group 29”,

           “maxOccurrence”: 10,

           “relativeDataPath”: “Segment Group 25.Segment Group 29”,

           “required”: false,

           “elements”: [

            {

             “name”: “RFF”,

             “value”: “RFF”

            },

            {

             “name”: “REFERENCE”,

             “value”: {

              “delimiter”: “:”,

              “elements”: [

               {

                “name”: “Reference qualifier”,

                “value”: “{{{[REFERENCE].[Reference qualifier]}}}”

               },

               {

                “name”: “Reference number”,

                “value”: “{{{[REFERENCE].[Reference number]}}}”

               }

              ]

             }

            }

           ],

           “children”: [

            {

             “name”: “DTM”,

             “maxOccurrence”: 5,

             “relativeDataPath”: “Segment Group 25.Segment Group 29.DTM”,

             “required”: false,

             “elements”: [

              {

               “name”: “DTM”,

               “value”: “DTM”

              },

              {

               “name”: “DATE/TIME/PERIOD”,

               “value”: {

                “delimiter”: “:”,

                “elements”: [

                 {

                  “name”: “Date/time/period qualifier”,

                  “value”: “{{{[DTM].[DATE/TIME/PERIOD].[Date/time/period qualifier]}}}”

                 },

                 {

                  “name”: “Date/time/period”,

                  “value”: “{{{[DTM].[DATE/TIME/PERIOD].[Date/time/period]}}}”

                 },

                 {

                  “name”: “Date/time/period format qualifier”,

                  “value”: “{{{[DTM].[DATE/TIME/PERIOD].[Date/time/period format qualifier]}}}”

                 }

                ]

               }

              }

             ]

            }

           ]

          },

          {

           “name”: “Segment Group 33”,

           “maxOccurrence”: 99,

           “relativeDataPath”: “DUTY/TAX/FEE”,

           “required”: true,

           “elements”: [

            {

             “name”: “TAX”,

             “value”: “TAX”

            },

            {

             “name”: “DUTY/TAX/FEE FUNCTION QUALIFIER”,

             “value”: “{{{[DUTY/TAX/FEE FUNCTION QUALIFIER]}}}”

            },

            {

             “name”: “Duty/tax/fee type, coded”,

             “value”: “{{{[Duty/tax/fee type, coded]}}}”

            },

            {

             “name”: “TAX030”,

             “value”: “{{{[TAX030]}}}”

            },

            {

             “name”: “TAX040”,

             “value”: “{{{[TAX040]}}}”

            },

            {

             “name”: “DUTY/TAX/FEE DETAIL”,

             “value”: {

              “delimiter”: “:”,

              “elements”: [

               {

                “name”: “TAX050-010”,

                “value”: “{{{[DUTY/TAX/FEE DETAIL].[TAX050-010]}}}”

               },

               {

                “name”: “TAX050-020”,

                “value”: “{{{[DUTY/TAX/FEE DETAIL].[TAX050-020]}}}”

               },

               {

                “name”: “TAX050-030”,

                “value”: “{{{[DUTY/TAX/FEE DETAIL].[TAX050-030]}}}”

               },

               {

                “name”: “Duty/tax/fee rate”,

                “value”: “{{{[Duty/tax/fee rate]}}}”

               }

              ]

             }

            },

            {

             “name”: “DUTY/TAX/FEE CATEGORY, CODED”,

             “value”: “{{{[Segment Group 25].[Segment Group 33].[DUTY/TAX/FEE CATEGORY, CODED]}}}”

            }

           ],

           “children”: [

            {

             “name”: “MOA”,

             “maxOccurrence”: 1,

             “relativeDataPath”: “Segment Group 25.Segment Group 33.MOA”,

             “required”: false,

             “elements”: [

              {

               “name”: “MOA”,

               “value”: “MOA”

              },

              {

               “name”: “MONETARY AMOUNT”,

               “value”: {

                “delimiter”: “:”,

                “elements”: [

                 {

                  “name”: “Monetary amount type qualifier”,

                  “value”: “{{{[MONETARY AMOUNT].[Monetary amount type qualifier]}}}”

                 },

                 {

                  “name”: “Monetary amount”,

                  “value”: “{{{[MONETARY AMOUNT].[Monetary amount]}}}”

                 },

                 {

                  “name”: “Currency, coded”,

                  “value”: “{{{[MONETARY AMOUNT].[Currency, coded]}}}”

                 },

                 {

                  “name”: “Currency qualifier”,

                  “value”: “{{{[MONETARY AMOUNT].[Currency qualifier]}}}”

                 }

                ]

               }

              }

             ]

            }

           ]

          }

         ]

        },

        {

         “maxOccurrence”: 1,

         “required”: true,

         “elements”: [

          {

           “name”: “UNS”,

           “value”: “UNS”

          },

          {

           “name”: “SECTION IDENTIFICATION”,

           “value”: “{{{[SECTION IDENTIFICATION]}}}”

          }

         ]

        },

        {

         “maxOccurrence”: 1,

         “required”: true,

         “elements”: [

          {

           “name”: “CNT”,

           “value”: “CNT”

          },

          {

           “name”: “CONTROL QUALIFIER”,

           “value”: “2”

          },

          {

           “name”: “CONTROL VALUE”,

           “value”: “{{{[Segment Group 25].length}}}”

          }

         ]

        },

        {

         “name”: “Segment Group 48”,

         “maxOccurrence”: 5,

         “relativeDataPath”: “Segment Group 48”,

         “required”: true,

         “elements”: [

          {

           “name”: “MOA”,

           “value”: “MOA”

          },

          {

           “name”: “TRANSACTION TOTAL”,

           “value”: {

            “delimiter”: “:”,

            “elements”: [

             {

              “name”: “Monetary amount type qualifier”,

              “value”: “{{{[TRANSACTION TOTAL].[Monetary amount type qualifier]}}}”

             },

             {

              “name”: “Monetary amount”,

              “value”: “{{{[TRANSACTION TOTAL].[Monetary amount]}}}”

             },

             {

              “name”: “Currency, coded”,

              “value”: “{{{[TRANSACTION TOTAL].[Currency, coded]}}}”

             },

             {

              “name”: “Currency qualifier”,

              “value”: “{{{[TRANSACTION TOTAL].[Currency qualifier]}}}”

             }

            ]

           }

          }

         ]

        },

        {

         “maxOccurrence”: 1,

         “required”: true,

         “elements”: [

          {

           “name”: “UNT”,

           “value”: “UNT”

          },

          {

           “name”: “NUMBER OF SEGMENTS IN A MESSAGE”,

           “value”: “{{{[NUMBER OF SEGMENTS IN A MESSAGE]}}}”

          },

          {

           “name”: “MESSAGE REFERENCE NUMBER(UNT020)”,

           “value”: “{{{[MESSAGE REFERENCE NUMBER(UNT020)]}}}”

          }

         ]

        }

       ]

      }

     ],

     “closeRule”: {

      “maxOccurrence”: 1,

      “required”: true,

      “elements”: [

       {

        “name”: “UNZ”,

        “value”: “UNZ”

       },

       {

        “name”: “Interchange control count”,

        “value”: “{{{[Interchange control count]}}}”

       },

       {

        “name”: “Interchange control reference(UNZ020)”,

        “value”: “{{{[Interchange control reference]}}}”

       }

      ]

     }

    }

   ]

  }

 ]

}

Leave a comment

Your email address will not be published. Required fields are marked *