Need help in setting up EDIFact JSON File Definition Rule for SPSCommerce PO EDI

My JSON File Definition:

{
  "resourcePath": "",
  "fileDefinition": {
    "_id": "65d34512088bc2c94f6a8958",
    "lastModified": "2024-05-09T11:25:44.917Z",
    "name": "Leen Bakker EDIFACT ORDERS",
    "sandbox": true,
    "description": "Purchase Order",
    "version": "1",
    "format": "delimited/edifact",
    "escapeReleaseChar": true,
    "delimited": {
      "rowSuffix": "'",
      "rowDelimiter": "'",
      "colDelimiter": "+"
    },
    "rules": [
      {
        "maxOccurrence": 1,
        "required": true,
        "skipRowSuffix": true,
        "elements": [
          {
            "name": "UNA",
            "value": "UNA:"
          },
          {
            "name": "UNA_Seg",
            "value": {
              "delimiter": ":",
              "elements": [
                {
                  "name": "Component_Data_Element_Separator",
                  "value": "UNA001"
                }
              ]
            }
          }
        ]
      },
      {
        "maxOccurrence": 1,
        "required": true,
        "skipRowSuffix": true,
        "elements": [
          {
            "name": "UNB",
            "value": "UNB"
          },
          {
            "name": "SYNTAX_IDENTIFIER",
            "value": {
              "delimiter": ":",
              "elements": [
                {
                  "name": "Syntax_identifier",
                  "value": "UNB010-010"
                },
                {
                  "name": "Syntax_version_number",
                  "value": "UNB010-020"
                }
              ]
            }
          },
          {
            "name": "INTERCHANGE_SENDER",
            "value": {
              "delimiter": ":",
              "elements": [
                {
                  "name": "Sender_identification",
                  "value": "UNB020-010"
                },
                {
                  "name": "Partner_identification_code_qualifier",
                  "value": "UNB020-020"
                }
              ]
            }
          },
          {
            "name": "INTERCHANGE_RECIPIENT",
            "value": {
              "delimiter": ":",
              "elements": [
                {
                  "name": "Recipient_identification",
                  "value": "UNB030-010"
                },
                {
                  "name": "Partner_identification_code_qualifier",
                  "value": "UNB030-020"
                }
              ]
            }
          },
          {
            "name": "DATE_TIME_OF_PREPARATION",
            "value": {
              "delimiter": ":",
              "elements": [
                {
                  "name": "Date_of_preparation",
                  "value": "UNB040-010"
                },
                {
                  "name": "Time_of_preparation",
                  "value": "UNB040-020"
                }
              ]
            }
          },
          {
            "name": "Interchange_control_reference",
            "value": "UNB050"
          },
          {
            "name": "Acknowledgement_request",
            "value": "UNB090"
          }
        ],
        "children": [
          {
            "maxOccurrence": 1,
            "skipRowSuffix": true,
            "required": true,
            "elements": [
              {
                "name": "UNH",
                "value": "UNH"
              },
              {
                "name": "MESSAGE_REFERENCE_NUMBER",
                "value": "UNH010"
              },
              {
                "name": "MESSAGE_IDENTIFIER",
                "value": {
                  "delimiter": ":",
                  "elements": [
                    {
                      "name": "Message_type_identifier",
                      "value": "UNH020-010"
                    },
                    {
                      "name": "Message_type_versionnumber",
                      "value": "UNH020-020"
                    },
                    {
                      "name": "Message_type_releasenumber",
                      "value": "UNH020-030"
                    },
                    {
                      "name": "Controlling_agency",
                      "value": "UNH020-040"
                    },
                    {
                      "name": "Association_assigned_code",
                      "value": "UNH020-050"
                    }
                  ]
                }
              }
            ],
            "children": [
              {
                "maxOccurrence": 1,
                "skipRowSuffix": true,
                "required": true,
                "elements": [
                  {
                    "name": "BGM",
                    "value": "BGM"
                  },
                  {
                    "name": "DOCUMENT_MESSAGE_NAME",
                    "value": {
                      "delimiter": ":",
                      "elements": [
                        {
                          "name": "Document_Type",
                          "value": "BGM010-010"
                        },
                        {
                          "name": "Code_list_qualifier",
                          "value": "BGM010-020"
                        },
                        {
                          "name": "Code_list_responsible_agency_coded",
                          "value": "BGM010-030"
                        },
                        {
                          "name": "Name_of_Document",
                          "value": "BGM010-030"
                        }
                      ]
                    }
                  },
                  {
                    "name": "Document_Message_Identification",
                    "value": {
                      "delimiter": ":",
                      "elements": [
                        {
                          "name": "DOCUMENT_Order_Number",
                          "value": "BGM020"
                        }
                      ]
                    }
                  },
                  {
                    "name": "MESSAGE_FUNCTION_CODED",
                    "value": "BGM030"
                  },
                  {
                    "name": "Response_Type_Code",
                    "value": "BGM030"
                  }
                ],
                "children": [
                  {
                    "name": "DTM",
                    "maxOccurrence": 4,
                    "container": true,
                    "children": [
                      {
                        "required": true,
                        "skipRowSuffix": true,
                        "elements": [
                          {
                            "name": "DTM",
                            "value": "DTM"
                          },
                          {
                            "name": "DATE_TIME_PERIOD",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Date_time_period_qualifier",
                                  "value": "DTM010-010"
                                },
                                {
                                  "name": "Date_time_period",
                                  "value": "DTM010-020"
                                },
                                {
                                  "name": "Date_time_period_formatqualifier",
                                  "value": "DTM010-030"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "name": "FTX",
                    "maxOccurrence": 5,
                    "container": true,
                    "children": [
                      {
                        "required": false,
                        "skipRowSuffix": true,
                        "elements": [
                          {
                            "name": "FTX",
                            "value": "FTX"
                          },
                          {
                            "name": "TEXT_SUBJECT_QUALIFIER",
                            "value": "FTX010"
                          },
                          {
                            "name": "TEXT_FUNCTION_CODED",
                            "value": "FTX020"
                          },
                          {
                            "name": "TEXT_REFERENCE",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Free_text_coded",
                                  "value": "FTX030-010"
                                },
                                {
                                  "name": "Code_list_qualifier",
                                  "value": "FTX030-020"
                                },
                                {
                                  "name": "Code_list_responsible_agency_coded",
                                  "value": "FTX030-030"
                                }
                              ]
                            }
                          },
                          {
                            "name": "TEXT_LITERAL",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Free_text_FTX040_010",
                                  "value": "FTX040-010"
                                },
                                {
                                  "name": "Free_text(FTX040-020)",
                                  "value": "FTX040-020"
                                },
                                {
                                  "name": "Free_text(FTX040-030)",
                                  "value": "FTX040-030"
                                },
                                {
                                  "name": "Free_text_FTX040_040",
                                  "value": "FTX040-040"
                                },
                                {
                                  "name": "Free_text(FTX040-050)",
                                  "value": "FTX040-050"
                                }
                              ]
                            }
                          },
                          {
                            "name": "LANGUAGE_CODED",
                            "value": "FTX050"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "name": "Segment_Group_2",
                    "maxOccurrence": 3,
                    "container": true,
                    "children": [
                      {
                        "required": true,
                        "skipRowSuffix": true,
                        "elements": [
                          {
                            "name": "NAD",
                            "value": "NAD"
                          },
                          {
                            "name": "PARTY_QUALIFIER",
                            "value": "NAD010"
                          },
                          {
                            "name": "PARTY_IDENTIFICATIONDETAILS",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Party_id_identification",
                                  "value": "NAD020-010"
                                },
                                {
                                  "name": "Code_list_responsibleagency_coded",
                                  "value": "NAD020-030"
                                }
                              ]
                            }
                          },
                          {
                            "name": "NAME_AND_ADDRESS",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Name_and_address_line",
                                  "value": "NAD030-010"
                                },
                                {
                                  "name": "Name_and_address_line_2",
                                  "value": "NAD030-020"
                                }
                              ]
                            }
                          },
                          {
                            "name": "PARTY_NAME",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Party_name",
                                  "value": "NAD040-010"
                                },
                                {
                                  "name": "Party_name (NAD040-020)",
                                  "value": "NAD040-020"
                                }
                              ]
                            }
                          },
                          {
                            "name": "STREET",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Street_and_number_po_box",
                                  "value": "NAD050-010"
                                },
                                {
                                  "name": "Street_and_number_po_box_2",
                                  "value": "NAD050-020"
                                }
                              ]
                            }
                          },
                          {
                            "name": "CITY_NAME",
                            "value": "NAD060"
                          },
                          {
                            "name": "COUNTRY_SUB_ENTITYIDENTIFICATION",
                            "value": "NAD070"
                          },
                          {
                            "name": "POSTCODE_IDENTIFICATION",
                            "value": "NAD080"
                          },
                          {
                            "name": "COUNTRY_CODED",
                            "value": "NAD090"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "name": "Segment_Group_7",
                    "maxOccurrence": 10,
                    "container": true,
                    "children": [
                      {
                        "required": false,
                        "skipRowSuffix": true,
                        "elements": [
                          {
                            "name": "CUX",
                            "value": "CUX"
                          },
                          {
                            "name": "CURRENCIES",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Currency_qualifier",
                                  "value": "CUX010-010"
                                },
                                {
                                  "name": "Currency_Code",
                                  "value": "CUX010-020"
                                },
                                {
                                  "name": "Currency_Type_code_qualifier",
                                  "value": "CUX010-030"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "name": "Segment_Group_28",
                    "maxOccurrence": 200000,
                    "container": true,
                    "children": [
                      {
                        "required": true,
                        "skipRowSuffix": true,
                        "elements": [
                          {
                            "name": "LIN",
                            "value": "LIN"
                          },
                          {
                            "name": "LINE_ITEM_NUMBER",
                            "value": "LIN010"
                          },
                          {
                            "name": "ITEM_NUMBERIDENTIFICATION",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Item_number",
                                  "value": "LIN030-010"
                                },
                                {
                                  "name": "Item_number_type_coded",
                                  "value": "LIN030-020"
                                }
                              ]
                            }
                          }
                        ]
                      },
                      {
                        "maxOccurrence": 2,
                        "required": false,
                        "skipRowSuffix": true,
                        "container": true,
                        "elements":[
                          {
                            "name": "PIA",
                            "value": "PIA"
                          },
                          {
                            "name": "PRODUCT IDENTIFIER CODE QUALIFIER",
                            "value": "PIA010"
                          },
                          {
                            "name": "ITEM_DESCRIPTION",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Item_description1",
                                  "value": "IMD030-040"
                                },
                                {
                                  "name": "Item type identification code",
                                  "value": "IMD030-040"
                                }
                          ]
                            }
                          }
                            ]
                          },
                      {
                        "maxOccurrence": 1,
                        "required": false,
                        "skipRowSuffix": true,
                        "elements": [
                          {
                            "name": "IMD",
                            "value": "IMD"
                          },
                          {
                            "name": "ITEM_DESCRIPTIONTYPE_CODED",
                            "value": "IMD010"
                          },
                          {
                            "name": "ITEM_DESCRIPTION",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Item_description1",
                                  "value": "IMD030-040"
                                },
                                {
                                  "name": "Item_description",
                                  "value": "IMD030-040"
                                },
                                {
                                  "name": "Item_code_name",
                                  "value": "IMD030-040"
                                }
                              ]
                            }
                          }
                        ]
                      },
                      {
                        "maxOccurrence": 2,
                        "required": true,
                        "skipRowSuffix": true,
                        "container": true,
                        "elements": [
                          {
                            "name": "QTY",
                            "value": "QTY"
                          },
                          {
                            "name": "QUANTITY_DETAILS",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Quantity_qualifier",
                                  "value": "QTY010-010"
                                },
                                {
                                  "name": "Quantity",
                                  "value": "QTY010-020"
                                },
                                {
                                  "name": "Measurement unit code",
                                  "value": "QTY010-030"
                                }
                              ]
                            }
                          }
                        ]
                      },
                      {
                        "maxOccurrence": 1,
                        "required": false,
                        "skipRowSuffix": true,
                        "elements": [
                          {
                            "name": "DTM",
                            "value": "DTM"
                          },
                          {
                            "name": "DATE/TIME/PERIOD",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Date or time or period function code qualifier",
                                  "value": "QTY010-010"
                                },
                                {
                                  "name": "Date or time or period value",
                                  "value": "QTY010-020"
                                },
                                {
                                  "name": "Date or time or period format code",
                                  "value": "QTY010-030"
                                }
                              ]
                            }
                          }
                        ]
                      },
                        {
                        "maxOccurrence": 1,
                        "required": false,
                        "skipRowSuffix": true,
                        "elements": [
                          {
                            "name": "MOA",
                            "value": "MOA"
                          },
                          {
                            "name": "MONETARY AMOUNT",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Monetary amount type code qualifier",
                                  "value": "128"
                                },
                                {
                                  "name": "Monetary amount",
                                  "value": "QTY010-020"
                                }
                              ]
                            }
                          }
                        ]
                      },
                      {
                        "name": "Segment_Group_32",
                        "maxOccurrence": 1,
                        "container": true,
                        "children": [
                          {
                            "required": true,
                            "skipRowSuffix": true,
                            "elements": [
                              {
                                "name": "PRI",
                                "value": "PRI"
                              },
                              {
                                "name": "PRICE_INFORMATION",
                                "value": {
                                  "delimiter": ":",
                                  "elements": [
                                    {
                                      "name": "Price_Code_qualifier",
                                      "value": "PRI010-010"
                                    },
                                    {
                                      "name": "Price_Amount",
                                      "value": "PRI010-020"
                                    },
                                    {
                                      "name": "Unit price basis value",
                                      "value": "PRI010-030"
                                    },
                                    {
                                      "name": "Unit price basis value",
                                      "value": "PRI010-040"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "name": "Segment_Group_38",
                        "maxOccurrence": 1,
                        "container": true,
                        "children": [
                          {
                            "required": false,
                            "skipRowSuffix": true,
                            "elements": [
                              {
                                "name": "TAX",
                                "value": "TAX"
                              },
                              {
                                "name": "Duty_Or_tax_Free_function_code_qualifier",
                                "value": "TAX010-010"
                              },
                              {
                                "name": "Duty_Tax_Free_Type",
                                "value": {
                                  "delimiter": ":",
                                  "elements": [
                                    {
                                      "name": "Duty_Tax_Free_Type_Name_Code",
                                      "value": "TAX020-010"
                                    }
                                  ]
                                }
                              },
                              {
                                "name": "Duty_Tax_Free_Detail",
                                "value": {
                                  "delimiter": ":",
                                  "elements": [
                                    {
                                      "name": "Duty_or_tax_or_free_rate_basis_code",
                                      "value": "TAX050-010"
                                    }
                                  ]
                                }
                              }
                            ]
                          },
                          {
                            "required": false,
                            "skipRowSuffix": true,
                            "elements": [
                              {
                                "name": "MOA",
                                "value": "MOA"
                              },
                              {
                                "name": "Monetary_Amount",
                                "value": {
                                  "delimiter": ":",
                                  "elements": [
                                    {
                                      "name": "Monetary_Amount_Type_Code_Qualifier",
                                      "value": "MOA020-010"
                                    },
                                    {
                                      "name": "Monetary_Amount",
                                      "value": "MOA020-020"
                                    }
                                  ]
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "name": "Section Control",
                    "required": true,
                    "skipRowSuffix": true,
                    "maxOccurrence": 1,
                    "elements": [
                      {
                        "name": "UNS",
                        "value": "UNS"
                      },
                      {
                        "name": "Section_Id",
                        "value": "UNS010"
                      }
                    ]
                  },
                  {
                    "name": "MOA",
                    "maxOccurrence": 3,
                    "container": true,
                    "children": [
                      {
                        "required": true,
                        "skipRowSuffix": true,
                        "elements": [
                          {
                            "name": "MOA",
                            "value": "MOA"
                          },
                          {
                            "name": "Monetory_Amount",
                            "value": {
                              "delimiter": ":",
                              "elements": [
                                {
                                  "name": "Monetory_Amount_Type_Code_Qualifier",
                                  "value": "MOA010-010"
                                },
                                {
                                  "name": "Monetory_Amount_Value",
                                  "value": "MOA010-020"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "maxOccurrence": 1,
                    "required": true,
                    "skipRowSuffix": true,
                    "elements": [
                      {
                        "name": "CNT",
                        "value": "CNT"
                      },
                      {
                        "name": "CONTROL",
                        "value": {
                          "delimiter": ":",
                          "elements": [
                            {
                              "name": "Control_Qualifier",
                              "value": "CNT010-010"
                            },
                            {
                              "name": "Control_Value",
                              "value": "CNT010-020"
                            }
                          ]
                        }
                      }
                    ]
                  }
                ]
              }
            ],
            "closeRule": {
              "maxOccurrence": 1,
              "required": true,
              "skipRowSuffix": true,
              "elements": [
                {
                  "name": "UNT",
                  "value": "UNT"
                },
                {
                  "name": "NUMBER_OF_SEG_IN_A_MESSAGE",
                  "value": "UNT010"
                },
                {
                  "name": "MESSAGE_REFERENCE_NUMBER_(UNT020)",
                  "value": "UNT020"
                }
              ]
            }
          }
        ],
        "closeRule": {
          "maxOccurrence": 1,
          "required": true,
          "skipRowSuffix": true,
          "elements": [
            {
              "name": "UNZ",
              "value": "UNZ"
            },
            {
              "name": "Interchange_control_count",
              "value": "UNZ010"
            },
            {
              "name": "Interchange_control_reference(UNZ020)",
              "value": "UNZ020"
            }
          ]
        }
      }
    ]
  }
}

My EDI sample:

UNA:+.? 'UNB+UNOC:3+TST1APIPRICELINE:ZZZ+TESTROR:ZZZ+250902:0719+100000012++++1'UNH+1012+ORDERS:D:01B:UN:EAN011'BGM+220+4507654110+9'DTM+137:20250902:102'DTM+2:20250909:102'FTX+ZZZ+++DTS PO 4507654110 backorders are not accepted.'NAD+BY+9313142081013::9++API Services Australia Pty Ltd'NAD+ST+9313142109465::9++PRICELINE PHCY MARSDEN PARK+1/101 ELARA BLVD+MARSDEN PARK+NSW+2765+AU'NAD+SU+80358::92++Herbs of Gold Pty Ltd'CUX+2:AUD:9'LIN+1++9346710000833:SRV'PIA+1+VPN1111:SA'PIA+1+GB1111:GB'IMD+F++:::Activated B12 Spray 50mL'QTY+21:3:EA'QTY+59:1'MOA+128:44.34'PRI+AAA:14.78:::1:EA'TAX+7+GST+++:::10'MOA+369:4.43'LIN+2++9313923063085:SRV'PIA+1+VPN2222:SA'PIA+1+GB2222:GB'IMD+F++:::B Sustained Release 60T'QTY+21:1:EA'QTY+59:1'MOA+128:18.86'PRI+AAA:18.86:::1:EA'TAX+7+GST+++:::10'MOA+369:1.89'LIN+3++9346710001137:SRV'PIA+1+VPN3333:SA'PIA+1+GB3333:GB'IMD+F++:::Sea Buckthorn Oil 60C'QTY+21:3:EA'QTY+59:1'MOA+128:68.85'PRI+AAA:22.95:::1:EA'TAX+7+GST+++:::10'MOA+369:6.89'LIN+4++9313923069148:SRV'PIA+1+VPN4444:SA'PIA+1+GB4444:GB'IMD+F++:::Vitamin B3 500mg 60T'QTY+21:6:EA'QTY+59:1'MOA+128:78.96'PRI+AAA:13.16:::1:EA'TAX+7+GST+++:::10'MOA+369:7.90'LIN+7++9346710001656:SRV'PIA+1+VPN7777:SA'PIA+1+GB7777:GB'IMD+F++:::Organic Iron MAX 30C'QTY+21:1:EA'QTY+59:1'MOA+128:8.62'PRI+AAA:8.62:::1:EA'TAX+7+GST+++:::10'MOA+369:0.86'UNS+S'MOA+86:241.59'MOA+128:219.63'MOA+369:21.96'CNT+2:5'UNT+65+1012'UNZ+1+100000012'

I’m getting this error

Message: Max no. of occurrences for segment "" is applicable only if it is a container/loop.

Document: https://community.spscommerce.com/wp-content/uploads/2025/07/AustralianPharmaceuticalIndustries_ORDERS_ShipToDC-Store.pdf

I’m trying to setup the json file definition rule for two weeks but I’m not successful since celigo don’t natively has the edi parser for spscommerce edifact file definition. Please help me. Also I’m not using B2B manager for EDI

Hi Sanju,

It looks like you’re getting an ambiguous segment ““ error which makes it hard to pinpoint where the problem lies. This ambiguous error is caused because you have several places in your file definition rules where there is no name in the segment (see attached example).
The error message itself specifically means that one of the segments that has a "maxOccurrence" property MUST also have "container": true . There are several places in the file definition rules where this is the case. So to resolve, please try:

  1. Properly name each segment to avoid ambiguous errors
  2. Ensure that if using maxOccurence, also use "container": true

Please give this a try and let us know how it works out!

1 Like

The error message, "Max no. of occurrences for segment "" is applicable only if it is a container/loop" indicates a misconfiguration in the EDIFACT file definition, specifically in the JSON object you provided. The maxOccurrence property was incorrectly applied to a segment that is not a container or a loop.

In EDIFACT definitions, maxOccurrence is used to specify how many times a repeatable segment or a group of segments (a "container" or "loop") can appear within a message. When applied to a single segment that is not part of a repeatable group, this property is not valid and causes the error.

Solution
Review the JSON to find any segment rule object that has the maxOccurrence property directly on it, and is not a container (i.e., it doesn't have a children array and container: true). The error is likely caused by an object with a structure similar to this (where SomeSegment would be empty, causing the ""):