[개발일지] - 159
첫번째 프로젝트의 문의사항 중 특이한 부분이 있었는데
조회 필드를 입력해야 하는 상황에서 값이 제대로 검색되지 않는 문제였다.
해당 부분을 확인했지만 왜 안되는지 원인 파악이 되지 않았고
그나마 가장 가능성이 있었던 부분은
해당 조회 필드의 세부사항 → 편집 → 상태검색 하단의 검색 허용이었는데
해당 처리를 하면 오히려 검색 자체가 막혀버려서 바로 해제했다.
한참 후 원인을 알 수 있었는데
검색 허용을 하게 되면 Indexing을 진행하기 때문에
일시적으로 검색이 잠겨버리지만 그 이후에는 첫글자부터 입력하지 않아도
정상적으로 값이 검색되는 것을 확인할 수 있었다.
결론적으로 세일즈포스 Related Field Search 관련해서
조회 필드의 세부사항 → 편집 → 상태검색 → 검색 허용으로 넘어가면 된다.
두번째 프로젝트의 요청사항 중
국내/국외의 사용자에 따라 다른 선택 리스트의 value를 보여주고 싶어했는데
해당 내용의 관리 상태를 보니 API는 국문, Value는 영문으로 만들어진 상태로
api가 노출되기 떄문에 value로 변경할 수가 없었다.
결국 두개의 테이블을 생성 후 display none을 선택해
해당 조건이 걸릴 경우 국문이 필요할 경우 해당 값을 Case에서 변경하게 만들었다.
<td class="txt_center" style="display: {!IF(BolleanField, 'none','block')}">{! data.fieldName__c}</td>
<td class="txt_center" style="display: {!IF(BolleanField, 'block','none')}">{!CASE(data.fieldName__c,
'선택1', 'Option1',
'선택2', 'Option2',
'선택3', 'Option3',
'선택4', 'Option4',
'선택5', 'Option5',
'6', 'Option**6**',
'Not Checked')}
</td>
선택적 가시성을 사용할 때는 일반 태그의 경우 display와 {!IF(boolean,none,block)}을 같이 사용하고
apex 관련 태그의 경우 rendered="{!NOT(boolean)}”을 사용하면 편하게 관리할 수 있다.
권한 문제들은 다시 해당 프로필들에 들어가 개체의 권한들을 확인해줬고 Flow등도 추가해줬다.
특히 배포된 Flow의 경우 최신 버전이 적용되지 않고 기존 배포된 내용이 남아있기 때문에
해당 내용을 찾아서 Active를 적용해야 했다.
이메일이 보내지지 않는다는 메일이 와서 다 진행해봤지만 문제가 없었고
원인을 파악하기 위해 전송하는 내용을 보니 Gmail로 전송하고 있었다.
도대체 누가 자꾸 설정을 끄는지는 모르겠지만
예전에도 RFHIC에서 진행했던 이메일 발송 신뢰도를 올리는 방법을 블로그에서 찾아서 진행했다.
Gmail 발송 또는 이메일 신뢰도 등의 키워드를 통해 언제든 다시 찾을 수 있을 것 같은데
Deliverability에서 Email Security Compliance 하단 부분을 체크하면 해결할 수 있다.
flow 내부에서도 입력 유효성을 확인할 수 있었는데
아래처럼 유효성을 추가해줘서 필드의 제한 길이를 벗어나지 않도록 유효성 검사를 추가했는데
flow 내부 유효성 확인 LEN({!ThisFlowVariable}) <= 10 등 false가 되면 에러가 발생한다.
그 외에는 계속되는 요청사항이지만
이미 방법을 다 기록해둔 문제들이 대다수였기 때문에 큰 문제 없이 처리를 진행했다.
도중 인터페이스 정의도 되지 않았고
테이블에도 추가되지 않은 픽리스트 내용을 추가해달라는 요청이 왔는데
sql server에 들어가서 계속 확인하는 등의 쓸대없는 행동을 했는데
알고보니 해당 서버를 버리고 세일즈포스 내부에서 진행할 예정이기 때문에
내가 정의하고 그 내용을 인터페이스 협업사에 전달해 합의만 되면 되는 부분이었다.
분명 두번쨰 프로젝트에서는 알림 메일등에 대해서는 초중반까지 언급이 없었는데
슬그머니 하나씩 추가되다가 이제는 전 과정에 다 넣으려는 것 같은데
이럴 것 같았으면 진작 말해서 상태값이 변경될 때마다 상태값 변경만 가게 만들었으면
하나의 알람으로 간단하게 처리되는데
하나씩 요청하고 하나마다 굳이 필요없는 필드들을 요청해서 복잡하면서 여러개의 템플릿이 늘어간다.
요청사항들을 처리하고 8시 40분쯤 정리하고 퇴근하기로 했다.
(1).백준 13617번 Handebol은 우수한 핸드볼 선수를 찾는 문제로
각 줄마다 선수의 획득 점수가 주어진다.
모든 경기에서 득점을 한 선수의 숫자를 묻는 문제로
for문마다 선수를 조회하고
각 선수의 경기 중 득점이 없는 경우 바로 중단하며
득점이 없는 경기가 없는 경우 기존에 설정된 true로 인해 count가 1씩 증가하는 방식으로 해결했다.
const input = `12 5
4 4 2 3 7
0 0 0 1 0
7 4 7 0 6
1 2 3 3 2
0 0 0 0 0
4 0 9 10 10
0 1 0 0 0
1 2 0 2 3
10 10 10 1 0
0 3 3 3 4
10 10 0 10 10
1 1 2 0 9`.split('\n')
let result = 0
for(let i = 1 ; i < input.length ; i++){
const arr = input[i].split(' ')
let isWinner = true
for(let j = 0 ; j < arr.length ; j++){
if(arr[j] == '0'){
isWinner = false
break
}
}
if(isWinner){
result++
}
}
console.log(result)