1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| Order ::= SEQUENCE {
header Order-header,
items SEQUENCE OF Order-line}
Order-header ::= SEQUENCE {
number Order-number,
date Date,
client Client,
payment Payment-method }
Order-number ::= NumericString (SIZE (12))
Date ::= NumericString (SIZE (8)) -- MMDDYYYY
Client ::= SEQUENCE {
name PrintableString (SIZE (1..20)),
street PrintableString (SIZE (1..50)) OPTIONAL,
postcode NumericString (SIZE (5)),
town PrintableString (SIZE (1..20)) }
Payment-method ::= CHOICE {
check NumericString (SIZE (15)),
credit-card Credit-card,
cash NULL }
Credit-card ::= SEQUENCE {
type Card-type,
number NumericString (SIZE (20)),
expiry-date NumericString (SIZE (6)) -- MMYYYY -- }
Card-type ::= ENUMERATED { cb(0), visa(1), eurocard(2),
diners(3), american-express(4) }
Order-line ::= SEQUENCE {
item-code Item-code,
label Label,
quantity Quantity,
price Cents }
Item-code ::= NumericString (SIZE (7))
Label ::= PrintableString (SIZE (1..30))
Quantity ::= CHOICE { unites INTEGER,
millimetres INTEGER,
milligrammes INTEGER }
Cents ::= INTEGER
Delivery-report ::= SEQUENCE {
order-code Order-number,
delivery SEQUENCE OF Delivery-line }
Delivery-line ::= SEQUENCE { item Item-code,
quantity Quantity }
PDU ::= CHOICE { question CHOICE {
question1 Order,
question2 Item-code,
question3 Order-number},
answer CHOICE {
answer1 Delivery-report,
answer2 Quantity,
answer3 Delivery-report }} |