SAP 获取物料/批次/订单的特性值(学习一)

1、事务码

MSC1N、MSC2N、MSC3N

2、常用表

MCH1、MCHA、AUSP、MCH*开头的几个

3、批次

1、创建批次

BAPI:BAPI_BATCH_CREATE

2、修改批次

BAPI:BAPI_BATCH_CHANGE

3、删除批次

BAPI:BAPI_BATCH_DELETE

4、获取批次明细

BAPI:BAPI_BATCH_GET_DETAIL

5、查询物料的分类视图是否扩充

BAPI: BAPI_OBJCL_GETCLASSES

OBJECTKEY_IMP:物料号 带前导0

OBJECTTABLE_IMP  MARA

CLASSTYPE_IMP  022

4、特性值

1、获取类别

CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'

     EXPORTING

        I_MATNR = LS_DATA-MATNR

        I_CHARG = LS_DATA-CHARG

        I_WERKS = LS_DATA-WERKS

     IMPORTING

        E_OBJEK = LV_OBJEK

        E_OBTAB = LV_OBTAB

        E_KLART = LV_KLART

        E_CLASS = LV_CLASS.

DATA:LV_OBJEK             TYPE  CUOBN,

     LV_OBTAB             TYPE  TABELLE,

     LV_KLART             TYPE  KLASSENART,

     LV_CLASS             TYPE  KLASSE_D.

2、通过物料+批次获取表和类别

SELECT SINGLE CUOBJ_BM FROM MCH1 INTO @DATA(LV_BM)

         WHERE MATNR EQ XXX

           AND CHARG EQ XXX.

DATA:LV_OBJECTNAME        LIKE BAPI1003_KEY-OBJECT,

     LV_OBJECTTABLE       LIKE BAPI1003_KEY-OBJECTTABLE,

     LV_CLASSTYPE         LIKE BAPI1003_KEY-CLASSTYPE,

     RETURN               LIKE TABLE OF BAPIRET2      WITH HEADER LINE.

CALL FUNCTION 'BAPI_OBJCL_GET_OBJECT_OF_KEY'

     EXPORTING

        CLOBJECTKEYIN = LV_BM

     IMPORTING

        OBJECTNAME    = LV_OBJECTNAME

        OBJECTTABLE   = LV_OBJECTTABLE

        CLASSTYPE     = LV_CLASSTYPE

     TABLES

        RETURN        = RETURN.

3、获取特性值明细

DATA:I_OBJEK              TYPE  BAPI1003_KEY-OBJECT,

     I_OBTAB              TYPE  BAPI1003_KEY-OBJECTTABLE,

     I_KLART              TYPE  BAPI1003_KEY-CLASSTYPE,

     I_CLASS              TYPE  BAPI1003_KEY-CLASSNUM.

CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'

     EXPORTING

       OBJECTKEY        = I_OBJEK

       OBJECTTABLE      = I_OBTAB

       CLASSNUM         = I_CLASS

       CLASSTYPE        = I_KLART

       UNVALUATED_CHARS = 'X'

     TABLES

       ALLOCVALUESNUM   = CLASSVALUATIONSNUM

       ALLOCVALUESCHAR  = CLASSVALUATIONSCHAR

       ALLOCVALUESCURR  = CLASSVALUATIONSCURR

       RETURN           = RETURN.

4、特性值修改

BAPI:BAPI_OBJCL_CHANGE

5、批量修改批次特性值

BAPI:BAPI_BATCH_SAVE_REPLICA

5、分类、特性值关系

根据分类别查KLAH表,KLAH-CLASS = 'XXX',获取内部等级号 CLINT

根据KLAH-CLINT = KSML-CLINT取得分类下所有的内部特性号 IMERK

根据KSML-IMERK = CABN-ATINN取得特性详细信息,CABNT是特性描述

6、批次对应物料特性值读取

VC_I_GET_CONFIGURATION

批次分类特性值读取函数

BAPI_OBJCL_GETDETAIL

