ABAP 일괄 분류 객체의 값 업데이트

1841 단어
먼저 재료, 배치 및 플랜트에 따라 배치 분류 객체를 가져옵니다.
  CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'
    EXPORTING
      I_MATNR = U_ITEM-MATNR
      I_CHARG = U_ITEM-CHARG
      I_WERKS = U_ITEM-WERKS
    IMPORTING
      E_OBJEK = L_OBJEK
      E_OBTAB = L_OBTAB
      E_KLART = L_KLART
      E_CLASS = L_CLASS.

다음으로 배치 특성 값을 가져옵니다.
  CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
    EXPORTING
      OBJECTKEY       = L_OBJEK
      OBJECTTABLE     = L_OBTAB
      CLASSNUM        = L_CLASS
      CLASSTYPE       = L_KLART
    TABLES
      ALLOCVALUESNUM  = LT_NUM
      ALLOCVALUESCHAR = LT_CHAR
      ALLOCVALUESCURR = LT_CURR
      RETURN          = LT_RETURN.

그런 다음 일괄 특성이 있거나 새로 추가된 일괄 특성을 업데이트하려면 다음과 같이 하십시오.
  READ TABLE LT_RETURN TRANSPORTING NO FIELDS WITH KEY TYPE = 'E'.
  IF SY-SUBRC <> 0.

    LT_NUMNEW = LT_NUM.
    LS_NUMNEW-CHARACT = 'Z_PO_SF'.
    LS_NUMNEW-VALUE_FROM = U_ITEM-JCBGSF.
    LS_NUMNEW-VALUE_RELATION = 1.
    APPEND LS_NUMNEW TO LT_NUMNEW.

    LT_CHARNEW = LT_CHAR.
    LT_CURRNEW = LT_CURR.
  ENDIF.

마지막으로 BAPI를 다시 호출하여 업데이트합니다.
  CALL FUNCTION 'BAPI_OBJCL_CHANGE'
    EXPORTING
      OBJECTKEY          = L_OBJEK
      OBJECTTABLE        = L_OBTAB
      CLASSNUM           = L_CLASS
      CLASSTYPE          = L_KLART
    TABLES
      ALLOCVALUESNUMNEW  = LT_NUMNEW
      ALLOCVALUESCHARNEW = LT_CHARNEW
      ALLOCVALUESCURRNEW = LT_CURRNEW
      RETURN             = LT_RETURN.

PS: 재료의 일괄 분류 객체 유지 관리 여부 보기
  SELECT SINGLE * INTO LS_INOB
      FROM INOB
      WHERE KLART = '023' " 
        AND OBTAB = 'MARA' 
        AND OBJEK = U_ITEM-MATNR.
  IF SY-SUBRC <> 0.
    MESSAGE E047(ZNHZH) WITH U_ITEM-MATNR.
  ENDIF.

좋은 웹페이지 즐겨찾기