[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [ubl-dev] Test Assertions for UBL Calculation Model?
Here's another iteration of what I hope will be an ever clearer UBL 2 invoice calculation model. I uploaded a version expressed in the in-progress (here v0.6) Test Assertion Markup Language to the Test Assertion Guidelines TC web site http://lists.oasis-open.org/archives/tag/200909/msg00029.html The rules I'm using (which I'd recommend to anyone who hasn't already established another model for the UBL 2 invoice totals): Test Assertion ID: invoice-total-001.INVTOT001 Rule: given that there is only one currency used in the invoice and that there is at least one invoice line with a line extension amount, the 'LineExtensionAmount' in the invoice 'LegalMonetaryTotal' is equal to the sum of the 'LineExtensionAmount's in all of the invoice lines Test Assertion ID: invoice-total-001.INVTOT002 Rule: given that there is only one currency used in the invoice and that there is at least one invoice line with a line extension amount, the 'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal' is equal to the sum of the 'LineExtensionAmount's in all of the invoice lines plus the sum of the invoice 'AllowanceCharge' charges minus the sum of the invoice 'AllowanceCharge' allowances Test Assertion ID: invoice-total-001.INVTOT003 Rule: given that there is only one currency used in the invoice and that there is at least one invoice line with a line extension amount, the 'AllowanceTotalAmount' in the invoice 'LegalMonetaryTotal' is equal to the the sum of the invoice 'AllowanceCharge' allowances minus the sum of the invoice 'AllowanceCharge' charges Test Assertion ID: invoice-total-001.INVTOT004 Rule: given that there is only one currency used in the invoice and that there is at least one invoice line with a line extension amount, in the invoice 'LegalMonetaryTotal' the 'LineExtensionAmount' is equal to the 'TaxExclusiveAmount' plus the 'AllowanceTotalAmount' Test Assertion ID: invoice-total-002.INVTOT005 Rule: [given that all test assertions in the test assertion set 'invoice-total-001' are passed], the 'PayableAmount' in the invoice 'LegalMonetaryTotal' is equal to the TaxExclusiveAmount (in the invoice 'LegalMonetaryTotal') plus the sum of the invoice total tax amounts (at invoice document level) These are expressed using XPath in the test assertions document: http://www.oasis-open.org/committees/download.php/34247/ubl-ta-draft-0-61.xml I'm short on time but hope to be able to add these to the UBL wiki if there aren't objections. Best regards --- Stephen D Green 2009/6/25 Stephen Green <stephen.green@documentengineeringservices.com>: > OK, now on [pause]. > > I'll come back to this thread when I've got some test assertions written > for the UBL calculation model. > > Best > > > Stephen D Green > > > > 2009/6/24 Stephen Green <stephen.green@documentengineeringservices.com>: >> The other advantage of using XPath ... >> >> [ like one starting doc("http://docs.oasis-open.org/ubl/...")/... >> to say something about the >> schema (e.g. to extract a dictionary entry name if you really need one) >> or doc($instance)/Invoice/... to assert something about the invoice >> (where another reference >> defines $instance), e.g. using a variable assignment element of the >> xpath-profile test assertion ] >> >> ... is that you can make the assertion(s) executable. You can perhaps >> convert to Schematron >> for individual assertions or if you want to chain the assertions (make >> one dependant on the >> outcome of testing an invoice according to another) you can >> (eventually) use a test assertion >> xpath profile execution engine. For the latter you may need to wait >> for tools to be in production >> or write your own but WS-I is doing the latter quite successfully and >> I hope there will be tools >> soon, perhaps some free ones. >> >> The Balisage 2009 XML conference will feature a presentation on this >> by Jacques Durand of >> Fujitsu US / WS-I / OASIS (TAG Chair, TAB, etc) which should be >> excellent (plus Ken and I >> both get a mention!). >> >> Stephen D Green >> >> >> >> 2009/6/24 G. Ken Holman <gkholman@cranesoftwrights.com>: >>> At 2009-06-24 19:36 +1000, jaymuz@optusnet.com.au wrote: >>>> >>>> Sorry to jump in gents but I was looking to build this myself however you >>>> gentleman know your way around these datasets better than I do and I am >>>> hoping you may already have same. >>>> >>>> Do we have a list of BBIE's that may play a role in calculating the >>>> balance of an amount in an invoice? >>> >>> You can see that Stephen and I have started here: >>> >>> http://wiki.oasis-open.org/ubl/Example_Calculation_Models/Invoice_Tax_Total >>> >>> ... where you can see we are using "nsprefix:UBLName" and definition, >>> assuming a documentary set (not required set) of namespace prefixes listed >>> here: >>> >>> http://wiki.oasis-open.org/ubl/Example_Calculation_Models#ns >>> >>>> I am talking all BBIE's that could form part of a calculation. >>>> >>>> This would include a price in a catelogue that may transfer to an order. >>>> >>>> This would not include the address of a supplier. >>>> >>>> A list that would be useful would be: >>>> >>>> UBL Name | Object Class | Property Term | Data Type | Definition >>> >>> Given that "nsprefix:UBLName" combination will uniquely find the other >>> information, and that applications will use "nsprefix:UBLName" for access to >>> the information from programs or from stylesheets, I suspect our level of >>> detail is sufficient. >>> >>> One drawback to your proposed list is that it doesn't show context (many UBL >>> business entities are used in multiple contexts), so I'm proposing an XPath >>> pattern address to the item in question and then a relative XPath address to >>> the components on which it is based. The information you want can be >>> derived unambiguously from the "nsprefix:UBLName" components used in the >>> XPath addresses. >>> >>> For example, consider the common library entry: >>> >>> TaxTotal | Tax Total. Tax Amount. Amount | The total tax amount for ... >>> >>> This has different contexts just in our first examples: >>> >>> /in:Invoice/cac:TaxTotal/cbc:TaxAmount >>> /in:Invoice/cac:InvoiceLine/cac:TaxTotal/cbc:TaxAmount >>> >>> ... so your level of granularity would not distinguish these two different >>> contexts. >>> >>>> If not I will try and build one myself. >>> >>> It would help if you could join the committee and contribute to the work of >>> the HISC. If not, then submitting your contributions through the official >>> TC comment page is the way to have the committee formally consider your >>> input: >>> >>> http://www.oasis-open.org/committees/comments/form.php?wg_abbrev=ubl >>> >>> Thanks! >>> >>> . . . . . . . . . . . Ken >>> >>> -- >>> Crane Softwrights Ltd. http://www.CraneSoftwrights.com/u/ >>> Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video >>> Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18 >>> Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18 >>> G. Ken Holman mailto:gkholman@CraneSoftwrights.com >>> Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/u/bc >>> Legal business disclaimers: http://www.CraneSoftwrights.com/legal >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: ubl-dev-unsubscribe@lists.oasis-open.org >>> For additional commands, e-mail: ubl-dev-help@lists.oasis-open.org >>> >>> >> >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]