마이그레이션 SAP 전송하실 담당자분이 오기 전이었기 때문에

api 연동에 대해서 오랜만에 확인해봤다.

 

일단 password, refresh_token, client_credentials 세가지 방법이 있는데

password 방식은 대부분 처음 첩했을 때 사용하는 Connected App에서 가져오는

client_id, client_secret과 SFDC 로그인 정보를 넘겨서 토큰을 발급받는 방법이다.

grant_type - password
client_id
client_secret
format
username
password

 

여기서 협력사 등이나 인터페이스 테스트하는 회사에도 인터페이스를 넘겨야 하는데

여러개의 인터페이스 계정을 따로 파서 넘겨줄 라이센스는 부족하지만 계정 정보 공유는 하고 싶지 않은 경우

계정으로 refresh_token을 발급받은 다음 client_id, client_secret, refresh_token을 사용해서 토큰을 받을 수 있다.

grant_type - refresh_token
client_id
client_secret
refresh_token

1.아마도 App manager에서 Connected App에 refresh token 앱 권한 부여 필요

2.'https://test.salesforce.com/services/oauth2/authorize?response_type=code&client_id={client_id}&redirect_uri=https://localhost:5001/callback' 주소에서 code 복사

2.'https://test.salesforce.com/services/oauth2/token?code={code}&grant_type=authorization_code&client_id={client_id}&client_secret={client_secret}&redirect_uri=https://localhost:5001/callback' 주소에서 리프레시토큰 발급

3.위에 언급된 refresh_token 인증 방식에 토큰값 넣어서 access_token 발급받기

 

마지막으로 client_credentials는 Connected App에서 관리에 들어간 다음

사용자 정의 연결된 앱 처리기에서 적용할 계정을 선택할 수 있고

해당 Connected App을 호출할 경우 해당 계정의 권한으로 인터페이스 호출이 가능해진다.

grant_type - client_credentials
client_id
client_secret

 

연동 관련 내용을 간단하게 정리하고 SAP 담당자분이 오셨기 때문에 운영 마이그레이션을 시작했고

고객, 자재, 단가 등 중요 마스터데이터들의 인터페이스 마이그레이션을 완료할 수 있었다.

 

패키지 관련해서는 11월쯤 시작될 것 같은데

잠깐 여유있는 동안 이것저것 확인해보다가 아래와 같이 커스텀필드 생성이 가능한 것을 볼 수 있었다.

CustomField field = new CustomField(); 
field.setType(FieldType.Text); 
field.setDescription(description); 
field.setLabel("FieldLabel"); 
field.setFullName("FieldApi__c"); 
field.setLength(lenght);
customObject.setFields(new CustomField[] {field});
UpsertResult[] results = metadataConnection.upsertMetadata(new Metadata[]{ customObject });

 

각 개체들을 추가할 때 버튼을 누르면 자연스럽게 만들어주면 좋을 것 같은데

아직 패키지를 만들어본적도 없기 때문에 세부 내용에 대해서는 천천히 고민해봐야 할 것 같다.

 

중간에 데이터를 가져와서 마이그레이션을 하시는데 형태 보존이 안된다고 하셔서

메모장 상태에서 가져온 값을 그대로 넣은 다음 엑셀 데이터 분할 기능을 사용해서 보존되는 방법을 전달드렸고

이후 자재 인터페이스 마이그레이션을 다시 확인했다.

 

8시쯤 퇴근하려고 하다가 옆 팀원분이 운영 배포가 안되는게 있으셔서

같이 테스트클래스를 확인하면서 배포를 진행했는데

일부 필드들이 전체로 올라가서 권한이 다 빠져서 안된 문제들도 있었고

특정 조건이 만족되지 않아서 개발과 다른 커버리지가 나오는 문제도 있었지만

하나씩 해결해서 결국 9시 30분쯤 마무리할 수 있었다.

 

내일도 출근해야 하기 때문에 월~금이지만 5일이 아닌 12일 근무가 되어버리는데 내일은 일찍 끝났으면 좋겠다.

 

 

(1).백준 28235번 코드마스터 2023은 주어진 문구에 맞춰서 응원해야 하는 문제로

단순히 map에 해당 키값 쌍을 담아준 다음 입력된 키에 해당하는 값을 출력하는 방식으로 해결했다.

const input = `SONGDO`
const map = {'SONGDO' : 'HIGHSCHOOL', 'CODE' : 'MASTER', '2023' : '0611', 'ALGORITHM' : 'CONTEST'}

console.log(map[input])

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

[개발일지] - 434  (0) 2024.09.09
[개발일지] - 433(주말근무)  (1) 2024.09.08
[개발일지] - 431  (0) 2024.09.06
[개발일지] - 430  (0) 2024.09.05
[개발일지] - 429  (1) 2024.09.04

+ Recent posts