物料特性 /

 200 特性通过数据库取值

  SELECT

    objek "将分类的对象的键值

    atinn "内部特性

    atwrt "特性值

    atflv "内部浮点自

    klart "类别种类

    INTO TABLE gt_ausp

    FROM ausp

    INNER JOIN cabn

    ON cabn~atinn = ausp~atinn

    WHERE objek = '000000000101004001'

      AND klart = '200'

      AND atnam = 'WG0078'. " 内部特性

  SORT gt_ausp BY objek atinn.

    

    READ TABLE gt_ausp INTO gs_ausp

      WITH KEY objek = '000000000101004001'

               atinn = 'WG0078'

               BINARY SEARCH.

  IF sy-subrc = 0.

    CALL FUNCTION 'MC_FLTP_CHAR'

      EXPORTING

        fc_a_fld = gs_ausp-atflv

      IMPORTING

        fc_r_fld = gs_alv-wg0078.

  ENDIF.

通过 BAPI 取值

DATA: lv_matnr           TYPE matnr,

      lv_object          TYPE objnum,

      ls_alloclist       TYPE bapi1003_alloc_list,

      lt_alloclist       TYPE TABLE OF bapi1003_alloc_list,

      ls_return          TYPE bapiret2,

      lt_return          TYPE TABLE OF bapiret2,

      ls_allocvaluesnum  TYPE bapi1003_alloc_values_num,

      lt_allocvaluesnum  TYPE TABLE OF bapi1003_alloc_values_num,

      ls_allocvalueschar TYPE bapi1003_alloc_values_char,

      lt_allocvalueschar TYPE TABLE OF bapi1003_alloc_values_char,

      ls_allocvaluescurr TYPE bapi1003_alloc_values_curr,

      lt_allocvaluescurr TYPE TABLE OF bapi1003_alloc_values_curr,

      ls_retur2          TYPE bapiret2,

      lt_retur2          TYPE TABLE OF bapiret2.

lv_object = lv_matnr.  " 物料号带前置零

CALL FUNCTION 'BAPI_OBJCL_GETCLASSES' " 可以通过 cl03 查看

  EXPORTING

    objectkey_imp   = lv_object " 物料号

    objecttable_imp = 'MARA'

    classtype_imp   = '200'

  TABLES

    alloclist       = lt_alloclist

    return          = lt_return.

READ TABLE lt_alloclist INTO ls_alloclist INDEX 1.

CALL FUNCTION 'BAPI_OBJCL_GETDETAIL' " 也可以用 claf_classification_of_objects 取值

  EXPORTING

    objectkey       = lv_object

    objecttable     = 'MARA'

    classnum        = ls_alloclist-classnum

    classtype       = '200'

  TABLES

    allocvaluesnum  = lt_allocvaluesnum

    allocvalueschar = lt_allocvalueschar

    allocvaluescurr = lt_allocvaluescurr

    return          = lt_retur2.

通过 BAPI 创建特性

l_objectkeynew = l_matnr.

l_objecttablenew = 'MARA'.

l_classnumnew = ls_tmp-class.

l_classtypenew = ls_tmp-klart.

CLEAR: lt_numout,lt_charout,lt_returnout.

CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'

  EXPORTING

    objectkey       = l_objectkeynew

    objecttable     = l_objecttablenew

    classnum        = l_classnumnew

    classtype       = l_classtypenew

  TABLES

    allocvaluesnum  = lt_numout

    allocvalueschar = lt_charout

    allocvaluescurr = lt_currout

    return          = lt_returnout.

CLEAR ls_return.

READ TABLE lt_returnout INTO ls_return WITH KEY type = 'E'.

IF sy-subrc <> 0.

  CLEAR lt_returnout.

  CALL FUNCTION 'BAPI_OBJCL_DELETE' "删除已有分类

    EXPORTING

      objectkey   = l_objectkeynew

      objecttable = l_objecttablenew

      classnum    = l_classnumnew

      classtype   = l_classtypenew

*     CHANGENUMBER =

