
드물게 Sandbox에서 Production으로 Apex 코드를 배포하려고 할 때 마주치는 에러이다. 이것은 Salesforce의 릴리즈가 Sandbox에 선 적용 후 Production에 적용되기 때문인데 그 과도기에 만약 새로운 릴리즈가 적용된 Sandbox에서 Apex를 생성하고, 아직 릴리즈가 적용 전인 Production에 배포하려고 하면 이 에러를 마주칠 수 있다.
보통 Apex로 개발하면 VSCode를 사용할 것이다. Apex class 이름과 동일한 이름의 xml파일에서 해당 apex class의 api version을 확인할 수 있다.

만약 배포 중, Invalid api version:xx.0 에러를 마주친다면, 우선 배포하려는 target org의 현재 API Version을 확인해야 한다.
Target Org가 Production인 경우:
Setup > API > Generate Enterprise WSDL > Generage 버튼 클릭하여 나오는 XML 파일 최상단 주석부분에서 현재 API Version을 확인할 수 있다.

위 화면에서 "Generate Enterprise WSDL" 링크를 누르면 아래 화면이 나오는데, 여기서 그냥 Generate 버튼을 누르면 된다.

버튼 클릭 시 나오는 XML파일에서 가장 위쪽 주석부분에 API Version이 명시되어 있음을 확인할 수 있다.

Target Org가 Sandbox인 경우:
Setup > Apex Classes > New 버튼 클릭하여 Version Setting 목록에서 확인가능하다. VSCode에서 새 Apex 파일을 생성 시 자동으로 최신 API 버전이 찍혀나오게 된다.
배포 타켓 Org의 현재 API Version을 확인했다면 Source Org로 돌아와서 배포하려는 Apex class의 XML 파일을 수정해주면 된다.
수정 작업 자체는 거의 별 문제는 없으나 가끔 API버전에 따라 지원되는 함수같은 것들이 차이날 수 있으므로, 변경 후 간단한 테스트는 필수로 해봐야 한다.
'Salesforce > Salesforce Dev' 카테고리의 다른 글
| SFDC Query 튜닝 - Skinny Table (1) | 2024.06.11 |
|---|---|
| LWC Lightning Message Service (0) | 2024.06.06 |
| Apex Unit Test에 대한 개인적인 생각 (1) | 2024.06.03 |
| Testing Apex 시리즈 시작 (0) | 2024.06.03 |
| Test Nested Async Apex jobs (Schedule + Queueable) (1) | 2024.05.31 |