Factur-X est un format permettant d'échanger des factures en B2B via Chorus Pro (la plateforme publique de centralisation des factures numériques) et lisibles en PDF (pour les être humains).
Rappel, à partir de juillet 2024, plus possible d'émettre des factures comme on veut pour les grands groupes et 2026 pour les TPE/PME. J'anticipe un peu donc.
Je découvrir un type de packaging que Maven est capable de produire : bundle.
Je copie-colle ci-dessous la définition :
This kind of artifact is an OSGi bundle, typically produced using the maven-bundle-plugin which is part of Apache Felix.
The plugin treats all the classes available to your module (the module's own classes, classes provided by dependencies, other classes on the classpath) as one giant set, then lets you select a subset of those classes to bundle into a jar. It also creates the necessary manifest information to make the artifact an OSGi bundle.
So the artifact you're pulling in by using this dependency is a jar, however it's a jar built by choosing a subset from a much larger set of classes, not just the classes that were defined inside the abdera-core module.
If you have a look at the pom for the abdera project you'll see the maven-bundle-plugin configuration which will give you an idea of which classes have been added to the bundle, and which have been held back.
Bref, l'artifact org.mockito:mockito-core:2.28.2 est maintenant de type bundle.
Plein d'exemples de fichiers SWIFT (format MT101 à MT950, MX et SEPA).
Pour @Animal et @Doudou
J'en note quelques uns ici :
Format MT101 :
{1:F01SAESVAV0AXXX0466020121}{2:O1011538070522LRLRXXXX4A0700005910650705221739N}{3:{108:MT101 001 OF 019}}{4:
:20:00028
:28D:1/1
:50H:/VTB.2003.02
19Apr2002
:30:020419
:21:x
:32B:USD1,
:50L:x
:59:/x
x
:71A:OUR
-}{5:{MAC:00000000}{CHK:24857F4599E7}{TNG:}}
Format MT103 :
{1:F01AAAAGRA0AXXX0057000289}{2:O1030919010321BBBBGRA0AXXX00570001710103210920N}{3:{108:MT103 003 OF 045}{121:c8b66b47-2bd9-48fe-be90-93c2096f27d2}}{4:
:20:5387354
:23B:CRED
:23E:PHOB/20.527.19.60
:32A:000526USD1101,50
:33B:USD1121,50
:50K:FRANZ HOLZAPFEL GMBH
VIENNA
:52A:BKAUATWW
:59:723491524
C. KLEIN
BLOEMENGRACHT 15
AMSTERDAM
:71A:SHA
:71F:USD10,
:71F:USD10,
:72:/INS/CHASUS33
-}{5:{MAC:75D138E4}{CHK:DE1B0D71FA96}}
Format MT104 :
{1:F01COPZBEB0AXXX0377002075}{2:O1041453110804LRLRXXXX4A1100009036981108041654N}{3:{108:MT104 002 OF 033}}{4:
:20:00130
:23E:AUTH
:30:001118
:52C:/34x
:21:16x
:32B:USD1,34
:50K:/34x
x
:59:/34x
35x
:33B:BEF2,
:71F:CAD1,34
:71G:USD1,34
:36:1,3456789012
:36:1,3456789012
:21:16x
:32B:USD1,34
:50K:/34x
x
:59:/34x
35x
:33B:BEF2,
:71F:CAD1,34
:71G:USD1,34
:36:1,3456789012
:36:1,3456789012
:21:16x
:32B:USD1,34
:50K:/34x
x
:59:/34x
35x
:33B:BEF2,
:71F:CAD1,34
:71G:USD1,34
:36:1,3456789012
:36:1,3456789012
:32B:USD3,34
:19:4,02
:71F:CAD1,34
:71G:USD1,34
-}{5:{MAC:00000000}{CHK:9F3A5F4F2532}{TNG:}}
Format MT202 :
{1:F01COPZBEB0AXXX0377002089}{2:O2021454110804LRLRXXXX4A1100009037121108041654N}{3:{108:MT103 003 OF 045}{121:c8b66b47-2bd9-48fe-be90-93c2096f27d2}}{4:
:20:00345
:21:123456/DEV
:13C:/A234567Z/1359+0100
:32A:071231EUR9980,
:58A:TESTSEVT
-}{5:{MAC:00000000}{CHK:7E0FAA1CFBE1}{TNG:}}
Format MT509 :
{1:F01COPZBEB0AXXX0377001940}{2:O5091449110804LRLRXXXX4A1100009035631108041649U}{3:{108:MT509 001 OF 004}}{4:
:16R:ADDINFO
:95P::MEOR//TESTUSVT
:95P::MERE//TESTUSVT
:16S:ADDINFO
-}{5:{MAC:00000000}{CHK:1A8015CB9899}{TNG:}}
Format MT900 :
{1:F01SIIBUS30AXXX0481250565}{2:O9001331080620LPLPXXXX4A0800001263100806200933N}{3:{108:MT900 005 OF 012}}{4:
:20:02629
:21:123456/DEV
:25:6-9412771
:32A:040229USD112,9
-}{5:{CHK:588D66867002}{TNG:}}
Format MT910 :
{1:F01SIIBUS30AXXX0481250566}{2:O9101331080620LPLPXXXX4A0800001263110806200933N}{3:{108:MT910 009 OF 034}}{4:
:20:02645
:21:123456/DEV
:25:6-9412771
:32A:000103USD112,
:52A:DNBANOKK
-}{5:{CHK:1477E5825C43}{TNG:}}
Format MT940 :
{1:F01COPZBEB0AXXX0377002460}{2:O9401506110804LRLRXXXX4A1100009040831108041707N}{3:{108:MT940 003 OF 058}}{4:
:20:02618
:21:123456/DEV
:25:6-9412771
:28C:00102
:60F:C000103USD672,
:62F:C000103USD987,
-}{5:{CHK:592A3DB2CA5B}{TNG:}}
Format MT942 :
{1:F01SIIBUS30AXXX0481250571}{2:O9421332080620LPLPXXXX4A0800001263160806200933N}{3:{108:MT942 005 OF 015}}{4:
:20:02761
:25:6-9412771
:28C:1/1
:34F:USD123,
:13D:0001032359+0500
:90D:75475USD123,
:90C:75475USD123,
-}{5:{CHK:F7C4F89AF66D}{TNG:}}
Format MT950 :
{1:F01SAESVAV0AXXX0466020565}{2:O9501552070522LRLRXXXX4A0700005915090705221752N}{3:{108:MT950 007 OF 030}}{4:
:20:02711
:25:210057665066
:28C:00196
:60F:C000103HKD672,
:61:000103D642,NRTI9999
CHECK NO. 57650
:62F:C000103HKD30,
-}{5:{CHK:22ED16B18106}{TNG:}}
Format MX CAMT026.001 :
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.026.001.04">
<UblToApply>
<Assgnmt>
<Id>UTACOMPAY12345090323001</Id>
<Assgnr>
<Pty>
<Id>
<OrgId>
<AnyBIC>CUSBGB2L</AnyBIC>
</OrgId>
</Id>
</Pty>
</Assgnr>
<Assgne>
<Agt>
<FinInstnId>
<BICFI>MMMMGB2L</BICFI>
</FinInstnId>
</Agt>
</Assgne>
<CreDtTm>2012-03-24T08:35:30</CreDtTm>
</Assgnmt>
<Case>
<Id>CUSBGB2L-20120323-001</Id>
<Cretr>
<Pty>
<Id>
<OrgId>
<AnyBIC>CUSBGB2L</AnyBIC>
</OrgId>
</Id>
</Pty>
</Cretr>
</Case>
<Undrlyg>
<Initn>
<OrgnlInstrId>COMPAY12345090323001</OrgnlInstrId>
<OrgnlInstdAmt Ccy="GBP">52317.48</OrgnlInstdAmt>
<ReqdExctnDt>2012-03-23</ReqdExctnDt>
</Initn>
</Undrlyg>
<Justfn>
<AnyInf>true</AnyInf>
</Justfn>
</UblToApply>
</Document>
Format MX PACS008.001 :
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FIToFICstmrCdtTrf>
<GrpHdr>
<MsgId>BBBB/120928-CCT/JPY/123</MsgId>
<CreDtTm>2012-09-28T16:00:00</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<SttlmInf>
<SttlmMtd>COVE</SttlmMtd>
<InstgRmbrsmntAgt>
<FinInstnId>
<BICFI>CCCCJPJT</BICFI>
</FinInstnId>
</InstgRmbrsmntAgt>
<InstdRmbrsmntAgt>
<FinInstnId>
<BICFI>AAAAJPJT</BICFI>
</FinInstnId>
</InstdRmbrsmntAgt>
</SttlmInf>
<InstgAgt>
<FinInstnId>
<BICFI>BBBBUS33</BICFI>
</FinInstnId>
</InstgAgt>
<InstdAgt>
<FinInstnId>
<BICFI>AAAAGB2L</BICFI>
</FinInstnId>
</InstdAgt>
</GrpHdr>
<CdtTrfTxInf>
<PmtId>
<InstrId>BBBB/120928-CCT/JPY/123/1</InstrId>
<EndToEndId>ABC/4562/2012-09-08</EndToEndId>
<TxId>BBBB/120928-CCT/JPY/123/1</TxId>
</PmtId>
<PmtTpInf>
<InstrPrty>NORM</InstrPrty>
</PmtTpInf>
<IntrBkSttlmAmt Ccy="JPY">10000000</IntrBkSttlmAmt>
<IntrBkSttlmDt>2012-09-29</IntrBkSttlmDt>
<ChrgBr>SHAR</ChrgBr>
<Dbtr>
<Nm>ABC Corporation</Nm>
<PstlAdr>
<StrtNm>Times Square</StrtNm>
<BldgNb>7</BldgNb>
<PstCd>NY 10036</PstCd>
<TwnNm>New York</TwnNm>
<Ctry>US</Ctry>
</PstlAdr>
</Dbtr>
<DbtrAcct>
<Id>
<Othr>
<Id>00125574999</Id>
</Othr>
</Id>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BICFI>BBBBUS33</BICFI>
</FinInstnId>
</DbtrAgt>
<CdtrAgt>
<FinInstnId>
<BICFI>AAAAGB2L</BICFI>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>DEF Electronics</Nm>
<PstlAdr>
<StrtNm>Mark Lane</StrtNm>
<BldgNb>55</BldgNb>
<PstCd>EC3R7NE</PstCd>
<TwnNm>London</TwnNm>
<Ctry>GB</Ctry>
<AdrLine>Corn Exchange 5th Floor</AdrLine>
</PstlAdr>
</Cdtr>
<CdtrAcct>
<Id>
<Othr>
<Id>23683707994215</Id>
</Othr>
</Id>
</CdtrAcct>
<Purp>
<Cd>GDDS</Cd>
</Purp>
<RmtInf>
<Strd>
<RfrdDocInf>
<Tp>
<CdOrPrtry>
<Cd>CINV</Cd>
</CdOrPrtry>
</Tp>
<Nb>4562</Nb>
<RltdDt>2012-09-08</RltdDt>
</RfrdDocInf>
</Strd>
</RmtInf>
</CdtTrfTxInf>
</FIToFICstmrCdtTrf>
</Document>
Format SEPA :
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02">
<FIToFICstmrCdtTrf>
<GrpHdr>
<MsgId>PSCXMILBGRAA20101115114110891</MsgId>
<CreDtTm>2013-11-07T11:41:10</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<TtlIntrBkSttlmAmt Ccy="EUR">20.00</TtlIntrBkSttlmAmt>
<IntrBkSttlmDt>2013-11-07</IntrBkSttlmDt>
<SttlmInf>
<SttlmMtd>CLRG</SttlmMtd>
<ClrSys>
<Prtry>ST2</Prtry>
</ClrSys>
</SttlmInf>
<InstdAgt>
<FinInstnId>
<BIC>BCYPCY2N</BIC>
</FinInstnId>
</InstdAgt>
</GrpHdr>
<CdtTrfTxInf>
<PmtId>
<InstrId>DEUTDE0920000891</InstrId>
<EndToEndId>NOTPROVIDED</EndToEndId>
<TxId>DEUTDEFF011OS10222891</TxId>
</PmtId>
<PmtTpInf>
<SvcLvl>
<Cd>SEPA</Cd>
</SvcLvl>
</PmtTpInf>
<IntrBkSttlmAmt Ccy="EUR">20.00</IntrBkSttlmAmt>
<ChrgBr>SLEV</ChrgBr>
<InstgAgt>
<FinInstnId>
<BIC>DEUTDEFFXXX</BIC>
</FinInstnId>
</InstgAgt>
<Dbtr>
<Nm>Debtor name</Nm>
<PstlAdr>
<Ctry>DE</Ctry>
<AdrLine>Indirizzo 1 Dbtr</AdrLine>
<AdrLine>Indirizzo 2 Dbtr</AdrLine>
</PstlAdr>
<Id>
<OrgId>
<Othr>
<Id>PT50078101120112001285102</Id>
<SchmeNm>
<Cd>BANK</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>DE73340302860352858328</IBAN>
</Id>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BIC>DEUTDEFFXXX</BIC>
</FinInstnId>
</DbtrAgt>
<CdtrAgt>
<FinInstnId>
<BIC>BCYPCY2N</BIC>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>CREDITOR NAME</Nm>
<PstlAdr>
<Ctry>GR</Ctry>
<AdrLine>ADDRESS 1</AdrLine>
<AdrLine>ATHENS</AdrLine>
</PstlAdr>
<Id>
<OrgId>
<Othr>
<Id>PT60078101120112001285102</Id>
<SchmeNm>
<Cd>BANK</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>GR2703801380000000000089777</IBAN>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>Rem. Info</Ustrd>
</RmtInf>
</CdtTrfTxInf>
</FIToFICstmrCdtTrf>
</Document>
@Lenny qu'en penses-tu ?
Writing Good Commit Messages
Rule zero: “good” is defined by the standards of the project you're on. Have a look at what the existing messages look like, and try to emulate that first before doing anything else.
Having said that, here are some things that will help your commit messages be useful later:
Treat the first line of the message as a one-sentence summary. Most SCM systems have an “overview” command that shows shortened commit messages in bulk, so making the very beginning of the message meaningful helps make those modes more useful for finding specific commits. It's okay for this to be a “what” description if the rest of the message is a “why” description. Fill out the rest of the message with prose outlining why you made the change. The guidelines for a good “why” message are the same as the guidelines for good comments, but commit messages can be signifigantly longer. Don't bother reiterating the contents of the change in detail; anyone who needs that can read the diff themselves. If you use an issue tracker (and you should), include whatever issue-linking notes it supports right at the start of the message, where it'll be visible even in shortlogs. If your tracker has absurdly long issue-linking syntax, or doesn't support issue links in commits at all, include a short issue identifier at the front of the message and put the long part somewhere out of the way, such as on a line of its own at the end of the message. Pick a tense and a mood and stick with them. Reading one commit with a present-tense imperative message (“Add support for PNGs”) and another commit with a past-tense narrative message (“Fixed bug in PNG support”) is distracting. If you need rich commit messages (links, lists, and so on), pick one markup language and stick with it. It'll be easier to write useful commit formatters if you only have to deal with one syntax, rather than four. (Personally, I use Markdown on projects I control.) This also applies to line-wrapping: either hard-wrap everywhere, or hard-wrap nowhere.
An Example
commit 842e6c5f41f6387781fcc84b59fac194f52990c7
Author: Owen Jacobson owen.jacobson@grimoire.ca
Date: Fri Feb 1 16:51:31 2013 -0500DS-37: Add support for privileges, and create a default privileged user. This change gives each user a (possibly empty) set of privileges. Privileges are mediated by roles in the following ways: * Each user is a member of zero or more roles. * Each role implies membership in zero or more roles. If role A implies role B, then a member of role A is also a transitive member of role B. This relationship is transitive: if A implies B and B implies C, then A implies C. This graph should not be cyclic, but it's harmless if it is. * Each role grants zero or more privileges. A user's privileges are the union of all privileges of all roles the user is a member of, either directly or transitively. Obviously, a role that implies no other roles and grants no priveleges is meaningless to the authorization system. This may be useful for "advisory" roles meant for human consumption. This also introduces a user with the semi-magical name '*admin' (chosen because asterisks cannot collide with player-chosen usernames), and the group '*superuser' that is intended to hold all privileges. No privileges are yet defined.
Un autre format de configuration à mi-chemin entre JSON et des fichiers de properties. Ce format est utilisé par Ktor, un serveur web embarqué et asynchrone écrit en Kotlin.
Tuto très sympa. @Lenny, si tu as le temps, essaie de lire ce post. Il y a quelques idées à prendre 😃.
La structure de commit que je propose (en reprenant ce que dit l'article) :
Summarize changes in around 80 characters or less
More detailed explanatory text, if necessary. Wrap it to about 120 characters or so. In some contexts, the first line is
treated as the subject of the commit and the rest of the text as the body. The blank line separating the summary from
the body is critical (unless you omit the body entirely); various tools like `log`, `shortlog` and `rebase` can get
confused if you run the two together.
Explain the problem that this commit is solving. Focus on why you are making this change as opposed to how (the code
explains that). Are there side effects or other unintuitive consequences of this change? Here's the place to explain
them.
Further paragraphs come after blank lines.
- Bullet points are okay, too
- Typically a hyphen or asterisk is used for the bullet, preceded by a single space, with blank
lines in between, but conventions vary here
If you use an issue tracker, put references to them at the bottom, like this:
Resolves: #123
See also: #456, #789
This article gives you enough information to read most simple COBOL layouts, for converting an IBM mainframe file to a PC
Lire des fichiers au format COBOL. Un tuto simple pour comprendre les structures de ce format.
Un comparatif qui démontre en quoi SVG c'est vraiment mieux que GIF. Dommage que le format ait autant peiné a être adopté.