当前位置: 首页 > news >正文

BAPI_BATCH_CHANGE:修改批次的特征值

要修改批次里面的某一个特征值,所以需要使用到BAPI_BATCH_CHANGE这个BAPI,除此之外,还有VB_BATCH_2_CLASS_OBJECT函数和BAPI_OBJCL_GETDETAIL。

特别注意

注意函数VB_BATCH_2_CLASS_OBJECT的i_matnr参数,注意前导0的问题。因为这个前导0,

注意BAPI函数BAPI_OBJCL_GETDETAIL的objectkey_long参数,不使用objectkey。

实现步骤

定义变量

DATA e_objek TYPE cuobn.
DATA e_obtab TYPE tabelle.
DATA e_klart TYPE klassenart.
DATA e_class TYPE klasse_d.
DATA allocvaluesnum   TYPE STANDARD TABLE OF bapi1003_alloc_values_num.   "分配 BAPI - NUM、DATE、TIME 类型的值
DATA allocvalueschar  TYPE STANDARD TABLE OF bapi1003_alloc_values_char.  "分配 BAPI - CHAR、BOOL 类型的值
DATA allocvaluescurr  TYPE STANDARD TABLE OF bapi1003_alloc_values_curr.  "分配 BAPI - CURR 类型值
DATA return           TYPE STANDARD TABLE OF bapiret2.DATA: lt_numnew TYPE TABLE OF bapi1003_alloc_values_num,lt_charnew TYPE TABLE OF bapi1003_alloc_values_char,lt_currnew TYPE TABLE OF bapi1003_alloc_values_curr,lt_returnnew TYPE TABLE OF bapiret2.DATA: ls_char TYPE bapi1003_alloc_values_char,ls_return TYPE bapiret2.

获取对象/类等

函数名称:VB_BATCH_2_CLASS_OBJECT

CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'EXPORTINGi_matnr       = '1010001'  "物料i_charg       = 'G220613002'  "批次i_werks       = '1000'    "工厂IMPORTINGe_objek       = e_objeke_obtab       = e_obtabe_klart       = e_klarte_class       = e_class.

获取已维护特性值

BAPI名称:BAPI_OBJCL_GETDETAIL

CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'EXPORTING"objectkey               = e_objek  "如果是物料是40位的,选这个会报错,要选OBJECTKEY_LONGobjecttable            = e_obtab  "对于分类的对象的数据库表名称classnum               = e_class  "分类编号classtype              = e_klart  "分类的类型"keydate                = sy-datum
*   UNVALUATED_CHARS       = ' '
*   LANGUAGE               = SY-LANGUobjectkey_long         = e_objek   "关键字字段
* IMPORTING
*   STATUS                 = STATUS
*   STANDARDCLASS          = STANDARDCLASSTABLESallocvaluesnum         = allocvaluesnumallocvalueschar        = allocvaluescharallocvaluescurr        = allocvaluescurrreturn                 = return.

新特性值更新

BAPI名称:BAPI_BATCH_CHANGE

lt_numnew[] = allocvaluesnum.
lt_charnew[] = allocvalueschar.
lt_currnew[] = allocvaluescurr.
lt_returnnew[] = return.IF lt_charnew[] IS NOT INITIAL.LOOP AT lt_charnew INTO ls_char.ls_char-value_char = '1'.         "特征值ls_char-value_neutral = '1'.      "特征值ls_char-value_char_long = '1'.    "特征值ls_char-value_neutral_long = '1'. "特征值MODIFY lt_charnew FROM ls_char.ENDLOOP.
ELSE.ls_char-charact = 'Z_SW_DW_BA'.   "特征名ls_char-value_char = '1'.         "特征值ls_char-value_neutral = '1'.      "特征值ls_char-value_char_long = '1'.    "特征值ls_char-value_neutral_long = '1'. "特征值APPEND ls_char TO lt_charnew[].
ENDIF."--> 新特性值更新
CALL FUNCTION 'BAPI_OBJCL_CHANGE'EXPORTING
*   OBJECTKEY                = OBJECTKEYobjecttable              = e_obtabclassnum                 = e_classclasstype                = e_klart
*   STATUS                   = '1'
*   STANDARDCLASS            = STANDARDCLASS
*   CHANGENUMBER             = CHANGENUMBER
*   KEYDATE                  = SY-DATUM
*   NO_DEFAULT_VALUES        = ' '
*   KEEP_SAME_DEFAULTS       = ' 'objectkey_long           = e_objek
* IMPORTING
*   CLASSIF_STATUS           = CLASSIF_STATUSTABLESallocvaluesnumnew        = lt_numnewallocvaluescharnew       = lt_charnewallocvaluescurrnew       = lt_currnewreturn                   = lt_returnnew.LOOP AT return INTO ls_return WHERE type = 'E' OR type = 'A'.WRITE: ls_return-message.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.EXIT.
ENDLOOP.IF sy-subrc <> 0.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.
ENDIF.

http://www.xdnf.cn/news/788977.html

相关文章:

  • CppCon 2014 学习:Lightning Talk: Writing a Python Interpreter for Fun and Profit
  • 3步在小米13手机跑DeepSeek R1
  • 网络安全基础--第十天
  • 力扣刷题 -- 225. 用队列实现栈
  • 【复习】软件测试
  • 解决CSDN等网站访问不了的问题
  • 力扣HOT100之多维动态规划:5. 最长回文子串
  • 什么是AI芯片?
  • 龙虎榜——20250603
  • SAP局部数据类型是什么 数据类型的概念
  • 复杂系统仿真的具体意义
  • SOC-ESP32S3部分:27-设备OTA
  • 2025年AIR SCI1区TOP,多策略增强蜣螂算法MDBO+实际工程问题,深度解析+性能实测
  • 打卡第35天:GPU训练以及类的Call方法
  • 灵光一现的问题和常见错误4
  • 区块链确认时间
  • LangChain基本概念
  • Java对象比较与排序的常见错误及解决方案
  • C语言函数的声明和定义
  • Vue-Cropper:全面掌握图片裁剪组件
  • 物联网数据归档之数据存储方案选择分析
  • 【leetcode-两数之和】
  • 登高架设作业实操考试需要注意哪些安全细节?
  • 如何进行页面前端监控
  • 第十二节:第七部分:集合框架:Collection集合的使用总结、集合的并发修改异常问题
  • 计算机图形学 - 投影变换推导
  • qwen大模型在进行词嵌入向量时,针对的词表中的唯一数字还是其他的?
  • NX890NX894美光固态闪存NX906NX908
  • 6级阅读学习
  • 九(5).引用和指针的区别