ユーザーがデータベース表で更新する2つの値を入力するマップがあります。私は両方のプログラムを書きましたが、私はマップに入力された2つのフィールド値を別のプログラムに渡す方法を知ることができません。私はLinkage Sectionを使うことができることを知りました。しかし、構文やその詳細を知らないでください。誰も私の構文を助けることができます。ありがとうございますCICS-COBOLからCOBOL-DB2プログラムにパラメーターを渡す方法
答えて
CICSマップから取得された値が保持されるプログラムには、WORKING-STORAGE
があるはずです。たとえば:
01 SCREEN-DATA.
05 SOME-FIELD PIC X(10).
05 SOME-OTHER-FIELD PIC 9(4).
77 PROGRAM-NAME PIC X(8) VALUE 'PROG2'.
は、このプログラムがPROG1
と呼ばれていると、あなたは、第二のCOBOLプログラムがPROG2
と呼ばれるこれらの値を渡したいです。 一般的に、これはCOBOLで 動的サブルーチン呼び出しを使用して行われます。動的コールを実行する典型的な方法は、プログラムと呼ばれる の名前をWORKING-STORAGE変数に入れることです。私はこの目的のためにPROGRAM-NAME
と宣言しました。データは、個々のアイテムと呼ばれるプログラムに を渡すことができる。
CALL PROGRAM-NAME USING SOME-FIELD, SOME-OTHER-FIELD
上記文献によってSOME-FILED
とSOME-OTHER-FIELD
を通過PROG2
に動的呼び出しです。次のように
PROG2
はそのリンケージ部を介してこれらのデータを受信:PROG2
の
LINKAGE SECTION.
01 LINKAGE-DATA.
05 FIELD1 PIC X(10).
05 FILED2 PIC 9(4).
手続き部はこのようなものになります。また
PROCEDURE DIVISION USING FIELD1, FIELD2.
を、あなたはとしてレコード全体を渡すことができます単一パラメータ::
CALL PROGRAM-NAME USING SCREEN-DATA
とPROG2
がその作業を完了したときPROG2
PROCEDURE DIVISION USING LINKAGE-DATA.
で最後に、それはGOBACK
またはEXIT PROGRAM
で終了する必要があります。 STOP RUN
を として使用しないでください。これにより、メインプログラム(PROG1
)も終了します。
COBOL呼び出し規約は、他のほとんどの手続き言語と同様です。パラメータは、参照(デフォルト)、値または内容によって に渡すことができます。ほとんどのCOBOLベンダーは、これらのパラメータのすべてを に渡すことをサポートしていますが、実装に多少の違いがあるかもしれません。上記の例は、IBM Enterprise COBOLの例です。 が異なるバージョンのCOBOLを使用している場合は、COBOLリファレンスガイドとCOBOLプログラミングガイドを確認することをお勧めします。
あなたはIBMエンタープライズCOBOLは、ライン上でガイドを得ることができます:Language Reference Guide とProgramming Reference Guide
あなたはちょうどあなたが2つのバッチCOBOLプログラム間の場合と同じように引数を渡すことができます。ただし、DFHEIBLKとDFHCOMMAREAの2つの必須引数を渡す必要があることにも注意してください。
実際に呼び出されたプログラムでは、コンパイラのリストにPROCEDURE DIVISIONに2つの引数が追加されているので、呼び出しプログラムでそれらの引数が必要になることがあります。私はあなたが明示的にあなたのソースコードに書き込むことをお勧めします。最後に
、それは次のようになります。プログラムの呼び出し
PROCEDURE DIVISION USING DFHEIBLK DFHCOMMAREA PARM1 PARM2 ... PARMXX.
:
は、プログラムと呼ば
WORKING-STORAGE SECTION.
01 PGM-NAME PIC X(8).
PROCEDURE DIVISION.
CALL PGM-NAME USING DFHEIBLK DFHCOMMAREA PARM1 PARM2 ... PARMXX
END-CALL.
- 1. CobolプログラムがTWSジョブにパラメーターを渡す
- 2. パラメーターを渡す
- 3. オブジェクトを返すメーターヘルパーにパラメーターを渡す方法
- 4. Dojo:カスタム・パラメーターをイベント・ハンドラーに渡す方法
- 5. Object型をC#のTypeパラメーターに渡す方法
- 6. rプログラムからmysql関数に変数を渡す方法
- 7. JavaプログラムからSQLストアドプロシージャに配列を渡す方法
- 8. Wicketパラメーター渡し
- 9. asp.net mvcアクションにリダイレクトし、ユーザー入力からパラメーターを渡す
- 10. パラメーターを渡す:Objective javascript
- 11. SqlDataSourceのパラメーターを後ろからコードを渡す
- 12. Windowsのプログラムからpsqlのパスワードを渡す方法
- 13. Mean Stack - コントローラーから$リソースオブジェクトへの角のパラメーターを渡す
- 14. VB.NET関数をActionパラメーターに渡す
- 15. RspecがPUTアクションにGETパラメーターを渡す
- 16. SharePoint 2013タイマージョブにパラメーターを渡す
- 17. 空の値をコマンドレットのパラメーターに渡す
- 18. ジャスパーレポートデザイナーのパラメーターから背景色を設定する方法
- 19. C#プログラムから別のプログラムにいくつかの "統計"を渡す方法はありますか?
- 20. SpringBoot:コントローラからすべてのプログラムに引数(リクエストID)を渡す方法は?
- 21. Reflection.Emitパラメーターの受け渡し
- 22. struts2でurlパラメーターにアクセスする方法
- 23. Mule:ArrayパラメーターをDB Updateに送る方法
- 24. ASP.Net MVC3 - パラメーターとしてパラメータを渡す
- 25. ユーザーIDをパラメーターとして渡す
- 26. 型パラメーターとして渡されたクラスの共有プロパティにアクセスする方法
- 27. C++プログラムからlinuxのpythonプログラムにデータを渡す
- 28. "コントロール"をパラメーターとして渡すコントロールのIDを渡す
- 29. CakePHP 3.0クエリー文字列パラメーターと渡されたパラメーター
- 30. WordからPowerpointにプログラムでプログラムをコピーする方法は?
をありがとうございました。それは動作していますが、私はcobol-db2プログラムでFIELD1、FIELD2変数を使用することができません。これらの変数を別の変数に移動しようとすると、私はcics画面に異常終了ASRAを取得しています。これで私を助けてくれるのですか – Pramod
A、B、Cを使った手続き部のように聞こえるのですが、A、B、Cを使って呼び出したプログラムの名前が並んでいません... " これがDB2とCICSの両方である場合、トランスレータ/コンパイラによって挿入されるリンケージ・セクション項目を考慮していますか?DFHEIBLKとDFHCOMMAREAにダミー・パラメータを渡す必要があるかもしれません。 ASRAで –