我有一張地圖,其中用戶輸入兩個要在數據庫表中更新的值。我寫了兩個程序,但我無法知道如何將在地圖中輸入的兩個字段值傳遞給另一個程序。我開始知道我可以使用聯動部分。但不知道它的語法或任何細節。任何人都可以幫助我的語法。謝謝如何將參數從CICS-COBOL傳遞到COBOL-DB2程序
回答
程序中應該有一些WORKING-STORAGE
從CICS地圖檢索值。例如:
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
以上是PROG2
其通過引用傳遞SOME-FILED
和SOME-OTHER-FIELD
動態呼叫。
PROG2
通過聯合部接收這些數據如下:
LINKAGE SECTION.
01 LINKAGE-DATA.
05 FIELD1 PIC X(10).
05 FILED2 PIC 9(4).
的PROG2
過程司將是這個樣子:
PROCEDURE DIVISION USING FIELD1, FIELD2.
或者,您可以通過全程記錄作爲來自PROG1
的單參數:
CALL PROGRAM-NAME USING SCREEN-DATA
和PROG2
PROCEDURE DIVISION USING LINKAGE-DATA.
最後,當PROG2
已完成其工作,應以GOBACK
或EXIT PROGRAM
終止。不要使用STOP RUN
作爲 這也將退出主程序(PROG1
)。
COBOL調用約定與大多數其他過程語言相似。參數可以通過引用(默認值),按值或按內容傳遞 。大多數COBOL供應商支持通過 機制的所有這些參數,但實現中可能有較小的差異。以上示例適用於IBM Enterprise COBOL。如果您的 正在使用不同版本的COBOL,那麼檢查您的COBOL參考指南和COBOL編程指南將是一個好主意。
你可以得到IBM的企業COBOL指導線:Language Reference Guide 和Programming Reference Guide
可以傳遞參數,就像你兩個COBOL程序之間會。但是,您必須小心,您還必須傳遞DFHEIBLK和DFHCOMMAREA這兩個強制參數。
事實上,在你調用的程序,你可以在編譯器中列出了這兩個參數都在程序分流增加了,所以你需要他們在您的調用程序見。我建議您在源代碼中明確寫入它們的可讀性。
最後,它應該是這樣的:
調用的程序:
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. 如何將參數從JavaScript傳遞給通用處理程序?
- 2. 如何從命令行將參數傳遞給golfscript程序
- 3. 如何將參數從C++程序傳遞給cmd?
- 4. 如何將參數從網頁傳遞給程序?
- 5. 如何將參數值從Asp.net傳遞到SSRS存儲過程?
- 6. 如何將參數傳遞到存儲過程從php
- 7. 將參數從驅動程序傳遞到火花執行器
- 8. 將參數傳遞給事件處理程序從aspx到jquery
- 9. 將參數從EJB傳遞到SOAP處理程序解析器
- 10. 將參數從Java程序傳遞到shell腳本
- 11. 如何將參數傳遞給進程
- 12. 如何將參數傳遞到視圖
- 13. 如何將url參數傳遞到iframe?
- 14. 如何將參數傳遞到call_user_func
- 15. 如何將參數傳遞到erlang os:cmd()?
- 16. IBM Worklight - 如何將參數從應用程序傳遞到適配器?
- 17. 如何將參數從我的aspx頁面傳遞到Windows應用程序
- 18. 如何將參數從android應用程序傳遞到服務器
- 19. 如何將參數從android原生應用程序傳遞到swf文件
- 20. 如何將日期參數從ASP.NET應用程序傳遞到Crystal Reports 2008?
- 21. 如何從jenkins傳遞參數到硒
- 22. 將參數傳遞給子程序
- 23. 將參數傳遞給EXE程序集
- 24. 將參數傳遞給應用程序
- 25. Makefile將參數傳遞給C程序
- 26. 如何將參數從傳統ASP傳遞到com組件
- 27. 如何將變量從r程序傳遞到mysql函數
- 28. 如何將數據從網頁傳遞到應用程序?
- 29. 參數傳遞到命令行程序
- 30. 參數傳遞到Java的Socket程序
太謝謝你了。它的工作,但我無法使用FIELD1,FIELD2變量在我的COBOL的DB2程序。當我試圖轉移這些變量到另一個變量,我得到異常終止ASRA在我的CICS屏幕。 u能幫助我解決這個 – Pramod 2012-04-21 07:25:47
這聽起來像你的「程序師使用A,B,C ...」語句不排隊與您的通話程序名使用A,B,C ......」 正如你提到的這是DB2和CICS,你考慮的是獲得通過翻譯/編譯器插入聯動部分項目?您可能需要通過虛擬參數DFHEIBLK和DFHCOMMAREA,否則,被調用的程序將attemt使用未分配的存儲,從而在ASRA。 – 2013-10-07 14:05:09