Các tJavaFlex component tương tự như các tJavaRow component, trong đó nó được đưa vào một dòng dữ liệu. Sự khác biệt giữa hai components là các
tJavaFlex component có quá trình xử lý trước và sau sau đó được thực hiện trước và sau khi được xử lý những hàng riêng, do đó, nó cũng tương tự như một Talend
component được xây dựng trước. Chúng ta cùng tham khảo ví dụ sau:
Thiết kế Job có cấu trúc như hình sau: trong đó tFileInputDelimitted_1 có cấu trúc như bên dưới.
Mở tJavaFlex_1 component.
Trong Start Code section gỏ như sau:
String allNames = ""; Integer NB_LINE = 0;
component.
Start code được thực hiện trước khi bất kỳ hàng nào được xử lý, do đó, nó được sử dụng để khởi tạo các biến.
Main code được thực hiện cho mỗi hàng, vì vậy tên được thêm vào concatenated name chuỗi kết nối, và số dòng được tăng lên.
End code được thực hiện sau khi tất cả các hàng được thực thi xong, vì vậy tên hoàn thành và người đếm có thể được sao chép vào globalMap, do đó nó có sẵn cho các components khác.
4.5. Creating custom functions using code routines.
Code routines cho phép các nhà phát triển để tạo ra các lớp Java tái sử dụng có thể được tích hợp vào Talend Job, và đặc biệt trong tMap.
Trong phần này, có một ví dụ về một cách đơn giản sử dụng Code routines. Công thức này là một lời giải thích đầy đủ hơn về việc tạo ra và sử dụng Code routines
trong Talend.
Chúng ta cùng tìm hiểu một ví dụ sau.
Thiết kế Job có cấu trúc như hình sau: trong đó tFileInputDelimitted_1 có cấu trúc như bên dưới.
Trong metadata section, mở Code Folder right-click trên Routines, lựa chọn
Create routine.
Đặt tên routine là regexUtilities, chọn Finish để hoàn thành. Talend sẽ mở ra cho bạn một cửa sổ với mã codeJava, trong đó có phương thức helloExample. Copy đoạn code sau và dán vào ngay sau phương thức helloExample.
/**
regexData: return the first instance of regex pattern in a string. Returns null if there is no text matching the pattern.
e.g. regexData(".*r", "world") # returns "wor" *
{talendTypes} String *
{Category} regexUtilities *
{param} string("regex Pattern") input: The regex pattern to find {param} string("string") input: The string to search
*
{example} regexData(".*r", "world") # returns "wor" */
public static String regexData(String inputPattern, String inputString) {
java.util.regex.Pattern p = java.util.regex.Pattern. compile(inputPattern);
Run Job. Bạn sẽ thấy trong dữ liệu ghi nhận các kết quả của regexData bằng lời gọi sử dụng dữ liệu được định nghĩa trong tFixedFlowInput.
Code routines là các lớp Java có phương pháp tĩnh được thực hiện sẵn cho tất cả các Jobs trong một dự án.
Talend sử dụng các ý kiến cho các phương pháp để định nghĩa các loại và hiển thị các thông tin trợ giúp trong việc xây dựng expression.
Một khi đã định nghĩa, phương pháp mới này có thể được sử dụng bất cứ nơi nào trong dự án Talend cho phép mã Java được nhập vào.
4.6. Importing JAR files to allow use of external Java classes.
Thỉnh thoảng, trong quá trình phát triển Job là cần thiết hoặc để dàng để sử dụng các lớp Java mà không phải là đã được tạo ra trong Talend. Đây có thể là các mã Java đã tồn tai trước như tính toán tài chính hoặc các thư viện mã nguồn mở, được cung cấp bởi Apache Software Foundation.
Chúng ta cùng tham khảo ví dụ sau đây:
Trong đó tFileInputDelimited_1 có đường đẫn tới file CSV có cấu trúc như sau.
Thiết kế một code routine có tên externalValidation. Right-click lên routine và chọn Edit routine Libraries