zoukankan      html  css  js  c++  java
  • Update characteristic value ABAP Sample

    This code will update characteristic value in SAP.
    First, it checks if the characteristic is already exists or if has to be created.
    Second, it updates the characteristic value.

    Update characteristic value SAP Signature

    The following code sample is a class’s method with these parameters:

    • Importing :
      • IV_OBJECTKEY TYPE OBJNUM
      • IV_KLART TYPE KLASSENART
      • IV_ATNAM TYPE ATNAM
      • IV_VALUE_NEW TYPE ATWRT
    • Exporting :
      • ET_RETURN TYPE BAPIRETTAB

    Customer Classification

    Update characteristic value ABAP Sample

    The following part is the Sample ABAP Method will help you update SAP Customer Characteristic in SAP.
    The steps required to perform Characteristic update for customer are:

    • Get Class Type and Object Table for this Characteristic.
    • Get the Class Num of Characteristic
    • Check if this Characteristic exist : Update or Creation ?
    • Fill the new Characteristic value
    • Update Characteristic Value in Sap
    • If no error occurs, commit work to Update Characteristic Value in Sap

    METHOD set_classification.

    " Signature of this method

    " Importing :

    " IV_OBJECTKEY TYPE OBJNUM

    " IV_KLART TYPE KLASSENART

    " IV_ATNAM TYPE ATNAM

    " IV_VALUE_NEW TYPE ATWRT

    " Exporting :

    " ET_RETURN TYPE BAPIRETTAB

    DATA: lv_objectkey TYPE objnum, ,

    lv_objecttable TYPE tabelle,

    lv_classnum TYPE klasse_d,

    lv_classtype TYPE klassenart.

    DATA: lt_allocvaluesnum TYPE TABLE OF bapi1003_alloc_values_num,

    lt_allocvalueschar TYPE TABLE OF bapi1003_alloc_values_char,

    ls_allocvalueschar LIKE LINE OF lt_allocvalueschar,

    lt_allocvaluescurr TYPE TABLE OF bapi1003_alloc_values_curr,

    lt_return TYPE TABLE OF bapiret2.

    DATA: lv_status TYPE clstatus,

    lv_standardclass TYPE stdclass.

    DATA: lt_allocvaluescharnew TYPE TABLE OF bapi1003_alloc_values_char,

    ls_allocvaluescharnew LIKE LINE OF lt_allocvaluescharnew.

    DATA: lt_allocvaluesnumnew TYPE TABLE OF bapi1003_alloc_values_num,

    lt_allocvaluescurrnew TYPE TABLE OF bapi1003_alloc_values_curr.

    lv_objectkey = iv_objectkey.

    " Get Class Type and Object Table for this Characteristic

    SELECT SINGLE klart obtab FROM tcla

    INTO (lv_classtype , lv_objecttable)

    WHERE klart = iv_klart.

    IF sy-subrc NE 0 .

    RETURN.

    ENDIF.

    " Get the Class Num of Characteristic

    SELECT SINGLE class FROM klah

    INTO lv_classnum

    WHERE klart = iv_klart.

    IF sy-subrc NE 0 .

    RETURN.

    ENDIF.

    " Check if this Characteristic exist : Update or Creation ?

    CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'

    EXPORTING

    objectkey = lv_objectkey

    objecttable = lv_objecttable

    classnum = lv_classnum

    classtype = lv_classtype

    IMPORTING

    status = lv_status

    standardclass = lv_standardclass

    TABLES

    allocvaluesnum = lt_allocvaluesnum

    allocvalueschar = lt_allocvalueschar

    allocvaluescurr = lt_allocvaluescurr

    return = lt_return.

    APPEND LINES OF lt_return TO et_return. REFRESH lt_return.

    SORT lt_allocvalueschar BY charact.

    " fill the new Characteristic value

    READ TABLE lt_allocvalueschar TRANSPORTING NO FIELDS

    WITH KEY charact = iv_atnam.

    IF sy-subrc = 0 .

    ls_allocvaluescharnew-charact = iv_atnam.

    "ls_allocvaluescharnew-value_char = iv_value_new.

    CLEAR ls_allocvaluescharnew-inherited .

    CLEAR ls_allocvaluescharnew-instance .

    ls_allocvaluescharnew-value_neutral = iv_value_new.

    CLEAR ls_allocvaluescharnew-charact_descr .

    APPEND ls_allocvaluescharnew TO lt_allocvaluescharnew.

    ENDIF.

    LOOP AT lt_allocvalueschar INTO ls_allocvalueschar.

    IF ls_allocvalueschar-charact = iv_atnam.

    ls_allocvaluescharnew-charact = iv_atnam.

    "ls_allocvaluescharnew-value_char = iv_value_new.

    CLEAR ls_allocvaluescharnew-inherited .

    CLEAR ls_allocvaluescharnew-instance .

    ls_allocvaluescharnew-value_neutral = iv_value_new.

    CLEAR ls_allocvaluescharnew-charact_descr .

    ELSE.

    MOVE-CORRESPONDING ls_allocvalueschar TO ls_allocvaluescharnew.

    ENDIF.

    APPEND ls_allocvaluescharnew TO lt_allocvaluescharnew.

    ENDLOOP.

    " Update Characteristic Value in Sap

    CALL FUNCTION 'BAPI_OBJCL_CHANGE'

    EXPORTING

    objectkey = lv_objectkey

    objecttable = lv_objecttable

    classnum = lv_classnum

    classtype = lv_classtype

    TABLES

    allocvaluesnumnew = lt_allocvaluesnumnew

    allocvaluescharnew = lt_allocvaluescharnew

    allocvaluescurrnew = lt_allocvaluescurrnew

    return = lt_return.

    APPEND LINES OF lt_return TO et_return. REFRESH lt_return.

    " If no error occurs, commit work to Update Characteristic Value in Sap

    READ TABLE et_return TRANSPORTING NO FIELDS

    WITH KEY type = 'E'.

    IF sy-subrc NE 0 .

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

    EXPORTING

    wait = 'X'.

    ENDIF.

    ENDMETHOD. "set_classification

  • 相关阅读:
    如何用Chrome浏览器下载网页音乐视频
    《C语言深度解剖》学习笔记之函数
    《C语言深度解剖》学习笔记之内存管理
    《C语言深度解剖》学习笔记之指针和数组
    《C语言深度解剖》学习笔记之预处理
    《C语言深度解剖》学习笔记之符号
    《C语言深度解剖》学习笔记之关键字
    CKA1.20版本2021年1月31日最新版本真题,第三题升级master节点
    CKA1.20版本2021年1月31日最新版本真题,第一题RBAC
    Linux之curl命令
  • 原文地址:https://www.cnblogs.com/chrisrockdl/p/14079205.html
Copyright © 2011-2022 走看看