PM模块中资属性修改

该程序演示了如何在项目管理中修改资产属性。它首先检查输入的设备号和更新状态,然后调用CONVERSION_EXIT_ALPHA_INPUT进行数据转换,并使用I_CHANGE_STATUS函数来改变状态。如果状态更新成功,会记录日志;否则,提供错误信息。
摘要由CSDN通过智能技术生成

文章目录

1 Instruction

In the PM, we need modify asset property and we will use FM ‘I_CHANGE_STATUS’ for it .

2 Demo

DATA : LT_INTAB TYPE ZTEQSTATUS ,
         LW_INTAB TYPE ZSEQSTATUS .

  DATA : LT_INTAB1 TYPE ZTEQSTATUS ,
         LW_INTAB1 TYPE ZSEQSTATUS .


  DATA : LT_ZTPMEAMLOG LIKE STANDARD TABLE OF  ZTPMEAMLOG,
         LW_ZTPMEAMLOG LIKE LINE OF LT_ZTPMEAMLOG .


  TYPES: BEGIN OF  TY_JEST ,
    EQUNR  TYPE EQUI-EQUNR  ,
    OBJNR  TYPE JEST-OBJNR ,
    STAT   TYPE JEST-STAT ,
    END OF TY_JEST .

   DATA :
        LW_JEST TYPE  TY_JEST ,
        LT_JEST TYPE STANDARD TABLE OF TY_JEST.

  IF  IN_TAB[] IS NOT INITIAL.

    LT_INTAB[]  =   IN_TAB[].

    ELSE .
    MSGTY = 'E'.
    MSGTX = '请输入设备号和输入更新状态'.
    EXIT .


   ENDIF.

    CLEAR :LT_ZTPMEAMLOG[] , LW_ZTPMEAMLOG .


   LOOP AT LT_INTAB  INTO LW_INTAB .


   IF LW_INTAB-EQUNR IS INITIAL.
    MSGTY = 'E'.
    MSGTX = '请输入设备号'.
    EXIT.
  ENDIF.

  IF LW_INTAB-ESTAT_ACTIVE IS INITIAL.
    MSGTY = 'E'.
    MSGTX = '请输入更新状态'.
    EXIT.
  ENDIF.

     CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    INPUT         = LW_INTAB-EQUNR
    IMPORTING
     OUTPUT        = LW_INTAB-EQUNR .

     MOVE-CORRESPONDING LW_INTAB to LW_ZTPMEAMLOG .
     MOVE-CORRESPONDING LW_INTAB to LW_INTAB1 .

      APPEND LW_ZTPMEAMLOG  TO  LT_ZTPMEAMLOG .
      APPEND LW_INTAB1  TO LT_INTAB1.


   SELECT JEST~OBJNR   JEST~STAT  EQUI~EQUNR
      INTO CORRESPONDING FIELDS OF TABLE LT_JEST
    FROM JEST
     INNER JOIN EQUI ON JEST~OBJNR = EQUI~OBJNR
     WHERE   EQUI~EQUNR = LW_INTAB-EQUNR   AND JEST~INACT = '' .

     CLEAR: LW_INTAB,LW_ZTPMEAMLOG.

   ENDLOOP.

  DELETE LT_JEST   WHERE STAT(1) = 'I' .


    CLEAR :LW_JEST  , LW_INTAB1 .
  LOOP AT  LT_JEST[] INTO LW_JEST.

    READ TABLE  LT_INTAB1  INTO LW_INTAB1 WITH KEY  EQUNR  =  LW_JEST-EQUNR .

    IF SY-SUBRC = 0.

   IF LW_JEST-STAT  =  LW_INTAB1-ESTAT_ACTIVE .
    MSGTY = 'E'.
    MSGTX = '更新的状态于现在的状态一样,请检查'.
    EXIT.
  ENDIF.

      CALL FUNCTION 'I_CHANGE_STATUS'
        EXPORTING
          OBJNR                = LW_JEST-OBJNR
          ESTAT_INACTIVE       =  LW_JEST-STAT
          ESTAT_ACTIVE         =  LW_INTAB1-ESTAT_ACTIVE

                .
      IF SY-SUBRC = 0.
        LW_ZTPMEAMLOG-EQUNR = LW_JEST-EQUNR.
        LW_ZTPMEAMLOG-ZMARK = 'S' .
        MSGTY  = 'S'.
        CONCATENATE LW_JEST-EQUNR  '状态已经更新为'LW_INTAB1-ESTAT_ACTIVE INTO  MSGTX .
        CONCATENATE LW_JEST-EQUNR  '状态已经更新为'LW_INTAB1-ESTAT_ACTIVE INTO  LW_ZTPMEAMLOG-ZMESSAGE .
        LW_ZTPMEAMLOG-DATUM = SY-DATUM.
        LW_ZTPMEAMLOG-ZSYUZEIT = SY-UZEIT.

        APPEND LW_ZTPMEAMLOG  TO  LT_ZTPMEAMLOG .

       ELSE.
       LW_ZTPMEAMLOG-EQUNR = LW_JEST-EQUNR.
       LW_ZTPMEAMLOG-ZMARK = 'E' .
       MSGTY = 'E'.
        CONCATENATE LW_JEST-EQUNR  '状态更新失败为'LW_INTAB1-ESTAT_ACTIVE '请检查' INTO  MSGTX .
       LW_ZTPMEAMLOG-DATUM = SY-DATUM.
        CONCATENATE LW_JEST-EQUNR  '状态更新失败为'LW_INTAB1-ESTAT_ACTIVE '请检查' INTO  LW_ZTPMEAMLOG-ZMESSAGE .
       LW_ZTPMEAMLOG-ZSYUZEIT = SY-UZEIT.
        APPEND LW_ZTPMEAMLOG  TO  LT_ZTPMEAMLOG .
      ENDIF.


   ENDIF .

  ENDLOOP.



 IF LT_ZTPMEAMLOG IS NOT  INITIAL .

        MODIFY   ZTPMEAMLOG FROM  TABLE  LT_ZTPMEAMLOG[].

        IF SY-SUBRC = 0.

          COMMIT WORK .
        ENDIF.
        ENDIF.


CLEAR : LT_ZTPMEAMLOG[] .
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值