Skip to content

Commit

Permalink
Merge pull request #119 from OpenPEPPOL/2024-q4-release
Browse files Browse the repository at this point in the history
2024 q4 release
  • Loading branch information
jerouris authored Nov 18, 2024
2 parents b69fea2 + 5c0bf59 commit ba10718
Show file tree
Hide file tree
Showing 33 changed files with 2,290 additions and 1,377 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build-and-deploy-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ jobs:
steps:
- name: Checkout source code
uses: actions/checkout@v2

- name: Build Spec
run: bash ./build.sh
run: bash ./build-actions.sh

- name: Deploy on S3
env:
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
40 changes: 40 additions & 0 deletions build-actions.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/sh

PROJECT=$(dirname $(readlink -f "$0"))

# Delete target folder if found
if [ -e $PROJECT/target ]; then
docker run --rm -i -v $PROJECT:/src alpine:3.6 rm -rf /src/target
fi

# Structure
docker run --rm -i \
-v $PROJECT:/src \
-v $PROJECT/target:/target \
difi/vefa-structure:0.6.1

# Testing validation rules
docker run --rm -i -v $PROJECT:/src anskaffelser/validator:2.1.0 build -x -t -n eu.peppol.poacc.upgrade.v3 -a rules -target target/validator-test /src

# Schematron
for sch in $PROJECT/rules/sch/*.sch; do
docker run --rm -i -v $PROJECT:/src -v $PROJECT/target/schematron:/target klakegg/schematron prepare /src/rules/sch/$(basename $sch) /target/$(basename $sch)
done

# Fix ownership
docker run --rm -i -v $PROJECT:/src alpine:3.6 chown -R $(id -g $USER).$(id -g $USER) /src/target

sudo rm -rf $PROJECT/target/site/files/PEPPOLBIS-Upgrade-Schematron.zip
sudo rm -rf $PROJECT/target/site/files/PEPPOLBIS-Examples.zip

cd $PROJECT/target
sudo zip -r site/files/PEPPOLBIS-Upgrade-Schematron.zip schematron/

cd $PROJECT
sudo zip -r target/site/files/PEPPOLBIS-Examples.zip rules/examples

# Guides
docker run --rm -i -v $PROJECT:/documents -v $PROJECT/target:/target difi/asciidoctor

# Fix ownership
docker run --rm -i -v $PROJECT:/src alpine:3.6 chown -R $(id -g $USER).$(id -g $USER) /src/target
38 changes: 38 additions & 0 deletions build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
@echo off
setlocal

:: Get the directory of the script
set "PROJECT=%~dp0"
set "PROJECT=%PROJECT:~0,-1%" :: Remove trailing backslash if any

:: Delete target folder if found
if exist "%PROJECT%\target" (
docker run --rm -i -v "%PROJECT%:/src" alpine:3.6 rm -rf /src/target
)

:: Structure
docker run --rm -i -v "%PROJECT%:/src" -v "%PROJECT%\target:/target" difi/vefa-structure:0.6.1

:: Testing validation rules
docker run --rm -i -v "%PROJECT%:/src" anskaffelser/validator:2.1.0 build -x -t -n eu.peppol.poacc.upgrade.v3 -a rules -target target/validator-test /src

:: Schematron
for %%s in ("%PROJECT%\rules\sch\*.sch") do (
docker run --rm -i -v "%PROJECT%:/src" -v "%PROJECT%\target\schematron:/target" klakegg/schematron prepare /src/rules/sch/%%~nxs /target/%%~nxs
)

docker run --rm -i -v "%PROJECT%\target\site\files:/src" alpine:3.6 rm -rf /src/PEPPOLBIS-Upgrade-Schematron.zip
docker run --rm -i -v "%PROJECT%\target\schematron:/src" -v "%PROJECT%\target\site\files:/target" -w /src kramos/alpine-zip -r /target/PEPPOLBIS-Upgrade-Schematron.zip .

:: Example files
docker run --rm -i -v "%PROJECT%\target\site\files:/src" alpine:3.6 rm -rf /src/PEPPOLBIS-Examples.zip
docker run --rm -i -v "%PROJECT%\rules\examples:/src" -v "%PROJECT%\target\site\files:/target" -w /src kramos/alpine-zip -r /target/PEPPOLBIS-Examples.zip .

:: Guides
docker run --rm -i -v "%PROJECT%:/documents" -v "%PROJECT%\target:/target" difi/asciidoctor

:: Fix ownership (Windows doesn't use the same concept of user/group ownership, so this part is usually not necessary)
:: You can skip this part or just leave it for Unix-like environments using Docker.

endlocal
pause
15 changes: 11 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,19 @@ docker run --rm -i -v $PROJECT:/src anskaffelser/validator:2.1.0 build -x -t -n
for sch in $PROJECT/rules/sch/*.sch; do
docker run --rm -i -v $PROJECT:/src -v $PROJECT/target/schematron:/target klakegg/schematron prepare /src/rules/sch/$(basename $sch) /target/$(basename $sch)
done
docker run --rm -i -v $PROJECT/target/site/files:/src alpine:3.6 rm -rf /src/PEPPOLBIS-Upgrade-Schematron.zip
docker run --rm -i -v $PROJECT/target/schematron:/src -v $PROJECT/target/site/files:/target -w /src kramos/alpine-zip -r /target/PEPPOLBIS-Upgrade-Schematron.zip .

# Fix ownership
docker run --rm -i -v $PROJECT:/src alpine:3.6 chown -R $(id -g $USER).$(id -g $USER) /src/target

rm -rf $PROJECT/target/site/files/PEPPOLBIS-Upgrade-Schematron.zip
rm -rf $PROJECT/target/site/files/PEPPOLBIS-Examples.zip

cd $PROJECT/target
zip -r site/files/PEPPOLBIS-Upgrade-Schematron.zip schematron/

# Example files
docker run --rm -i -v $PROJECT/target/site/files:/src alpine:3.6 rm -rf /src/PEPPOLBIS-Examples.zip
docker run --rm -i -v $PROJECT/rules/examples:/src -v $PROJECT/target/site/files:/target -w /src kramos/alpine-zip -r /target/PEPPOLBIS-Examples.zip .
cd $PROJECT
zip -r target/site/files/PEPPOLBIS-Examples.zip rules/examples

# Guides
docker run --rm -i -v $PROJECT:/documents -v $PROJECT/target:/target difi/asciidoctor
Expand Down
2 changes: 2 additions & 0 deletions guides/compliance/main.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,6 @@ include::sender.adoc[]

include::receiver.adoc[]

include::payload.adoc[]

:leveloffset: -1
19 changes: 19 additions & 0 deletions guides/compliance/payload.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
= Enveloping compliance
[horizontal]

== Enveloping of BIS message in Peppol Business Message Envelope (SBDH)
* When a BIS message is enveloped, the value of the SBDH element *Sender/Identifier* SHALL match the *Party/EndpointID* element value of the sender party, including the value of its *schemeID* attribute.

* When a BIS message is enveloped, the value of the SBDH element *Receiver/Identifier* SHALL match the *Party/EndpointID* element value of the receiver party, including the value of its *schemeID* attribute.

Example:
[attributes]
====
BIS message:
<cbc:EndpointID schemeID="0088">7315458756324</cbc:EndpointID>
SBDH envelope:
<Identifier Authority="iso6523-actorid-upis">0088:7315458756324</Identifier>
====

See Policy for use of Identifiers for more information on how to represent identifiers in envelope and messages.
2 changes: 2 additions & 0 deletions guides/profiles/28-ordering/process/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,6 @@ include::use-case4.adoc[]

include::use-case5.adoc[]

include::use-case6.adoc[]

:leveloffset: -1
39 changes: 39 additions & 0 deletions guides/profiles/28-ordering/process/use-case6.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[[use-case-6-consignment-order]]
= Use case 6 – Vendor-managed inventory with consignment ordering

This use case describes a scenario where the buyer has an on-premise inventory that is regularly refilled and managed by the seller. When items are withdrawn from the inventory, a consignment order is automatically sent to the seller.

[cols="1s,5",options="header"]
|====
|Use Case number
|6

|Use Case Name
|Vendor-managed inventory with consignment ordering

|Use Case Description
|A hospital is using a vendor-managed inventory. A consigment order is issued by they buyer when items are withdrawn.

|Parties involved
|Buyer +
Seller +


|Assumptions
|The buyer has an inventory which is managed by the seller. The seller keeps track on available quantity and replenish when necessary. +

|The flow
|The buyer withdraws 10 boxes of surgical gloves from the inventory. +
The buyer registers the purchase by scanning the barcodes of the boxes. +
A consignment order is automatically issued (with type code 227) and is sent to the seller. +
The seller receives the order and sends an order response with an acknowledgment. +
The seller updates the record of available quantity.

|Result
|The buyer uses the withdrawn items. +
The seller has an updated record of available quantity. +
If the invoice has an order reference, the invoice can be matched automatically.

|XML example file
|See Appendix A for a sample file illustrating Use Case 6 in the download section on the main page.
|====
2 changes: 2 additions & 0 deletions guides/profiles/3-order-only/process/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,6 @@ include::use-case4.adoc[]

include::use-case5.adoc[]

include::use-case6.adoc[]

:leveloffset: -1
39 changes: 39 additions & 0 deletions guides/profiles/3-order-only/process/use-case6.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[[use-case-6-consignment-order]]
= Use case 6 – Vendor-managed inventory with consignment ordering

This use case describes a scenario where the buyer has an on-premise inventory that is regularly refilled and managed by the seller. When items are withdrawn from the inventory, a consignment order is automatically sent to the seller.

[cols="1s,5",options="header"]
|====
|Use Case number
|6

|Use Case Name
|Vendor-managed inventory with consignment ordering

|Use Case Description
|A hospital is using a vendor-managed inventory. A consigment order is issued by they buyer when items are withdrawn.

|Parties involved
|Buyer +
Seller +


|Assumptions
|The buyer has an inventory which is managed by the seller. The seller keeps track on available quantity and replenish when necessary +

|The flow
|The buyer withdraws 10 boxes of surgical gloves from the inventory. +
The buyer registers the purchase by scanning the barcodes of the boxes. +
A consignment order is automatically issued (with type code 227) and is sent to the seller. +
The seller receives the order. +
The seller updates the record of available quantity.

|Result
|The buyer uses the withdrawn items. +
The seller has an updated record of available quantity. +
If the invoice has an order reference, the invoice can be matched automatically.

|XML example file
|See Appendix A for a sample file illustrating Use Case 6 in the download section on the main page.
|====
7 changes: 6 additions & 1 deletion guides/profiles/30-despatchadvice/principles/parties.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,12 @@ a|

*(UBL:OriginatorCustomerParty)*

|The party who will eventually receive and consume the goods and on whose behalf the buyer makes the purchase.
|The party who will eventually receive and consume the goods and on whose behalf the buyer makes the purchase.|

*Delivery party*

*(UBL:Delivery/UBL:DeliveryParty)*
|A unit to where the consignee forwards the goods. A final delivery point.|
|====

The diagram below shows the roles in the fulfillment process.
Expand Down
2 changes: 2 additions & 0 deletions guides/release-notes/main.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ IMPORTANT: Changes in code lists are also reflected by changes in the validation

:leveloffset: +1

include::v3.0.14.adoc[]

include::v3.0.13.adoc[]

include::v3.0.12.adoc[]
Expand Down
39 changes: 39 additions & 0 deletions guides/release-notes/v3.0.14.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
= Version 3.0.14
[horizontal]
Release date:: November 2024

== BIS documentation

* BIS Ordering and Order Only
** Added sample file and use case which describes consignment orders and vendor-managed inventory

== Changes to "BIS compliance" document
* Added new compliance rules on how to use sender/receiver identifiers when enveloping a BIS3 message in Peppol Business Message Envelope (SBDH)

== Changes to syntax
* Order transaction (T01)
** Added optional element ID to AdditionalItemProperty with corresponding update in Use Case 4.
* Order Change(T114)
** Added optional element ID to AdditionalItemProperty.
* Order Agreement(T110)
** Added optional element ID to AdditionalItemProperty with corresponding update in Use Case in Appendix A.
* Order Response transaction (T76)
** No changes
* Order Response transaction Advanced (T116)
** No changes
* Despatch Advice (T16)
** Optional attribute added to indicate the scheme of the Transport Handling Unit identifier.
** Optional Delivery Party added to align with Order.
** Added optional element ID to AdditionalItemProperty.
* Catalogue transaction (T19)
** Added optional element ID to AdditionalItemProperty with corresponding update in Use Case 5.
* Punchout transaction (T77)
** Added optional element ID to AdditionalItemProperty with corresponding update in Use Case in Appendix A.
** Added ”cac:DocumentReference” to Certificate.
*** this may contain vital information regarding the label and has a similar function as in Catalogue.

== Changes to code lists and validation artefacts
* Added new codelist with code values SSCC (Serial Shipping Container Code) to the optional attribute that indicates the type/scheme for Transport handling unit identifier (in Despatch Advice)
* Changes to codelists 7143, 8273 and UNECERec20-11e

== Other
Loading

0 comments on commit ba10718

Please sign in to comment.