요청사항 처리 중 noreply@salesforce.com이 붙어있다는 문의사항이 왔고

해당 사항을 확인해보니 Deliverability 내부에 Email Security 부분을 다 체크하면 안되는 것이었다.

Sender Id Compliance

Enable Sender Id compliance를 체크할 경우

어디에서 발송되었는지를 포함시키기 때문에 세일즈포스 관련 주소가 자동으로 할당되며

하단의 Enable Sender Id compliance를 체크 해제해야 일반 메일처럼 발송자의 메일만 전달되게 된다.

 

sites에서 들어간 고객 전달용 페이지에서

고객이 선택한 내용이 바로 반영이 되지 않는 문제가 있었는데

해당 문제는 새로고침을 하면 풀리지만 새로고침을 하지 않으면

해당 페이지를 나갔다 다시 들어가도 계속 유지되었기 때문에

cache를 없앨 수 있는 방법을 확인하다가

<apex:page cache="false">처럼 apex:page 뒤에 cache = “false”를 넣어 해결할 수 있었다.

 

금액 부분의 포맷 수정 요청이 들어왔는데

이전에 진행했던 000,000 형태는 6자리 숫자가 되지 않아도 6자리로 바꿔버렸기 때문에

아래와 같이 #,##0으로 변경했으며 소숫점 2자리까지 금액이 필요하다고 하셔서 .00을 추가했다.

<td class="txt_center">
    <apex:outputText value="{0, number, #,##0.00}">
        <apex:param value="{!fieldName}" />
    </apex:outputText>
</td>

 

다른 부분에도 응답이 발생한 순간

담당자에게 메일을 발송해달라고 하셔서 해당 부분까지 처리했는데

처음 진행할 때는 상당히 난감했지만 한번 방법을 알고나니 생각보다 간단하게 진행할 수 있었다.

 

방법은 간단하게 아래 순서대로 진행되는데

1.classic Email Template 생성(Guest 유저면 renderUsingSystemContextWithoutSharing 사용)

<messaging:emailTemplate renderUsingSystemContextWithoutSharing="True" subject="{!relatedTo.Name + '아무거나'}" recipientType="User" relatedToType="ObjectName__c">
    <messaging:htmlEmailBody >
        <html> 
            <body> 
                {! 'Dear ' + relatedTo.Owner.Name}
                xxxx yyyy zzzz hi hi
                <br/>
                <br/>
                Object Name : {!relatedTo.Name}
                <br/>
                Company Name : {!relatedTo.Account.Name}
                <br/>
                <br/>
                Please proceed this Procedure.
                <br/>    
                Thank you
            </body> 
        </html> 
    </messaging:htmlEmailBody> 
</messaging:emailTemplate>

2.email alert 생성(Recipient Type는 target의 Owner 등 사용 가능)

3.flow 내부 Shortcuts의 Send Email Alert 선택

Send Email Alert

 

요청사항을 다 끝낸 것 같았지만 뭔가 의아해서 보니

alert라는 단어 떄문에 메일 / 알람이라고 말했었지만

sfdc 내부에는 Notification이라는 내부 알림 기능이 존재했었다.

 

결국 각 메일 알림 이후 단계에 내부 알림도 포함시키려고 확인하니

Notification을 사용하기 전 먼저 CustomNotificationType을 만들어야 했다.

 

설정 내부 Custom Notification에서 간단히 하나를 생성할 수 있었는데

입력 요구사항은 작동 환경(컴퓨터, 모바일)과 이름이 끝이었다.

Custom Notification

이후 Email Alert를 Flow에서 발송하는 것과 유사하게 진행되는 것 같았지만

조금 더 절차가 복잡했는데 Flow Core Action: Send Custom Notification 까지는 간단했지만

Custom Notification Type ID, Recipient IDs를 입력해야 했다.

 

Inspector 등으로 Id를 찾아서 하드코딩해도 작동은 하지만

Get으로 해당 Id를 가져와서 입력해서 처리했다.

 

Recipient IDs에서 황당하게 작동이 제대로 되지 않았는데

아무리 Id를 입력하려고 해도 연관관계만 주구장창 나와서 입력할 수 없었다.

 

계속 되지 않아 짜증이 쌓이고 있는데

자세히 보니 Recipient ID가 아니라 Recipient IDs였고

입력에 필요한 값은 Id가 들어간 String이 아니라

List<String> 형태의 컬렉션이 필요했던 것이었다.

 

결국 Ids에 넣어주기 위한 레코드 컬랙션을 만든 다음

넣고 싶었던 Id를 할당(Assignment)을 사용해 레코드 컬렉션에 넣어주고

Recipient IDs에 해당 컬렉션을 넣어 마무리할 수 있었다.

Send Custom Notification

 

 

 

(1).백준 9698번 SAHUR & IMSA’는 사후르(??) 복용 마감시간 45분 전에 일어나고 싶어한다는 문제로

지정된 시간의 45분 전을 출력하면 되는 간단한 문제였다.

 

분이 45분 이상인 경우 분만 제외한 다음 출력하고

분이 45분 미만인 경우 시가 0이면 23시로 변경하고

0보다 큰 경우 시에서 1을 빼고 m에 15를 증가시킨 다음 

요청하는 출력 포맷대로 변경해 출력했다.

const input = `4
5 0
10 10
0 30
23 47`.split('\n')

const result = []

for(let i = 1 ; i < input.length ; i++){
    let [h, m] = input[i].split(' ').map(Number)
    if(m >= 45){
        result.push(`Case #${i}: ${h} ${m - 45}`)
    }
    else if(h == 0){
        result.push(`Case #${i}: ${23} ${m + 15}`)
    }
    else{
        result.push(`Case #${i}: ${h - 1} ${m + 15}`)
    }
}

console.log(result.join('\n'))

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

[개발일지] - 166  (0) 2023.12.13
[개발일지] - 165  (0) 2023.12.12
[개발일지] - 163(주말)  (0) 2023.12.10
[개발일지] - 162(주말)  (0) 2023.12.09
[개발일지] - 161  (0) 2023.12.08

+ Recent posts