首页 > 其他分享 >BAPI_BATCH_CHANGE在更新后不自动更新批次特征

BAPI_BATCH_CHANGE在更新后不自动更新批次特征

时间:2024-12-10 20:09:31浏览次数:7  
标签:BAPI classvaluationschar BATCH lv lt objectkey ls 自动更新 TYPE

1、问题介绍

 在CL03中看到分类特性配置了制造日期字段,并绑定了生产日期字段MCH1~HSDAT

MSC2N修改批次的生产日期字段时,自动修改了对应的批次特性

但是通过BAPI:BAPI_BATCH_CHANGE修改生产日期时,并没有更新到批次特性中

2、BAPI

根据官方提示,需要使用BAPI:BAPI_BATCH_SAVE_REPLICA来同步更新批次特性

在BAPI_BATCH_SAVE_REPLICA中可以传入基本数据视图中的生产日期

"--------------------@斌将军--------------------
CLEAR:ls_batchattributes,ls_batchattributesx.
ls_batchattributes-prod_date = sy-datum."生产日期
ls_batchattributesx-prod_date = 'X' ."生产日期
"--------------------@斌将军--------------------

同时维护批次特性的值

"--------------------@斌将军--------------------
CLEAR:ls_classvaluationschar.
ls_classvaluationschar-class_type = lv_klart.
*ls_classvaluationschar-objectkey = lv_objectkey.
ls_classvaluationschar-objectkey_long = lv_objek.
ls_classvaluationschar-objecttable = lv_obtab.
ls_classvaluationschar-charact = 'ZSC_BATCH_HSDAT'.
ls_classvaluationschar-value_char = sy-datum.
APPEND ls_classvaluationschar TO lt_classvaluationschar.
"--------------------@斌将军--------------------

完整代码参考

"--------------------@斌将军--------------------
REPORT ytest010.

DATA:lv_material TYPE bapibatchkey-material,
     lv_batch    TYPE bapibatchkey-batch,
     lv_plant    TYPE bapibatchkey-plant,
     lv_matnr    TYPE matnr. "40位

DATA:lv_objek TYPE cuobn,
     lv_obtab TYPE tabelle,
     lv_klart TYPE klassenart,
     lv_class TYPE klasse_d.

DATA:ls_batchattributes     TYPE  bapibatchatt,
     ls_batchattributesx    TYPE bapibatchattx,
     lt_classallocations    TYPE TABLE OF bapi3060_allocation,
     ls_classallocations    TYPE bapi3060_allocation,
     lt_classvaluationschar TYPE TABLE OF bapi3060_valuation_char,
     ls_classvaluationschar TYPE bapi3060_valuation_char,
     lt_classvaluationscurr TYPE TABLE OF bapi3060_valuation_curr,
     ls_classvaluationscurr TYPE bapi3060_valuation_curr,
     lt_classvaluationsnum  TYPE TABLE OF bapi3060_valuation_num,
     ls_classvaluationsnum  TYPE bapi3060_valuation_num,
     lt_return              TYPE TABLE OF bapiret2,
     ls_return              TYPE bapiret2.

lv_matnr = '41155126C'."物料
lv_batch = 'P001055009'."批次
lv_plant = 'SC10'."工厂

CLEAR:lv_objek,lv_obtab,lv_klart,lv_class.
*lv_matnr = lv_material.
CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'
  EXPORTING
    i_matnr = lv_matnr
    i_charg = lv_batch
    i_werks = lv_plant
  IMPORTING
    e_objek = lv_objek
    e_obtab = lv_obtab
    e_klart = lv_klart
    e_class = lv_class.

*后边可以直接使用lv_objek值,
*不需要用BAPI_OBJCL_CONCATENATEKEY专门生成lv_objectkey
*lt_objectkeytable = VALUE #( ( key_field = 'MATNR' value_int = LV_material )
*                                ( key_field = 'WERKS' value_int = lv_plant )
*                                ( key_field = 'CHARG' value_int = lv_batch )
*                            ).
*
*"获取key值objectkey(物料和批次)
*REFRESH:lt_return.
*CLEAR:lv_objectkey.
*CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY'
*  EXPORTING
*    objecttable    = lv_obtab "表名
*  IMPORTING
*    objectkey_conc = lv_objectkey
*  TABLES
*    objectkeytable = lt_objectkeytable
*    return         = lt_return.
*
*LOOP AT lt_return INTO ls_return WHERE type CA 'EAX'.
*  MESSAGE '获取特性失败:未查询到分类密钥' TYPE 'S' DISPLAY LIKE 'E'.
*ENDLOOP.

"修改批次数据
CLEAR:ls_batchattributes,ls_batchattributesx.
ls_batchattributes-prod_date = sy-datum."生产日期
ls_batchattributesx-prod_date = 'X' ."生产日期

"修改分类特性值
CLEAR:ls_classallocations.
ls_classallocations-class_type    = lv_klart.
*ls_classallocations-objectkey     = lv_objectkey.
ls_classallocations-objectkey_long   = lv_objek.
ls_classallocations-objecttable   = lv_obtab.
ls_classallocations-classnum      = lv_class.
ls_classallocations-classtype     = lv_klart.
ls_classallocations-standardclass = 'X'.
APPEND ls_classallocations TO lt_classallocations.

