ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ACOS-4コミュのコマプロ自慢、ありますか〜?

  • mixiチェック
  • このエントリーをはてなブックマークに追加
コマプロ … 知る人ぞ知る「コマンド・プロシージャ」。
平たく言えば、オーダーメイドのコマンド。

ACOS4を初めて2〜3年ぐらい経ったころ、先輩が色々と作っているのを見て
「面白そう」と思い、自分もマニュアルを読みつつ色々作って遊んでました(笑)。

その経験が役立ち、今のプロジェクトではPGさんたちに円滑に製造してもらえるよう
幾つかの便利コマンドを提供し、作業時間短縮にも一役買って好評を得ています。
(設計に行き詰った時の、気分転換みたいなもんですが…あせあせ(飛び散る汗))

凝れば本当に色んなことが画面上で処理できるコマプロ。

例えばCOBOLのソースを、
予めCOPYLIBやコンパイルオプションを記述したコマプロでコンパイルすれば…
ATSS配下で処理されるので高速にコンパイルできますし、
いちいちソースをWRITEしなくても、
エディットバッファ上のイメージでコンパイルできたりします。

私も追々自作のコマプロを幾つか紹介したいと思っていますぴかぴか(新しい)

※コマプロも立派なソフトウェアだと思われますので、
自作のソースを掲載する際は著作権云々を主張される方は、
他人が複写利用しても構わない範疇で掲載しましょ〜手(チョキ)
(管理人さま、不適切なトピでしたら削除してください)

コメント(3)

こんにちは。管理人のたしかなことです。

ちょっと補足。
コマプロ:コマンドプロシージャ
ATSSでは多彩なコマンドを実行できます。
みなさんがよく使うDJなんかもコマンド(この場合サブコマンド)の
ひとつです。
例えば、RJして*BACK 2とかよく使いますよね。
これもコマンドです。
ですから、これをコマプロにすると、
RUNJOB
BACK DJ
など、バッチ形式で書きます(書き方は忘れました)
これを名前をつけてコマンドプロシージャ言語4だったカナ?
で保存して(例えばRJDJという名前で)、
*RJDJと打つとRJして*BACK 2が起動されます。

ただし、これには操作の簡易化(基本メニューの10.1)で
コマンドプロシージャのライブラリを登録しておく必要があります。

やの〜さん。
こんな感じでいかがでしょう?
.
> たしかなことさん
コマプロへの前提のご説明、ありがとうございました〜(^-^)ゞ
職場で作ったやつを持って帰ってから…と思って、
投稿が延び延びで放置状態になってしまってましたあせあせ(飛び散る汗)

私が今の職場で作ってPGさんたちに愛用されているのが、
\MSGPRINTを簡単に実行するコマンドですぴかぴか(新しい)


1.以下のJCLを「MSGP」というメンバーで「ACOS.IL」(例)に登録しておきます。
\JOB MSGPRINT USER=ACOS ACCOUNT=ACOS REPORT=ABNORMAL CLASS=A;
\JOR OUTID=SPR CLASS=A WRITER=ATSS
OUTDEV=PR/M050/JSTD OUTMED=I10000;
\COMM
コマンドプロシージャ用。自分でやりたい人は MSGPRINT で!
;
\MSGPRINT OPTION=DATETIME
,DT=%OPTION
,TEXT=NCMSG
,WIDTH=80;
\ENDJOB;


2.で、以下の内容のコマプロを「MSG」というメンバーで登録して…
SET &DISPTIME=&SUBSTR(1:5,&STR(&SYSTIME))
WRITE * ¥MSGPRINTを実行します
WRITE *  ※現在は &SYSDATE の &DISPTIME です
LVL1: WRITERDNR * 取得対象の開始時刻は?(HHMM,中止=BLANK)!&UVALFROM
IF &UVALFROM= THEN EXIT
IF &LENGTH(&STR(&UVALFROM))^=4 THEN -
DO
WRITE * ★入力の開始時刻が誤っています!
GOTO LVL1
ENDDO
SET &FROM=&SUBSTR(1:2,&STR(&UVALFROM)):&SUBSTR(3:4,&STR(&UVALFROM))
WRITE *  ※終了時刻を省略すると、現在時刻を自動設定します
LVL2: WRITERDNR * 取得対象の終了時刻は?(HHMM,中止=CAN)!&UVALTO
IF &UVALTO=CAN THEN EXIT
IF &UVALTO= THEN -
DO
SET &UVALTO=&SUBSTR(1:2,&STR(&SYSTIME))&SUBSTR(4:5,&STR(&SYSTIME))
ENDDO
IF &LENGTH(&STR(&UVALTO))^=4 THEN -
DO
WRITE * ★入力の終了時刻が誤っています!
GOTO LVL2
ENDDO
SET &TO=&SUBSTR(1:2,&STR(&UVALTO)):&SUBSTR(3:4,&STR(&UVALTO))
WRITE * 対象日付:&SYSDATE 開始時刻:&FROM 終了時刻:&TO
RUNJOB ACOS.IL(MSGP) CLASS=A NCLIST -
PARAM='OPTION=(&SYSDATE/&FROM,&SYSDATE/&TO)'
BACK DO


これで、コマンド「MSG」の完成です。
エディタ画面で「*MSG」等とタイプインすれば、
いちいちJCLをエディタで開いて日付と時刻を修正して…云々という操作無しで
最少なら始まりの時刻だけを指定してメッセージプリントを実行できますよ。

もちろん、↑のコメントで管理人さんが補足してくださった環境設定はしておく必要があります。
著作権云々は全然主張しませんので、現場で使えそうな人はご自由にお使いください。

やの〜 さん

トピを盛り上げて頂きありがとうございます。

なるほど。久々にコマプロ見ました。
最後の「BACK DO」は実行がすぐ終了する事を前提に「BACK DJ」
では無く結果を表示(みなさんにわかりやすいように:*BACK 3)
する様にしておられる訳ですね?

参考になります。

やの〜 さん。
盛り上げグッド(上向き矢印)宜しくデス
新しいトピ立てOKですから、色々話題作ってくださいね。

管理人:たしかなこと でした。
.

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

ACOS-4 更新情報

ACOS-4のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。