我以什么格式为骆驼树液提供 BCD 字段?

In what format do I supply a BCD field for camel-sap?

我想开发一个接口,通过 camel-sap 将数据记录传输到 SAP 功能模块。数据 table 包含一个 BCD 字段。 camel-sap-format (xml) 中 BCD 字段的表示形式是什么?

不是您问题的完整答案,因为我还没有使用过 camel-sap,但就 JCo 而言,如果可行,它会自动将任何给定值转换为 BCD 类型,即从 String、float、 double、BigDecimal 或任何类型。 ABAP BCD 类型到 Java 类型的默认数据类型映射是 java.math.BigDecimal.

希望对您有所帮助。

正如@Trixx 所说,BCD(二进制编码的十进制)ABAP 数据类型映射到 Java 中的 BigDecimal。这可以在 SAP documentation. In the default XML-to-Java bindings used by JAXB, BigDecimal is mapped to the XML Schema Type xsd:decimal. This can be Found in the Java Documentation.

中找到

因此,您为 camle-sap 格式 (xml) 提供了一个 BCD 字段作为 xsd:decimal


示例:

您的 SAP BAPI 中有一个名为 VALUE 的字段。该字段的类型为 CURR (BCD),长度为 17,小数点后两位。那么这个字段在 camel-sap-format (xml) 中的属性可以定义如下:

<xsd:attribute name="VALUE">
    <xsd:simpleType>
        <xsd:restriction base="**xsd:decimal**">
            <totalDigits value="17"/>
            <xsd:fractionDigits value="2"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:attribute>