OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [ubl] Payment Means cardinality in Order Response


Tim et al,

I am not taking any view on the proposed change, but just want to caution 
against use of the unqualified term "backwards compatible".

NO-ONE NEED REPLY TO THIS MESSAGE - I AM NOT WANTING TO START A FLAME.  IT IS 
JUST AN ACADEMIC COMMENT.

In this case, the change is from a version A spec saying 0..1 to a version B 
spec saying 0..many.  This means that:

a) Any document conforming to version A conforms to version B;

b) Any system set up to generate a version A document will continue to interwork 
with a system set up to read and process a version B document;

c) Any system set up to generate a version B document will *fail* to interwork 
with systems expecting a version A document, for any documents that it generates 
outside of 0..1.

This is, of course, quite obvious!

There is, however, the additional question of what the version A spec said that 
implementations should do with unexpected additional material (extensibility). 
If the version A spec said "If you are expecting 0..1 and you get more than one, 
process the one you have and give a silent warning", then you know what a 
version A system will do when hit with a document that conforms to version B but 
not to version A, and that can be noted in the version B spec.  If that 
statement is *not* present in version A, then you are left guessing on what 
might happen - perhaps total rejection of the entire document.

It is always best to specify in version A what is to be done with "illegal" 
documents that are in various senses an "extension" of version A, but people 
rarely bother to think about doing that - they are too busy getting version A 
right!  It is encouraged in ASN.1 (with explicit notation) to make such 
provision where there are constraints that might be relaxed in a future version 
(such as 0..1, or addition of further elements to a sequence), but I am not sure 
(without checking) whether any provision was made in version A of UBL.

But coming back to my main thread:  It is generally better to say that "the 
version B spec permits all of the documents allowed by version A, but also 
permits other documents that version A implementations will neither generate nor 
be able to process".  This is more verbose than use of the term "backwards 
compatible", but is more explicit and clearer.

If there *was* extensibility provision in version A, then you can be more 
explicit and say "the version B spec permits documents that have additional 
information to the version A specification; version A implementations will 
process the information that conforms to the version A specification but will 
ignore the additional version B information;  users of version B should be aware 
of this limitation."

Again, depending on what was said in version A about the actions to be taken on 
an extended document (eg "Process version A stuff but send a warning back to the 
originator about unprocessed material", then the situation in version B becomes 
much clearer, and the version B spec needs to consider what to do when such a 
warning comes back.  You can see that this gets into a rather tangled loop!

Best advice is:

a)	Do as much as you can in a version A spec to support likely (but unknown) 
version B extensions in a predictable manner (failing that, get stuff into 
version B that relates to a future version C).

b)	Spell out in version B what will happen when trying to interwork with a 
version A implementation.

Sorry this is a long mail, but making provision in version A for a future 
version B (or if you forgot to do that, making provision in version B for a 
future version C) has long been a hobby-horse of mine.

John L

Tim McGrath wrote:

> If you are proposing changing the cardinality from 0..1 to 0..many then 
> I would say this is backward compatible and could be a candidate for UBL 
> 2.1.
> 
> An instance of of UBL 2.0 OrderResponse wold still be valid under 2.1 
> with the extended cardinality.
> 
> Have you added this to the issues list?
> 
>> To view the issues list, the URL is:
>>
>> http://www.eccnet.com/UniversalBusinessList/IssuesList.xml
>>
>> To add a new issue the form is available at:
>>
>> http://www.eccnet.com/UniversalBusinessLanguage/AddIssue.html
>>
>> The login is 'ubl' and password is 'issues123'.
> 
> 
> 
> 
> stephen.green@systml.co.uk wrote:
> 
>> Greetings UBL TC
>>
>> As pointed out to me by Luca Reginato in Italy, we have an
>> inconsistency between the document types in that in most
>> of them PaymentMeans has minimum occurance 0 and maximum
>> occurance unbounded, which is great as PaymentDueDate can
>> be automated even when there are multiple payment due dates
>> by using multiple PaymentMeans occurances. So far so good.
>> However it is quite a general requirement to use the
>> OrderResponse document as a key document (usually calling it
>> 'order confirmation' or 'order acknowledgement') as with
>> what is called 'punch out' and similar common practises.
>> In such cases the OrderResponse is the primary document from
>> the seller (or seller's agent) and so it there is a strong
>> requirement to include here the payment information such
>> as a Payment Due Date or set of Payment Due Dates. The
>> inconsistency is that in UBL 2.0, although the need for such
>> payment requirement information is acknowledge by the
>> inclusion of PaymentMeans, it is only, in the OrderResponse
>> with the allowance of zero or one occurances (hence only a
>> single payment due date at most).
>>
>> I do accept that fixing this would be quite a challenge as
>> it may involve a backwards compatibility issue. Maybe there
>> is a way to fix it by creating a new ASBIE and ABIE which
>> has multiple occurances and appending it to the Order Response.
>> Otherwise it would seem implementers making primary use of
>> the OrderResponse in this way have to 1. create their own
>> extension which reduces the opportunities for interoperability
>> or 2. use a document such as Invoice in situations where this
>> is otherwise deemed as unnecessary (and therefore more expense
>> is imposed which doesn't necessarily bring a proportional
>> return on investment perhaps) or 3. do without the automation
>> of the payment due dates and just use a note or description.
>> I think 3. is unsatisfactory as it should be a major benefit
>> of using UBL that payments can be fully automated as part of
>> use of implementing electronic procurement with UBL.
>>
>> Best regards
>>
>> --Stephen Green
>>
>> Partner
>> SystML, http://www.systml.co.uk
>> Tel: +44 (0) 117 9541606
>>
>> http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice
>>
>>
>>
>>
>>
>>
>>
>> --No virus found in this incoming message.
>> Checked by AVG Free Edition.Version: 7.5.476 / Virus Database: 
>> 269.9.10/873 - Release Date: 26/06/2007 11:54 PM
>>
>>
> 

-- 
    Prof John Larmouth
    Larmouth T&PDS Ltd
    (Training and Protocol Development Services Ltd)
    1 Blueberry Road
    Bowdon                               j.larmouth@btinternet.com
    Cheshire WA14 3LS
    England
    Tel: +44 161 408 3695		Fax: +44 161 928 8069




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]