변수명.GetType.ToString
< assign 액티비티 >
dataTableVar.Columns("기존 컬럼 이름").ColumnName = "바꿀 컬럼 이름"
Data Row 객체를 다루는 방법은 두 가지 있음
컬럼 인덱스 사용
CurrentRow(1)
→ 1번째 컬럼 값 접근
컬럼 이름 사용
CurrentRow("비고")
→ "비고" 컬럼 값 접근
데이터 타입 변환 방법은 두 가지 있음
예) 정수 → 실수
방법 1
Double.Parse(varINT)
방법 2
Convert.ToDouble(varINT)
다른 타입들도 동일하게 사용 할 수 있음
위 방법의 차이점은 null값에 대한 처리인데 Double.Parse
는 변환하는 값이 null이면 에러를 반환하고 Convert.ToDouble
은 null일 때 0을 반환함 → 해당 링크 참고
encoding 옵션에 "euc-kr"로 주기
(사용 가능한 인코딩 옵션은 여기에서 확인)
// 오늘 날짜
varSTR = Now.ToString("yyyyMMdd")
// 원하는 날짜를 받아서 날짜 타입으로 다루기
dateSTR = "2024.02.15"
// 내일
tomorrowSTR = Convert.ToDateTime(dateSTR).AddDays(1).ToString("yyyy-MM-dd")
반복문 테스트 할 때 전부 다 돌릴 순 없으니 앞 부분을 잘라내고 몇 개의 엘리먼트만 반복 돌릴 떄 유용함
arrVarARR.skip(10)
→ 앞에서부터 10개의 데이터 잘라냄(0~9번째 데이터는 잘라내고 10번째 데이터부터 살려놓음)
데이터 테이블도 이렇게 가능
dtVarDT.AsEnumerable.Skip(10).CopyToDataTable
→ 0~9 번째 로우 없애고 10번째 로우부터 살려놓음
VarDT.AsEnumerable().Take(500).CopyToDataTable()
예) "[k(enter)]" → 이러면 액티비티 하나 아낄 수 있음
※ 이 방법은 simulate 일 때는 안됨
※ 이 때 반복문이나 코드를 최대한 줄일 수 있는 방법 고안
For Each를 중첩해서 작성(아래 사진 참고)
첫 번쨰 for each → 데이터 로우 객체를 받음
두 번째 for each → 하나의 필드(셀) 값을 받음
// 길이가 정해져있는 배열 만들기
sampleARR = New String(3){"가", "나", "다"}
// 길이가 정해져있지 않은 배열 만들기(그렇다고 길이가 가변적인 것은 아님 → 리스트가 아니니까)
sampleARR = New String(){}
Invoke Method
액티비티 사용하면 됨
참고 : https://uipath.tistory.com/89
// "측정소명" 컬럼 중 값이 "수내동"이거나 "인계동"인 데이터만 선택하는 예제
sampleDT.Select("[측정소명] = '수내동' Or [측정소명] = '인계동'").CopyToDataTable
컬럼 이름은 대괄호로 묶고 그 값은 작은 따옴표로 묶기
// "구매객수" 컬럼 값만 가져오기
sampleDT.AsEnumerable.Select(Function(row) row("구매객수"))
참고 : https://mpaper-blog.tistory.com/54
// String을 SecureString으로 바꾸는 방법
New System.Net.NetworkCredential(String.Empty, "Sample Password).SecurePassword.ToString
// SecureString을 String으로 바꾸는 방법
new System.Net.NetworkCredential(String.Empty, secureStringVar).Password.ToString
참고 : https://forum.uipath.com/t/convert-securestring-to-string-get-secured-credential/1704
왜인지 split 할 때 줄바꿈을 기준으로 하면 잘 안됨
stringVar.Split(Environment.NewLine.ToArray, StringSplitOptions.RemoveEmptyEntries
이렇게 하면 됨
Directory.Exists(folderDir)
// DT를 Json으로 바꿀 때
Newtonsoft.Json.JsonConvert.SerializeObject(varDT)
// Json을 DT로 바꿀 때
1. read text file로 json 파일 읽기
2. Newtonsoft.Json.JsonConvert.DeserializeObject(Of DataTable)(varSTR)
로딩 시간을 지정할 때 사용하는 방법
// 현재 시간
startDTM = now
// while 조건으로 아래와 같이 줌
startDTM.substract(now).Minute < 10
위와 같이 주면 10분까지는 while문이 수행되므로 시간을 기준으로 반복문 돌릴 수 있음
꿀팁 감사합니다