Resolving "Conflict at characteristic ?: old value ?, new value ?" problem with BAPI_OBJCL_CHANGE.

Jimbo's picture

When changing numeric values using BAPI_OBJCL_CHANGE the program will sometimes throw an inexplicable "Conflict at characteristic ?: old value ?, new value ?" error. This happens only when attempting to change the existing values of characteristics that expect floating point values.

One workaround is to delete the classification allocation with BAPI_OBJCL_DELETE and then use the BAPI_OBJCL_CREATE function to create a new allocation. This eliminates the inexplicable conflict. It is important to remember that this method does not preserve characteristic values already populated in the object when loading partial characteristic values; it deletes the allocation and then replaces it with only what is in the source data.

It is relatively easy to use LSMW as a wrapper for BAPIs. This LSMW object identifies the objects that encounter the problem so that the classification allocation to those objects can be deleted and then re-created instead of changed.