我有一個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. 從JCL批次調用CICS程序
- 3. Delphi應用程序調用cobol應用程序 - >錯誤
- 4. 從Cobol程序調用C函數
- 5. COBOL DB2程序
- 6. 調用子程序
- 7. 試圖運行COBOL .EXE使用C++程序
- 8. 作爲子應用程序運行MVC應用程序?
- 9. 如何使用腳本/程序(如java)通過調用cobol的compile/run命令來編譯/運行cobol?
- 10. 使用Windows調度程序運行控制檯應用程序
- 11. C程序運行Mac應用程序
- 12. 如何使用Random運行子程序()
- 13. 調試運行LUA應用程序
- 14. 運行java程序作爲調度程序而不使用crontab
- 15. 如何運行子程序
- 16. 使用來自Cobol程序的Java API
- 17. COBOL程序不寫文件
- 18. 從fortran調用C++子程序時運行時中止
- 19. 試圖運行基於電子的應用程序的問題?
- 20. 保護iOS應用程序免於運行時鉤子
- 21. 程序內程序調用
- 22. 運行Flex應用程序
- 23. 運行的應用程序
- 24. 運行WinCE應用程序
- 25. 運行Yaws應用程序
- 26. 運行Java應用程序
- 27. 運行rcp應用程序
- 28. 用參數運行程序?
- 29. 運行EJB應用程序
- 30. 運行PowerBuilder應用程序
從JCL的角度來看,程序'A'處理文件還是程序'B'的確不重要,因爲它們都在同一步驟中執行。 – NealB
我創建了JCL ...並且還通過爲這個文件添加了相同的select子句並在FD部分中將此文件聲明爲EXTERNAL來更新了我的主pgm和子pgm。我測試了我的JCL。它工作正常。非常感謝:) – Saisha