*     KEYDATE     = SY-DATUM

    TABLES

      return      = lt_returnout.

  CLEAR ls_return.

  READ TABLE lt_returnout INTO ls_return WITH KEY type = 'E'.

  IF sy-subrc = 0.

    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    MESSAGE e000 WITH '删除物料' l_objectkeynew '已有分类失败'.

  ELSE.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

      EXPORTING

        wait = 'X'.

  ENDIF.

ENDIF.

LOOP AT gt_upload INTO gs_upload WHERE matnr = ls_tmp-matnr AND klart =

ls_tmp-klart AND class = ls_tmp-class.

  CLEAR: ls_num, ls_char,l_atinn,l_atfor.

  CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'

    EXPORTING

      input  = gs_upload-atnam

    IMPORTING

      output = l_atinn.

* SELECT SINGLE atfor FROM cabn INTO l_atfor WHERE atinn = l_atinn.

  READ TABLE lt_cabn INTO ls_cabn WITH KEY atinn = l_atinn.

  IF sy-subrc <> 0.

    MESSAGE e000 WITH '特性没有维护,请先维护特性!'.

  ENDIF.

  l_atfor = ls_cabn-atfor.

  IF gs_upload-atwrt IS NOT INITIAL.

    IF l_atfor = 'CHAR'.

      ls_char-charact = gs_upload-atnam.

      ls_char-charact_descr = gs_upload-atbez.

      ls_char-value_char = gs_upload-atwrt.

      APPEND ls_char TO lt_char.

    ELSEIF l_atfor = 'NUM'.

      ls_num-charact = gs_upload-atnam.

      ls_num-charact_descr = gs_upload-atbez.

      ls_num-value_from = gs_upload-atwrt.

      APPEND ls_num TO lt_num.

    ENDIF.

  ENDIF.

ENDLOOP.

CALL FUNCTION 'BAPI_OBJCL_CREATE'

  EXPORTING

    objectkeynew    = l_objectkeynew

    objecttablenew  = l_objecttablenew

    classnumnew     = l_classnumnew

    classtypenew    = l_classtypenew

    status          = '1'

*    standardclass   =

*    changenumber    =

*   KEYDATE         = SY-DATUM

*   NO_DEFAULT_VALUES = ' '

* IMPORTING

*   CLASSIF_STATUS  =

  tables

    allocvaluesnum  = lt_num

    allocvalueschar = lt_char

*   ALLOCVALUESCURR =

    return          = lt_return.

CLEAR: l_type,l_info, ls_return.

READ TABLE lt_return INTO ls_return WITH KEY type = 'E'.

IF sy-subrc = 0.

  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

  CLEAR l_info.

  CALL FUNCTION 'MESSAGE_TEXT_BUILD'

    EXPORTING

      msgid               = ls_return-id

      msgnr               = ls_return-number

      msgv1               = ls_return-message_v1

      msgv2               = ls_return-message_v2

      msgv3               = ls_return-message_v3

      msgv4               = ls_return-message_v4

    IMPORTING

      message_text_output = l_info.

  l_type = 'E'.

ELSE.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

    EXPORTING

      wait = 'X'.

  l_type = 'S'.

  l_info = '物料主数据分类视图创建特性成功'.

ENDIF.

物料批次特性 / 023 特性

通过数据库取值

  

SELECT

    mch1~matnr,

    mch1~charg,

    cabn~atnam,

    ausp~atwrt,

    ausp~atflv

    FROM mch1

    INNER JOIN ausp

    ON ausp~objek = mch1~cuobj_bm

    INNER JOIN cabn

    ON cabn~atinn = ausp~atinn

    WHERE mch1~matnr = '000000000101004001'

    AND mch1~charg = '152200110'.

销售订单特性 / VC 特性 / 可配置物料特性 / 300 特性

通过数据库取值

  

SELECT

    vbap~vbeln,

    vbap~posnr,

    cabn~atinn,"内部特性

    cabn~atnam,"特性名称

    ibsymbol~atwrt,"特性值

    ibsymbol~atflv,

    ibsymbol~atflb

    INTO TABLE @DATA(gt_data)

    FROM vbap

    INNER JOIN ibin

       ON ibin~instance = vbap~cuobj

      AND ibin~valto = '99991231235959'

    INNER JOIN ibinvalues

       ON ibinvalues~in_recno = ibin~in_recno

    INNER JOIN ibsymbol

       ON ibsymbol~symbol_id = ibinvalues~symbol_id

    INNER JOIN cabn

       ON cabn~atinn = ibsymbol~atinn

    WHERE vbap~vbeln = '2000046612'

      AND vbap~posnr = '000010'.

