问题:
使用vmd_ei_api=>maintain_bapi 修改供应商主数据时,DATAX中未标记为X的字段被覆盖清空。
步骤:
跟踪代码如下图,变量<lt_current_table_new>中的数据对比old数据,有更新则赋值到<lt_global_table_new>中进行最终数据的更新。
变量<lt_current_table_new>的数据来源于VMD_EI_API_MEMORY=>GT_CURRENT_&_NEW
VMD_EI_API_MEMORY=>GT_CURRENT_&_NEW 在下图处根据变量es_master_data_ecc中的对应数据就行更新
es_master_data_ecc中数据来自于下述方法
使用公司视图数据举例,在方法vmd_ei_api_map_structure=>extern_format_company_data_u中,可以看到根据current_state 进行数据处理。当current_statei为空时,执行的方法会根据DATAX处理对应的数据。至此问题找到。
current_status字段:
中文环境:
英文环境:
PS::SAP中文环境翻译在一些细节上还是有点问题的,因此在查看报错消息和内置文档时因为环境下能更直观的看出问题。