ABAP 通过SUBMIT获取另一个程序里的数据

1. Introduction

In the code we will demostrate that how get data in the other report. The other
report is ZFI_R_014_C_NO1

2. Code Example

 DATA:LO_EXCEPTION TYPE REF TO CX_ROOT,
       ZTREXJSON    TYPE REF TO CL_TREX_JSON_SERIALIZER,
       ZTREXJSONRET TYPE REF TO ZCL_TREX_JSON_DESERIALIZER,
       HTTP_CLIENT  TYPE REF TO IF_HTTP_CLIENT.

  DATA : GT_ZTFI084 LIKE TABLE OF ZTFI084,
        GW_ZTFI084 LIKE LINE OF GT_ZTFI084.



*------------------->增加前导零
  DEFINE REF_ADD_ZERO.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT  = &1
      IMPORTING
        OUTPUT = &1.
  END-OF-DEFINITION.
*------------------->除去前导零
  DEFINE REF_DELETE_ZERO.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
      EXPORTING
        INPUT  = &1
      IMPORTING
        OUTPUT = &1.
  END-OF-DEFINITION.

*  DATA: LS_WERKS TYPE CHAR10.

  DATA:BEGIN OF  GW_DATA,
    BUKRS  LIKE  AUFK-BUKRS,
    ANLN1  LIKE  ANLA-ANLN1,
    END OF GW_DATA.
  DATA: GT_DATA LIKE TABLE OF GW_DATA .

  DATA: BEGIN OF GW_OUTDATA,
     BUKRS LIKE ANLA-BUKRS,
     ANLN1 LIKE ANLA-ANLN1,
     TXT50 LIKE ANLA-TXT50,
     TXA50 LIKE ANLA-TXA50,
     INVNR LIKE ANLA-INVNR,
     AKTIV LIKE ANLA-AKTIV,
     RMAIN TYPE STRING,
     MENGE LIKE ANLA-MENGE,
     ANSWL LIKE ANLC-ANSWL,
     NETVL LIKE ANLP-NAFAZ,
   END OF  GW_OUTDATA.
   TYPES:    BEGIN OF TP_RETURN,
       INDEX TYPE SY-INDEX,
       BUKRS TYPE ANLA-BUKRS,                       "公司代码
       ANLN1 TYPE ANLA-ANLN1,                       "资产号
       ANLHTXT TYPE ANLHTXT,                        "资产主号文本
       ANLN2 TYPE ANLA-ANLN2,                       "资产次级编号
       TXT50 TYPE ANLA-TXT50,                       "资产描述
       TXA50 TYPE ANLA-TXA50,                       "备注
       ANLKL TYPE ANLA-ANLKL,                       "类别
       INVNR TYPE ANLA-INVNR,                       "存货号
       SERNR TYPE ANLA-SERNR,                       "序列号
       IVDAT TYPE ANLA-IVDAT,                       "最后库存日
       INVZU TYPE ANLA-INVZU,                       "库存注记
       ZSKZC TYPE CHAR50,                            "数控资产
       ZYYRJ TYPE CHAR50,                            "应用软件
       ZHTH  TYPE CHAR50,                            "合同号
       ZSBGL TYPE CHAR50,                            "设备功率
       LIFNR TYPE ANLA-LIFNR,                       "供应商
       NAME1 TYPE LFA1-NAME1,
       HERST TYPE ANLA-HERST,
       LEART TYPE ANLA-LEART,                       "租赁类型
       ORD41 TYPE ANLA-ORD41,                       "资产状态
       ORDTX TYPE T087T-ORDTX,                       "资产状态描述
       AEDAT TYPE ANLA-AEDAT,                       "资产状态变更时间
       ZUGDT TYPE ANLA-ZUGDT,                       "首次购置日
       AKTIV TYPE ANLA-AKTIV,                       "资本化日期
       KOSTL TYPE ANLZ-KOSTL ,                      "成本中心
       KTEXT TYPE CSKT-KTEXT,                       "成本中心
       AFASL TYPE ANLB-AFASL,                       "折旧方法
       MEINS TYPE ANLA-MEINS,                       "单位
       MENGE TYPE ANLA-MENGE,                       "数量
       ANSWL TYPE ANLC-ANSWL,                       "原值
       NASUM TYPE ANLP-NAFAZ,                       "累计折旧
       NAFAZ TYPE ANLP-NAFAZ,                       "本期折旧
       NAFAG TYPE ANLC-NAFAG,                       "本年折旧
       NETVL TYPE ANLP-NAFAZ,                       "净值
       TOTAL TYPE STRING,                            "使用寿命
       DEAKT TYPE ANLA-DEAKT,                        "报废日期
       RMAIN TYPE STRING,                            "剩余寿命
       W_TAL TYPE I,
       W_RES TYPE I,
       ANLN3 TYPE ANEK-ANLN1,                        "调出资产号
       BUKRS1 TYPE ANEK-BUKRS,                        "调入资产号
       BZDAT TYPE ANEP-BZDAT,                        "原资产价值日期
       JISHU TYPE SY-INDEX,                           "计数

     END OF TP_RETURN.
  DATA: LT_RETURN TYPE STANDARD TABLE OF  TP_RETURN .

  DATA:GT_OUTDATA LIKE TABLE OF  GW_OUTDATA.
  DATA: CL_DATA TYPE REF TO DATA.
  FIELD-SYMBOLS: <F_OUTTAB> LIKE LT_RETURN.
  FIELD-SYMBOLS: <F_LINE> TYPE TP_RETURN.
  FIELD-SYMBOLS: <F_FIELD> TYPE ANY.

  " Start it by jinggl 20220322

 DATA: L_YEAR TYPE CHAR4.
  CLEAR: L_YEAR.
  L_YEAR = SY-DATUM+0(4).
  DATA: G_DATUM TYPE SY-DATUM.
  DATA L_ZUPER TYPE CHAR2 .
  L_ZUPER = SY-DATUM+4(2).


  TRY.


  CHECK IJSON IS NOT INITIAL.
  ZCL_JSON=>DESERIALIZE( EXPORTING JSON = IJSON PRETTY_NAME = ZCL_JSON=>PRETTY_MODE-CAMEL_CASE CHANGING DATA = GW_DATA ).

      IF GW_DATA IS INITIAL.
        ESIGN = 'E'.
        EMESSAGE = '传输数据为空,或JSON数据解析出错,请检查!'.
        EXIT.
      ENDIF.





  CL_SALV_BS_RUNTIME_INFO=>SET(
     DISPLAY  = ABAP_FALSE
     METADATA = ABAP_FALSE
     DATA     = ABAP_TRUE
  ).





  SUBMIT ZFI_R_014_C_NO1 USING SELECTION-SCREEN '1000'
                       WITH P_BUKRS =  GW_DATA-BUKRS

                       WITH P_ANLN1 EQ GW_DATA-ANLN1
                       WITH P_ZUJHR EQ L_YEAR
                       WITH P_ZUPER EQ L_ZUPER

                       AND RETURN.

  TRY.
      CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF(
            IMPORTING
              R_DATA = CL_DATA
      ).

    CATCH CX_SALV_BS_SC_RUNTIME_INFO.
      MESSAGE 'ZFIR014C无返回数据' TYPE 'E'.
  ENDTRY.
  CHECK CL_DATA IS NOT INITIAL.
    CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).
    ASSIGN CL_DATA->* TO <F_OUTTAB>.
    CHECK <F_OUTTAB> IS NOT INITIAL.
      LOOP AT <F_OUTTAB> ASSIGNING <F_LINE>.
        ASSIGN COMPONENT 'BUKRS' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-BUKRS = <F_FIELD>.
          ASSIGN COMPONENT 'ANLN1' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-ANLN1 = <F_FIELD>.
        ASSIGN COMPONENT 'TXT50' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-TXT50 = <F_FIELD>.
        ASSIGN COMPONENT 'TXA50' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-TXA50 = <F_FIELD>.
        ASSIGN COMPONENT 'INVNR' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-INVNR = <F_FIELD>.
        ASSIGN COMPONENT 'AKTIV' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-AKTIV = <F_FIELD>.
        ASSIGN COMPONENT 'RMAIN' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-RMAIN = <F_FIELD>.
         ASSIGN COMPONENT 'MENGE' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-MENGE = <F_FIELD>.
        ASSIGN COMPONENT 'ANSWL' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-ANSWL = <F_FIELD>.
          ASSIGN COMPONENT ' NETVL' OF STRUCTURE <F_LINE> TO <F_FIELD>.
        GW_OUTDATA-NETVL = <F_FIELD>.
        MOVE-CORRESPONDING GW_OUTDATA TO GW_ZTFI084.

        APPEND GW_OUTDATA TO GT_OUTDATA.
        APPEND GW_ZTFI084 TO GT_ZTFI084.

        CLEAR: GW_OUTDATA,GW_ZTFI084.

      ENDLOOP.




      MODIFY ZTFI084 FROM TABLE GT_ZTFI084.
      IF SY-SUBRC = 0.
        COMMIT WORK.
      ENDIF.


      " End it by jinggl 20220322


      CLEAR:EJSON.
      EJSON = ZCL_JSON=>SERIALIZE( DATA = GT_OUTDATA[]
                     COMPRESS = ABAP_FALSE PRETTY_NAME =
                     ZCL_JSON=>PRETTY_MODE-EXTENDED ).

    CATCH CX_ROOT INTO LO_EXCEPTION.
      ESIGN = 'E'.
      EMESSAGE =  LO_EXCEPTION->GET_TEXT( ).
  ENDTRY.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值