49.9. 6. KeyValuePairField
KeyValuePairField 주석은 키 값 쌍 필드의 속성을 정의합니다. 각 KeyValuePairField는 태그(= 키) 및 연결된 값, 유형(문자열, int, date, …)로 식별되며, 패턴 및 필드가 필요한 경우입니다.
| 주석 이름 | 레코드 유형 | level |
|---|---|---|
| KeyValuePairField | 키 값 쌍 - 수정 | 속성 |
| 매개변수 이름 | type | 정보 |
|---|---|---|
| tag | int | 필수 - 메시지의 필드를 식별하는 숫자 번호 - 고유해야 합니다. |
| 패턴 | string | 선택 사항 - 기본값 = "" - Decimal, Date, … 형식을 사용하는 데 사용됩니다. |
| Precision | int | 선택 사항 - 10진수 형식이 지정/parsed될 때 사용할 전체 비율을 나타냅니다. |
| position | int | 선택 사항 - FIX 메시지의 키/태그 위치가 달라야 하는 경우 사용해야 합니다. |
| 필수 항목 | boolean | 선택 사항 - 기본값 = "false" |
| impliedDecimalSeparator | boolean | Camel 2.11: 선택 사항 - 기본값 = "false" - 지정된 위치에 임박한 소수점이 있는지 나타냅니다. |
케이스 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;
}
case 2 : 출력의 다른 위치
FIX 메시지에 배치할 태그/키를 사전 정의 순서에 따라 정렬해야 하는 경우 @KeyValuePairField 주석의 'position' 속성을 사용합니다.
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;
}