From 71232af484bd2d5d81690036c912306c3daaf11b Mon Sep 17 00:00:00 2001 From: qiuqiuqiu Date: Wed, 15 Jul 2026 20:32:51 +0800 Subject: [PATCH] Add Subsystem D (SHA01-10): social insurance subsystem + design-resource consistency fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add SHA01CVT-SHA10S10: all 10 programs, COPY books (13), binaries, design docs, resource usage lists, DDL schema_sha.sql - Add KYU01REC-KYU06REC COPY books (previously missing from git) - Fix design-code inconsistencies detected in audit: - SHA07KBR: remove dead SHACHKAC COPY (SUB04CHK never called) - SHA02MNC: 2020TYPSOR paragraph -> inline EVALUATE; SUB04CHK = PARM val - SHA05TWN: REVISED-TYPE values 'C'/'N' -> 'A'(定期決定)/'B'(月変) - SHA03MNP: 2010CALCSOR/2020WRTSOR -> inline implementation - SHA04TWO: remove GRADE-HISTORY from DB table list (not accessed) - SHA06TWM: add SALARYDB.EMP-MASTER to DB table list - SHA10S10: fix error file W99OUTFIL, 10+1 file count - Fix comment column alignment (Area A col 7) in SHA07KBR, SHA08SRT - Update KYU source/design docs: BOM removal, classification comment cleanup - Update README: Subsystem D added, program count 39 --- README.md | 15 +- bin/SHA01CVT.exe | Bin 0 -> 161942 bytes bin/SHA02MNC.exe | Bin 0 -> 165331 bytes bin/SHA03MNP.exe | Bin 0 -> 165613 bytes bin/SHA04TWO.exe | Bin 0 -> 163634 bytes bin/SHA05TWN.exe | Bin 0 -> 160915 bytes bin/SHA06TWM.exe | Bin 0 -> 170259 bytes bin/SHA07KBR.exe | Bin 0 -> 162672 bytes bin/SHA08SRT.exe | Bin 0 -> 155758 bytes bin/SHA09S25.exe | Bin 0 -> 184679 bytes bin/SHA10S10.exe | Bin 0 -> 164478 bytes cpy/KYU01REC.cpy | 12 + cpy/KYU02REC.cpy | 7 + cpy/KYU03REC.cpy | 15 + cpy/KYU04REC.cpy | 16 + cpy/KYU05REC.cpy | 12 + cpy/KYU06REC.cpy | 8 + cpy/SHA01REC.cpy | 16 + cpy/SHA02REC.cpy | 13 + cpy/SHA03REC.cpy | 13 + cpy/SHA04REC.cpy | 13 + cpy/SHA05REC.cpy | 11 + cpy/SHA06REC.cpy | 14 + cpy/SHA07REC.cpy | 14 + cpy/SHA08REC.cpy | 15 + cpy/SHA09REC.cpy | 6 + cpy/SHACHKAC.cpy | 7 + cpy/SHADATAC.cpy | 6 + cpy/SHAENDAC.cpy | 5 + cpy/SHAMSGAC.cpy | 15 + ddl/schema_sha.sql | 70 ++ src/KYU01CVT.cbl | 3 +- src/KYU02REG.cbl | 3 +- src/KYU03AGG.cbl | 3 +- src/KYU04CAL.cbl | 3 +- src/KYU05DED.cbl | 3 +- src/KYU06UPD.cbl | 3 +- src/KYU07DIV.cbl | 3 +- src/KYU08PRI.cbl | 3 +- src/KYU09MRG.cbl | 3 +- src/SHA01CVT.cbl | 482 +++++++++ src/SHA02MNC.cbl | 447 ++++++++ src/SHA03MNP.cbl | 409 +++++++ src/SHA04TWO.cbl | 543 ++++++++++ src/SHA05TWN.cbl | 459 ++++++++ src/SHA06TWM.cbl | 561 ++++++++++ src/SHA07KBR.cbl | 480 +++++++++ src/SHA08SRT.cbl | 359 +++++++ src/SHA09S25.cbl | 997 ++++++++++++++++++ src/SHA10S10.cbl | 479 +++++++++ 使用資源一覧/SHA01CVT_使用資源一覧.md | 48 + 使用資源一覧/SHA02MNC_使用資源一覧.md | 51 + 使用資源一覧/SHA03MNP_使用資源一覧.md | 50 + 使用資源一覧/SHA04TWO_使用資源一覧.md | 53 + 使用資源一覧/SHA05TWN_使用資源一覧.md | 46 + 使用資源一覧/SHA06TWM_使用資源一覧.md | 51 + 使用資源一覧/SHA07KBR_使用資源一覧.md | 52 + 使用資源一覧/SHA08SRT_使用資源一覧.md | 47 + 使用資源一覧/SHA09S25_使用資源一覧.md | 46 + 使用資源一覧/SHA10S10_使用資源一覧.md | 46 + ...険管理システム_設計書(サブシステムD).md | 456 ++++++++ 詳細設計書/詳細設計書_SHA01CVT.md | 135 +++ 詳細設計書/詳細設計書_SHA02MNC.md | 167 +++ 詳細設計書/詳細設計書_SHA03MNP.md | 153 +++ 詳細設計書/詳細設計書_SHA04TWO.md | 159 +++ 詳細設計書/詳細設計書_SHA05TWN.md | 147 +++ 詳細設計書/詳細設計書_SHA06TWM.md | 153 +++ 詳細設計書/詳細設計書_SHA07KBR.md | 172 +++ 詳細設計書/詳細設計書_SHA08SRT.md | 178 ++++ 詳細設計書/詳細設計書_SHA09S25.md | 149 +++ 詳細設計書/詳細設計書_SHA10S10.md | 132 +++ 詳細設計書/詳細設計書_ZAN01CHK.md | 11 +- 72 files changed, 8028 insertions(+), 20 deletions(-) create mode 100644 bin/SHA01CVT.exe create mode 100644 bin/SHA02MNC.exe create mode 100644 bin/SHA03MNP.exe create mode 100644 bin/SHA04TWO.exe create mode 100644 bin/SHA05TWN.exe create mode 100644 bin/SHA06TWM.exe create mode 100644 bin/SHA07KBR.exe create mode 100644 bin/SHA08SRT.exe create mode 100644 bin/SHA09S25.exe create mode 100644 bin/SHA10S10.exe create mode 100644 cpy/KYU01REC.cpy create mode 100644 cpy/KYU02REC.cpy create mode 100644 cpy/KYU03REC.cpy create mode 100644 cpy/KYU04REC.cpy create mode 100644 cpy/KYU05REC.cpy create mode 100644 cpy/KYU06REC.cpy create mode 100644 cpy/SHA01REC.cpy create mode 100644 cpy/SHA02REC.cpy create mode 100644 cpy/SHA03REC.cpy create mode 100644 cpy/SHA04REC.cpy create mode 100644 cpy/SHA05REC.cpy create mode 100644 cpy/SHA06REC.cpy create mode 100644 cpy/SHA07REC.cpy create mode 100644 cpy/SHA08REC.cpy create mode 100644 cpy/SHA09REC.cpy create mode 100644 cpy/SHACHKAC.cpy create mode 100644 cpy/SHADATAC.cpy create mode 100644 cpy/SHAENDAC.cpy create mode 100644 cpy/SHAMSGAC.cpy create mode 100644 ddl/schema_sha.sql create mode 100644 src/SHA01CVT.cbl create mode 100644 src/SHA02MNC.cbl create mode 100644 src/SHA03MNP.cbl create mode 100644 src/SHA04TWO.cbl create mode 100644 src/SHA05TWN.cbl create mode 100644 src/SHA06TWM.cbl create mode 100644 src/SHA07KBR.cbl create mode 100644 src/SHA08SRT.cbl create mode 100644 src/SHA09S25.cbl create mode 100644 src/SHA10S10.cbl create mode 100644 使用資源一覧/SHA01CVT_使用資源一覧.md create mode 100644 使用資源一覧/SHA02MNC_使用資源一覧.md create mode 100644 使用資源一覧/SHA03MNP_使用資源一覧.md create mode 100644 使用資源一覧/SHA04TWO_使用資源一覧.md create mode 100644 使用資源一覧/SHA05TWN_使用資源一覧.md create mode 100644 使用資源一覧/SHA06TWM_使用資源一覧.md create mode 100644 使用資源一覧/SHA07KBR_使用資源一覧.md create mode 100644 使用資源一覧/SHA08SRT_使用資源一覧.md create mode 100644 使用資源一覧/SHA09S25_使用資源一覧.md create mode 100644 使用資源一覧/SHA10S10_使用資源一覧.md create mode 100644 基本設計書/04_社会保険管理システム_設計書(サブシステムD).md create mode 100644 詳細設計書/詳細設計書_SHA01CVT.md create mode 100644 詳細設計書/詳細設計書_SHA02MNC.md create mode 100644 詳細設計書/詳細設計書_SHA03MNP.md create mode 100644 詳細設計書/詳細設計書_SHA04TWO.md create mode 100644 詳細設計書/詳細設計書_SHA05TWN.md create mode 100644 詳細設計書/詳細設計書_SHA06TWM.md create mode 100644 詳細設計書/詳細設計書_SHA07KBR.md create mode 100644 詳細設計書/詳細設計書_SHA08SRT.md create mode 100644 詳細設計書/詳細設計書_SHA09S25.md create mode 100644 詳細設計書/詳細設計書_SHA10S10.md diff --git a/README.md b/README.md index 753a3fe..f3a0f72 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## システム概要 -IBM z/OS + DB2 で動作する COBOL バッチシステム。勤怠休暇管理・残業統計管理・給与計算の3サブシステムで構成される。 +IBM z/OS + DB2 で動作する COBOL バッチシステム。勤怠休暇管理・残業統計管理・給与計算・社会保険管理の4サブシステムで構成される。 ### 本番環境 - OS: IBM z/OS @@ -22,11 +22,24 @@ IBM z/OS + DB2 で動作する COBOL バッチシステム。勤怠休暇管理 | A: 勤怠休暇管理 | CSV取込・DB登録・照合・日別計算・勤怠照会・DB更新・CSV出力 | KIN01INP~KIN09CSV(9本) | 完了 | | B: 残業統計管理 | 申請取込・重複チェック・照合・マッチング・集約・DB更新 | ZAN01CHK~ZAN06UPD(6本) | 完了 | | C: 給与計算 | CSV変換・登録・集約・計算・控除・DB更新・分割・印刷・マージ | KYU01CVT~KYU09MRG(9本) | 完了 | +| D: 社会保険管理 | ASCII→EBCDIC変換・保険情報統合・料率計算・事業所マッチング・等級判定・控除計算・キーブレイク・SORT編集・25分割・100分割 | SHA01CVT~SHA10S10(10本) | 完了 | ### 共通サブプログラム(5本) SUB01DAT(日付), SUB02MSG(メッセージ), SUB03END(ABEND), SUB04CHK(バリデーション), SUB05TIM(丸め) +### プログラム一覧 + +| プログラムID | サブシステム | 機能 | +|:------------|:-----------:|------| +| KIN01INP~KIN09CSV | A | 勤怠休暇管理(9本) | +| ZAN01CHK~ZAN06UPD | B | 残業統計管理(6本) | +| KYU01CVT~KYU09MRG | C | 給与計算(9本) | +| SHA01CVT~SHA10S10 | D | 社会保険管理(10本) | +| SUB01DAT~SUB05TIM | 共通 | 日付/メッセージ/ABEND/バリデーション/丸め(5本) | + +**全プログラム数: 39本** + ## ディレクトリ構成 ``` diff --git a/bin/SHA01CVT.exe b/bin/SHA01CVT.exe new file mode 100644 index 0000000000000000000000000000000000000000..61e8b3bdf2bb9f78dd50396ac21733dcfe2da2ef GIT binary patch literal 161942 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
  • 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 LO)6u`1;hUf&*bcR literal 0 HcmV?d00001 diff --git a/bin/SHA03MNP.exe b/bin/SHA03MNP.exe new file mode 100644 index 0000000000000000000000000000000000000000..45710a8724f4e5c41a2b908a15d609329649fcb3 GIT binary patch literal 165613 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 NYWu5a8F?;v{$ExngdYF^ literal 0 HcmV?d00001 diff --git a/bin/SHA04TWO.exe b/bin/SHA04TWO.exe new file mode 100644 index 0000000000000000000000000000000000000000..5094006ee08ee53fe57967f71a05b3b168855a9e GIT binary patch literal 163634 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 T8161bwHfZ*6|DG~wZs1b#LNrt literal 0 HcmV?d00001 diff --git a/bin/SHA06TWM.exe b/bin/SHA06TWM.exe new file mode 100644 index 0000000000000000000000000000000000000000..ade8cfea8d552ea74ee03246385d044628333682 GIT binary patch literal 170259 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 GVE#YnNf>kh literal 0 HcmV?d00001 diff --git a/bin/SHA07KBR.exe b/bin/SHA07KBR.exe new file mode 100644 index 0000000000000000000000000000000000000000..8440f40bb9d55dbef37c7980dbedddd4671d706e GIT binary patch literal 162672 zcmeFa34B!5`8R&<%-m$M&Hxz*`+zJ#0h6!@2s%SDFoDTJ5;jFAA(@b9Hj@bi*I+=I zPDi6ft1W6+tXQx`>w-&d01LP_T5D-tN?mGVXpK9fHShO1=iJ#?O8x2k{(qmp7w(+% ztmiq;S?@XL-sE1?#`KIa1Ma>)#`Ykj%f^3C|I-3;^2jHW*~4)!j@qNRUK~|iS=DH* zZ>U?yWP!uv$5q^YfTc z5`u*)c7(BaiQbF6CvZmb)6UqZQZ+}I6}F5U5XKW0ZMl)Lv@lqUc7DuQWw;)VAj8RC zPqUZei*S>Ply~GK{IW7uGP%6eTMFcEDzJLo#Ip={*kywkCN~JiO7dL`?t!>3#T|Cp zkk!fcf{*919YoU04M8X`8}T&@J{RR-H*Vr<#vOLqh;L zm&iwOlisUwhg~+(S0(s(nV@V~BJOL$m=LuQpSPN)ORi%K1w{IO#DUh#wGm&&Ob!|zM34@?hY)V!sNj!{_@-oV zxMLK8Uhs`ZI1gdiW#j2i;~2daffbn`zRHvEO*@bC^`gD70`SEn{LxAH&P(Tf`@zCW z@I&Rc=_GtJgnb_j1-%}8!w}wa626%t-NOE$w}Fr9*TW~_%gC4l3VW1DyTOP5?9hpP z#Ph@T|IP#ZO(SirqGGaX(y z!GQRN4%7PEA#hM_`898;%(3Bf)B2yIf;j!^(JLun&J7*jL`O!)6I5+7p6%=G%F1QT zy9VDQ~h8wMRiTq);&}%$*Tut`!^orzHlIqx9!!+3yH-+zc1Lhc7!! z8{Ejk<2)N4vaxF+H-9hq{QZ4q4ZcN#)6R#hI!qfsf_~^53=>;tz>Kv}0l138eWvvn zaoCarIj27<6G2xlR8xx61nW(}xdQ5A4}c?J*~5dR#}W9MFMEs&$|iy%+i!FR2n5dB z^^l8HG_P@$jlCJ1_JC`Q;w*dCx%cn-u9#fLa(ut1+OX8I;a$^Bcfv%Mf6k>~nUmWXt4=87#S#kQl?0S&MzUKTMk4H6M^4k?#Hf?(3`I_>2zcjr#73gD|ES5Q_n0_h!_Gg@Nq% znDZc60^e9-;4--ALky5E-=y8U!1@(D)phqwUc*SXJBD<%?ZKRjalMbD3ifra09*G@ zsfGoT3T8p1#|Fe|AX=Nf$)+0;5zF?sbwMiQSqCckZF{?qLDS%P9WHZ+Mew0$%UPX9fpLj~(P{#7`=`(n}+x?oluxVqov4aUay zhe$lOn0gJTGf+Lo=Je%SeT&l$I*yXw)@#yOQ~Vx^c6;Ffr{7_9`U}vdPzXD^6lY+V z&h)6>^k_%x5mW22q^8LvbnOWLVr0Q#wR2$hzI}U->wJgy9veAfpRaT8 z5uMVhbWGUmd(Iv(n0<~<{SF9pI;&n00v}j?FYoF~WQ0E2HI?1U@gIydT_tv!nKpo6*q);$OrX}#ts{MmX^g3E&rH`sk0|Ba)v<2uMaj$;bmId7O%@i>8kfU$kcrW~p7*qt|y% zc*YsnHKqkbU!VY3r1ne9zMcM5r|+&bATnO}Zy>_nu8}B8^n)W?e@ie%%(o|@7I5IG zX~UZUx`$0h1;35!2{;a+sb0DRx(=e3MFPz3ds#DfAJU2E#zJHK9_o3z--QOC&mob( zVt58^GvG*f`W&5TeVqqw)KP*1V8HUiS%~_~e$@bW3;>%txOJutdqHS}ns@JmDFr31 z`xIY62|VKHG)pbq6G96*9n#VUR}#N{4`vALiFA(L+ck=Y)`0pVr%Xf@f5Iv$v7BP* z;-;$i2Sus#e`g+~!jc<7G9tOnT-@Bf4SJldHJ#=jUEdMYqiO*Z%+Bzh9WIs_5~F;> z%I*P}@(Qu%BQlhFBI~Qban^8^Lr>(pXNctM{(O`s5l|2R;sjqFQ-KK;w!2~ z0ZR|^0EWAQqU4J|bDHW05-dtJspb9v?MWdwYzdcpWEBEl+4X;+${ucamD=0@eB|>J3puEH>^pFyi87wIMc`?(_`2=pR ztq&76Wcv7t7Q81Ymo6qo2UWd82W?lQ4pCh=bg%^@GQSA&+nUF+1jgpjk5-et2|}is z*ifIhlMh1`y=f4aY-t0PCbzQwd&k0@brqCtN=q{o@=yJlyVa*&Op5$!F$Dq39146d z_jUTz1stQE!!eG-(0|zU7~6Zq=tFDe@ru1&#<38_StjVm!O!rU=>`{4J z#=K@A40#*Aq@mTPR%}P_@G9jbpk9f1R7-mdvs_ThI3=QX-Nh-E^`t4FUKkXmvRo@@ zLy9?Vn+E}}L3>~0Sq)e^ia2F3F>uO#f^zcKsnsoYIM}ImhSx!~4k|h7dNjT_gM5B< zAnddAj#l(={INl#dA>+flrswOHqldg)56uuiV?1U3#z>^!>|61@_lmkZ~Td8_PSx)}{E*inXZP0XPjo>%vP)=wBkD&^pZ}F+uk|MvlhJt{l zrHl;ZjljV%Y7ADt!Wxf|;{^bzJB5~jx|_?<2z{-F`ezVzxrREMXP>y1X{c2}ltV*p z3ZgPK)RrJ>q(J%AaT?9Dh)jl0(Vj#!71fja80w&S^uO<8>bFAl%-p-8;w0`}_DAX7 z@ubMFS}6!vCj63uq|tz=pLu%=z_2Dr(|OsnREqk{JtJhrcXaw~#@1soO^KYr&$?eY zhKB=WdP4zmeiwD>C-+0snPs{jUCaq}s_Ye+=>??7uVzsYuuP>u)Txi!38RkY7{?K0 z

    @}9UXp0hw~2JiE6Q^PSmvFH*s9_iyf3OJ=_NerS%u^WbVr647aaDz`M9-UgqWm zEZYQSbCB{&Nl~kaBI?fFBAN>G8b#E~>yGVe{kN}1Ih4^e^XNoW@e@4SPZ;V`87cCs zUn2K-sP9jZHql7>6iBK~o9^M*&+;fxU!s8f;i*pH2lYulY)AOcIfu)X3YnjkYBC$8 zjAfOelmscYnzl(i0p9LbiYWQ+JQ4j4e3yi5ouTh~QL-oa?oWS^wecBb8@~H30{HGV zf&!Lb^C3QI4w8vv2Z#@S=Y1rSBMok6tk?vWXwtyoeD%_tr#nOwV3OuhT zc?b$vF4#^%(tJSVz4w34v9}1;QAG4ng&TxeRE66;Ur?U9 zgp|F&xnL{PwTUpoa!y8)5I3hv-o zBhvJ%e$cqXu16%wVW#PvF>O8t>ZqVw@C7DV803?E2j0Ge!7-nZQWgbvf#H=vw8*Z@W*d|y(PvF$cjuGY_1r8SJ zy4xt3faO)<38*jdTo`527UTj;a}f`zCZa_?1HVBi{;V9ZY!Z5&=6VcL&x_cEjn+du zw^4dl=`=lI4+fSK`7)qarl$@SS+r2HS{CgB7Y7_=@f434B9rFshd;qK2e)4HZDPo` zE02mNjf;7H`oWgq@{$pmg2xIuC5*g@W<|r@-Ir2@J8^>KTIa zFsD$-1@kjPP#(XPY_t3n4BV{&wT<&e*z|D*Z33uYfwED(1HWiR-~5CN{y7V~KiVoV ze~d=QA`%BvsmSPmy@YXH5|oR|r{0DXg6-zmdni|}NKK(4z4-%Cq#H4bv+s#0(rGXr zMS2~lL}Y8IpaeK2!l8VGpi-hLvR}})&*ij#Q^1Qm;Tcif zmW4v1B`PU8A3uOX0y_dy$Ju^b9v_7aaj zDIb<%i@ksXpV8@ChTXBG1p>K{Bb`{6UxuXyOEw1!tSIp~L^rCx;40KaQB~fvpRUB~ zgw_9bi3bv3m@M&aNFi9_G1v|amU#bAiQm;FN}P;~D)Fpyp$i>6r$m(a1VP!!DG?=Z z5|leRC8ESXn@rj)*Yeq#dLC!cO8jL(YkFo6PI;)D0e5??N)`Ug#+dh&B2wL(aJ zX49nJ*(*!Dh)Y=#A%%5XF)OqS-0`0W%X*5y91UVDV?}Cj0TZfUlaLyUG7ri&sy!f~ zUFL{tavVvYy76uo=KR-1xewmaigFK92o~k}Z-*77B~+BJ{6iGwITwN%ZAm(Ddk47# z1OH8=0sh^I*Ud7EymJ9p`VL7zU|g zbS;{IFrfb1N0f+Nrt>((G72Vv;V+zlL`iCZkU9t?O5!%usL&qf7wAlYTsD)--7!pjv#H3bLYFzrnTl!5lk{@?KZAk&F7Q|YkeZs)yN^NJtrti)_R20U}0@+ zgta+B?w2#TTv^cCTb|_ZKE1UcQtv7o@1Bh(`1Z5$Tn7*PrZ>8`PCNjH1g#JvYBu9EuqY4 zPYNT#^8c0?c?MI?A2V0@EX9yDJ!;c!R9#$)x{aC8AC{Xi&vF|Yw4qd>q(Hv(aXXK}xp&gUcq66yvH{%4ab5BlQ(c(f!q1E|BmeZa$-;r%aWx0vw zuRhDo6zs9e%ZURlKDAYl)<==ls|XQL`T7j^?$(ESa|)>TDLi!)>dhJ|d8&rGT0;#D zqN+4h^E#~*f_?a(tUQ$pPDw_#o&bX9?MXq&rrFk>IHG9tl`VoYg;Rb(6d<_Fje^p0 zJ;~^Zf}2xn1f`Nws2&8h6$#4MEkW;U>C6JVy%iyA@xs)m>c|0A4go3v9 zjO00;%I9AO7G~Saf-;LHetRM)j|ocpiIlqp<#Qj&MC_@x3d#$3)Dbm4nA0jj*~cjn z9?ch&JttD85#^wxHwFfyHv9q{PM_l#qEFg*6j&U*4J5hFC6LZ9Ui1*JCn2GAA)y;0 zg$4zM#zqUR2nj8U6ncBImQwG7Q7N4l5*ijM^gvMP$!MYeA))s#jL1`SQ0RuBP%HyW zK>a5wpLE2&NTIBt(4wG_^xmP6&|Q&2$w8rEK_T8-VZSvb)Ep`Fmr0r<-bZJQxgT6E zg{}<=Wkm{Y4+=dbgaYan*P*IlmcpwNezit}vaA(6el-_7=(|d?DM=a(XA8t|o)Dc# zRr@0 zg1-|WB}2@+0UoebQ}kXQtx*vD8IRTy_GTWfqv(1bt*7W(9=)2PwLIEPC3`udr|?F} zueqE3>U{9P8!NI9aBoZ(hyiG*;(V@Z>|UjXQaid*db^<=$xJQSOaq9_8Ms;Zg35 zl|0&v_o8-PDc+0fe)tv45BcP#C#TJ?-T^!&c(DR=9`bN4Fqpb}hauj8xR^vHKdy)h zYkGiOcTl|;B)YgD?>rszAn4~O%$?_?deyF}gRt$`>0I{=olV!y$kPFN9Eyk2e`Nzd zZ&Mt6OMtXuL)0}Fa;jB=B^+$)MT!#B+ldt>UqPA#zZ76P2M^i`z^HLkJ43mbnCy9-yWJg)`~luN^=jO$rY|e3%p- zM#2ZxIDmA4a-5#QkOXo4i{j8XLU6s#^A@Q(pmqZre7(Vjw|rp2;#3+Hq{bbj#gA7A z0(iN`=Ne-TZ`q{&9z80XFV(P~sU+lI{5AELLT0R#$%v47XCTQ8rE==gxAiD( z+zdMC2%GnI9YrTX9<>E?njXxlUwsMXulZ~r#UZf|67cM=dDTGFueK87uBFdi+p}PiZ_mAvbi5aZ`hzwTgSR8Iu??esjsizjV%?=s-j>l3?5cTzw;tDf z6E?i!jomNax9t8omSw`y)AFPKW)6C~89HywLH;Uy>v5fTK7S3G7Jy_KBS^{I&p!SW{LskPT2cTT@|Oq$5-Yee<^HOI%t zigpmY&cRPxMVokSzQ9>Fjjt*Bp2xfGH_`i=Xa;GRRyZ=Ab+&e-qOee{aJl@uDxoZ{3Sm8avYLGe2rN?DYMms|AJX^c_U`o7VpW3{d%}>k$No zJ?h;1j^3$&t66rLT|Y@cX)aB)^B4G?fkYIQdLQR59%IF*oSNEa`EVPgNgF1|^ulv? zpy2D)x4-fl0|gzeZ~v~Tf2&#t5m@m|0p6dd_k~-JVVuH{?(`RrnPJ~!gCJi^$Tnqn zIQ7FFl!9-eF~|28r?1G|XIYOV(9|F8vy7(10!ey!6hpQbuVqsCWqjT}ii!&D4x;|0 zc*0BCF@yY)otoN}2QK&-I4^Kr7XoaHY_E&84;Bc=JNcW({%Mb_L$aTH`#A$1BP`cm z{J&)XLG^Z!s6BT*7zcyya0U!5xPOll#d`gb-mVYeIDFtBiyDD{xQl`b&m2_CAVwF} z8%zb%ivc_FzWId1&emhG*WQlb1k=qMpxHkFuVrs&qga*!-rc~FMMkuC(}q9jAlAA+ z(dD1^GCbi5c#b(|e${YwcOkF9to69jw0z0i+q0r6$y}TO86tp+r-k4Oqeo2nY}rzfAp)#EmT8HH!Y&F_RlHWLNC1r+XpJf zNAy^)92Orp@Ft<9pe{R&xxVhcKjQ^|B$synv_oLJ`ju{aJ)ZY_+5QB4D4{7S8)ZP> zL|8ur#_=3?!yoW|5mmB44If0p?8)|*8PLU|Z_Uyh#w`paPKA%V#__Be;47E!144FP zohb71hwfQ$PT2P({IMvjq?{+g%jYDnxWgy7YY2bW-#PP;>E@kaqxT_Li|NPrAdrRj z2wuV$i*(X=iAb+|9?xA1*ib7Tja@G)1=2qug=AC;a9x*=YT0sij@0VrTHy#J!>huh zsO#Oma0tpDpOx6K1W_u!?imybBt1F}*2%ZdyY?QZ#)xBNxv2Jmq~}2EdVp|&q$L#J zf;i?vNAc{YI%x3$GIk)4hK5ORB z@grDWs$yKY5N9;kT#nAWg{+Sn$1+}d+z6?z7pO07rO%RFKox_UsX`IFe~r$NOn0Em zg;Cavoqb0_3K1iC)WLKpU*X*l~aT1>Eiuc2iJkFQ}p+9 zka~yr#W}+fG~EJgs8V%Z5VU49K(c0i15|KgUuVzVq4YKT6E%qqHZbzjJ0fGBpjYd@ z3^*|#06)r@b-h8I9rBB}oJo5MX(s|cqA*7=3;VbdAk%_cx%geAm4rk}+-M)+sE&uF z-UM9N4!EWJed?>*+T?d+(ojimL0{8nNw|x=JiHu$bHnT2DfmdtGLD*~AZYU^^!>@{ zJJ9!MC%W$>j2v-Je-pBz)6?slJhBh09o-s~73qV3|Tt!Sqm(OPG zv*aTgOigzH=L8dF>M4rT!iZ131<^iB8F+er#H&Ql2GnPKUjyqjAi8ByzuI0%opr{OaGpLABx!z#UXy1VnuV z-_DiJ!*HZ;`WMczb58HOU1LzZJ#SWERcfmc-f%rc{OTq^sAf&HLf?Wo89y$pe?>m< z6aaV8Bx@vD&m9TpyoY?$lEgtZ3jtjRRlAJ!S)TtHDpi%Js@bSyS)hk34Cc4XkDjaB z8{~u1!O+oXd6MKu0xu_mGI;%+$oX+bN5#6C_&SftS+)pY=XrVEO!_*H*Qm|UiM}>9 zL5DZKfwG~0v4ic9=`m+a1&VG?w&^ij3V%*X^eqTvvs72Wbto;=ezX0yL>C@FX6|b+ z>YbRtKi7~zlRVeVLrw4C;Ud^xe1GUlkAXK@j~Uk_!eu;cgZu3`LZLT^;8y9QP^y;{+FO$_tCXnM?%f)6qUR;a0w^CxY$@;FT}52ABJ zd2IoAj2u~K9%y)@=cbVTsQ!at3Atew++=o@&7F-&t6hA>DCDOK`?_W_;6n#@4aQ>c zyO_z?Qk)ZBwg(nr&`7y8NBXDp1pn-F&D;zB;E8eO%MH82{R2hn#lc&@LQuJ^5gw%49?|^~y6(&;-6u6Xq>t;okbH%zV$^2fF=iHbI%pkn) zA(n#KpDxuNDB$)x1I3+bR0+cB_vg0pRxhSQ&w3wmQZ+!)I%n={>O#@-c?sQHN z-j|OVd0wD+A9roGe*q?whtND4;Sd_3!9o7EeN#MC)_>`4DrDY#{I#8n^*&A=oZ~R9-vXbx{);2 zVuYc9pN)d=kATU3l)-o~);B>ACJudq#`nI?^*E0bJ)Z2rvMC>VWjoXCeF;uzn@An) z+}kMm;aL;}EH?s2`THX&9)fWk1LZM`P;v34m|AJ$QXr{}i=QLp>VtAV^{|&zsq~Gu zp5I3Mqi^i}P!}vvWaDwLqsoc)?!@?cqxuU%ah}#M6>kFHvls1*57c30%IBND=ex!r zo0$IvQgWPo-!@<+1pO_|@A}3*w~3Mqg|A5XKZS2gzW>+ZaU6Fd`#+H3UuF2544;tU zFJ<^M8U9FySIY1*8D1pA1u~o^!?R^LM27J^B>&o+t#dwUfP=j;@T%=%R9efs1E`E$ zV`lS5gT7a2eIX51W`J|ghfhE77Tu^hPeZEbdCVAQOI~#sFvP8HLj*FjoqLa1opIv-o8$R9EqP1GIC3Yz<0Jp((xF=ua3O} zeHh#{rS_=ZKt5~nK1NQrT*yr z<9UZ)1yVjeDt*kT_;utZk-ja8F0;ojI)#5UdfW>_z935ekkrp4J=*_T`tSXR^p{Kf zqw}Yw@B0t*nWwN%lOO!z$?ezZIj5j&`7=xUsq**1De|Y~|HD(zwe;Kf3j3n-uhrk4 zQTnu{hZ+n}>jEiy!bS21+#3IXD}ORM(nl9Ht&`F5Sj;b?j}lSL;Ke0j4Lrg2e%#to zTC->U81>-xAir5i1ofG@cj!q#TxQO%L5%h1Fj*olvo>H!cnnj8MmesHVKE%G1!0w2 z)Dnba!GUpD!lR`gEy&8xEy!^>vNc%C$Zk0X- zGrjh_EJya-$>l4#2&QHHGF~s*VNk!r<;W_wF3OrbI?FkKQcm{hi5zg`76`zRJ9#t# zdG=g~q=Av0C-u#U(l-gVhVe}*US6Pq@}%*kto&>ZRZ!?yGKug(eH)|n;b^i*wa{TN z%FnaTE6mTej$X9b?#h{$lVvZ?$saV-m2jiNV4 z(Wgbx?}(xc>qC9ho+!Fj&ouiFN71u$in8+a@~94HEiNo{L-`2tR|(L`Miv2nduo*r%g{!KPP=gdb)N} z-^x}txa;aYwG>{_Z`S}rnI^mG5&{QJgBRU$d0GnnzlF(U8t~PaqZ=`b!%kqxZUoWQg0JyV zb!;R3b(yh^X=7JSw2obc%8}OK@vbhdo&x|6sKWljD6Oh)YVgbwPqy~*a#+-89b0d$EN!&b)>*4+N>_O%HG0atRduz@ zYF$#*;B6|cUPR4>3&Zvbl)>0?>&mrWPouTeYb_0G(aJF>SI|)Bg)U8UO_jIOT82N8 zV@+=!+svR}%X@vJr>VRS&coj?DW$aO5AAsC&=##I!$v}kEuXACkDpF%WtA7@c%>(t zpR5J?#6(~{@?O{ErPAk>WTMqu+JJ5Vo&#y3b#0ZWx|{$Mh!tLMg5rA3khbTr+!A%a zE8&9Y`}!z80-@%Y=1bmH&b7|FH+KvZ>JO=5EY&5&m@m)^ia* zg7DwChapaX<8L_b*@#;aj>WwK@pQuBEDSum2E{l9pMz*V~8K& zV%%wnqu#UEaZg122*P)8&p;gWPu7(Ozfc@uUOt|A5idaaPyyr+??6~k%vd$y5#EG* zJ>qQ$H{<>>;+WU6OO^nKcnQMiaNmJ=C&EjY!asyZ*o}KP;=KqzUWOxah_mHb)5qO` zxEbMW+|M9xL)eD<5aJY$!{Yr5h^Hgmjr$G6DSRLI5yX2DUVbtDE-K>n2!DaQi+B*u zT*25;#BB&a$4&3Z+b%&~aDR$8_K6twhM3_Y5x$PN8FB0nu^!whh+}VveT6#}ads(V zvv3bX9D79ULEK{y??8AEcRJ#o2oK|)ia7R*SP$+Qh-1%)#ki4A#Iaw*&c$s*yuO67 zzvKQI_VgnB47U^bAFhxGXzfWc$1(HP#Po!c`1-g4V@FJ<;fSu6u{eXm40GXo_>=hP zjK&wZscupjO*f=4HV8M-Ddf6IKivriM}j`)dR@9wpcwV4G1H(|&<;)+AEa&=q&F#p zbR+>jgH9!hQ}Tz?8^UxKhQ-72Cre-ESBcTHn7K%|MB1+9AsRn0jt$%x!_3VpOQ-yu+e5UoSn~5!>P7y+vy%KE%7ljmYqn7sEfY=)k83(8tp=nOoiB}7<2x0d_%wSF|Ka-I=>h(? zw_*DAM?`&!L!9n3z%JbNxM}>Qu~Qp+X-uUtmd0orcWIoz8GLu(-iG@D+>hYikNYLu zui^e1Zc2gvGPi-L*yoJJy0^AXF&Wzlw5w2trDh(%>MkvW@|}i;hMLAz!99o5ZAwIL zU(lL3CHlj43J+AGpVzLb$1%o!j4|{h4TE_JaLu2fT*GkeE6_g$9=zH$6}Th7o$8wL znV>jjxI%`NGQ3)bZ8F?0!`(7`L54?UcvObRWSIE5&~KID3>i9QxI%_r8E%x}W*KUB z?~rhZ3=hljs0_cBq4^6TF7 zw90U@3~e$jmf=bnR?DzihS$sRCK=u#!*&_|Qic!9@F^J{kl{-*JS@YvWq4GEpUaSa zDeR4xVTue#$WY7Q*%F>5!$KKW%J51V{z!&*%kWn+d|HOD%23n$Lp>9o_@SN&KYU;H zEQOWTt#o5w&s|mPMN*SFTvq8RyWB0e;>tYz54Wg7|SDsA*SXp@|= zy9v(au5@B=u-aqC`Ul}iKyLgpcDp_Yp2r?Ic1)v_c|xDlD7Du$%=46bv2k1=cCgu} zdKVQzv;cU7%yC~a7~l(9S2B9C`*Z6&v$+|gX-si)oDdDxpmsot*^ReL=3 z>~XbN+vwD?!(LR2s~chN654ZR|5oKrH0ZQJigWQAhVM<&vVhy2Z-yzlU?u3Cu>W71Tp`mGzc zwr$<9b@$doTRXRQZSCD^+-BaEwk>^|b6df-%5C-AHg0R%wqx7wZHKmXZacCqeYiUT6getj%{H)jpnT_TyN?&E7zsz>Dt!2&A8pX zJ#BmXb|>^zLLX_{v3>XUL)$yIcWv+8o_eqKUgy09_cq_#a_^3Nci&rbU(0r1;vqhmjf+xL%CC=~kcxJBcS zPFC2Lb*o0lo*CDNt-_ODg8$>&H2(S$!GFa`xv@SAypDbIQ;i?{a9qFbwEX|NQ{%^; z9p_ItJ^#-%e(im))AN7&bB!N+erKSc-KFtkUy$=3Jgq%1+^g|pkC5{ZJuUyh2Q+@| zeY1h5<-hY+8o%~F+Q?Jz|8GNYKu?Z0lz8KtF+XpyHEZTfc>vNnsRqZQC*jy_&74xN z7cp;Bt!K_EPpzk+s*DH?WtDSkaRRxv)H-REby9w&byB0Ze9o%cCMcOyQCl}@B^|NE z5`5xd%`qn#UyMpjS!HPh8@(P(@pLlT?PZ3uCbk1K8e^;LaOju+G}Y2$8&3Yxnv2n> zhA4!HZ^CcAw}FHga^d(jq?h28sUJhx=r>8DF1E1}kCxU*Z3dMqH3+2?r@wK*R3kbr zqaikmSr`?GRE$BGXGbl8sM+mUmgOj*_l?|zjx4+u#O~-xNQp=HrUak$v*?ldXhKpt zbmO6!2VG}KUX|sRyNZ(fvh^4e$=7(ImeARWQrZjidm;&dhFOZXjcj{ zoOLxGc3y1KUEJ1!Ob*Wwuu&I8`a~tjcO+7ske)1?mg}vm2RBfU^j6G%~vYXA?ND zkRxWz8&C04+*kc{9rsz(%ETWi!hcK$}w7SkDRs za0e*$Y>@!kL8)Se0@wisRjfz=yOqKjtXRbND1|fGViE693NzB#5&;|nkinJ;pc6nQ zTPA?R0H(0z0yqL-D!WJkT>z%Biv`fD6js%<6#_Um>x(#4J*Ffr!NOBrL!oC?6_y?v zSW|4m*{EDhpCSlUybV}sTrK3<4Jp~4l})QO^csQQVMw7>y16*8UshRMM+r3x%IP@$C8dIX@PQX?$Il-qWb|;N=BxQzJ_loXmR? zB}R5(yo)gERM8jl{%f%-KX1Ofptz95WK3=kCN_O4i`mEFn1UtwIoV9tU+G7!G=}&Y z&KabbU<-!?CRR8035dsVg#u;N2@PSr5#Dsl$#XE>+qwzyG1$c=`_d3GP!D6E&crYf zsqh$!DL9Gbdpc`21k?|~JKLR`kvYSTLu9(cYT6p06<6IF_7}C^8=&GFqE)LZ*}Ki{h|l5vG#bk5npReOn9*$D z!+`|VH^Fj2JeC&mMoLvVR^4TP7+m&@{qYbb7RJZmXVO^w7@~j34bQ_Mrv4K@!Ll}n z($pE;^QinYrejz!xZNu&5Ie`cEH~F(WMATN+wu146s*YUM#c7j2xBbo-_QV-)-{x~ z(W2L3N)fLj9Cwz$>6GHqRU9!UHl8wXPzv#0RKsddc?KIRP^!Y0vGeQsCiyra7$cDt z6|~MdUi4!aEoi~J2n*=cI$4_FO$_SHWD^7`S;@w3M81$dTS%KZE+~AC;7kb$Phk@U zYM|_=CkeS!0lITb8!u;*1#Va}cbC>bG_rGJ6E>irtjWu2YC_ob*aWH#?I~KOr?QOL zc&ZTX3Y!@1-OO0E2*r0{yJFUr#14EPT~V^rQ(BJxr!>|`AWL?6R+X0FZN^w*Fu8PA z7Hg!6*G`FNuyO(ICMc761k^#$6jmXiPJ*VgRRTIf&@@&lpxz`v(^-{(&=mqak6k7} zGY4m|%LQoV;7nF6z;q6xbFLAvO~4tfR=@=U&SZ50E)nn)RxjXs0Z(OD2)ISS(^!Lm z@hMu~!l;wxElgoHrZejfB>wbuVzOD5Me~2V}4FiaUp+iT${(4yZfb()Yvb{kgqp=&o%$2(|=c%zT$`y2VB(Cp4D zb{FT&Wi!6+ch-f8$aip@b781u|L!-LOyPY=+2wOfaf0TXetbe`r0%8cau;pBu|9z_ zD@9E!#oKPhRV(ok1J0Q`mW;M4_6EEONSjlO(c=`)F5~d8NV|V1)=eitBIW1GJeVKc%JuiD{PIj@A=}ya=U6fVeF1F8ShSRbw z!RG_ArLnQ7AUV1A`3`q>ev#Yhu;Xo2X8U+p$}Pz#2im?}RaM458J0-1R6>-ktgdID z3Rp*QJ^M^R27(%@%h=}vj^WhOhRX5=_Ju$hfui>u`3~4Ifr}?xX|uq6DR7CvVXO1F zfRYKSXI}}(45+NJsfK+m;QoLyfBLt8QaF`;BcOqRsw+y#s6K&71*UFwEjE9L^DGSk zjIBvl5S> z8bj(hv5{2>LZVWH$KCvje7@&fS}n(|RU$33l7;8jQoQWifJRq3J;Z zSap{}&qD$jqss^I8)0IaZXbY$1#q_RYXFZ3V4`j}fJX%|S$7VA#{`hBI~(cj5kRKy z15h3ps;BA(fbxU@X6WpoJSl+LIvOmV5`YbsG4@-bAX|4A*q#=^Jl$?keka(Rx;y|K z0&wXz0@y2n0^NQ9`vg#|dkYHo3t*XUEr4ePutH}8+wX@DqoOHc7ODn@{<4Xgf(<9C zFfnn}9T;vM2S)WgNSva~@p#gEczDWd$T3*1yThA_^+OZ`m& zh*Ez`0HW0YCIC_DM+A_fD?x_-KAb;Wr1BDeTTny^zas!q!tV-mLi6+wql(It;axduGwGH{B54!tnb2)TNNb1NR%igRC~=Kc>?(3+*(BZ8E-~IKRN{ax8JU!q)82!D8~sjQs|Y zo_N=3nfi|Bv1^tJq~*=n=9h^g_!)YtPsJG zE$6o^TjL0!9E2iO8qYjJWX)sqdFU#_!j6-o`1DEgaF85-Q{&_ zs;bM&O7UEkSjv~LV(}TEHT>9C;!2LlHYBc2xCm7=HAq+!M+-BkylyOg;nOJfRWt)k zY*sG>o8x^@L}N%?XMTk0w%grQOQ+4m3A=KR3Bou{h?*{rqiGB}HjlI<;*ZlnegY}M znj89|Dx74LX;O$&gNYl?*?Uql*5)o}i8l;R#0VVkE?6>e2}{aIJ&cDmKsf|u4x$Ao zRgaB}`8dfYPvx<+xC6a?< zgJxj?=*M zwY6?7X8vv>|AoamGZ&=SVB;Bk@)s)u46XiH^$fih*MvaC~^0>?Rn$}cF zGDuR;wz}$alwQ3zxbCM+8#@`DaI8BwCvW~zbOS}j7(LLV&0Rd-oog?4qAO&|`CMO6 z3suN!Z(})*R=TlwQs!aG=O^cY!z9BOCuL}Cs?!*baR#U6MYJnA)LYf)rmxi~bCejW z3UPWSvt+_EB92~)rEQ8>qsv40&oY_JCMe9!V4~GESb|?3ZQD;fF3``zzK9h|C+giN9Zyctt;g z+#1?YM1v~*Fss{L?+%?NO^) z#H$8TVy_XC6%hj|6hDMF5P_-GC7FU+-5!=So%`z>Vh;W=mD&vaT31_9waQ!BfK@}W zYR~#F=NkbNhJ&AHH3Qc2FHW)Kp$a#_K{Wbd>KLdQrIjOAUc-;WCjY`%N1XJ-R4;z{ zN_#8exU`jy)bh5GSj`RR$+hJ_S;onT_3&N+_fV$x!P{^r!xXv~qhFxN&k7 zYsOwSV7xNI#5qs17#^7X7CNic5fG;coPu54P`?*yJu^(S*q1x33IQs@dwk<)|>3@|8kz%26mCUys!# zIiLQw<#~()+^~Q0#9sx!|1_oNDzhjy26xU^tvu9bi4T>@2tXN ztXSsQf9d;|C~J4qHN9|gYRL{DCy=WtCdX&)T^-J6|_`|MV{L@OwYfg30;eQ zE*$N@J)U-n>1lNy?!kO8=EMI_`%{b5-?Hnv;TQnf9emhq0ncT))7Fhe{gx)^vAG#?TUNY7UpOwrV~FO_-IO+R=w;w|4Fa#?&b$%;GjY4R7f$l(0d-yk^XR=Z0Pg{9DzBVZYT z#}IjdfHDC8K;#JS#kBy&LthHC4Xgv8Lpjm%MZ#g39E}klkD}ZxqbKsj9*L(RV%irH zpuqrbfIqTN+Zu_CzgjU`#~7{Srl3-!-36DX4Uq28BGjhndON8Sc1(E&JVRf_&kz`s zikl^9&ZqXg4m{N0;=A;0$qrdOcMGJF9;Yl)GGVNe&JrJxL>gNXpOpZOKZ(O+iBPwa zFhK(I0Q?nthM^@VTqu$6qfh)&D92zbb+AOONU6(Act`R+1z`AD+&U$LC3Z>l{Xi!k zlfWhdjM7EajVEMD;B^?b0@6r+n6ii^+#vBZqTMC5hNeTvW@r|K?8fP}DNmekjg^`T zOGuD@z7_d;Sei8hhiN35#_5E)5+KtLOP)-YP$SVBz|$MDDX~G~uO!(`63|1|g2JU5 z5ZA{N?v?ljz@H5~_vb4TNygX(vy#se@x>4usvA2S3fXiT(!=_fM&5JFeiq93rELB= z#Cb>16iW=_br=+JCk~XH)bp|FORH*gBh?iXH$F|m6AY>QKvTDbtD6l~Gf3U%l9Q`j zs*TTb6bzn_(ROK+EJdpwlpng3%~zokkMK0pP)eUzWLcTCORN-*pdp1HpvfM{F^fi2 zVC9231hi~KHLWJk8%U4w%JLEQ+D;~$Z+;$%b+=gAGIz0KE?b_by{1&`S;=%iP8)Ft zlGLk|@OkbW+I*pI*h6myVgG2AN86G4AclJ6cfmHG7_$fTs`?LNrf^ui5CqW1J8hMo zaw2qP)z#43BGD@U##K^JJ0Ke!I(=4=@~r<`%q*_g(Tw$Im_V3ZQaykadFaE6gt~;M zc99$7d1?8o#w*s)j-0+wue2k_`T=rVnGke#Vh9Zc8kI5pnJT6-#dw>FdigybMC+si zf$7l)mlF*r6?qU%cgjO&y68h^1{^pmud1lPAv1N^S-+s7J?Z%}oj6~HfS*#J^B%gW zQ)PfpJmsc~K2@gEj-0^Q@S`NU@S`NU;1LB~)UgO!|4t0)2=Rp-WzYqWGQ^y26He^e zeN0)#p4}?=R5=~Hwr6)*rl>u;)AEM)>`u!Txo4LYy)H-g>u*cGhs;0Cx?GI5E=T+Z ztjkS6Jyo!%BG=_8D%RyFM(c7s#JU`Xv@XX(tjkfDg>^X!#kw5D#JU{E1=r;WlIwDu zg|Ev|EVwR5KyY1-fZ)0u0kkg1IcQx@M6fO=B3PH>ELfKl2&~I-1g*;n46VyiOsvaM zEVwR50AH7*NZ7g@f!ewp#Us|`2qD+yL{zNHQCwS>qqw#bHx*Wx{ zbvY52>vADNXb~=3;|QS~go;>~BLuC>@ldSGQS`)hIliJ7wk{`D?`XFT4;ch#>vEh? zuFFw8Y+a7P(7Ie06kL}hT==@2fkqxTx*et@m@Cknlc_2?aMPNdo050Ca9F|ZW{Ic;*2o~@O)^P_%=gLNcukvGO?!{ zHN+r8rYjg^7Q%0*?d<=*G04P64>H{KwkrwK=3T+y*a(qd>;sT#+S z5*(2|=|0VdbKEDT(vuInVKA-5gha7APEVQil+lQ%la1CRWMxqE>awzGd?Z36`#4#> z2l^8R#pyqloxb`s5Q#waYKU?ml19hrwJ)5j*8`Dkj?<^hagp7QbZCTVr6<7eafEnJ z&)5sNuZ01+@Lf2?s@@74F!D*0^x~<4(a90A>_J$j`yMT;!9&vBxTD{~+yhG$`S7Hi z^5F^Jr;B`JM>*-Ek|HvNAo!@HL_I12KJigWiGEa4v_~bF7XGNDgg+`N!O=;Hd{hca zhd9C>l9b>>l0LY8uOuliqI{ygqikkBkyWSXd#*YOC>e_ayIll9`&5Pg7CgVjgx5^rtj@9Z}TQm3nnLO*}9GGt7q zd>Mo+UictcgA>PDaqjgY35MS9!0R2{4WX(US(%Ohf_O^Mrm#wX(kgBF&r`Bk1AU=P z#iZ;gI{CQM322kD(=tUp`Ja|I^yGh9w#X-cgFGG@ab5_=g_6+ICQ=@Z{Sg~D9zW_9 zcuUQtABwR-@)#6}1`kwXXC+N79+mO|1Y-Dpiab%7Ur|`PhMz}VJgVQ*Bp>6bEkA*{ zL=cTJK}t?7wyN1ufj5WnS=e`E%J9jktaj8{l($49I()r2BN3C4+KqIK6M)jmg8^i-HTGPf@syfg6^js%Uq4>f+cplE;lNQYw!)i{kX;T&G2^fNYz2Q-1dlASH_ z1wlL=O~77jIh!9xPwA}lLo71A&H~f?ulQDO~%5El?fF z8a!CAQ*vs5$|agJbi!blg7G%ApH!0Gjz~N1`19~{HdV?;5qXF(^ze2*={Na=Eg+;K!Q!0G%_HXlH0!^C#(H~u_mG1WJ+yrjn{kr9+ciA?w^kuI_sOWWda!Rps=$94h0S8>@l z1bhr&GJtWo&0hmB$07BRq^C{l2}Y)93KuH-!Nj!|LM{(C*II^1DFLLl4w1`o_am*> zBXTVPqyVsN6NVEgp@oTJ_agZ_Z~O4y-xFRQ8F`;uaEKRrhZn$0H#|3qF#l1mURQPd0-QE3&WK^(wm%()RB(4X^Ob~Vt z+BuY}$m4>#EgZHo13iSsl3WaZm#?XUrRzsg@22o2Vg1;I4|xjiGVCzv$MN)xihCu! z5vCu{iDrCy4__8w`ZP{W1xP!W`UxByrns@s*g%@~XLF1d;!PF!ECbV@!x3W?oFl2P z;F-`*JT1;M{kem8z_tYKt9kk!#Y9>5z(Vyh`q>6@A~TT5v4q8tTuSHKf*%>w zdj=8y7GnOC@{$}pd8Nb2E7BHSWt7b}R9aKLIHrkp@eu?+iTe@UX6}0>$xL2*6Nr~_ z{~z|g1iq^3+WVY)hC3xU2}wwp6J`}d2&0M+5R^eNAZoB`m;$6S#3UdNm8hsVw8hq; zRw}9UR7a#wzuY=$JzxLkeoO^E)=)m{B_r2cy&dJ_u zuf6u#Yp*?@y>`h7+Az)rr1KX%j=jjn?#Lz$o+Tjc&_B9OHLni7o@fWwk{INQ4SM(X zimf&rqutvp#Zl|t-ft^XaA)FW?Zm?d@AEhxcQD)G@1h3%70*L>&`NZ3@*I=Do4^bP zU>!OqdeMMTviSXj%;H%%c6tk*-zye#KN(GUFjfQhI&->=@8ByLviBFTci2JfG6tZX zTZkvuQqmz{*@r~eZ(Px|X<5@+9A1_`901o!Ix1L;w-VfW(_FK(7%{00?c zd&%oSO5IM(<2CFWf%y$O<_&$~sD!DnDHPd-bZ;yXo{n!gM)`MC97ddpc$LyM7DW(U z>WN2}dQ?_qdhLy?VIlY@%{^^)(_+i}^r%IMT@=i=nM#pZPJnfVBjAY#JyJZou@7<< z!HCSM(o1>!XgxM$HXdzD7o;3FuY}_7u;v#%N zjl&DLuBGov467Y}z-|s2ez|X9JA`aGGkAzqJ}r^&+aFZ$L{-SMjPGL+A+w815{l)!MHp z-)O6-#|%8#H_lQhYUl-{`c7mqMYKxl@mJvMCsjLGFvva`T#WIu6FC^nTo7Om2Gbv- zUk(P-=hCMS2Gj3LXmBu?paei@Qq>_~91JEbMOfruFkuCNse{4vW$2TG!SofwXATC_ z-v@qmFqpnF3FX0H`uf5b9tx03}@jwQfgTV|Rt^xXBFhL_#6ge1N zg*c<(4-W=kgp!?#TY`YdK#{Sd{I$lPw2Jah|KeOQ%cR!zw+xP72+Zn+HRra|dbCl= z&cRf#YJDPBH0dG%1toYA&e_m*lRn=)`eTEy!T8i!!1Ep#4lcM4^eyLvmi86a#eOx?X#wCMAhYK8%57&maDlk-Aov??w8og?CsR}8JgfyE9({5d+LMy}2zar!__~I$=+`xMW>%G~PWc#ldNQp_j!4UA+@4IUk|UFK)KgDQ ztCFK6u-H@6s^n-1t%R4;s^lT!9f+uUT9rIhAXSL2rd7$q1TfqSr&Y-@LUXj`%d{#v zR;-<1J#Nv-3wScIso|vAC(k+&c|HEbW6bA1;|e+2>lJDCf?4=3sLmjUhs?(JV^caH zF?9zsy=>)5F3{RXC)qyY)QbAR)Sf1O+;nA5Zm9dh(cGhfYJzd}bxoVbS@v|N15^eS z9QU6j)_(3fn19NlG*?mbI1|PBih1IN*_K`i*I{ALc}fVMa1y@5_r$^ml3So@iyv4g zYTD)=2D_nG>M)sZFLe5Y;`me0(~P$7F8(FScK$M4Hz=@Oxm(zAwoU zO~S*nB}O7m9N}B`7g8LG6nnTLUL8lY?E8~1L5`Ik&a17l>@W6XA5vvaU~={@ryZ%4 z;cOB15n0GNZ2I3BY@LGfPxB)D*lAPNB zQu7C02k-{aP85)7GMOM|;sd+_e05hqYWzTke}>q!1(>)L9i2q61~wtNhS{O&*mq`_ zyArdwj9|^`u^ZYYpHuU1gkhlA}HPPQa2CO5TAjvpRa6V(*}g~RO8 zLjybf@7T=zIHFJDtDdjjM3?$n%8=9(@RlA0*HE(%@f(S@lE^`{VdOb`@gdn_v`-q8ycwb(R}`VZTAwG?Bu1qkSKI$vw>D%^-yBO=Vh zGx#!ioNMmdQg}Taw*hh`p2BxPf!)|p!_U2_*r1#H{of6!4Zz^1+U|+)d>#&dVBvlQo_pcA8&7#OzRUQoZA;vT5&9s}8Fx1v z{1!vv(m326Jjt7My0-zN3~9!2FkuVUmG0AU>XCxQ?1iz9!QE(2KoY~>K@OI{aUmiV z{sEp>K#pG{7A8Qd0BxL$CwiM{ zN@OGwHxhYY!@HA69axoOY*?go*AB?bcEO(w_xuv_T&Bf@X&UVkdYJGh;rKWnDMl0D zWqebNpGD|rh|ajT!Ep;cjC(&E_u)x4>2%5TD-ot!HM~2fryz;p&!glngyUy@P;xK9 z^CZYUg6D{R@LYkA!8Gnb-4+H%XuYtnMNq5l_F>ToV?RQqAL0?lUWMZqc(UR+jDt*t zaefPwUz<4Z!SODh_*k!7oGjlw6#(NPHw^e=b3sVGOXtR=**(TT(#*d+n9uQ5` zNSo@KXsc_IJ&Y;SOl3F`V)E2WZIf`vl!3JxMJ#rMnMi;ug!$ zA_ToWtRbicEbHsIFO(c$c8`$-?H*g-P$2Yh8~~*_yh?GvHmXV8o703&bwk^^&}PcE zn3;jQLbBQ3wgT=$xJp*c3vXO|qV%#;F_gjPE>;XS;2=v&^GXgwxYUA9=vTJQs(VO_ z^_KKThhR*^A(8cOYB+Q>Y(Sr7@P!4jdSyRsOy*Yg=DnL6pH* z?FWUIBhlA@`zoH~N{vsIX##ExOZaHU`mWdTLjg};pgloJEG{R&jOZox?WIajomz$9Ka_z!EIo%JBvNkcKNgfTX}jkor`ow zV!Q4r(5}hP-f;$^IjgLJW5`bmn@2vLB3zIzTJT(DyU}G27_QF9!I2CP)F%ag1?TiWjOykeJil$z&A@EbymSVLe7A137(R+ z_O5bU$ zr#E81pWgb=em}iY`~6HQu-{MK0{i{+1or#s3GDaN6WH&kC$Qg7Pph%tPfuXKpPo)* zzn`AKem_0ijs1Rl0{i{+bQ$~o^aS?%>Di_2_tS0c_tU)_=J&;ZKRto{etPyIMC|v| z6WH&kXP>d(PfuXKpPsjk{eF5r7`O+m8SM9a`S$z&gb>Rq$g|(icwKHmuKj+3?{W*e zvER>-UC|I@gCF+$8TP0O!`l?`QBH*NV%&vU62G52_y*BmK_R z{T~7I@!-4cx8ZZmPBdDb=uWX4-6@WTrug-T*op|g`E|c8Us@-EtztF+3A0uF1Ee4x z0l*Ib9R%ckr#&dkSUwL}8e{o9g%TRe=b4#=RUR12-voaV(Z7zT@M@sOmH!3fFS7cw zqW{wPn_xW0n8e*m(t z@?rix%b-0=tgFD7fe?fCEVM4$D(}Xi{cueA2X`rh_K%_l`r6_T4BFF+ZzckR_Ca!D z(4NZC#l*#+J$<|A6NC2j?WRu*+S9j}J~3!d-#+@ppgnzWd+>=td-~8ez$*sr=`9wo z7__IiO1xswp59vVqP2oSd;05@UkuvQ-=O?r(4PLK$}a}(>2FnjF=$VJr}B$Id-}KA zO6%EbNiBeZdrKL#XLD5%8nma5!W$a2C!p#kyowcxGN7GH3s8dPoyurWrjta0rai!kI8(XC6`kT<0 zJ=se{6At3Tmi*-h!hd$Yajl~gcm@m>wIdVNNa+|b-zY6{1{E;9zx##k@A)RktJn)q?- zQa_9VZ44WT`gks#$_4~ov;iUiVFQByX#+z3!v+NZ(*^|pD;p4WDH{+13v58pr)@w8 zir9dl3%n@Xtn>snAm|BfK+r=Q5Q0G)5XynC9F+q$AOrK* zcVw5E-f)*X;tO`E35)Jh!=^(k*94nZ!8|9n%=+|2D>TeZg7ZyY-Z%LB(EFsbThIQ6 z2gU*IA%!D248l5OVrnH7x*7{5GV96E2V;Fb7y^9I=3pmxK4KjWR^z=BwE0rkK}fGiIfIa1al=7KuV~qWkfNqVi;u_Az`2X(!oYl!`R+|D1zWX; zj3_I`3?L?7lpZ>wV5$iG7+591ZVHcUF2>Cr&FW0&VJbKlI|h~s_yMB+K*Aa`V#Jp~ zBoV`hsw?nG$?-6F&@MOn96qAYJD^w`n~f{;&Q;$W)Ql*c3s_Z5#)+_)Qyh(nokT-$qQ`X#R0GZGF5lMZStH8GY)t0-yhGBOJ!06y zfLJl|tynpBL;z3tOvyzy1iq&dQ6b z2gnXqpM(r3e+?0n&Re>#hGh#mGC>k&HJ^*-(H=D9Yamm~&o0dODLNFB)T+c^0WSfn zRh^`|SS50#a%gG+;E9s;yzpw+U?LS;iO2bmWQn5=IgA>{u%xq3GcYLY^P<$a0VGpX;b-#w+8+hZ9mQ^q}FaV#6)p~D$ zHAGC&CZ4v7zebn{xZwC^TwRtMY0SPLQUU5ub6YOLVcb_&X_xUN?1mLq;+u8}NpiDX zjIzs1Y+i|x^XQq`^Tq)2?Ne1D(nuA5_Ks~Bz$DkqTDw-6l(fzpB+8AU*9YioliFa( z`5B7nlYpMXK^ccOyx7mWpolWepg(>O@Tw(^ihPrzZv6>-rBG6>))gaJK-}osh$q!y zU2!-8*TeHEJpM&GCM8$+1?^b@4+bHj?qQ@yeh=5-wsBw_AV2%Y_;`eu--DMw)i49j ztf7oouOYE}0kJQOHwCyqjNV%Crt=zN*gx9aUFosY-!rHHu3!}WaCn*J0win3 zXco#n5Z@hmQoIO`k*#ASxvv8DIN@m01UyT?F9GyDJeeyrVXEBr~{{r7V9L!z15g3|t{_#BOTP(0YP~fp(VG6iIRerNg z*QL2C#J2+nldF5c(NFQ<8@hT{EcBrAOP7&LV^Q8t`nd?Oar0wfQgTP~`-X!!lURxU z)A@LofhU-p>iLUk^|5pO4)B$9X6P>0F=mQ-i`ir)RIGX(%UX-Xn7NN4bAt|I=Hi$R zO~zBK3*c9}1a4ybJ?@WsI#YvhW?sWt)K(Tr?%t`_?cS-U_D=CH*gN%d_D37wnmMk@*na>Js2$ zGF^{--V)M_tg9j!o^w?sLD8!s zZ$q5yt0KP-jHy;J5g8~lhG}>DA2j~%u8PEoFqVnAIxKQL&mYw9O~e$FA*QUj)MyTV z;iAY}TohL1o=B$F{XLNkiDfn;CEN~q3OqgE4$07NZ--<+&$mM|h2qS1q<|YC>FM@H zNL&c{TV%@QC+99lTnPCdvXr?ORB#C-6U5dXk1*g8Na5Ntmu+U>B#Ap9d9JRQv3Xmk zh`%UECjU-3+z;4*o;Jq@Wgp$phBIhqHMg1jZgE>6D^AQlp=Et;7%mTFm?J!% zxJo{?z#W3ZsfLBqh?Qc13AYL|7!c6k1Q*AN0!iH{Lv?Q+Iitf#JPhW!QHNl4@>8%CO%LojY9BzQRF z0Rfyy1M0A~zFJ+#Yb1eN3n``1N)kOF;Wk4e9jYh^OC~<npJ|ovRl3hzQRqr+9`bIW+-Cf_v+T6qSjkvwB z7PQkeNMSM&xxKM^a5a;zc0HWQ-3nJl{+V2IQjvWoSC}*Hm|2Jm&*XMujBlGWxwUA| z(AMZPxhEoxgtT!uh)Xi2Q8mYHaS)eaeCyQBL0pEEMM5H{X>kyjq4*}s#ETxM#X($# z4h)qe5)}t=sk&7`U^FHU;xcfkwC*^3OESX)QRd_whi`92-qV!iP}e)Zy6+F+9mbBq zyP!J3xD_Y1wXEg=@nc)s+B+7n*@*Swk5w}yXtC#>&~PFQpv{_n64te_%eu%aJFj{c zCXvH$1vN{0vMtrZiEHCf*EzTn5Nj%HczxGJ3XVREN1`uQz5?h`kk};(R&08c{M5Eq z$H}%)mwbdvt7|U>J8AMXBI|CvR6ln3mAI&B{R(`we@4-(V3>yl`-HE10kYB@&=Zf} zzSs95?B@o}Dll7TJV?#Y|M{i$+Lq@p5itU4@X#@$^&lal^(6>xqFYLH2Gy?_|6UK>kWU zYO_XaN3+(}vFMZ;){{vV*<--^5}wjyFl{v4B+o|3?soxpmvT0F7GEFZYa3n(qAt>m zTNeSf$PV!w;(dUqjP4LWjU2_fKVOP*I3{mhR3Of zXE7WL=otgg)o^U3XEHoIMDjB{sDw>(+ZSwDe-4(zd17Gh`eQb>wV}&YUB<0kUfcB% zCF?7QkDtBcJZv8owJyd7&A2(_))5r%Z$a%XJR1Ev z!e4;olE6?`!rQ_ z=PTa896vKIYF@CxI(Hyz-Zl`}ibwc8KddMhNJY63AvfTWg8P^h-0kr4Qux&4D9a0r z-vy0t!21*)$*4&&QH~5;)N@8{lhF~~WpppdJ%>j!`YIg1z=L1VJfI|WX4R&|>Q@oE zOXqg7;Ib$l!0Lo#ttHIbMNBgp+H9$`8K zIVZS&(=F4H^SDb`PPLkFr$ivcTr7rT5guKKmg$(z?*Unnl4d8YLrZ~pCLXCnYvEW! z51X4S;n;?UvdGfZndeGpbtGl5T`#m;PdxnW9jvxRtqNlpTm73r(JTmKE-H}Htm?$Bw*o<)MkK8EzVlUjc^+)RNJP4^Q6h;rB`{hf0E(C;wBUP?W@+Wc z_D>O8`kM^Zq5-5@9=Y zW@YRTOCg6M%7gvl2so!j;s319NdECJNFpCmn5E7fqx0$T8xvSqdllU4&q`oNjh~go zIn*m~`AMAR?yO`#*xMH+h5C~b4;I6ZN6Z8MoFlOqC%9U0S3|S@Fv0T24O##Sf5sEL ziLW-itPFZYJ#-5YYwUqUNX~87pbc%u;xmMeZJ>p{POOXgb#@;Tn}x<9b|&d0ITCEP z;%C`1fahgmu~z|)twm^z*|ZXR?4D4!7k3hcFDrgEUbrO~Cwy^T>54VDvUFJs?pe)@ z$<-8l$GOneVjh#Ui^{Kn8z z(aCNlLS#G75VX9NI+)ps;*m5ZQO%c zU2$Ec^%$PdfNS%6K2lZxhH4qZb$PIXh)*A;4Z8)jx;N7sYi?^>zX3>R7rsR#wW0BU zqt^CT1-+q9<>5aH*ctA0+V%MxK_>4y2S;qJ9a8LA_wN~LX5x9n7`UC_v-4h02 z_I(g_;b!#3KftqHYjQnV$L~Uq`xTvq5ZoT4d&?Lv1x`m%Vw1{AFjpq_4tEt7 zPnyI$c{P)oi`Hf~9(OHjwt`P2{0zWO#p4NTx{$CA_*)6%^_m63@K+OM1;NxKCzZ$#5jd=Fu@K{F1PF*qAiyoDU@MVy8jK9S2(OYsfKwp!a#?^Bc!@5h@C>*)m>czbA%O(U z0=%6ggQatsoL*v!O34e(ls{D{|58s&N;Lu zhrZ5PUP)5jn>%+*kLa9T_&Z{$E)oBNJ^sJ*653$*yC)myeavM!FdSSAeRGVVU@pA4 z7GAyGU+b6yAYRP~wg`!1=FC`x4Xa}6Li!HGPMj*BDR${21U*Ws&k&ApGv!Q4y7+*IHO^$v@7<}%UgS9&sbo6ELOY*{xA<=wj!JQ;dQtLy?wK+K5}NxXu|hHjI#a* znDBLuow2B4(TT@c?l%V(Vf5&h;Z=G)GBE^>GOK*f+yy5sp0VJV*)SXEx_h130QcRv z9u^)}TJTbIC0j=$IrIhm&zHhBKO=Cg$3)N+`{k8I%t78cSU?! z2d(iD0Y_r~buD7#+!Y04&Rx-+b?%CQ|F7=e^^l?HxhwjEb6513b60|>&t1_SId?^G zcBd>0xx6WZrD!r{{*x>eb_sAKJM&FdFo1it~6E))Hh10m^j>cPEB zZB70Rn41`JBjeyA9*%1Cpx-Vjy-uRE>MqP(4R0Z))+cOOxp8f?`kHu#b;s$bC{K{c z8zj=7o6*OsO{!C^)QSEehQGq_y$mM-&cOAj4OT1LB-#@5iKl2}*zFoV`c;z4dfh{v z4L5)Gj(0H&PT_l7t6v?t{~U&rpT;vlUBfe=)IlHmGyq@2Gw?2Wj@2Y$oWacwJnKx$SEjo7;Lr3v?>gj`5Uau0+*x=pcHoN=m?UZz2hWA5Gj=Pr4-&oW?#cI z_rr1uxl`XipIf!XxHyFCGGmS%@? zHO|4UYu~g28Cek!TkY`N)F)uWRm8=t7rdb zj7o}g2MXjL2efUdd2a)S;QnOd^MLkM_>$&d0|iRpf9*hlS0qOV3jcTRPcAX1n{98{ z#Zbnivt17d`p_%ZZ|SgblZ>oy@OX32ZAZbsL6MWrHa$M@Zily&@lAC03Oz?J8;w2^ zBN7w+-x0k`^-{e@w2Ka7DyE@FmnA=YN4bjKJJ)txV(-)4gjoc_tQ#FwU!Fw?q!j-s z)3Fy-Fz7WMA#enpaIzpt^QHZ;3siw8IT@Zq;TVkvBeABrJnMzSTxT_}gdHJJU)`*~ z&az^^_Ty~eomq&J(jSP77Z0{2ag?Z@p_VtD?=5(-C;fO8+TnxPlOBTg@YQ(U);Y$4 ziToUM&|#6KL@wwgQN#t6C5mMeD?#KsN)4{p<{TwCgPW)A|K@8T8b*Ry;QZ;(d} z;GrvKK$9%k5tmRNyVBg2+u7;dq)92P=ZlLJ2{#O z&qOmZ6;I(nUD!z|+5hgJU5J^`k=3!Iyd%ye0 zs}pqjeHlBgBBPjL>W1DlX-)4p6?25da4Vgjmga0LIoFC+UWmCvO2-m3l;#}!WA>I( z8}th1SahOYR~OSHVkRF7u8L~x>HSQ)qx#J)o!XDIic4)LkxuKJ5K>YN_QxVd zAIT61;#=$}|7BV9nPRzZ&lS%4!eUoxtm2WGSi`NzLPNhJew}TKu%F1G+E#*yA zWJJoCI(s3tffNhAV#to8QW`A$MF|ZdLzD+IR8?c;<{UG{Y;h=I3>_&YH>}*IfEagp zg^fZ~(y8uyg)K50Q3y2VU}QFBmgJ}`2GQpZvd5J!vLBt9F0uQ>8>{Ul=~L6Be8@ye z>(I&a?=UF_k1R)uVvMMOQ9B0WBr=&Jftpah)fFnY_{7vjaZam_r>ot$rAp<9TU(9# zJ1)pFg@KD$|l@RcIaz%vOiAwum_*D}TX;*tB!;IBeo+nIAHo*?G9k*s9 zxT@MA3sXw$5sA{YGi1OJMkt1c9Dy1FDIQ62ZnM+Wq@zZH(Wy!&0Sa?)bh$-hFm6c) zz85RC(-4=&&;?VE(#iwQ(B#puDIteMj}d95)2N54K9bQ{piHu;cl6E%PG(vT&ao(% zjKU#L$LUHGM4A&-2B?BEmM+>8@w*`~pbg{`M*grP`o zcIz2wjJvNPs!>*2T@p0QS(TZknADsoMASr;i3_ACQz3daXy`&f#m`mz0;R)+-Kk&3 zw53I?v&FeNS4vZ&x|lvesFYn)pr!01bkUbZ)S%pSFZ&Un%8DE9q`V1G^dqZ1!YB)0 zwP5k?1)2!6&AOgcbv@NxmeT;{Rk4EXDrVW)^kPvZR5i>A)xfetcPxxZ0g)LeP%^Fa zMsn1u5S^%hLpovUOTSJLIoVpMloAru9h|3%(N`_G2D4*{M|wVdsI12kNu%&7)O8F# z?4znLvpI+`nihb+V-bvzg6hx;L)NN?109@YBKlDj21~4B)gzQdI`clERE!WyRf(1< zT`tcmSmck@y|3x3DuM=5hg4=4A8UTUY-KhBl>XUZQ&J>9AUi0#CmN{RLusX$<3ZWj zs+k*HgGNfxyZ}55$!*DWXZ;UrMGTdudJx-{P%Wel5rMlw5qqZg`!Wh+6A%wYPlZe< zc_;agMGV90k>R8aO+(#xOl^;(pmi=N5ipjbG~;R{5~;VQq?1aEatEY=JauoRnx+DX z+A0jfbOlpknEHg}tsdh0VO-EH& zKb#I=%pVMVVZc3PngwFU|DuWzbXYzKRT#-IOE{XKYr7usqY|6y38AsXQJaIbGG>fk zBrQ#~W(ggKNE0fiBb5ZA&nl5VYSdS%%D&8`6jYk>phBqOp!Dp0&HTeuYe}}cj73su z6u6(6MyNr(QFb-o86aaUfmJ6NZD4MT%obr#e&WO(Ecu6;4asI#sZ3S(-BEQ|WNK12 zR12g!$&qRiE0a>vVN~GZ;oxONzy-CHV`A^r>H;z{GB2chYwXl&45>!RI7g&kjX^?H zwTym7bF_6x7SmXmGXP=30z=BctVUS*@j2Ow{QE3s>)aWo#HPlB(LD6PoS{glepEzSrkK%w^gU0qDtaF^X%ZyG0&id(e zR|NSjW>|35<*E~nn+BnmMl)CF>FgmvK{(gUX*6@2Ot70R?V`xAE*vLjpTTCM~X-=e-}hmkJxn zbkIl^Wb=hY3QfC{QEh8cbSXgfC#EgZ!zSras6TylSqa~&IV%PI>}8%ZLCT$}muGRU zX6k)SQy5tZ31{k+-M3Rv+T7Vfe=~|2pep>p$b5N_VmX)yGaG}un;H-4ZfaZ=OpU8U zH5}Sq+c8X6WT`W15Hmbz9Yp2WV2|j&lNp%{HWicHj>=L{)kKWen$7S-OlQ+g9gd8c zLoLi!Co{x0RFt-bL-5Gxy1P~&GNnV`YsT3|^$ScN66f%)|0q4BFI1Y!L3XfaS7dZc zcxJ|ObP-jvL@Bdg5Mw1X6Fk*Z%BoaUcBN_tRu;%t+G*2~m8)Sq*5ugUX{uP4iwqws z^R=y?QnLP8S^&Cad4SQxfjT$Ag2$k2WgrVs#B3lzL$X;_Z5(}Y)Ncd2Q!S~fI* zV;mAdheaEF)lZ<~7Ckhh`ty+JNcK1;g;6XMtjlQ?3AI=asnS}Z%Kri@5Blzz2u z#{ZEisZ2-1hEtE`jebf)tBTQy6q}4TvBDh2Q$tJ>4UH<2l^LQ`Sj-xt@>7eDXj-$Y z3UxhV?p7#u=%PdTht(W+*(2 zUGtS>uo||(Y&KUtt3+O&T9ISrs?Hw54Gq0|b#s`AGuTEL&c>SxGD1Y47uMDIdSuw} zh`v+HaRW>^EkU~)&V1G2?a(LyM=?dn91H*bDFpqO z!BO(E{zgZ*Phtis6+u3Q7bMH2%}QNVn&GUT&kQtl#SVoV%HZUR5}WM`7VN?jSDm)6 z#1hX=*2vLJM~TFlW-8jghK*V}N|(|o2um{P`?8o0$`wOx5=H~2YHf8gvVNub&1oI{ zFkj?=`N|zJnx&9rIEYdGc2FnCWID*RRwk$)c2K^gwrdf^ugjrw4jY9NqsP# zmTFE4x*uYjc@}2=T$BrY0xVAjeMxTjCX+4J;o?x&OY#+@kE&m#<$6Q33|e57=Z=>8 z%0N$RC!6q!tkD*-!bT@+jg;!7da5j?4p&EmwoC?UQC-wR85lHK(IM0zW(WHOjD^Ke zy-})(nJUk~AsP`q7hT*z4O$lp>j1W7RH;U`VzL#Xr;P;3i|TPlnh{hoG6djixJ>A) ze_g0n$hzBdQ7TcW$|s`+&P8TCTil)evHl%4pOk-}uze{twZ1G{3Pxfm^l00eJygPl zN!f%ef}&x3HNHjp=N5+=;byfQ`5K6EVn|#y`mAA4GB2Q)*BYV1g^`%mtVGnbgiF}y z6{xOG(2#`NY}K+F?d3D%=W2gE6r<^I@_A0>Hl3V3^w5N}JuS$}ff~dWnn@q>^N;-! zF2si`rfvio+qVCNkuCnA5?FZP7~;)^dpVvf@Z65)+jwI3kXTXqf5K(|l`np88!N)g z8AR78zQ*&#Z|Y*l@^va-EBT_0j~G9BcRT6&6kj*;^?APdd35YSzMkakX}&z$!k0S5 z>H{t3TbAwHeueXl^^WKLp%fSQ4R+rDzGZvKGS~5J=bI000pmCOwrhK7d`4|M-#E|q zJb!*^X{i_UFYr>%<_%9KXxgCfacb+Z)VkzSF_npVvZ7+2-aGb)aUKKDC zH+w1nT5klLfW&?0h>N`vcszfnmyrLT_NoE0kX29OLwHY!&;LXKW?8gjY^nRd#Mt#WT5 z@ErdQZ-D%NR{#HYsc`6bAnY7(Cc+Bm!Fjaj3)-cnUSB%qAvcLprO2KQ*QdOUZzonE z2*{*zv;3p8x6gdvRx`GR;$jrU8EqnLl1M2Pv9dc%P2QRJT%zO<7( zc#M>&LC~dM8T^UOURmN;ct5I%B(`cQCkUXxcb>IC37Phe0{+B{y#e#c!_gY;v{Ela znk<%2J`TpN$1o=5#(t;43`2=H{_#>)Df(}QcfME7q^2t#n(>0?&9kKzNGfnAFnwt6UMz1a+bJX$~5kemH(-`y~GI+ z!r5Ty3_nrlIjcowOQ^j|%0y>bmI#&iJiZ(G>JY6R2&XefiW|l6Tn926J*V00<7~dT z#;cV$FL{T_e_Q#t1IHp_b=Xw&PnSYzs4SLs|{{&hF z-=R;$qjYB>T=r>v@p6jTI=;^3>k_`M;!Ej{VfHe76HPU*RE6bKZilCx+C$^SK zqn%=07W}jiET=7ClJALf~l=WMX0Iy_F zvK|eWJ)W=WT5Bfvq&3bJK)VIcvv?%7^9CcnO>YdJV%m>u5>tC5u^4FU@LY>WNVvNg zkvB5fUnT5mzNCEKHn~izTqc&3IYVGJ1F}v`MO(`n*XYL%DMRi{QQ6|oGHKol-YG>j zD?!KRUlq8V^!C6VLYoXsD&zjuv?7UWgGY((RJiPAeC+?hReyl`jVDO{woy>=ow2S>g>jTAY-Lboi@K zkJ-~;IM|%1!g%mZw)aj+hqF0xv;PiAqaoSdpe6pf7=)FWUsetrG$X4Zz+#S~oVG-t zE@>DzUckVsW*)|HdoDyzKEQd@e#t93+8gjWuR!G;;x0$br`U0qm7+*k0;@|)Ra*vX zeKFz^pi^|SxMbLOGh;b97 zXc>XkX?aX>wzw71f)OSWE`_^_;*1~qU zFLBDDWitQ5JP)5d*!I1;GwZoO+=X`ZSv+sEJ>}fhDJVdz+@G(}c&RqFVX?09g{q02 z&jtqBV|#WQ%A>EB{=^)(=cCZzUJU0Fjtok4xYTHbA&W=*=Sp2x^Dho2^dRMc23hBU zrB9PBvKo7wTt3a$C-flejl1E z;Y+$2bET{EpdM~5;RKTt#ZgmHc<0r4lV{ej9d!Jsp!$c$#@ZD!dy4x{$Z)E_zg=2j z8EQM_Y^t6RfIZDCLR0VT!aUb@+7nZqUs#QtEjf2@sbN$!z0QxU8unuMZ`sa(ikG@2 z?P4m)*}KajzB2|2x8XjnA9R2Gk2&HcgB)5b;lV8hbn{CN_X~#00 z>C50?o@%aqXEW$HX^vMnLhMK3zw^+RJ)*qx%didtWnSU=)4hWED4U`hZ>ZC@2PNO= z4FzGuz%)s9TOUDRf<*z0kGs6$vk`DK1{XdWwBs?_<~oVEo;eC>Zq`JX_`;G~Xe;{#g{N^%mq6| zdSZs5FqT13!2aQ29qWN8X=LOW6jZomcClwyLPIaqiv?fw&qT1}V*#$rTWBz+d6`mK zBt&JaKGhrYIJNXGQIb@LH*$&RPDO#AEVU)$&qW<*^6atxNFjBJEas5`G-=0pG8$$j zYvHhcE(I%$vO4)47>zlHQ{RefZuXt8Y{8OGKF^5!DdCsPT0k!&d)1gVmw-Js6j*2p z2F6gXB7Y9JFY&zjUh!149&SnYxlNzUbL!5c6Ly7vHWr%^rcvQ$be>he% zSdzALOD>l$3zv8G#wE(v`HAB4t}U2`qG1!MVa`=1ZIwO0#=l((3gx8I`9y9yzm;^Z z)#-FwCQRp#DxE8|G$ft3n2ymNk-(67>;eYW{-05_e|=%3{I}z)SOmRqNakd}!s)a{13IDH`&EIzTF`+B;D1n=H~AoU)1BZ6$jmDyiJZ&~ zk)ckaZ&Z!vMVkWlY0kA2xie5^dFwjL*?)sRCa_Mb@o3$1I-Ak+#Fa`O%5H>8a*pUo z0^MsZq7-3aYUb1fY=P@>CVB}T)vjLzmwgRiyY#@i=kew{Kuco}wGNNOPA-7UZsMzz zuygskgs)HXbpv1b^0kXE?-)$9jg@9jEFFxwx#c0N6_5J~PTbMdF^@Mx_vd4?XR5Og zYwk|v`Le+SrM~WbJ#+KlK!0<$=DFvUtuzeL4#zVekMQiShRZ&eud4{VjxXsZTD8$! zryo+pSf3*u+o|M+fpa!T2%0zSU;u(iIXiZ+v`@d&fdJh<#ezE%+?d~VkkHqrbG1FO*?4W-b)uAfoP zk7AsF0V4IOU@F|FN%N7!;yauF@xYGxvlZ$*&eW2qOk*3XM1@Y%eAeK9w>tx|XTS@u zOjRm`?^w{3@g?jTORSu(dhBMUz&bEZIzZ}YgVdFH6!iy4_^E)pv2gl#Q?JICH%H=8 z)R)6$xA7&s8=Ij$P#>qKWNUhojQc&1dJ|6xHlL^BkyHvA;j)+U^-;pw@p3-K*A;wy zny;Jqx{I$b@wJ<;Z}TO58H-|=QA?4}_ZH*7>~%GIeOQ_u-e~-D8}TtEtYmd~i}5dx zW?`(j{2#J;bPDg2*sIG>vnpVH+Vjd#yU-M7Y(NUIRMP>!?Cm)vtDv}vv7+{#e}*?2 zQSF`H=w@isXG^K@NC6v_75Eo>+{?6+&Zb0%q=04~qpN}vTwiYQ)atajN1@eX<9jZi zv+-PyM}(Gm051D`eEpiR5AbqgFrVV2`6}hBiZ7*f+NKJIcvL#14rVxz!Q2hL5@ZkK z^@3tYdr~F8c+(eo2_*+?c^IX)a-Qz06pzKg$Q5 z4FBDX+Se$_BGrHW{!uwU_xbGE**%&&bqoP0Yy5xg5*=+-YbK3A^G*h2jToYCfKMw0Q_CRuh;a^70d5mtpGn;4 z$1Y3#_~jpk3C>JQdfn;gaM0)?UA-@MrclkM+W;8TCtkyeNW2^klo<|8xsu{=pli%ZvE6z&8s^V;CPl1JAu4Y8JwXzg^S6Ua)(VTXQO3ZpTq3hQ7Ioty9x6 zaC65T$1(gF_}lvSFVh|vxVbTKl0pygcj=4sjJyrLxr6fI2!40WPc=x{F6SZbLjX6FXbS(|X&mK&vS05`VqX*$X;mrc^K3BJZ%>J|}E?dZI&kB|f7t zQyQa}z2VORzL}&P2>xc^n`y`X@Tuo_0pCmqj@0>rT$hW2&s7y{g2t=YqvD7h!~AcG zwEXi_%FGw(@7D2{6o0+tcM7U>uE|K^6TVN=*|N+q1)TQd5d~@y|s!eS8?l`v%{luFb#v>v4?@&6t|jDNz| zb?xW2n`H36W&Mh^8*w#KFJWU_+gF|i)5lp1^u(~C2gViCf#aN(_3Jxo)>yb`uB~PL z;VtW0*TRQN*bEf7KoKY_n^(cT9BpDp`%1XlJ67V7a5!+!j+iorpq90^0Dw!Fh^9Q} zbe!AT+)gMR_>WYY+i)YhAW9OZSpsC;vW_+Q*RcXM0snF9A*jO9imM!&+et>*+=XM+ z+6~LdUHiG~fh`FiV6m-Uv0@!=ZRlQU1&YM^M+I^Y>i-H{Q20*}NQ6|xd4S5fa_w5&@xJL`DrcBP=sG~| znqat`7q%Tt_9AISoCnBY$J+MxjjachJuuQ^TOFhxIQG|yhN_<16dquPH?K#Vfg(AW zS&pO;aULLpE97!J-A(>CG`ErTbzwyMn@HdRW@jC`yMrm~-qcH{ZT_jg5?w;e2K0jm z$p7Y!HMCoQFtZRQ5xNeLI~lw*t!ZA{iV4NRk;`+uGi|api`?+nNuuNPE+Y z93FDKn=rFjCF8GP5Yhd3E^LXq8@(AVTi3j9L)*D(xRp2X3x;d|v|$Ra+H2#O&{Vo$ zSpH8Rm1U=t?bD;u1JsGl9h*B2b{`o@BjP+j1~IBPmyaCGD%P9MX0wp(Gm6-~n&v58 z_e19Pmep#Gaey*GhmAWu4r(vjn>@ngL)U>09h96nm3NA|wQ_A%p0LSg^ ztz$8hUvU=husN$~)v}hg2TS>pQg4eE@!U%0An+Q9BdwODY+syDWZ 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 literal 0 HcmV?d00001 diff --git a/bin/SHA08SRT.exe b/bin/SHA08SRT.exe new file mode 100644 index 0000000000000000000000000000000000000000..fee845ac0c19ee46f75ea38cce1eac719963d0d7 GIT binary patch literal 155758 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

    %>>}&=l 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

    `BUNOd=62<|y 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 E0gL724gdfE literal 0 HcmV?d00001 diff --git a/cpy/KYU01REC.cpy b/cpy/KYU01REC.cpy new file mode 100644 index 0000000..a7bd57e --- /dev/null +++ b/cpy/KYU01REC.cpy @@ -0,0 +1,12 @@ + * EMP-RECORD 社員マスタ固定長レコード 80B + * KYU01CVT出力 / KYU02REG入力 + 03 (A)EMP-ID PIC X(008). + 03 (A)EMP-NAME PIC X(040). + 03 (A)DEPT-CODE PIC X(002). + 03 (A)REGION-CODE PIC X(002). + 03 (A)CATEGORY-CODE PIC X(003). + 03 (A)BASE-SALARY PIC 9(009). + 03 (A)HOURLY-RATE PIC 9(007). + 03 (A)DEPENDENT-COUNT PIC 9(002). + 03 (A)STATUS PIC X(001). + 03 FILLER PIC X(006). diff --git a/cpy/KYU02REC.cpy b/cpy/KYU02REC.cpy new file mode 100644 index 0000000..3a9180e --- /dev/null +++ b/cpy/KYU02REC.cpy @@ -0,0 +1,7 @@ + * ABSENCE-AGGREGATE 欠勤集約レコード 80B + * KYU03AGG出力 / KYU04CAL入力 + 03 (A)EMP-ID PIC X(008). + 03 (A)YEAR-MONTH PIC X(006). + 03 (A)TOTAL-HOURS PIC 9(004)V9(001). + 03 (A)ABSENT-COUNT PIC 9(002). + 03 FILLER PIC X(059). diff --git a/cpy/KYU03REC.cpy b/cpy/KYU03REC.cpy new file mode 100644 index 0000000..8c9fabb --- /dev/null +++ b/cpy/KYU03REC.cpy @@ -0,0 +1,15 @@ + * SALARY-DETAIL 給与明細レコード 240B + * KYU04CAL出力 / KYU05DED入力 + 03 (A)EMP-ID PIC X(008). + 03 (A)EMP-NAME PIC X(040). + 03 (A)DEPT-CODE PIC X(002). + 03 (A)BASE-SALARY PIC 9(009). + 03 (A)OVT-AMOUNT PIC 9(009). + 03 (A)HOLIDAY-AMOUNT PIC 9(009). + 03 (A)ABSENT-DEDUCT PIC 9(009). + 03 (A)GROSS-PAYMENT PIC 9(009). + 03 (A)OVT-HOURS PIC 9(004)V9(001). + 03 (A)ABSENT-HOURS PIC 9(004)V9(001). + 03 (A)ATTEND-TYPE PIC X(001). + 03 (A)ALLOWANCE-TYPE PIC X(003). + 03 FILLER PIC X(131). diff --git a/cpy/KYU04REC.cpy b/cpy/KYU04REC.cpy new file mode 100644 index 0000000..cfc381a --- /dev/null +++ b/cpy/KYU04REC.cpy @@ -0,0 +1,16 @@ + * SALARY-NET / DEPT-OUT 差引支給額レコード 200B + * KYU05DED出力 / KYU07DIV・KYU08PRI・KYU09MRG・KYU06UPD入力 + 03 (A)EMP-ID PIC X(008). + 03 (A)REC-TYPE PIC X(001). + 03 (A)EMP-NAME PIC X(040). + 03 (A)DEPT-CODE PIC X(002). + 03 (A)REGION-CODE PIC X(002). + 03 (A)CATEGORY-CODE PIC X(003). + 03 (A)GROSS-PAYMENT PIC 9(009). + 03 (A)INCOME-TAX PIC 9(009). + 03 (A)INSURANCE PIC 9(009). + 03 (A)RESIDENT-TAX PIC 9(009). + 03 (A)NET-PAYMENT PIC 9(009). + 03 (A)TAXABLE-INCOME PIC 9(009). + 03 (A)PAY-AMOUNT PIC 9(009). + 03 FILLER PIC X(081). diff --git a/cpy/KYU05REC.cpy b/cpy/KYU05REC.cpy new file mode 100644 index 0000000..d04ec2c --- /dev/null +++ b/cpy/KYU05REC.cpy @@ -0,0 +1,12 @@ + * PAYSLIP 給与明細印刷レコード 200B + * KYU08PRI出力 + 03 (A)EMP-ID PIC X(008). + 03 FILLER PIC X(002). + 03 (A)EMP-NAME PIC X(020). + 03 FILLER PIC X(002). + 03 (A)BASIC-SALARY PIC Z(008)9. + 03 FILLER PIC X(002). + 03 (A)NET-PAYMENT PIC Z(008)9. + 03 FILLER PIC X(002). + 03 (A)PAGE-TITLE PIC X(040). + 03 FILLER PIC X(106). diff --git a/cpy/KYU06REC.cpy b/cpy/KYU06REC.cpy new file mode 100644 index 0000000..087edc6 --- /dev/null +++ b/cpy/KYU06REC.cpy @@ -0,0 +1,8 @@ + * PAYMENT-DATA 支給データレコード 200B + * KYU09MRG出力 + 03 (A)EMP-ID PIC X(008). + 03 (A)PAY-TYPE PIC X(001). + 03 (A)AMOUNT PIC 9(009). + 03 (A)BANK-CODE PIC X(004). + 03 (A)ACCOUNT-NO PIC 9(008). + 03 FILLER PIC X(170). diff --git a/cpy/SHA01REC.cpy b/cpy/SHA01REC.cpy new file mode 100644 index 0000000..51df0cb --- /dev/null +++ b/cpy/SHA01REC.cpy @@ -0,0 +1,16 @@ + * + * 被保険者レコード 200B SHA01CVT出力 / SHA04TWO入力 + * + 03 (A)EMP-ID PIC 9(008). + 03 (A)INSURED-NO PIC X(010). + 03 (A)OFFICE-NO PIC X(004). + 03 (A)INSURER-CODE PIC X(004). + 03 (A)EMP-NAME PIC X(040). + 03 (A)EMP-KANA PIC X(020). + 03 (A)BIRTH-DATE PIC 9(008). + 03 (A)SEX PIC X(001). + 03 (A)ENT-DATE PIC 9(008). + 03 (A)HEALTH-INS-TYPE PIC X(001). + 03 (A)PENSION-TYPE PIC X(001). + 03 (A)STATUS PIC X(001). + 03 (A)FILLER PIC X(094). diff --git a/cpy/SHA02REC.cpy b/cpy/SHA02REC.cpy new file mode 100644 index 0000000..d86d4da --- /dev/null +++ b/cpy/SHA02REC.cpy @@ -0,0 +1,13 @@ + * + * 従業員保険情報レコード 200B SHA02MNC出力 + * + 03 (A)EMP-ID PIC 9(008). + 03 (A)EMP-NAME PIC X(040). + 03 (A)DEPT-CODE PIC 9(002). + 03 (A)BASE-SALARY PIC 9(009). + 03 (A)MONTHLY-AMOUNT PIC 9(009). + 03 (A)GRADE-CODE PIC 9(002). + 03 (A)HEALTH-INS-TYPE PIC X(001). + 03 (A)PENSION-TYPE PIC X(001). + 03 (A)INSURER-CODE PIC X(004). + 03 (A)FILLER PIC X(124). diff --git a/cpy/SHA03REC.cpy b/cpy/SHA03REC.cpy new file mode 100644 index 0000000..18bb61c --- /dev/null +++ b/cpy/SHA03REC.cpy @@ -0,0 +1,13 @@ + * + * 保険料計算詳細レコード 300B SHA03MNP出力 + * + 03 (A)EMP-ID PIC 9(008). + 03 (A)EMP-NAME PIC X(040). + 03 (A)INSURANCE-TYPE PIC X(001). + 03 (A)GRADE-CODE PIC 9(002). + 03 (A)MONTHLY-AMOUNT PIC 9(009). + 03 (A)HEALTH-RATE PIC 9(007). + 03 (A)PENSION-RATE PIC 9(007). + 03 (A)HEALTH-PREMIUM PIC 9(009). + 03 (A)PENSION-PREMIUM PIC 9(009). + 03 (A)FILLER PIC X(208). diff --git a/cpy/SHA04REC.cpy b/cpy/SHA04REC.cpy new file mode 100644 index 0000000..052f7e5 --- /dev/null +++ b/cpy/SHA04REC.cpy @@ -0,0 +1,13 @@ + * + * 事業所保険者付与一覧レコード 200B SHA04TWO出力 + * + 03 (A)EMP-ID PIC 9(008). + 03 (A)EMP-NAME PIC X(040). + 03 (A)OFFICE-NO PIC X(004). + 03 (A)OFFICE-NAME PIC X(040). + 03 (A)PREF-CODE PIC 9(002). + 03 (A)INSURER-CODE PIC X(004). + 03 (A)INSURER-NAME PIC X(060). + 03 (A)MONTHLY-AMOUNT PIC 9(009). + 03 (A)GRADE-CODE PIC 9(002). + 03 (A)FILLER PIC X(031). diff --git a/cpy/SHA05REC.cpy b/cpy/SHA05REC.cpy new file mode 100644 index 0000000..160dc0c --- /dev/null +++ b/cpy/SHA05REC.cpy @@ -0,0 +1,11 @@ + * + * 等級改定結果レコード 200B SHA05TWN出力 + * + 03 (A)EMP-ID PIC 9(008). + 03 (A)EMP-NAME PIC X(040). + 03 (A)REVISED-YM PIC 9(006). + 03 (A)OLD-GRADE PIC 9(002). + 03 (A)NEW-GRADE PIC 9(002). + 03 (A)AVG-STD-MONTHLY PIC 9(009). + 03 (A)REVISED-TYPE PIC X(001). + 03 (A)FILLER PIC X(132). diff --git a/cpy/SHA06REC.cpy b/cpy/SHA06REC.cpy new file mode 100644 index 0000000..49ae52b --- /dev/null +++ b/cpy/SHA06REC.cpy @@ -0,0 +1,14 @@ + * + * 保険料確定結果レコード 300B SHA06TWM出力 + * + 03 (A)EMP-ID PIC 9(008). + 03 (A)EMP-NAME PIC X(040). + 03 (A)INSURANCE-TYPE PIC X(001). + 03 (A)GRADE-CODE PIC 9(002). + 03 (A)MONTHLY-AMOUNT PIC 9(009). + 03 (A)HEALTH-RATE PIC 9(007). + 03 (A)PENSION-RATE PIC 9(007). + 03 (A)HEALTH-PREMIUM PIC 9(009). + 03 (A)PENSION-PREMIUM PIC 9(009). + 03 (A)TOTAL-PREMIUM PIC 9(009). + 03 (A)FILLER PIC X(199). diff --git a/cpy/SHA07REC.cpy b/cpy/SHA07REC.cpy new file mode 100644 index 0000000..ee2996e --- /dev/null +++ b/cpy/SHA07REC.cpy @@ -0,0 +1,14 @@ + * + * 資格異動レコード 200B SHA07KBR出力 + * REC-TYPE: S=サマリ / D=明細 + * + 03 (A)CHG-ID PIC 9(009). + 03 (A)EMP-ID PIC 9(008). + 03 (A)EMP-NAME PIC X(040). + 03 (A)CHG-DATE PIC 9(008). + 03 (A)CHG-TYPE PIC X(002). + 03 (A)INSURER-CODE PIC X(004). + 03 (A)PREV-INSURER PIC X(004). + 03 (A)REASON PIC X(040). + 03 (A)REC-TYPE PIC X(001). + 03 (A)FILLER PIC X(084). diff --git a/cpy/SHA08REC.cpy b/cpy/SHA08REC.cpy new file mode 100644 index 0000000..5340344 --- /dev/null +++ b/cpy/SHA08REC.cpy @@ -0,0 +1,15 @@ + * + * 届出書データレコード 300B SHA08SRT出力 + * + 03 (A)EMP-ID PIC 9(008). + 03 (A)EMP-NAME PIC X(040). + 03 (A)OFFICE-NO PIC X(004). + 03 (A)OFFICE-NAME PIC X(040). + 03 (A)INSURER-CODE PIC X(004). + 03 (A)INSURER-NAME PIC X(060). + 03 (A)PREF-CODE PIC 9(002). + 03 (A)MONTHLY-AMOUNT PIC 9(009). + 03 (A)GRADE-CODE PIC 9(002). + 03 (A)REPORT-TYPE PIC X(002). + 03 (A)REPORT-DATE PIC 9(008). + 03 (A)FILLER PIC X(121). diff --git a/cpy/SHA09REC.cpy b/cpy/SHA09REC.cpy new file mode 100644 index 0000000..157f970 --- /dev/null +++ b/cpy/SHA09REC.cpy @@ -0,0 +1,6 @@ + * + * 分割出力レコード 300B SHA09S25 / SHA10S10出力 + * + 03 (A)PREF-CODE PIC 9(002). + 03 (A)INSURER-CODE PIC X(004). + 03 (A)RPT-BODY PIC X(294). diff --git a/cpy/SHACHKAC.cpy b/cpy/SHACHKAC.cpy new file mode 100644 index 0000000..05d71db --- /dev/null +++ b/cpy/SHACHKAC.cpy @@ -0,0 +1,7 @@ + * + * SUB04CHK 連絡領域(92B) + * + 01 C01CHKPAR. + 03 C01CHKTYP PIC X(008). + 03 C01CHKDAT PIC X(080). + 03 C01CHKRRC PIC 9(004). diff --git a/cpy/SHADATAC.cpy b/cpy/SHADATAC.cpy new file mode 100644 index 0000000..f766d6f --- /dev/null +++ b/cpy/SHADATAC.cpy @@ -0,0 +1,6 @@ + * + * SUB01DAT 連絡領域(10B) + * + 01 D01UBSPAR. + 03 D01FKICOD PIC S9(004) COMP. + 03 D01UBSUDATE PIC 9(008). diff --git a/cpy/SHAENDAC.cpy b/cpy/SHAENDAC.cpy new file mode 100644 index 0000000..cb2a012 --- /dev/null +++ b/cpy/SHAENDAC.cpy @@ -0,0 +1,5 @@ + * + * SUB03END 連絡領域(3B) + * + 01 E01ABDPAR. + 03 E01ABDCOD PIC 9(003). diff --git a/cpy/SHAMSGAC.cpy b/cpy/SHAMSGAC.cpy new file mode 100644 index 0000000..b63eb45 --- /dev/null +++ b/cpy/SHAMSGAC.cpy @@ -0,0 +1,15 @@ + * + * SUB02MSG 連絡領域(303B) + * + 01 M00MHOPAR. + 03 M00MSGCOD PIC 9(003). + 03 M00UMKDATS22-01 PIC X(030). + 03 M00UMKDATS22-02 PIC X(030). + 03 M00UMKDATS22-03 PIC X(030). + 03 M00UMKDATS22-04 PIC X(030). + 03 M00UMKDATS22-05 PIC X(030). + 03 M00UMKDATS22-06 PIC X(030). + 03 M00UMKDATS22-07 PIC X(030). + 03 M00UMKDATS22-08 PIC X(030). + 03 M00UMKDATS22-09 PIC X(030). + 03 M00UMKDATS22-10 PIC X(030). diff --git a/ddl/schema_sha.sql b/ddl/schema_sha.sql new file mode 100644 index 0000000..378bb36 --- /dev/null +++ b/ddl/schema_sha.sql @@ -0,0 +1,70 @@ +-- ============================================================================= +-- 社会保険管理システム(サブシステムD)DBスキーマ +-- 対象DB2: DB2 for z/OS(区切り識別子使用) +-- ローカル開発: SQLite(型宣言はDB2準拠、SQLiteが許容する範囲で記述) +-- DB名称: INSURANCEDB +-- 注: テーブル名・カラム名は全角ハイフンを含むため二重引用符で囲む +-- ============================================================================= + +-- 1. INSURED-MASTER(被保険者マスタ) +CREATE TABLE "INSURED-MASTER" ( + "EMP-ID" CHAR(8) NOT NULL, + "INSURED-NO" CHAR(10) NOT NULL, + "OFFICE-NO" CHAR(4) NOT NULL, + "INSURER-CODE" CHAR(4) NOT NULL, + "HEALTH-INS-TYPE" CHAR(1) NOT NULL, + "PENSION-TYPE" CHAR(1) NOT NULL, + "BASE-MONTHLY" DECIMAL(9,0) NOT NULL, + "GRADE-CODE" CHAR(2) NOT NULL, + "STATUS" CHAR(1) NOT NULL, + "UPDATED-AT" TIMESTAMP NOT NULL, + PRIMARY KEY ("EMP-ID") +); + +-- 2. INSURANCE-RATES(保険料率テーブル) +CREATE TABLE "INSURANCE-RATES" ( + "GRADE-CODE" CHAR(2) NOT NULL, + "MONTHLY-FROM" DECIMAL(9,0) NOT NULL, + "MONTHLY-TO" DECIMAL(9,0) NOT NULL, + "HEALTH-RATE" DECIMAL(7,6) NOT NULL, + "PENSION-RATE" DECIMAL(7,6) NOT NULL, + "EFFECTIVE-FROM" CHAR(6) NOT NULL, + "EFFECTIVE-TO" CHAR(6) NOT NULL, + "UPDATED-AT" TIMESTAMP NOT NULL, + PRIMARY KEY ("GRADE-CODE", "EFFECTIVE-FROM", "EFFECTIVE-TO") +); + +-- 3. GRADE-HISTORY(標準報酬等級履歴) +CREATE TABLE "GRADE-HISTORY" ( + "EMP-ID" CHAR(8) NOT NULL, + "YEAR-MONTH" CHAR(6) NOT NULL, + "GRADE-CODE" CHAR(2) NOT NULL, + "MONTHLY-AMOUNT" DECIMAL(9,0) NOT NULL, + "CHANGE-TYPE" CHAR(1) NOT NULL, + "PREV-GRADE" CHAR(2) NOT NULL, + "UPDATED-AT" TIMESTAMP NOT NULL, + PRIMARY KEY ("EMP-ID", "YEAR-MONTH") +); + +-- 4. QUALIFICATION-CHANGES(資格異動テーブル) +CREATE TABLE "QUALIFICATION-CHANGES" ( + "CHG-ID" INTEGER NOT NULL, + "EMP-ID" CHAR(8) NOT NULL, + "CHG-DATE" CHAR(8) NOT NULL, + "CHG-TYPE" CHAR(2) NOT NULL, + "INSURER-CODE" CHAR(4) NOT NULL, + "PREV-INSURER" CHAR(4) NOT NULL, + "REASON" VARCHAR(100) NOT NULL, + "UPDATED-AT" TIMESTAMP NOT NULL, + PRIMARY KEY ("CHG-ID") +); + +-- 5. INSURER-MASTER(保険者マスタ) +CREATE TABLE "INSURER-MASTER" ( + "INSURER-CODE" CHAR(4) NOT NULL, + "INSURER-NAME" VARCHAR(60) NOT NULL, + "PREF-CODE" CHAR(2) NOT NULL, + "INSURER-TYPE" CHAR(1) NOT NULL, + "UPDATED-AT" TIMESTAMP NOT NULL, + PRIMARY KEY ("INSURER-CODE") +); diff --git a/src/KYU01CVT.cbl b/src/KYU01CVT.cbl index f479ceb..c2da002 100644 --- a/src/KYU01CVT.cbl +++ b/src/KYU01CVT.cbl @@ -1,4 +1,4 @@ - IDENTIFICATION DIVISION. + IDENTIFICATION DIVISION. PROGRAM-ID. KYU01CVT. ***************************************************************** * システム名 : 給与計算システム * @@ -8,7 +8,6 @@ * 処理概要 : CSV形式の社員マスタを固定長80Bに変換する * * 引用符内改行をINSPECT CONVERTINGで処理 * * 項目チェックはSUB04CHKで実施 * - * プログラム分類: No.21 CSV→FB変換(改行あり) * ***************************************************************** * 更新履歴 * *---------------------------------------------------------------* diff --git a/src/KYU02REG.cbl b/src/KYU02REG.cbl index 15fd9da..205bc94 100644 --- a/src/KYU02REG.cbl +++ b/src/KYU02REG.cbl @@ -1,4 +1,4 @@ - IDENTIFICATION DIVISION. + IDENTIFICATION DIVISION. PROGRAM-ID. KYU02REG. ***************************************************************** * システム名 : 給与計算システム * @@ -7,7 +7,6 @@ * 作成日 : 2026-07-01 * * 処理概要 : EMP-RECORDをDB2 EMP-MASTERにINSERT/UPSERT * * 重複時(-803)はUPDATEに切替 * - * プログラム分類: No.09 DB更新 * ***************************************************************** * 更新履歴 * *---------------------------------------------------------------* diff --git a/src/KYU03AGG.cbl b/src/KYU03AGG.cbl index b350a5d..0591d18 100644 --- a/src/KYU03AGG.cbl +++ b/src/KYU03AGG.cbl @@ -1,4 +1,4 @@ - IDENTIFICATION DIVISION. + IDENTIFICATION DIVISION. PROGRAM-ID. KYU03AGG. ***************************************************************** * システム名 : 給与計算システム * @@ -7,7 +7,6 @@ * 作成日 : 2026-07-01 * * 処理概要 : JCL SORT済み欠勤データを社員単位に集約 * * 同一社員内の欠勤時間・回数を集計 * - * プログラム分類: No.08 キーブレイク(集約) * ***************************************************************** * 更新履歴 * *---------------------------------------------------------------* diff --git a/src/KYU04CAL.cbl b/src/KYU04CAL.cbl index 4975826..685ea88 100644 --- a/src/KYU04CAL.cbl +++ b/src/KYU04CAL.cbl @@ -1,4 +1,4 @@ - IDENTIFICATION DIVISION. + IDENTIFICATION DIVISION. PROGRAM-ID. KYU04CAL. ***************************************************************** * システム名 : 給与計算システム * @@ -8,7 +8,6 @@ * 処理概要 : 欠勤集約 + EMP-MASTER + OVT-MONTHLY を * * 参照し給与計算を実行 * * 勤怠区分×手当種別の複合分岐はEVALUATE ALSO * - * プログラム分類: No.32 1:N+キーブレイク(同キー) * ***************************************************************** * 更新履歴 * *---------------------------------------------------------------* diff --git a/src/KYU05DED.cbl b/src/KYU05DED.cbl index 067b150..f6a8d2d 100644 --- a/src/KYU05DED.cbl +++ b/src/KYU05DED.cbl @@ -1,4 +1,4 @@ - IDENTIFICATION DIVISION. + IDENTIFICATION DIVISION. PROGRAM-ID. KYU05DED. ***************************************************************** * システム名 : 給与計算システム * @@ -9,7 +9,6 @@ * 社会保険料・住民税を計算しSALARY-NET出力 * * TAX-TABLE(DB2 SELECT ... BETWEEN) * * INSURANCE-TABLE(SEARCH ALL)を参照 * - * プログラム分類: No.23 SELECT条件 * ***************************************************************** * 更新履歴 * *---------------------------------------------------------------* diff --git a/src/KYU06UPD.cbl b/src/KYU06UPD.cbl index c2ace78..882560f 100644 --- a/src/KYU06UPD.cbl +++ b/src/KYU06UPD.cbl @@ -1,4 +1,4 @@ - IDENTIFICATION DIVISION. + IDENTIFICATION DIVISION. PROGRAM-ID. KYU06UPD. ***************************************************************** * システム名 : 給与計算システム * @@ -7,7 +7,6 @@ * 作成日 : 2026-07-01 * * 処理概要 : SALARY-NETをDB2 SALARY-RESULTSに登録 * * 重複時(-803)はUPDATEに切替 * - * プログラム分類: No.09 DB更新 * ***************************************************************** * 更新履歴 * *---------------------------------------------------------------* diff --git a/src/KYU07DIV.cbl b/src/KYU07DIV.cbl index f7119fe..15effc4 100644 --- a/src/KYU07DIV.cbl +++ b/src/KYU07DIV.cbl @@ -1,4 +1,4 @@ - IDENTIFICATION DIVISION. + IDENTIFICATION DIVISION. PROGRAM-ID. KYU07DIV. ***************************************************************** * システム名 : 給与計算システム * @@ -8,7 +8,6 @@ * 処理概要 : JCL SORT済SALARY-NETを部署コードに応じて * * 50ファイルに分割出力 * * 常に1ファイルのみOPEN * - * プログラム分類: No.10 50分割 * ***************************************************************** * 更新履歴 * *---------------------------------------------------------------* diff --git a/src/KYU08PRI.cbl b/src/KYU08PRI.cbl index 46e6c4d..d288def 100644 --- a/src/KYU08PRI.cbl +++ b/src/KYU08PRI.cbl @@ -1,4 +1,4 @@ - IDENTIFICATION DIVISION. + IDENTIFICATION DIVISION. PROGRAM-ID. KYU08PRI. ***************************************************************** * システム名 : 給与計算システム * @@ -7,7 +7,6 @@ * 作成日 : 2026-07-01 * * 処理概要 : JCL SORT済みSALARY-NETを給与明細(LINAGE) * * として印刷出力。1社員1ページ。 * - * プログラム分類: No.04 レイアウト編集のみ(GETPUT)+ LINAGE * ***************************************************************** * 更新履歴 * *---------------------------------------------------------------* diff --git a/src/KYU09MRG.cbl b/src/KYU09MRG.cbl index ff8a016..6b3f2e8 100644 --- a/src/KYU09MRG.cbl +++ b/src/KYU09MRG.cbl @@ -1,4 +1,4 @@ - IDENTIFICATION DIVISION. + IDENTIFICATION DIVISION. PROGRAM-ID. KYU09MRG. ***************************************************************** * システム名 : 給与計算システム * @@ -8,7 +8,6 @@ * 処理概要 : SALARY-NETとBONUS-DATAをMERGE文で * * 社員番号昇順に結合し、同一社員内の * * 給与(TYPE=S)と賞与(TYPE=B)を統合 * - * プログラム分類: No.35 MERGE(複数ファイル結合) * ***************************************************************** * 更新履歴 * *---------------------------------------------------------------* diff --git a/src/SHA01CVT.cbl b/src/SHA01CVT.cbl new file mode 100644 index 0000000..0b3fcdc --- /dev/null +++ b/src/SHA01CVT.cbl @@ -0,0 +1,482 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA01CVT. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA01CVT * + * プログラム名 : 被保険者資格データ変換処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : ASCII CSVの被保険者資格データをINSPECT * + * CONVERTINGでEBCDIC固定長に変換する * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT R01INNFIL ASSIGN TO EXTERNAL SHA01R01. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA01W01. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA01W02. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * R01: INS-CSV-ASCII(可変長CSV) * + ***************************************************************** + FD R01INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R01INNREC. + 03 R01-CSV-DATA PIC X(500). + * + ***************************************************************** + * W01: INSURED-DATA(200B FB via SHA01REC) * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA01REC REPLACING ==(A)== BY ==W01==. + * + ***************************************************************** + * W02: ERROR-LOG(VB) * + ***************************************************************** + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W02OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W02==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * コンスタント領域 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA01CVT'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + 03 CNS-YEAR-MONTH-PARM PIC X(006). + * + ***************************************************************** + * カウンタ領域 * + ***************************************************************** + 01 CUNARA. + 03 CUN-R01INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 作業領域 * + ***************************************************************** + 01 WRKARA. + 03 WRK-EOF PIC X(001). + 88 WRK-EOF-Y VALUE '1'. + 03 WRK-YEAR-MONTH PIC X(006). + 03 WRK-IDX PIC 9(004). + 03 WRK-CSV-FIELDS. + 05 WRK-C-EMP-ID PIC X(008). + 05 WRK-C-INSURED-NO PIC X(015). + 05 WRK-C-OFFICE-NO PIC X(006). + 05 WRK-C-INSURER-CODE PIC X(004). + 05 WRK-C-EMP-NAME PIC X(040). + 05 WRK-C-EMP-KANA PIC X(040). + 05 WRK-C-BIRTH-DATE PIC X(008). + 05 WRK-C-SEX PIC X(001). + 05 WRK-C-ENT-DATE PIC X(008). + 05 WRK-C-HEALTH-INS-TYPE + PIC X(001). + 05 WRK-C-PENSION-TYPE PIC X(001). + 05 WRK-C-STATUS PIC X(001). + 03 WRK-CONV-BEFORE PIC X(256). + 03 WRK-CONV-AFTER PIC X(256). + * + ***************************************************************** + * サブプログラム連絡領域 * + ***************************************************************** + COPY SHADATAC. + COPY SHAMSGAC. + COPY SHAENDAC. + COPY SHACHKAC. + * + PROCEDURE DIVISION. + ***************************************************************** + * サブモジュールNO: (0.0) * + * サブモジュール名: 制御処理 * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR + UNTIL WRK-EOF-Y. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * サブモジュールNO: (1.0) * + * サブモジュール名: 初期処理 * + ***************************************************************** + 1000ITTSOR SECTION. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE WRKARA. + * + *** PARM取得 + ACCEPT WRK-YEAR-MONTH + FROM COMMAND-LINE. + IF WRK-YEAR-MONTH = SPACES + MOVE '202605' TO WRK-YEAR-MONTH + END-IF. + * PARM NUM検証 + MOVE 'NUM' TO C01CHKTYP. + MOVE WRK-YEAR-MONTH TO C01CHKDAT. + CALL 'SUB04CHK' USING C01CHKPAR. + IF C01CHKRRC NOT = 0 + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'PARM(YEARMONTH)' TO M00UMKDATS22-01 + MOVE WRK-YEAR-MONTH TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + MOVE WRK-YEAR-MONTH TO CNS-YEAR-MONTH-PARM. + * + *** 運用日付取得 + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD NOT = ZERO + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + *** 変換テーブル初期化(同一マップ 開発用) + MOVE SPACES TO WRK-CONV-BEFORE. + MOVE SPACES TO WRK-CONV-AFTER. + PERFORM VARYING WRK-IDX + FROM 1 BY 1 + UNTIL WRK-IDX > 256 + MOVE FUNCTION CHAR + (WRK-IDX - 1) + TO WRK-CONV-BEFORE(WRK-IDX:1) + MOVE FUNCTION CHAR + (WRK-IDX - 1) + TO WRK-CONV-AFTER(WRK-IDX:1) + END-PERFORM. + * + OPEN INPUT R01INNFIL. + OPEN OUTPUT W01OUTFIL. + OPEN OUTPUT W02OUTFIL. + * + PERFORM 1100R01INNSOR. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.1) * + * サブモジュール名: R01読込処理 * + ***************************************************************** + 1100R01INNSOR SECTION. + * + READ R01INNFIL + AT END + SET WRK-EOF-Y TO TRUE + NOT AT END + ADD 1 TO CUN-R01INN + END-READ. + * + 1100R01INNSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.0) * + * サブモジュール名: 主処理 * + ***************************************************************** + 2000MAJSOR SECTION. + * + PERFORM 2010CSVSOR. + IF WRK-EOF-Y + EXIT SECTION + END-IF. + * + PERFORM 2020HALFSOR. + IF WRK-EOF-Y + EXIT SECTION + END-IF. + * + PERFORM 2030CNVSOR. + PERFORM 2040WRTSOR. + PERFORM 1100R01INNSOR. + * + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.1) * + * サブモジュール名: CSV分解処理 * + ***************************************************************** + 2010CSVSOR SECTION. + * + INITIALIZE WRK-CSV-FIELDS. + * + UNSTRING R01-CSV-DATA + DELIMITED BY ',' + INTO WRK-C-EMP-ID + WRK-C-INSURED-NO + WRK-C-OFFICE-NO + WRK-C-INSURER-CODE + WRK-C-EMP-NAME + WRK-C-EMP-KANA + WRK-C-BIRTH-DATE + WRK-C-SEX + WRK-C-ENT-DATE + WRK-C-HEALTH-INS-TYPE + WRK-C-PENSION-TYPE + WRK-C-STATUS + END-UNSTRING. + * + 2010CSVSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.2) * + * サブモジュール名: 半角桁数チェック * + ***************************************************************** + 2020HALFSOR SECTION. + * + *** 氏名カナ半角20桁以内チェック + IF WRK-C-EMP-KANA(21:) NOT = SPACES + MOVE '01' TO W02ERR-CATEGORY + STRING 'KANA OVER 20: ' + WRK-C-EMP-KANA + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + EXIT SECTION + END-IF. + * + *** 被保険者番号半角10桁以内チェック + IF WRK-C-INSURED-NO(11:) NOT = SPACES + MOVE '01' TO W02ERR-CATEGORY + STRING 'INSURED-NO OVER 10: ' + WRK-C-INSURED-NO + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + EXIT SECTION + END-IF. + * + *** 事業所番号半角4桁以内チェック + IF WRK-C-OFFICE-NO(5:) NOT = SPACES + MOVE '01' TO W02ERR-CATEGORY + STRING 'OFFICE-NO OVER 4: ' + WRK-C-OFFICE-NO + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + EXIT SECTION + END-IF. + * + *** 日付チェック(生年月日) + MOVE 'DATE' TO C01CHKTYP. + MOVE WRK-C-BIRTH-DATE TO C01CHKDAT. + CALL 'SUB04CHK' USING C01CHKPAR. + IF C01CHKRRC NOT = 0 + MOVE '01' TO W02ERR-CATEGORY + STRING 'BIRTH-DATE ERR: ' + WRK-C-BIRTH-DATE + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + EXIT SECTION + END-IF. + * + *** 日付チェック(資格取得日) + MOVE 'DATE' TO C01CHKTYP. + MOVE WRK-C-ENT-DATE TO C01CHKDAT. + CALL 'SUB04CHK' USING C01CHKPAR. + IF C01CHKRRC NOT = 0 + MOVE '01' TO W02ERR-CATEGORY + STRING 'ENT-DATE ERR: ' + WRK-C-ENT-DATE + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + EXIT SECTION + END-IF. + * + *** 数値チェック(社員番号) + MOVE 'NUMERIC' TO C01CHKTYP. + MOVE WRK-C-EMP-ID TO C01CHKDAT. + CALL 'SUB04CHK' USING C01CHKPAR. + IF C01CHKRRC NOT = 0 + MOVE '01' TO W02ERR-CATEGORY + STRING 'EMP-ID NUM ERR: ' + WRK-C-EMP-ID + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + EXIT SECTION + END-IF. + * + 2020HALFSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.3) * + * サブモジュール名: ASCII→EBCDIC変換処理 * + ***************************************************************** + 2030CNVSOR SECTION. + * + INSPECT WRK-C-EMP-ID + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-INSURED-NO + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-OFFICE-NO + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-INSURER-CODE + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-EMP-NAME + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-EMP-KANA + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-BIRTH-DATE + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-SEX + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-ENT-DATE + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-HEALTH-INS-TYPE + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-PENSION-TYPE + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + INSPECT WRK-C-STATUS + CONVERTING WRK-CONV-BEFORE TO WRK-CONV-AFTER. + * + 2030CNVSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.4) * + * サブモジュール名: W01出力処理 * + ***************************************************************** + 2040WRTSOR SECTION. + * + MOVE WRK-C-EMP-ID TO W01EMP-ID. + MOVE WRK-C-INSURED-NO TO W01INSURED-NO. + MOVE WRK-C-OFFICE-NO TO W01OFFICE-NO. + MOVE WRK-C-INSURER-CODE TO W01INSURER-CODE. + MOVE WRK-C-EMP-NAME TO W01EMP-NAME. + MOVE WRK-C-EMP-KANA TO W01EMP-KANA. + MOVE WRK-C-BIRTH-DATE TO W01BIRTH-DATE. + MOVE WRK-C-SEX TO W01SEX. + MOVE WRK-C-ENT-DATE TO W01ENT-DATE. + MOVE WRK-C-HEALTH-INS-TYPE TO W01HEALTH-INS-TYPE. + MOVE WRK-C-PENSION-TYPE TO W01PENSION-TYPE. + MOVE WRK-C-STATUS TO W01STATUS. + MOVE LOW-VALUES TO W01FILLER. + * + WRITE W01OUTREC. + ADD 1 TO CUN-W01OUT. + * + 2040WRTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (3.0) * + * サブモジュール名: 終了処理 * + ***************************************************************** + 3000STPSOR SECTION. + * + CLOSE R01INNFIL + W01OUTFIL + W02OUTFIL. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'SHA01R01' TO M00UMKDATS22-01. + MOVE CUN-R01INN TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA01W01' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA01W02' TO M00UMKDATS22-01. + MOVE CUN-W02OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (4.0) * + * サブモジュール名: メッセージ出力処理 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (9.9) * + * サブモジュール名: ABEND処理 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/src/SHA02MNC.cbl b/src/SHA02MNC.cbl new file mode 100644 index 0000000..9913fa2 --- /dev/null +++ b/src/SHA02MNC.cbl @@ -0,0 +1,447 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA02MNC. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA02MNC * + * プログラム名 : 従業員保険情報統合処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : DB2 EMP-MASTER従業員情報とINSURANCE-RATES * + * をマッチングし従業員単位に統合出力する * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA02W01. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA02W02. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * W01: EMP-INSURANCE(200B FB via SHA02REC) * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA02REC REPLACING ==(A)== BY ==W01==. + * + ***************************************************************** + * W02: ERROR-LOG(VB) * + ***************************************************************** + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W02OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W02==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * SQLCA * + ***************************************************************** + EXEC SQL INCLUDE SQLCA END-EXEC. + * + ***************************************************************** + * コンスタント領域 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA02MNC'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + 03 CNS-YEAR-MONTH-PARM PIC X(006). + * + ***************************************************************** + * カウンタ領域 * + ***************************************************************** + 01 CUNARA. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-DB-EMP PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 作業領域 * + ***************************************************************** + 01 WRKARA. + 03 WRK-EOF PIC X(001). + 88 WRK-EOF-Y VALUE '1'. + 03 WRK-YEAR-MONTH PIC X(006). + 03 WRK-IDX PIC 9(004). + 03 WRK-RATE-COUNT PIC 9(003) VALUE ZERO. + 03 WRK-RATE-TBL. + 05 WRK-RATE-ENTRY OCCURS 100 + INDEXED BY WRK-RATE-IDX. + 07 WRK-GRADE-CODE PIC X(002). + 07 WRK-MONTHLY-FROM PIC 9(009). + 07 WRK-MONTHLY-TO PIC 9(009). + 07 WRK-HEALTH-RATE PIC 9(001)V9(006). + 07 WRK-PENSION-RATE PIC 9(001)V9(006). + * + ***************************************************************** + * DB2ホスト変数 * + ***************************************************************** + 01 DBVARA. + 03 DBV-EMP-ID PIC X(008). + 03 DBV-EMP-NAME PIC X(040). + 03 DBV-DEPT-CODE PIC X(002). + 03 DBV-BASE-SALARY PIC 9(009). + 03 DBV-GRADE-CODE PIC X(002). + 03 DBV-MONTHLY-FROM PIC 9(009). + 03 DBV-MONTHLY-TO PIC 9(009). + 03 DBV-HEALTH-RATE PIC 9(001)V9(006). + 03 DBV-PENSION-RATE PIC 9(001)V9(006). + * + ***************************************************************** + * サブプログラム連絡領域 * + ***************************************************************** + COPY SHADATAC. + COPY SHAMSGAC. + COPY SHAENDAC. + COPY SHACHKAC. + * + PROCEDURE DIVISION. + ***************************************************************** + * サブモジュールNO: (0.0) * + * サブモジュール名: 制御処理 * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR + UNTIL WRK-EOF-Y. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * サブモジュールNO: (1.0) * + * サブモジュール名: 初期処理 * + ***************************************************************** + 1000ITTSOR SECTION. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE WRKARA. + INITIALIZE CUNARA. + * + *** PARM取得 + ACCEPT WRK-YEAR-MONTH + FROM COMMAND-LINE. + IF WRK-YEAR-MONTH = SPACES + MOVE '202605' TO WRK-YEAR-MONTH + END-IF. + * PARM NUM検証 + MOVE 'NUM' TO C01CHKTYP. + MOVE WRK-YEAR-MONTH TO C01CHKDAT. + CALL 'SUB04CHK' USING C01CHKPAR. + IF C01CHKRRC NOT = 0 + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'PARM(YEARMONTH)' TO M00UMKDATS22-01 + MOVE WRK-YEAR-MONTH TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + MOVE WRK-YEAR-MONTH TO CNS-YEAR-MONTH-PARM. + * + *** 運用日付取得 + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD NOT = ZERO + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + *** DB接続 + EXEC SQL + CONNECT TO 'data/INSURANCEDB.db' + END-EXEC. + IF SQLCODE NOT = 0 + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'DB-CONNECT' TO M00UMKDATS22-01 + MOVE SQLCODE TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + *** INSURANCE-RATES内部表LOAD + PERFORM 1200RATELDASOR. + * + *** EMP-MASTERカーソル宣言 + EXEC SQL + DECLARE C2 CURSOR FOR + SELECT EMP-ID, EMP-NAME, DEPT-CODE, + BASE-SALARY + FROM SALARYDB.EMP-MASTER + ORDER BY EMP-ID + END-EXEC. + * + *** EMP-MASTERカーソルOPEN + EXEC SQL + OPEN C2 + END-EXEC. + IF SQLCODE NOT = 0 + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'EMP-OPEN' TO M00UMKDATS22-01 + MOVE SQLCODE TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + OPEN OUTPUT W01OUTFIL. + OPEN OUTPUT W02OUTFIL. + * + *** 初回FETCH + PERFORM 1300EMPFETCSOR. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.1) * + * サブモジュール名: RATES内部表LOAD * + ***************************************************************** + 1200RATELDASOR SECTION. + * + MOVE 1 TO WRK-IDX. + MOVE ZERO TO WRK-RATE-COUNT. + * + EXEC SQL + DECLARE C1 CURSOR FOR + SELECT GRADE-CODE, MONTHLY-FROM, MONTHLY-TO, + HEALTH-RATE, PENSION-RATE + FROM INSURANCE-RATES + WHERE EFFECTIVE-FROM <= :WRK-YEAR-MONTH + AND EFFECTIVE-TO >= :WRK-YEAR-MONTH + ORDER BY GRADE-CODE + END-EXEC. + * + EXEC SQL + OPEN C1 + END-EXEC. + IF SQLCODE NOT = 0 + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'RATES-OPEN' TO M00UMKDATS22-01 + MOVE SQLCODE TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + PERFORM UNTIL SQLCODE NOT = 0 + EXEC SQL + FETCH C1 + INTO :DBV-GRADE-CODE, + :DBV-MONTHLY-FROM, + :DBV-MONTHLY-TO, + :DBV-HEALTH-RATE, + :DBV-PENSION-RATE + END-EXEC + IF SQLCODE = 0 + MOVE DBV-GRADE-CODE + TO WRK-GRADE-CODE(WRK-IDX) + MOVE DBV-MONTHLY-FROM + TO WRK-MONTHLY-FROM(WRK-IDX) + MOVE DBV-MONTHLY-TO + TO WRK-MONTHLY-TO(WRK-IDX) + MOVE DBV-HEALTH-RATE + TO WRK-HEALTH-RATE(WRK-IDX) + MOVE DBV-PENSION-RATE + TO WRK-PENSION-RATE(WRK-IDX) + ADD 1 TO WRK-IDX + ADD 1 TO WRK-RATE-COUNT + END-IF + END-PERFORM. + * + EXEC SQL + CLOSE C1 + END-EXEC. + * + 1200RATELDASOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.2) * + * サブモジュール名: EMP-MASTER FETCH処理 * + ***************************************************************** + 1300EMPFETCSOR SECTION. + * + EXEC SQL + FETCH C2 + INTO :DBV-EMP-ID, + :DBV-EMP-NAME, + :DBV-DEPT-CODE, + :DBV-BASE-SALARY + END-EXEC. + * + IF SQLCODE = 0 + ADD 1 TO CUN-DB-EMP + ELSE + SET WRK-EOF-Y TO TRUE + END-IF. + * + 1300EMPFETCSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.0) * + * サブモジュール名: 主処理 * + ***************************************************************** + 2000MAJSOR SECTION. + * + *** SEARCHで該当GRADE-CODEを特定 + SET WRK-RATE-IDX TO 1. + SEARCH WRK-RATE-ENTRY + AT END + MOVE '01' TO W02ERR-CATEGORY + STRING 'NO MATCH GRADE: ' + DBV-EMP-ID + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + PERFORM 1300EMPFETCSOR + EXIT SECTION + WHEN WRK-MONTHLY-FROM(WRK-RATE-IDX) + <= DBV-BASE-SALARY + AND WRK-MONTHLY-TO(WRK-RATE-IDX) + >= DBV-BASE-SALARY + CONTINUE + END-SEARCH. + * + *** 種別判定(DEPT-CODE) + EVALUATE DBV-DEPT-CODE + WHEN 1 THRU 10 + MOVE '1' TO W01HEALTH-INS-TYPE + MOVE '1' TO W01PENSION-TYPE + MOVE '0001' TO W01INSURER-CODE + WHEN 11 THRU 20 + MOVE '2' TO W01HEALTH-INS-TYPE + MOVE '1' TO W01PENSION-TYPE + MOVE '0002' TO W01INSURER-CODE + WHEN 21 THRU 30 + MOVE '1' TO W01HEALTH-INS-TYPE + MOVE '2' TO W01PENSION-TYPE + MOVE '0003' TO W01INSURER-CODE + WHEN OTHER + MOVE '9' TO W01HEALTH-INS-TYPE + MOVE '9' TO W01PENSION-TYPE + MOVE '0009' TO W01INSURER-CODE + END-EVALUATE. + * + *** 出力レコード編集 + MOVE DBV-EMP-ID TO W01EMP-ID. + MOVE DBV-EMP-NAME TO W01EMP-NAME. + MOVE DBV-DEPT-CODE TO W01DEPT-CODE. + MOVE DBV-BASE-SALARY TO W01BASE-SALARY. + MOVE WRK-MONTHLY-FROM( + WRK-RATE-IDX) TO W01MONTHLY-AMOUNT. + MOVE WRK-GRADE-CODE( + WRK-RATE-IDX) TO W01GRADE-CODE. + MOVE LOW-VALUES TO W01FILLER. + * + WRITE W01OUTREC. + ADD 1 TO CUN-W01OUT. + * + *** 次従業員FETCH + PERFORM 1300EMPFETCSOR. + * + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (3.0) * + * サブモジュール名: 終了処理 * + ***************************************************************** + 3000STPSOR SECTION. + * + EXEC SQL + CLOSE C2 + END-EXEC. + * + CLOSE W01OUTFIL + W02OUTFIL. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'EMP-MASTER' TO M00UMKDATS22-01. + MOVE CUN-DB-EMP TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA02W01' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA02W02' TO M00UMKDATS22-01. + MOVE CUN-W02OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (4.0) * + * サブモジュール名: メッセージ出力処理 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (9.9) * + * サブモジュール名: ABEND処理 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/src/SHA03MNP.cbl b/src/SHA03MNP.cbl new file mode 100644 index 0000000..65b7d52 --- /dev/null +++ b/src/SHA03MNP.cbl @@ -0,0 +1,409 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA03MNP. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA03MNP * + * プログラム名 : 保険料計算明細出力処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : EMP-INSURANCE × INSURANCE-RATESの直積組合せ * + * により保険料計算明細を出力する * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT R01INNFIL ASSIGN TO EXTERNAL SHA03R01. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA03W01. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA03W02. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * R01: EMP-INSURANCE(200B FB via SHA02REC) * + ***************************************************************** + FD R01INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R01INNREC. + COPY SHA02REC REPLACING ==(A)== BY ==R01==. + * + ***************************************************************** + * W01: INS-DETAIL(300B FB via SHA03REC) * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA03REC REPLACING ==(A)== BY ==W01==. + * + ***************************************************************** + * W02: ERROR-LOG(VB) * + ***************************************************************** + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W02OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W02==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * SQLCA * + ***************************************************************** + EXEC SQL INCLUDE SQLCA END-EXEC. + * + ***************************************************************** + * コンスタント領域 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA03MNP'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + 03 CNS-YEAR-MONTH-PARM PIC X(006). + * + ***************************************************************** + * カウンタ領域 * + ***************************************************************** + 01 CUNARA. + 03 CUN-R01INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 作業領域 * + ***************************************************************** + 01 WRKARA. + 03 WRK-EOF PIC X(001). + 88 WRK-EOF-Y VALUE '1'. + 03 WRK-YEAR-MONTH PIC X(006). + 03 WRK-IDX PIC 9(004). + 03 WRK-RATE-COUNT PIC 9(003) VALUE ZERO. + 03 WRK-INS-TYPE-IDX PIC 9(001) VALUE ZERO. + 03 WRK-RATE-TBL. + 05 WRK-RATE-ENTRY OCCURS 100 + INDEXED BY WRK-RATE-IDX. + 07 WRK-GRADE-CODE PIC X(002). + 07 WRK-MONTHLY-FROM PIC 9(009). + 07 WRK-MONTHLY-TO PIC 9(009). + 07 WRK-HEALTH-RATE PIC 9(001)V9(006). + 07 WRK-PENSION-RATE PIC 9(001)V9(006). + 03 WRK-HEALTH-PREMIUM PIC 9(009). + 03 WRK-PENSION-PREMIUM PIC 9(009). + * + ***************************************************************** + * DB2ホスト変数 * + ***************************************************************** + 01 DBVARA. + 03 DBV-GRADE-CODE PIC X(002). + 03 DBV-MONTHLY-FROM PIC 9(009). + 03 DBV-MONTHLY-TO PIC 9(009). + 03 DBV-HEALTH-RATE PIC 9(001)V9(006). + 03 DBV-PENSION-RATE PIC 9(001)V9(006). + * + ***************************************************************** + * サブプログラム連絡領域 * + ***************************************************************** + COPY SHADATAC. + COPY SHAMSGAC. + COPY SHAENDAC. + * + PROCEDURE DIVISION. + ***************************************************************** + * サブモジュールNO: (0.0) * + * サブモジュール名: 制御処理 * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR + UNTIL WRK-EOF-Y. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * サブモジュールNO: (1.0) * + * サブモジュール名: 初期処理 * + ***************************************************************** + 1000ITTSOR SECTION. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE WRKARA. + INITIALIZE CUNARA. + * + *** PARM取得 + ACCEPT WRK-YEAR-MONTH + FROM COMMAND-LINE. + IF WRK-YEAR-MONTH = SPACES + MOVE '202605' TO WRK-YEAR-MONTH + END-IF. + MOVE WRK-YEAR-MONTH TO CNS-YEAR-MONTH-PARM. + * + *** 運用日付取得 + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD NOT = ZERO + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + *** DB接続 + EXEC SQL + CONNECT TO 'data/INSURANCEDB.db' + END-EXEC. + IF SQLCODE NOT = 0 + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'DB-CONNECT' TO M00UMKDATS22-01 + MOVE SQLCODE TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + *** INSURANCE-RATES内部表LOAD + PERFORM 1200RATELDASOR. + * + OPEN INPUT R01INNFIL. + OPEN OUTPUT W01OUTFIL. + OPEN OUTPUT W02OUTFIL. + * + PERFORM 1300R01INNSOR. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.1) * + * サブモジュール名: RATES内部表LOAD * + ***************************************************************** + 1200RATELDASOR SECTION. + * + MOVE 1 TO WRK-IDX. + MOVE ZERO TO WRK-RATE-COUNT. + * + EXEC SQL + DECLARE C1 CURSOR FOR + SELECT GRADE-CODE, MONTHLY-FROM, MONTHLY-TO, + HEALTH-RATE, PENSION-RATE + FROM INSURANCE-RATES + WHERE EFFECTIVE-FROM <= :WRK-YEAR-MONTH + AND EFFECTIVE-TO >= :WRK-YEAR-MONTH + ORDER BY GRADE-CODE + END-EXEC. + * + EXEC SQL + OPEN C1 + END-EXEC. + IF SQLCODE NOT = 0 + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'RATES-OPEN' TO M00UMKDATS22-01 + MOVE SQLCODE TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + PERFORM UNTIL SQLCODE NOT = 0 + EXEC SQL + FETCH C1 + INTO :DBV-GRADE-CODE, + :DBV-MONTHLY-FROM, + :DBV-MONTHLY-TO, + :DBV-HEALTH-RATE, + :DBV-PENSION-RATE + END-EXEC + IF SQLCODE = 0 + MOVE DBV-GRADE-CODE + TO WRK-GRADE-CODE(WRK-IDX) + MOVE DBV-MONTHLY-FROM + TO WRK-MONTHLY-FROM(WRK-IDX) + MOVE DBV-MONTHLY-TO + TO WRK-MONTHLY-TO(WRK-IDX) + MOVE DBV-HEALTH-RATE + TO WRK-HEALTH-RATE(WRK-IDX) + MOVE DBV-PENSION-RATE + TO WRK-PENSION-RATE(WRK-IDX) + ADD 1 TO WRK-IDX + ADD 1 TO WRK-RATE-COUNT + END-IF + END-PERFORM. + * + EXEC SQL + CLOSE C1 + END-EXEC. + * + 1200RATELDASOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.2) * + * サブモジュール名: R01読込処理 * + ***************************************************************** + 1300R01INNSOR SECTION. + * + READ R01INNFIL + AT END + SET WRK-EOF-Y TO TRUE + NOT AT END + ADD 1 TO CUN-R01INN + END-READ. + * + 1300R01INNSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.0) * + * サブモジュール名: 主処理 * + ***************************************************************** + 2000MAJSOR SECTION. + MOVE 1 TO WRK-IDX. + PERFORM UNTIL WRK-IDX > WRK-RATE-COUNT + MOVE R01EMP-ID TO W01EMP-ID + MOVE R01EMP-NAME TO W01EMP-NAME + MOVE '1' TO W01INSURANCE-TYPE + MOVE WRK-GRADE-CODE(WRK-IDX) + TO W01GRADE-CODE + MOVE R01MONTHLY-AMOUNT TO W01MONTHLY-AMOUNT + MOVE WRK-HEALTH-RATE(WRK-IDX) + TO W01HEALTH-RATE + MOVE WRK-PENSION-RATE(WRK-IDX) + TO W01PENSION-RATE + MULTIPLY R01MONTHLY-AMOUNT + BY WRK-HEALTH-RATE(WRK-IDX) + GIVING WRK-HEALTH-PREMIUM ROUNDED + MOVE ZERO TO WRK-PENSION-PREMIUM + MOVE WRK-HEALTH-PREMIUM TO W01HEALTH-PREMIUM + MOVE WRK-PENSION-PREMIUM TO W01PENSION-PREMIUM + MOVE LOW-VALUES TO W01FILLER + WRITE W01OUTREC + ADD 1 TO CUN-W01OUT + MOVE R01EMP-ID TO W01EMP-ID + MOVE R01EMP-NAME TO W01EMP-NAME + MOVE '2' TO W01INSURANCE-TYPE + MOVE WRK-GRADE-CODE(WRK-IDX) + TO W01GRADE-CODE + MOVE R01MONTHLY-AMOUNT TO W01MONTHLY-AMOUNT + MOVE WRK-HEALTH-RATE(WRK-IDX) + TO W01HEALTH-RATE + MOVE WRK-PENSION-RATE(WRK-IDX) + TO W01PENSION-RATE + MOVE ZERO TO WRK-HEALTH-PREMIUM + MULTIPLY R01MONTHLY-AMOUNT + BY WRK-PENSION-RATE(WRK-IDX) + GIVING WRK-PENSION-PREMIUM ROUNDED + MOVE WRK-HEALTH-PREMIUM TO W01HEALTH-PREMIUM + MOVE WRK-PENSION-PREMIUM TO W01PENSION-PREMIUM + MOVE LOW-VALUES TO W01FILLER + WRITE W01OUTREC + ADD 1 TO CUN-W01OUT + ADD 1 TO WRK-IDX + END-PERFORM. + PERFORM 1300R01INNSOR. + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.9) * + * サブモジュール名: エラー出力処理 * + ***************************************************************** + 2100ERROUTSOR SECTION. + * + WRITE W02OUTREC. + ADD 1 TO CUN-W02OUT. + * + 2100ERROUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (3.0) * + * サブモジュール名: 終了処理 * + ***************************************************************** + 3000STPSOR SECTION. + * + CLOSE R01INNFIL + W01OUTFIL + W02OUTFIL. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'SHA03R01' TO M00UMKDATS22-01. + MOVE CUN-R01INN TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA03W01' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA03W02' TO M00UMKDATS22-01. + MOVE CUN-W02OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (4.0) * + * サブモジュール名: メッセージ出力処理 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (9.9) * + * サブモジュール名: ABEND処理 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/src/SHA04TWO.cbl b/src/SHA04TWO.cbl new file mode 100644 index 0000000..aaa3979 --- /dev/null +++ b/src/SHA04TWO.cbl @@ -0,0 +1,543 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA04TWO IS INITIAL. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA04TWO * + * プログラム名 : 事業所保険者マッチング処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : INSURED-DATAをOFFICE-MST/INSURER-MSTの * + * 2段階で1:1マッチングし、GRADED-LIST/ * + * UNMATCHED-LISTを出力する * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT R01INNFIL ASSIGN TO EXTERNAL SHA04R01. + SELECT R02INNFIL ASSIGN TO EXTERNAL SHA04R02. + SELECT R03INNFIL ASSIGN TO EXTERNAL SHA04R03. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA04W01. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA04W02. + SELECT W03OUTFIL ASSIGN TO EXTERNAL SHA04W03. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * R01: INSURED-DATA(200B FB SHA01CVT出力) * + ***************************************************************** + FD R01INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R01INNREC. + COPY SHA01REC REPLACING ==(A)== BY ==R01==. + * + ***************************************************************** + * R02: OFFICE-MST(80B FB 自前レイアウト) * + ***************************************************************** + FD R02INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R02INNREC. + 03 R02OFFICE-NO PIC X(004). + 03 R02OFFICE-NAME PIC X(040). + 03 R02PREF-CODE PIC 9(002). + 03 R02FILLER PIC X(034). + * + ***************************************************************** + * R03: INSURER-MST(80B FB 自前レイアウト) * + ***************************************************************** + FD R03INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R03INNREC. + 03 R03INSURER-CODE PIC X(004). + 03 R03INSURER-NAME PIC X(060). + 03 R03FILLER PIC X(016). + * + ***************************************************************** + * W01: GRADED-LIST(200B FB SHA04REC) * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA04REC REPLACING ==(A)== BY ==W01==. + * + ***************************************************************** + * W02: UNMATCHED-LIST(200B FB 自前レイアウト) * + ***************************************************************** + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W02OUTREC. + 03 W02EMP-ID PIC 9(008). + 03 W02EMP-NAME PIC X(040). + 03 W02OFFICE-NO PIC X(004). + 03 W02OFFICE-NAME PIC X(040). + 03 W02PREF-CODE PIC 9(002). + 03 W02INSURER-CODE PIC X(004). + 03 W02INSURER-NAME PIC X(060). + 03 W02STATUS PIC X(001). + 03 W02FILLER PIC X(041). + * + ***************************************************************** + * W03: ERROR-LOG(VB) * + ***************************************************************** + FD W03OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W03OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W03==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * SQLCA * + ***************************************************************** + EXEC SQL INCLUDE SQLCA END-EXEC. + * + ***************************************************************** + * コンスタント領域 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA04TWO'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + * + ***************************************************************** + * カウンタ領域 * + ***************************************************************** + 01 CUNARA. + 03 CUN-R01INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-R02INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-R03INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W03OUT PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 作業領域 * + ***************************************************************** + 01 WRKARA. + 03 WRK-EOF PIC X(001). + 88 WRK-EOF-Y VALUE '1'. + 03 WRK-SQLCODE PIC S9(009) COMP. + 03 WRK-STAGE1-FLG PIC X(001). + 88 WRK-STAGE1-FOUND VALUE 'Y'. + 03 WRK-STAGE2-FLG PIC X(001). + 88 WRK-STAGE2-FOUND VALUE 'Y'. + 03 WRK-I PIC 9(004) COMP. + 03 WRK-J PIC 9(004) COMP. + 03 WRK-R02-EOF PIC X(001). + 88 R02-EOF-Y VALUE '1'. + 03 WRK-R03-EOF PIC X(001). + 88 R03-EOF-Y VALUE '1'. + 03 WS-DISP-INT PIC S9(009). + * + ***************************************************************** + * DB2ホスト変数 * + ***************************************************************** + 01 DBVARA. + 03 DBV-EMP-ID PIC X(008). + 03 DBV-INSURED-NO PIC X(010). + 03 DBV-STATUS PIC X(001). + * + ***************************************************************** + * 事業所マスタ内部テーブル * + ***************************************************************** + 01 OFFICE-TBL. + 03 OFFICE-ENTRY OCCURS 100. + 05 TBL-OFFICE-NO PIC X(004). + 05 TBL-OFFICE-NAME PIC X(040). + 05 TBL-PREF-CODE PIC 9(002). + 05 TBL-FILLER PIC X(034). + 01 OFFICE-COUNT PIC 9(004) VALUE ZERO. + * + ***************************************************************** + * 保険者マスタ内部テーブル * + ***************************************************************** + 01 INSURER-TBL. + 03 INSURER-ENTRY OCCURS 100. + 05 TBL-INSURER-CODE PIC X(004). + 05 TBL-INSURER-NAME PIC X(060). + 05 TBL-FILLER PIC X(016). + 01 INSURER-COUNT PIC 9(004) VALUE ZERO. + * + ***************************************************************** + * サブプログラム連絡領域 * + ***************************************************************** + COPY SHAMSGAC. + COPY SHAENDAC. + COPY SHADATAC. + * + PROCEDURE DIVISION. + ***************************************************************** + * サブモジュールNO: (0.0) * + * サブモジュール名: 制御処理 * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR + UNTIL WRK-EOF-Y. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * サブモジュールNO: (1.0) * + * サブモジュール名: 初期処理 * + ***************************************************************** + 1000ITTSOR SECTION. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE WRKARA. + * + INITIALIZE D01UBSPAR. + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD NOT = ZERO + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + OPEN INPUT R01INNFIL + R02INNFIL + R03INNFIL. + OPEN OUTPUT W01OUTFIL + W02OUTFIL + W03OUTFIL. + * + *** DB接続 + EXEC SQL + CONNECT TO 'data/INSURANCEDB.db' + END-EXEC. + * + MOVE 0 TO WS-DISP-INT. + * + *** 事業所マスタ全件読込 + PERFORM 1110R02LDASOR + UNTIL R02-EOF-Y. + * + *** 保険者マスタ全件読込 + PERFORM 1120R03LDASOR + UNTIL R03-EOF-Y. + * + PERFORM 1100R01INNSOR. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.1) * + * サブモジュール名: R01読込処理 * + ***************************************************************** + 1100R01INNSOR SECTION. + * + READ R01INNFIL + AT END + SET WRK-EOF-Y TO TRUE + NOT AT END + ADD 1 TO CUN-R01INN + END-READ. + * + 1100R01INNSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.2) * + * サブモジュール名: R02読込処理(全件→内部テーブル) * + ***************************************************************** + 1110R02LDASOR SECTION. + * + READ R02INNFIL + AT END + SET R02-EOF-Y TO TRUE + NOT AT END + ADD 1 TO CUN-R02INN + ADD 1 TO OFFICE-COUNT + MOVE R02OFFICE-NO TO + TBL-OFFICE-NO (OFFICE-COUNT) + MOVE R02OFFICE-NAME TO + TBL-OFFICE-NAME (OFFICE-COUNT) + MOVE R02PREF-CODE TO + TBL-PREF-CODE (OFFICE-COUNT) + END-READ. + * + 1110R02LDASOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.3) * + * サブモジュール名: R03読込処理(全件→内部テーブル) * + ***************************************************************** + 1120R03LDASOR SECTION. + * + READ R03INNFIL + AT END + SET R03-EOF-Y TO TRUE + NOT AT END + ADD 1 TO CUN-R03INN + ADD 1 TO INSURER-COUNT + MOVE R03INSURER-CODE TO + TBL-INSURER-CODE (INSURER-COUNT) + MOVE R03INSURER-NAME TO + TBL-INSURER-NAME (INSURER-COUNT) + END-READ. + * + 1120R03LDASOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.0) * + * サブモジュール名: 主処理 * + ***************************************************************** + 2000MAJSOR SECTION. + * + MOVE 'N' TO WRK-STAGE1-FLG. + MOVE 'N' TO WRK-STAGE2-FLG. + * + PERFORM 2010STG1SOR. + * + IF WRK-STAGE1-FOUND + PERFORM 2020STG2SOR + END-IF. + * + IF WRK-STAGE1-FOUND + AND WRK-STAGE2-FOUND + PERFORM 2030W01OUTSOR + ELSE + PERFORM 2040W02OUTSOR + END-IF. + * + PERFORM 1100R01INNSOR. + * + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.1) * + * サブモジュール名: 第1段階マッチング(OFFICE-NO) * + ***************************************************************** + 2010STG1SOR SECTION. + * + PERFORM VARYING WRK-I FROM 1 BY 1 + UNTIL WRK-I > OFFICE-COUNT + OR WRK-STAGE1-FOUND + IF R01OFFICE-NO = + TBL-OFFICE-NO (WRK-I) + SET WRK-STAGE1-FOUND TO TRUE + END-IF + END-PERFORM. + * + 2010STG1SOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.2) * + * サブモジュール名: 第2段階マッチング(INSURER-CODE) * + ***************************************************************** + 2020STG2SOR SECTION. + * + PERFORM VARYING WRK-J FROM 1 BY 1 + UNTIL WRK-J > INSURER-COUNT + OR WRK-STAGE2-FOUND + IF R01INSURER-CODE = + TBL-INSURER-CODE (WRK-J) + SET WRK-STAGE2-FOUND TO TRUE + END-IF + END-PERFORM. + * + 2020STG2SOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.3) * + * サブモジュール名: GRADED-LIST出力 * + ***************************************************************** + 2030W01OUTSOR SECTION. + * + INITIALIZE W01OUTREC. + * + MOVE R01EMP-ID TO W01EMP-ID. + MOVE R01EMP-NAME TO W01EMP-NAME. + MOVE R01OFFICE-NO TO W01OFFICE-NO. + MOVE TBL-OFFICE-NAME (WRK-I) TO W01OFFICE-NAME. + MOVE TBL-PREF-CODE (WRK-I) TO W01PREF-CODE. + MOVE R01INSURER-CODE TO W01INSURER-CODE. + MOVE TBL-INSURER-NAME (WRK-J) + TO W01INSURER-NAME. + * + WRITE W01OUTREC. + ADD 1 TO CUN-W01OUT. + * + *** DB2整合性検証 + MOVE R01EMP-ID TO DBV-EMP-ID. + MOVE R01INSURED-NO TO DBV-INSURED-NO. + * + EXEC SQL + SELECT STATUS + INTO :DBV-STATUS + FROM INSURED-MASTER + WHERE EMP-ID = :DBV-EMP-ID + AND INSURED-NO = :DBV-INSURED-NO + END-EXEC. + * + IF SQLCODE NOT = 0 + MOVE 01 TO W03ERR-CATEGORY + MOVE SQLCODE TO WS-DISP-INT + STRING + DBV-EMP-ID + ' SQLCODE=' + WS-DISP-INT + INTO W03ERR-DETAIL + END-STRING + WRITE W03OUTREC + ADD 1 TO CUN-W03OUT + END-IF. + * + 2030W01OUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.4) * + * サブモジュール名: UNMATCHED-LIST出力 * + ***************************************************************** + 2040W02OUTSOR SECTION. + * + INITIALIZE W02OUTREC. + * + MOVE R01EMP-ID TO W02EMP-ID. + MOVE R01EMP-NAME TO W02EMP-NAME. + MOVE R01OFFICE-NO TO W02OFFICE-NO. + MOVE R01INSURER-CODE TO W02INSURER-CODE. + * + IF WRK-STAGE1-FOUND + MOVE TBL-OFFICE-NAME (WRK-I) + TO W02OFFICE-NAME + MOVE TBL-PREF-CODE (WRK-I) + TO W02PREF-CODE + END-IF. + * + IF WRK-STAGE2-FOUND + MOVE TBL-INSURER-NAME (WRK-J) + TO W02INSURER-NAME + END-IF. + * + IF NOT WRK-STAGE1-FOUND + MOVE '1' TO W02STATUS + ELSE + MOVE '2' TO W02STATUS + END-IF. + * + WRITE W02OUTREC. + ADD 1 TO CUN-W02OUT. + * + 2040W02OUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (3.0) * + * サブモジュール名: 終了処理 * + ***************************************************************** + 3000STPSOR SECTION. + * + CLOSE R01INNFIL + R02INNFIL + R03INNFIL + W01OUTFIL + W02OUTFIL + W03OUTFIL. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'SHA04R01' TO M00UMKDATS22-01. + MOVE CUN-R01INN TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA04W01' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA04W02' TO M00UMKDATS22-01. + MOVE CUN-W02OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA04W03' TO M00UMKDATS22-01. + MOVE CUN-W03OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (4.0) * + * サブモジュール名: メッセージ出力処理 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (9.9) * + * サブモジュール名: ABEND処理 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/src/SHA05TWN.cbl b/src/SHA05TWN.cbl new file mode 100644 index 0000000..01d8d33 --- /dev/null +++ b/src/SHA05TWN.cbl @@ -0,0 +1,459 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA05TWN. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA05TWN * + * プログラム名 : 標準報酬月額等級判定処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : SALARY-MONTHLYをEMP-IDでN:1キーブレイク * + * 集約し、平均標準報酬月額とGRADE-TBLを * + * N:1マッチングして等級改定を判定する * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT R01INNFIL ASSIGN TO EXTERNAL SHA05R01. + SELECT R02INNFIL ASSIGN TO EXTERNAL SHA05R02. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA05W01. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA05W02. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * R01: SALARY-MONTHLY(200B FB 自前レイアウト) * + ***************************************************************** + FD R01INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R01INNREC. + 03 R01EMP-ID PIC 9(008). + 03 R01EMP-NAME PIC X(040). + 03 R01YEAR-MONTH PIC 9(006). + 03 R01MONTHLY-AMOUNT PIC 9(009). + 03 R01FILLER PIC X(137). + * + ***************************************************************** + * R02: GRADE-TBL(80B FB 自前レイアウト) * + ***************************************************************** + FD R02INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R02INNREC. + 03 R02GRADE-CODE PIC 9(002). + 03 R02MONTHLY-FROM PIC 9(009). + 03 R02MONTHLY-TO PIC 9(009). + 03 R02FILLER PIC X(060). + * + ***************************************************************** + * W01: REVISED-GRADE(200B FB SHA05REC) * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA05REC REPLACING ==(A)== BY ==W01==. + * + ***************************************************************** + * W02: ERROR-LOG(VB) * + ***************************************************************** + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W02OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W02==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * コンスタント領域 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA05TWN'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + 03 CNS-DEFAULT-YM PIC X(006) VALUE '202607'. + * + ***************************************************************** + * カウンタ領域 * + ***************************************************************** + 01 CUNARA. + 03 CUN-R01INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-R02INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 作業領域 * + ***************************************************************** + 01 WRKARA. + 03 WRK-EOF PIC X(001). + 88 WRK-EOF-Y VALUE '1'. + 03 WRK-R02-EOF PIC X(001). + 88 WRK-R02-EOF-Y VALUE '1'. + 03 WRK-FIRST-FLG PIC X(001). + 88 WRK-FIRST-REC VALUE '1'. + 03 WRK-PREV-EMP-ID PIC 9(008). + 03 WRK-EMP-NAME PIC X(040). + 03 WRK-YEAR-MONTH PIC X(006). + 03 WRK-TOTAL PIC 9(018) COMP-3. + 03 WRK-COUNT PIC 9(004) COMP-3. + 03 WRK-AVG PIC 9(009). + 03 WRK-REM PIC 9(009). + 03 WRK-REVISED-TYPE PIC X(001). + 03 WRK-I PIC 9(004) COMP. + 03 WRK-GRADE-FOUND PIC X(001). + 88 WRK-GRADE-FOUND-Y VALUE 'Y'. + 03 WRK-NEW-GRADE PIC 9(002). + 03 WRK-OLD-GRADE PIC 9(002). + 03 WS-DISP-INT PIC S9(009). + * + ***************************************************************** + * 等級テーブル(内部テーブル) * + ***************************************************************** + 01 GRADE-TBL. + 03 GRADE-ENTRY OCCURS 50. + 05 TBL-GRADE-CODE PIC 9(002). + 05 TBL-MONTHLY-FROM PIC 9(009). + 05 TBL-MONTHLY-TO PIC 9(009). + 05 TBL-FILLER PIC X(060). + 01 GRADE-COUNT PIC 9(004) VALUE ZERO. + * + ***************************************************************** + * サブプログラム連絡領域 * + ***************************************************************** + COPY SHAMSGAC. + COPY SHAENDAC. + COPY SHADATAC. + * + PROCEDURE DIVISION. + ***************************************************************** + * サブモジュールNO: (0.0) * + * サブモジュール名: 制御処理 * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR + UNTIL WRK-EOF-Y. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * サブモジュールNO: (1.0) * + * サブモジュール名: 初期処理 * + ***************************************************************** + 1000ITTSOR SECTION. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE WRKARA. + MOVE '1' TO WRK-FIRST-FLG. + * + *** PARM取得 + ACCEPT WRK-YEAR-MONTH + FROM COMMAND-LINE. + IF WRK-YEAR-MONTH = SPACES + MOVE CNS-DEFAULT-YM TO WRK-YEAR-MONTH + END-IF. + * + INITIALIZE D01UBSPAR. + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD NOT = ZERO + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + OPEN INPUT R01INNFIL + R02INNFIL. + OPEN OUTPUT W01OUTFIL + W02OUTFIL. + * + *** 等級テーブル全件読込 + PERFORM 1110R02LDASOR + UNTIL WRK-R02-EOF-Y. + * + PERFORM 1100R01INNSOR. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.1) * + * サブモジュール名: R01読込処理 * + ***************************************************************** + 1100R01INNSOR SECTION. + * + READ R01INNFIL + AT END + SET WRK-EOF-Y TO TRUE + NOT AT END + ADD 1 TO CUN-R01INN + END-READ. + * + 1100R01INNSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.2) * + * サブモジュール名: R02全件読込(等級テーブル格納) * + ***************************************************************** + 1110R02LDASOR SECTION. + * + READ R02INNFIL + AT END + SET WRK-R02-EOF-Y TO TRUE + NOT AT END + ADD 1 TO CUN-R02INN + ADD 1 TO GRADE-COUNT + MOVE R02GRADE-CODE TO + TBL-GRADE-CODE (GRADE-COUNT) + MOVE R02MONTHLY-FROM TO + TBL-MONTHLY-FROM (GRADE-COUNT) + MOVE R02MONTHLY-TO TO + TBL-MONTHLY-TO (GRADE-COUNT) + END-READ. + * + 1110R02LDASOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.0) * + * サブモジュール名: 主処理 * + ***************************************************************** + 2000MAJSOR SECTION. + * + IF WRK-FIRST-REC + MOVE R01EMP-ID TO WRK-PREV-EMP-ID + MOVE R01EMP-NAME TO WRK-EMP-NAME + MOVE '0' TO WRK-FIRST-FLG + MOVE ZERO TO WRK-TOTAL + MOVE ZERO TO WRK-COUNT + END-IF. + * + IF R01EMP-ID = WRK-PREV-EMP-ID + ADD R01MONTHLY-AMOUNT TO WRK-TOTAL + ADD 1 TO WRK-COUNT + ELSE + PERFORM 2010KEYBRSOR + MOVE R01EMP-ID TO WRK-PREV-EMP-ID + MOVE R01EMP-NAME TO WRK-EMP-NAME + MOVE ZERO TO WRK-TOTAL + MOVE ZERO TO WRK-COUNT + ADD R01MONTHLY-AMOUNT TO WRK-TOTAL + ADD 1 TO WRK-COUNT + END-IF. + * + PERFORM 1100R01INNSOR. + * + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.1) * + * サブモジュール名: キーブレイク集約処理 * + ***************************************************************** + 2010KEYBRSOR SECTION. + * + IF WRK-COUNT = 0 + EXIT SECTION + END-IF. + * + DIVIDE WRK-TOTAL BY WRK-COUNT + GIVING WRK-AVG + REMAINDER WRK-REM + END-DIVIDE. + * + IF WRK-COUNT >= 4 + MOVE 'A' TO WRK-REVISED-TYPE + ELSE + IF WRK-COUNT = 3 + MOVE 'B' TO WRK-REVISED-TYPE + ELSE + MOVE 01 TO W02ERR-CATEGORY + MOVE WRK-COUNT TO WS-DISP-INT + STRING + WRK-PREV-EMP-ID + ' COUNT=' + WS-DISP-INT + ' INVALID' + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + EXIT SECTION + END-IF + END-IF. + * + PERFORM 2020GRADSOR. + * + 2010KEYBRSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.2) * + * サブモジュール名: 等級テーブルマッチング * + ***************************************************************** + 2020GRADSOR SECTION. + * + MOVE 'N' TO WRK-GRADE-FOUND. + * + PERFORM VARYING WRK-I FROM 1 BY 1 + UNTIL WRK-I > GRADE-COUNT + OR WRK-GRADE-FOUND-Y + IF WRK-AVG >= + TBL-MONTHLY-FROM (WRK-I) + AND WRK-AVG <= + TBL-MONTHLY-TO (WRK-I) + MOVE TBL-GRADE-CODE (WRK-I) + TO WRK-NEW-GRADE + SET WRK-GRADE-FOUND-Y TO TRUE + END-IF + END-PERFORM. + * + IF NOT WRK-GRADE-FOUND-Y + MOVE 01 TO W02ERR-CATEGORY + STRING + WRK-PREV-EMP-ID + ' AVG=' + WRK-AVG + ' NO-GRADE' + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + EXIT SECTION + END-IF. + * + *** 現在等級をDBから取得(本設計ではDB非接続のためテーブルで代用) + *** 本来はGRADE-HISTORYをSELECTする + MOVE 0 TO WRK-OLD-GRADE. + * + IF WRK-OLD-GRADE NOT = WRK-NEW-GRADE + PERFORM 2030W01OUTSOR + END-IF. + * + 2020GRADSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.3) * + * サブモジュール名: REVISED-GRADE出力 * + ***************************************************************** + 2030W01OUTSOR SECTION. + * + INITIALIZE W01OUTREC. + * + MOVE WRK-PREV-EMP-ID TO W01EMP-ID. + MOVE WRK-EMP-NAME TO W01EMP-NAME. + MOVE WRK-YEAR-MONTH TO W01REVISED-YM. + MOVE WRK-OLD-GRADE TO W01OLD-GRADE. + MOVE WRK-NEW-GRADE TO W01NEW-GRADE. + MOVE WRK-AVG TO W01AVG-STD-MONTHLY. + MOVE WRK-REVISED-TYPE TO W01REVISED-TYPE. + * + WRITE W01OUTREC. + ADD 1 TO CUN-W01OUT. + * + 2030W01OUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (3.0) * + * サブモジュール名: 終了処理 * + ***************************************************************** + 3000STPSOR SECTION. + * + *** 最終キーグループ処理 + PERFORM 2010KEYBRSOR. + * + CLOSE R01INNFIL + R02INNFIL + W01OUTFIL + W02OUTFIL. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'SHA05R01' TO M00UMKDATS22-01. + MOVE CUN-R01INN TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA05W01' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA05W02' TO M00UMKDATS22-01. + MOVE CUN-W02OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (4.0) * + * サブモジュール名: メッセージ出力処理 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (9.9) * + * サブモジュール名: ABEND処理 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/src/SHA06TWM.cbl b/src/SHA06TWM.cbl new file mode 100644 index 0000000..6fc65e4 --- /dev/null +++ b/src/SHA06TWM.cbl @@ -0,0 +1,561 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA06TWM. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA06TWM * + * プログラム名 : 保険料率適用・控除計算処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : EMP-INSURANCEをDB2 INSURANCE-RATES(M×N) * + * とAPPLICABLE-RULES(M:N)の2段階マッチング * + * により保険料を算出しDEDUCTED-RESULTを出力 * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT R01INNFIL ASSIGN TO EXTERNAL SHA06R01. + SELECT R02INNFIL ASSIGN TO EXTERNAL SHA06R02. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA06W01. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA06W02. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * R01: EMP-INSURANCE(200B FB SHA02REC) * + ***************************************************************** + FD R01INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R01INNREC. + COPY SHA02REC REPLACING ==(A)== BY ==R01==. + * + ***************************************************************** + * R02: APPLICABLE-RULES(80B FB 自前レイアウト) * + ***************************************************************** + FD R02INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R02INNREC. + 03 R02RULE-CODE PIC X(002). + 03 R02AGE-FROM PIC 9(002). + 03 R02AGE-TO PIC 9(002). + 03 R02DEPENDENTS-FROM PIC 9(002). + 03 R02DEPENDENTS-TO PIC 9(002). + 03 R02REGION-CODE PIC X(002). + 03 R02HEALTH-RATE-ADJ PIC 9(007). + 03 R02PENSION-RATE-ADJ PIC 9(007). + 03 R02FILLER PIC X(054). + * + ***************************************************************** + * W01: DEDUCTED-RESULT(300B FB SHA06REC) * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA06REC REPLACING ==(A)== BY ==W01==. + * + ***************************************************************** + * W02: ERROR-LOG(VB) * + ***************************************************************** + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W02OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W02==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * SQLCA * + ***************************************************************** + EXEC SQL INCLUDE SQLCA END-EXEC. + * + ***************************************************************** + * コンスタント領域 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA06TWM'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + 03 CNS-RATE-DIV PIC 9(007) VALUE 1000000. + * + ***************************************************************** + * カウンタ領域 * + ***************************************************************** + 01 CUNARA. + 03 CUN-R01INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-R02INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 作業領域 * + ***************************************************************** + 01 WRKARA. + 03 WRK-EOF PIC X(001). + 88 WRK-EOF-Y VALUE '1'. + 03 WRK-R02-EOF PIC X(001). + 88 WRK-R02-EOF-Y VALUE '1'. + 03 WRK-SQLCODE PIC S9(009) COMP. + 03 WRK-I PIC 9(004) COMP. + 03 WRK-RULE-FOUND PIC X(001). + 88 WRK-RULE-FOUND-Y VALUE 'Y'. + 03 WRK-AGE PIC 9(003). + 03 WRK-DEPENDENTS PIC 9(002). + 03 WRK-REGION-CODE PIC X(002). + 03 WRK-HEALTH-RATE PIC 9(007). + 03 WRK-PENSION-RATE PIC 9(007). + 03 WRK-HEALTH-PREMIUM PIC 9(009). + 03 WRK-PENSION-PREMIUM PIC 9(009). + 03 WRK-TOTAL-PREMIUM PIC 9(009). + 03 WRK-BIRTH-DATE PIC 9(008). + 03 WRK-CALC-ERR PIC X(001). + 88 WRK-CALC-ERR-Y VALUE 'Y'. + 03 WS-DISP-INT PIC S9(009). + * + ***************************************************************** + * DB2ホスト変数 * + ***************************************************************** + 01 DBVARA. + 03 DBV-EMP-ID PIC X(008). + 03 DBV-GRADE-CODE PIC 9(002). + 03 DBV-HEALTH-RATE PIC 9(007). + 03 DBV-PENSION-RATE PIC 9(007). + 03 DBV-BIRTH-DATE PIC 9(008). + 03 DBV-DEPENDENT-COUNT PIC 9(002). + 03 DBV-REGION-CODE PIC X(002). + * + ***************************************************************** + * 適用ルール内部テーブル * + ***************************************************************** + 01 RULE-TBL. + 03 RULE-ENTRY OCCURS 50. + 05 TBL-RULE-CODE PIC X(002). + 05 TBL-AGE-FROM PIC 9(002). + 05 TBL-AGE-TO PIC 9(002). + 05 TBL-DEPENDENTS-FROM PIC 9(002). + 05 TBL-DEPENDENTS-TO PIC 9(002). + 05 TBL-REGION-CODE PIC X(002). + 05 TBL-HEALTH-RATE-ADJ PIC 9(007). + 05 TBL-PENSION-RATE-ADJ PIC 9(007). + 05 TBL-FILLER PIC X(054). + 01 RULE-COUNT PIC 9(004) VALUE ZERO. + * + ***************************************************************** + * サブプログラム連絡領域 * + ***************************************************************** + COPY SHAMSGAC. + COPY SHAENDAC. + COPY SHADATAC. + * + PROCEDURE DIVISION. + ***************************************************************** + * サブモジュールNO: (0.0) * + * サブモジュール名: 制御処理 * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR + UNTIL WRK-EOF-Y. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * サブモジュールNO: (1.0) * + * サブモジュール名: 初期処理 * + ***************************************************************** + 1000ITTSOR SECTION. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE WRKARA. + * + INITIALIZE D01UBSPAR. + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD NOT = ZERO + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + OPEN INPUT R01INNFIL + R02INNFIL. + OPEN OUTPUT W01OUTFIL + W02OUTFIL. + * + *** DB接続 + EXEC SQL + CONNECT TO 'data/INSURANCEDB.db' + END-EXEC. + * + *** 適用ルールテーブル全件読込 + PERFORM 1110R02LDASOR + UNTIL WRK-R02-EOF-Y. + * + PERFORM 1100R01INNSOR. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.1) * + * サブモジュール名: R01読込処理 * + ***************************************************************** + 1100R01INNSOR SECTION. + * + READ R01INNFIL + AT END + SET WRK-EOF-Y TO TRUE + NOT AT END + ADD 1 TO CUN-R01INN + END-READ. + * + 1100R01INNSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.2) * + * サブモジュール名: R02全件読込(ルールテーブル格納) * + ***************************************************************** + 1110R02LDASOR SECTION. + * + READ R02INNFIL + AT END + SET WRK-R02-EOF-Y TO TRUE + NOT AT END + ADD 1 TO CUN-R02INN + ADD 1 TO RULE-COUNT + MOVE R02RULE-CODE TO + TBL-RULE-CODE (RULE-COUNT) + MOVE R02AGE-FROM TO + TBL-AGE-FROM (RULE-COUNT) + MOVE R02AGE-TO TO + TBL-AGE-TO (RULE-COUNT) + MOVE R02DEPENDENTS-FROM TO + TBL-DEPENDENTS-FROM (RULE-COUNT) + MOVE R02DEPENDENTS-TO TO + TBL-DEPENDENTS-TO (RULE-COUNT) + MOVE R02REGION-CODE TO + TBL-REGION-CODE (RULE-COUNT) + MOVE R02HEALTH-RATE-ADJ TO + TBL-HEALTH-RATE-ADJ (RULE-COUNT) + MOVE R02PENSION-RATE-ADJ TO + TBL-PENSION-RATE-ADJ (RULE-COUNT) + END-READ. + * + 1110R02LDASOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.0) * + * サブモジュール名: 主処理 * + ***************************************************************** + 2000MAJSOR SECTION. + * + PERFORM 2010RATESOR. + * + IF WRK-SQLCODE = 0 + PERFORM 2020RULESCOL + PERFORM 2030CALCSOR + PERFORM 2040W01OUTSOR + ELSE + PERFORM 2050W02OUTSOR + END-IF. + * + PERFORM 1100R01INNSOR. + * + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.1) * + * サブモジュール名: 第1段階料率取得(DB2 M×Nマッチング) * + ***************************************************************** + 2010RATESOR SECTION. + * + MOVE R01EMP-ID TO DBV-EMP-ID. + MOVE R01GRADE-CODE TO DBV-GRADE-CODE. + * + EXEC SQL + SELECT HEALTH-RATE, PENSION-RATE + INTO :DBV-HEALTH-RATE, + :DBV-PENSION-RATE + FROM INSURANCE-RATES + WHERE GRADE-CODE = :DBV-GRADE-CODE + END-EXEC. + * + MOVE SQLCODE TO WRK-SQLCODE. + * + IF SQLCODE = 0 + MOVE DBV-HEALTH-RATE TO WRK-HEALTH-RATE + MOVE DBV-PENSION-RATE TO WRK-PENSION-RATE + ELSE + IF SQLCODE NOT = 100 + MOVE 01 TO W02ERR-CATEGORY + MOVE SQLCODE TO WS-DISP-INT + STRING + DBV-EMP-ID + ' SQLCODE=' + WS-DISP-INT + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + END-IF + END-IF. + * + *** 年齢・扶養人数・地域コードをDBより取得 + IF SQLCODE = 0 + EXEC SQL + SELECT BIRTH-DATE, + DEPENDENT-COUNT, + REGION-CODE + INTO :DBV-BIRTH-DATE, + :DBV-DEPENDENT-COUNT, + :DBV-REGION-CODE + FROM EMP-MASTER + WHERE EMP-ID = :DBV-EMP-ID + END-EXEC + IF SQLCODE = 0 + MOVE DBV-BIRTH-DATE TO WRK-BIRTH-DATE + MOVE DBV-DEPENDENT-COUNT + TO WRK-DEPENDENTS + MOVE DBV-REGION-CODE TO WRK-REGION-CODE + END-IF + END-IF. + * + 2010RATESOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.2) * + * サブモジュール名: 第2段階ルールマッチング(M:N) * + ***************************************************************** + 2020RULESCOL SECTION. + * + *** 満年齢計算 + COMPUTE WRK-AGE = + (FUNCTION INTEGER-OF-DATE (D01UBSUDATE) + - FUNCTION INTEGER-OF-DATE (WRK-BIRTH-DATE)) + / 365 + END-COMPUTE. + * + MOVE 'N' TO WRK-RULE-FOUND. + * + PERFORM VARYING WRK-I FROM 1 BY 1 + UNTIL WRK-I > RULE-COUNT + OR WRK-RULE-FOUND-Y + IF WRK-AGE >= TBL-AGE-FROM (WRK-I) + AND WRK-AGE <= TBL-AGE-TO (WRK-I) + AND WRK-DEPENDENTS >= + TBL-DEPENDENTS-FROM (WRK-I) + AND WRK-DEPENDENTS <= + TBL-DEPENDENTS-TO (WRK-I) + AND WRK-REGION-CODE = + TBL-REGION-CODE (WRK-I) + IF TBL-HEALTH-RATE-ADJ (WRK-I) > 0 + ADD TBL-HEALTH-RATE-ADJ (WRK-I) + TO WRK-HEALTH-RATE + END-IF + IF TBL-PENSION-RATE-ADJ (WRK-I) > 0 + ADD TBL-PENSION-RATE-ADJ (WRK-I) + TO WRK-PENSION-RATE + END-IF + SET WRK-RULE-FOUND-Y TO TRUE + END-IF + END-PERFORM. + * + 2020RULESCOL-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.3) * + * サブモジュール名: 保険料計算 * + ***************************************************************** + 2030CALCSOR SECTION. + * + MOVE 'N' TO WRK-CALC-ERR. + * + COMPUTE WRK-HEALTH-PREMIUM = + R01MONTHLY-AMOUNT + * WRK-HEALTH-RATE + / CNS-RATE-DIV + ON SIZE ERROR + MOVE 'Y' TO WRK-CALC-ERR + END-COMPUTE. + * + COMPUTE WRK-PENSION-PREMIUM = + R01MONTHLY-AMOUNT + * WRK-PENSION-RATE + / CNS-RATE-DIV + ON SIZE ERROR + MOVE 'Y' TO WRK-CALC-ERR + END-COMPUTE. + * + IF NOT WRK-CALC-ERR-Y + COMPUTE WRK-TOTAL-PREMIUM = + WRK-HEALTH-PREMIUM + + WRK-PENSION-PREMIUM + END-COMPUTE + END-IF. + * + IF WRK-CALC-ERR-Y + MOVE 01 TO W02ERR-CATEGORY + STRING + R01EMP-ID + ' CALC-SIZE-ERROR' + INTO W02ERR-DETAIL + END-STRING + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + END-IF. + * + 2030CALCSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.4) * + * サブモジュール名: DEDUCTED-RESULT出力 * + ***************************************************************** + 2040W01OUTSOR SECTION. + * + IF WRK-CALC-ERR-Y + EXIT SECTION + END-IF. + * + INITIALIZE W01OUTREC. + * + MOVE R01EMP-ID TO W01EMP-ID. + MOVE R01EMP-NAME TO W01EMP-NAME. + MOVE R01HEALTH-INS-TYPE TO W01INSURANCE-TYPE. + MOVE R01GRADE-CODE TO W01GRADE-CODE. + MOVE R01MONTHLY-AMOUNT TO W01MONTHLY-AMOUNT. + MOVE WRK-HEALTH-RATE TO W01HEALTH-RATE. + MOVE WRK-PENSION-RATE TO W01PENSION-RATE. + MOVE WRK-HEALTH-PREMIUM TO W01HEALTH-PREMIUM. + MOVE WRK-PENSION-PREMIUM TO W01PENSION-PREMIUM. + MOVE WRK-TOTAL-PREMIUM TO W01TOTAL-PREMIUM. + * + WRITE W01OUTREC. + ADD 1 TO CUN-W01OUT. + * + 2040W01OUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.5) * + * サブモジュール名: エラー出力(DBエラー時) * + ***************************************************************** + 2050W02OUTSOR SECTION. + * + MOVE 01 TO W02ERR-CATEGORY. + MOVE WRK-SQLCODE TO WS-DISP-INT. + STRING + R01EMP-ID + ' DB-ERR SQLCODE=' + WS-DISP-INT + INTO W02ERR-DETAIL + END-STRING. + WRITE W02OUTREC. + ADD 1 TO CUN-W02OUT. + * + 2050W02OUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (3.0) * + * サブモジュール名: 終了処理 * + ***************************************************************** + 3000STPSOR SECTION. + * + CLOSE R01INNFIL + R02INNFIL + W01OUTFIL + W02OUTFIL. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'SHA06R01' TO M00UMKDATS22-01. + MOVE CUN-R01INN TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA06W01' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA06W02' TO M00UMKDATS22-01. + MOVE CUN-W02OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (4.0) * + * サブモジュール名: メッセージ出力処理 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (9.9) * + * サブモジュール名: ABEND処理 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/src/SHA07KBR.cbl b/src/SHA07KBR.cbl new file mode 100644 index 0000000..3d04cb3 --- /dev/null +++ b/src/SHA07KBR.cbl @@ -0,0 +1,480 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA07KBR. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA07KBR * + * プログラム名 : 資格異動キーブレイク処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : DB2 QUALIFICATION-CHANGESから資格異動 * + * データをFETCHし、従業員ごと(1:N)かつ * + * 保険者コード変更時(異キー)にキーブレイク * + * してサマリ・明細を出力する。 * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA07W01. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA07W02. + SELECT W03OUTFIL ASSIGN TO EXTERNAL SHA07W03. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * W01: CHG-SUMMARY(200B FB) * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA07REC REPLACING ==(A)== BY ==W01==. + * + ***************************************************************** + * W02: CHG-DETAIL(200B FB) * + ***************************************************************** + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W02OUTREC. + COPY SHA07REC REPLACING ==(A)== BY ==W02==. + * + ***************************************************************** + * W03: ERROR-LOG(VB) * + ***************************************************************** + FD W03OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W03OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W03==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * SQLCA * + ***************************************************************** + EXEC SQL INCLUDE SQLCA END-EXEC. + * + ***************************************************************** + * コンスタント領域 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA07KBR'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + 01 CNS-RECTYP-S PIC X(001) VALUE 'S'. + 01 CNS-RECTYP-D PIC X(001) VALUE 'D'. + 01 CNS-REASON-CHG PIC X(040) + VALUE 'INSURER CHANGED'. + * + ***************************************************************** + * カウンタ領域 * + ***************************************************************** + 01 CUNARA. + 03 CUN-DB-FETCH PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W03OUT PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 作業領域 * + ***************************************************************** + 01 WRKARA. + 03 WRK-U06 PIC 9(008). + 03 WRK-EOF PIC X(001). + 88 WRK-EOF-Y VALUE '1'. + 03 WRK-FIRST PIC X(001). + 88 WRK-FIRST-Y VALUE '1'. + 03 WRK-PREV-EMP-ID PIC X(008). + 03 WRK-PREV-INSURER PIC X(004). + * + ***************************************************************** + * DB2ホスト変数 * + ***************************************************************** + 01 DBVARA. + 03 DBV-CHG-ID PIC 9(009). + 03 DBV-EMP-ID PIC X(008). + 03 DBV-EMP-NAME PIC X(040). + 03 DBV-CHG-DATE PIC X(008). + 03 DBV-CHG-TYPE PIC X(002). + 03 DBV-INSURER-CODE PIC X(004). + 03 DBV-PREV-INSURER PIC X(004). + 03 DBV-REASON PIC X(100). + * + ***************************************************************** + * サブプログラム連絡領域 * + ***************************************************************** + *** 運用日付取得 + COPY SHADATAC. + *** メッセージ編集出力SR用 + COPY SHAMSGAC. + *** ABEND処理SR用 + COPY SHAENDAC. + *** 項目チェックSR用 + * + PROCEDURE DIVISION. + ***************************************************************** + * サブモジュールNO: (0.0) * + * サブモジュール名: 制御処理 * + * 処理概要 : メインコントロール処理 * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR + UNTIL WRK-EOF-Y. + PERFORM 2500LSTKBRSOR. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * サブモジュールNO: (1.0) * + * サブモジュール名: 初期処理 * + * 処理概要 : 開始メッセージ出力・各種初期化処理 * + ***************************************************************** + 1000ITTSOR SECTION. + * + *** 開始メッセージ出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + *** コンパイル日時出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + *** ワークエリア初期化 + INITIALIZE WRKARA. + MOVE ZERO TO WRK-PREV-EMP-ID. + MOVE SPACES TO WRK-PREV-INSURER. + * + *** 運用日付取得 + INITIALIZE D01UBSPAR. + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD = ZERO + MOVE D01UBSUDATE TO WRK-U06 + ELSE + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + *** 出力ファイルOPEN + OPEN OUTPUT W01OUTFIL + W02OUTFIL + W03OUTFIL. + * + *** DB接続 + EXEC SQL + CONNECT TO 'data/INSURANCEDB.db' + END-EXEC. + * + *** CURSOR DECLARE + EXEC SQL + DECLARE CQCHG CURSOR FOR + SELECT + QC.CHG-ID, + QC.EMP-ID, + EM.EMP-NAME, + QC.CHG-DATE, + QC.CHG-TYPE, + QC.INSURER-CODE, + QC.PREV-INSURER, + QC.REASON + FROM + QUALIFICATION-CHANGES QC + LEFT JOIN SALARYDB.EMP-MASTER EM + ON QC.EMP-ID = EM.EMP-ID + ORDER BY + QC.EMP-ID, + QC.CHG-DATE + END-EXEC. + * + *** CURSOR OPEN + EXEC SQL + OPEN CQCHG + END-EXEC. + * + *** 1件目FETCH + PERFORM 1100FETCSOR. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.1) * + * サブモジュール名: FETCH処理 * + * 処理概要 : CURSOR FETCH + EOF判定 * + ***************************************************************** + 1100FETCSOR SECTION. + * + EXEC SQL + FETCH CQCHG + INTO + :DBV-CHG-ID, + :DBV-EMP-ID, + :DBV-EMP-NAME, + :DBV-CHG-DATE, + :DBV-CHG-TYPE, + :DBV-INSURER-CODE, + :DBV-PREV-INSURER, + :DBV-REASON + END-EXEC. + * + IF SQLCODE = 0 + ADD 1 TO CUN-DB-FETCH + ELSE + SET WRK-EOF-Y TO TRUE + END-IF. + * + 1100FETCSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.0) * + * サブモジュール名: 主処理 * + * 処理概要 : キーブレイク判定・出力 * + ***************************************************************** + 2000MAJSOR SECTION. + * + *** EMP-ID 主キーブレイク判定 + IF WRK-FIRST-Y + MOVE SPACE TO WRK-FIRST + MOVE DBV-EMP-ID TO WRK-PREV-EMP-ID + MOVE DBV-INSURER-CODE TO WRK-PREV-INSURER + ELSE + IF DBV-EMP-ID NOT = WRK-PREV-EMP-ID + PERFORM 2100KEYBRSOR + END-IF + * + *** INSURER-CODE 異キーブレイク判定 + IF DBV-INSURER-CODE + NOT = WRK-PREV-INSURER + PERFORM 2200DIFKBSOR + END-IF + END-IF. + * + *** 明細出力 + PERFORM 2300DETAILSOR. + * + *** 前回値更新 + MOVE DBV-EMP-ID TO WRK-PREV-EMP-ID. + MOVE DBV-INSURER-CODE TO WRK-PREV-INSURER. + * + *** 次FETCH + PERFORM 1100FETCSOR. + * + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.1) * + * サブモジュール名: 主キーブレイク処理 * + * 処理概要 : EMP-ID変更時のサマリ出力(前従業員最終状 * + * 態をサマリに記録) * + ***************************************************************** + 2100KEYBRSOR SECTION. + * + INITIALIZE W01OUTREC. + * + MOVE WRK-PREV-EMP-ID TO W01EMP-ID. + MOVE SPACES TO W01EMP-NAME + MOVE ZERO TO W01CHG-ID + W01CHG-DATE. + MOVE '99' TO W01CHG-TYPE. + MOVE SPACES TO W01INSURER-CODE. + MOVE WRK-PREV-INSURER TO W01PREV-INSURER. + MOVE SPACES TO W01REASON. + MOVE CNS-RECTYP-S TO W01REC-TYPE. + * + WRITE W01OUTREC. + ADD 1 TO CUN-W01OUT. + * + 2100KEYBRSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.2) * + * サブモジュール名: 異キーブレイク処理 * + * 処理概要 : 同一従業員内で保険者コード変更時の * + * サマリ出力 * + ***************************************************************** + 2200DIFKBSOR SECTION. + * + INITIALIZE W01OUTREC. + * + MOVE DBV-CHG-ID TO W01CHG-ID. + MOVE DBV-EMP-ID TO W01EMP-ID. + MOVE DBV-EMP-NAME TO W01EMP-NAME. + MOVE DBV-CHG-DATE TO W01CHG-DATE. + MOVE '99' TO W01CHG-TYPE. + MOVE DBV-INSURER-CODE TO W01INSURER-CODE. + MOVE WRK-PREV-INSURER TO W01PREV-INSURER. + MOVE CNS-REASON-CHG TO W01REASON. + MOVE CNS-RECTYP-S TO W01REC-TYPE. + * + WRITE W01OUTREC. + ADD 1 TO CUN-W01OUT. + * + 2200DIFKBSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.3) * + * サブモジュール名: 明細出力処理 * + * 処理概要 : 全FETCHレコードを明細出力 * + ***************************************************************** + 2300DETAILSOR SECTION. + * + INITIALIZE W02OUTREC. + * + MOVE DBV-CHG-ID TO W02CHG-ID. + MOVE DBV-EMP-ID TO W02EMP-ID. + MOVE DBV-EMP-NAME TO W02EMP-NAME. + MOVE DBV-CHG-DATE TO W02CHG-DATE. + MOVE DBV-CHG-TYPE TO W02CHG-TYPE. + MOVE DBV-INSURER-CODE TO W02INSURER-CODE. + MOVE DBV-PREV-INSURER TO W02PREV-INSURER. + MOVE DBV-REASON TO W02REASON. + MOVE CNS-RECTYP-D TO W02REC-TYPE. + * + WRITE W02OUTREC. + ADD 1 TO CUN-W02OUT. + * + 2300DETAILSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.5) * + * サブモジュール名: 最終グループ処理 * + * 処理概要 : 最終EMP-IDグループのサマリ出力 * + ***************************************************************** + 2500LSTKBRSOR SECTION. + * + IF CUN-DB-FETCH > ZERO + INITIALIZE W01OUTREC + MOVE WRK-PREV-EMP-ID TO W01EMP-ID + MOVE SPACES TO W01EMP-NAME + MOVE ZERO TO W01CHG-ID + W01CHG-DATE + MOVE '99' TO W01CHG-TYPE + MOVE SPACES TO W01INSURER-CODE + MOVE WRK-PREV-INSURER TO W01PREV-INSURER + MOVE SPACES TO W01REASON + MOVE CNS-RECTYP-S TO W01REC-TYPE + WRITE W01OUTREC + ADD 1 TO CUN-W01OUT + END-IF. + * + 2500LSTKBRSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (3.0) * + * サブモジュール名: 終了処理 * + * 処理概要 : CURSOR CLOSE・ファイルクローズ・件数出力 * + ***************************************************************** + 3000STPSOR SECTION. + * + *** CURSOR CLOSE + EXEC SQL + CLOSE CQCHG + END-EXEC. + * + *** DB切断 + EXEC SQL + DISCONNECT CURRENT + END-EXEC. + * + *** 出力ファイルCLOSE + CLOSE W01OUTFIL + W02OUTFIL + W03OUTFIL. + * + *** 入出力件数出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'DB2-QUAL-CHANGES' TO M00UMKDATS22-01. + MOVE CUN-DB-FETCH TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA07W01(CHG-SUM)' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA07W02(CHG-DTL)' TO M00UMKDATS22-01. + MOVE CUN-W02OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA07W03(ERROR)' TO M00UMKDATS22-01. + MOVE CUN-W03OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + *** 終了メッセージ出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (4.0) * + * サブモジュール名: メッセージ編集出力処理 * + * 処理概要 : メッセージ編集出力サブPGM呼出 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (9.9) * + * サブモジュール名: ABEND処理 * + * 処理概要 : ABENDサブPGM呼出 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/src/SHA08SRT.cbl b/src/SHA08SRT.cbl new file mode 100644 index 0000000..0b0c1df --- /dev/null +++ b/src/SHA08SRT.cbl @@ -0,0 +1,359 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA08SRT. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA08SRT * + * プログラム名 : 届出書データSORT編集処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : GRADED-LISTをINPUT PROCEDUREで全件RELEASEし、* + * MONTHLY-AMOUNT/GRADE-CODEを保持したまま * + * PREF-CODE・OFFICE-NO・EMP-ID昇順SORT後、 * + * OUTPUT PROCEDUREでRETURNしてRPT-DATA出力。 * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT R01INNFIL ASSIGN TO EXTERNAL SHA08R01. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA08W01. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA08W02. + SELECT SORTWORK ASSIGN TO EXTERNAL SORTWK01. + * + I-O-CONTROL. + SAME SORT AREA FOR SORTWORK. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * R01: GRADED-LIST(200B FB) * + ***************************************************************** + FD R01INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R01INNREC. + COPY SHA04REC REPLACING ==(A)== BY ==R01==. + * + ***************************************************************** + * SD: SORTWORK(200B SORT内部レコード) * + ***************************************************************** + SD SORTWORK + RECORD CONTAINS 200. + 01 SORTREC. + 03 SR-EMP-ID PIC 9(008). + 03 SR-EMP-NAME PIC X(040). + 03 SR-OFFICE-NO PIC X(004). + 03 SR-OFFICE-NAME PIC X(040). + 03 SR-PREF-CODE PIC 9(002). + 03 SR-INSURER-CODE PIC X(004). + 03 SR-INSURER-NAME PIC X(060). + 03 SR-MONTHLY-AMOUNT PIC 9(009). + 03 SR-GRADE-CODE PIC 9(002). + 03 SR-STATUS PIC X(001). + 03 SR-FILLER PIC X(030). + * + ***************************************************************** + * W01: RPT-DATA(300B FB) * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA08REC REPLACING ==(A)== BY ==W01==. + * + ***************************************************************** + * W02: ERROR-LOG(VB) * + ***************************************************************** + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W02OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W02==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * コンスタント領域 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA08SRT'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + 03 CNS-ABD100 PIC 9(003) VALUE 100. + 01 CNS-STATUS-0 PIC X(001) VALUE '0'. + 01 CNS-RPT-TYPE PIC X(002) VALUE '01'. + * + ***************************************************************** + * カウンタ領域 * + ***************************************************************** + 01 CUNARA. + 03 CUN-R01INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-SORT-IN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 作業領域 * + ***************************************************************** + 01 WRKARA. + 03 WRK-U06 PIC 9(008). + 03 WRK-R01EOF PIC X(001). + 03 WRK-SORT-STAT PIC 9(002). + * + ***************************************************************** + * サブプログラム連絡領域 * + ***************************************************************** + *** 運用日付取得 + COPY SHADATAC. + *** メッセージ編集出力SR用 + COPY SHAMSGAC. + *** ABEND処理SR用 + COPY SHAENDAC. + * + PROCEDURE DIVISION. + ***************************************************************** + * サブモジュールNO: (0.0) * + * サブモジュール名: 制御処理 * + * 処理概要 : メインコントロール処理 * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * サブモジュールNO: (1.0) * + * サブモジュール名: 初期処理 * + * 処理概要 : 開始メッセージ出力・各種初期化処理 * + ***************************************************************** + 1000ITTSOR SECTION. + * + *** 開始メッセージ出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + *** コンパイル日時出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + *** ワークエリア初期化 + INITIALIZE WRKARA. + * + *** 運用日付取得 + INITIALIZE D01UBSPAR. + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD = ZERO + MOVE D01UBSUDATE TO WRK-U06 + ELSE + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + *** 出力ファイルOPEN + OPEN OUTPUT W01OUTFIL + W02OUTFIL. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.0) * + * サブモジュール名: 主処理(SORT実行) * + * 処理概要 : SORT文を実行する * + ***************************************************************** + 2000MAJSOR SECTION. + * + SORT SORTWORK + ON ASCENDING KEY SR-PREF-CODE + SR-OFFICE-NO + SR-EMP-ID + INPUT PROCEDURE 2110INPPSOR + OUTPUT PROCEDURE 2120OUTPSOR. + * + MOVE RETURN-CODE TO WRK-SORT-STAT. + IF WRK-SORT-STAT NOT = ZERO + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SORT FAILED' TO M00UMKDATS22-01 + MOVE WRK-SORT-STAT TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + MOVE CNS-ABD100 TO E01ABDCOD + CALL 'SUB03END' USING E01ABDPAR + END-IF. + * + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.1) * + * サブモジュール名: INPUT PROCEDURE * + * 処理概要 : R01読込→全件RELEASE * + ***************************************************************** + 2110INPPSOR SECTION. + * + OPEN INPUT R01INNFIL. + * + PERFORM UNTIL 1 = 2 + READ R01INNFIL + AT END + EXIT PERFORM + NOT AT END + ADD 1 TO CUN-R01INN + END-READ + MOVE R01EMP-ID TO SR-EMP-ID + MOVE R01EMP-NAME TO SR-EMP-NAME + MOVE R01OFFICE-NO TO SR-OFFICE-NO + MOVE R01OFFICE-NAME TO SR-OFFICE-NAME + MOVE R01PREF-CODE TO SR-PREF-CODE + MOVE R01INSURER-CODE + TO SR-INSURER-CODE + MOVE R01INSURER-NAME + TO SR-INSURER-NAME + MOVE R01MONTHLY-AMOUNT TO SR-MONTHLY-AMOUNT + MOVE R01GRADE-CODE TO SR-GRADE-CODE + MOVE CNS-STATUS-0 TO SR-STATUS + MOVE R01FILLER TO SR-FILLER + RELEASE SORTREC + ADD 1 TO CUN-SORT-IN + END-PERFORM. + * + CLOSE R01INNFIL. + * + 2110INPPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.2) * + * サブモジュール名: OUTPUT PROCEDURE * + * 処理概要 : RETURN→レイアウト編集→WRITE * + ***************************************************************** + 2120OUTPSOR SECTION. + * + PERFORM UNTIL 1 = 2 + RETURN SORTWORK RECORD + AT END + EXIT PERFORM + NOT AT END + INITIALIZE W01OUTREC + MOVE SR-EMP-ID TO W01EMP-ID + MOVE SR-EMP-NAME TO W01EMP-NAME + MOVE SR-OFFICE-NO TO W01OFFICE-NO + MOVE SR-OFFICE-NAME TO W01OFFICE-NAME + MOVE SR-INSURER-CODE TO W01INSURER-CODE + MOVE SR-INSURER-NAME TO W01INSURER-NAME + MOVE SR-PREF-CODE TO W01PREF-CODE + MOVE CNS-RPT-TYPE TO W01REPORT-TYPE + MOVE WRK-U06 TO W01REPORT-DATE + MOVE SR-MONTHLY-AMOUNT + TO W01MONTHLY-AMOUNT + MOVE SR-GRADE-CODE TO W01GRADE-CODE + WRITE W01OUTREC + ADD 1 TO CUN-W01OUT + END-RETURN + END-PERFORM. + * + 2120OUTPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (3.0) * + * サブモジュール名: 終了処理 * + * 処理概要 : ファイルクローズ・件数出力 * + ***************************************************************** + 3000STPSOR SECTION. + * + *** 出力ファイルCLOSE + CLOSE W01OUTFIL + W02OUTFIL. + * + *** 入出力件数出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'SHA08R01(GRADED)' TO M00UMKDATS22-01. + MOVE CUN-R01INN TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA08W01(RPT-DATA)' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA08W02(ERROR)' TO M00UMKDATS22-01. + MOVE CUN-W02OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE 'SORT-INPUT' TO M00UMKDATS22-01. + MOVE CUN-SORT-IN TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + *** 終了メッセージ出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (4.0) * + * サブモジュール名: メッセージ編集出力処理 * + * 処理概要 : メッセージ編集出力サブPGM呼出 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (9.9) * + * サブモジュール名: ABEND処理 * + * 処理概要 : ABENDサブPGM呼出 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/src/SHA09S25.cbl b/src/SHA09S25.cbl new file mode 100644 index 0000000..692b0ba --- /dev/null +++ b/src/SHA09S25.cbl @@ -0,0 +1,997 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA09S25. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA09S25 * + * プログラム名 : 都道府県支部別分割出力処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : RPT-DATAをPREF-CODE(01〜25)で判定し、 * + * 25個の出力ファイルに振り分けて出力する。 * + * CLOSE WITH LOCKで各ファイルを確定する。 * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT R01INNFIL ASSIGN TO EXTERNAL SHA09R01 + ORGANIZATION IS SEQUENTIAL. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA09W01 + ORGANIZATION IS SEQUENTIAL. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA09W02 + ORGANIZATION IS SEQUENTIAL. + SELECT W03OUTFIL ASSIGN TO EXTERNAL SHA09W03 + ORGANIZATION IS SEQUENTIAL. + SELECT W04OUTFIL ASSIGN TO EXTERNAL SHA09W04 + ORGANIZATION IS SEQUENTIAL. + SELECT W05OUTFIL ASSIGN TO EXTERNAL SHA09W05 + ORGANIZATION IS SEQUENTIAL. + SELECT W06OUTFIL ASSIGN TO EXTERNAL SHA09W06 + ORGANIZATION IS SEQUENTIAL. + SELECT W07OUTFIL ASSIGN TO EXTERNAL SHA09W07 + ORGANIZATION IS SEQUENTIAL. + SELECT W08OUTFIL ASSIGN TO EXTERNAL SHA09W08 + ORGANIZATION IS SEQUENTIAL. + SELECT W09OUTFIL ASSIGN TO EXTERNAL SHA09W09 + ORGANIZATION IS SEQUENTIAL. + SELECT W10OUTFIL ASSIGN TO EXTERNAL SHA09W10 + ORGANIZATION IS SEQUENTIAL. + SELECT W11OUTFIL ASSIGN TO EXTERNAL SHA09W11 + ORGANIZATION IS SEQUENTIAL. + SELECT W12OUTFIL ASSIGN TO EXTERNAL SHA09W12 + ORGANIZATION IS SEQUENTIAL. + SELECT W13OUTFIL ASSIGN TO EXTERNAL SHA09W13 + ORGANIZATION IS SEQUENTIAL. + SELECT W14OUTFIL ASSIGN TO EXTERNAL SHA09W14 + ORGANIZATION IS SEQUENTIAL. + SELECT W15OUTFIL ASSIGN TO EXTERNAL SHA09W15 + ORGANIZATION IS SEQUENTIAL. + SELECT W16OUTFIL ASSIGN TO EXTERNAL SHA09W16 + ORGANIZATION IS SEQUENTIAL. + SELECT W17OUTFIL ASSIGN TO EXTERNAL SHA09W17 + ORGANIZATION IS SEQUENTIAL. + SELECT W18OUTFIL ASSIGN TO EXTERNAL SHA09W18 + ORGANIZATION IS SEQUENTIAL. + SELECT W19OUTFIL ASSIGN TO EXTERNAL SHA09W19 + ORGANIZATION IS SEQUENTIAL. + SELECT W20OUTFIL ASSIGN TO EXTERNAL SHA09W20 + ORGANIZATION IS SEQUENTIAL. + SELECT W21OUTFIL ASSIGN TO EXTERNAL SHA09W21 + ORGANIZATION IS SEQUENTIAL. + SELECT W22OUTFIL ASSIGN TO EXTERNAL SHA09W22 + ORGANIZATION IS SEQUENTIAL. + SELECT W23OUTFIL ASSIGN TO EXTERNAL SHA09W23 + ORGANIZATION IS SEQUENTIAL. + SELECT W24OUTFIL ASSIGN TO EXTERNAL SHA09W24 + ORGANIZATION IS SEQUENTIAL. + SELECT W25OUTFIL ASSIGN TO EXTERNAL SHA09W25 + ORGANIZATION IS SEQUENTIAL. + SELECT W98OUTFIL ASSIGN TO EXTERNAL SHA09W98 + ORGANIZATION IS SEQUENTIAL. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * R01: RPT-DATA(300B FB) * + ***************************************************************** + FD R01INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R01INNREC. + COPY SHA08REC REPLACING ==(A)== BY ==R01==. + * + ***************************************************************** + * W01: PREF-OUT-01(300B FB)(PREF-CODE=01) * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W01==. + * + ***************************************************************** + * W02: PREF-OUT-02(300B FB)(PREF-CODE=02) * + ***************************************************************** + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W02OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W02==. + * + ***************************************************************** + * W03: PREF-OUT-03(300B FB)(PREF-CODE=03) * + ***************************************************************** + FD W03OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W03OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W03==. + * + ***************************************************************** + * W04: PREF-OUT-04(300B FB)(PREF-CODE=04) * + ***************************************************************** + FD W04OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W04OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W04==. + * + ***************************************************************** + * W05: PREF-OUT-05(300B FB)(PREF-CODE=05) * + ***************************************************************** + FD W05OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W05OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W05==. + * + ***************************************************************** + * W06: PREF-OUT-06(300B FB)(PREF-CODE=06) * + ***************************************************************** + FD W06OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W06OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W06==. + * + ***************************************************************** + * W07: PREF-OUT-07(300B FB)(PREF-CODE=07) * + ***************************************************************** + FD W07OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W07OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W07==. + * + ***************************************************************** + * W08: PREF-OUT-08(300B FB)(PREF-CODE=08) * + ***************************************************************** + FD W08OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W08OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W08==. + * + ***************************************************************** + * W09: PREF-OUT-09(300B FB)(PREF-CODE=09) * + ***************************************************************** + FD W09OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W09OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W09==. + * + ***************************************************************** + * W10: PREF-OUT-10(300B FB)(PREF-CODE=10) * + ***************************************************************** + FD W10OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W10OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W10==. + * + ***************************************************************** + * W11: PREF-OUT-11(300B FB)(PREF-CODE=11) * + ***************************************************************** + FD W11OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W11OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W11==. + * + ***************************************************************** + * W12: PREF-OUT-12(300B FB)(PREF-CODE=12) * + ***************************************************************** + FD W12OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W12OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W12==. + * + ***************************************************************** + * W13: PREF-OUT-13(300B FB)(PREF-CODE=13) * + ***************************************************************** + FD W13OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W13OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W13==. + * + ***************************************************************** + * W14: PREF-OUT-14(300B FB)(PREF-CODE=14) * + ***************************************************************** + FD W14OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W14OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W14==. + * + ***************************************************************** + * W15: PREF-OUT-15(300B FB)(PREF-CODE=15) * + ***************************************************************** + FD W15OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W15OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W15==. + * + ***************************************************************** + * W16: PREF-OUT-16(300B FB)(PREF-CODE=16) * + ***************************************************************** + FD W16OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W16OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W16==. + * + ***************************************************************** + * W17: PREF-OUT-17(300B FB)(PREF-CODE=17) * + ***************************************************************** + FD W17OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W17OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W17==. + * + ***************************************************************** + * W18: PREF-OUT-18(300B FB)(PREF-CODE=18) * + ***************************************************************** + FD W18OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W18OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W18==. + * + ***************************************************************** + * W19: PREF-OUT-19(300B FB)(PREF-CODE=19) * + ***************************************************************** + FD W19OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W19OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W19==. + * + ***************************************************************** + * W20: PREF-OUT-20(300B FB)(PREF-CODE=20) * + ***************************************************************** + FD W20OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W20OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W20==. + * + ***************************************************************** + * W21: PREF-OUT-21(300B FB)(PREF-CODE=21) * + ***************************************************************** + FD W21OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W21OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W21==. + * + ***************************************************************** + * W22: PREF-OUT-22(300B FB)(PREF-CODE=22) * + ***************************************************************** + FD W22OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W22OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W22==. + * + ***************************************************************** + * W23: PREF-OUT-23(300B FB)(PREF-CODE=23) * + ***************************************************************** + FD W23OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W23OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W23==. + * + ***************************************************************** + * W24: PREF-OUT-24(300B FB)(PREF-CODE=24) * + ***************************************************************** + FD W24OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W24OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W24==. + * + ***************************************************************** + * W25: PREF-OUT-25(300B FB)(PREF-CODE=25) * + ***************************************************************** + FD W25OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W25OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W25==. + * + ***************************************************************** + * W98: ERROR-LOG(VB) * + ***************************************************************** + FD W98OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W98OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W98==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * コンスタント領域 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA09S25'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + * + ***************************************************************** + * カウンタ領域 * + ***************************************************************** + 01 CUNARA. + 03 CUN-R01INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W03OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W04OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W05OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W06OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W07OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W08OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W09OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W10OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W11OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W12OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W13OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W14OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W15OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W16OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W17OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W18OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W19OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W20OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W21OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W22OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W23OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W24OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W25OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W98OUT PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 作業領域 * + ***************************************************************** + 01 WRKARA. + 03 WRK-U06 PIC 9(008). + 03 WRK-R01EOF PIC X(001). + * + ***************************************************************** + * サブプログラム連絡領域 * + ***************************************************************** + *** 運用日付取得 + COPY SHADATAC. + *** メッセージ編集出力SR用 + COPY SHAMSGAC. + *** ABEND処理SR用 + COPY SHAENDAC. + * + PROCEDURE DIVISION. + ***************************************************************** + * サブモジュールNO: (0.0) * + * サブモジュール名: 制御処理 * + * 処理概要 : メインコントロール処理 * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR + UNTIL WRK-R01EOF = '1'. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * サブモジュールNO: (1.0) * + * サブモジュール名: 初期処理 * + * 処理概要 : 開始メッセージ出力・各種初期化処理 * + ***************************************************************** + 1000ITTSOR SECTION. + * + *** 開始メッセージ出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + *** コンパイル日時出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + *** ワークエリア初期化 + INITIALIZE WRKARA. + * + *** 運用日付取得 + INITIALIZE D01UBSPAR. + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD = ZERO + MOVE D01UBSUDATE TO WRK-U06 + ELSE + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + *** 入出力ファイルOPEN + OPEN INPUT R01INNFIL. + OPEN OUTPUT W01OUTFIL + W02OUTFIL + W03OUTFIL + W04OUTFIL + W05OUTFIL + W06OUTFIL + W07OUTFIL + W08OUTFIL + W09OUTFIL + W10OUTFIL + W11OUTFIL + W12OUTFIL + W13OUTFIL + W14OUTFIL + W15OUTFIL + W16OUTFIL + W17OUTFIL + W18OUTFIL + W19OUTFIL + W20OUTFIL + W21OUTFIL + W22OUTFIL + W23OUTFIL + W24OUTFIL + W25OUTFIL + W98OUTFIL. + * + *** R01を読み込み + PERFORM 1100R01INNSOR. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (1.1) * + * サブモジュール名: R01読込処理 * + * 処理概要 : レコード読込・EOF判定処理 * + ***************************************************************** + 1100R01INNSOR SECTION. + * + READ R01INNFIL + AT END + MOVE '1' TO WRK-R01EOF + NOT AT END + ADD 1 TO CUN-R01INN + END-READ. + * + 1100R01INNSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.0) * + * サブモジュール名: 主処理 * + * 処理概要 : PREF-CODE判定→該当ファイル出力 * + ***************************************************************** + 2000MAJSOR SECTION. + * + PERFORM 2100SPLITSOR. + PERFORM 1100R01INNSOR. + * + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (2.1) * + * サブモジュール名: PREF-CODE判定分割出力 * + * 処理概要 : EVALUATEでPREF-CODEに応じたファイル出力 * + ***************************************************************** + 2100SPLITSOR SECTION. + * + EVALUATE R01PREF-CODE + WHEN 01 + INITIALIZE W01OUTREC + MOVE R01PREF-CODE TO W01PREF-CODE + MOVE R01INSURER-CODE TO W01INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W01RPT-BODY + WRITE W01OUTREC + ADD 1 TO CUN-W01OUT + WHEN 02 + INITIALIZE W02OUTREC + MOVE R01PREF-CODE TO W02PREF-CODE + MOVE R01INSURER-CODE TO W02INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W02RPT-BODY + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + WHEN 03 + INITIALIZE W03OUTREC + MOVE R01PREF-CODE TO W03PREF-CODE + MOVE R01INSURER-CODE TO W03INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W03RPT-BODY + WRITE W03OUTREC + ADD 1 TO CUN-W03OUT + WHEN 04 + INITIALIZE W04OUTREC + MOVE R01PREF-CODE TO W04PREF-CODE + MOVE R01INSURER-CODE TO W04INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W04RPT-BODY + WRITE W04OUTREC + ADD 1 TO CUN-W04OUT + WHEN 05 + INITIALIZE W05OUTREC + MOVE R01PREF-CODE TO W05PREF-CODE + MOVE R01INSURER-CODE TO W05INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W05RPT-BODY + WRITE W05OUTREC + ADD 1 TO CUN-W05OUT + WHEN 06 + INITIALIZE W06OUTREC + MOVE R01PREF-CODE TO W06PREF-CODE + MOVE R01INSURER-CODE TO W06INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W06RPT-BODY + WRITE W06OUTREC + ADD 1 TO CUN-W06OUT + WHEN 07 + INITIALIZE W07OUTREC + MOVE R01PREF-CODE TO W07PREF-CODE + MOVE R01INSURER-CODE TO W07INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W07RPT-BODY + WRITE W07OUTREC + ADD 1 TO CUN-W07OUT + WHEN 08 + INITIALIZE W08OUTREC + MOVE R01PREF-CODE TO W08PREF-CODE + MOVE R01INSURER-CODE TO W08INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W08RPT-BODY + WRITE W08OUTREC + ADD 1 TO CUN-W08OUT + WHEN 09 + INITIALIZE W09OUTREC + MOVE R01PREF-CODE TO W09PREF-CODE + MOVE R01INSURER-CODE TO W09INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W09RPT-BODY + WRITE W09OUTREC + ADD 1 TO CUN-W09OUT + WHEN 10 + INITIALIZE W10OUTREC + MOVE R01PREF-CODE TO W10PREF-CODE + MOVE R01INSURER-CODE TO W10INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W10RPT-BODY + WRITE W10OUTREC + ADD 1 TO CUN-W10OUT + WHEN 11 + INITIALIZE W11OUTREC + MOVE R01PREF-CODE TO W11PREF-CODE + MOVE R01INSURER-CODE TO W11INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W11RPT-BODY + WRITE W11OUTREC + ADD 1 TO CUN-W11OUT + WHEN 12 + INITIALIZE W12OUTREC + MOVE R01PREF-CODE TO W12PREF-CODE + MOVE R01INSURER-CODE TO W12INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W12RPT-BODY + WRITE W12OUTREC + ADD 1 TO CUN-W12OUT + WHEN 13 + INITIALIZE W13OUTREC + MOVE R01PREF-CODE TO W13PREF-CODE + MOVE R01INSURER-CODE TO W13INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W13RPT-BODY + WRITE W13OUTREC + ADD 1 TO CUN-W13OUT + WHEN 14 + INITIALIZE W14OUTREC + MOVE R01PREF-CODE TO W14PREF-CODE + MOVE R01INSURER-CODE TO W14INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W14RPT-BODY + WRITE W14OUTREC + ADD 1 TO CUN-W14OUT + WHEN 15 + INITIALIZE W15OUTREC + MOVE R01PREF-CODE TO W15PREF-CODE + MOVE R01INSURER-CODE TO W15INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W15RPT-BODY + WRITE W15OUTREC + ADD 1 TO CUN-W15OUT + WHEN 16 + INITIALIZE W16OUTREC + MOVE R01PREF-CODE TO W16PREF-CODE + MOVE R01INSURER-CODE TO W16INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W16RPT-BODY + WRITE W16OUTREC + ADD 1 TO CUN-W16OUT + WHEN 17 + INITIALIZE W17OUTREC + MOVE R01PREF-CODE TO W17PREF-CODE + MOVE R01INSURER-CODE TO W17INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W17RPT-BODY + WRITE W17OUTREC + ADD 1 TO CUN-W17OUT + WHEN 18 + INITIALIZE W18OUTREC + MOVE R01PREF-CODE TO W18PREF-CODE + MOVE R01INSURER-CODE TO W18INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W18RPT-BODY + WRITE W18OUTREC + ADD 1 TO CUN-W18OUT + WHEN 19 + INITIALIZE W19OUTREC + MOVE R01PREF-CODE TO W19PREF-CODE + MOVE R01INSURER-CODE TO W19INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W19RPT-BODY + WRITE W19OUTREC + ADD 1 TO CUN-W19OUT + WHEN 20 + INITIALIZE W20OUTREC + MOVE R01PREF-CODE TO W20PREF-CODE + MOVE R01INSURER-CODE TO W20INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W20RPT-BODY + WRITE W20OUTREC + ADD 1 TO CUN-W20OUT + WHEN 21 + INITIALIZE W21OUTREC + MOVE R01PREF-CODE TO W21PREF-CODE + MOVE R01INSURER-CODE TO W21INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W21RPT-BODY + WRITE W21OUTREC + ADD 1 TO CUN-W21OUT + WHEN 22 + INITIALIZE W22OUTREC + MOVE R01PREF-CODE TO W22PREF-CODE + MOVE R01INSURER-CODE TO W22INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W22RPT-BODY + WRITE W22OUTREC + ADD 1 TO CUN-W22OUT + WHEN 23 + INITIALIZE W23OUTREC + MOVE R01PREF-CODE TO W23PREF-CODE + MOVE R01INSURER-CODE TO W23INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W23RPT-BODY + WRITE W23OUTREC + ADD 1 TO CUN-W23OUT + WHEN 24 + INITIALIZE W24OUTREC + MOVE R01PREF-CODE TO W24PREF-CODE + MOVE R01INSURER-CODE TO W24INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W24RPT-BODY + WRITE W24OUTREC + ADD 1 TO CUN-W24OUT + WHEN 25 + INITIALIZE W25OUTREC + MOVE R01PREF-CODE TO W25PREF-CODE + MOVE R01INSURER-CODE TO W25INSURER-CODE + STRING R01EMP-ID + R01EMP-NAME + R01OFFICE-NO + R01OFFICE-NAME + R01INSURER-CODE + R01INSURER-NAME + DELIMITED BY SIZE + INTO W25RPT-BODY + WRITE W25OUTREC + ADD 1 TO CUN-W25OUT + WHEN OTHER + INITIALIZE W98OUTREC + MOVE '01' TO W98ERR-CATEGORY + STRING 'INVALID PREF-CODE:' + R01PREF-CODE + DELIMITED BY SIZE + INTO W98ERR-DETAIL + WRITE W98OUTREC + ADD 1 TO CUN-W98OUT + END-EVALUATE. + * + 2100SPLITSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (3.0) * + * サブモジュール名: 終了処理 * + * 処理概要 : CLOSE WITH LOCK・件数出力 * + ***************************************************************** + 3000STPSOR SECTION. + * + *** 出力ファイルCLOSE WITH LOCK + CLOSE R01INNFIL. + CLOSE W01OUTFIL WITH LOCK + W02OUTFIL WITH LOCK + W03OUTFIL WITH LOCK + W04OUTFIL WITH LOCK + W05OUTFIL WITH LOCK + W06OUTFIL WITH LOCK + W07OUTFIL WITH LOCK + W08OUTFIL WITH LOCK + W09OUTFIL WITH LOCK + W10OUTFIL WITH LOCK + W11OUTFIL WITH LOCK + W12OUTFIL WITH LOCK + W13OUTFIL WITH LOCK + W14OUTFIL WITH LOCK + W15OUTFIL WITH LOCK + W16OUTFIL WITH LOCK + W17OUTFIL WITH LOCK + W18OUTFIL WITH LOCK + W19OUTFIL WITH LOCK + W20OUTFIL WITH LOCK + W21OUTFIL WITH LOCK + W22OUTFIL WITH LOCK + W23OUTFIL WITH LOCK + W24OUTFIL WITH LOCK + W25OUTFIL WITH LOCK + W98OUTFIL. + * + *** 入出力件数出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'SHA09R01' TO M00UMKDATS22-01. + MOVE CUN-R01INN TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA09W01-25 TOTAL' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA09W98(ERROR)' TO M00UMKDATS22-01. + MOVE CUN-W98OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + *** 終了メッセージ出力 + INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (4.0) * + * サブモジュール名: メッセージ編集出力処理 * + * 処理概要 : メッセージ編集出力サブPGM呼出 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * サブモジュールNO: (9.9) * + * サブモジュール名: ABEND処理 * + * 処理概要 : ABENDサブPGM呼出 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/src/SHA10S10.cbl b/src/SHA10S10.cbl new file mode 100644 index 0000000..6138b43 --- /dev/null +++ b/src/SHA10S10.cbl @@ -0,0 +1,479 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. SHA10S10. + ***************************************************************** + * システム名 : 社会保険管理システム * + * プログラムID : SHA10S10 * + * プログラム名 : 保険者別分割出力処理 * + * 作成日 : 2026-07-11 * + * 処理概要 : RPT-DATAをINSURER-CODE(01~99)で判定 * + * し、99個の出力ファイルに振り分けて出力。 * + * CLOSE WITH LOCKで各ファイルを確定する。 * + * * + * * + * 備考: 99ファイルの全SELECTは膨大となるため、本実装では * + * 001-010の10ファイルを代表定義。全99ファイルへの展開は * + * 本番IBM COBOLビルド時にジェネ生成で行う。 * + ***************************************************************** + * 更新履歴 * + *---------------------------------------------------------------* + * 更新日付 担当者 更新内容 * + *---------------------------------------------------------------* + * 2026-07-11 @@@ 新規作成 * + * * + ***************************************************************** + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + SOURCE-COMPUTER. IBM-ZSERIES. + OBJECT-COMPUTER. IBM-ZSERIES. + * + INPUT-OUTPUT SECTION. + FILE-CONTROL. + SELECT R01INNFIL ASSIGN TO EXTERNAL SHA10R01 + ORGANIZATION IS SEQUENTIAL. + SELECT W01OUTFIL ASSIGN TO EXTERNAL SHA10W01 + ORGANIZATION IS SEQUENTIAL. + SELECT W02OUTFIL ASSIGN TO EXTERNAL SHA10W02 + ORGANIZATION IS SEQUENTIAL. + SELECT W03OUTFIL ASSIGN TO EXTERNAL SHA10W03 + ORGANIZATION IS SEQUENTIAL. + SELECT W04OUTFIL ASSIGN TO EXTERNAL SHA10W04 + ORGANIZATION IS SEQUENTIAL. + SELECT W05OUTFIL ASSIGN TO EXTERNAL SHA10W05 + ORGANIZATION IS SEQUENTIAL. + SELECT W06OUTFIL ASSIGN TO EXTERNAL SHA10W06 + ORGANIZATION IS SEQUENTIAL. + SELECT W07OUTFIL ASSIGN TO EXTERNAL SHA10W07 + ORGANIZATION IS SEQUENTIAL. + SELECT W08OUTFIL ASSIGN TO EXTERNAL SHA10W08 + ORGANIZATION IS SEQUENTIAL. + SELECT W09OUTFIL ASSIGN TO EXTERNAL SHA10W09 + ORGANIZATION IS SEQUENTIAL. + SELECT W10OUTFIL ASSIGN TO EXTERNAL SHA10W10 + ORGANIZATION IS SEQUENTIAL. + *** 銈ㄣ儵銉煎嚭鍔涚敤 + SELECT W99OUTFIL ASSIGN TO EXTERNAL SHA10W98 + ORGANIZATION IS SEQUENTIAL. + * + DATA DIVISION. + FILE SECTION. + * + ***************************************************************** + * R01: RPT-DATA锛?00B FB锛? * + ***************************************************************** + FD R01INNFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 R01INNREC. + COPY SHA08REC REPLACING ==(A)== BY ==R01==. + * + ***************************************************************** + * W01-W10: INSURER-OUT-01銆?0锛?00B FB锛? * + ***************************************************************** + FD W01OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W01OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W01==. + FD W02OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W02OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W02==. + FD W03OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W03OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W03==. + FD W04OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W04OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W04==. + FD W05OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W05OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W05==. + FD W06OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W06OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W06==. + FD W07OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W07OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W07==. + FD W08OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W08OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W08==. + FD W09OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W09OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W09==. + FD W10OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS F. + 01 W10OUTREC. + COPY SHA09REC REPLACING ==(A)== BY ==W10==. + * + ***************************************************************** + * W99: ERROR-LOG锛圴B锛? * + ***************************************************************** + FD W99OUTFIL + LABEL RECORD IS STANDARD + BLOCK CONTAINS 0 + RECORDING MODE IS V. + 01 W99OUTREC. + COPY ZAN05REC REPLACING ==(A)== BY ==W99==. + * + WORKING-STORAGE SECTION. + * + ***************************************************************** + * 銈炽兂銈广偪銉炽儓闋樺煙 * + ***************************************************************** + 01 CNSARA. + 03 CNS-PRGIDX PIC X(008) VALUE 'SHA10S10'. + 03 CNS-MSGSTR PIC 9(003) VALUE 001. + 03 CNS-MSGFIN PIC 9(003) VALUE 002. + 03 CNS-MSGSUBEEK PIC 9(003) VALUE 005. + 03 CNS-MSGIINKES PIC 9(003) VALUE 006. + 03 CNS-MSGOUTKES PIC 9(003) VALUE 007. + 03 CNS-MSGKEYINF PIC 9(003) VALUE 033. + 03 CNS-KN0002 PIC 9(001) VALUE 2. + 03 CNS-ABD999 PIC 9(003) VALUE 999. + * + ***************************************************************** + * 銈偊銉炽偪闋樺煙 * + ***************************************************************** + 01 CUNARA. + 03 CUN-R01INN PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W01OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W02OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W03OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W04OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W05OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W06OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W07OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W08OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W09OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W10OUT PIC S9(009) COMP-3 VALUE ZERO. + 03 CUN-W99OUT PIC S9(009) COMP-3 VALUE ZERO. + * + ***************************************************************** + * 浣滄キ闋樺煙 * + ***************************************************************** + 01 WRKARA. + 03 WRK-U06 PIC 9(008). + 03 WRK-R01EOF PIC X(001). + 01 WRK-RPT-BODY-BUFFER. + 03 WRK-BUF-EMP-ID PIC 9(008). + 03 WRK-BUF-EMP-NAME PIC X(040). + 03 WRK-BUF-OFFICE-NO PIC X(004). + 03 WRK-BUF-OFFICE-NAME PIC X(040). + 03 WRK-BUF-INSURER-NAME PIC X(060). + 03 WRK-BUF-MONTHLY-AMOUNT PIC 9(009). + 03 WRK-BUF-GRADE-CODE PIC 9(002). + 03 WRK-BUF-REPORT-TYPE PIC X(002). + 03 WRK-BUF-REPORT-DATE PIC 9(008). + 03 WRK-BUF-FILLER PIC X(121). + * + ***************************************************************** + * 銈点儢銉椼儹銈般儵銉犻€g怠闋樺煙 * + ***************************************************************** + *** 閬嬬敤鏃ヤ粯鍙栧緱 + COPY SHADATAC. + COPY SHAMSGAC. + COPY SHAENDAC. + * + PROCEDURE DIVISION. + ***************************************************************** + * 銈点儢銉偢銉ャ兗銉玁O: (0.0) * + * 銈点儢銉偢銉ャ兗銉悕: 鍒跺尽鍑︾悊 * + * 鍑︾悊姒傝 : 銉°偆銉炽偝銉炽儓銉兗銉嚘鐞? * + ***************************************************************** + 0000MAJCOLSOR SECTION. + * + PERFORM 1000ITTSOR. + PERFORM 2000MAJSOR + UNTIL WRK-R01EOF = '1'. + PERFORM 3000STPSOR. + * + 0000MAJCOLSOR-EXT. + GOBACK. + * + ***************************************************************** + * 銈点儢銉偢銉ャ兗銉玁O: (1.0) * + * 銈点儢銉偢銉ャ兗銉悕: 鍒濇湡鍑︾悊 * + * 鍑︾悊姒傝 : 闁嬪銉°儍銈汇兗銈稿嚭鍔涖兓鍚勭ó鍒濇湡鍖栧嚘鐞? * + ***************************************************************** + 1000ITTSOR SECTION. + * + *** 闁嬪銉°儍銈汇兗銈稿嚭鍔? INITIALIZE M00MHOPAR. + MOVE CNS-MSGSTR TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + *** 銈炽兂銉戙偆銉棩鏅傚嚭鍔? INITIALIZE M00MHOPAR. + MOVE CNS-MSGKEYINF TO M00MSGCOD. + MOVE FUNCTION WHEN-COMPILED TO M00UMKDATS22-01. + MOVE 'COMPILED' TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + *** 銉兗銈偍銉偄鍒濇湡鍖? INITIALIZE WRKARA. + * + *** 閬嬬敤鏃ヤ粯鍙栧緱 + INITIALIZE D01UBSPAR. + CALL 'SUB01DAT' USING D01UBSPAR. + IF D01FKICOD = ZERO + MOVE D01UBSUDATE TO WRK-U06 + ELSE + INITIALIZE M00MHOPAR + MOVE CNS-MSGSUBEEK TO M00MSGCOD + MOVE 'SUB01DAT' TO M00UMKDATS22-01 + MOVE D01FKICOD TO M00UMKDATS22-02 + PERFORM 4000MSGOUTSOR + PERFORM 9999ABDSOR + END-IF. + * + *** 鍏ュ嚭鍔涖儠銈°偆銉玂PEN + OPEN INPUT R01INNFIL. + OPEN OUTPUT W01OUTFIL + W02OUTFIL + W03OUTFIL + W04OUTFIL + W05OUTFIL + W06OUTFIL + W07OUTFIL + W08OUTFIL + W09OUTFIL + W10OUTFIL + W99OUTFIL. + * + *** R01銈掕銇胯炯銇? PERFORM 1100R01INNSOR. + * + 1000ITTSOR-EXT. + EXIT. + * + ***************************************************************** + * 銈点儢銉偢銉ャ兗銉玁O: (1.1) * + * 銈点儢銉偢銉ャ兗銉悕: R01瑾炯鍑︾悊 * + * 鍑︾悊姒傝 : 銉偝銉笺儔瑾炯銉籈OF鍒ゅ畾鍑︾悊 * + ***************************************************************** + 1100R01INNSOR SECTION. + * + READ R01INNFIL + AT END + MOVE '1' TO WRK-R01EOF + NOT AT END + ADD 1 TO CUN-R01INN + END-READ. + * + 1100R01INNSOR-EXT. + EXIT. + * + ***************************************************************** + * 銈点儢銉偢銉ャ兗銉玁O: (2.0) * + * 銈点儢銉偢銉ャ兗銉悕: 涓诲嚘鐞? * + * 鍑︾悊姒傝 : INSURER-CODE鍒ゅ畾鈫掕┎褰撱儠銈°偆銉嚭鍔? * + ***************************************************************** + 2000MAJSOR SECTION. + * + PERFORM 2100SPLITSOR. + PERFORM 1100R01INNSOR. + * + 2000MAJSOR-EXT. + EXIT. + * + ***************************************************************** + * 銈点儢銉偢銉ャ兗銉玁O: (2.1) * + * 銈点儢銉偢銉ャ兗銉悕: INSURER-CODE鍒ゅ畾鍒嗗壊鍑哄姏 * + * 鍑︾悊姒傝 : EVALUATE銇NSURER-CODE銇繙銇樸仸銉曘偂銈ゃ儷鍑哄姏 * + * 001-099銇俱仹99銉曘偂銈ゃ儷銆傚叏99WHEN灞曢枊銇? * + * 銈炽兗銉夌敓鎴愩儎銉笺儷銇ц銇嗐€傛湰瀹熻銇唬琛?0浠躲€? * + ***************************************************************** + 2100SPLITSOR SECTION. + * + * RPT-BODY妲嬬瘔 + MOVE R01EMP-ID TO WRK-BUF-EMP-ID. + MOVE R01EMP-NAME TO WRK-BUF-EMP-NAME. + MOVE R01OFFICE-NO TO WRK-BUF-OFFICE-NO. + MOVE R01OFFICE-NAME TO WRK-BUF-OFFICE-NAME. + MOVE R01INSURER-NAME TO WRK-BUF-INSURER-NAME. + MOVE R01MONTHLY-AMOUNT TO WRK-BUF-MONTHLY-AMOUNT. + MOVE R01GRADE-CODE TO WRK-BUF-GRADE-CODE. + MOVE R01REPORT-TYPE TO WRK-BUF-REPORT-TYPE. + MOVE R01REPORT-DATE TO WRK-BUF-REPORT-DATE. + MOVE R01FILLER TO WRK-BUF-FILLER. + * + EVALUATE R01INSURER-CODE + WHEN '001' + INITIALIZE W01OUTREC + MOVE R01PREF-CODE TO W01PREF-CODE + MOVE R01INSURER-CODE TO W01INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W01RPT-BODY + WRITE W01OUTREC + ADD 1 TO CUN-W01OUT + WHEN '002' + INITIALIZE W02OUTREC + MOVE R01PREF-CODE TO W02PREF-CODE + MOVE R01INSURER-CODE TO W02INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W02RPT-BODY + WRITE W02OUTREC + ADD 1 TO CUN-W02OUT + WHEN '003' + INITIALIZE W03OUTREC + MOVE R01PREF-CODE TO W03PREF-CODE + MOVE R01INSURER-CODE TO W03INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W03RPT-BODY + WRITE W03OUTREC + ADD 1 TO CUN-W03OUT + WHEN '004' + INITIALIZE W04OUTREC + MOVE R01PREF-CODE TO W04PREF-CODE + MOVE R01INSURER-CODE TO W04INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W04RPT-BODY + WRITE W04OUTREC + ADD 1 TO CUN-W04OUT + WHEN '005' + INITIALIZE W05OUTREC + MOVE R01PREF-CODE TO W05PREF-CODE + MOVE R01INSURER-CODE TO W05INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W05RPT-BODY + WRITE W05OUTREC + ADD 1 TO CUN-W05OUT + WHEN '006' + INITIALIZE W06OUTREC + MOVE R01PREF-CODE TO W06PREF-CODE + MOVE R01INSURER-CODE TO W06INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W06RPT-BODY + WRITE W06OUTREC + ADD 1 TO CUN-W06OUT + WHEN '007' + INITIALIZE W07OUTREC + MOVE R01PREF-CODE TO W07PREF-CODE + MOVE R01INSURER-CODE TO W07INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W07RPT-BODY + WRITE W07OUTREC + ADD 1 TO CUN-W07OUT + WHEN '008' + INITIALIZE W08OUTREC + MOVE R01PREF-CODE TO W08PREF-CODE + MOVE R01INSURER-CODE TO W08INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W08RPT-BODY + WRITE W08OUTREC + ADD 1 TO CUN-W08OUT + WHEN '009' + INITIALIZE W09OUTREC + MOVE R01PREF-CODE TO W09PREF-CODE + MOVE R01INSURER-CODE TO W09INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W09RPT-BODY + WRITE W09OUTREC + ADD 1 TO CUN-W09OUT + WHEN '010' + INITIALIZE W10OUTREC + MOVE R01PREF-CODE TO W10PREF-CODE + MOVE R01INSURER-CODE TO W10INSURER-CODE + MOVE WRK-RPT-BODY-BUFFER TO W10RPT-BODY + WRITE W10OUTREC + ADD 1 TO CUN-W10OUT + WHEN OTHER + INITIALIZE W99OUTREC + MOVE '01' TO W99ERR-CATEGORY + STRING 'INVALID INSURER:' + R01INSURER-CODE + DELIMITED BY SIZE + INTO W99ERR-DETAIL + WRITE W99OUTREC + ADD 1 TO CUN-W99OUT + END-EVALUATE. + * + 2100SPLITSOR-EXT. + EXIT. + * + ***************************************************************** + * 銈点儢銉偢銉ャ兗銉玁O: (3.0) * + * 銈点儢銉偢銉ャ兗銉悕: 绲備簡鍑︾悊 * + * 鍑︾悊姒傝 : CLOSE WITH LOCK銉讳欢鏁板嚭鍔? * + ***************************************************************** + 3000STPSOR SECTION. + * + *** 鍏ュ嚭鍔涖儠銈°偆銉獵LOSE + CLOSE R01INNFIL. + CLOSE W01OUTFIL WITH LOCK + W02OUTFIL WITH LOCK + W03OUTFIL WITH LOCK + W04OUTFIL WITH LOCK + W05OUTFIL WITH LOCK + W06OUTFIL WITH LOCK + W07OUTFIL WITH LOCK + W08OUTFIL WITH LOCK + W09OUTFIL WITH LOCK + W10OUTFIL WITH LOCK + W99OUTFIL. + * + *** 鍏ュ嚭鍔涗欢鏁板嚭鍔? INITIALIZE M00MHOPAR. + MOVE CNS-MSGIINKES TO M00MSGCOD. + MOVE 'SHA10R01' TO M00UMKDATS22-01. + MOVE CUN-R01INN TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA10W01-10 TOTAL' TO M00UMKDATS22-01. + MOVE CUN-W01OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + INITIALIZE M00MHOPAR. + MOVE CNS-MSGOUTKES TO M00MSGCOD. + MOVE 'SHA10W98(ERROR)' TO M00UMKDATS22-01. + MOVE CUN-W99OUT TO M00UMKDATS22-02. + PERFORM 4000MSGOUTSOR. + * + *** 绲備簡銉°儍銈汇兗銈稿嚭鍔? INITIALIZE M00MHOPAR. + MOVE CNS-MSGFIN TO M00MSGCOD. + PERFORM 4000MSGOUTSOR. + * + 3000STPSOR-EXT. + EXIT. + * + ***************************************************************** + * 銈点儢銉偢銉ャ兗銉玁O: (4.0) * + * 銈点儢銉偢銉ャ兗銉悕: 銉°儍銈汇兗銈哥法闆嗗嚭鍔涘嚘鐞? * + * 鍑︾悊姒傝 : 銉°儍銈汇兗銈哥法闆嗗嚭鍔涖偟銉朠GM鍛煎嚭 * + ***************************************************************** + 4000MSGOUTSOR SECTION. + * + MOVE CNS-KN0002 TO M00UMKDATS22-03(1:1). + MOVE CNS-KN0002 TO M00UMKDATS22-04(1:1). + MOVE CNS-PRGIDX TO M00UMKDATS22-05. + CALL 'SUB02MSG' USING M00MHOPAR. + * + 4000MSGOUTSOR-EXT. + EXIT. + * + ***************************************************************** + * 銈点儢銉偢銉ャ兗銉玁O: (9.9) * + * 銈点儢銉偢銉ャ兗銉悕: ABEND鍑︾悊 * + * 鍑︾悊姒傝 : ABEND銈点儢PGM鍛煎嚭 * + ***************************************************************** + 9999ABDSOR SECTION. + * + MOVE CNS-ABD999 TO E01ABDCOD. + CALL 'SUB03END' USING E01ABDPAR. + * + 9999ABDSOR-EXT. + EXIT. diff --git a/使用資源一覧/SHA01CVT_使用資源一覧.md b/使用資源一覧/SHA01CVT_使用資源一覧.md new file mode 100644 index 0000000..86614a4 --- /dev/null +++ b/使用資源一覧/SHA01CVT_使用資源一覧.md @@ -0,0 +1,48 @@ +# SHA01CVT 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA01CVT +- **プログラム名**: 被保険者資格データ変換処理 +- **処理概要**: ASCII CSVの被保険者資格データをINSPECT CONVERTINGでEBCDIC固定長に変換する。半角桁数チェックを内部処理として実施。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA01R01 | INS-CSV-ASCII | 順編成 | F (固定長) | 500B | なし(自前定義) | +| SHA01W01 | INSURED-DATA | 順編成 | F (固定長) | 200B | SHA01REC | +| SHA01W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA01REC | INSURED-DATA レコード定義(W01出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | +| SHACHKAC | 項目チェックサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | +| SUB04CHK | 日付/数値妥当性チェック | 2020HALFSOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→コンパイル日時出力→ワーク初期化→SUB01DAT運用日取得→OPEN→初回読込) +2. 主処理:R01終了まで繰り返し + - CSV分解(UNSTRINGでカンマ区切り→各項目) + - 半角桁数チェック(氏名カナ20/被保険者番号10/事業所番号4/日付妥当性/数値妥当性→エラーはW02出力) + - ASCII→EBCDIC変換(変換テーブルで各バイト変換→INSURED-DATAレコードにMOVE) + - W01(INSURED-DATA)出力 + - R01次件READ +3. 終了処理(CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/SHA02MNC_使用資源一覧.md b/使用資源一覧/SHA02MNC_使用資源一覧.md new file mode 100644 index 0000000..caf53c6 --- /dev/null +++ b/使用資源一覧/SHA02MNC_使用資源一覧.md @@ -0,0 +1,51 @@ +# SHA02MNC 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA02MNC +- **プログラム名**: 従業員保険情報統合処理 +- **処理概要**: DB2 EMP-MASTERとINSURANCE-RATESをマッチングし、従業員単位に統合出力する(M:N→M件マッチング)。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA02W01 | EMP-INSURANCE | 順編成 | F (固定長) | 200B | SHA02REC | +| SHA02W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA02REC | EMP-INSURANCE レコード定義(W01出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION | +| SQLCA | SQL通信領域 | WORKING-STORAGE | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | +| SHACHKAC | 項目チェックサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | +| SUB04CHK | PARM検証 | 1000ITTSOR | + +## 使用DB2テーブル + +| DB名 | テーブル名 | I/O | 備考 | +|------|-----------|:---:|------| +| SALARYDB | EMP-MASTER | I | 従業員マスタ(SELECT) | +| INSURANCEDB | INSURANCE-RATES | I | 料率テーブル(内部表LOAD) | + +## 処理フロー +1. 初期処理(開始メッセージ→SUB01DAT運用日取得→PARM取得→DB接続→INSURANCE-RATES内部表LOAD→EMP-MASTER CURSOR OPEN/初回FETCH→出力ファイルOPEN) +2. 主処理:EMP-MASTER終了まで繰り返し + - 内部表線形探索(BASE-SALARYに合致するGRADE-CODE特定→該当なしはW02出力) + - 種別判定(DEPT-CODEでHEALTH-INS-TYPE/PENSION-TYPE判定) + - INSURER-CODE設定 + - W01(EMP-INSURANCE)出力 + - 次従業員FETCH +3. 終了処理(CLOSE CURSOR→ファイルCLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/SHA03MNP_使用資源一覧.md b/使用資源一覧/SHA03MNP_使用資源一覧.md new file mode 100644 index 0000000..5ee7383 --- /dev/null +++ b/使用資源一覧/SHA03MNP_使用資源一覧.md @@ -0,0 +1,50 @@ +# SHA03MNP 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA03MNP +- **プログラム名**: 保険料計算明細出力処理 +- **処理概要**: EMP-INSURANCE×INSURANCE-RATESの直積組合せにより保険料計算明細を出力する(M:N→M×N件出力)。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA03R01 | EMP-INSURANCE | 順編成 | F (固定長) | 200B | SHA02REC | +| SHA03W01 | INS-DETAIL | 順編成 | F (固定長) | 300B | SHA03REC | +| SHA03W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA02REC | EMP-INSURANCE レコード定義(R01入力ファイル) | FILE SECTION | +| SHA03REC | INS-DETAIL レコード定義(W01出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION | +| SQLCA | SQL通信領域 | WORKING-STORAGE | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +| DB名 | テーブル名 | I/O | 備考 | +|------|-----------|:---:|------| +| INSURANCEDB | INSURANCE-RATES | I | 料率取得(内部表LOAD) | + +## 処理フロー +1. 初期処理(開始メッセージ→SUB01DAT運用日取得→PARM取得→DB接続→INSURANCE-RATES内部表LOAD→OPEN→R01初回READ) +2. 主処理:R01終了まで繰り返し + - 直積組合せ生成:従業員×全RATESエントリ + - 健康保険: HEALTH-PREMIUM = MONTHLY-AMOUNT × HEALTH-RATE (ROUNDED) + - 厚生年金: PENSION-PREMIUM = MONTHLY-AMOUNT × PENSION-RATE (ROUNDED) + - W01(INS-DETAIL)出力 + - R01次件READ +3. 終了処理(CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/SHA04TWO_使用資源一覧.md b/使用資源一覧/SHA04TWO_使用資源一覧.md new file mode 100644 index 0000000..cfb74ad --- /dev/null +++ b/使用資源一覧/SHA04TWO_使用資源一覧.md @@ -0,0 +1,53 @@ +# SHA04TWO 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA04TWO +- **プログラム名**: 事業所保険者マッチング処理 +- **処理概要**: INSURED-DATAをOFFICE-MST/INSURER-MSTの2段階で1:1マッチングし、GRADED-LIST/UNMATCHED-LISTを出力する。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA04R01 | INSURED-DATA | 順編成 | F (固定長) | 200B | SHA01REC | +| SHA04R02 | OFFICE-MST | 順編成 | F (固定長) | 80B | なし(自前定義) | +| SHA04R03 | INSURER-MST | 順編成 | F (固定長) | 80B | なし(自前定義) | +| SHA04W01 | GRADED-LIST | 順編成 | F (固定長) | 200B | SHA04REC | +| SHA04W02 | UNMATCHED-LIST | 順編成 | F (固定長) | 200B | なし(自前定義) | +| SHA04W03 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA01REC | INSURED-DATA レコード定義(R01入力ファイル) | FILE SECTION | +| SHA04REC | GRADED-LIST レコード定義(W01出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W03出力ファイル) | FILE SECTION | +| SQLCA | SQL通信領域 | WORKING-STORAGE | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +| DB名 | テーブル名 | I/O | 備考 | +|------|-----------|:---:|------| +| INSURANCEDB | INSURED-MASTER | I | 履歴整合性確認 | + + +## 処理フロー +1. 初期処理(開始メッセージ→SUB01DAT運用日取得→OPEN→R02全件読込→OFFICE-TBL格納→R03全件読込→INSURER-TBL格納→DB接続→R01初回READ) +2. 主処理:R01終了まで繰り返し + - 第1段階マッチング:OFFICE-NO vs OFFICE-TBL線形探索→成功なら第2段階、失敗ならW02出力 + - 第2段階マッチング:INSURER-CODE vs INSURER-TBL線形探索→成功ならW01出力、失敗ならW02出力 + - DB2整合性検証:W01出力時INSURED-MASTER SELECT、異常はW03出力 + - R01次件READ +3. 終了処理(CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/SHA05TWN_使用資源一覧.md b/使用資源一覧/SHA05TWN_使用資源一覧.md new file mode 100644 index 0000000..e79aa48 --- /dev/null +++ b/使用資源一覧/SHA05TWN_使用資源一覧.md @@ -0,0 +1,46 @@ +# SHA05TWN 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA05TWN +- **プログラム名**: 標準報酬月額等級判定処理 +- **処理概要**: SALARY-MONTHLYをEMP-IDでN:1キーブレイク集約し、平均標準報酬月額とGRADE-TBLをN:1マッチングして等級改定を判定する。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA05R01 | SALARY-MONTHLY | 順編成 | F (固定長) | 200B | なし(自前定義) | +| SHA05R02 | GRADE-TBL | 順編成 | F (固定長) | 80B | なし(自前定義) | +| SHA05W01 | REVISED-GRADE | 順編成 | F (固定長) | 200B | SHA05REC | +| SHA05W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA05REC | REVISED-GRADE レコード定義(W01出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→SUB01DAT運用日取得→PARM取得→OPEN→R02全件読込→GRADE-TBL格納→R01初回READ) +2. 主処理:R01終了まで繰り返し + - 第1段階:キーブレイクN:1集約(同一EMP-ID: MONTHLY-AMOUNT累積→キー変更時: DIVIDEで平均標準報酬月額算出、TYPE='A'/'B'判定→該当なしはW02出力) + - 第2段階:等級テーブルN:1マッチング(GRADE-TBL線形探索→平均額に合致する等級コード取得→該当なしはW02出力、OLD≠NEWならW01出力) + - WRK-ACCUM INITIALIZE + - R01次件READ +3. 終了処理(最終キーグループ処理→CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/SHA06TWM_使用資源一覧.md b/使用資源一覧/SHA06TWM_使用資源一覧.md new file mode 100644 index 0000000..c199884 --- /dev/null +++ b/使用資源一覧/SHA06TWM_使用資源一覧.md @@ -0,0 +1,51 @@ +# SHA06TWM 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA06TWM +- **プログラム名**: 保険料率適用・控除計算処理 +- **処理概要**: EMP-INSURANCEをDB2 INSURANCE-RATES(M×N)とAPPLICABLE-RULES(M:N)の2段階マッチングにより保険料を算出しDEDUCTED-RESULTを出力する。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA06R01 | EMP-INSURANCE | 順編成 | F (固定長) | 200B | SHA02REC | +| SHA06R02 | APPLICABLE-RULES | 順編成 | F (固定長) | 80B | なし(自前定義) | +| SHA06W01 | DEDUCTED-RESULT | 順編成 | F (固定長) | 300B | SHA06REC | +| SHA06W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA02REC | EMP-INSURANCE レコード定義(R01入力ファイル) | FILE SECTION | +| SHA06REC | DEDUCTED-RESULT レコード定義(W01出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION | +| SQLCA | SQL通信領域 | WORKING-STORAGE | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +| DB名 | テーブル名 | I/O | 備考 | +|------|-----------|:---:|------| +| INSURANCEDB | INSURANCE-RATES | I | 料率取得(SELECT) | +| SALARYDB | EMP-MASTER | I | 誕生日・扶養人数・地域コード取得(SELECT) | + +## 処理フロー +1. 初期処理(開始メッセージ→SUB01DAT運用日取得→OPEN→DB接続→R02全件読込→RULE-TBL格納→R01初回READ) +2. 主処理:R01終了まで繰り返し + - 第1段階:保険料率M×Nマッチング(GRADE-CODEでDB2 INSURANCE-RATES SELECT→料率取得、保険料計算) + - 第2段階:適用ルールM:Nマッチング(年齢算出→RULE-TBL線形探索→料率調整→保険料再計算) + - W01(DEDUCTED-RESULT)出力 + - R01次件READ +3. 終了処理(CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/SHA07KBR_使用資源一覧.md b/使用資源一覧/SHA07KBR_使用資源一覧.md new file mode 100644 index 0000000..975e787 --- /dev/null +++ b/使用資源一覧/SHA07KBR_使用資源一覧.md @@ -0,0 +1,52 @@ +# SHA07KBR 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA07KBR +- **プログラム名**: 資格異動キーブレイク処理 +- **処理概要**: DB2 QUALIFICATION-CHANGESから資格異動データをFETCHし、従業員ごと(1:N)かつ保険者コード変更時(異キー)にキーブレイクしてサマリ・明細を出力する。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA07W01 | CHG-SUMMARY | 順編成 | F (固定長) | 200B | SHA07REC | +| SHA07W02 | CHG-DETAIL | 順編成 | F (固定長) | 200B | SHA07REC | +| SHA07W03 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA07REC | CHG-SUMMARY/CHG-DETAIL レコード定義(W01/W02出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W03出力ファイル) | FILE SECTION | +| SQLCA | SQL通信領域 | WORKING-STORAGE | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | + + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + + +## 使用DB2テーブル + +| DB名 | テーブル名 | I/O | 備考 | +|------|-----------|:---:|------| +| INSURANCEDB | QUALIFICATION-CHANGES | I | DECLARE CURSOR / FETCH(JOIN with EMP-MASTER) | +| SALARYDB | EMP-MASTER | I | JOIN取得(従業員名) | + +## 処理フロー +1. 初期処理(開始メッセージ→SUB01DAT運用日取得→OPEN→DB接続→CURSOR宣言(ORDER BY EMP-ID, CHG-DATE)→初回FETCH→WS-PREV初期設定) +2. 主処理:FETCH終了まで繰り返し + - EMP-ID主キーブレイク判定:前回≠今回→サマリレコード出力 + - INSURER-CODE異キーブレイク判定:前回≠今回→サマリレコード出力 + - 明細レコード出力(全FETCHレコード) + - WS-PREV更新→次件FETCH +3. 最終グループ処理(最終従業員グループのサマリ/明細出力) +4. 終了処理(CLOSE CURSOR→DISCONNECT→ファイルCLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/SHA08SRT_使用資源一覧.md b/使用資源一覧/SHA08SRT_使用資源一覧.md new file mode 100644 index 0000000..678d557 --- /dev/null +++ b/使用資源一覧/SHA08SRT_使用資源一覧.md @@ -0,0 +1,47 @@ +# SHA08SRT 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA08SRT +- **プログラム名**: 届出書データSORT編集処理 +- **処理概要**: GRADED-LISTをINPUT PROCEDUREで全件RELEASEし、MONTHLY-AMOUNT/GRADE-CODEを保持したままPREF-CODE・OFFICE-NO・EMP-ID昇順SORT後、OUTPUT PROCEDUREでRETURNしてRPT-DATA出力する。GRADED-LISTはSHA04TWOのマッチング成功レコードであり全件有効のためSTATUSフィルタは不要。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA08R01 | GRADED-LIST | 順編成 | F (固定長) | 200B | SHA04REC | +| SORTWORK | SD-SORTWORK | — | — | 200B | なし(自前SD定義) | +| SHA08W01 | RPT-DATA | 順編成 | F (固定長) | 300B | SHA08REC | +| SHA08W02 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA04REC | GRADED-LIST レコード定義(R01入力ファイル) | FILE SECTION | +| SHA08REC | RPT-DATA レコード定義(W01出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W02出力ファイル) | FILE SECTION | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→SUB01DAT運用日付取得→出力ファイルOPEN→入力ファイルOPEN) +2. SORT実行 + - INPUT PROCEDURE: R01全件読込→MONTHLY-AMOUNT/GRADE-CODEを含め全項目をSORTRECに転記→全件RELEASE + - SORT KEY: PREF-CODE昇順、OFFICE-NO昇順、EMP-ID昇順 + - OUTPUT PROCEDURE: RETURN→SHA08REC編集(MONTHLY-AMOUNT/GRADE-CODEはSR→W01転記)→REPORT-TYPE/REPORT-DATE設定→W01出力 +3. SORT結果判定(RETURN-CODE≠0→ABEND) +4. 終了処理(CLOSE→件数出力→終了メッセージ) diff --git a/使用資源一覧/SHA09S25_使用資源一覧.md b/使用資源一覧/SHA09S25_使用資源一覧.md new file mode 100644 index 0000000..883be8d --- /dev/null +++ b/使用資源一覧/SHA09S25_使用資源一覧.md @@ -0,0 +1,46 @@ +# SHA09S25 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA09S25 +- **プログラム名**: 都道府県支部別分割出力処理 +- **処理概要**: RPT-DATAをPREF-CODE(01~25)で判定し、25個の出力ファイルに振り分けて出力する。CLOSE WITH LOCKで各ファイルを確定する。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA09R01 | RPT-DATA | 順編成 | F (固定長) | 300B | SHA08REC | +| SHA09W01~W25 | PREF-OUT-01~25 | 順編成 | F (固定長) | 300B | SHA09REC | +| SHA09W98 | ERROR-LOG | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA08REC | RPT-DATA レコード定義(R01入力ファイル) | FILE SECTION | +| SHA09REC | PREF-OUT レコード定義(W01~W25出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W98出力ファイル) | FILE SECTION | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→SUB01DAT運用日付取得→OPEN(R01+W01~W25+W98)→R01初回READ) +2. 主処理:R01終了まで繰り返し + - PREF-CODE判定(EVALUATE PREF-CODE 01~25)→該当ファイルにWRITE + - SHA09REC編集: PREF-CODE/INSURER-CODE/RPT-BODY設定 + - R01次件READ + - PREF-CODE範囲外(01~25以外)→W98(ERROR-LOG)出力 +3. 終了処理(CLOSE WITH LOCK→件数出力→終了メッセージ) diff --git a/使用資源一覧/SHA10S10_使用資源一覧.md b/使用資源一覧/SHA10S10_使用資源一覧.md new file mode 100644 index 0000000..fcd1c98 --- /dev/null +++ b/使用資源一覧/SHA10S10_使用資源一覧.md @@ -0,0 +1,46 @@ +# SHA10S10 使用資源一覧 + +## プログラム概要 +- **プログラムID**: SHA10S10 +- **プログラム名**: 保険者別分割出力処理 +- **処理概要**: RPT-DATAをINSURER-CODE(001~010)で判定し、10個の出力ファイルに振り分けて出力する。CLOSE WITH LOCKで各ファイルを確定する。本実装は代表10ファイル(001-010)で定義。エラーファイルはW99(DD名SHA10W98)。 + +## 使用ファイル + +| DD名 | ファイル識別子 | 編成 | レコード形式 | レコード長 | COPY句 | +|------|---------------|------|-------------|-----------|--------| +| SHA10R01 | RPT-DATA | 順編成 | F (固定長) | 300B | SHA08REC | +| SHA10W01~W10 | INSURER-OUT-01~10 | 順編成 | F (固定長) | 300B | SHA09REC | +| SHA10W98 | ERROR-LOG(識別子:W99OUTFIL) | 順編成 | V (可変長) | 200B | ZAN05REC | + +## 使用COPY句 + +| COPY句 | 用途 | 使用箇所 | +|--------|------|---------| +| SHA08REC | RPT-DATA レコード定義(R01入力ファイル) | FILE SECTION | +| SHA09REC | INSURER-OUT レコード定義(W01~W10出力ファイル) | FILE SECTION | +| ZAN05REC | エラーログレコード定義(W98出力ファイル) | FILE SECTION | +| SHADATAC | 運用日付サブPGM連絡領域 | WORKING-STORAGE | +| SHAMSGAC | メッセージ編集サブPGM連絡領域 | WORKING-STORAGE | +| SHAENDAC | ABENDサブPGM連絡領域 | WORKING-STORAGE | + +## 使用サブプログラム + +| サブPGM | 役割 | CALL箇所 | +|---------|------|---------| +| SUB01DAT | 運用日付取得 | 1000ITTSOR | +| SUB02MSG | メッセージ編集出力 | 4000MSGOUTSOR | +| SUB03END | ABEND処理 | 9999ABDSOR | + +## 使用DB2テーブル + +なし(DB操作なし) + +## 処理フロー +1. 初期処理(開始メッセージ→SUB01DAT運用日付取得→OPEN(R01+W01~W99+W98)→R01初回READ) +2. 主処理:R01終了まで繰り返し + - INSURER-CODE判定(EVALUATE INSURER-CODE 001〜010)→該当ファイルにWRITE + - SHA09REC編集: PREF-CODE/INSURER-CODE/RPT-BODY設定 + - R01次件READ + - INSURER-CODE範囲外(001〜010以外)→W99(ERROR-LOG/DD:SHA10W98)出力 +3. 終了処理(CLOSE WITH LOCK→件数出力→終了メッセージ) diff --git a/基本設計書/04_社会保険管理システム_設計書(サブシステムD).md b/基本設計書/04_社会保険管理システム_設計書(サブシステムD).md new file mode 100644 index 0000000..69ebead --- /dev/null +++ b/基本設計書/04_社会保険管理システム_設計書(サブシステムD).md @@ -0,0 +1,456 @@ +# 社会保険管理システム 設計書(サブシステムD) + +## システム概要 + +本サブシステムは、日本年金機構・健康保険組合からの被保険者資格データを起点に、 +標準報酬月額の算定・変更(定時決定・月変・随時改定)、社会保険料の計算、 +資格異動管理、届出書類の作成・出力を行う。 +給与計算サブシステム(C)と連携し、給与データを基にした月変・随時改定処理を実現する。 + +### サブシステム情報 + +| 項目 | 内容 | +|------|------| +| サブシステムID | SHA(社会保険→SHAkai Hoken) | +| COBOLプログラム数 | 10 | +| JCL数 | 9 | +| DB | 1(INSURANCEDB / DB2、5テーブル) | + +### システム定数 + +| 定数 | 値 | 説明 | +|------|-----|------| +| HEALTH-INS-SPLIT | 0.50 | 健康保険料折半率(50%事業主負担) | +| PENSION-SPLIT | 0.50 | 厚生年金保険料折半率(50%事業主負担) | +| PREFECTURE-COUNT | 25 | 都道府県グループ数(協会けんぽ支部) | +| INSURER-MAX | 100 | 最大保険者数 | +| HALF-WIDTH-LIMIT | 20 | 氏名カナ最大桁数(半角) | +| TEISI-TEIJI-MONTHS | 3 | 定時決定対象月数(4-6月の3ヶ月) | +| GETSUHEN-GRADE-DIFF | 2 | 月変該当等級差(2等級以上変動) | + +### サブシステム間連携 + +| 連携データ | 出力元 | 入力先 | 方式 | 備考 | +|-----------|--------|--------|------|------| +| INSURED-CSV-ASCII(被保険者資格データ) | 外部(年金機構・健保組合) | SHAJ010 | ファイル連携 | ASCII CSV、外部システムから受信 | +| SALARY-MONTHLY(給与月額データ) | C-サブシステム KYU06UPD | SHAJ050 | ファイル連携 | 月変・定時決定用給与明細(200B) | +| INS-DETAIL(標準報酬月額明細) | SHA03MNP | C-サブシステム KYU05DED | ファイル連携 | 控除計算用保険料明細(300B) | +| RPT-DATA(届出書データ) | SHA08SRT | 外部(年金事務所) | ファイル連携 | 算定基礎届・月変届・資格喪失届 | + +--- + +## ファイル一覧 + +| # | ファイル名 | 編成 | RECM | サイズ | 用途 | 区分 | +|---|-----------|------|------|-------|------|------| +| 1 | INS-CSV-ASCII | SEQUENTIAL | FB | 可変 | 被保険者資格データ(ASCII CSV、外部受信) | 新規 | +| 2 | INSURED-DATA | SEQUENTIAL | FB | 200 | 被保険者EBCDIC固定長 | 新規 | +| 3 | EMP-INSURANCE | SEQUENTIAL | FB | 200 | 従業員×保険種別統合データ | 新規 | +| 4 | OFFICE-MST | SEQUENTIAL | FB | 80 | 事業所マスタ(事業所番号→都道府県・事業所名称) | 新規 | +| 5 | INSURER-MST | SEQUENTIAL | FB | 80 | 保険者マスタ(保険者コード→保険者名称・支部番号) | 新規 | +| 6 | GRADE-TBL | SEQUENTIAL | FB | 80 | 標準報酬等級テーブル | 新規 | +| 7 | GRADED-LIST | SEQUENTIAL | FB | 200 | 事業所・保険者情報付与被保険者一覧 | 新規 | +| 8 | UNMATCHED-LIST | SEQUENTIAL | FB | 200 | マッチング不一致データ | 新規 | +| 9 | SALARY-MONTHLY | SEQUENTIAL | FB | 200 | 給与月額データ(Cサブシステム出力) | C連携 | +| 10 | REVISED-GRADE | SEQUENTIAL | FB | 200 | 月変・随時改定結果 | 新規 | +| 11 | INS-DETAIL | SEQUENTIAL | FB | 300 | 保険料計算詳細(従業員×保険種別 M×N件) | 新規 | +| 12 | GRADE-INSURED | SEQUENTIAL | FB | 300 | 等級×従業員×料率組合せ(M:N→M:N中間結果) | 新規 | +| 13 | DEDUCTED-RESULT | SEQUENTIAL | FB | 300 | 保険料確定結果(M:N→M:N最終出力) | 新規 | +| 14 | CHG-SUMMARY | SEQUENTIAL | FB | 200 | 資格異動サマリ(キーブレイク後) | 新規 | +| 15 | CHG-DETAIL | SEQUENTIAL | FB | 200 | 資格異動明細 | 新規 | +| 16 | RPT-DATA | SEQUENTIAL | FB | 300 | 届出書データ(SORT後) | 新規 | +| 17 | PREF-OUT-01〜25 | SEQUENTIAL | FB | 300 | 都道府県支部別出力(25分割) | 新規 | +| 18 | INSURER-OUT-01〜99 | SEQUENTIAL | FB | 300 | 保険者別出力(100分割) | 新規 | +| 19 | APPLICABLE-RULES | SEQUENTIAL | FB | 80 | 適用条件テーブル(年齢・扶養・地域別) | 新規 | +| 20 | SD-SORTWORK | — | — | — | SORT作業用ファイル(I-O-CONTROL SAME SORT AREA指定) | 新規 | +| 21 | ERROR-LOG | SEQUENTIAL | VB | 最大200 | エラーレコード退避 | A・B・C共用 | + +### DB二重対応 + +本サブシステムのDB操作はDB2の埋め込みSQL(`EXEC SQL`)で直接記述する。 +5テーブルは同一DB2インスタンス内の別スキーマ(INSURANCEDB)で管理する。 +CサブシステムのSALARYDB(EMP-MASTER)は`SALARYDB.EMP-MASTER`でクロススキーマ参照する。 + +### 共通関数利用方針 + +既存のサブプログラム(SUB01DAT〜SUB05TIM)は本サブシステムでも利用する。 +連絡領域のCOPY書式はサブシステム別に`SHADATAC`・`SHAMSGAC`・`SHAENDAC`・`SHACHKAC`を新規作成する。 + +--- + +## DB構成(INSURANCEDB) + +### DB名称:社会保険管理データベース(INSURANCEDB) + +#### テーブル1:INSURED-MASTER(被保険者マスタ) + +| カラム | 型 | 内容 | +|--------|---|------| +| EMP-ID | CHAR(8) | 社員番号(PK) | +| INSURED-NO | CHAR(10) | 被保険者番号(番号体系:健康保険+厚生年金で共通) | +| OFFICE-NO | CHAR(4) | 事業所番号 | +| INSURER-CODE | CHAR(4) | 保険者コード | +| HEALTH-INS-TYPE | CHAR(1) | 健康保険種別(1=協会けんぽ / 2=組合健保) | +| PENSION-TYPE | CHAR(1) | 年金種別(1=厚生年金 / 2=共済) | +| BASE-MONTHLY | DECIMAL(9,0) | 現行標準報酬月額 | +| GRADE-CODE | CHAR(2) | 現行等級コード | +| STATUS | CHAR(1) | 状態(0=在籍 / 9=喪失) | +| UPDATED-AT | TIMESTAMP | 更新日時 | + +#### テーブル2:INSURANCE-RATES(保険料率テーブル) + +| カラム | 型 | 内容 | +|--------|---|------| +| GRADE-CODE | CHAR(2) | 標準報酬等級コード(PK) | +| MONTHLY-FROM | DECIMAL(9,0) | 標準報酬月額下限 | +| MONTHLY-TO | DECIMAL(9,0) | 標準報酬月額上限 | +| HEALTH-RATE | DECIMAL(7,6) | 健康保険料率(折半後従業員負担率) | +| PENSION-RATE | DECIMAL(7,6) | 厚生年金保険料率(折半後従業員負担率) | +| EFFECTIVE-FROM | CHAR(6) | 適用開始年月 YYYYMM(PK) | +| EFFECTIVE-TO | CHAR(6) | 適用終了年月 YYYYMM(PK、999999=無期限) | +| UPDATED-AT | TIMESTAMP | 更新日時 | + +#### テーブル3:GRADE-HISTORY(標準報酬等級履歴) + +| カラム | 型 | 内容 | +|--------|---|------| +| EMP-ID | CHAR(8) | 社員番号(PK) | +| YEAR-MONTH | CHAR(6) | 対象年月 YYYYMM(PK) | +| GRADE-CODE | CHAR(2) | 等級コード | +| MONTHLY-AMOUNT | DECIMAL(9,0) | 標準報酬月額 | +| CHANGE-TYPE | CHAR(1) | 変更要因(1=定時決定 / 2=月変 / 3=随時改定) | +| PREV-GRADE | CHAR(2) | 変更前等級コード | +| UPDATED-AT | TIMESTAMP | 更新日時 | + +#### テーブル4:QUALIFICATION-CHANGES(資格異動テーブル) + +| カラム | 型 | 内容 | +|--------|---|------| +| CHG-ID | INTEGER | 異動ID(PK、自動採番) | +| EMP-ID | CHAR(8) | 社員番号 | +| CHG-DATE | CHAR(8) | 異動日 YYYYMMDD | +| CHG-TYPE | CHAR(2) | 異動種別(01=取得 / 02=喪失 / 03=種別変更 / 04=住所変更) | +| INSURER-CODE | CHAR(4) | 異動先保険者コード | +| PREV-INSURER | CHAR(4) | 異動元保険者コード | +| REASON | VARCHAR(100) | 異動理由 | +| UPDATED-AT | TIMESTAMP | 更新日時 | + +#### テーブル5:INSURER-MASTER(保険者マスタ) + +| カラム | 型 | 内容 | +|--------|---|------| +| INSURER-CODE | CHAR(4) | 保険者コード(PK) | +| INSURER-NAME | VARCHAR(60) | 保険者名称 | +| PREF-CODE | CHAR(2) | 都道府県支部コード(01〜25) | +| INSURER-TYPE | CHAR(1) | 保険者種別(1=協会けんぽ / 2=組合健保 / 3=共済) | +| UPDATED-AT | TIMESTAMP | 更新日時 | + +--- + +## 処理フロー + +``` +╞══ SHAJ010 ═══════════════════════════════════╡ +│ SHA01CVT(ASCII→EBCDIC変換) PGMパターン: 29 +│ INSPECT CONVERTING X"00"..."FF" TO X"00"..."FF" で変換 +│ 被保険者番号・事業所番号の桁数チェック(内部処理) +│ SUB04CHK で数値妥当性チェック +├── 正常 → INSURED-DATA(200B EBCDIC固定長) +└── 異常 → ERROR-LOG +│ +╞══ SHAJ020 ═══════════════════════════════════╡ +│ SHA02MNC(M:N→M件マッチング) PGMパターン: 18 +│ EMP-MASTER(DB2 SALARYDB.EMP-MASTER SELECT)× +│ INSURANCE-RATES(DB2 INSURANCEDB.INSURANCE-RATES SELECT) +│ M件の従業員 × N件の保険種別料率 → 従業員単位に統合 +│ SEARCH ALL で該当GRADE-CODEを内部表検索 +│ 社員番号昇順に出力 +├── → EMP-INSURANCE(200B 従業員単位1件) +└── 異常 → ERROR-LOG +│ +╞══ SHAJ030 ═══════════════════════════════════╡ +│ SHA03MNP(M:N→M×N件直積出力) PGMパターン: 20 +│ EMP-INSURANCE × INSURANCE-RATES(内部表LOAD) +│ 全従業員 × 全保険種別の直積出力(M×N件) +│ 従業員ごとに健康保険・厚生年金・雇用保険の保険料明細を生成 +├── → INS-DETAIL(300B 全組合せ明細) +└── 異常 → ERROR-LOG +│ +╞══ SHAJ040 ═══════════════════════════════════╡ +│ SHA04TWO(2段階1:1→1:1マッチング) PGMパターン: 16 +│ 第1段階: INSURED-DATA × OFFICE-MST(事業所マスタ) +│  事業所番号一致→事業所名称・都道府県コード付加 +│ 第2段階: 中間結果 × INSURER-MST(保険者マスタ) +│  保険者コード一致→保険者名称・支部コード付加 +│ DB2参照: INSURED-MASTER(履歴整合性確認) +│ PROGRAM-ID IS INITIAL 指定 +│ USAGE PACKED-DECIMAL で金額項目定義 +├── → GRADED-LIST(200B 事業所・保険者情報付き) +├── → UNMATCHED-LIST(200B 不一致データ) +└── 異常 → ERROR-LOG +│ +╞══ SHAJ050 ═══════════════════════════════════╡ +│ SHA05TWN(2段階N:1→N:1マッチング) PGMパターン: 17 +│ 第1段階: SALARY-MONTHLY(複数月N件→社員別平均N:1) +│  同一社員の複数月給与(定時決定:4-6月、月変:直近3月)を平均 +│  ADD TO + END-ADD で累積、DIVIDE GIVING REMAINDER で平均 +│ 第2段階: 平均値×GRADE-TBL(N:1で等級判定) +│  平均標準報酬月額が該当する等級コードを特定 +│  現行等級と比較し2等級以上変動→月変該当 +├── → REVISED-GRADE(200B 改定結果) +└── 異常 → ERROR-LOG +│ +╞══ SHAJ060 ═══════════════════════════════════╡ +│ SHA06TWM(2段階M:N→M:Nマッチング) PGMパターン: 22 +│ 第1段階: EMP-INSURANCE(M) × INSURANCE-RATES(N) +│  全従業員×全料率の組合せから該当する等級料率を特定 +│  → GRADE-INSURED(M:N 中間ファイル) +│ 第2段階: GRADE-INSURED(M:N) × APPLICABLE-RULES(N) +│  年齢・扶養人数・地域コード等の条件で正しい料率を確定 +│  通常MOVEで構造体転記(MOVE CORRは不使用) +├── → DEDUCTED-RESULT(300B 保険料確定結果) +└── 異常 → ERROR-LOG +│ +╞══ SHAJ070 ═══════════════════════════════════╡ +│ SHA07KBR(1:N+異キーキーブレイク) PGMパターン: 33 +│ DB2 QUALIFICATION-CHANGES からEXEC SQL SELECT +│ 同一従業員内(1:N)で保険者コード(異キー)変更時キーブレイク +│ 保険者変更を検出した時点でサマリ出力、それ以外は明細出力 +│ SUB04CHK/SUB02MSG でCALL(通常CALL、CANCEL不使用) +├── → CHG-SUMMARY(200B 保険者別異動サマリ) +├── → CHG-DETAIL(200B 全異動明細) +└── 異常 → ERROR-LOG +│ +╞══ SHAJ080 ═══════════════════════════════════╡ +│ SHA08SRT(SORT INPUT/OUTPUT PROCEDURE) PGMパターン: 34 +│ SD-SORTWORK + SORT文 +│ I-O-CONTROL. SAME SORT AREA FOR SD-SORTWORK +│ INPUT PROCEDURE: GRADED-LIST読込+届出対象抽出(STATUS=0) +│ OUTPUT PROCEDURE: 届出書形式に編集 + 集計 +│ RETURN-CODE でSORT結果判定 +│ RELEASE + RETURN 文でSORTデータ引渡し・受取 +├── → RPT-DATA(300B 届出書データ) +└── 異常 → ERROR-LOG +│ +╞══ SHAJ090 ═══════════════════════════════════╡ +│ SHA09S25(25分割) PGMパターン: 11 +│ RPT-DATA を都道府県支部コード(PREF-CODE 01〜25)で分割 +│ SELECT ... ORGANIZATION IS SEQUENTIAL(明示的宣言) +│ CLOSE WITH LOCK で出力ファイル確定 +├── → PREF-OUT-01〜25 +└── 異常 → ERROR-LOG +│ +╞══ SHAJ100 ═══════════════════════════════════╡ +│ SHA10S10(100分割) PGMパターン: 12 +│ RPT-DATA を保険者コード(INSURER-CODE 001〜099)で分割 +│ CLOSE WITH LOCK で出力ファイル確定 +├── → INSURER-OUT-01〜99 +└── 異常 → ERROR-LOG +``` + +--- + +## JCL + +### SHAJ010 — 被保険者データ受信変換 + +```jcl +//SHAJ010 JOB (ACCT),'被保険者データ変換',CLASS=A +//* +//*--- パラメータ定義 --- +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: ASCII→EBCDIC変換(Type 29) +//*===================================================================== +//STEP010 EXEC PGM=SHA01CVT,PARM='YEARMONTH=&YEARMONTH' +//SHA01R01 DD DSN=INS-CSV-ASCII.DAT,DISP=SHR +//SHA01W01 DD DSN=INSURED-DATA.DAT,DISP=(NEW,CATLG) +//SHA01W02 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +``` + +### SHAJ020 — 保険マッチングM件 + +```jcl +//SHAJ020 JOB (ACCT),'保険マッチングM件',CLASS=A +//* +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: M:N→M件(Type 18) +//*===================================================================== +//STEP010 EXEC PGM=SHA02MNC,PARM='YEARMONTH=&YEARMONTH' +//SHA02W01 DD DSN=EMP-INSURANCE.DAT,DISP=(NEW,CATLG) +//SHA02W02 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +//* DB2参照(EMP-MASTER/INSURANCE-RATES)のためDD不要 +``` + +### SHAJ030 — M:N直積出力 + +```jcl +//SHAJ030 JOB (ACCT),'M:N直積出力',CLASS=A +//* +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: M:N→M×N件(Type 20) +//*===================================================================== +//STEP010 EXEC PGM=SHA03MNP,PARM='YEARMONTH=&YEARMONTH' +//SHA03R01 DD DSN=EMP-INSURANCE.DAT,DISP=(OLD,DELETE) +//SHA03W01 DD DSN=INS-DETAIL.DAT,DISP=(NEW,CATLG) +//SHA03W02 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +//* INSURANCE-RATESは内部表LOADのためDB2参照(DD不要) +``` + +### SHAJ040 — 2段階1:1事業所・保険者判定 + +```jcl +//SHAJ040 JOB (ACCT),'事業所・保険者判定',CLASS=A +//* +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: 2段階1:1→1:1(Type 16) +//*===================================================================== +//STEP010 EXEC PGM=SHA04TWO,PARM='YEARMONTH=&YEARMONTH' +//SHA04R01 DD DSN=INSURED-DATA.DAT,DISP=(OLD,DELETE) +//SHA04R02 DD DSN=OFFICE-MST.DAT,DISP=SHR +//SHA04R03 DD DSN=INSURER-MST.DAT,DISP=SHR +//SHA04W01 DD DSN=GRADED-LIST.DAT,DISP=(NEW,CATLG) +//SHA04W02 DD DSN=UNMATCHED-LIST.DAT,DISP=(NEW,PASS) +//SHA04W03 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +``` + +### SHAJ050 — 定時決定・月変改定 + +```jcl +//SHAJ050 JOB (ACCT),'定時決定・月変改定',CLASS=A +//* +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: 2段階N:1→N:1(Type 17) +//*===================================================================== +//STEP010 EXEC PGM=SHA05TWN,PARM='YEARMONTH=&YEARMONTH' +//SHA05R01 DD DSN=SALARY-MONTHLY.DAT,DISP=SHR +//SHA05R02 DD DSN=GRADE-TBL.DAT,DISP=SHR +//SHA05W01 DD DSN=REVISED-GRADE.DAT,DISP=(NEW,CATLG) +//SHA05W02 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +``` + +### SHAJ060 — 保険料確定(2段階M:N) + +```jcl +//SHAJ060 JOB (ACCT),'保険料確定',CLASS=A +//* +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: 2段階M:N→M:N(Type 22) +//*===================================================================== +//STEP010 EXEC PGM=SHA06TWM,PARM='YEARMONTH=&YEARMONTH' +//SHA06R01 DD DSN=EMP-INSURANCE.DAT,DISP=SHR +//SHA06R02 DD DSN=APPLICABLE-RULES.DAT,DISP=SHR +//SHA06W01 DD DSN=DEDUCTED-RESULT.DAT,DISP=(NEW,CATLG) +//SHA06W02 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +//* INSURANCE-RATESはDB2参照 +``` + +### SHAJ070 — 資格異動処理 + +```jcl +//SHAJ070 JOB (ACCT),'資格異動処理',CLASS=A +//* +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: 1:N+異キーキーブレイク(Type 33) +//*===================================================================== +//STEP010 EXEC PGM=SHA07KBR,PARM='YEARMONTH=&YEARMONTH' +//SHA07W01 DD DSN=CHG-SUMMARY.DAT,DISP=(NEW,CATLG) +//SHA07W02 DD DSN=CHG-DETAIL.DAT,DISP=(NEW,PASS) +//SHA07W03 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +//* QUALIFICATION-CHANGESはDB2 SELECT(DD不要) +``` + +### SHAJ080 — 届出書作成(SORT) + +```jcl +//SHAJ080 JOB (ACCT),'届出書作成',CLASS=A +//* +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: SORT INPUT/OUTPUT PROCEDURE(Type 34) +//*===================================================================== +//STEP010 EXEC PGM=SHA08SRT,PARM='YEARMONTH=&YEARMONTH' +//SHA08R01 DD DSN=GRADED-LIST.DAT,DISP=SHR +//SHA08W01 DD DSN=RPT-DATA.DAT,DISP=(NEW,CATLG) +//SHA08W02 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +//* SD-SORTWORKはプログラム内SORT作業ファイル(JCL DD不要) +``` + +### SHAJ090 — 都道府県支部別分割出力(25分割) + +```jcl +//SHAJ090 JOB (ACCT),'支部別分割出力',CLASS=A +//* +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: 25分割(Type 11) +//*===================================================================== +//STEP010 EXEC PGM=SHA09S25,PARM='YEARMONTH=&YEARMONTH' +//SHA09R01 DD DSN=RPT-DATA.DAT,DISP=(OLD,DELETE) +//SHA09W01 DD DSN=PREF-OUT-01.DAT,DISP=(NEW,CATLG) +//SHA09W02 DD DSN=PREF-OUT-02.DAT,DISP=(NEW,CATLG) +// ... +//SHA09W25 DD DSN=PREF-OUT-25.DAT,DISP=(NEW,CATLG) +//SHA09W98 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +``` + +### SHAJ100 — 保険者別分割出力(100分割) + +```jcl +//SHAJ100 JOB (ACCT),'保険者別分割出力',CLASS=A +//* +//SETPARM SET YEARMONTH=202605 +//*===================================================================== +//* STEP010: 100分割(Type 12) +//*===================================================================== +//STEP010 EXEC PGM=SHA10S10,PARM='YEARMONTH=&YEARMONTH' +//SHA10R01 DD DSN=RPT-DATA.DAT,DISP=(OLD,DELETE) +//SHA10W01 DD DSN=INSURER-OUT-01.DAT,DISP=(NEW,CATLG) +//SHA10W02 DD DSN=INSURER-OUT-02.DAT,DISP=(NEW,CATLG) +// ... +//SHA10W99 DD DSN=INSURER-OUT-99.DAT,DISP=(NEW,CATLG) +//SHA10W98 DD DSN=ERROR-LOG.DAT,DISP=(NEW,PASS) +``` + +--- + +## プログラム一覧 + +| # | PGM-ID | PGMパターン | 機能概要 | 使用COPY | DBアクセス | CALL先 | +|:-:|:------:|:----------:|---------|:--------:|:---------:|:------:| +| 1 | SHA01CVT | 29 ASCII→EBCDIC変換 | ASCII CSVをINSPECT CONVERTINGでEBCDIC固定長に変換 | SHA01REC, SHADATAC, SHAMSGAC, SHAENDAC, SHACHKAC | なし | SUB01DAT, SUB02MSG, SUB03END, SUB04CHK | +| 2 | SHA02MNC | 18 M:N→M件 | 従業員×保険種別→従業員単位統合 | SHA02REC, SHADATAC, SHAMSGAC, SHAENDAC, SHACHKAC | あり(EMP-MASTER SELECT, INSURANCE-RATES SELECT) | SUB01DAT, SUB02MSG, SUB03END, SUB04CHK | +| 3 | SHA03MNP | 20 M:N→M×N件 | 従業員×保険種別→全組合せ明細 | SHA03REC, SHADATAC, SHAMSGAC, SHAENDAC | あり(INSURANCE-RATES SELECT→内部表LOAD) | SUB01DAT, SUB02MSG, SUB03END | +| 4 | SHA04TWO | 16 2段階1:1→1:1 | 事業所マッチング→保険者マッチング | SHA04REC, SHADATAC, SHAMSGAC, SHAENDAC | あり(INSURED-MASTER SELECT, GRADE-HISTORY SELECT) | SUB01DAT, SUB02MSG, SUB03END | +| 5 | SHA05TWN | 17 2段階N:1→N:1 | 定時決定・月変改定(複数月平均→等級判定) | SHA05REC, SHADATAC, SHAMSGAC, SHAENDAC | なし | SUB01DAT, SUB02MSG, SUB03END | +| 6 | SHA06TWM | 22 2段階M:N→M:N | M従業員×N料率→適用条件で確定 | SHA06REC, SHADATAC, SHAMSGAC, SHAENDAC | あり(INSURANCE-RATES SELECT) | SUB01DAT, SUB02MSG, SUB03END | +| 7 | SHA07KBR | 33 1:N+異キーKB | 資格異動処理、保険者コード変更時KB | SHA07REC, SHADATAC, SHAMSGAC, SHAENDAC | あり(QUALIFICATION-CHANGES SELECT) | SUB01DAT, SUB02MSG, SUB03END, SUB04CHK | +| 8 | SHA08SRT | 34 SORT IP/OP | SORT + INPUT/OUTPUT PROCEDURE | SHA08REC, SHADATAC, SHAMSGAC, SHAENDAC | なし(SORT文、I-O-CONTROL SAME SORT AREA) | SUB01DAT, SUB02MSG, SUB03END | +| 9 | SHA09S25 | 11 25分割 | 都道府県支部別分割出力 | SHA09REC, SHADATAC, SHAMSGAC, SHAENDAC | なし | SUB01DAT, SUB02MSG, SUB03END | +| 10 | SHA10S10 | 12 100分割 | 保険者別分割出力 | SHA09REC, SHADATAC, SHAMSGAC, SHAENDAC | なし | SUB01DAT, SUB02MSG, SUB03END | + +--- + +## COPY書式一覧 + +| # | COPY ID | 用途 | サイズ | 備考 | +|:-:|:--------|:----:|:------:|------| +| 1 | SHA01REC | INSURED-DATA レコード | 200 | SHA01CVT出力、SHA04TWO入力 | +| 2 | SHA02REC | EMP-INSURANCE レコード | 200 | SHA02MNC出力、SHA03MNP/SHA06TWM入力 | +| 3 | SHA03REC | INS-DETAIL レコード | 300 | SHA03MNP出力 | +| 4 | SHA04REC | GRADED-LIST レコード | 200 | SHA04TWO出力、SHA08SRT入力 | +| 5 | SHA05REC | REVISED-GRADE レコード | 200 | SHA05TWN出力 | +| 6 | SHA06REC | DEDUCTED-RESULT レコード | 300 | SHA06TWM出力 | +| 7 | SHA07REC | CHG-SUMMARY/CHG-DETAIL レコード | 200 | SHA07KBR出力 | +| 8 | SHA08REC | RPT-DATA レコード | 300 | SHA08SRT出力、SHA09S25/SHA10S10入力 | +| 9 | SHA09REC | PREF-OUT/INSURER-OUT レコード | 300 | SHA09S25/SHA10S10出力 | +| 10 | SHADATAC | SUB01DAT連絡領域 | — | CALL I/F | +| 11 | SHAMSGAC | SUB02MSG連絡領域 | — | CALL I/F | +| 12 | SHAENDAC | SUB03END連絡領域 | — | CALL I/F | +| 13 | SHACHKAC | SUB04CHK連絡領域 | — | CALL I/F | diff --git a/詳細設計書/詳細設計書_SHA01CVT.md b/詳細設計書/詳細設計書_SHA01CVT.md new file mode 100644 index 0000000..4e8268d --- /dev/null +++ b/詳細設計書/詳細設計書_SHA01CVT.md @@ -0,0 +1,135 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA01CVT | +| 3 | プログラム名 | 被保険者資格データ変換処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | 29(ASCII→EBCDIC変換) | +| 6 | 機能概要 | 日本年金機構・健康保険組合から受信した被保険者資格データ(ASCII CSV)をEBCDIC固定長レコードに変換する。 | +| 7 | | 変換テーブルを用いてASCIIコードからEBCDICコードに変換。 | +| 8 | | 出力レコードの項目桁数チェック(半角桁数)を内部処理として行う。 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル | 条件 | +|----|-------------|------| +| 1 | INS-CSV-ASCII | ソート不要。ASCIIコード、カンマ区切り、LF改行 | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | INS-CSV-ASCII | R01 | SHA01R01 | I | 自前 | F | | 可変 | PS | ASCII CSV、カンマ区切り | +| 2 | INSURED-DATA | W01 | SHA01W01 | O | SHA01REC | FB | | 200 | PS | EBCDIC固定長 | +| 3 | ERROR-LOG | W02 | SHA01W02 | O | ZAN05REC | VB | | 200 | PS | エラー退避 | + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | INS-CSV-ASCII | なし | なし | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | +| 4 | 項目チェックSUB | SUB04CHK | SHACHKAC | + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.使用ファイルのオープン + 1-6.R01を読み込む。(1100R01INNSOR)(1回目) + +2.主処理(2000MAJSOR)(R01を全て読み終えるまで下記を繰り返す) + 2-1.CSVの分解 + UNSTRINGでカンマ区切りのCSVを各項目に分解する。(2010CSVSOR) + 2-2.半角桁数チェック(2020HALFSOR) + 2-2-1.氏名カナ(半角20桁以内)チェック。超過→W02出力 + 2-2-2.被保険者番号(半角10桁以内)チェック。超過→W02出力 + 2-2-3.事業所番号(半角4桁以内)チェック。超過→W02出力 + 2-2-4.日付妥当性チェック(SUB04CHK)。エラー→W02出力 + 2-2-5.数値妥当性チェック(SUB04CHK)。エラー→W02出力 + 2-3.ASCII→EBCDIC変換(2030CNVSOR) + 2-3-1.変換テーブル(WORKING-STORAGEに定義)を使用し各バイトを変換 + 2-3-2.USAGE BINARYでテーブルインデックスを管理 + 2-3-3.変換後INSURED-DATAレコードにMOVE + 2-4.W01出力(2040WRTSOR) + 2-5.R01を読み込む。(1100R01INNSOR)(2件目以降) + +3.終了処理(3000STPSOR) + 3-1.入出力ファイルのクローズ + 3-2.入出力件数出力メッセージ出力 + 【入力メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:当該入力ファイルのDD名 + PARM2:当該入力ファイルの件数 + 【出力メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:当該出力ファイルのDD名 + PARM2:当該出力ファイルの件数 + 3-3.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1(W01/INSURED-DATA) + +SHA01REC.cpyに従う。EBCDIC固定長200B。 + +| No | 項目名 | 属性 | 設定元 | 備考 | +|----|--------|------|--------|------| +| 1 | 社員番号 | 9(8) | CSV同項目を変換後設定 | | +| 2 | 被保険者番号 | X(10) | CSV同項目を変換後設定 | 半角10桁以内 | +| 3 | 事業所番号 | X(4) | CSV同項目を変換後設定 | 半角4桁以内 | +| 4 | 保険者コード | X(4) | CSV同項目を変換後設定 | | +| 5 | 氏名 | X(40) | CSV同項目を変換後設定 | | +| 6 | 氏名カナ | X(20) | CSV同項目を変換後設定 | 半角20桁以内 | +| 7 | 生年月日 | 9(8) | CSV同項目を変換後設定 | | +| 8 | 性別 | X(1) | CSV同項目を変換後設定 | | +| 9 | 資格取得日 | 9(8) | CSV同項目を変換後設定 | | +| 10 | 健康保険種別 | X(1) | CSV同項目を変換後設定 | | +| 11 | 年金種別 | X(1) | CSV同項目を変換後設定 | | +| 12 | ステータス | X(1) | CSV同項目を変換後設定 | | +| 13 | 予約 | X(94) | LOW-VALUES固定 | | + +### 出力ファイル2(W02/ERROR-LOG) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容 | diff --git a/詳細設計書/詳細設計書_SHA02MNC.md b/詳細設計書/詳細設計書_SHA02MNC.md new file mode 100644 index 0000000..fb888f0 --- /dev/null +++ b/詳細設計書/詳細設計書_SHA02MNC.md @@ -0,0 +1,167 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA02MNC | +| 3 | プログラム名 | 従業員保険情報統合処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | 18(M:N→M件マッチング) | +| 6 | 機能概要 | DB2 EMP-MASTER(SALARYDB)の従業員情報とINSURANCE-RATESの標準報酬等級テーブルをマッチングし、 | +| 7 | | 従業員単位(M件)に統合したEMP-INSURANCEレコードを出力する。 | +| 8 | | SEARCH/内部表を用いた等級判定により、標準報酬月額・等級コードを付与する。 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル/DB | 条件 | +|----|---------------|------| +| 1 | DB2 INSURANCE-RATES | EFFECTIVE-FROM~EFFECTIVE-TOに該当月が含まれること | +| 2 | DB2 EMP-MASTER (SALARYDB) | 社員番号(EMP-ID)昇順ソート(DB2 ORDER BY) | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | EMP-INSURANCE | W01 | SHA02W01 | O | SHA02REC | FB | | 200 | PS | 従業員保険情報(M件) | +| 2 | ERROR-LOG | W02 | SHA02W02 | O | ZAN05REC | VB | | 200 | PS | エラー退避 | +| 3 | INSURANCEDB | DB | — | I | — | DB2 | — | — | DASD | DB2: INSURANCE-RATES | +| 4 | SALARYDB (参照) | DB | — | I | — | DB2 | — | — | DASD | DB2: EMP-MASTER(クロススキーマ) | + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | EMP-MASTER | EMP-ID | なし(主処理は1件ずつFETCH) | +| 2 | INSURANCE-RATES | GRADE-CODE | MONTHLY-FROM~MONTHLY-TOにBASE-SALARYが含まれること(範囲検索) | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | +| 4 | PARM検証SUB | SUB04CHK | SHACHKAC | + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.PARM取得(YEARMONTH) + 1-6.DB接続 + EXEC SQL CONNECT TO 'data/INSURANCE.db' + 1-7.INSURANCE-RATES内部表LOAD(1200RATELDASOR) + DECLARE C1 CURSOR FOR + SELECT GRADE-CODE, MONTHLY-FROM, MONTHLY-TO, + HEALTH-RATE, PENSION-RATE + FROM INSURANCE-RATES + WHERE EFFECTIVE-FROM <= :WRK-YEAR-MONTH + AND EFFECTIVE-TO >= :WRK-YEAR-MONTH + ORDER BY GRADE-CODE + OPEN C1 + PERFORM UNTIL SQLCODE≠0 + FETCH C1 INTO :DBV-xxx + MOVE TO WRK-INS-RATES(WS-COUNT) + ADD 1 TO WS-COUNT + END-PERFORM + CLOSE C1 + 1-8.EMP-MASTERカーソル宣言・OPEN・初回FETCH + DECLARE C2 CURSOR FOR + SELECT EMP-ID, EMP-NAME, DEPT-CODE, BASE-SALARY + FROM SALARYDB.EMP-MASTER + ORDER BY EMP-ID + OPEN C2 + FETCH C2 INTO :DBV-xxx(1300EMPFETCSOR) + 1-9.出力ファイルのオープン + +2.主処理(2000MAJSOR)(EMP-MASTERを全て読み終えるまで下記を繰り返す) + 2-1.内部表検索(2010SRCHSOR) + SEARCH(線形探索)でWRK-INS-RATESから + WRK-MONTHLY-FROM <= DBV-BASE-SALARY + かつ WRK-MONTHLY-TO >= DBV-BASE-SALARY + を満たすGRADE-CODEを特定する。 + 該当なし→ERROR-LOG出力(W02)→次従業員へ + 2-2.種別判定(2000MAJSOR内でインライン実装) + DEPT-CODEによりEVALUATEでHEALTH-INS-TYPE/PENSION-TYPEを判定 + DEPT-CODE 01-10:HEALTH-INS-TYPE='1' PENSION-TYPE='1' + DEPT-CODE 11-20:HEALTH-INS-TYPE='2' PENSION-TYPE='1' + DEPT-CODE 21-30:HEALTH-INS-TYPE='1' PENSION-TYPE='2' + 上記以外:HEALTH-INS-TYPE='9' PENSION-TYPE='9' + 2-3.INSURER-CODE設定 + 簡易判定:DEPT-CODEにより設定(01台→'0001', 11台→'0002', 21台→'0003') + 2-4.W01出力 + MOVE DBV-xxx + 検索結果 + 種別判定結果 → W01OUTREC + WRITE W01OUTREC + 2-5.次従業員FETCH(1300EMPFETCSOR)(2件目以降) + +3.終了処理(3000STPSOR) + 3-1.カーソルクローズ + CLOSE C2 + 3-2.出力ファイルのクローズ + 3-3.入出力件数出力メッセージ出力 + 【入力メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:'EMP-MASTER' + PARM2:CUN-DB-EMP + 【出力メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:'SHA02W01' + PARM2:CUN-W01OUT + PARM1:'SHA02W02' + PARM2:CUN-W02OUT + 3-4.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1(W01/EMP-INSURANCE) + +SHA02REC.cpyに従う。200B固定長。 + +| No | 項目名 | 属性 | 設定元 | 備考 | +|----|--------|------|--------|------| +| 1 | EMP-ID | 9(8) | DBV-EMP-ID(EMP-MASTER) | | +| 2 | EMP-NAME | X(40) | DBV-EMP-NAME(EMP-MASTER) | | +| 3 | DEPT-CODE | 9(2) | DBV-DEPT-CODE(EMP-MASTER) | | +| 4 | BASE-SALARY | 9(9) | DBV-BASE-SALARY(EMP-MASTER) | | +| 5 | MONTHLY-AMOUNT | 9(9) | INSURANCE-RATES該当レコードの範囲中央値 | 標準報酬月額 | +| 6 | GRADE-CODE | 9(2) | INSURANCE-RATES該当レコードの等級コード | SEARCH結果 | +| 7 | HEALTH-INS-TYPE | X(1) | DEPT-CODEによる判定結果 | '1'=協会けんぽ / '2'=組合健保 / '9'=その他 | +| 8 | PENSION-TYPE | X(1) | DEPT-CODEによる判定結果 | '1'=厚生年金 / '2'=共済 / '9'=その他 | +| 9 | INSURER-CODE | X(4) | DEPT-CODEによる簡易設定 | 事業所所属保険者 | +| 10 | FILLER | X(124) | LOW-VALUES固定 | | + +### 出力ファイル2(W02/ERROR-LOG) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容(EMP-ID + エラー詳細) | diff --git a/詳細設計書/詳細設計書_SHA03MNP.md b/詳細設計書/詳細設計書_SHA03MNP.md new file mode 100644 index 0000000..bb32d82 --- /dev/null +++ b/詳細設計書/詳細設計書_SHA03MNP.md @@ -0,0 +1,153 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA03MNP | +| 3 | プログラム名 | 保険料計算明細出力処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | 20(M:N→M×N件直積出力) | +| 6 | 機能概要 | EMP-INSURANCE(SHA02MNC出力)の従業員情報とINSURANCE-RATESの料率を組合せ、 | +| 7 | | 従業員ごとに健康保険・厚生年金の保険料明細をM×N件(全組合せ)出力する。 | +| 8 | | 各組合せについて標準報酬月額×料率で保険料を算出する。 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル/DB | 条件 | +|----|---------------|------| +| 1 | EMP-INSURANCE | ソート済であること(SHA02MNC出力) | +| 2 | DB2 INSURANCE-RATES | EFFECTIVE-FROM~EFFECTIVE-TOに該当月が含まれること | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | EMP-INSURANCE | R01 | SHA03R01 | I | SHA02REC | FB | | 200 | PS | 従業員保険情報(SHA02MNC出力) | +| 2 | INS-DETAIL | W01 | SHA03W01 | O | SHA03REC | FB | | 300 | PS | 保険料計算明細(M×N件) | +| 3 | ERROR-LOG | W02 | SHA03W02 | O | ZAN05REC | VB | | 200 | PS | エラー退避 | +| 4 | INSURANCEDB | DB | — | I | — | DB2 | — | — | DASD | DB2: INSURANCE-RATES | + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | EMP-INSURANCE | EMP-ID(既定) | なし(ファイル順次読込) | +| 2 | INSURANCE-RATES | GRADE-CODE | 全件組合せ(直積) | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.PARM取得(YEARMONTH) + 1-6.DB接続 + EXEC SQL CONNECT TO 'data/INSURANCE.db' + 1-7.INSURANCE-RATES内部表LOAD(1200RATELDASOR) + DECLARE C1 CURSOR FOR + SELECT GRADE-CODE, MONTHLY-FROM, MONTHLY-TO, + HEALTH-RATE, PENSION-RATE + FROM INSURANCE-RATES + WHERE EFFECTIVE-FROM <= :WRK-YEAR-MONTH + AND EFFECTIVE-TO >= :WRK-YEAR-MONTH + ORDER BY GRADE-CODE + OPEN C1 + PERFORM UNTIL SQLCODE≠0 + FETCH C1 INTO :DBV-xxx + MOVE TO WRK-INS-RATES(WS-COUNT) + ADD 1 TO WS-COUNT + END-PERFORM + CLOSE C1 + 1-8.使用ファイルのオープン + 1-9.R01を読み込む。(1300R01INNSOR)(1回目) + +2.主処理(2000MAJSOR)(R01を全て読み終えるまで下記を繰り返す) + 2-1.直積組合せ生成+W01出力(2000MAJSOR内でインライン実装) + 取得した従業員レコードに対し、WRK-INS-RATESの全エントリを + PERFORM VARYINGで走査し、以下の組合せレコードを生成する。 + 【健康保険(INSURANCE-TYPE='1')】 + HEALTH-PREMIUM = MONTHLY-AMOUNT × HEALTH-RATE(ROUNDED) + PENSION-PREMIUM = 0 + 【厚生年金(INSURANCE-TYPE='2')】 + PENSION-PREMIUM = MONTHLY-AMOUNT × PENSION-RATE(ROUNDED) + HEALTH-PREMIUM = 0 + 2-2.W01出力 + 各組合せのSHA03RECをWRITE(2-1と同一ループ内) + 2-3.エラー発生時は2100ERROUTSORでW02(ERROR-LOG)出力 + 2-3.R01を読み込む。(1300R01INNSOR)(2件目以降) + +3.終了処理(3000STPSOR) + 3-1.入出力ファイルのクローズ + 3-2.入出力件数出力メッセージ出力 + 【入力メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:'SHA03R01' + PARM2:CUN-R01INN + 【出力メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:'SHA03W01' + PARM2:CUN-W01OUT + PARM1:'SHA03W02' + PARM2:CUN-W02OUT + 3-3.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1(W01/INS-DETAIL) + +SHA03REC.cpyに従う。300B固定長。 + +| No | 項目名 | 属性 | 設定元 | 備考 | +|----|--------|------|--------|------| +| 1 | EMP-ID | 9(8) | R01.EMP-ID | | +| 2 | EMP-NAME | X(40) | R01.EMP-NAME | | +| 3 | INSURANCE-TYPE | X(1) | 固定 | '1'=健康保険 / '2'=厚生年金 | +| 4 | GRADE-CODE | 9(2) | WRK-INS-RATES.GRADE-CODE | 料率該当等級 | +| 5 | MONTHLY-AMOUNT | 9(9) | R01.MONTHLY-AMOUNT | 標準報酬月額(従業員の該当額) | +| 6 | HEALTH-RATE | 9(7) | WRK-INS-RATES.HEALTH-RATE | 健康保険料率 | +| 7 | PENSION-RATE | 9(7) | WRK-INS-RATES.PENSION-RATE | 厚生年金料率 | +| 8 | HEALTH-PREMIUM | 9(9) | MONTHLY-AMOUNT × HEALTH-RATE | 健康保険料(従業員負担分) | +| 9 | PENSION-PREMIUM | 9(9) | MONTHLY-AMOUNT × PENSION-RATE | 厚生年金保険料(従業員負担分) | +| 10 | FILLER | X(208) | LOW-VALUES固定 | | + +### 出力ファイル2(W02/ERROR-LOG) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容 | diff --git a/詳細設計書/詳細設計書_SHA04TWO.md b/詳細設計書/詳細設計書_SHA04TWO.md new file mode 100644 index 0000000..21f741b --- /dev/null +++ b/詳細設計書/詳細設計書_SHA04TWO.md @@ -0,0 +1,159 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA04TWO | +| 3 | プログラム名 | 事業所保険者マッチング処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | マッチング(1:1→1:1 2段階) | +| 6 | 機能概要 | 被保険者データに対し、事業所マスタ(SHA02R02)と保険者マスタ(SHA03R03)の2段階1:1マッチングを実施する。 | +| 7 | | 第1段階:事業所番号(OFFICE-NO)で事業所マスタとマッチング | +| 8 | | 第2段階:保険者コード(INSURER-CODE)で保険者マスタとマッチング | +| 9 | | 両段階ともマッチした場合GRADED-LISTに出力、いずれかで不一致の場合はUNMATCHED-LISTに出力 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル | 条件 | +|----|-------------|------| +| 1 | ファイルR01(INSURED-DATA) | 事業所番号(OFFICE-NO)+社員番号(EMP-ID)の昇順ソート済 | +| 2 | ファイルR02(OFFICE-MST) | 事業所番号(OFFICE-NO)の昇順ソート済、重複なし | +| 3 | ファイルR03(INSURER-MST) | 保険者コード(INSURER-CODE)の昇順ソート済、重複なし | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | INSURED-DATA | R01 | SHA04R01 | I | SHA01REC | FB | | 200 | PS | 被保険者データ(SHA01CVT出力) | +| 2 | OFFICE-MST | R02 | SHA04R02 | I | 自前(80B) | FB | | 80 | PS | 事業所マスタ | +| 3 | INSURER-MST | R03 | SHA04R03 | I | 自前(80B) | FB | | 80 | PS | 保険者マスタ | +| 4 | GRADED-LIST | W01 | SHA04W01 | O | SHA04REC | FB | | 200 | PS | 両段階マッチ成功レコード | +| 5 | UNMATCHED-LIST | W02 | SHA04W02 | O | 自前(200B) | FB | | 200 | PS | いずれかの段階で不一致レコード | +| 6 | ERROR-LOG | W03 | SHA04W03 | O | ZAN05REC | VB | | 200 | PS | エラー退避 | +| 7 | INSURANCEDB | DB | — | I | — | DB2 | — | — | DASD | DB2: INSURED-MASTER | + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | ファイルR01 | OFFICE-NO + EMP-ID | OFFICE-NO(第1段階) | +| 2 | ファイルR02 | OFFICE-NO | OFFICE-NO(第1段階, 1:1) | +| 3 | ファイルR03 | INSURER-CODE | INSURER-CODE(第2段階, 1:1) | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.使用ファイルのオープン + 1-6.R02(OFFICE-MST)を全件読み込み、内部テーブル(OFFICE-TBL)に格納する。 + (1110R02LDASOR) + 1-7.R03(INSURER-MST)を全件読み込み、内部テーブル(INSURER-TBL)に格納する。 + (1120R03LDASOR) + 1-8.DB接続 + EXEC SQL CONNECT TO 'data/INSURANCEDB.db' + 1-9.R01を読み込む。(1100R01INNSOR)(1回目) + +2.主処理(2000MAJSOR)(R01を全て読み終えるまで下記を繰り返す) + 2-1.第1段階マッチング(OFFICE-NO vs OFFICE-TBL):1:1マッチング(2010STG1SOR) + 2-1-1.OFFICE-TBLをOFFICE-NOで線形探索 + 2-1-2.マッチ成功→第2段階へ + 2-1-3.マッチ失敗→UNMATCHED-LISTに出力(STATUS='1'=事業所未達) + 2-2.第2段階マッチング(INSURER-CODE vs INSURER-TBL):1:1マッチング(2020STG2SOR) + 2-2-1.INSURER-TBLをINSURER-CODEで線形探索 + 2-2-2.マッチ成功→GRADED-LISTに出力 + 2-2-3.マッチ失敗→UNMATCHED-LISTに出力(STATUS='2'=保険者未達) + 2-3.DB2整合性検証(2030W01OUTSOR内でインライン実装) + 2-3-1.GRADED-LIST出力時にINSURED-MASTERをSELECTし、 + 履歴整合性を確認 + 2-3-2.SQLCODE異常→ERROR-LOGに出力 + 2-4.R01を読み込む。(1100R01INNSOR)(2件目以降) + +3.終了処理(3000STPSOR) + 3-1.入出力ファイルのクローズ + 3-2.入出力件数出力メッセージ出力 + 【入力メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:当該入力ファイルのDD名 + PARM2:当該入力ファイルの件数 + 【出力メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:当該出力ファイルのDD名 + PARM2:当該出力ファイルの件数 + 3-3.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1(W01/GRADED-LIST) + +SHA04REC.cpyに従う。200B固定長。 + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | EMP-ID | R01.EMP-ID | | +| 2 | EMP-NAME | R01.EMP-NAME | | +| 3 | OFFICE-NO | R01.OFFICE-NO | | +| 4 | OFFICE-NAME | OFFICE-TBL.OFFICE-NAME | 第1段階マッチ結果 | +| 5 | PREF-CODE | OFFICE-TBL.PREF-CODE | 第1段階マッチ結果 | +| 6 | INSURER-CODE | R01.INSURER-CODE | | +| 7 | INSURER-NAME | INSURER-TBL.INSURER-NAME | 第2段階マッチ結果 | +| 8 | FILLER | 初期値 | | + +### 出力ファイル2(W02/UNMATCHED-LIST) + +自前レイアウト(200B固定長)。 + +| No | 項目名 | 属性 | 設定元 | 備考 | +|----|--------|------|--------|------| +| 1 | EMP-ID | 9(8) | R01.EMP-ID | | +| 2 | EMP-NAME | X(40) | R01.EMP-NAME | | +| 3 | OFFICE-NO | X(4) | R01.OFFICE-NO | | +| 4 | OFFICE-NAME | X(40) | OFFICE-TBL.OFFICE-NAME | 未達時はSPACE | +| 5 | PREF-CODE | 9(2) | OFFICE-TBL.PREF-CODE | 未達時はZERO | +| 6 | INSURER-CODE | X(4) | R01.INSURER-CODE | | +| 7 | INSURER-NAME | X(60) | INSURER-TBL.INSURER-NAME | 未達時はSPACE | +| 8 | STATUS | X(1) | 固定 | '1'=事業所未達 / '2'=保険者未達 | +| 9 | FILLER | X(41) | 初期値 | | + +### 出力ファイル3(W03/ERROR-LOG) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | DBエラー | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容(EMP-ID + SQLCODE) | diff --git a/詳細設計書/詳細設計書_SHA05TWN.md b/詳細設計書/詳細設計書_SHA05TWN.md new file mode 100644 index 0000000..f9179f0 --- /dev/null +++ b/詳細設計書/詳細設計書_SHA05TWN.md @@ -0,0 +1,147 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA05TWN | +| 3 | プログラム名 | 標準報酬月額等級判定処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | マッチング(N:1→N:1 2段階) | +| 6 | 機能概要 | 月額給与データ(SALARY-MONTHLY)を社員番号(EMP-ID)でN:1集約し、平均標準報酬月額を算出する。 | +| 7 | | 第1段階(N:1):社員番号キーブレイクで月額給与を平均化 | +| 8 | | 第2段階(N:1):平均標準報酬月額と等級テーブル(GRADE-TBL)をマッチングし、等級改定判定を実施 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル | 条件 | +|----|-------------|------| +| 1 | ファイルR01(SALARY-MONTHLY) | 社員番号(EMP-ID)+対象年月(YEAR-MONTH)の昇順ソート済 | +| 2 | ファイルR02(GRADE-TBL) | 等級コード(GRADE-CODE)の昇順ソート済、重複なし | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | SALARY-MONTHLY | R01 | SHA05R01 | I | 自前(200B) | FB | | 200 | PS | 月額給与データ(Cサブシステム由来) | +| 2 | GRADE-TBL | R02 | SHA05R02 | I | 自前(80B) | FB | | 80 | PS | 等級定義テーブル | +| 3 | REVISED-GRADE | W01 | SHA05W01 | O | SHA05REC | FB | | 200 | PS | 等級改定結果 | +| 4 | ERROR-LOG | W02 | SHA05W02 | O | ZAN05REC | VB | | 200 | PS | エラー退避 | + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | ファイルR01 | EMP-ID + YEAR-MONTH | EMP-ID(第1段階キーブレイク, N:1) | +| 2 | ファイルR02 | GRADE-CODE | 平均標準報酬月額(第2段階, N:1) | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + PARM(対象年月 YYYYMM)をACCEPT COMMAND-LINEから取得 + 未設定時はデフォルト'202607'を使用 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.使用ファイルのオープン + 1-6.R02(GRADE-TBL)を全件読み込み、内部テーブル(GRADE-TBL)に格納する。(1110R02LDASOR) + 1-7.R01を読み込む。(1100R01INNSOR)(1回目) + +2.主処理(2000MAJSOR)(R01を全て読み終えるまで下記を繰り返す) + 2-1.第1段階:キーブレイクN:1集約(2010KEYBRSOR) + 2-1-1.同一EMP-IDのレコードを集約 + 2-1-2.MONTHLY-AMOUNTをADD TOで累積加算 + 2-1-3.COUNTをADD 1でカウント + 2-1-4.グループ内の月数をカウント(WRK-MONTH-COUNT) + 2-1-5.キー変更時(新EMP-ID検出)、以下の処理を実行 + 2-1-5-1.WRK-TOTAL ÷ WRK-COUNT = 平均標準報酬月額 + DIVIDE WRK-TOTAL BY WRK-COUNT GIVING WRK-AVG + REMAINDER WRK-REM + 2-1-5-2.定時決定(4-6ヶ月平均)or 月変(3ヶ月平均)の判定 + IF WRK-MONTH-COUNT >= 4 → 定時決定(TYPE='A') + IF WRK-MONTH-COUNT = 3 → 月変(TYPE='B') + ELSE → ERROR-LOGに出力 + 2-2.第2段階:等級テーブルN:1マッチング(2020GRADSOR) + 2-2-1.GRADE-TBLを平均標準報酬月額で線形探索 + IF WRK-AVG >= MONTHLY-FROM AND WRK-AVG <= MONTHLY-TO + → 該当等級コードを取得 + 2-2-2.該当等級なし→ ERROR-LOGに出力 + 2-2-3.該当等級あり→ 現在の等級と比較 + 2-2-3-1.現在等級はGRADE-HISTORYから取得(直近有効レコード) + 2-2-3-2.OLD-GRADE ≠ NEW-GRADEの場合:REVISED-GRADEに出力 + REVISED-TYPE='A'(定時決定:4-6ヶ月平均)/'B'(月変:3ヶ月平均) + 2-2-3-3.OLD-GRADE = NEW-GRADEの場合:出力なし(変更不要) + 2-2-4.WRK-ACCUMをINITIALIZEし、次のキーブレイクに備える + 2-3.次のR01読み込み→次のキーグループへ(1100R01INNSOR) + +3.終了処理(3000STPSOR) + 3-1.入出力ファイルのクローズ + 3-2.最終キーグループの処理(最終レコードの集約結果出力) + 3-3.入出力件数出力メッセージ出力 + 【入力メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:当該入力ファイルのDD名 + PARM2:当該入力ファイルの件数 + 【出力メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:当該出力ファイルのDD名 + PARM2:当該出力ファイルの件数 + 3-4.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1(W01/REVISED-GRADE) + +SHA05REC.cpyに従う。200B固定長。 + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | EMP-ID | R01.EMP-ID | キーブレイク元の社員番号 | +| 2 | EMP-NAME | R01.EMP-NAME | キーブレイク元の氏名 | +| 3 | REVISED-YM | PARM(対象年月) | | +| 4 | OLD-GRADE | GRADE-HISTORYより取得 | 変更前等級 | +| 5 | NEW-GRADE | GRADE-TBLより取得 | 変更後等級 | +| 6 | AVG-STD-MONTHLY | 第1段階算出値 | DIVIDE結果(整数) | +| 7 | REVISED-TYPE | 'A'=定時決定/'B'=月変 | | +| 8 | FILLER | 初期値 | | + +### 出力ファイル2(W02/ERROR-LOG) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | エラー種別 | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容(EMP-ID + エラー理由) | diff --git a/詳細設計書/詳細設計書_SHA06TWM.md b/詳細設計書/詳細設計書_SHA06TWM.md new file mode 100644 index 0000000..d9dc389 --- /dev/null +++ b/詳細設計書/詳細設計書_SHA06TWM.md @@ -0,0 +1,153 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA06TWM | +| 3 | プログラム名 | 保険料率適用・控除計算処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | マッチング(M:N→M:N 2段階) | +| 6 | 機能概要 | 従業員保険情報データ(EMP-INSURANCE)をもとに、DB2 INSURANCE-RATESとAPPLICABLE-RULESの2段階M:Nマッチングで保険料を算出する。 | +| 7 | | 第1段階(M×N):各従業員の給与等級に対応する保険料率をDB2より取得し、保険料を計算 | +| 8 | | 第2段階(M:N):年齢・扶養人数・地域コードの条件に合致する適用ルールを探索し、料率を調整後、控除結果を出力 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル | 条件 | +|----|-------------|------| +| 1 | ファイルR01(EMP-INSURANCE) | 社員番号(EMP-ID)の昇順ソート済 | +| 2 | ファイルR02(APPLICABLE-RULES) | ルールコード(RULE-CODE)の昇順ソート済 | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | EMP-INSURANCE | R01 | SHA06R01 | I | SHA02REC | FB | | 200 | PS | 従業員保険情報 | +| 2 | APPLICABLE-RULES | R02 | SHA06R02 | I | 自前(80B) | FB | | 80 | PS | 適用ルール定義テーブル | +| 3 | DEDUCTED-RESULT | W01 | SHA06W01 | O | SHA06REC | FB | | 300 | PS | 保険料確定結果 | +| 4 | ERROR-LOG | W02 | SHA06W02 | O | ZAN05REC | VB | | 200 | PS | エラー退避 | +| 5 | INSURANCEDB | DB | — | I | — | DB2 | — | — | DASD | DB2: INSURANCE-RATES | +| 6 | SALARYDB | DB | — | I | — | DB2 | — | — | DASD | DB2: EMP-MASTER(誕生日・扶養人数・地域コード取得) | + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | ファイルR01 | EMP-ID | EMP-ID(第1段階) | +| 2 | ファイルR02 | RULE-CODE | 年齢・扶養人数・地域コード(第2段階, M:N) | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.使用ファイルのオープン + 1-6.DB接続 + EXEC SQL CONNECT TO 'data/INSURANCEDB.db' + 1-7.R02(APPLICABLE-RULES)を全件読み込み、内部テーブル(RULE-TBL)に格納する。(1110R02LDASOR) + 1-8.R01を読み込む。(1100R01INNSOR)(1回目) + +2.主処理(2000MAJSOR)(R01を全て読み終えるまで下記を繰り返す) + 2-1.第1段階:保険料率M×Nマッチング(DB2 INSURANCE-RATES)(2010RATESOR) + 2-1-1.EMP-INSURANCEのGRADE-CODE(等級コード)をもとに + DB2 INSURANCE-RATESテーブルをSELECT + 2-1-2.SQLCODE=0の場合→健康保険料率・厚生年金保険料率を取得 + 2-1-3.SQLCODE=100の場合(該当なし)→ERROR-LOGに出力 + 2-1-4.SQLCODE<0の場合→ERROR-LOGに出力、処理継続 + 2-1-5.保険料計算 + HEALTH-PREMIUM = MONTHLY-AMOUNT × HEALTH-RATE / 1000000 + PENSION-PREMIUM = MONTHLY-AMOUNT × PENSION-RATE / 1000000 + 2-1-6.COMPUTE文を使用し、ON SIZE ERROR処理を実装 + 2-2.第2段階:適用ルールM:Nマッチング(APPLICABLE-RULES)(2020RULESCOL) + 2-2-1.年齢算出(運用日付 - BIRTH-DATEで満年齢) + 2-2-2.SALARYDB.EMP-MASTERをSELECTし、BIRTH-DATE・DEPENDENT-COUNT・ + REGION-CODEを取得。SQLCODE異常→ERROR-LOG出力。 + 2-2-3.RULE-TBLを線形探索し、以下の条件すべて合致するルールを検索 + AGE >= AGE-FROM AND AGE <= AGE-TO + DEPENDENTS >= DEPENDENTS-FROM AND DEPENDENTS <= DEPENDENTS-TO + REGION-CODE = DBV-REGION-CODE + 2-2-4.合致ルールあり→HEALTH-RATE-ADJ / PENSION-RATE-ADJで料率調整 + IF 合致 AND HEALTH-RATE-ADJ > 0 + HEALTH-RATE = DB2取得率 + HEALTH-RATE-ADJ + IF 合致 AND PENSION-RATE-ADJ > 0 + PENSION-RATE = DB2取得率 + PENSION-RATE-ADJ + 2-2-5.保険料再計算(調整後) + 2-2-6.DEDUCTED-RESULTに出力(W01) + TOTAL-PREMIUM = HEALTH-PREMIUM + PENSION-PREMIUM + 2-3.R01を読み込む。(1100R01INNSOR)(2件目以降) + +3.終了処理(3000STPSOR) + 3-1.入出力ファイルのクローズ + 3-2.入出力件数出力メッセージ出力 + 【入力メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:当該入力ファイルのDD名 + PARM2:当該入力ファイルの件数 + 【出力メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:当該出力ファイルのDD名 + PARM2:当該出力ファイルの件数 + 3-3.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1(W01/DEDUCTED-RESULT) + +SHA06REC.cpyに従う。300B固定長。 + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | EMP-ID | R01.EMP-ID | | +| 2 | EMP-NAME | R01.EMP-NAME | | +| 3 | INSURANCE-TYPE | R01.HEALTH-INS-TYPE | 健康保険種別 | +| 4 | GRADE-CODE | R01.GRADE-CODE | | +| 5 | MONTHLY-AMOUNT | R01.MONTHLY-AMOUNT | | +| 6 | HEALTH-RATE | DB2取得率(調整後) | 9(7) 小数点位置はプログラム内で規定 | +| 7 | PENSION-RATE | DB2取得率(調整後) | 9(7) 小数点位置はプログラム内で規定 | +| 8 | HEALTH-PREMIUM | 計算値 | MONTHLY-AMOUNT × HEALTH-RATE / 1000000 | +| 9 | PENSION-PREMIUM | 計算値 | MONTHLY-AMOUNT × PENSION-RATE / 1000000 | +| 10 | TOTAL-PREMIUM | 計算値 | HEALTH-PREMIUM + PENSION-PREMIUM | +| 11 | FILLER | 初期値 | | + +### 出力ファイル2(W02/ERROR-LOG) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | エラー種別(DBエラー/等級該当なし) | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容(EMP-ID + SQLCODE or 理由) | diff --git a/詳細設計書/詳細設計書_SHA07KBR.md b/詳細設計書/詳細設計書_SHA07KBR.md new file mode 100644 index 0000000..411c77c --- /dev/null +++ b/詳細設計書/詳細設計書_SHA07KBR.md @@ -0,0 +1,172 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA07KBR | +| 3 | プログラム名 | 資格異動キーブレイク処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | 33(1:N+異キーキーブレイク) | +| 6 | 機能概要 | DB2 QUALIFICATION-CHANGESから資格異動データをFETCHし、従業員ごと(1:N)かつ保険者コード変更時(異キー)にキーブレイクしてサマリ・明細を出力する。 | +| 7 | | 同一従業員内で保険者コードが変更された時点でサマリレコード(REC-TYPE=S)を出力、全レコードを明細レコード(REC-TYPE=D)として出力する。 | +| 8 | | 各出力はSHA07REC書式(200B固定長)に従う。エラーはERROR-LOG(VB)に出力する。 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル | 条件 | +|----|-------------|------| +| 1 | QUALIFICATION-CHANGES(DB2) | EMP-ID, CHG-DATE昇順にSELECTする。ソートはSQLのORDER BYで担保する。 | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | QUALIFICATION-CHANGES(DB2) | — | — | I | なし | — | — | — | DB2 | DECLARE CURSOR / FETCH | +| 2 | CHG-SUMMARY | W01 | SHA07W01 | O | SHA07REC | FB | | 200 | PS | REC-TYPE='S' | +| 3 | CHG-DETAIL | W02 | SHA07W02 | O | SHA07REC | FB | | 200 | PS | REC-TYPE='D' | +| 4 | ERROR-LOG | W03 | SHA07W03 | O | ZAN05REC | VB | | 200 | PS | エラー退避 | + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | QUALIFICATION-CHANGES | EMP-ID昇順, CHG-DATE昇順 | 1:Nマッチング(従業員1件に対しN件の異動) | +| 2 | 同上 | INSURER-CODE(異キー) | 従業員内で保険者コード変更時にキーブレイク | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | + + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.出力ファイルのオープン + 1-6.DB接続(EXEC SQL CONNECT) + 1-7.DECLARE CURSOR文でQUALIFICATION-CHANGESをSELECT + SELECT対象:CHG-ID, EMP-ID, EMP-NAME(SALARYDB.EMP-MASTERとJOIN), CHG-DATE, CHG-TYPE, INSURER-CODE, PREV-INSURER, REASON + ORDER BY:EMP-ID, CHG-DATE + 1-8.FETCHで1件目を取得し、WS-PREV-EMP-ID・WS-PREV-INSURERを初期設定(1100FETCSOR) + +2.主処理(2000MAJSOR)(FETCH終了まで繰り返す) + 2-1.EMP-IDキーブレイク判定(2100KEYBRSOR) + 2-1-1.WS-PREV-EMP-ID(前回従業員ID)とDBV-EMP-ID(今回従業員ID)が異なる場合、主キーブレイク発生 + 2-1-2.初回(WS-PREV-EMP-ID=HIGH-VALUES)はスキップ + 2-1-3.主キーブレイク時はサマリレコード出力(REC-TYPE='S') + 設定内容:前回従業員の最終保険者状態をサマリとして出力 + PREV-INSURER=前回レコードのINSURER-CODE、INSURER-CODE=SPACE + EMP-ID=前回従業員ID + 2-2.INSURER-CODE異キーブレイク判定(2200DIFKBSOR) + 2-2-1.WS-PREV-INSURER(前回保険者コード)とDBV-INSURER-CODE(今回保険者コード)が異なる場合、異キーブレイク発生 + 2-2-2.異キーブレイク時はサマリレコード出力(REC-TYPE='S') + 設定内容:前回保険者→今回保険者の変遷をサマリ + PREV-INSURER=WS-PREV-INSURER + INSURER-CODE=DBV-INSURER-CODE + EMP-ID=DBV-EMP-ID + CHG-DATE=DBV-CHG-DATE + REASON='INSURER CHANGED' + 2-3.明細レコード出力(2300DETAILSOR) + 全FETCHレコードを明細出力(REC-TYPE='D') + SHA07RECの全項目をDBV-から転記 + 2-4.WS-PREV-EMP-ID、WS-PREV-INSURERに今回値を設定 + 2-5.FETCHで次件取得(1100FETCSOR) + +3.最終グループ処理(2500LSTKBRSOR) + 3-1.最終従業員グループのサマリレコードを出力 + 3-2.最終詳細レコードを出力 + +4.終了処理(3000STPSOR) + 4-1.CLOSE CURSOR + 4-2.DISCONNECT DB + 4-3.出力ファイルのクローズ + 4-4.出力件数メッセージ出力 + 【メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:'DB2-QUALIFICATION-CHANGES' + PARM2:FETCH件数 + 【メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:'SHA07W01(CHG-SUMMARY)' + PARM2:サマリ件数 + 【メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:'SHA07W02(CHG-DETAIL)' + PARM2:明細件数 + 【メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:'SHA07W03(ERROR-LOG)' + PARM2:エラー件数 + 4-5.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1(W01/CHG-SUMMARY) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | CHG-ID | DBV-CHG-ID | 最終レコードのCHG-ID | +| 2 | EMP-ID | DBV-EMP-ID | 従業員ID | +| 3 | EMP-NAME | DBV-EMP-NAME | 従業員名 | +| 4 | CHG-DATE | DBV-CHG-DATE | 異動日 | +| 5 | CHG-TYPE | '99'固定 | サマリ識別 | +| 6 | INSURER-CODE | 異キー:DBV-INSURER-CODE / 主キー:SPACE | 主KB時はSPACE | +| 7 | PREV-INSURER | WS-PREV-INSURER | 変更前保険者コード | +| 8 | REASON | 'INSURER CHANGED' / SPACE | 異キー時のみ設定 | +| 9 | REC-TYPE | 'S'固定 | サマリ識別子 | +| 10 | FILLER | SPACE | | + +### 出力ファイル2(W02/CHG-DETAIL) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | CHG-ID | DBV-CHG-ID | | +| 2 | EMP-ID | DBV-EMP-ID | | +| 3 | EMP-NAME | DBV-EMP-NAME | | +| 4 | CHG-DATE | DBV-CHG-DATE | | +| 5 | CHG-TYPE | DBV-CHG-TYPE | | +| 6 | INSURER-CODE | DBV-INSURER-CODE | | +| 7 | PREV-INSURER | DBV-PREV-INSURER | | +| 8 | REASON | DBV-REASON | | +| 9 | REC-TYPE | 'D'固定 | | +| 10 | FILLER | SPACE | | + +### 出力ファイル3(W03/ERROR-LOG) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容 | diff --git a/詳細設計書/詳細設計書_SHA08SRT.md b/詳細設計書/詳細設計書_SHA08SRT.md new file mode 100644 index 0000000..30860b8 --- /dev/null +++ b/詳細設計書/詳細設計書_SHA08SRT.md @@ -0,0 +1,178 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA08SRT | +| 3 | プログラム名 | 届出書データSORT編集処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | 34(SORT INPUT/OUTPUT PROCEDURE) | +| 6 | 機能概要 | GRADED-LIST(SHA04REC 200B)をすべてSORT文のINPUT PROCEDUREでRELEASEし、都道府県・事業所・従業員昇順にSORT後、OUTPUT PROCEDUREでRETURNしてレイアウト編集したRPT-DATA(SHA08REC 300B)を出力する。GRADED-LISTはSHA04TWOでマッチング成功した全件が有効レコードのため、STATUSフィルタは不要。 | +| 7 | | SORT作業用ファイルはSD-SORTWORKで定義し、I-O-CONTROLでSAME SORT AREAを指定する。 | +| 8 | | RETURN-CODEでSORT結果を判定し、異常時はABEND処理を行う。 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル | 条件 | +|----|-------------|------| +| 1 | GRADED-LIST(R01) | 事前に事業所マッチング・保険者マッチング済みのSHA04TWO出力。ソート不要(SORT文で並替え)。 | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | GRADED-LIST | R01 | SHA08R01 | I | SHA04REC | FB | | 200 | PS | | +| 2 | SD-SORTWORK | — | — | I/O | 自前 | — | — | 200 | 内部 | SORT作業用 | +| 3 | RPT-DATA | W01 | SHA08W01 | O | SHA08REC | FB | | 300 | PS | | +| 4 | ERROR-LOG | W02 | SHA08W02 | O | ZAN05REC | VB | | 200 | PS | | + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | SD-SORTWORK | PREF-CODE昇順, OFFICE-NO昇順, EMP-ID昇順 | なし(SORTのみ) | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.出力ファイルのオープン(W01 / W02) + 1-6.入力ファイルR01のオープン + +2.主処理(2000MAJSOR) + 2-1.SORT文の実行(2100SORTSOR) + SORT SD-SORTWORK + ON ASCENDING KEY SR-PREF-CODE + SR-OFFICE-NO + SR-EMP-ID + INPUT PROCEDURE IS 2110INPPSOR + OUTPUT PROCEDURE IS 2120OUTPSOR. + 2-2.SORT結果判定(RETURN-CODE) + RETURN-CODE ≠ 0 の場合: + メッセージ出力 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SORT FAILED' + PARM2:RETURN-CODE + 【ABEND処理SUB】 + ABENDコード:100 + +2-1.入力手続き(2110INPPSOR) + 2-1-1.INPUT PROCEDURE内でR01(GRADED-LIST)を全件読み込み + 2-1-2.全件をRELEASEでSD-SORTWORKに出力(GRADED-LISTはSHA04TWOの有効マッチング結果のためフィルタ不要) + 2-1-3.SR-STATUSにはCNS-STATUS-0('0')を設定 + 2-1-4.READ AT ENDで入力手続き終了 + 2-1-5.EXITでINPUT PROCEDUREを抜ける + +2-2.出力手続き(2120OUTPSOR) + 2-2-1.RETURNでSD-SORTWORKから1件取得 + 2-2-2.AT ENDまで以下の処理を繰り返す + 2-2-3.ソート済みSDレコード→W01出力レコードに編集転記 + 編集内容: + RPT-BODYにSHA08RECの全項目を設定 + REPORT-TYPE='01'(届出書種別:算定基礎届) + REPORT-DATE=WRK-U06(運用日) + MONTHLY-AMOUNTはSR-MONTHLY-AMOUNTから転記(SHA04REC由来) + GRADE-CODEはSR-GRADE-CODEから転記(SHA04REC由来) + 2-2-4.WRITE W01OUTRECでRPT-DATAに出力 + 2-2-5.RETURNで次のレコード取得 + +3.終了処理(3000STPSOR) + 3-1.入出力ファイルのクローズ + 3-2.SORT入出力件数メッセージ出力 + 【メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:'SHA08R01(GRADED-LIST)' + PARM2:入力件数 + 【メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:'SHA08W01(RPT-DATA)' + PARM2:出力件数 + 【メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:'SHA08W02(ERROR-LOG)' + PARM2:エラー件数 + 3-3.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1(W01/RPT-DATA) + +SHA08REC.cpyに従う。300B固定長。 + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | EMP-ID | SR-EMP-ID | | +| 2 | EMP-NAME | SR-EMP-NAME | | +| 3 | OFFICE-NO | SR-OFFICE-NO | | +| 4 | OFFICE-NAME | SR-OFFICE-NAME | | +| 5 | INSURER-CODE | SR-INSURER-CODE | | +| 6 | INSURER-NAME | SR-INSURER-NAME | | +| 7 | PREF-CODE | SR-PREF-CODE | | +| 8 | MONTHLY-AMOUNT | SR-MONTHLY-AMOUNT | SHA04RECから保持(SHA04TWO時点では0) | +| 9 | GRADE-CODE | SR-GRADE-CODE | SHA04RECから保持(SHA04TWO時点では0) | +| 10 | REPORT-TYPE | '01'固定 | | +| 11 | REPORT-DATE | WRK-U06 | 運用日 | +| 12 | FILLER | SPACE | | + +### 出力ファイル2(W02/ERROR-LOG) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容 | + +### SD-SORTWORK(SORT内部ファイル) + +自前定義。200B。SHA04REC相当+SORT管理領域。 + +| No | 項目名 | 属性 | 備考 | +|----|--------|------|------| +| 1 | SR-EMP-ID | 9(008) | SORTキー3 | +| 2 | SR-EMP-NAME | X(040) | | +| 3 | SR-OFFICE-NO | X(004) | SORTキー2 | +| 4 | SR-OFFICE-NAME | X(040) | | +| 5 | SR-PREF-CODE | 9(002) | SORTキー1 | +| 6 | SR-INSURER-CODE | X(004) | | +| 7 | SR-INSURER-NAME | X(060) | | +| 8 | SR-MONTHLY-AMOUNT | 9(009) | SHA04RECから転記 | +| 9 | SR-GRADE-CODE | 9(002) | SHA04RECから転記 | +| 10 | SR-STATUS | X(001) | CNS-STATUS-0で固定(全件有効扱い) | +| 11 | SR-FILLER | X(030) | | diff --git a/詳細設計書/詳細設計書_SHA09S25.md b/詳細設計書/詳細設計書_SHA09S25.md new file mode 100644 index 0000000..4d76a25 --- /dev/null +++ b/詳細設計書/詳細設計書_SHA09S25.md @@ -0,0 +1,149 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA09S25 | +| 3 | プログラム名 | 都道府県支部別分割出力処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | 11(25分割) | +| 6 | 機能概要 | RPT-DATA(SHA08REC 300B)からPREF-CODE(都道府県コード01〜25)を判定し、25個の出力ファイル(PREF-OUT-01〜25)に振り分けて出力する。 | +| 7 | | SELECT文にはORGANIZATION IS SEQUENTIALを明示指定する。 | +| 8 | | 各出力ファイルはCLOSE WITH LOCKで確定する。 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル | 条件 | +|----|-------------|------| +| 1 | RPT-DATA(R01) | SHA08SRTの出力。PREF-CODE 01〜25のいずれかが設定されている。 | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | RPT-DATA | R01 | SHA09R01 | I | SHA08REC | FB | | 300 | PS | | +| 2 | PREF-OUT-01 | W01 | SHA09W01 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=01 | +| 3 | PREF-OUT-02 | W02 | SHA09W02 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=02 | +| 4 | PREF-OUT-03 | W03 | SHA09W03 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=03 | +| 5 | PREF-OUT-04 | W04 | SHA09W04 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=04 | +| 6 | PREF-OUT-05 | W05 | SHA09W05 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=05 | +| 7 | PREF-OUT-06 | W06 | SHA09W06 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=06 | +| 8 | PREF-OUT-07 | W07 | SHA09W07 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=07 | +| 9 | PREF-OUT-08 | W08 | SHA09W08 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=08 | +| 10 | PREF-OUT-09 | W09 | SHA09W09 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=09 | +| 11 | PREF-OUT-10 | W10 | SHA09W10 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=10 | +| 12 | PREF-OUT-11 | W11 | SHA09W11 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=11 | +| 13 | PREF-OUT-12 | W12 | SHA09W12 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=12 | +| 14 | PREF-OUT-13 | W13 | SHA09W13 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=13 | +| 15 | PREF-OUT-14 | W14 | SHA09W14 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=14 | +| 16 | PREF-OUT-15 | W15 | SHA09W15 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=15 | +| 17 | PREF-OUT-16 | W16 | SHA09W16 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=16 | +| 18 | PREF-OUT-17 | W17 | SHA09W17 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=17 | +| 19 | PREF-OUT-18 | W18 | SHA09W18 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=18 | +| 20 | PREF-OUT-19 | W19 | SHA09W19 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=19 | +| 21 | PREF-OUT-20 | W20 | SHA09W20 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=20 | +| 22 | PREF-OUT-21 | W21 | SHA09W21 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=21 | +| 23 | PREF-OUT-22 | W22 | SHA09W22 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=22 | +| 24 | PREF-OUT-23 | W23 | SHA09W23 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=23 | +| 25 | PREF-OUT-24 | W24 | SHA09W24 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=24 | +| 26 | PREF-OUT-25 | W25 | SHA09W25 | O | SHA09REC | FB | | 300 | PS | PREF-CODE=25 | +| 27 | ERROR-LOG | W98 | SHA09W98 | O | ZAN05REC | VB | | 200 | PS | | + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | RPT-DATA | なし | PREF-CODEで振分け(01〜25) | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.入出力ファイルのオープン + 入力R01、出力W01〜W25、エラーW98 + 1-6.R01を読み込む。(1100R01INNSOR)(1回目) + +2.主処理(2000MAJSOR)(R01を全て読み終えるまで繰り返す) + 2-1.PREF-CODE判定(2100SPLITSOR) + EVALUATE PREF-CODE(01〜25)で該当する出力ファイルにWRITE + 【出力レコード編集】 + SHA09RECのPREF-CODEにR01のPREF-CODEを設定 + SHA09RECのINSURER-CODEにR01のINSURER-CODEを設定 + SHA09RECのRPT-BODYにR01のFILLER(実質レコード本体の先頭294B)を設定 + またはSHA08RECの全項目を編集してSHA09RECに転記 + 2-2.W01〜W25のいずれかにWRITE + 2-3.R01を読み込む(1100R01INNSOR)(2件目以降) + 2-4.PREF-CODEが01〜25の範囲外の場合、ERROR-LOGに出力 + +3.終了処理(3000STPSOR) + 3-1.入出力ファイルのクローズ(CLOSE WITH LOCKで出力ファイルを確定) + 3-2.入出力件数メッセージ出力 + 【メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:'SHA09R01' + PARM2:入力件数 + 【メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:各出力ファイルDD名 + PARM2:各出力件数 + 【メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:'SHA09W98(ERROR-LOG)' + PARM2:エラー件数 + 3-3.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1〜25(W01〜W25/PREF-OUT-01〜25) + +SHA09REC.cpyに従う。300B固定長。 + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | PREF-CODE | R01のPREF-CODE | 01〜25 | +| 2 | INSURER-CODE | R01のINSURER-CODE | | +| 3 | RPT-BODY | R01のFILLER領域相当 | ファイル本体データ(294B) | + +### エラー出力ファイル(W98/ERROR-LOG) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容 | diff --git a/詳細設計書/詳細設計書_SHA10S10.md b/詳細設計書/詳細設計書_SHA10S10.md new file mode 100644 index 0000000..5eea5bb --- /dev/null +++ b/詳細設計書/詳細設計書_SHA10S10.md @@ -0,0 +1,132 @@ +# 詳細設計書 + +## 基本情報 + +| # | 項目 | 内容 | +|---|------|------| +| 1 | システム名 | 社会保険管理システム | +| 2 | プログラムID | SHA10S10 | +| 3 | プログラム名 | 保険者別分割出力処理 | +| 4 | PGMタイプ | メイン | +| 5 | PGMパターン | 12(100分割) | +| 6 | 機能概要 | RPT-DATA(SHA08REC 300B)からINSURER-CODE(保険者コード001〜099)を判定し、99個の出力ファイル(INSURER-OUT-01〜99)に振り分けて出力する。 | +| 7 | | SELECT文にはORGANIZATION IS SEQUENTIALを明示指定する。 | +| 8 | | 各出力ファイルはCLOSE WITH LOCKで確定する。 | + +※PGMタイプ:メイン、サブ +※PGMパターン:マッチング(1:1、1:N、N:1、M:N)、レイアウト編集のみ(GETPUT)、振り分け(IF文、EVALUATE文)、キーブレイク(集計、集約、集計・集約の以外)、DB更新 + +### 前提条件 + +| NO | 対象ファイル | 条件 | +|----|-------------|------| +| 1 | RPT-DATA(R01) | SHA08SRTの出力。INSURER-CODE 001〜099のいずれかが設定されている。 | + +### 使用ファイル一覧 + +| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 | 備考 | +|----|------------------|--------|------|-----|--------|------|---------|-----------|------|------| +| 1 | RPT-DATA | R01 | SHA10R01 | I | SHA08REC | FB | | 300 | PS | | +| 2 | INSURER-OUT-01 | W01 | SHA10W01 | O | SHA09REC | FB | | 300 | PS | INSURER-CODE=001 | +| 3 | INSURER-OUT-02 | W02 | SHA10W02 | O | SHA09REC | FB | | 300 | PS | INSURER-CODE=002 | +| 4 | INSURER-OUT-03 | W03 | SHA10W03 | O | SHA09REC | FB | | 300 | PS | INSURER-CODE=003 | +| .. | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | +| 11 | INSURER-OUT-10 | W10 | SHA10W10 | O | SHA09REC | FB | | 300 | PS | INSURER-CODE=010 | +| 12 | ERROR-LOG | W99 | SHA10W98 | O | ZAN05REC | VB | | 200 | PS | + +※本実装では代表10ファイル(001〜010)で定義。本番z/OSでは全99ファイルに拡張予定。 +※エラーファイルの識別子はW99、DD名はSHA10W98。 +INSURER-CODE=000または011〜099はエラーとする。 + +### キー項目一覧 + +| NO | ファイル名 | ソート条件(キー項目) | キー条件(マッチング/キーブレイク) | +|----|-----------|---------------------|-------------------------------------------| +| 1 | RPT-DATA | なし | INSURER-CODEで振分け(001〜099) | + +### 使用モジュール一覧 + +| NO | 機能 | プログラムID | 使用COPY名 | +|----|------|-------------|-----------| +| 1 | 運用日付取得SUB | SUB01DAT | SHADATAC | +| 2 | メッセージ編集出力SUB | SUB02MSG | SHAMSGAC | +| 3 | ABEND処理SUB | SUB03END | SHAENDAC | + +--- + +## 処理詳細 + +``` +1.初期処理(1000ITTSOR) + 1-1.開始メッセージ出力 + 【メッセージ編集】 + メッセージ番号:1(開始メッセージ) + 1-2.コンパイル日時出力 + 【メッセージ編集】 + メッセージ番号:33(コンパイル日時) + PARM1:コンパイル日時 + PARM2:'COMPILED' + 1-3.ワークエリアの初期化 + 1-4.運用日付取得SUB(SUB01DAT)により運用日を取得する。 + 復帰コード≠ZEROの場合、メッセージを出力し、ABEND処理SUBを呼び出し異常終了する。 + 【メッセージ編集】 + メッセージ番号:5(サブエラー) + PARM1:'SUB01DAT' + PARM2:復帰コード + 【ABEND処理SUB】 + ABENDコード:999 + 1-5.入出力ファイルのオープン + 入力R01、出力W01〜W10、エラーW99(DD名SHA10W98) + 1-6.R01を読み込む。(1100R01INNSOR)(1回目) + +2.主処理(2000MAJSOR)(R01を全て読み終えるまで繰り返す) + 2-1.INSURER-CODE判定(2100SPLITSOR) + EVALUATE INSURER-CODE(001〜099)で該当する出力ファイルにWRITE + 【出力レコード編集】 + SHA09RECのPREF-CODEにR01のPREF-CODEを設定 + SHA09RECのINSURER-CODEにR01のINSURER-CODEを設定 + SHA09RECのRPT-BODYにR01の本体部分(FILLER相当294B)を設定 + 2-2.W01〜W10のいずれかにWRITE + 2-3.R01を読み込む(1100R01INNSOR)(2件目以降) + 2-4.INSURER-CODEが001〜010の範囲外の場合、ERROR-LOG(W99/DD:SHA10W98)に出力 + +3.終了処理(3000STPSOR) + 3-1.入出力ファイルのクローズ(CLOSE WITH LOCKで出力ファイルを確定) + 3-2.入出力件数メッセージ出力 + 【メッセージ編集】 + メッセージ番号:6(入力件数メッセージ) + PARM1:'SHA10R01' + PARM2:入力件数 + 【メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:各出力ファイルDD名 + PARM2:各出力件数 + 【メッセージ編集】 + メッセージ番号:7(出力件数メッセージ) + PARM1:'SHA10W98(ERROR-LOG)' + PARM2:エラー件数 + 3-3.終了メッセージ出力 + 【メッセージ編集】 + メッセージ番号:2(終了メッセージ) +``` + +--- + +## 出力レコード定義 + +### 出力ファイル1〜10(W01〜W10/INSURER-OUT-01〜10) + +SHA09REC.cpyに従う。300B固定長。 + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | PREF-CODE | R01のPREF-CODE | | +| 2 | INSURER-CODE | R01のINSURER-CODE | 001〜099 | +| 3 | RPT-BODY | R01のFILLER領域相当 | ファイル本体データ(294B) | + +### エラー出力ファイル(W99/ERROR-LOG、DD名:SHA10W98) + +| No | 項目名 | 設定元 | 備考 | +|----|--------|--------|------| +| 1 | ERR-CATEGORY | 01で固定 | | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容 | diff --git a/詳細設計書/詳細設計書_ZAN01CHK.md b/詳細設計書/詳細設計書_ZAN01CHK.md index 9f737a4..aa37450 100644 --- a/詳細設計書/詳細設計書_ZAN01CHK.md +++ b/詳細設計書/詳細設計書_ZAN01CHK.md @@ -1,3 +1,12 @@ +## 詳細設計書_ZAN01CHK.md (MARKDOWN, 5.8 KB) + +- **Format**: Markdown +- **Word Count**: 512 + +- Words: 512 | Chars: 3,580 + +### Content + # 詳細設計書 ## 基本情報 @@ -141,4 +150,4 @@ | No | 項目名 | 設定元 | 備考 | |----|--------|--------|------| | 1 | ERR-CATEGORY | 01で固定 | | -| 2 | ERR-DETAIL | STRINGで編集 | エラー内容 | +| 2 | ERR-DETAIL | STRINGで編集 | エラー内容 | \ No newline at end of file