在SAP MDG中,税收分类必须默认为" 0"

2020-08-15 09:44发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 您好, 我要求必须根据物...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,

我要求必须根据物料类型将"物料主数据"的"税种"默认设置为"零"。

实现此目标的最佳方法是什么。请对我来说非常紧急。

谢谢

(34.6 kB)
3条回答
SAP德到
2020-08-15 10:10

嗨罗希特,

感谢您的快速回复。

我遇到了一个小问题。能否检查下面的代码。

*获取MLANSALES数据
io_changed_data-> read_data(
导出
i_entity ='MLANSALES'
i_struct = io_model-> gc_struct_key_attr
IMPORTING
er_t_data_mod = lr_t_mod)。 >
ASSIGN lr_t_mod-> * TO
*仅在返回数据时继续进行
如果未分配是INITIAL,则继续。
返回。
ELSE 。
读取表分配索引1.
如果sy-subrc =0。
将结构的TATYP'分配给
ASSIGN COMPONENT' USMDX_S_UPDATE'OF STRUCTURE TO
*仅当材料具有值时才进行
,如果是INITIAL。
返回。
ENDIF。
ENDIF。
ENDIF。
*为实体类型MLANSALES
创建数据引用呼叫方法io_model-> create_data_reference
EXPORTING
i_fieldname ='MLANSALES'
i_struct ='KATTR'"根据IT_ATTRIBUTE < br> i_tabtype = if_usmd_model_ext => gc_tabtype_standard
导入
er_data = lrt_entity_data。

*分配e 表的完整性。 此表(如果已填充)将用于将数据写入
ASSIGN lrt_entity_data-> * TO
*将实体分配给table。 该表(如果已填充)将用于删除数据。
ASSIGN lrt_entity_data-> * TO

*使用上下文类获取更改请求编号
go_context = cl_usmd_app_context => get_context()。
呼叫方法go_context-> get_attributes
导入
ev_crequest_id = iv_cr_number。

ls_sel-sign = lc_incl。
ls_sel-option = lc_equal。
ls_sel-fieldname = usmd0_cs_fld- crequest。
ls_sel-low = iv_cr_number。
INSERT ls_sel插入表lt_sel。
*使用上述派生的变更请求编号获取实体。 这是多余的,以后可以取出。
*我们从上面的io_model-> read_data获取物料编号
调用方法io_model-> read_char_value
导出
i_fieldname = usmd0_cs_fld-crequest
it_sel = lt_sel
if_use_edtn_slice = abap_false
IMPORTING
et_data = lt_objlist。
读取表lt_objlist INTO ls_objlist索引1。


lv_matnr = ls_objlist-usmd_value = lc_incl。
ls_sel-option = lc_equal。
ls_sel-fieldname ='MATERIAL'。 "'DISPR'。"'DISMM'。
ls_sel-low = lv_matnr。
插入ls_sel插入表lt_sel。

调用方法io_model-> read_char_value
导出
i_fieldname =' MLANSALES'
it_sel = lt_sel
导入
et_data =


*在这里,我们可以输入进一步的逻辑以根据材料类型分配不同的MRP配置文件
清除wa_tab。
wa_tab-material = lv_matnr。

IF ='UTX2'OR
='UTX3'OR
='UTXJ'OR < br> ='ZCRT'。
wa_tab-TAXSALTAX ='0'。
ENDIF。

APPEND Wa_tab到lT_tab。
清除wa_tab。


gs_comp -name ='材料'。
gs_comp-type?= cl_abap_elemdescr => describe_by_name('MATNR')。
将gs_comp附加到gt_comp。
*
gs_comp-name ='TAXSALTAX'。
gs_comp-type?= cl_abap_elemdescr => describe_by_name('TAXKM')。
将gs_comp附加到gt_comp。
TRY。
r_type_struct = cl_abap_structdescr => create(
p_components = gt_comp)。
捕获cx_sy_struct_creation。
结束。
*
尝试。
r_type_table = cl_abap_tabledescr => create(r_type_struct)。

CATCH cx_sy_table_creation。
ENDTRY。
*
创建数据:r_data_tab类型把手r_type_table ,
r_data_str类型句柄r_type_struct。
*
ASSIGN:r_data_tab-> * TO
r_data_str-> * TO
*填充写入数据
在lt_tab处将LOOP放入wa_tab。
将wa_tab对应移动到
APPEND
ENDLOOP。

*填充属性表
创建数据lr_descr_struc类似的行。
lo_structdescr?= cl_abap_structdescr => describe_by_data_ref(p_data_ref = lr_descr_struc)。 INTO TABLE lt_attribute。
ENDLOOP。


如果不是初始的。
TRY。
io_write_data-> write_data(
导出
i_entity ='MLANSALES '
it_attribute = lt_attribute
it_data = )。
捕获 cx_usmd_write_error。 "写访问期间发生错误
返回。
ENDTRY。
ENDIF。

我调试了很多次代码,但是直到将write_data写入实体时,数据才能看到但不能按预期方式反映在UI中。

一周热门 更多>