我以什么格式为camel-sap提供BCD字段?

时间:2017-12-21 15:40:53

标签: apache-camel sap jbossfuse bcd sapjco3

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

2 个答案:

答案 0 :(得分:1)

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

我希望这会有所帮助。

答案 1 :(得分:0)

正如@Trixx所说, BCD(二进制编码的十进制)ABAP数据类型被映射为Java中的BigDecimal 。可以在SAP documentation中找到。在JAXB使用的默认XML到Java绑定中, BigDecimal映射到XML模式类型xsd:decimal 。可以在Java Documentation中找到。

因此,您为camle-sap-format(xml)提供了一个xsd:decimal的BCD字段。


示例:

SAP BAPI中有一个名为VALUE的字段。该字段的类型为CURR(BCD),长度为17,带两位小数。然后,可以按以下方式定义骆驼树汁格式(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>