Whylode
Memoir

Program

EDIOUT.rpgle

1 note. Lines with a note are marked in brass.

EDIOUT.rpgleScroll sideways for full lines
1H DFTACTGRP(*NO) ACTGRP(*CALLER)
2H OPTION(*SRCSTMT)
3 *
4 * EDIOUT - EDI 810 Invoice Output
5 * Formats approved invoice records into EDI 810 transaction sets
6 * and writes them to the outbound EDI spool file EDISPOOL.
7 *
8 * EDI 810 date segments use format YYYYMMDD per ISA/GS convention.
9 * The trading partner's 997 acknowledgement uses the same format.
10 *
11 * Maintenance log:
12 * 2018-06 RLT Initial version, date format MMDDYY per legacy spec
13 * 2020-02 RLT Changed date format to YYYYMMDD per partner request #4471
14 *
15FEDISPOOL O E DISK
16 *
17D InvNo S 8P 0
18D InvDate D
19D CustNo S 7P 0
20D InvAmt S 11P 2
21D TaxAmt S 11P 2
22D EDILine S 256A
23D DateStr S 8A
24D SeqNo S 9P 0
25 *
26 * Format invoice date as YYYYMMDD for EDI 810 BIG segment
27C EVAL DateStr = %CHAR(InvDate:*ISO0)
28 *
29 * ISA segment - interchange control header
30C EVAL EDILine =
31C 'ISA*00* *00* ' +
32C '*ZZ*SENDER *ZZ*RECEIVER ' +
33C '*' + %SUBST(DateStr:3:6) +
34C '*' + %SUBST(DateStr:9:4) +
35C '*^*00501*' +
36C %EDITC(SeqNo:'Z') +
37C '*0*P*>'
38C WRITE EDIREC
39 *
40 * GS segment - functional group header
41C EVAL EDILine =
42C 'GS*IN*SENDER*RECEIVER*' +
43C DateStr + '*' +
44C %SUBST(DateStr:9:4) +
45C '*1*X*005010'
46C WRITE EDIREC
47 *
48 * BIG segment - beginning segment for invoice
49 * Date in YYYYMMDD format per current EDI 810 spec
50C EVAL EDILine =
51C 'BIG*' + DateStr +
52C '*' + %EDITC(InvNo:'Z') +
53C '**'
54C WRITE EDIREC
55 *
56 * ITD - terms of sale / deferred terms
57C EVAL EDILine =
58C 'ITD*01*3***' +
59C '***30*'
60C WRITE EDIREC
61 *
62 * TDS - total monetary value summary
63C EVAL EDILine =
64C 'TDS*' +
65C %EDITC(InvAmt * 100:'Z')
66C WRITE EDIREC
67 *
68 * TXI - tax information
69C EVAL EDILine =
70C 'TXI*ST*' +
71C %EDITC(TaxAmt:'1') +
72C '****ST'
73C WRITE EDIREC
74 *
75C EVAL *INLR = *ON