홈페이지 회원가입 시 수신될 인터페이스의 테스트클래스 작성을 마무리하고

연락처 처리 관련 내부회의를 하게 됐다.

 

기존에 존재하던 연락처들과 구별해야 하기 떄문에

회원가입 유무나 리드소스에 대한 확인이 필요했고

기존 사용자들도 유무 및 리드소스 기입이 필요한건지

또한 이미 홈페이지에 가입되어 있는 유저들의 정보도 비교해서

리드소스 또는 홈페이지 여부를 체크해야 하는지

고려해야 할 것들이 생각보다 많았다.

 

비활성이라는 이름만 넣어서 계정을 관리하는 것 같았는데

특정 검색 기능에서 비활성만 제거해달라는 요청을 받았고

sfdc에서는 NOT LIKE가 제공되지 않는다는 이야기도 있어서 이런저런 시도를 하다가 반쯤 포기했는데

의외로 아래와 같이 사용할 수 있었다.

field NOT LIKE 'xxxx'   -> X

NOT(Field LIKE 'xxxx')  -> O(SELECT Name FROM Account WHERE NOT (Name LIKE '%비활성%'))
NOT Field Like 'xxxx'   -> O(SELECT Id FROM Account WHERE NOT Name LIKE '%비활성%')

 

이후 SSO 관련 인터페이스 작업에 관한 내용 인수인계를 받았고

client credential 확인을 마무리한 다음 비활성 작업에 대한 내용을 고객사에 답변했다.

 

클래스를 통한 인터페이스가 보안상 작동하는지 테스트하기 위해 테스트용 인터페이스를 만들었는데

아래와 같은 인터페이스 에러가 발생했고

원인이 뭔지 고민하다가 body를 제거하고 다시 날려보니 두번째 에러를 확인할 수 있었다.

{
    "errorCode": "NOT_FOUND",
    "message": "Could not find a match for URL"
}

---------------------------------------------------------

[
    {
        "errorCode": "FORBIDDEN",
        "message": "You do not have access to the Apex class named: IF_SAP_Test"
    }
]

 

다른 인터페이스를 개발할 때는 문제가 없었는데

아무래도 관리자라 그런 것 같고 고객사에 발급한 client credential의 권한이 다를 수 있기 때문에

어제 전달한 정의서에 있는 클래스들 권한이 부여되었는지 확인해야했다.

 

다행히 클래스 작성한 계정과 동일한 프로필이라 자동 권한 부여가 되었는데

다른 org에서 개발할 일이 있을 경우에는 프로필에 class 권한 부여를 잊지 말아야겠다.

 

중간에 또 다른 회사의 인터페이스 검토 요청 및 추가 개발 관련 문의를 받았는데

다행히 개발하기에는 너무 복잡했기 떄문에

기존에 개발된 내용 매뉴얼에 따라 사용자가 더 주의해서 쓰는 것으로 결정되었다.

 

주 담당 고객사에서 제품군 관련 인터페이스가 제대로 되지 않았는데

SAP에서 분기처리인지 뭔지 어쩄거나 하나의 인터페이스로 처리하지 못했고

결국 다른 인터페이스 생성 요청을 해서 해당 인터페이스 생성 후 엔드포인트를 전달했다.

 

납품 수신 관련 에러가 또 발생했다고 해서 또 SAP 오류겠거니 했는데

이번에는 SFDC쪽에서 발생한 에러가 맞긴 했다.

 

정의서를 받을 때는 사이즈가 100정도였다고 치면

실제로 들어온 값은 150정도 되는데 SAP에서 정의서 size를 제대로 정의하지 않고 넘겨버렸고

본인들이 사용하는 값은 더 널널한 제한을 뒀기 때문에 에러가 발생한 것이었다.

 

SAP쪽과 통화해봤지만 연결된 모든 개체들의 필드를 바꿔줘야 하는데

어디서 어떻게 참조하는지도 모르고

수식에서 길이에 맞춰서 사용한 경우 수식 길이 제한에 걸릴 수도 있는데

이걸 마음대로 늘려서 쓰는건 위험부담이 너무 크다고 전달했지만

고객사에서는 일단 늘려달라는 의견으로 진행되어버렸고

해당 내용에 대해서 검토해봤지만 고객사 요청대로 할 수밖에 없기 때문에 위험성만 강조하고 진행하기로 했다.

 

다만 금요일 저녁에 진행할 경우 주말사이에 발생한 에러 대처가 불가능하기 떄문에

월요일 오전에 반영 후 에러가 발생하면 실시간 대응하기를 권유했고

이 부분은 받아들여져서 그나마 조금 더 안전하게 월요일에 배포하기로 했고

오류 중 다른 내용은 길이 제한이 아니라고 해서 다시 확인했는데

분명 picklist 값이 제한되어 있는데 다른 필드에 들어갈 값이 들어있어서 에러가 발생했던 것으로

해당 내용에 대해서는 SAP의 발송 원인을 모르기 때문에 제한 값만 공유하고 퇴근했다.

 

 

(1).백준 26941번 Pyramidbygge는 피라미드를 만들 수 있는 가장 높은 층을 구해야 하는 문제로

1*1, 3*3, 5*5 등 2n+1 형태로 계속 값이 증가하는 형태였는데

처음에는 같은 값일 떄를 고려하지 않고 <로 처리한 다음 index에서 -1 처리를 했다가 오답이 나와버렸고

 그 이후로는 다시 전체 값을 비교해서 sum의 최종 값이 input 보다 작은 경우에만 index가 증가하도록 변경해서 통과할 수 있었다.

const input = Number('83')

let sum = 0
let index = 0

while (sum + (index*2 + 1)**2 <= input) {
    sum += (index*2 + 1)**2
    index++
}

console.log(index)

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

[개발일지] - 475(주말)  (0) 2024.10.20
[개발일지] - 474(주말)  (0) 2024.10.19
[개발일지] - 472  (0) 2024.10.17
[개발일지] - 471  (3) 2024.10.16
[개발일지] - 470  (5) 2024.10.15

+ Recent posts