通过 BAPI 取值

  

SELECT SINGLE

    cuobj

    matnr

    INTO (l_cuobj,l_matnr)

    FROM vbap

    WHERE vbeln = w_mseg-kdauf

    AND posnr = w_mseg-kdpos.

    

  DATA: t_configuration LIKE STANDARD TABLE OF conf_out WITH HEADER LINE.

        

  IF l_cuobj IS NOT INITIAL.

    CALL FUNCTION 'VC_I_GET_CONFIGURATION'

      EXPORTING

        instance              = l_cuobj

        language              = '1'

        iv_max_massprocessing = 10

      TABLES

        configuration         = t_configuration.

  ENDIF.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/311231.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vpp node 及 vpp 多线程

node 注册 node注册&#xff0c;即宏VLIB_REGISTER_NODE(x, ...)流程&#xff1a; 创建vlib_node_registration_t x&#xff1b;vlib_node_registration_t结构只是存放了用户提供的node相关信息。把x添加到全局变量vlib_global_main中的node_registrations链表中&#xff08;…

本地开发环境请求服务器接口跨域的问题(vue的问题)

上面的这个报错大家都不会陌生&#xff0c;报错是说没有访问权限&#xff08;跨域问题&#xff09;。本地开发项目请求服务器接口的时候&#xff0c;因为客户端的同源策略&#xff0c;导致了跨域的问题。下面先演示一个没有配置允许本地跨域的的情况&#xff1a; 可以看到&…

如何在数学建模竞赛中稳定拿奖

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

[三星电子]算法题--两种颜色涂无向图(bfs)

题目 题目描述&#xff1a; 给一无向图中各个节点绘色&#xff0c;一共只有两种颜色&#xff0c;使其满足相邻节点颜色不同&#xff0c;并输出其中一种颜色的节点个数及序号&#xff1b;如果不满足&#xff0c;则输出-1。 示例&#xff1a; 第一行输入节点个数V和边数E&…

数字信号处理实验---Z变换及系统的零极点分析 Matlab代码

一&#xff0e;各种函数的用法 1.tf2zp函数&#xff1a;通常用于将传递函数&#xff08;Transfer Function&#xff09;转换为零极增益形式&#xff08;ZPK form&#xff09;&#xff0c;转换前G(s) num(s) / den(s)&#xff0c;转换后G(s) K * (s - z1) * (s - z2) * ... *…

freeRTOS总结(四)中断管理

1、什么是中断 打断CPU正常运行程序&#xff0c;转而处理紧急的事件&#xff08;中断服务函数&#xff09;。 中断执行机制3步 1、中断请求 2、响应中断 3、退出中断 2 中断优先级 cortex-M使用8位寄存器配置中断优先级 stm32只用到高4位 stm32优先级分为抢占优先级和子优先…

如何测量电源芯片的电压调整率?电源芯片检测系统助力测试

电源芯片电压调整率的测试方法 测试环境&#xff1a; 温度&#xff1a;252℃ 湿度&#xff1a;60%~70% 大气压强&#xff1a;86kPa~106kPa 测试工具&#xff1a;可调电源、可调电子负载、万用表 测试步骤&#xff1a; 1. 设置电子负载&#xff0c;使电源满载输出; 2. 调节电源芯…

LORA的基本原理

本文将介绍如下内容&#xff1a; 什么是Lora高效微调的基本原理LORA的实现方式LORA为何有效&#xff1f; 一、什么是LoRA LoRA 通常是指低秩分解&#xff08;Low-Rank Decomposition&#xff09;算法&#xff0c;是一种低资源微调大模型方法&#xff0c;论文如下: LoRA: Low…

深入理解计算机系统(1):开始

