Skip to content

Could you support the primary keys in data attributes field??? (It is related to section 4.10 and section 5.11.) #5

@LuxWang

Description

@LuxWang

Could you please support the primary keys in data attributes field??? (It is related to section 4.10 and section 5.11.)
https://ref.gs1.org/standards/digital-link/uri-syntax/

‘data attributes’ MAY include AIs that may also be used as primary keys

Section_4_10
Section_5_11

I found this change "Suppressed restriction on only one primary key", however this is just partial support 4.10.
109bb36

for the current code base: https://github.com/gs1/GS1DigitalLinkCompressionPrototype/blob/master/src/GS1DigitalLinkToolkit.js

case 1: When the input string is "010000012300001780040001ABC" , the return value of gs1ElementStringsToGS1DigitalLink() is "https://id.gs1.org/8004/0001ABC"
However, the correct result should be "https://id.gs1.org/01/0100000123000017?8004=0001ABC" in section 5.11

var DigitalLink = new Object();

DigitalLink.Input = "010000012300001780040001ABC";
DigitalLink.Compressed = false
DigitalLink.ReadableAI = false
DigitalLink.BaseURL = null
DigitalLink.BaseURL = "https://id.gs1.org"
DigitalLink.Compressed = false
DigitalLink.ReadableAI = false

var gs1dlt = new GS1DigitalLinkToolkit();

var elementStringsNoBrackets = DigitalLink.Input;
elementStringsNoBrackets = elementStringsNoBrackets.replace(/^1/g, gs1dlt.groupSeparator); // replace all ^1 occurrences.

if (DigitalLink.Compressed) {
gs1dlt.gs1ElementStringsToCompressedGS1DigitalLink(elementStringsNoBrackets, DigitalLink.ReadableAI, DigitalLink.BaseURL);
}
else {
gs1dlt.gs1ElementStringsToGS1DigitalLink(elementStringsNoBrackets, DigitalLink.ReadableAI, DigitalLink.BaseURL);
}

case 2: when input string is "80040001ABC^10100000123000017" , the return value of gs1ElementStringsToGS1DigitalLink() is "https://id.gs1.org/8004/0001ABC"
However, the correct result should be "https://id.gs1.org/8004/00001ABC?01=0100000123000017" in section 5.11

var DigitalLink = new Object();

DigitalLink.Input = "80040001ABC^10100000123000017";
DigitalLink.Compressed = false
DigitalLink.ReadableAI = false
DigitalLink.BaseURL = null
DigitalLink.BaseURL = "https://id.gs1.org"
DigitalLink.Compressed = false
DigitalLink.ReadableAI = false

var gs1dlt = new GS1DigitalLinkToolkit();

var elementStringsNoBrackets = DigitalLink.Input;
elementStringsNoBrackets = elementStringsNoBrackets.replace(/^1/g, gs1dlt.groupSeparator); // replace all ^1 occurrences.

if (DigitalLink.Compressed) {
gs1dlt.gs1ElementStringsToCompressedGS1DigitalLink(elementStringsNoBrackets, DigitalLink.ReadableAI, DigitalLink.BaseURL);
}
else {
gs1dlt.gs1ElementStringsToGS1DigitalLink(elementStringsNoBrackets, DigitalLink.ReadableAI, DigitalLink.BaseURL);
}

Both case 1 and case 2 couldn't get similar results in 5.11.
Could you update the code for this part? Or could you please check if I misunderstand the document? thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions