55.2.6. 6. KeyValuePairField
KeyValuePairField 주석은 키 값 쌍 필드의 속성을 정의합니다. 각 KeyValuePairField는 태그(= 키) 및 연결된 값(문자열, int, 날짜, …, 선택 사항)으로 식별되며, 패턴 및 필드가 필요한 경우 선택 사항입니다.
| 주석 이름 | 레코드 유형 | level |
|---|---|---|
| KeyValuePairField | 키 값 쌍 - FIX | 속성 |
| 매개변수 이름 | 유형 | 필수 항목 | 기본값 | 정보 |
|---|---|---|---|---|
| tag | int | ✓ | 메시지에서 필드를 식별하는 태그(필수)는 고유해야 합니다. | |
| impliedDecimalSeparator | boolean | false | <B>Camel 2.11:</b>는 지정된 위치에 있는 소수점이 있는지 여부를 나타냅니다. | |
| name | 문자열 | 필드 이름(선택 사항) | ||
| 패턴 | 문자열 | 포맷러가 데이터를 변환하는 데 사용할 패턴 (선택 사항) | ||
| 위치 | int | 0 | 생성된 메시지의 필드 위치 - FIX 메시지의 키/태그 위치가 다를 때 사용해야 합니다. | |
| Precision | int | 0 | 생성할 BigDecimal 숫자의 전체 자릿수 | |
| 필수 항목 | boolean | false | 필드가 필수인지 여부를 나타냅니다. | |
| timezone | 문자열 | 사용할 시간대입니다. |
케이스 1 : 태그
이 매개변수는 메시지에 있는 필드의 키를 나타냅니다.
FIX 메시지 - 태그
@Message(keyValuePairSeparator = "=", pairSeparator = "\u0001", type="FIX", version="4.1")
public class Order {
@Link Header header;
@Link Trailer trailer;
@KeyValuePairField(tag = 1) // Client reference
private String Account;
@KeyValuePairField(tag = 11) // Order reference
private String ClOrdId;
@KeyValuePairField(tag = 22) // Fund ID type (Sedol, ISIN, ...)
private String IDSource;
@KeyValuePairField(tag = 48) // Fund code
private String SecurityId;
@KeyValuePairField(tag = 54) // Movement type ( 1 = Buy, 2 = sell)
private String Side;
@KeyValuePairField(tag = 58) // Free text
private String Text;
}
케이스 2 : 출력의 다른 위치
FIX 메시지에 적용할 태그/키가 미리 정의된 순서에 따라 정렬되어야 하는 경우 주석 @KeyValuePairField 주석의 특성 위치 를 사용합니다.
FIX 메시지 - 태그 - 정렬
@Message(keyValuePairSeparator = "=", pairSeparator = "\\u0001", type = "FIX", version = "4.1", isOrdered = true)
public class Order {
@Link Header header;
@Link Trailer trailer;
@KeyValuePairField(tag = 1, position = 1) // Client reference
private String account;
@KeyValuePairField(tag = 11, position = 3) // Order reference
private String clOrdId;
}