我有一個COBOL pgm A,它調用另一個COBOL pgm B. 在pgm BI中需要一個文件。我如何編寫JCL以便能夠在pgm B中訪問此文件?我在B.JCL用於運行COBOL程序調用子程序
回答
寫SELECT子句和FD進入該文件必須包含在JCL對於如果文件存在執行程序A.
的步驟DD statement,那是很容易的。
//ABCDEFGH DD DISP=SHR,DSN=your.file.name.here
ABCDEFGH在哪裏,你是在計劃B.你的SELECT語句中使用的名稱
如果要創建一個新的文件,你必須考慮到空間的估計值的文件將使用你想去的地方放置它。
//ABCDEFGH DD DISP=(NEW,CATLG,DELETE),
// DSN=your.file.name.here,
// AVGREC=K,
// RECFM=FB,
// LRECL=your-lrecl-here,
// MGMTCLAS=your-management-class-here,
// SPACE=(your-lrecl-here,(primary-number-of-records,secondary),RLSE)
這僅僅是寫意的,你真的應該看看JCL Reference和JCL User's Guide。
- 在步驟中包含DD語句。
- 程序B甚至不一定是COBOL。
- 理想的設計,使程序B是一個服務程序 - 根據 請求和您的需求打開,關閉,讀取,寫入重新寫入。如果預期這種封裝,它會讓你的生活變得更容易。
我已經看到了這個,其中B是彙編程序,當不是交互式運行時刷新寫入磁盤,但在調試時立即寫入。
你不需要改變程序來改變「沖洗」,只需要將DD改爲解鎖就可以了(假設阻塞在程序中沒有被硬編碼)。我完全不知道會給你帶來什麼樣的好處,但是你就是這麼做的。沒有涉及的代碼。 –
好處是調試。諸如Expeditor或Intertest等產品說。生產中的緩衝歷史上會產生性能提升。可能是紅鯡魚。我試圖展示子模塊的完整「服務」性質。通常,這種大量的文件處理是在頂層執行的。 – mckenzm
那麼,在任何情況下,你都必須修改程序的行爲來使用它的調試工具,對我來說看起來並不怎麼樣。我確定他們可以展示緩衝區,但我們走了。至少有一個解釋。 –
- 1. 如何自動運行jcl在主機上運行cobol程序
- 2. COBOL - 調用程序
- 3. JCL一個COBOL表讀/插入程序
- 4. 從Cobol調用Java程序
- 5. 從JCL批次調用CICS程序
- 6. Delphi應用程序調用cobol應用程序 - >錯誤
- 7. 從Cobol程序調用C函數
- 8. COBOL DB2程序
- 9. JCL如何將PRTOUTA,...等鏈接到Cobol程序?
- 10. 從子程序調用子程序
- 11. 調用子程序
- 12. 試圖運行COBOL .EXE使用C++程序
- 13. 如何從DB2上的COBOL存儲過程調用COBOL批處理程序
- 14. 作爲子應用程序運行MVC應用程序?
- 15. 如何使用腳本/程序(如java)通過調用cobol的compile/run命令來編譯/運行cobol?
- 16. 使用Windows調度程序運行控制檯應用程序
- 17. 如何在Web應用程序中運行調度程序實用程序
- 18. C程序運行Mac應用程序
- 19. 如何使用Random運行子程序()
- 20. 調試運行LUA應用程序
- 21. 調用另一個程序在我的IDL程序中運行
- 22. 運行java程序作爲調度程序而不使用crontab
- 23. 運行node.js應用程序與監督程序調試
- 24. 如何運行JCL程序來啓動SQL查詢?
- 25. 如何運行子程序
- 26. 使用來自Cobol程序的Java API
- 27. 在COBOL程序中使用BINARY
- 28. 調用perl的子程序
- 29. R調用Fortran子程序
- 30. COBOL程序中的邏輯
從JCL的角度來看,程序'A'處理文件還是程序'B'的確不重要,因爲它們都在同一步驟中執行。 – NealB
我創建了JCL ...並且還通過爲這個文件添加了相同的select子句並在FD部分中將此文件聲明爲EXTERNAL來更新了我的主pgm和子pgm。我測試了我的JCL。它工作正常。非常感謝:) – Saisha