CLEAR:ls_classvaluationschar.
ls_classvaluationschar-class_type = lv_klart.
*ls_classvaluationschar-objectkey = lv_objectkey.
ls_classvaluationschar-objectkey_long = lv_objek.
ls_classvaluationschar-objecttable = lv_obtab.
ls_classvaluationschar-charact = 'ZSC_BATCH_HSDAT'.
ls_classvaluationschar-value_char = sy-datum.
APPEND ls_classvaluationschar TO lt_classvaluationschar.

CALL FUNCTION 'BAPI_BATCH_SAVE_REPLICA'
  EXPORTING
    material_long       = lv_matnr "长物料
*   material            = lv_material
    batch               = lv_batch
    plant               = lv_plant
    batchattributes     = ls_batchattributes
    batchattributesx    = ls_batchattributesx
  TABLES
    return              = lt_return
    classallocations    = lt_classallocations
    classvaluationschar = lt_classvaluationschar
    classvaluationscurr = lt_classvaluationscurr
    classvaluationsnum = lt_classvaluationsnum.

DATA:lv_check   TYPE char1,
     lv_message TYPE char255.

CLEAR:lv_message.
LOOP AT lt_return INTO ls_return WHERE type CA 'EAX'.
  lv_message = lv_message && ls_return-message.
  lv_check = 'E'.
ENDLOOP.
IF lv_check = 'E'.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  WRITE:lv_message.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDIF.
"--------------------@斌将军--------------------

 

定期更文,欢迎关注

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back     此页面的语言为英语   翻译为中文(简体)          

标签:BAPI,classvaluationschar,BATCH,lv,lt,objectkey,ls,自动更新,TYPE
From: https://www.cnblogs.com/BinGeneral/p/18586561

相关文章

  • (系列十四)Vue3+WebApi 搭建动态菜单
    说明  该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。   该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。   说明:OverallAuth2.0是一个简单、易懂、功能强大的权限+可视化流程管理系统。友情提醒:本篇文章是属于系......
  • 大模型面试题:当Batch Size增大时,学习率该如何随之变化?
    我整理了1000道算法面试题:获取该问题大答案的理论分析请参考苏剑林的科学空间,地址位于https://kexue.fm/archives/10542说下结论:从方差的角度来分析,有两个角度来说明学习率应该和Batchsize的关系,一个是呈现根号的关系,也即Batchsize增大x倍,学习率增大根号x倍,另一个角度是......
  • RDIFramework.NET CS敏捷开发框架 SOA服务三种访问(直连、WCF、WebAPI)方式
    1、介绍在软件开发领域,尤其是企业级应用开发中,灵活性、开放性、可扩展性往往是项目成功的关键因素。对于C/S项目,如何高效地与后端数据库进行交互,以及如何提供多样化的服务访问方式,是开发者需要深入考虑的问题。目前主流的方式就三种:数据库直连、WCF模式、WebAPI模式,三这种方式都......
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-autobatch.py
    autobatch.pyultralytics\utils\autobatch.py目录autobatch.py1.所需的库和模块2.defcheck_train_batch_size(model,imgsz=640,amp=True,batch=-1): 3.defautobatch(model,imgsz=640,fraction=0.60,batch_size=DEFAULT_CFG.batch): 1.所需的库和模块#Ultr......
  • asp.net core中webapi接口的动作与参数
    一、在asp.netcore的webapi可以指定接口的action动作类型,动作特性主要有Get,Post,Put,Delete,Head,Options,Patch,Trace,其中Get,Post,Delete是比较常用的1、Get:通常用于数据查询,请求参数一般是地址栏上的QueryString获取,请求参数默认为[FromQuery],该动作属于幂等操作①。......
  • 如何更改训练策略——利用torch.utils.data.batchsampler修改batch处理逻辑
    问题背景给了个任务,小老板单独给了个训练集,要按照他创造的mimo策略进行训练/验证。mimo策略其中第一步就是对数据集进行处理,要把每个batch重复n_infers遍,之后组合所有的batch生成一个单独的epoch。原码是使用torch.utils.dataloader进行数据集加载的,并使用sampler(torch.utils.d......
  • 超参数调整、Batch归一化和程序框架
    超参数调整、Batch归一化和程序框架超参数调整在深度学习中,有许多超参数需要调整,不同超参数的重要性有所不同,可分为以下优先级:第一优先级是学习率\(\alpha\)。第二优先级是动量梯度下降参数\(\beta\),隐藏层神经元数量,以及mini-batch大小。第三个优先级是隐藏层数量,学习......
  • 关闭Windows 11自动更新的方法‌12
    importsubprocessdefdisable_windows_update_task():#PowerShellcommandtodisablethe"ScheduledStart"taskpowershell_command=('Get-ScheduledTask-TaskName"ScheduledStart"-TaskPath"\\Microsoft......
  • webAPI中的节点操作、高级事件
    一、节点操作1.删除节点node.removeChild();方法从node节点中删除一个子节点,返回删除的节点<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-s......
  • 264 Deploying a Vue App(部署WebAPI和VUE)
    步骤一、CoachWebAPIIIS部署(后端)1、发布ASP.NETWebAPI程序a)修改Program.cs中的Swagger部分,如下//ConfiguretheHTTPrequestpipeline.//if(app.Environment.IsDevelopment())//{app.UseSwagger();//app.UseSwaggerUI();app.UseSwaggerUI(c=>......