redirection으로 수락, 거부, 만료 등의 페이지 이동을 진행하려고 했는데

작동 방식을 보니 새로운 페이지를 만들긴 하지만 site로 등록할 필요는 없었다.

 

초기 사이트만 등록한 다음 그 이후로 진행되는 page 들은 전부 site permission으로 추가해주고

페이지를 이동시킬 때 주소값을 입력하는 것이 아니라 페이지의 경로를 입력하는 방식이었다.

ApexPages.addMessages(e); PageReference myVFPage = new PageReference('/apex/PageName');

 

또한 이런 방식으로 결과들을 처리하다보니

alert를 사용한 반응도 할 필요가 없었는데(그 전에 페이지 이동)

페이지 이동이 있는 경우 이동이 먼저 되도록

onclick, oncomplete, action 등을 사용했던 것이 무의미해졌다.

 

결국 남은건 action 뿐이었고 action을 통해 Apex의 메서드를 호출해서 저장할 수 있었다.

또한 상태값 확인을 통한 페이지 이동을 하기 위해서는

페이지가 작동하자마자 체크해야 하기 떄문에

apex:page 부분에 action을 걸어 로딩 후 redirect 체크하도록 만들었다.

<apex:page controller=”controllerName" showHeader="false" sidebar="false" standardStylesheets="true" action="{!redirect}">

 

그 이전에는 no-cache, no-store 등으로 진행해보려고 했지만

sfdc의 인증도 같이 날아가는건지 권한없음 페이지로 이동되었기 때문에

어쩔 수 없이 no-cache 등은 사용할 수 없었다.

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />

 

승인 부분을 완료하니 거절 페이지도 간단하게 할 수 있었는데

문제는 만료 페이지를 띄우는 것이었다.

 

일정 기간 후 만료되면 링크를 사용할 수 없는 것인데

지정된 기간은 받을 수 있었지만 시작 기간을 전달받지 못했다.

 

작성일로 해도 나쁘지는 않을 것 같지만

테스트를 하는게 골치아프기 때문에 고민하다가

특정 기간 자체를 줄이면 되기 때문에 그냥 작성일을 기준으로 하기로 했다.

 

사실 메일 발송 시점에 하나의 필드를 추가해서 관리할까 싶었는데

필드 추가, flow 업데이트를 추가로 진행해야 하며

필드가 늘어나면 늘어날수록 성능이 저하되기 때문에

추가 요청이 아닌 이상은 작성일로 해도 괜찮을 것 같았다.

 

날짜를 비교하려고 알아보다가 daysBetween이라는 기능을 찾았는데

날짜 비교를 하는 메서드가 존재해서 편하게 진행할 수 있었다.

 

다만 DateTime type으로 들어있기 떄문에 .date()로 형변환을 해야 했고

이런 방식을 사용하려면 xxxx-xx-xx형태 같은 텍스트가 아닌

날짜 형태로 넣어줘야 비교가 가능할 것 같다.

ObjName.CreatedDate.date().daysBetween(Date.today())

 

Flow Action을 사용하려고 해도 다른 프로필은 사용이 불가능했다.

 

한참 Flow Action Button에 대해 찾아봐도 뭔가 없었고

Profile의 Flow 부분을 확인해도 등록된 플로우가 없었다.

 

플로우 자체가 권한을 확인하지 않고 돌아가는 트리거 느낌이라

여태까지 플로우를 사용하며 문제를 느낀 적이 없었는데

상당히 황당했고 결국 팀장님에게 문의드리니 해결해주셨다.

 

원인은 App Permission 부분에서 run flow를 켜지 않으면

flow 자체를 작동시킬 수 없는 것이었다.

 

flow action이 보이지만 작동하지 않는 것이 있었는데

원인을 확인해보니 Email Template이 My Private 폴더에 저장된 것 떄문으로

Public으로 변경해주니 다시 정상적으로 작동했다.

 

요청사항을 정리하다가 필요해 보이는 부분들을 알아서 더 수정하고

결과물을 발송하기 전에 확인하고 싶다고 하셨을 때

일단 내용물 리스트로 개별적으로 확인하라는 결론으로 지나갔지만

링크로 해당 결과물 페이지를 바로 볼 수 있으면 좋을 것 같아서 링크를 추가했다.

HYPERLINK("https://orgName.sandbox.my.salesforce-sites.com/page?id=" & Id , "페이지 링크")

 

 

 

(1).백준 15740번 A+B - 9는 단순히 A+B를 구해야 하는 문제였지만

숫자의 단위가 어마어마하게 커서 BigInt를 사용하는 것만 주의하면 되는 문제 같았다.

 

BigInt를 사용하면 끝에 n이 붙기 때문에 String으로 다시 문자열로 변경해 n을 제거한 다음 출력했다.

const input = `123 230`.split(' ').map(BigInt)
console.log(String(input[0] + input[1]))

'회고' 카테고리의 다른 글

[개발일지] - 128(주말)  (0) 2023.11.05
[개발일지] - 127(주말)  (0) 2023.11.04
[개발일지] - 125  (0) 2023.11.02
[개발일지] - 124  (1) 2023.11.01
[개발일지] - 123  (0) 2023.10.31

+ Recent posts