SAP Community Search

January 29, 2022 - There will be planned downtime on the platform. It will affect only the tutorials and openSAP. Please be aware you will not be able to access these functions during the downtime. Please save your work.

Apr 05, 2014 at 05:40 PM
# Limiting weight values to be transferred to target system

Hi All,

I have a requirement according to which I need to reduce the number of digits being passed to IDOC segmnet fields **Z1BP_J_1BNFDOC-BRGEW** and **Z1BP_J_1BNFDOC-NTGEW**. This IDOC will transfer data to a non-SAP target system. In the target system, the gross weight & net weight (**BRGEW** & **NTGEW** respectively having total length 13 with 3 decimal places in SAP) have mask: **9999999.99999** (7 digits before decimal and 5 digits after decimal). So the total digits that should be transferred to the target system should not be more than 12.

The method to achieve this, as suggested by functional, was to divide the weight values by **1000** instead of directly truncating the values so that there is no loss of data. For example, if the value in weight field is **123,234,432.000 KG**, then on dividing it by **1000**, it will result in **123,234.432** **KG**, which is correct. But using this method, if the number of digits in the weight field is less than 4 digits, for example, **123.000 KG**, then on dividing this value by **1000**, it will result in **0.123 KG**, which is incorrect. And to avoid such a situation, if I apply a condition that the weight values should be divided by **1000** only when the number of digits before the decimal is more than 3, then I am facing the following issue:

Say, there is one value **123,4.000 KG**, then in this case since the number of digits is more than 3 before the decimal, it will be divided by **1000**, so we get: **1.234 KG**. Now, there is another value say, **123.000 KG**, then since in this case the number of digits before the decimal is 3, it will not be divided by **1000**, so it will remain the same, that is, **123.000 KG**. But comparing the two values, initially: **123,4.000 KG > 123.000 KG**; and after applying the above logic: **1.234 KG < 123.000** **KG**, which is again incorrect.

Please suggest an appropriate solution.

Thanks & Regards,

Ankit