SAP/ABAP

Variant 없이 Batch Job 생성하기 ( Dummy Variant 생성 )

그녀는애교쟁이 2014. 7. 16. 10:16
반응형

   오늘의 특이 케이스는 Batch Job을 생성하는 과정에서 나타나는 오류는 아니지만 엉뚱한 곳에서 문제가 생긴 케이스 이다. 이 포스팅 이전에 Variant 와 Batch Job 에 대해 포스팅을 3차례 하였는데 이 케이스는 없는 것 같아 추가적으로 기록을 남기게 되었다. 


Batch Job 을 등록하는데 Variant를 넣으라고 하는 메시지를 내보내고 진행이 안된다. 는 질문을 받았다. 그런데 다른 Job 들을 보니 Variant 없이 등록된 Job 들도 있었고, 그래서 왜 안되냐고 잘해보라고 닥달(?)을 하고 나서 나도 실제로 SM36을 통해서 배치잡을 등록하다보니 안되는 것이었다. (살짝 미안했다. )




 이전 Batch Job 을 생성하는 포스팅에서는 Variant 는 Optional 한 조건이었는데, 실제로 등록을 하여보니 저장이 안되고 Variant 를 넣으라는 메시지가 출력된다. 





그런데 다른 Job 들을 찾아보니 Variant 없이도 생성이 된 것들이 있다. 참으로 이상한 일이다. 프로그램간의 차이를 찾아보니 그냥 Variant 없이 저장되는 프로그램이랑 Variant 를 넣으라는 프로그램의 차이는 필드의 필수 값 여부(OBLIGATORY) 였던 것이다. 다시 말하자면 화면에 입력되는 필드중 OBLIGATORY 로 지정된 필드가 있으면 Variant 를 꼭 넣게 다음 단계로 넘어가지 않는 것이다. 참으로 합리적이긴하다. 결과적으로 필수값이 지정되어 있다면 꼭 Variant 를 넣어야 하는데 더미 Variant 를 생성하는 방법이다.


일단 오늘은 Variant 를 넣으라고 하는 프로그램에서 더미 Variant 를 만들어 Report 에서 Initialization 을 적용 시키는 방법을 알아보겠다. 배치 프로그램을 작성하면 프로그램의 기준이되는 날짜를 입력하기 마련이다. 앞서 포스팅한 dynamic variant 생성도 이러한 기준일자를 조정하기 위한 작업이었는데, 전분기, 전년도와 같은 경우 dynamic variant 로 조정하기에 한계가 있기에 배치 프로그램 안에 Initialization 에 코딩으로 넣곤한다.


그런데 Variant 를 입력하면 그 일자가 고정이 되어 Initialization 에 코딩한 내용이 적용이 되지 않는다. 그것을 해결하기 위한 더미 Variant 생성 방법이다. 내용이 길어졌지만 실제로 간단하다. 





Variant 생성 화면에서 Save field without values ( 한글명 값없이 저장 ) 필드를 선택하고 저장을 하면 그 필드에 한해서는 Variant 의 값이 저장이 되지 않는다. 그렇기 때문에 Initialization 에서 코딩된 내용 ( 예를 들면 날짜, 연월 등) 이 입력이 된다.


- 끗 -