CSV( Comma Separated Values )는 셀 값을 "," 기호로 구분하는 테이블 저장 형식입니다. "," 구분 기호 대신 다른 문자를 사용할 수 있습니다. 하지만 AppMaster 에는 쉼표가 필요합니다.
이 문자가 셀 내부에서 발생하지 않도록 하는 것이 중요합니다. 그렇지 않으면 파일 데이터를 잘못 읽게 됩니다.
먼저 CSV 파일의 정보가 저장될 데이터 모델을 만듭니다. 예를 들어 항공편에 대한 데이터 모델을 만들어 보겠습니다. 여기에는 다음 필드가 포함됩니다.
- flight_no - 정수 형식의 항공편 번호.
- 문자열 형식의 대상 ;
- classes - 이 비행에 사용 가능한 비행 클래스, array[string] 형식.
가져올 파일의 예:
첫 번째 열에는 flight_no 가 포함되고 두 번째 열에는 destination 이 포함되며 세 번째 열에는 classes 가 포함됩니다.
세 번째 열에서 값은 세미콜론으로 구분됩니다.
비즈니스 프로세스 만들기
Business Logic 탭으로 이동하여 Create Business Process 버튼을 클릭합니다.
이 비즈니스 프로세스에는 CSV 파일이 필요하므로 파일 필드를 Start 블록에 추가하십시오.
다음으로 Read CSV 블록이 필요합니다.
마찬가지로 해당 형식에 대해 Read XLS file Read XLSX file 블록을 사용할 수 있습니다.
Read CSV file 블록 작동 방식:
Each Row 및 Completed. 블록이 활성화되면 파일을 한 줄씩 읽고 Each Row 커넥터를 활성화하고 행 번호(1부터 시작하는 행 번호)와 행 열을 현재 모든 열의 문자열 배열로 전달합니다. 열.
Start 블록에서 Read CSV file 블록으로 파일을 전달합니다.
다음으로 For Each Loop 블록을 추가합니다. Read CSV file 블록을 보내는 문자열 배열을 처리합니다.
For Each Loop 는 Read CSV file, 와 마찬가지로 배열의 각 요소를 처리하고 각 요소에 대한 Loop Body 커넥터를 활성화합니다.
For Each Loop 블록의 인덱스 출력 필드는 배열 요소의 인덱스 번호입니다. 0부터 시작합니다.
모든 커넥터를 연결합니다.
다음 블록은 Switch 입니다. 도움을 받아 다른 필드의 값을 쓸 위치를 결정할 것입니다.
Switch 는 모든 유형의 입력을 수용할 수 있으며 이에 따라 다른 출력 커넥터를 활성화할 수 있습니다. 입력 값이 생성된 커넥터와 일치하지 않으면 Default 커넥터가 활성화됩니다.
CSV 파일에는 세 개의 열이 있습니다. 즉, 항상 동일한 순서로 각 행 열 배열에 세 개의 값이 저장됩니다.
- 숫자;
- 방향;
- 클래스.
따라서 Switch 블록 0, 1, 2에 3개의 출력 커넥터를 만들고 For Each Loop 블록에서 Switch 블록으로 인덱스를 전달합니다.
파일의 첫 번째 열에는 항공편 번호가 포함됩니다. 그러나 For Each Loop 블록은 string 형식으로 가져옵니다. 따라서 저장하기 전에 To integer 블록을 사용하여 정수로 변환합니다. 그런 다음 변수 Set variable 블록을 사용하여 변수에 저장합니다.
파일의 두 번째 열에는 string 형식의 방향이 포함됩니다. 변수에 즉시 저장할 수 있습니다.
파일의 세 번째 열에는 세미콜론으로 구분된 클래스 목록이 있습니다. For Each Loop 블록도 문자열 형식으로 가져옵니다. 따라서 문자열 배열로 분할합니다. 이를 위해 Split String 블록을 사용합니다. 클래스 목록이 있는 문자열을 전달하고 ";"를 설정해 보겠습니다. 기본 구분 기호로.
받은 값을 변수에 저장합니다.
각 행의 모든 열 값을 통한 루프 설정이 완료됩니다.
파일의 각 줄에서 항목을 만들어야 합니다. For Each Loop 블록과 Make flight 블록에서 완성된 출력 커넥터를 사용합니다. 주기 동안 받은 모든 변수를 전달해 보겠습니다.
이제 DB Create flight 블록을 사용하여 Make flight 에서 생성된 모델을 저장합니다.
따라서 각 행은 데이터베이스에 레코드로 저장됩니다.
이제 파일 처리를 완료해야 합니다. Read CSV file 블록에서 completed 출력 커넥터를 사용하여 End 블록에 연결합니다.
파일에서 가져올 BP가 완료되었습니다.
Endpoint 설정
Endpoints 탭으로 이동하여 새 끝점을 만듭니다.
POST 방법을 선택하고 URL 주소를 설정하고 Flight group 및 생성된 BP Import CSV 를 선택합니다.
프론트엔드에 버튼 설정하기
이제 파일을 업로드하기 위해 프런트 엔드에 버튼을 설정해야 합니다.
File picker 요소를 캔버스로 끕니다.
그리고 그에 대한 BP를 설정합니다.
onSelectfiles 트리거를 사용합니다. 이 트리거는 파일이 하나뿐인 경우에도 파일을 배열로 수신합니다. 따라서 Array Element 블록 을 사용하여 배열에서 하나의 요소를 가져옵니다. 배열에서 첫 번째 요소를 가져오기 위해 인덱스 필드를 0으로 설정해 보겠습니다.
이제 Server request POST /_files/ 블록을 사용하여 업로드된 파일을 데이터베이스에 저장합니다.
파일 Expand file 블록을 사용하여 결과 파일을 확장합니다.
이제 ID (이 경우 파일)를 Server request POST /flight/csv/ 블록에 전달합니다.