计算机系统是由硬件和系统软件组成的&#xff0c;它们共同工作来运行应用程序。虽然系统的具体实现方式随着时间不断变化&#xff0c;但是系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件&#xff0c;它们又执行着相似的功能。 计算机系统 信息就是位上下…

C++I/O流——(1)I/O流的概念

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 勤奋&#xff0c;机会&#xff0c;乐观…

Nginx配置反向代理实例二

Mac 安装Nginx教程 Nginx配置反向代理实例一 提醒一下&#xff1a;下面实例讲解是在Mac系统演示的&#xff1b; 反向代理实例二实现的效果 使用nginx 反向代理&#xff0c;根据访问的地址跳转到不同端口的服务中 nginx 监听端口为81&#xff1b; 访问地址1&#xff1a;http:/…

QTday4作业

思维导图: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> #include <QTimerEvent> #include <QPushButton> #include <QTextToSpeech> #include <QDebug>namespace Ui { class Widget; }class Widget…

实现稳定的联合显著性检测和联合目标分割

1 Title Toward Stable Co-Saliency Detection and Object Co-Segmentation(Bo Li; Lv Tang; Senyun Kuang; Mofei Song; Shouhong Ding)【IEEE Transactions on Image Processing 2022】 2 Conclusion This paper present a novel model for simultaneous stable co-saliency…

数据分析讲课笔记01:数据分析概述

文章目录 零、学习目标一、本次课程概述二、数据分析的背景&#xff08;一&#xff09;进入大数据时代&#xff08;二&#xff09;数据分析的作用 三、什么是数据分析&#xff08;一&#xff09;数据分析的概念&#xff08;二&#xff09;数据分析的分类1、描述性数据分析2、探…

公网环境使用移动端设备+cpolar远程访问本地群晖nas上的影视资源

文章目录 1.使用环境要求&#xff1a;2.下载群晖videostation&#xff1a;3.公网访问本地群晖videostation中的电影&#xff1a;4.公网条件下使用电脑浏览器访问本地群晖video station5.公网条件下使用移动端&#xff08;搭载安卓&#xff0c;ios&#xff0c;ipados等系统的设备…

WiFi7无线路由器TL-7DR6560简单开箱测评

TPLINK/普联 TL-7DR6560易展Turbo版 BE6500 双频WiFi7无线路由器简单开箱测评&#xff0c;4个2.5G网口&#xff0c;6颗独立FEM&#xff0c;双频6流。 TP-LINK XDR6088 WiFi6路由器 简单开箱评测&#xff1a;https://blog.zeruns.tech/archives/731.html 分享一下我家网络机柜…

Macos下修改Python版本

MacOS下修改Python版本 安装 查看本机已安装的Python版本&#xff1a;where python3 ~ where python3 /usr/bin/python3 /usr/local/bin/python3 /Library/Frameworks/Python.framework/Versions/3.12/bin/python3如果没有你想要的版本&#xff0c;去python官网下载安装包。…

Day4Qt

1.头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime>//时间类 #include <QTimer>//时间事件类 #include <QTimerEvent>//定时器类 #include <QTextToSpeech> namespace Ui { class Widget; }class Widget : publi…

esp32-cam使用SD卡/web端保存拍摄图片到本地

目录 一、esp32-cam运行esp-who的人脸识别报错 二、挂载sd卡到esp32-cam&#xff0c;并将拍摄的图片保存到sd卡三、通过web示例对拍摄的图片进行保存 保存拍摄图片主要是想加在人脸识别这个项目中&#xff0c;所以先把人脸识别示例跑通&#xff0c;然后在把挂在sd卡的部分放进来…

7.云原生之jenkins集成SonarQube

1. 私有云实战之基础环境搭建 2. 云原生实战之kubesphere搭建 3.云原生之kubesphere运维 4. 云原生之kubesphere基础服务搭建 5.云原生安全之kubesphere应用网关配置域名TLS证书 6.云原生之DevOps和CICD 7.云原生之jenkins集成SonarQube 8.云原生存储之Ceph集群 文章目录 搭建 …